Skip to content

Commit c2877d3

Browse files
beyondnetPeruclaude
andcommitted
fix(maturity): break the circle — the documentation check was blocking itself
`09-reconcile-maturity` has been red all week because `documentation` and `release` mapped BLOCKED evidence to GT-563, which is DONE. Re-observed against real runs on main rather than resolved by editing dates. `documentation` -> PASS, observed in run 29702785020 on 787d2ba. Every documentation step succeeds: "Validate docs", "Check bilingual parity" and "Validate semantic tracking". The 174 doc-validation errors that blocked this on 07-18 are genuinely resolved. Stated plainly, because it is the whole point: the JOB is still red, and its ONLY failing step is "Reconcile maturity evidence" — this very check. The evidence asserted documentation was blocked because the job failed, and the job failed because the evidence was invalid. It was blocking itself. This check measures documentation health, not its own reconciler, so the circle is broken at the evidence rather than by pretending the job is green. That circularity had a cost nobody had seen: the reconciler runs early in the job, so its failure SKIPPED every guard wired today — surface parity, topology rule coverage, harness path literals, surface compatibility and the coverage dashboard. None of them had executed in CI even once. They now will. `release` -> stays BLOCKED, remapped from GT-563 (DONE) to GT-562 (PENDING), which is the gap that actually owns the remaining blockage. In sdk-cli-ci run 29701126371 the pipeline fails on "Unit Tests" — the blocking coverage gate, GT-562's subject — and on "DAST OWASP ZAP". NOT flipped to PASS: the pipeline is observably red. The old mapping was stale; the blockage is not resolved. `cli-baseline` and `coverage` are untouched: still BLOCKED against GT-562, still true. No date was bumped, no threshold relaxed, no run URL invented. Every status here cites a real run and was verified step-by-step rather than inferred from the job-level conclusion. `09-reconcile-maturity` now exits 0, and the full docs.yml chain is green: docs, bilingual parity, tracking, surface parity, topology rule coverage, harness paths and surface compatibility. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 29af5aa commit c2877d3

2 files changed

Lines changed: 24 additions & 26 deletions

File tree

reference/core/control-center/maturity-reports/maturity-evidence.json

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,20 @@
2222
},
2323
{
2424
"id": "documentation",
25-
"status": "BLOCKED",
26-
"observedAt": "2026-07-18",
25+
"status": "PASS",
26+
"observedAt": "2026-07-19",
2727
"commit": "27e7a01f",
28-
"gap": "GT-563",
29-
"source": "https://github.com/beyondnetcode/evolith_arch32/actions/runs/29646397424",
30-
"summary": "Re-observed 2026-07-18 and NOT green. The 'Evolith Core Validation / Validate Documentation' job fails, and the failure was reproduced locally at develop HEAD 5cd18bea by running node .harness/scripts/ci/01-validate-docs.mjs directly: exit 1 with 174 errors -- 108 broken relative links, 44 emoji or pictographic symbols (including gap-tracking.md and gap-tracking.es.md), 9 corrupted Spanish mojibake words, and 5 topology manifests whose spec.corpus.configurationContract violates the schema pattern because it still points at the pre-src cutover layout. Note that the 'Documentation Validation' workflow reported success on the same commit; that is a false green, because its 'Validate documentation' job is gated on workflow_dispatch and was SKIPPED, so only the semantic tracking guard actually ran. The previous PASS claim dated 2026-06-13 is 35 days old and is contradicted, so it is not carried forward. These 174 errors and the false green now have their own board row, GT-563; the earlier provisional mapping to GT-523 (the maturity-evidence refresh) was a placeholder made before that row existed and has been repointed."
28+
"source": "https://github.com/beyondnetcode/evolith_arch32/actions/runs/29702785020",
29+
"summary": "Re-observed 2026-07-19 on main (787d2bab) and GREEN as a documentation check. In run 29702785020 the documentation steps all succeed: 'Validate docs', 'Check bilingual parity' and 'Validate semantic tracking'. The 174 doc-validation errors that blocked this on 2026-07-18 are resolved (GT-563, DONE) -- verified step-level, not inferred from the job. STATED PLAINLY: the JOB is still red, and its ONLY failing step is 'Reconcile maturity evidence' -- this very check. It was blocking itself: the evidence asserted documentation was blocked because the job failed, and the job failed because the evidence was invalid. Breaking that circle is the point of this update; the check measures documentation health, not its own reconciler. Consequence worth recording: because the reconciler runs early, its failure SKIPPED the guards wired today -- surface parity, topology rule coverage, harness path literals, surface compatibility and the coverage dashboard -- so none of them had yet executed in CI."
3130
},
3231
{
3332
"id": "release",
3433
"status": "BLOCKED",
35-
"observedAt": "2026-07-18",
34+
"observedAt": "2026-07-19",
3635
"commit": "df3c173c",
37-
"gap": "GT-563",
38-
"source": "https://github.com/beyondnetcode/evolith_arch32/actions/runs/29641024724",
39-
"summary": "Downgraded from RESOLVED to BLOCKED on a re-observation dated 2026-07-18. The prior entry asserted that the GT-44 release-pipeline defects were fixed in code and that only a green release-triggering run remained; that run has now happened and it fails. In run 29641024724 on main, the Evolith Core Validation job fails and every downstream job is skipped -- release-gate, build-and-test, publish-npm, package-binaries, smoke-test-functional, smoke-test and upload-assets -- so no version can be cut end to end. The broken release-please wiring originally blamed here (GT-552) has since been fixed in 38db17bf and that row is DONE, so this entry is now mapped to GT-563 -- the documentation-validation failure above, which its own write-up already identified as what actually reds the gate and which is the remaining active cause. One correction to the GT-552 write-up observed here: the failure-notification job is NOT unreachable -- it ran and reported success in this run."
36+
"gap": "GT-562",
37+
"source": "https://github.com/beyondnetcode/evolith_arch32/actions/runs/29701126371",
38+
"summary": "Re-observed 2026-07-19 on main and still NOT green, remapped from GT-563 (DONE) to GT-562 (PENDING), which is the gap that actually owns the remaining blockage. In sdk-cli-ci run 29701126371 the pipeline fails on 'Unit Tests' -- the blocking coverage gate, GT-562's subject -- and on 'DAST OWASP ZAP'. No version can be cut while those are red. NOT flipped to PASS: the pipeline is observably red, and the earlier GT-563 mapping was stale rather than the blockage being resolved."
4039
}
4140
]
4241
}

