CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/sbom-formats

Reference for the two SBOM specification families and how to choose between them - CycloneDX v1.6 (OWASP-curated, security-focused: components, services, dependencies, first-class vulnerabilities[] with embedded VEX, formulation, ML/SaaS BOMs; XML / JSON / Protobuf) as the primary format, with SPDX 2.3 + 3.0 (Linux Foundation, license-focused: packages, relationships, license expressions, Tag-Value/JSON encodings, ISO/IEC 5962:2021) covered as a reference. Includes per-language generators, schema validation, sign + attest CI wiring, and the format-choice guidance (CycloneDX for security-focused consumers; SPDX for US Federal procurement, Linux Foundation, and license-compliance contexts). Use when the user asks to write or validate an SBOM in CycloneDX or SPDX form, or the team must pick its SBOM format.

72

Quality

91%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

component-types-and-tooling.mdreferences/

CycloneDX component types and per-language tooling

Reference tables extracted from cyclonedx-format. See cyclonedx.org/specification/overview for the source spec.

Component types

Per cdx-spec common component types:

TypeUse
applicationTop-level app being described
libraryCode dependency (npm, pip, Maven artifact)
frameworkApplication framework (React, Django, Spring)
containerOCI/Docker container image
operating-systemOS (Alpine, Ubuntu, etc.)
firmwareEmbedded firmware
deviceHardware device
fileStandalone file (script, binary)
machine-learning-modelML model (since 1.5)
dataDataset (since 1.5)
cryptographic-assetCrypto algorithm/key (since 1.6)

The purl (Package URL) field is the canonical identifier per github.com/package-url/purl-spec.

Per-language native tooling

CycloneDX has per-language native generators (alternative to Syft):

LanguageToolSource
Node.js@cyclonedx/cyclonedx-npmgithub.com/CycloneDX/cyclonedx-node-npm
Pythoncyclonedx-py (cyclonedx-bom)github.com/CycloneDX/cyclonedx-python
Java/Mavencyclonedx-maven-plugingithub.com/CycloneDX/cyclonedx-maven-plugin
Java/Gradlecyclonedx-gradle-plugingithub.com/CycloneDX/cyclonedx-gradle-plugin
Gocyclonedx-gomodgithub.com/CycloneDX/cyclonedx-gomod
.NETCycloneDX-DOTNETgithub.com/CycloneDX/cyclonedx-dotnet
Rustcargo-cyclonedxgithub.com/CycloneDX/cyclonedx-rust-cargo

Per-language tools often produce richer SBOMs than Syft (deeper metadata, language-specific quirks handled).

SKILL.md

tile.json