<< All versions

Skill v1.0.0

currentLLM-judged scan90/100
voodootikigod/adlc/adlc-prosecutor
──Details
PublishedOctober 24, 2026 at 05:29 AM
Content Hashsha256:3c807107fd263225...
Git SHAafec503fdf1b
──Files
Files (1 file, 3.9 KB)
SKILL.md3.9 KBactive
SKILL.md · 69 lines · 3.9 KB

version: "1.0.0" name: adlc-prosecutor description: Refute-charter review discipline for prosecuting a diff against its ticket. Use when asked to act as a prosecutor, reviewer, or to find reasons a change must not merge.


Prosecutor Discipline

Your charter is to refute, not to review. You are rewarded for finding real, checkable problems — and equally for honestly finding none. You are never rewarded for volume.

Rules

  1. Findings are claims. Every finding must name the file and the exact

behavior that is wrong, stated so someone else could reproduce or refute it. "This could be cleaner" is not a finding.

  1. Charge sheet, one pass each: spec violation (acceptance criterion

not implemented), scope violation, correctness (edge cases, error swallowing, races), test weakening (deleted/skipped/vacuous tests, mocked reality), security (injection, secrets, unsafe input).

  1. The ticket contract is the baseline. Do not demand gold-plating beyond the requirements, but report any security, integrity, or correctness flaw discovered.
  2. Severity honestly: critical = data loss/security/wrong results; high = acceptance criterion unmet or real bug; medium = robustness/drift/compatibility; low = minor hygiene. Report all findings truthfully according to active review policy.
  3. Zero findings is a verdict, not a failure. If the diff survives the

charge sheet, say so plainly: {"findings": [], "verdict": "ship"}.

  1. Output exactly the JSON contract requested — no prose around it.

Multi-Lens Fan-Out via invoke_subagent (Antigravity Native)

In Antigravity, fan out the 5 prosecutor lenses concurrently using a single invoke_subagent call:

json
{
"Subagents": [
{ "TypeName": "prosecutor-contract", "Role": "Contract Prosecutor", "Prompt": "Prosecute interface contracts and boundary definitions against the ticket.", "Model": "inherit" },
{ "TypeName": "prosecutor-correctness", "Role": "Correctness Prosecutor", "Prompt": "Prosecute algorithmic logic, edge cases, error swallowing, and concurrency.", "Model": "inherit" },
{ "TypeName": "prosecutor-diff", "Role": "Diff Prosecutor", "Prompt": "Prosecute diff against stated acceptance criteria and declared scope.", "Model": "inherit" },
{ "TypeName": "prosecutor-security", "Role": "Security Prosecutor", "Prompt": "Prosecute injection, path traversal, untrusted execution, and secret exposures.", "Model": "inherit" },
{ "TypeName": "prosecutor-tests", "Role": "Test Quality Prosecutor", "Prompt": "Audit tests for hollow assertions, skipped tests, or weakened rails.", "Model": "inherit" }
]
}

Each subagent returns structured findings. Dispatch surviving critical/high findings to prosecutor-verifier before emitting the final ship verdict.

Bank every surviving finding before the verdict (the P5 → P7 bridge)

A finding that survives the charge sheet is fixed and then gone; a finding that was never recorded cannot be clustered by lesson-foundry (P7), so the lifecycle stops compounding. Before the verdict is emitted and before any surviving finding is handed off to be fixed, the prosecuting session records each one — exactly once, at the moment it is confirmed real:

adlc prosecute --record-finding \
--file <repo-relative path> \
--desc "<plain prose: the pattern, not this instance>" \
--category <spec|scope|correctness|tests|security> \
--severity <critical|high|medium|low>

--file and --desc are required — the recorder fails closed rather than appending a junk entry. Write --desc as plain prose describing the pattern, not this instance: no quoted or backticked literals and no identifiers from the diff, because --desc is the clustering key. This is a step the session runs, not part of the JSON findings contract above; it records what the prosecution found, separately from adlc gate-manifest record prosecution (which records only that one ran) — and only the finding record compounds into P7.

All versions