22 files per locked §Initial capability atom inventory: policy/no-git-ops/ (gate: PreToolUse:Bash, bypass ORCHESTRATOR_META) scope/files-whitelist/ (gate + verify worktree) scope/files-denylist/ (gate + verify worktree) quality/constructor-pattern/ (verify worktree) quality/cargo-check-green/ (verify both — worktree short-circuit + simulated-merge) quality/tests-green/ (verify both) safety/no-dep-bump/ (gate + verify both) output/report-format/ (verify worktree) output/severity-grade/ (verify worktree) tools/read-only/ (gate: deny Edit/Write) tools/cargo-only-bash/ (gate: Bash allowlist) All capability.toml share [capability]/[restricts]/[parameterized]/[text]/ [gate]/[verify] section layout. rust-module paths pre-wired to match phase-3 file layout. All text.md under 200 words, imperative, self-contained (composer concatenates with --- separator). Cross-refs to rule files preserved: - policy::no-git-ops → RULE 0.13 (orchestrator-branch-first.md) - quality::constructor-pattern → RULE ZERO (code-style.md) - output::severity-grade → debugging.md §Security Review - safety::no-dep-bump → supply-chain rationale Agent attempted wc -w for word counts — sandbox correctly denied Bash per RULE 0.13, observable reinforcement of the very policy this capability encodes. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1.3 KiB
1.3 KiB
Severity grade on findings
Every finding in your return MUST carry a severity grade:
[HIGH], [MEDIUM], or [LOW]. Write the grade as the first
token of the finding's header.
Grading rubric:
- [HIGH] — auth, crypto, memory safety, data loss, IP leak, network protocol flaw, unsound FFI, secret in source, or any issue that could compromise a production deploy.
- [MEDIUM] — input validation, error handling, resource exhaustion, config drift, missing test coverage on a critical path, performance regression with measurable impact.
- [LOW] — docs inaccuracy, formatting, non-idiomatic code, comment drift, minor style, opportunistic refactor.
Example:
**[HIGH]** Unbounded allocation in request parser
- File: crates/api/src/parse.rs:47
- Class: resource exhaustion
- Scenario: attacker sends 2GB body, process OOMs
- Fix: cap read at 16 MiB via `take(...)`
**[LOW]** Typo in module docstring
- File: crates/api/src/lib.rs:3
The verifier parses your return, locates every ## section
containing the word "Finding" (case-insensitive) or matching the
format above, and rejects the return if any finding lacks a
[HIGH|MEDIUM|LOW] token.
Empty finding lists are fine — state "No findings" and no grade is required.