red-team-flow — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited red-team-flow (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Generate SITF-compliant attack flow JSON files from red team or penetration testing reports.
/red-team-flow <engagement-name> [source]engagement-name: Identifier for the engagement (e.g., "acme-2026q1", "client-sdlc-audit")source: One of:--file <path>: Path to report file (markdown, txt, json, pdf)--url <url>: URL to report or findings pageArguments: $ARGUMENTS
The skill accepts red team and pentest reports in various formats:
The skill looks for these common report patterns:
When this skill is invoked:
techniques.json to get the full SITF technique library."type": "technique-gap"Apply these layout rules (consistent with /attack-flow):
#### Rule 1: Component Layout (Left-to-Right by Attack Flow)
#### Rule 2: Technique Ordering (Top-to-Bottom)
#### Rule 3: Technique-Component Centering
#### Rule 4: Component Sizing
#### Rule 5: Edge Connections
"type": "smoothstep" for all edgesGenerate attack flow JSON with this structure (identical to /attack-flow output):
{
"metadata": {
"name": "Engagement Name",
"title": "Canvas Display Title",
"created": "ISO-8601 timestamp",
"version": "1.0",
"framework": "SITF",
"source": "red-team-report",
"description": "Brief engagement description"
},
"nodes": [],
"edges": []
}Metadata field guidelines:
name: Short identifier (e.g., "acme-2026q1", "client-sdlc-audit")title: Concise canvas title, max 5-7 words (e.g., "ACME CI/CD Pipeline Assessment", "Client SDLC Red Team Q1")description: One sentence summary, max 150 charactersNode types (same as /attack-flow):
entryPoint: How the engagement started (Assumed Breach, External Attacker, Insider, etc.)component: SITF component container (endpoint, vcs, cicd, registry, production)technique: Attack technique from techniques.jsontechnique-gap: Placeholder for missing SITF techniqueexitPoint: Engagement outcome (Data Exfiltration, Persistence, Supply Chain Compromise, etc.)Special metadata for red team flows:
"source": "red-team-report" to metadata"engagement" field if client/engagement name is known"scope" array listing in-scope components#### Node Structure - Technique (with evidence)
{
"id": "technique-c003-1",
"type": "technique",
"position": { "x": 95, "y": 160 },
"data": {
"id": "T-C003",
"name": "PWN Request / Poisoned Pipeline Execution",
"component": "cicd",
"stage": "Initial Access",
"description": "Full description from techniques.json",
"risks": ["risk1", "risk2"],
"controls": { "protective": [], "detective": [] },
"customLabel": "Exploited workflow in repo X",
"evidence": "PR #142 triggered workflow with write permissions",
"severity": "Critical"
},
"zIndex": 10,
"width": 160,
"height": 96
}After generating the flow, analyze defensive gaps:
| Technique | Missing Control | OWASP SPVS |
|-----------|-----------------|------------|
| T-C003 | Minimal workflow permissions | V3.1 |
| T-C005 | Log sanitization | V2.5 |Run this checklist before outputting:
[ ] Valid JSON structure (parse test passes)
[ ] Required fields: metadata.{name,title,created,version,framework,source}, nodes[], edges[]
[ ] All node IDs are unique
[ ] All edge source/target reference valid node IDs
[ ] Technique nodes use data.id and data.name (NOT techniqueId/label)
[ ] Technique nodes include full risks[] and controls from techniques.json
[ ] All techniques centered within components (x = component.x + 45)
[ ] Component heights adequate for technique count
[ ] Out-of-scope findings noted but not forced into SITF
[ ] Evidence preserved in customLabel or evidence fields
[ ] Exit points connected to terminal techniquesflows/red-team/<engagement-name>.jsonpython3 -c "import json; json.load(open('file'))"## Red Team Flow: <engagement-name>
### Attack Chain
1. Initial Access via [entry point]
2. [Technique] → [Technique] → ...
3. Impact: [exit point]
### Techniques Used
| ID | Name | Component | Evidence |
|----|------|-----------|----------|
| T-C003 | PWN Request | CI/CD | PR #142 |
| ... | ... | ... | ... |
### Control Gaps Identified
| Missing Control | Would Prevent | Priority |
|-----------------|---------------|----------|
| Minimal workflow permissions | T-C003, T-C005 | High |
| ... | ... | ... |
### Out-of-Scope Findings
- [Finding X]: Generic cloud attack, see MITRE ATT&CK T1078
### Technique Gaps
- [Finding Y]: No matching SITF technique, run `/technique-proposal`/technique-proposal for each/red-team-flow acme-2026q1 --file ./reports/acme-final-report.md/red-team-flow client-audit --url https://internal.wiki/engagements/client-findings/red-team-flow demo-engagement
We started with access to a developer laptop (assumed breach). Found GitHub
PAT in ~/.config/gh/hosts.yml. Used the token to access private repos and
discovered hardcoded AWS credentials in a workflow file. The AWS creds had
admin access to production S3 buckets. We exfiltrated customer data as POC.Red Team Reports (attack chains):
Pentest Reports (isolated findings):
The skill auto-detects based on report structure:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.