docs: say what the six required security scans actually gate - #1414
docs: say what the six required security scans actually gate#1414groupthinking wants to merge 1 commit into
Conversation
Gate 2 now requires the six security contexts, but every one of them
reports success with findings present, so the list as written reads as a
vulnerability gate it is not.
npm-audit continue-on-error: true on the audit step
python-safety || true and continue-on-error: true
bandit || true on bandit -r src
trivy exit-code: '0' passed to trivy-action
CodeQL x2 alerts route to the Security tab; blocking them is
code-scanning merge protection, not a required check
Records what requiring them does buy — detection of a scanner that broke
or stopped running — and states that making findings block is a change to
security.yml and to merge protection, not a branch-protection edit.
Same defect class as the list this stacks on: a list that does not say
what it means.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019VsKKnTAKoWJr49zQP95kK
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedAuto reviews are limited based on label configuration. 🏷️ Required labels (at least one) (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository YAML (base), Repository UI (inherited), Organization UI (inherited) Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Agent Completion Truth Gate: BLOCKEDReasons: Machine-readable verdict{
"details": {
"collection_errors": [
"incomplete_linked_issue_contract",
"missing_closing_issue_reference",
"linked_issue_not_agent_task",
"missing_intent_snapshot",
"missing_agent_run_id",
"missing_agent_login"
],
"invalid_fields": [
"policy.agent_login",
"policy.run_id"
]
},
"reasons": [
"invalid_payload"
],
"verdict": "blocked"
} |
|
Closing as superseded — lost a race, and the version that won is better. #1410 pushed Keeping this open would leave a competing edit to the same paragraph — the exact thing the governance gate exists to catch, and the backlog problem this run should reduce rather than add to. For the record, the finding was reached independently twice before either fix landed: from the workflow source here, and by CodeRabbit on #1410. Both agree on the mechanism — the four The Generated by Claude Code |
Canonical issue
Closes #1413
Stacked on #1410 (base is its branch, not
main), so the diff here is one commit,MERGE_POLICY.md+17/−0. This is a follow-up to #1410, not a competing implementation of #1412 — #1410 decides which checks are required; this records what passing them means. Neither claim moves the other's list.Outcome
Gate 2 requires six security contexts, and every one of them reports
successwith findings present. A reader configuring branch protection from that list would reasonably conclude a HIGH/CRITICAL finding cannot merge. It can. This records the gap and what requiring them does buy.Verified against the workflow definitions, not inferred from observed check-run status:
npm-auditnpm installbreakingcontinue-on-error: trueon the audit steppython-safetypip install safetybreaking|| trueandcontinue-on-error: truebanditpip install banditbreaking|| trueonbandit -r srctrivydocker buildbreakingexit-code: '0'passed totrivy-actionSecurity Scan - python,- javascriptCodeRabbit reached the same conclusion independently on #1410 ("requiring these check names ensures the jobs report, but does not necessarily make vulnerability findings fail the merge"). This is the documentation half of the two options its review offered.
Scope
MERGE_POLICY.md— one block quote after the paragraph docs: require the security scans gate 2 lists but never required #1410 adds.security.ymland code-scanning merge protection are both untouched.Risk
git revert. Nothing depends on the file.Verification
Head
1853285.security.ymlsuppressions confirmed at source —continue-on-error: true(lines 31, 53),|| true(lines 52, 69),exit-code: '0'(line 94). Each job's only unguarded steps are toolchain/build steps, so each fails on a broken scanner and never on a finding.main— re-checked rather than assumed, because the claim would be wrong if any were absent.security.ymlandcodeql-analysis.ymlboth trigger onpull_request: branches: [main]with nopaths:filter; neither has a job-levelif:; CodeQL's matrix is['javascript', 'python']withfail-fast: false. docs: require the security scans gate 2 lists but never required #1410's own premise holds.verification.yml's "Gate 3: Security Scan" is not one of the six — different check name, and it triggers only on PRs targetingrefactor/hybrid-infra-v2. Checked because a name collision there would have made the required list strand every PR tomain.agent-completion/truth-gateis red for the arming defect fix(ci): arm the truth gate only on a real dispatch contract #1409 repairs, whichpull_request_targetruns from the base so no commit here can affect.Production evidence
Not applicable — one markdown file, no runtime or build surface. Under the policy this file defines, gate 4 scopes previews to
apps/web/**.Agent handoff
Agent provenance
Agent-authored. No
agent-lock-manifestis filled in: the manifest declares arun_idandagent_loginthe truth gate treats as evidence and expects corroborated by append-only result comments. There is no dispatch record behind this change, and fabricating those values would inject false evidence into the mechanism #1409 is repairing.Generated by Claude Code