Follow-up to the layer-name correction in this PR series.
data/frameworks/maestro.json carried seven layer titles that contradicted the CSA source and this repository's own three MAESTRO mapping files. The seven top-level titles are now corrected and guarded by validate.js.
The 21 sub-controls under them were not touched, and they should be. They were written against the same mistaken layer model, so several now sit under a layer whose name no longer describes them:
| Sub-control |
Currently under |
Reads like |
L4.1 Tool authorization and scoping
L4.2 MCP server security
L4.3 API integration security |
L4 Deployment & Infrastructure |
L3 Agent Frameworks — CSA puts "tool registries, MCP, plugin ecosystems" there |
L5.1 Runtime isolation
L5.3 Network segmentation |
L5 Evaluation & Observability |
L4 Deployment & Infrastructure |
L5.2 Secrets and credential management |
L5 Evaluation & Observability |
L6 Security & Compliance |
L6.1 Inter-agent authentication
L6.2 Delegation controls
L6.3 Cascading failure prevention |
L6 Security & Compliance |
L7 Agent Ecosystem |
L7.1 Output validation and filtering
L7.3 Trust calibration |
L7 Agent Ecosystem |
plausible under L7; L7.2 Human oversight less so |
L1.*, L2.* and L3.* look correct as they stand.
Why this was not fixed alongside the titles
Re-homing a sub-control changes its control id, which is an identifier other people may already cite. Deciding where each belongs is taxonomy work, not transcription — it needs someone who will own the answer. Under C4 an agent should not author it.
Impact today is limited, not zero
- All 3,211 mappings reference only the top-level ids
L1–L7, so no mapping row is affected.
- Nothing else in the repo cites a sub-control id: the three drafted
control_failures[] on the AST10 incidents were retargeted to top-level ids in the same PR, precisely so they do not depend on this open question.
- So the sub-controls are currently unused, published, and wrong — which is a documentation defect rather than a data-integrity one.
Suggested resolution
Either re-home the 21 sub-controls against the CSA layer definitions and record the id changes in the registry's changelog, or drop them and keep the registry at the seven layers the framework actually defines and the mappings actually use. The second is smaller and loses nothing that is currently referenced.
/cc maintainer — needs a decision, not an implementation.
Follow-up to the layer-name correction in this PR series.
data/frameworks/maestro.jsoncarried seven layer titles that contradicted the CSA source and this repository's own three MAESTRO mapping files. The seven top-level titles are now corrected and guarded byvalidate.js.The 21 sub-controls under them were not touched, and they should be. They were written against the same mistaken layer model, so several now sit under a layer whose name no longer describes them:
L4.1Tool authorization and scopingL4.2MCP server securityL4.3API integration securityL5.1Runtime isolationL5.3Network segmentationL5.2Secrets and credential managementL6.1Inter-agent authenticationL6.2Delegation controlsL6.3Cascading failure preventionL7.1Output validation and filteringL7.3Trust calibrationL7.2Human oversight less soL1.*,L2.*andL3.*look correct as they stand.Why this was not fixed alongside the titles
Re-homing a sub-control changes its control id, which is an identifier other people may already cite. Deciding where each belongs is taxonomy work, not transcription — it needs someone who will own the answer. Under C4 an agent should not author it.
Impact today is limited, not zero
L1–L7, so no mapping row is affected.control_failures[]on the AST10 incidents were retargeted to top-level ids in the same PR, precisely so they do not depend on this open question.Suggested resolution
Either re-home the 21 sub-controls against the CSA layer definitions and record the id changes in the registry's changelog, or drop them and keep the registry at the seven layers the framework actually defines and the mappings actually use. The second is smaller and loses nothing that is currently referenced.
/cc maintainer — needs a decision, not an implementation.