Fix: MAESTRO layer descriptions still defined the superseded model - #88
Merged
Merged
Conversation
Every docs/*.js bundle carried a `// Generated: <today>` header. Nothing else in the generator output varies between runs, so that one line was the whole reason a regenerate on a different day showed four dirty files — and, since #30, the reason the Generator reproducibility job and the `committed entries match a fresh generation` test could only pass on the day the bundles were last committed. - generate.js: drop the run-date lines; the Source header now reads the version from package.json instead of a hard-coded, stale `v1.5.2`. - generate.test.mjs: assert no bundle header names a run or carries a date. - validate.yml: the reproducibility job now diffs every generated artefact (backlinks.json, backlinks.js, frameworks-registry.js too). - CONTRIBUTING.md: document the build contract — generated files, the determinism requirement, and why the bundles are committed (Pages serves docs/ from main; no deploy workflow exists). Determinism only. No structural, route, layout or logo change (C2). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0147wBugcuzLkswKPqgofcke
#32 corrected the seven layer titles in data/frameworks/maestro.json to the CSA model but left the descriptions behind, so L4-L7 each carried the right name and another layer's definition — L4 "Deployment & Infrastructure" described as "Tool access — covers MCP…", L7 "Agent Ecosystem" as "Human-agent interface". These ship in the npm package's registries, docs/frameworks-registry.js and the OSCAL catalog export. - All seven descriptions transcribed from the architecture table in llm-top10/LLM_MAESTRO.md, the file checkMaestroLayers() already treats as canonical. L1-L3 change too: their old scopes followed the same superseded split (MCP and tool registries sat under L4). - checkMaestroLayers() now compares descriptions as well as titles. Negative-tested: restoring the old L5 description fails the run. - Registry changelog entry added. Sub-controls untouched (issue #31). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014SfR2YzLxRH54DAVzDk8gR
Conflicts were only in the four generated webapp bundles, and only in their header lines: #92 regenerated them with a `// Generated:` date that this branch removes. Resolved by re-running scripts/generate.js on the merged sources; a second run is byte-identical. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014SfR2YzLxRH54DAVzDk8gR
Generated files re-run on the merged sources; a second generation is byte-identical. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014SfR2YzLxRH54DAVzDk8gR
Base automatically changed from
fix/T-ENG03-deterministic-webapp-build
to
main
September 14, 2026 21:08
#37 landed as a squash, so this branch's copies of its commits resolve as identical content. Generated files re-run on the merged sources; a second generation is byte-identical. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014SfR2YzLxRH54DAVzDk8gR
Generated files re-run on the merged sources; a second generation is byte-identical. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014SfR2YzLxRH54DAVzDk8gR
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Plan ID: — (follow-up to #32; reported on issue #31) Ticket: — Wave: —
Constraints honored:
docs/frameworks-registry.jsis regenerated with data only; needs approval.Why
#32 corrected the seven MAESTRO layer titles to the CSA model, but left the descriptions of the superseded model behind. Every layer from L4 up had the right name and another layer's definition:
llm-top10/LLM_MAESTRO.md)registries, the webapp registry bundle, and the OSCAL catalog export. Anyone choosing a layer by its description picked the wrong one.LLM_MAESTRO.mdand the registry follows. The validator keeps them in lockstep.Changes
data/frameworks/maestro.json: 7 layer descriptions; changelog entry.docs/frameworks-registry.js: regenerated.scripts/validate.js:checkMaestroLayers()now compares layer descriptions as well as titles. Why it missed this: it checked titles only.Deliberately NOT changed
Agentic_MAESTRO.mdadds "drift detection" to L5).LLM_MAESTRO.mdstays canonical.Human decisions / approvals needed
docs/frameworks-registry.js.Verify
Local only:
Content Validationruns for PRs intomain, so it will run on retarget.🤖 Generated with Claude Code
https://claude.ai/code/session_014SfR2YzLxRH54DAVzDk8gR