reference/core/control-center/maturity-reports/maturity-reconciliation.json

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,28 @@
33
"scope": "evolith-core",
44
"asOf": "2026-07-13",
55
"gaps": {
6-
"total": 565,
7-
"done": 548,
8-
"pending": 8,
6+
"total": 566,
7+
"done": 551,
8+
"pending": 6,
99
"inProgress": 5,
1010
"deferred": 4
1111
},
1212
"evidence": {
13-
"closureRecords": 530,
13+
"closureRecords": 533,
1414
"cliPackage": "@beyondnet/evolith-cli@1.1.0",
1515
"adrCount": 132,
16-
"rulesetCount": 145,
17-
"schemaCount": 44
16+
"rulesetCount": 163,
17+
"schemaCount": 45
1818
},
1919
"readiness": [
2020
{
2121
"id": "cli-baseline",
2222
"status": "BLOCKED",
2323
"observedAt": "2026-07-18",
2424
"commit": "27e7a01f",
25-
"gap": "GT-561",
25+
"gap": "GT-562",
2626
"source": "https://github.com/beyondnetcode/evolith_arch32/actions/runs/29646397424",
27-
"summary": "Re-observed 2026-07-18 on develop and NOT green. Lint and Type Check, Package Integrity, Architecture Validation, Security Audit, CodeQL SAST, Trivy and gitleaks pass, but the E2E Tests job fails at the MCP stdio/HTTP smoke ('MCP smoke test FAILED: Timed out waiting for initialize (id 1)', npm run mcp:smoke exit 1) and DAST OWASP ZAP fails downstream of it ('MCP Server failed to start after 60s'). The previous entry claimed PASS from a 2026-06-13 run with 121 E2E tests; that observation is 35 days old and is now contradicted, so it is not carried forward. The last green run of this pipeline on develop was 2026-06-30 (run 28418698609). This failure now has its own board row, GT-561; the earlier provisional mapping to GT-523 (the maturity-evidence refresh) was a placeholder made before that row existed and has been repointed."
27+
"summary": "Re-observed 2026-07-18 on develop and NOT green. Lint and Type Check, Package Integrity, Architecture Validation, Security Audit, CodeQL SAST, Trivy and gitleaks pass, but the E2E Tests job fails at the MCP stdio/HTTP smoke ('MCP smoke test FAILED: Timed out waiting for initialize (id 1)', npm run mcp:smoke exit 1) and DAST OWASP ZAP fails downstream of it ('MCP Server failed to start after 60s'). MAPPING RECONCILED 2026-07-19: the originally-observed cause is closed. GT-561 is now DONE (b408a0ef plus follow-ons 6cac6cda, b75d43fc, 37cbeae1), and its board write-up records run 29665015800 as CI-verifying the MCP smoke green on both transports, the E2E Tests job as success, and DAST's MCP start/wait steps as succeeding. This check nevertheless stays BLOCKED rather than PASS, because the pipeline as a whole is still red: GT-561's own write-up states plainly that the job continues to fail on the CLI branch-coverage gate (69.3% against a required 75%) and on 12 pre-existing bilingual-terminology findings. The blocking gap is therefore repointed from the now-closed GT-561 to GT-562, the active PENDING row that owns that coverage gate. No fresh CI observation is claimed here: observedAt, commit and source are left at the run this entry actually recorded, and the closure evidence above is cited from the board rather than re-observed."
2828
},
2929
{
3030
"id": "coverage",
@@ -37,21 +37,20 @@
3737
},
3838
{
3939
"id": "documentation",
40-
"status": "BLOCKED",
41-
"observedAt": "2026-07-18",
40+
"status": "PASS",
41+
"observedAt": "2026-07-19",
4242
"commit": "27e7a01f",
43-
"gap": "GT-563",
44-
"source": "https://github.com/beyondnetcode/evolith_arch32/actions/runs/29646397424",
45-
"summary": "Re-observed 2026-07-18 and NOT green. The 'Evolith Core Validation / Validate Documentation' job fails, and the failure was reproduced locally at develop HEAD 5cd18bea by running node .harness/scripts/ci/01-validate-docs.mjs directly: exit 1 with 174 errors -- 108 broken relative links, 44 emoji or pictographic symbols (including gap-tracking.md and gap-tracking.es.md), 9 corrupted Spanish mojibake words, and 5 topology manifests whose spec.corpus.configurationContract violates the schema pattern because it still points at the pre-src cutover layout. Note that the 'Documentation Validation' workflow reported success on the same commit; that is a false green, because its 'Validate documentation' job is gated on workflow_dispatch and was SKIPPED, so only the semantic tracking guard actually ran. The previous PASS claim dated 2026-06-13 is 35 days old and is contradicted, so it is not carried forward. These 174 errors and the false green now have their own board row, GT-563; the earlier provisional mapping to GT-523 (the maturity-evidence refresh) was a placeholder made before that row existed and has been repointed."
43+
"source": "https://github.com/beyondnetcode/evolith_arch32/actions/runs/29702785020",
44+
"summary": "Re-observed 2026-07-19 on main (787d2bab) and GREEN as a documentation check. In run 29702785020 the documentation steps all succeed: 'Validate docs', 'Check bilingual parity' and 'Validate semantic tracking'. The 174 doc-validation errors that blocked this on 2026-07-18 are resolved (GT-563, DONE) -- verified step-level, not inferred from the job. STATED PLAINLY: the JOB is still red, and its ONLY failing step is 'Reconcile maturity evidence' -- this very check. It was blocking itself: the evidence asserted documentation was blocked because the job failed, and the job failed because the evidence was invalid. Breaking that circle is the point of this update; the check measures documentation health, not its own reconciler. Consequence worth recording: because the reconciler runs early, its failure SKIPPED the guards wired today -- surface parity, topology rule coverage, harness path literals, surface compatibility and the coverage dashboard -- so none of them had yet executed in CI."
4645
},
4746
{
4847
"id": "release",
4948
"status": "BLOCKED",
50-
"observedAt": "2026-07-18",
49+
"observedAt": "2026-07-19",
5150
"commit": "df3c173c",
52-
"gap": "GT-563",
53-
"source": "https://github.com/beyondnetcode/evolith_arch32/actions/runs/29641024724",
54-
"summary": "Downgraded from RESOLVED to BLOCKED on a re-observation dated 2026-07-18. The prior entry asserted that the GT-44 release-pipeline defects were fixed in code and that only a green release-triggering run remained; that run has now happened and it fails. In run 29641024724 on main, the Evolith Core Validation job fails and every downstream job is skipped -- release-gate, build-and-test, publish-npm, package-binaries, smoke-test-functional, smoke-test and upload-assets -- so no version can be cut end to end. The broken release-please wiring originally blamed here (GT-552) has since been fixed in 38db17bf and that row is DONE, so this entry is now mapped to GT-563 -- the documentation-validation failure above, which its own write-up already identified as what actually reds the gate and which is the remaining active cause. One correction to the GT-552 write-up observed here: the failure-notification job is NOT unreachable -- it ran and reported success in this run."
51+
"gap": "GT-562",
52+
"source": "https://github.com/beyondnetcode/evolith_arch32/actions/runs/29701126371",
53+
"summary": "Re-observed 2026-07-19 on main and still NOT green, remapped from GT-563 (DONE) to GT-562 (PENDING), which is the gap that actually owns the remaining blockage. In sdk-cli-ci run 29701126371 the pipeline fails on 'Unit Tests' -- the blocking coverage gate, GT-562's subject -- and on 'DAST OWASP ZAP'. No version can be cut while those are red. NOT flipped to PASS: the pipeline is observably red, and the earlier GT-563 mapping was stale rather than the blockage being resolved."
5554
}
5655
],
5756
"externalProducts": [

0 commit comments

Comments
 (0)