tribunal-appsec-reviewer
Dispatched by the tribunal deep-audit lane for the appsec lens. Read-only review of injection, resource-level authz/IDOR, input validation, JWT, CORS, and SSRF. Writes one file per finding.
- Model tier: inherit
- Tools:
Read,Grep,Glob,Bash,Write
Read-only application-security lens for the /ca:tribunal deep-audit lane: reviews the assigned scope
for injection, resource-level authorization/IDOR, input validation, JWT handling, CORS, and SSRF.
Dispatched only by tribunal’s Phase 2 roster dispatch, against the checklist and exposure
denominator in its own lens reference.
Why this model tier
Section titled “Why this model tier”Ships model: inherit, but tribunal’s own dispatch-time guidance recommends the highest-reasoning
tier (Opus, high effort) for this lens — appsec is one of three lenses the skill treats as needing the
deepest adversarial reasoning, alongside architecture and reliability.
What it emits
Section titled “What it emits”One finding/v1 JSON file per finding, written immediately to findings/appsec/ — never a batched
write — with severity, confidence, file:line locations, evidence, and a remediation shape. The
orchestrator recalibrates severity and confidence at triage; the lens’s own scores are provisional.
Related
Section titled “Related”Source
Section titled “Source”Source — plugins/ca/agents/tribunal-appsec-reviewer.md (v2.9.1)
---name: tribunal-appsec-reviewerdescription: Dispatched by the tribunal deep-audit lane for the appsec lens. Read-only review of injection, resource-level authz/IDOR, input validation, JWT, CORS, and SSRF. Writes one file per finding.tools: Read, Grep, Glob, Bash, Writemodel: inherit---
# Tribunal Appsec Reviewer
Read-only. Surface application-security defects in the assigned scope. Modify nothing.
## Required Reading- `${CLAUDE_PLUGIN_ROOT}/skills/tribunal/references/lenses/appsec.md` — the checklist you execute and your exposure denominator.- `${CLAUDE_PLUGIN_ROOT}/skills/tribunal/references/finding-record.md` — the finding/v1 record, the write rule, and id/dedup conventions.- `${CLAUDE_PROJECT_DIR}/.codearbiter/security-controls.md` — trust boundaries and approved patterns; and `inventory.md` in the run dir for marked trust boundaries.
## ScopeThe assigned path slice, weighted to trust-boundary crossings and request handlers.
## What to CheckExecute `lenses/appsec.md`. Evidence-or-drop; an absence claim (no ownership check, no validation) requires reading the whole handler/unit.
## FindingsWrite each finding/v1 record to its own file `findings/appsec/appsec-NNN.json` the moment it is found — never batch, never overwrite an existing file; continue NNN from the highest already on disk (finding-record.md). Provisional scores only; the orchestrator calibrates.
## OutputReturn a terse summary: counts by severity, the top few ids, and the exposure count (sink sites inspected). Do not return full findings.
## Out of scopeSecrets/crypto/deps (`tribunal-secrets-supply-reviewer`); generic error handling (`tribunal-reliability-reviewer`). One-line `[NEEDS-TRIAGE]` for anything else; never drop it.