SkillBOM
Skill Bill of Materials — The Security Standard for AI Skills
The first portable, machine-readable manifest format that declares everything about an AI skill's dependencies, permissions, behavior, and provenance.
1. Overview
A SkillBOM is a JSON document that accompanies every AI skill (MCP tool, agent skill, or integration) published to the MYGRYN marketplace. It serves as a complete security profile, enabling automated risk assessment, trust scoring, and compliance verification.
Design Principles
- Dual-Source Model — Publishers declare a manifest; the platform scanner independently verifies and enriches it. Mismatches are themselves trust signals.
- Machine-Readable First — JSON Schema validated, parseable by CI/CD pipelines, IDE extensions, and API consumers.
- Language-Agnostic — Works for Node.js, Python, Go, Rust, and Docker-based skills.
- Version-Tracked — Every BOM version is hashed and stored, enabling rug-pull detection across releases.
- Compliance-Ready — Maps to EU AI Act (August 2026), NIST AI RMF, and OWASP Agentic Top 10.
Document Types
| Document | File | Purpose |
|---|---|---|
| SkillBOM | skillbom.schema.json | Publisher-declared + scanner-enriched manifest |
| Scanner Overlay | scanner-overlay.schema.json | Raw scanner findings before merge into BOM |
| Trust Delta | trust-delta.schema.json | Declared vs. detected mismatches with trust grade |
Lifecycle
Publisher creates skillbom.json
|
v
SUBMISSION Publisher uploads skill + skillbom.json
|
v
SCANNING Static analysis, dependency audit,
sandbox execution, prompt injection probes,
signature verification, reproducible build check
|
v
OVERLAY Scanner produces scanner-overlay.json
|
v
MERGE Scanner overlay merges into the BOM
|
v
DELTA Trust delta report generated for mismatches
|
v
DECISION approve / conditional / quarantine / delist
2. Schema Sections
codeDependencies
Declares the skill's runtime environment and all code-level dependencies.
Publisher declares
- Runtime and version (
node >=18.0.0,python >=3.10) - Package manager and lockfile hash (SHA-256)
- Direct dependencies with name, version, source, license
Scanner enriches
- CVE data from OSV/NVD APIs
- Transitive dependency tree discovery
- License conflict detection
- Lockfile hash verification (tamper detection)
- Undeclared dependencies via AST import scanning
modelDependencies
Declares which LLMs, embedding models, or local ML models the skill uses.
Publisher declares
- External model API calls (provider, model ID, purpose)
- Bundled local model files (format, hash, source)
- Whether the skill chains to other skills
Scanner enriches
- Detects undeclared HTTP calls to model API endpoints
- Flags unsafe model formats (
pickle,pt) - Verifies model file hashes
- Discovers model calls via AST analysis
dataAccessPatterns
The most security-critical section. Declares every data source and sink.
Sub-sections
- filesystem — paths read/written, sensitivity flags
- network — outbound connections, inbound listeners
- databases — type, SQL ops, tables, PII columns
- externalApis — endpoints, auth methods, token sources
- dataFlowSummary — ingress/egress and trust boundary flags
Key risk signals
sensitive: trueon undeclared pathspiiExposure: "raw"— unmasked PII leaves the systemcrossesTrustBoundary: true- Any
detectedBy: "scanner"entry
permissionRequirements
Declares what the skill needs permission to do, with justifications.
Permission types: network, filesystem, env_var, secret, process, shell, clipboard, browser, camera, microphone
Key fields
scope— narrow scope (e.g.api.stripe.com:443)justification— human-readable reasonprivilegeLevel—minimal→admin- Booleans:
shellAccess,canSpawnProcesses,canModifyAgentConfig,canAccessOtherTools
Key risk signals
shellAccess: true— always high-riskcanModifyAgentConfig: true— CLAUDE.md manipulationscopeCreep: "high"— broader than actual usage- Undeclared permissions detected by scanner
behavioralContract
Defines the skill's interface, safety promises, and runtime observations.
Publisher declares
toolInterface— MCP tool name, input/output schemassideEffects— DB writes, API calls, file changesinvariants— safety promises (e.g.never_deletes_data)resourceLimits— execution time, memory, output size
Scanner enriches (sandbox)
- Actual syscall profile and network fingerprint
- Unexpected syscalls (
execve,fork) - Prompt injection detection in output
- Encoded data detection (base64/hex exfiltration)
- Invariant violation detection
provenance
Establishes the skill's identity, origin, and integrity chain.
Sub-sections
- publisher — identity, verification method
- source — repo URL, commit SHA, branch, tag
- build — reproducibility, artifact hash, signature
- history — version history with BOM hashes
- attestations — scans, audits, compliance certs
Rug-pull indicators
permissionEscalation— did permissions grow?newNetworkEndpoints— new outbound hosts?descriptionChanged— tool poisoning vectormaintainerChanged— account takeover vector
3. Trust Scoring Algorithm
The trust grade (A+ through F) is computed from:
| Factor | Weight | Source |
|---|---|---|
| Permission risk score | 25% | permissionRequirements.riskScore |
| CVE exposure | 15% | codeDependencies.packages[].cves |
| Behavioral compliance | 20% | behavioralContract.observedBehavior |
| Provenance strength | 20% | provenance verification depth |
| Delta severity | 20% | trustDelta.deltas[].severity counts |
Grade Thresholds
Auto-actions
- A/B: Approve for marketplace
- C: Conditional approve (publisher notified of required fixes)
- D: Manual review required (CISO notified)
- F: Automatic quarantine + delist
4. Comparison with Existing Standards
| Standard | Scope | SkillBOM Advantage |
|---|---|---|
| SBOM (CycloneDX/SPDX) | Code dependencies only | Adds model deps, data access, permissions, behavior, provenance |
| AI BOM (emerging) | Model + training data | Adds runtime behavior observation and trust delta tracking |
| OWASP MCP Top 10 | Risk categories | Operationalizes detection into a machine-readable format |
| Docker MCP Catalog | Container-level isolation | Provides skill-level granularity within containers |
| Invariant mcp-scan | Point-in-time scanning | Tracks trust trajectory across versions |
5. File Naming Conventions
<skill-id>.skillbom.json # Publisher-declared BOM <skill-id>.scanner-overlay.json # Scanner findings (internal) <skill-id>.trust-delta.json # Published delta report
6. Versioning
The SkillBOM specification follows semver:
- Major: Breaking schema changes (new required fields, removed fields, changed enums)
- Minor: New optional fields, new enum values
- Patch: Description clarifications, documentation fixes
Current version: 1.0.0