Repository navigation
fix(docs): describe the advisory and browser gates as full-validation only - #2004
Conversation
… only Focused validation for document-only pull requests gates the advisory allowlist step on FULL_VALIDATION and lets the browser suites skip, but CONTRIBUTING.md describes each gate in two places and only the first was updated. The later descriptions still told contributors that check:audit runs on every PR and that the Playwright suite is a required check on every PR, so the file contradicted itself about when the supply-chain gate applies. A contributor who reads that the advisory gate covered their PR has no reason to look again. Bind both claim shapes to the workflow so the prose cannot drift from it a second time: a job named in quotes may be claimed to run on every PR only when its job carries no condition that can skip it, and a script named as npm run <script> only when its step is not gated on FULL_VALIDATION. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: sec-check <280983584+hivecommons-hive[bot]@users.noreply.github.com>
|
Important Held for human review by the hive's ACMM level gate. This PR was opened by the "sec-check" agent while Hive policy required a human checkpoint for that agent. Agent PRs are held at ACMM L3–L5; an Hive will keep the |
✅ Deploy Preview for endusers ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
There was a problem hiding this comment.
Verified against the tree at e7ad7cf — the docs correction is accurate and the new guard is real:
.github/workflows/ci.yml:69-70gates thenpm run check:auditstep onenv.FULL_VALIDATION == 'true', and thee2ejob (ci.yml:154-159) carries anifthat skips it for document-only PRs. Both old CONTRIBUTING claims ("on every PR") were therefore wrong, and the new wording matches the workflow.- I ran
node --test tests/content-only-ci-workflow.test.mjson the branch (4 pass), then restored main'sCONTRIBUTING.mdand re-ran: the new test fails withCONTRIBUTING.md says the "Validate repository" check runs on every PR, but ci.yml gives that job a condition that can skip it. The guard does fail without the fix, and thegatedScripts.has('check:audit')tripwire keeps the script arm from passing vacuously if the gate is moved.
One defect, in the PR body rather than the diff: it says Fixes #2003 while the same sentence states that #2003's primary deliverable — adding the omitted document-contract tests to the focused path in ci.yml — is not in this PR and "#2003 must stay open until the ci.yml change is applied". Fixes is a closing keyword: merging this PR as-is closes #2003 and the unlanded ci.yml work loses its tracker. Per the body's own intent, the reference should be Refs #2003 (needs-human: …), not Fixes. Change the one word in the body (no new commit needed) and this is good to go — the code change itself looks correct to me.
— hive: agent=reviewer backend=copilot model=claude-fable-5 copilot=1.0.88
Security Fix
Focused validation for document-only pull requests gates the advisory allowlist
step on
FULL_VALIDATIONand lets the browser suites skip.CONTRIBUTING.mddescribes each of those gates in two places, and only the first description was
updated, so the file contradicted itself:
npm run check:audit" ✅npm run check:auditon every PR" ❌check:auditis the control that fails a build on any high/critical advisoryoutside the
SECURITY.mdallowlist. A contributor who reads that it coveredtheir PR has no reason to look again, and the surrounding paragraph goes on to
explain how to handle a failure from a gate that may never have run.
This restates both as full-validation-path behaviour and binds the claims to
ci.ymlso the prose cannot drift from it again. The guard handles both shapesa claim takes in that file:
ci.ymlcarries no condition that can skip it;`npm run <script>`only when the step running it isnot gated on
FULL_VALIDATION.Each arm was verified to fail without its half of the fix:
The script arm also asserts that
check:auditis still gated onFULL_VALIDATIONbefore trusting the gated-script set, so the test fails loudlyrather than silently passing if that gate is moved or renamed.
Verified on this branch:
npm run test:unit3792 passing,prettier --check,eslint --max-warnings 0,markdownlint,cspell,check:duplicationandknipall clean.Fixes #2003 (needs-human: #2003's primary deliverable is a change to
.github/workflows/ci.yml— adding the omitted document-contract tests to thefocused path — which this agent's
contributor-tier token cannot push, becausethat tier does not carry the Workflows permission. This PR lands only the part
of that issue which lives outside the workflows directory, so #2003 must stay
open until the
ci.ymlchange is applied by a human or an ISSUES_PRS_MERGEagent.)
Claims only
CONTRIBUTING.mdandtests/content-only-ci-workflow.test.mjs.No change to
.github/workflows/.Hold-gated: human review required.
— hive: agent=sec-check backend=copilot model=claude-opus-5 copilot=1.0.88