# p0151f: api-security catalog rewrite

Companion record to the cross-repo PR in `agent-smith-skills`
(<https://github.com/holgerleichsenring/agent-smith-skills/pull/39>)
that introduces seven new skills in the api-security category.

- [Architecture] Recon-then-specialist model replaces the prior generalist-analyst model. Five inventory survey skills run first (controllers, auth-stack, data-access, secrets, network-surface) and emit source-anchored observations onto the bus (visible via p0151c). The specialist `jwt-validation-judge` runs second and consumes the bus to decide whether its analysis is even applicable. The `report-synthesizer` runs last, deduplicating + promoting + dropping per the umbrella's anchor-quality bar.
- [Architecture] Decentralised verification — every recon skill grounds its claims via its own tool reads (the p0151a + p0151b runtime + validator combo enforces this mechanically). The bus from p0151c is hint-only; downstream skills may confirm or contradict a recon observation with their own Read of the cited file.
- [Architecture] Explicit drop-if contract for `jwt-validation-judge`. The most common api-security-scan hallucination was claiming weak JWT validators on managed-identity stacks that do not customise JWT validation at all. The skill's body explicitly directs it to emit `[]` when `inventory-auth-stack`'s observations identify a managed library + no `AddJwtBearer(...)` with custom params. This is the first skill in the catalog with an explicit silence contract; if the pattern works, future judges will adopt it.
- [Implementation] No `block_condition` on the two judge skills (`jwt-validation-judge`, `report-synthesizer`). The agent-smith p0151b validator relaxation accepts this for `output_schema = observation`. Judges that gate downstream action (plan / gate schemas) still require it.
- [Implementation] Three existing source-reviewer skills (`auth-config-reviewer`, `controller-implementation-reviewer`, `upload-validator-reviewer`) are unchanged in the skills repo. They previously failed to load because of the strict `block_condition` rule; p0151b's relaxation makes them loadable today. No content rewrites in this slice — they keep their existing bodies which already aligned with the decentralised-verification model.
- [Implementation] `chain-analyst` (generic filter used by both security-scan and api-security-scan) stays in the catalog. `report-synthesizer` is a more specific skill for api-security-scan (its `activates_when` references the pipeline name) and should win the `PhaseSpecificityTrimmer` selection. If it does not, p0151h's smoke will surface the regression and we add an explicit triage rule.
- [Implementation] No deprecation pass on the old skills (`api-vuln-analyst-planner`, `anonymous-attacker`, `api-design-auditor`, `api-vuln-analyst-investigator`, `auth-tester`) in this slice. Their content quality is acceptable; if the new recon-then-specialist flow proves itself in p0151h validation, deprecating them is a follow-up cleanup phase. Premature deletion would block a rollback path.
- [TradeOff] Catalog version bump to 2.2.0 happens automatically via `release-please` on merge of the cross-repo PR. The agent-smith side (this PR) does not pin to 2.2.0 explicitly today — `agentsmith.example.yml` carries a `skills:` block that resolves the latest released catalog by default. After the skills PR merges, a small follow-up bumps the pin if the operator wants to lock to 2.2.0.
- [TradeOff] No new C# code in this phase. The cross-repo PR is content-only (SKILL.md files). The companion record in this repo exists for traceability via the spec-first decision log; no compile / test changes accompany it.
