[quality] Content-only CI path skips the document-contract suites that guard authored documents
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 25/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Stale
- Tech stack
- github-actions, javascript
Research direction
Read .github/workflows/ci.yml, especially the “Check content contracts” step, and inspect the listed suites alongside the eligible authored document paths described in the issue. The issue reports that the fix is a single workflow test list and gives the proposed additions; completion means those suites run on the content-only path. An open linked pull request (#2010) already covers the issue.
Written by the indexing model from the issue text.
Description
Finding
ADR 0011 keeps "the applicable document-contract checks" on the focused path.
The implementation keeps three: tests/docs-contract.test.mjs,
tests/markdown-references.test.mjs and
tests/community-group-coverage.test.mjs
(.github/workflows/ci.yml, step "Check content contracts"). Other
document-contract suites read the same eligible authored documents and are
skipped, so a prose-only PR can pass every focused check and still break the
required Validate repository job. merge_group classifies the merge commit
the same way, so the PR merges green and the next full-validation PR — anyone
else's — opens red.
Two instances verified at c686990 on a clean npm ci tree:
- Unindexed ADR. Adding
adr/0012-example-decision.mdalone:
classifyChanges('pull_request', <sha>, [{status:'A', path:'adr/0012-example-decision.md'}])
returns{"documentOnly":true,...}; the trio passes (pass 19 / fail 0) and
runDocumentLintpasses prettier, cspell and markdownlint; but
node --test tests/adr-contract.test.mjsfails
"every number-prefixed ADR file is listed in the index".adr/is not part
of the Docusaurus build, so the production build does not catch it either. - Broken relative link in a root document. Appending
[missing page](docs/nope-not-here.md)toREADME.md:
tests/markdown-references.test.mjsreportsfail 0,
tests/root-docs-links.test.mjsreportsfail 1. A broken link in
README.mdis also visible to anyone reading the repository on GitHub.
This is one gate-configuration defect, not two findings: both are the same
missing entries in one list.
Recommendation
Extend the node --test list in the "Check content contracts" step with the
document-contract suites whose inputs are classifier-eligible documents
(adr/**, blog/**, docs/** except the data-backed and architecture-generated
pages, and the ROOT_DOCUMENTS set). Suites that only read ineligible inputs
(tests/events-page.test.mjs — docs/events/index.md is data-backed;
tests/mdx-active-content.test.mjs — docs/architectures/_security-regression.md
is not eligible) are deliberately left out.
Replace, in .github/workflows/ci.yml:
- name: Check content contracts
if: ${{ !cancelled() && env.CONTENT_ONLY == 'true' }}
run: >-
node --test tests/docs-contract.test.mjs
tests/markdown-references.test.mjs
tests/community-group-coverage.test.mjs
with:
- name: Check content contracts
if: ${{ !cancelled() && env.CONTENT_ONLY == 'true' }}
run: >-
node --test tests/docs-contract.test.mjs
tests/markdown-references.test.mjs
tests/community-group-coverage.test.mjs
tests/adr-contract.test.mjs
tests/architecture-submission-contract.test.mjs
tests/architectures-sidebar-contract.test.mjs
tests/blog-frontmatter.test.mjs
tests/content-security-contract.test.mjs
tests/contributing-e2e-setup.test.mjs
tests/contributing-just-build-parity.test.mjs
tests/docs-threshold-parity.test.mjs
tests/e2e-docs-threshold-parity.test.mjs
tests/enduser-directory-copy.test.mjs
tests/governance-hygiene-parity.test.mjs
tests/root-docs-links.test.mjs
tests/skills-manifest.test.mjs
The full list runs 134 tests, fail 0, in 1.2s locally at c686990, so the
focused path stays fast. tests/content-only-ci-workflow.test.mjs asserts the
step's if: expression and not its command, so no test file needs to change
with it; this does not touch any threshold (ADR 0008).
This change needs a human or an ISSUES_PRS_MERGE agent to land. The fix is
confined to .github/workflows/ci.yml, and this lane's token is minted without
the Workflows permission, so no PR it pushes could contain the edit. Nothing
here lives outside .github/workflows/, so there is no partial PR to open.
Priority
- Impact: high — a prose-only merge turns a required check red for every other
contributor until someone bisects it. - Effort: low — one list in one workflow step.
Filed by quality agent (hold-gated mode)
🐝 Hive Agent: quality | Instance: hosted-available-lke648397-260827-5n31 | SHA: c686990
— hive: agent=quality backend=copilot model=claude-opus-5 copilot=1.0.88
- Dominant language
- JavaScript
- Stars
- 0
- Forks
- 3
- Avg merge
- 7h 8m
- Merged PRs (30d)
- 565
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from cncf/endusers
-
[guide] AGENTS.md claims the coverage gate, e2e and full lint run on every PR after ADR 0011 focused validationPossibly taken @hivecommons-hive claimed this today. Openagent/guide documentation hive/claimed-by-guide stage/040-covered-by-pr
Difficulty 2/5 1-3 hours Newbie friendliness 81/100
cncf/endusers#2006 · 1 comment ·
Maintainers usually reply within 1 day
-
[sec-check] Content-only CI path skips the contract tests that hold CONTENT-SECURITY.md to the gates it documentsPossibly taken @hivecommons-hive claimed this 1 day ago. Openagent/sec-check hive/claimed-by-sec-check security stage/040-covered-by-pr
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
cncf/endusers#2003 · 2 comments ·
Maintainers usually reply within 1 day
-
a11y: search button accessible name does not contain its visible label (WCAG 2.5.3)May be free again A pull request for this issue was closed without being merged. Openblocked bug hive/claimed-by-scanner needs-human
Difficulty 4/5 3-5 days Newbie friendliness 39/100
cncf/endusers#1618 · 8 comments ·
Maintainers usually reply within 1 day
-
🐝 Hive Advisory ReportMay be free again A pull request for this issue was closed without being merged. Openhive/advisory
Difficulty 5/5 Over a week Newbie friendliness 15/100
cncf/endusers#23 · 9 comments ·
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
mailgun/mailgun.js#544 ·
-
beginner bug frontend
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
BistaDinesh03/critique#266 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
solana-foundation/solana-web3.js#4015 · 1 comment ·
Maintainers usually reply within 1 day
-
area: dependencies auto-generated cwe: 405 dependencies ecosystem: npm help wanted package: minimatch scope: runtime security security-alert severity: medium source: dependabot supply-chain vulnerability
Difficulty 2/5 Half a day Newbie friendliness 65/100
tdk-landscape/tdk-cli-core#2811 ·
-
a11y bug confirmed issue
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
open-webui/open-webui#33442 · 2 comments ·
Maintainers usually reply within 1 day