Repository navigation
Conversation
…g.json The two guides and format-mapping.json each called themselves normative and disagreed. CycloneDX model was ai-model in the guide, which is not a CycloneDX 1.6 component type; memory_store was service rather than data; agent_capability was application rather than a composition. SPDX memory_store was Service rather than a dataset package, agent_capability was software_Package rather than a bundle, and the relationships named USES and DEPENDS_ON where the schema names CONTAINS and EXPOSES. skill was absent from both guides. Correct format-mapping.json too: service is not a CycloneDX 1.6 component type, so MCP servers, A2A peers and knowledge sources go in the top-level services array and agent_capability in compositions. Carry each type mapping as data in x-acs-type-map, use the SPDX 3.0 JSON-LD class names, and drop the database subtype and bom-types extension claims that CycloneDX does not define. The guides now link the schema as the source and restate it, and tests/test_format_mapping_guides.py fails when the schema, its prose description or either guide drifts from the others. Closes GenAI-Security-Project#384 Signed-off-by: Raghuvar Karthik Durga <177662415+drk-ram@users.noreply.github.com>
drk-ram
requested review from
GangGreenTemperTatum,
afogel,
bar-capsule,
fewdisc,
mamicidal,
rocklambros and
sclintonowasp
as code owners
November 6, 2026 16:44
drk-ram
requested review from
Lrd0036,
almogbhl,
artmaro and
stefanoamorelli
as code owners
November 6, 2026 16:44
|
Thanks for this. It is queued rather than ignored. A lead has not reviewed this pull request yet. A lead will read it when they have time, and we can't promise a date. Nothing here is rejected. If a check below fails, please fix it. A pull request that waits a long time may be closed, and you can reopen it later. |
|
This pull request's description says it closes #384, which is on the project roadmap. When it merges, GitHub closes that issue and the roadmap counts it as delivered. Please confirm the change delivers the whole issue before merging. |
This branch has not been deployed
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.
What changed
The CycloneDX and SPDX guides now match
format-mapping.json, and a new test keeps them matching. The schema is the source: it carries each type mapping as data inx-acs-type-map, and the guides link it and restate it. The schema itself is corrected, becauseserviceis not a CycloneDX 1.6 component type: MCP servers, A2A peers and knowledge sources go in the top-levelservicesarray andagent_capabilityincompositions.skillis added to both guides.Which issue does this implement
Closes #384
meaning, so it needs no issue
Base branch
integration, because this touches the specification, schemas, a referenceimplementation, an adapter, tests, or CI
main, because every changed path is on the documentation lane allowlist inCONTRIBUTING.md
Type of change
Specification changes
Breaking for implementers? For an implementer who followed the guides, yes, and that is the fix. Output now follows the schema: CycloneDX
modelismachine-learning-model(notai-model),memory_storeisdata,mcp_server,a2a_peerandknowledge_sourceareservices[]entries,agent_capabilityis acompositions[]entry; SPDXmemory_storeisdataset_DatasetPackageandagent_capabilityisBundle, withCONTAINSandEXPOSESrelationships. An implementer who followed the schema sees no change in meaning, except for two corrections to it:ai_AIPackage,software_Package,dataset_DatasetPackage,Bundle) instead ofspdx:-prefixed names, so the schema and the guide use one spelling.memory_storetakes atype='database'subtype or thatmachine-learning-modelis a "bom-types extension". CycloneDX 1.6 defines neither claim.Not changed:
docs/acs.mdstill showsai-modelin two examples. [Docs] Remove SDK code and claims for packages ACS does not publish, and fix the wire examples in acs.md #267 covers that page.agent DEPENDS_ON <component>row for the root agent is gone, because the schema maps agent-level metadata toCreationInfoand defines no root relationship.I tested this
I synced my branch with the base branch before opening this
uv run pytest -vpasses on my machineuv run mkdocs build --strictpasses on my machineuv run pytest tests/test_format_mapping_guides.py -q: 14 passeduv run pytest -q: 1214 passed, 10 failed, 20 errors. The failures and errors are the symlink, subprocess and timing tests intest_fetch_roadmap,test_overrides,test_pr_intake_workflow,test_publish_schemasandtest_closing_choicethat fail on this Windows machine without this change.uv run mkdocs build --strict: passesChecklist
git commit -s(required by the DCO)Security