Skip to content

fix(governance): mark six WG-ratified decision records ratified and lint record status - #8819

Open
bokelley wants to merge 1 commit into
mainfrom
chore/dr-status-ratified
Open

bokelley wants to merge 1 commit into
mainfrom
chore/dr-status-ratified

Conversation

@bokelley

@bokelley bokelley commented Nov 8, 2026

Copy link
Copy Markdown
Contributor

Six decision records said status: accepted. accepted is not a status the governance README allows (proposed | recorded | ratified | superseded). The WG ratified all six, so the correct value is ratified.

Amendment rule. governance/decisions/README.md, Lifecycle: "Records are amended only to fix errors or mark supersession." This is an error fix. The rulings, dates and authorities are unchanged; only the status value is corrected (and, for DR-0031, the missing provenance is filled in from its own rationale).

Record Ratified Evidence Change
DR-0027, DR-0028, DR-0029, DR-0030 WG Session C consent, objections closed 2026-10-30 Each record's decided / decided_by; #8606 status only
DR-0034 WG Session C, 2026-10-26 The record's decided / decided_by; #8410 status only
DR-0031 WG Session B, 2026-10-19 The record's Rationale; decision comment on #8142; #8389 status, plus decided: 2026-10-19 and decided_by: WG Session B

Lint. scripts/lint-decision-record-status.cjs reads the allowed values from the README's format block and fails on any record whose frontmatter status is missing, repeated, or not in that list. A README with no status: line fails the lint instead of passing every record. It runs as npm run test:decision-record-status in the Build Check "Build and static checks" job, which runs on every PR. Before the record fix it flagged exactly these six records.

No changeset: no protocol release surface is touched (check-changeset-protocol-scope.cjs --has-protocol-scoped-changes reports none).

Not changed: DR-0034 partially supersedes DR-0024 (one paragraph), and DR-0024 stays ratified with no superseded_by. That is a separate question.

Changes under governance/ need human review. Please don't auto-merge.

🤖 Generated with Claude Code

…int record status

DR-0027 to DR-0031 and DR-0034 carried `status: accepted`, which is not one
of the values governance/decisions/README.md allows (proposed | recorded |
ratified | superseded). Each was ratified by the WG, so the correct value is
`ratified`. This is an error fix under the README's amendment rule ("Records
are amended only to fix errors or mark supersession").

- DR-0027, DR-0028, DR-0029, DR-0030: WG Session C consent, objections closed
  2026-10-30 (#8606). Status only.
- DR-0034: WG Session C, 2026-10-26 (#8410). Status only.
- DR-0031: WG Session B, 2026-10-19 (#8142 decision comment). Status, plus
  `decided: 2026-10-19` and `decided_by: WG Session B`.

Adds scripts/lint-decision-record-status.cjs, which reads the allowed values
from the README's format block and fails on any record whose frontmatter
status is missing, repeated, or not listed. It runs as
`npm run test:decision-record-status` in the Build Check static-checks job.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@aao-secretariat aao-secretariat Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ladon verdict: Escalate to human review

Escalate — gated path requires human/CODEOWNERS approval.

This PR modifies .github/workflows/build-check.yml, which matches the gated-path glob .github/workflows/**. Per the hard approval gate (decision rule row 2), gated_paths: true AND review_decision: REVIEW_REQUIRED (not APPROVED), so the gate is not satisfied and this cannot auto-approve.

The diff itself is clean: it adds a decision-record status lint (script + test) wired into build-check.yml and normalizes six governance records from the non-conformant status: accepted to ratified. The reviewer surfaced no critical/high/medium findings, and governance records are outside the published protocol surface so no changeset is required.

Escalation reasons

  • .github/workflows/build-check.yml (modified) is under the hard approval gate (.github/workflows/**); human/CODEOWNERS review is required because review_decision is REVIEW_REQUIRED, not APPROVED.

Note for the human reviewer: the status changes to governance/decisions/** records (accepted → ratified) are a human-ratification matter and should be confirmed on the thread.

Why human review

  • .github/workflows/build-check.yml (modified) is under the hard approval gate (.github/workflows/**); requires human/CODEOWNERS approval because review_decision is REVIEW_REQUIRED, not APPROVED.
  • This PR touches a path under a hard, non-overridable approval gate (.github/workflows/build-check.yml (modified) matches .github/workflows/**) and the current GitHub review decision is 'REVIEW_REQUIRED', not APPROVED. This is a hard gate enforced in code — Ladon cannot auto-approve until a human/CODEOWNERS approval is recorded, regardless of how clean the diff is.

@aao-secretariat aao-secretariat Bot added the ladon/needs-human-review Ladon has escalated this PR for human review. label Nov 8, 2026

This branch has not been deployed

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

Labels

ladon/needs-human-review Ladon has escalated this PR for human review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant