Skip to content

feat: align main — the regeneration order is now a checkable fact (GT-630) - #255

Merged
beyondnetPeru merged 2 commits into
mainfrom
develop
Jul 28, 2026
Merged

feat: align main — the regeneration order is now a checkable fact (GT-630)#255
beyondnetPeru merged 2 commits into
mainfrom
develop

Conversation

@beyondnetPeru

Copy link
Copy Markdown
Contributor

Aligns main with develop. The derived-artifact chain is declared as data and walked in dependency order by a guard wired into the required check, after the same ordering mistake produced three red required checks in one session. Board 587/630.

🤖 Generated with Claude Code

beyondnetPeru and others added 2 commits July 28, 2026 16:05
The executive summary is built FROM the maturity reconciliation, which is built
from the gap board. Generate the summary before reconciling and it captures a
value the reconciler is about to move — and each artifact's own `--check` still
passes at that moment, because the summary genuinely matches what was just
written. So the suite goes green locally and `Validate documentation` goes red on
the runner, where the steps run in the declared order.

That is not staleness, which the individual `--check` modes already catch. It is
an ORDER bug, invisible to any check that looks at one artifact at a time. It
cost three red required checks in a single session — made by someone who had
already been bitten by it twice, because the correct sequence was written down
nowhere in the repository.

The chain is now DATA: producer, what it consumes, what it writes. The guard
walks it in dependency order and reports the FIRST stale link with the command
that fixes it AND the inputs that must be current before it — stopping there on
purpose, because an artifact built on stale input is not independently wrong, and
fixing it first would hide the cause.

**Writing the tests bounded what the fixed-point pass is worth, and the bound is
recorded in the guard rather than glossed over.** With deterministic generators,
currency-in-order already subsumes it: if every link matches what it would write
now, a replay is the identity. I had written a test asserting otherwise and it
failed, correctly. The fixed point earns its place on the other failure — a
generator whose output does not depend only on its declared `consumes` — and that
is the case the self-test now exercises, with an undeclared run counter.

The replay runs in the real tree rather than a copy, because the generators
resolve paths against a real repository root and a partial copy fails for the
wrong reason. It snapshots, replays, diffs and restores byte-for-byte, and
VERIFIES the restore rather than trusting it — a guard that leaves behind what it
was measuring cannot report on it. One test asserts exactly that.

Wired into `docs.yml`, which backs the required check, and registered in
`guard-classification.mjs`: 58 guards classified, 35 observed failing.

Board: 587/630 done · 17 in progress · 22 pending · 4 deferred.

Verified: the guard exits 0 over 2 links and 3 artifacts; self-test 8/8 with four
anti-vacuous fixtures; governance 17/17; bilingual parity exit 0; tracking 630
gaps, 606/606 catalog sections, 569 closure records.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
feat(ci): make the regeneration order a checkable fact (GT-630)
@beyondnetPeru
beyondnetPeru requested a review from a team as a code owner July 28, 2026 21:09
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@github-actions

Copy link
Copy Markdown

📊 Bilingual Coverage Impact

PR Changes

  • Paired EN/ES files modified: 3
  • New EN files needing ES translation: 0

Repository Coverage

Metric Value
Total EN files 522
Total ES files 496
Paired files 0
Coverage 0%

Good: All EN changes have ES counterparts.


Generated by GitHub Actions

@beyondnetPeru
beyondnetPeru merged commit b16bd9f into main Jul 28, 2026
55 of 63 checks passed
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