Skip to content

Add verify-or-drop, exclusion list and variant analysis to the security path - #1976

Closed
remigiusz-antczak wants to merge 1 commit into
mainfrom
land/1965b
Closed

remigiusz-antczak wants to merge 1 commit into
mainfrom
land/1965b

Conversation

@remigiusz-antczak

Copy link
Copy Markdown
Collaborator

Supersedes #1972 (and #1965). Same change, rebuilt on current main with the CI fixes #1972 was missing.

  • Adds references/appsec-verify.md: a verify-or-drop gate (a security finding needs a source-to-sink file:line path or drops to a question), a default false-positive exclusion list with a repo override (.dcr-security-exclusions), and variant analysis for confirmed findings. scripts/security_verify.py checks claim shape and applies exclusions.
  • Fixes from security: verify-or-drop refuter, exclusion list and variant analysis #1972's CI failure: the size-budget-raise lines for security-appsec.md (27956→28118) and full-map.md (18720→18740), and the must-load ceilings in scripts/mustload-budgets.tsv with a comment. The routing row in security-appsec.md is shortened, so the four affected archetypes rise 40 tokens instead of 62.
  • Resolves an evals/evals.json conflict with Add whole-app security review mode and opt-in security scanners #1970 by keeping both appended cases.

Local proof: mustload ok, size-ratchet ok against main. test-ci-gates.sh: 294 passed, 9 failed. All 9 failures are sandbox-only (port bind, pgrep, network) in suites this change does not touch; CI is the authority.

🤖 Generated with Claude Code

https://claude.ai/code/session_014QNFFPWVcPUbeuvwM5fk2Z

…ty path

New references/appsec-verify.md (routed from security-appsec.md and full-map.md):
a security finding needs a source-to-sink file:line path or drops to a question,
a default false-positive exclusion list is tunable via .dcr-security-exclusions
(High and Critical are never dropped by it; the override file is untrusted and
non-default additions are surfaced), and a confirmed finding triggers a repo-wide
sibling search. security_verify.py checks claim shape, applies exclusions, emits a
record with active exclusions and override status, and fails closed on bad input;
three evals added.

Not done here per lane contract: INDEX.md, SHA256SUMS, size-budgets.tsv
(the size-budget check fails until the lane owner adds the new file's row).

Tests: 21/21 assert statements in scripts/test_security_verify.py pass

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014QNFFPWVcPUbeuvwM5fk2Z
@remigiusz-antczak

Copy link
Copy Markdown
Collaborator Author

Superseded by #1979.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant