{
  "markdown": "# Zero-Trust Audit Team\n\nA Claude Code plugin that turns your existing codebase into a fully-tracked improvement pipeline: **plan -> audit -> triage -> fix -> test -> re-verify**, with persistent state that survives `/clear` and context resets.\n\n## Install\n\n```\n/plugin install https://github.com/bradselph/zero-trust-audit-team\n```\n\nOr load locally for testing:\n\n```bash\ngit clone https://github.com/bradselph/zero-trust-audit-team\nclaude --plugin-dir ./zero-trust-audit-team\n```\n\n## Quickstart\n\n```\n/audit:init src/\n/audit:run\n/audit:triage\n/audit:fix\n/audit:summary\n```\n\n## Commands\n\n| Command | Description |\n|---|---|\n| `/audit:init [paths]` | Define scope, build the file manifest |\n| `/audit:run` | Audit files one-by-one (stops at `STATUS: PARTIAL`) |\n| `/audit:continue` | Resume a paused audit at the last resume marker |\n| `/audit:triage` | Convert raw findings into a prioritized fix plan |\n| `/audit:fix [FND-id]` | Run one finding through fix -> test -> re-verify |\n| `/audit:status` | Snapshot: coverage %, open findings by severity, next action |\n| `/audit:summary` | Final report (only valid after full manifest coverage) |\n\n## The team\n\nEight specialized agents coordinate through a shared state ledger in `.claude/audit-state/`. Each has a narrow, evidence-enforced role:\n\n| Agent | Role | Writes code? |\n|---|---|---|\n| `audit-orchestrator` | Coordinator -- dispatches all other agents, owns state | State files only |\n| `audit-planner` | Builds the file manifest, defines scope | No |\n| `code-auditor` | Zero-trust per-file verifier -- one file per invocation, explicit evidence required | No |\n| `triage-analyst` | Dedupes findings, scores by severity x confidence x blast radius | No |\n| `fix-implementer` | Applies one triaged fix at a time -- minimal change, no scope creep | Yes |\n| `test-engineer` | Runs existing tests; writes a regression test per fix | Tests only |\n| `re-verifier` | Independent re-audit of the changed region -- confirms or rejects with evidence | No |\n| `docs-reconciler` | Resolves code/doc contradictions flagged by the auditor | Docs only |\n\n## The flow\n\n```\n/audit:init   ->  define scope, build manifest\n/audit:run    ->  code-auditor audits files one-by-one, writes findings/FND-*.json\n/audit:triage ->  triage-analyst ranks and groups findings into a fix plan\n/audit:fix    ->  fix-implementer -> test-engineer -> re-verifier (one finding per run)\n/audit:summary -> final report: coverage table, themes, unresolved inventory\n```\n\nEach phase is a separate command. Nothing happens automatically between phases -- you stay in control of when to move forward.\n\n## State layout\n\nAll state lives in `.claude/audit-state/` in your project as plain JSON and Markdown -- diffable, reviewable, readable without tooling.\n\n```\n.claude/audit-state/\n+-- scope.json           IN_SCOPE, OUT_OF_SCOPE, LANGUAGES, sensitive_paths\n+-- manifest.json        Every in-scope file: path, size, line count, audit order\n+-- coverage.json        Per-file status (not-started / PARTIAL / COMPLETE) + rollups\n+-- findings/            FND-0001.json, FND-0002.json, ... -- one file per finding\n+-- triage.json          Ordered remediation plan with scores and fix-unit groupings\n+-- log/\n|   +-- audit-<file>.md  Per-file execution traces from code-auditor\n|   +-- fix-FND-NNNN.md  Fix record: before/after + test results + re-verifier verdict\n+-- README.md            Schema reference for every state file\n```\n\nThe `audit-state/README.md` schema reference is included in this plugin for reference. The orchestrator writes it to your project during `/audit:init`.\n\n## Design choices\n\n**Why one file per audit invocation.** The `code-auditor` audits exactly one file per call (or emits `STATUS: PARTIAL` with a resume line when the file exceeds the context window). This makes `/audit:run` resumable across multiple sessions on any repo size.\n\n**Why findings are files, not chat history.** Chat transcripts don't survive `/clear`. `findings/FND-0042.json` does. Every agent reads from this ledger days later with full fidelity.\n\n**Why one finding per fix invocation.** Batching unrelated fixes is where regressions hide. Each fix-unit gets its own complete trace: locate -> edit -> lint/typecheck -> regression test -> independent re-verification.\n\n**Why the auditor cannot write.** The `code-auditor` has read-only tools. It literally cannot fix what it finds -- no incentive to downplay findings for a cleaner diff.\n\n**Why re-verification is a separate agent.** The agent that applied the fix is the wrong agent to certify it. The `re-verifier` starts from a clean context and must produce an independent execution trace.\n\n## Customizing\n\n**Severity thresholds** -- edit `agents/triage-analyst.md`, step 5 (auto-fix eligibility rules).\n\n**Per-language hazard checklists** -- create `.claude/audit-state/appendix/<language>.md` in your project. The `code-auditor` picks it up during the hazard check pass.\n\n**Sensitive path overrides** -- add `sensitive_paths` to `scope.json`. The triage-analyst routes anything matching those paths to human review.\n\n**Pre-existing findings** -- drop JSON into `.claude/audit-state/findings/` matching the schema in `audit-state/README.md`. The triage-analyst folds them into the plan.\n\n## When not to use this\n\n- **Single-file fixes**: overkill -- use plain Claude Code.\n- **Greenfield projects**: the auditor's value is on accumulated code with real issues.\n- **If you want instant results**: the chunking protocol is intentional. Each phase is checkpointed so nothing is lost if context resets.\n",
  "bytes": 5559,
  "sha": "5fc86dfddc80bb268df56a819ff99695014b77fe8ce31d1ceeae3047e93d3101",
  "repo_slug": "bradselph/zero-trust-audit-team",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_bradselph_zero_trust_audit_team_zero_tru_ca659cd7/readme"
}