df: wire --security security-review mode into the review commands (spec 010) - #122
Merged
Conversation
…ndering, HARD-INVARIANT candidate reference, short-mode candidate computation, changelog consolidation)
…ry fields (scenario 008/009 walk evidence)
bborbe
marked this pull request as ready for review
August 23, 2026 17:09
There was a problem hiding this comment.
All checks pass. Let me compile the final findings and produce the verdict JSON.
Plan concern verification summary:
| Concern | Verified? | Evidence |
|---|---|---|
SECURITY_REVIEW=1 gates dormant extension |
✅ | argument-hint updated in all 3 commands; SECURITY_REVIEW=1 set on flag detection |
blocking formula derived (not stored as severity) |
✅ | All 3 commands: blocking = confidence==confirmed ∧ exploitability==high ∧ impact≥medium; explicit "never stored as severity" |
/tmp/security-model.json session-local |
✅ | All 3 commands: "never to any path inside the reviewed repo — if accidentally written in-tree, delete and rewrite" |
SECURITY_MODEL_FILE citation validation fail-closed |
✅ | All 3 commands: SECURITY_MODEL_FILE=/tmp/security-model.json passed to validator; absent/unreadable model → WARN: dropped fail-closed |
| HARD INVARIANT preserved | ✅ | All 3 commands: "The HARD INVARIANT holds: applicable set is a subset of Step 4b-i candidate set; trait groups never add a rule the glob did not produce" |
| Toolchain pass fail-closed | ✅ | All 3 commands: "A scan failure, a database-fetch timeout, or a flagged vulnerability surfaces as a Must-Fix toolchain finding — never a silent skip" |
--security × short mode: pipeline runs even when short skips Step 4 |
✅ | pr-review: line 85; local-review: line 25; explicit "never silently ignored" |
--security × --refresh-baseline: maintenance exit not silent ignore |
✅ | code-review line 33: "exits WITHOUT a report — on such an invocation no security pipeline runs, because there is no review being performed; this is not a silent ignore of the flag" |
| audit scope (code-review) is whole-repo, no baseline suppression | ✅ | code-review line 195: "baseline-independent whole-repo inventory" |
4 scenarios: all have ≥8 checkboxes, 0 TBD, each has --security invocation |
✅ | Grep: TBD count = 0 for 007/008/009; checkbox counts = 18/14/17/13 ≥8 each |
AC6 (negative guard): git diff origin/master -- docs/selector-mode-guide.md scripts/validate-citations.sh agents/security-verifier.md agents/go-security-specialist.md docs/security/ → empty ✅
No code findings — this is a procedure/spec wiring PR for a coding plugin; changed files are commands/docs/scenarios/prompts/specs with no executable code in scope.
{
"verdict": "approve",
"summary": "PR 122 wires the `--security` flag into all three review commands, activating the dormant security extension. All 10 plan concerns are correctly addressed: SECURITY_REVIEW=1 gates the pipeline, blocking is derived from the verifier verdict formula (not stored as severity), the security model is session-local at /tmp/security-model.json, citation validation is fail-closed via SECURITY_MODEL_FILE, the HARD INVARIANT is preserved (applicable ⊆ Step 4b-i candidates), the toolchain pass is fail-closed, short mode cannot suppress the security pipeline, --refresh-baseline maintenance exit is documented as non-silent, audit scope is whole-repo and baseline-independent, and all 4 scenarios have ≥8 checkboxes, 0 TBD blocks, and the --security invocation. AC6 negative guard confirmed: shipped artifacts (selector-mode-guide, validate-citations, security-verifier, go-security-specialist, docs/security/) are untouched.",
"comments": [],
"concerns_addressed": [
"security: SECURITY_REVIEW=1 gates dormant security extension in all three commands — verified by argument-hint and flag detection text",
"security: blocking formula (confidence==confirmed ∧ exploitability==high ∧ impact≥medium) derived at render time, never stored as severity — verified in all three command files",
"security: /tmp/security-model.json is session-local, never written in-tree; accidental in-tree writes are deleted and rewritten — verified in all three command files",
"security: SECURITY_MODEL_FILE=/tmp/security-model.json passed to validate-citations.sh; absent/missing model → invariant findings drop fail-closed with WARN — verified in all three command files",
"correctness: HARD INVARIANT preserved — applicable set is subset of Step 4b-i candidate set; trait groups never add a rule the glob did not produce — verified in all three command files",
"security: toolchain pass is fail-closed — scan failure, DB timeout, or flagged vuln surfaces as Must-Fix, never silent skip — verified in all three command files",
"correctness: --security × short mode — security pipeline runs even when short mode skips Step 4; flag is never silently ignored — verified in pr-review.md:85 and local-review.md:25",
"correctness: --security × --refresh-baseline — command exits after writing baseline without running pipeline; documented as maintenance-mode exit, not silent ignore — verified in code-review.md:33",
"security: audit scope (code-review --security) is whole-repo; Security Findings are baseline-independent and not suppressed by severity filter — verified in code-review.md:195",
"tests: 4 acceptance scenarios (007/008/009/010) — all have ≥8 unchecked checkboxes (18/14/17/13), zero TBD blocks, each names exact --security invocation — verified via grep and file reads"
]
}
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Wires the
--securitysecurity-review mode into /coding:pr-review, /coding:code-review, /coding:local-review (spec 010).## Unreleasedfeat entryFrozen contract untouched: docs/selector-mode-guide.md (dormant Security Extension), scripts/validate-citations.sh, agents/security-verifier.md, agents/go-security-specialist.md, docs/security/* (AC6 enforced via checksum baseline).