Skip to content

Fix: MAESTRO layer descriptions still defined the superseded model - #88

Merged
emmanuelgjr merged 6 commits into
mainfrom
fix/maestro-layer-descriptions
Sep 15, 2026
Merged

emmanuelgjr merged 6 commits into
mainfrom
fix/maestro-layer-descriptions

Conversation

@emmanuelgjr

Copy link
Copy Markdown
Contributor

Plan ID: — (follow-up to #32; reported on issue #31) Ticket: — Wave: —
Constraints honored:

  • C4 (transcription only, no taxonomy change): descriptions come from this repository's own canonical architecture table; no control ids change; sub-controls untouched.
  • C2: docs/frameworks-registry.js is regenerated with data only; needs approval.
  • C1: untouched.

Stacked on #37, like #87: every branch from main currently fails two CI jobs on the date-header bug (Drift 11), and this PR regenerates a docs/*.js bundle. Merge #37, then retarget to main.

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:

id title description before description now (llm-top10/LLM_MAESTRO.md)
L1 Foundation Models Base model layer — covers model selection, provenance, fine-tuning security, and model integrity threats. Base LLMs providing core reasoning and generation
L2 Data Operations Data pipelines — covers RAG, vector stores, training data, embedding security, and data governance. Ingestion pipelines, storage, RAG, embeddings, vector stores
L3 Agent Frameworks Agent runtime — covers agent orchestration, goal management, memory, and planning security. Orchestration platforms, tool registries, MCP, plugin ecosystems
L4 Deployment & Infrastructure Tool access — covers MCP, API integrations, plugin security, and tool authorization. Servers, containers, networks, CI/CD, runtime environments
L5 Evaluation & Observability Infrastructure — covers containerization, networking, secrets management, and runtime isolation. Monitoring, logging, telemetry, behavioural baselines
L6 Security & Compliance Multi-agent coordination — covers inter-agent communication, delegation, consensus, and cascading failure prevention. Identity, access control, audit, governance, credential management
L7 Agent Ecosystem Human-agent interface — covers user authentication, output validation, human oversight, and trust management. Multi-agent interaction, A2A communication, cascade dynamics
  • Where the old text shipped: the npm package's registries, the webapp registry bundle, and the OSCAL catalog export. Anyone choosing a layer by its description picked the wrong one.
  • Correction to my MAESTRO registry sub-controls follow the superseded layer model #31 comment: it said L1–L3 "agree with the table". They don't quite. L3's old scope omitted MCP and tool registries because the superseded model put those under L4. So all seven are transcribed.
  • Tradeoff: the table text is terser than the old L1–L3 prose, e.g. it drops "provenance" and "memory". If that detail matters, enrich the table in LLM_MAESTRO.md and 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

  • The 21 sub-controls, which still follow the superseded model: that's a control-id / taxonomy decision (MAESTRO registry sub-controls follow the superseded layer model #31).
  • Mapping rows: all reference top-level ids, so none move.
  • The small wording differences between the four MAESTRO mapping files' tables (e.g. Agentic_MAESTRO.md adds "drift detection" to L5). LLM_MAESTRO.md stays canonical.

Human decisions / approvals needed

  • C2: data-only regeneration of docs/frameworks-registry.js.

Verify

$ node scripts/validate.js
before: Summary: 0 error(s), 84 warning(s), 312 passed
after:  Summary: 0 error(s), 84 warning(s), 312 passed
negative test — old L5 description restored:
  ✗ [MAESTRO layers] maestro.json L5 description "Infrastructure — covers containerization, …" does not match LLM_MAESTRO.md: "Monitoring, logging, telemetry, behavioural baselines"
  Summary: 1 error(s)
$ npm run stats:check     ✓ current
$ npm test                51/51
$ grep -r "Tool access — covers" (excluding node_modules, reports)  → no matches

Local only: Content Validation runs for PRs into main, so it will run on retarget.

🤖 Generated with Claude Code

https://claude.ai/code/session_014SfR2YzLxRH54DAVzDk8gR

emmanuelgjr and others added 2 commits August 30, 2026 10:10
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
emmanuelgjr and others added 2 commits September 14, 2026 15:44
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
emmanuelgjr and others added 2 commits September 14, 2026 17:10
#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
@emmanuelgjr
emmanuelgjr merged commit 4cf353d into main Sep 15, 2026
6 checks passed
@emmanuelgjr
emmanuelgjr deleted the fix/maestro-layer-descriptions branch September 15, 2026 01:29
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