Skip to content

docs(inspect): make the CycloneDX and SPDX guides match format-mapping.json - #518

Open
drk-ram wants to merge 1 commit into
GenAI-Security-Project:integrationfrom
drk-ram:docs/inspect-guides-match-format-mapping-384
Open

drk-ram wants to merge 1 commit into
GenAI-Security-Project:integrationfrom
drk-ram:docs/inspect-guides-match-format-mapping-384

Conversation

@drk-ram

@drk-ram drk-ram commented Nov 6, 2026

Copy link
Copy Markdown
Collaborator

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 in x-acs-type-map, and the guides link it and restate it. The schema itself is corrected, because service is not a CycloneDX 1.6 component type: MCP servers, A2A peers and knowledge sources go in the top-level services array and agent_capability in compositions. skill is added to both guides.

Which issue does this implement

Closes #384

  • This is an editorial correction (typo, grammar, link, formatting) with no change in
    meaning, so it needs no issue

Base branch

  • integration, because this touches the specification, schemas, a reference
    implementation, an adapter, tests, or CI
  • main, because every changed path is on the documentation lane allowlist in
    CONTRIBUTING.md

Type of change

  • Specification change (schema, hooks, events, AgBOM)
  • Reference implementation or adapter
  • Documentation
  • Tooling or CI
  • Governance (licensing, security policy, contributor docs)

Specification changes

  • I opened a Discussion before this PR
  • Schema changes validate against the JSON Schema spec
  • I described the impact on downstream implementers below

Breaking for implementers? For an implementer who followed the guides, yes, and that is the fix. Output now follows the schema: CycloneDX model is machine-learning-model (not ai-model), memory_store is data, mcp_server, a2a_peer and knowledge_source are services[] entries, agent_capability is a compositions[] entry; SPDX memory_store is dataset_DatasetPackage and agent_capability is Bundle, with CONTAINS and EXPOSES relationships. An implementer who followed the schema sees no change in meaning, except for two corrections to it:

  • SPDX class names use the SPDX 3.0 JSON-LD forms (ai_AIPackage, software_Package, dataset_DatasetPackage, Bundle) instead of spdx:-prefixed names, so the schema and the guide use one spelling.
  • The CycloneDX text no longer says memory_store takes a type='database' subtype or that machine-learning-model is a "bom-types extension". CycloneDX 1.6 defines neither claim.

Not changed:

I tested this

  • I synced my branch with the base branch before opening this

  • uv run pytest -v passes on my machine

  • uv run mkdocs build --strict passes on my machine

  • uv run pytest tests/test_format_mapping_guides.py -q: 14 passed

  • uv run pytest -q: 1214 passed, 10 failed, 20 errors. The failures and errors are the symlink, subprocess and timing tests in test_fetch_roadmap, test_overrides, test_pr_intake_workflow, test_publish_schemas and test_closing_choice that fail on this Windows machine without this change.

  • uv run mkdocs build --strict: passes

Checklist

  • Commits are signed off with git commit -s (required by the DCO)
  • Prose follows STYLE.md
  • No secrets, tokens, or internal URLs in the diff

Security

  • This change has no security impact

…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>
@github-actions

github-actions Bot commented Nov 6, 2026

Copy link
Copy Markdown

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.

@github-actions

github-actions Bot commented Nov 6, 2026

Copy link
Copy Markdown

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.

@acs-board-reconciler acs-board-reconciler Bot moved this from Needs triage to In progress in ACS Project Tracker Nov 7, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status:needs-triage Not yet triaged. Applied by the issue forms

Projects

Status: In progress

Development

Successfully merging this pull request may close these issues.

[Bug] CycloneDX and SPDX guides disagree with format-mapping.json

1 participant