| Cluster | Present | Gap | Review | Total |
|---|---|---|---|---|
| Metadata | 7 | 3 | 0 | 10 |
| System Level Properties | 3 | 2 | 4 | 9 |
| Models | 12 | 2 | 0 | 14 |
| Datasets Properties | 8 | 0 | 2 | 10 |
| Infrastructure | 0 | 2 | 0 | 2 |
| Security Properties | 0 | 1 | 3 | 4 |
| Key Performance Indicators | 0 | 1 | 1 | 2 |
| Total | 30 | 11 | 10 | 51 |
| Framework | Present | Gap | Failed | Review | Total |
|---|---|---|---|---|---|
| EU AI Act — Annex IV technical documentation | 7 | 7 | 0 | 9 | 23 |
| AI Framework Act (Korea) | 1 | 2 | 0 | 7 | 10 |
| BSI TR-03183-2 — SBOM data fields (EU CRA) | 7 | 1 | 0 | 6 | 14 |
| US SBOM minimum elements | 15 | 4 | 0 | 4 | 23 |
| # | Status | Requirement | Required | Detail | Evidence / how |
|---|---|---|---|---|---|
| 1 | PASS | Spec version (CycloneDX 1.3/1.4/1.5/1.6/1.7) | yes | CycloneDX 1.7 | |
| 2 | PASS | Timestamp (metadata.timestamp) | yes | 2026-10-26T16:56:51+00:00 | |
| 3 | PASS | Tool info (metadata.tools) | yes | 2 tool(s) | |
| 4 | PASS | Top-level component name+version | yes | bert-base-uncased@86b5e093 | |
| 5 | N/A | Component name+version coverage (100%) | yes | no packages to measure | |
| 6 | N/A | PURL coverage (>= 90%) | yes | no packages to measure | |
| 7 | N/A | File component identifier coverage (hash, >= 80%, recommended) | no | no file components | |
| 8 | PASS | Traceable PURL (no pkg:generic, advisory) | no | 0 untraceable | |
| 9 | PASS | PURL syntax (pkg:type/[namespace/]name) | yes | 0 malformed | |
| 10 | N/A | PURL namespace where the type requires it (pkg:maven/<groupId>/name) | yes | no identifiers of a type that requires a namespace | |
| 11 | N/A | PURL namespace for golang/huggingface (advisory) | no | no identifiers of a type that requires a namespace | |
| 12 | PASS | PURL type defined by purl-spec (advisory) | no | 0 undefined type(s) | |
| 13 | PASS | Transitive dependencies (graph edges) | yes | 2 edge(s), graph completeness unknown (no positive evidence found, not a defect) | |
| 14 | PASS | License coverage (>= 80%, recommended) | no | 100% (2/2) | |
| 15 | PASS | Hash coverage (>= 50%, recommended) | no | 50% (1/2) | |
| 16 | WARN | SHA-512 checksum coverage (>= 80%, recommended) | no | 0% (0/2) | |
| 17 | N/A | Component creator coverage (>= 80%, recommended) | no | no packages to measure | |
| 18 | N/A | Component filename coverage (>= 80%, recommended) | no | no packages to measure | |
| 19 | N/A | Source or distribution URI coverage (>= 80%, recommended) | no | no packages to measure | |
| 20 | N/A | Delivered-file properties (executable/archive/structured) | no | no packages to measure | |
| 21 | WARN | SBOM author | no | not present in the SBOM | How to fill this |
| 22 | WARN | SBOM author signature | no | not present in the SBOM | What to establishA signature carried inside the document, or a detached one sitting next to the SBOM as <sbom-filename>.sig (cosign's own convention, e.g. from --sign), is detected automatically and this row will say so. A detached signature under a different name or location is not visible here, because this report only looks for that one convention. Verify it against the sender's key before treating the contents as theirs, and record that you did. |
| 23 | PASS | SBOM data format name | no | present | |
| 24 | PASS | SBOM data format version | no | present | |
| 25 | PASS | SBOM generation context | no | present | |
| 26 | PASS | SBOM timestamp | no | present | |
| 27 | PASS | SBOM tool name | no | present | |
| 28 | PASS | SBOM tool version | no | present | |
| 29 | PASS | SBOM version | no | present | |
| 30 | PASS | Component name | no | 3/3 component(s) | |
| 31 | PASS | Component version | no | 3/3 component(s) | |
| 32 | PASS | Component producer | no | 3/3 component(s) | |
| 33 | WARN | Component identifiers | no | 2/3 component(s) | pkg:huggingface/google-bert/bert-base-uncased@86b5e093 |
| 34 | PASS | Component license | no | 3/3 component(s) | |
| 35 | WARN | Component hash value | no | 2/3 component(s) | How to fill this |
| 36 | PASS | Component hash algorithm | no | 3/3 component(s) | |
| 37 | PASS | Component dependency relationship | no | present | |
| 38 | PASS | Machine-processable data | no | present | |
| 39 | REVIEW | Coverage | no | requires human review (no automated source) | What to establishEstablish that the SBOM lists every component making up the software, transitive dependencies included. No tool can confirm this from the document alone — the document cannot show what was left out of it. Compare it against the build's own dependency resolution, or against the manifests the software is built from. |
| 40 | REVIEW | Accommodation of updates to SBOM data | no | requires human review (no automated source) | What to establishEstablish that there is a way to correct SBOM data after it has been published, and that corrections go out promptly. This is a practice of the organisation issuing the SBOM, not a field in it. |
| 41 | REVIEW | Distribution and delivery | no | requires human review (no automated source) | What to establishEstablish that whoever needs the SBOM can get it promptly, and that any access control keeps unauthorized parties out without blocking authorized ones or preventing the data from being loaded into their security tools. |
| 42 | PASS | Explicitly identifying unknown information | no | present | |
| 43 | REVIEW | Frequency | no | requires human review (no automated source) | What to establishEstablish that each software version or update has an SBOM of its own, and that a revised SBOM is issued when the component data changes or an error in it is found. |
| 44 | N/A | PURL resolves in its repository (advisory) | no | repository lookup not run |
| # | Status | Requirement | Detail | Evidence / how |
|---|---|---|---|---|
| 1 | WARN | SBOM author | not present in the SBOM | |
| 2 | PASS | SBOM version | present | |
| 3 | PASS | SBOM data format name | present | |
| 4 | PASS | SBOM data format version | present | |
| 5 | WARN | SBOM author signature | not present in the SBOM | How to fill this |
| 6 | PASS | SBOM tool name | present | |
| 7 | PASS | SBOM tool version | present | |
| 8 | WARN | SBOM generation context | not present in the SBOM | |
| 9 | PASS | SBOM timestamp | present | |
| 10 | PASS | SBOM dependency relationship | present | |
| 11 | WARN | System name | not present in the SBOM | |
| 12 | PASS | System components | present | |
| 13 | WARN | System producer | not present in the SBOM | |
| 14 | PASS | System version | present | |
| 15 | PASS | System timestamp | present | |
| 16 | REVIEW | System data flow | requires human review (no automated source) | What to establishDescribe how data moves through the system: where an input comes from, what the model receives, and where its output goes. In BomLens, declare it with the service in the AI declaration (service.dataFlows: the direction, a classification, and the source and destination addresses); the next scan writes it to the SBOM as CycloneDX services[].data, marked as the publisher's declaration. An SBOM from another tool counts when its services carry serviceData. Confirm the description matches how the system is actually deployed. |
| 17 | REVIEW | System data usage | requires human review (no automated source) | What to establishState what the system does with the data it receives: whether it is stored, passed to another component, or used for further training. In BomLens, write it as the description of each data flow of the declared service (service.dataFlows[].description); the next scan writes it to the SBOM, marked as the publisher's declaration. Check this against the privacy notice you publish. |
| 18 | REVIEW | System input/output properties | requires human review (no automated source) | What to establishDescribe the input and output the system accepts and produces: formats, size limits, and anything it refuses. In BomLens, declare the service's input and output kinds (service.inputModality, service.outputModality); the next scan records them on the service, marked as the publisher's declaration. A person confirms the rest, because a model card lists modalities, not the system's actual interface. |
| 19 | REVIEW | Intended application area | requires human review (no automated source) | What to establishState the field the system is intended for and the uses that are out of scope. This is a decision, not a fact a tool can read, and regulators ask for it directly. In BomLens, declare the service's field and what it is for (service.domain, service.informationAboutApplication); the next scan records them on the service, marked as the publisher's declaration. |
| 20 | PASS | Model name | 1/1 model component(s) | |
| 21 | PASS | Model identifier | 1/1 model component(s) | pkg:huggingface/google-bert/bert-base-uncased@86b5e093 |
| 22 | PASS | Model version | 1/1 model component(s) | |
| 23 | PASS | Model timestamp | 1/1 model component(s) | |
| 24 | PASS | Model producer | 1/1 model component(s) | |
| 25 | WARN | Model description | 0/1 model component(s) | How to fill this |
| 26 | PASS | Model hash value | 1/1 model component(s) | |
| 27 | PASS | Model hash algorithm | 1/1 model component(s) | SHA-256 |
| 28 | PASS | Model properties (model card) | 1/1 model component(s) | bert |
| 29 | WARN | Model input-output properties | 0/1 model component(s) | How to fill this |
| 30 | PASS | Model training properties | 1/1 model component(s) | |
| 31 | PASS | Model license | 1/1 model component(s) | Apache-2.0 |
| 32 | PASS | Model license — openness (weight/architecture/data/training) | present | open-architecture, open-data, open-weight, openness:architecture=open-architecture, openness:training-data=open-data, openness:training=undisclosed, openness:weights=open-weight |
| 33 | PASS | Model external references | 1/1 model component(s) | |
| 34 | PASS | Dataset name | present | bookcorpus, wikipedia |
| 35 | PASS | Dataset description | present | |
| 36 | PASS | Dataset content | present | |
| 37 | PASS | Dataset identifier | present | |
| 38 | PASS | Dataset hash | present | |
| 39 | PASS | Dataset provenance | present | |
| 40 | REVIEW | Dataset statistical properties | requires human review (no automated source) | What to establishGive the size and shape of the training data — record counts, class balance, and any known skew. These numbers explain the model's limits, so state them even when they are unflattering. |
| 41 | REVIEW | Dataset sensitivity (PII/copyright) | requires human review (no automated source) | What to establishJudge whether the training data holds personal information or third-party copyrighted work, and record what you filtered out and how. Where the answer is unclear, take it to your privacy and legal contacts before release. |
| 42 | PASS | Dataset dependency relationship | present | |
| 43 | PASS | Dataset license | present | |
| 44 | WARN | Infrastructure software (dependencies) | not present in the SBOM | |
| 45 | WARN | Infrastructure hardware (HBOM link) | not present in the SBOM | How to fill this |
| 46 | REVIEW | Security controls | requires human review (no automated source) | What to establishList the controls that protect the model and its data — who can reach the weights, how the training environment is isolated, how artefacts are signed. These live in your operations, not in the SBOM. |
| 47 | REVIEW | Security compliance | requires human review (no automated source) | What to establishName the security standard or internal policy this model was built under, and who signed off. Point at the assessment record rather than restating it here. |
| 48 | REVIEW | Cybersecurity policy information | requires human review (no automated source) | What to establishGive the route for reporting a vulnerability in this model and who answers it. A published model needs a contact that outlives the person who trained it. |
| 49 | WARN | Vulnerability referencing | not present in the SBOM | |
| 50 | REVIEW | Security metrics | requires human review (no automated source) | What to establishRecord what you measured on the security side — adversarial or jailbreak testing, refusal rates, red-team results — with the method and the date. If nothing was measured, say so plainly. |
| 51 | WARN | Operational performance KPIs | not present in the SBOM |