$npx -y skills add anthropics/defending-code-reference-harness --skill quickstartThe front door for this repo. With no argument: a 30-second intro, then an offer to walk you through your first run on the canary target. With a question: answers it from this repo's own docs and source, cites where it looked, and hands you the next command. Use for "how do I…",
| 1 | # /quickstart |
| 2 | |
| 3 | Two modes, picked by whether `$ARGUMENTS` is empty. |
| 4 | |
| 5 | - **Empty → Intro mode.** Short orientation, then offer the guided first run. |
| 6 | - **Non-empty → Help mode.** Treat `$ARGUMENTS` as the operator's question. |
| 7 | |
| 8 | --- |
| 9 | |
| 10 | ## Intro mode |
| 11 | |
| 12 | Keep it short and a little warm; this is the first thing a new operator sees. |
| 13 | |
| 14 | Say roughly: |
| 15 | |
| 16 | > **Welcome!** This repo takes you from finding your first vulnerability to |
| 17 | > patching at scale, using a set of Claude Code skills and an autonomous |
| 18 | > pipeline. Two ways in: **interactive skills** (no setup, safe, start here) |
| 19 | > and the **autonomous pipeline** (Docker, scales to hundreds of parallel |
| 20 | > agents). |
| 21 | > |
| 22 | > The ramp-up: |
| 23 | > |
| 24 | > | Day 1 | Threat-model + first static scan + triage | |
| 25 | > | Day 2 | Run the reference pipeline (C/C++) | |
| 26 | > | Day 3-4 | Customize it for your stack | |
| 27 | > | Week 2 | Autonomous scanning, triage, and patching | |
| 28 | > |
| 29 | > Day-1 goal: threat-model, scan, and triage the bundled canary target. |
| 30 | > Most teams get there before lunch. |
| 31 | |
| 32 | Remind them to `export CLAUDE_CODE_SUBAGENT_MODEL=<model-id>` so subagents |
| 33 | use the same model as the session. |
| 34 | |
| 35 | Then **AskUserQuestion** with three options: |
| 36 | |
| 37 | 1. **Walk me through Day 1 on the canary (~10 min)** → run "Guided first |
| 38 | run" below. |
| 39 | 2. **I have a question** → ask what it is, then switch to Help mode. |
| 40 | 3. **I'll read the README** → point at `README.md` Step 1 and stop. |
| 41 | |
| 42 | ### Guided first run |
| 43 | |
| 44 | Runs the three Step-1 skills on `targets/canary`, pausing after each to show |
| 45 | what landed on disk. These only read/write files in the repo; no sandbox |
| 46 | needed. |
| 47 | |
| 48 | 1. `/threat-model bootstrap targets/canary` via Task. When done, open |
| 49 | `THREAT_MODEL.md`, show the focus areas, explain in 2-3 sentences how |
| 50 | this steers the scan. |
| 51 | 2. `/vuln-scan targets/canary` via Task. When done, open |
| 52 | `targets/canary/VULN-FINDINGS.md`, summarize the count and top 2-3 |
| 53 | findings, point at `VULN-FINDINGS.json`. |
| 54 | 3. `/triage targets/canary/VULN-FINDINGS.json` via Task. When done, open |
| 55 | `TRIAGE.md`, explain what changed vs. raw findings (verified, deduped, |
| 56 | re-ranked). |
| 57 | |
| 58 | Pause for the operator between each (AskUserQuestion); don't barrel through. |
| 59 | Close with a one-line recap of the three artifacts on disk, then point at |
| 60 | README Step 2 for the execution-verified pipeline. **Never run `vuln-pipeline` |
| 61 | or anything that executes target code here**; that's Step 2 and needs |
| 62 | Docker + a sandbox. |
| 63 | |
| 64 | --- |
| 65 | |
| 66 | ## Help mode |
| 67 | |
| 68 | Answer the operator's question using **this repo as ground truth**: README, |
| 69 | `docs/*.md`, `harness/*.py`, `dnr_harness/*.py`, `targets/*/config.yaml`, |
| 70 | `.claude/skills/*`. |
| 71 | Don't answer from general knowledge when the repo has a specific answer. |
| 72 | |
| 73 | ### Routing map |
| 74 | |
| 75 | | If the question is about… | Read first | Then offer | |
| 76 | |---------------------------------|-----------------------------------------|------------| |
| 77 | | running the pipeline | `docs/pipeline.md`, README Step 2 | the `recon` / `run` command | |
| 78 | | too many findings, triage | `docs/triage.md` | `/triage <path>` | |
| 79 | | porting, Java/Go/Rust/etc. | `docs/customizing.md`, README Step 3 | `/customize` | |
| 80 | | safety, sandbox, Docker | `docs/security.md` | cite; no action | |
| 81 | | rate limits, 429, token budget | `docs/pipeline.md`: Rate limits, `docs/troubleshooting.md#rate-limits` | cite the numbers | |
| 82 | | duplicates, dedup | `docs/troubleshooting.md#duplicate-findings` | `known_bugs:` hint | |
| 83 | | CLI flags, "what does --X do" | `harness/cli.py` (grep the argparse) | exact flag + example | |
| 84 | | which model, subagent pinning | `docs/troubleshooting.md`: Subagents | the `export` line | |
| 85 | | best practices, prompting | `docs/best-practices.md`, `docs/prompting.md` | cite the principle | |
| 86 | | threat model, attack surface, scope | `docs/threat-model.md` | `/threat-model bootstrap <target-dir>` | |
| 87 | | scan, audit, find vulns | `.claude/skills/vuln-scan/SKILL.md` | `/vuln-scan <target-dir>` | |
| 88 | | "how do I start" | README Step 1 | offer Guided first run | |
| 89 | | patching, fix, diff, re-attack | `docs/patching.md`, README Step 4 | `/patch <input>` | |
| 90 | | threat hunting, incident response, logs | `docs/detection-response.md` | `/dnr-hunt` or `/dnr-respond` | |
| 91 | | autonomous D&R, dnrcanary | `docs/detection-response.md`, `targets/dnrcanary/README.md` | the `dnr-pipeline run` command | |
| 92 | | |