Skip to content

Supply chain integration: Sigil attestations + SBOM/AIBOM + Rivet traceability bridge #107

@avrabe

Description

@avrabe

Context

Three regulatory deadlines converge in 2026:

  • EU AI Act (Aug 2, 2026): AI system documentation, traceability, risk management
  • EU Cyber Resilience Act (Sep 11, 2026): Mandatory vulnerability reporting; Dec 2027: machine-readable SBOMs for all digital products in the EU
  • IEC 62304 Ed.2 (~2026): AI lifecycle for health software

All require overlapping evidence that currently lives in separate tools:

Evidence Layer What Standard Tool Today
What's in the software SBOM CycloneDX / SPDX Syft, Trivy, etc.
How was it built SLSA provenance SLSA v1.1+ Sigil (PulseEngine)
What AI generated it AIBOM CycloneDX ML-BOM Nobody (#104)
Does it meet requirements Traceability ISO 26262, ASPICE, etc. Rivet (PulseEngine)
Is it safe Safety case + STPA UL 4600, ISO/PAS 8800 Rivet (PulseEngine)
Is the binary authentic Signatures Sigstore, in-toto Sigil (PulseEngine)

PulseEngine already has layers 2, 4, 5, and 6. This issue connects them and adds 1 and 3.

Design

1. Sigil attestation → Rivet artifact

Each Sigil attestation (DSSE envelope with in-toto predicate) becomes a Rivet artifact:

```yaml

  • id: ATT-meld-fuse-001
    type: build-attestation
    title: "meld fuse: vehicle-control.wasm"
    status: verified
    provenance:
    slsa-level: 3
    builder: github-actions
    builder-id: "https://github.com/pulseengine/meld/actions/runs/12345"
    source-repo: "https://github.com/pulseengine/vehicle-control"
    source-digest: "sha256:abc123..."
    output-digest: "sha256:def456..."
    tool: meld
    tool-version: "0.3.2"
    timestamp: "2026-04-01T10:00:00Z"
    sigil-signature: "keyless:fulcio:abc..."
    links:
    verifies: [REQ-042] # This build verifies requirement coverage
    part-of: [REL-001] # Part of release artifact
    ```

2. SBOM integration

New artifact type for tracking software composition:

```yaml

  • id: SBOM-vehicle-control-v1
    type: sbom-record
    title: "SBOM for vehicle-control v1.0.0"
    format: cyclonedx # or spdx
    sbom-ref: "sbom/vehicle-control-v1.0.0.cdx.json"
    component-count: 142
    vulnerability-status: assessed
    links:
    documents: [REL-001]
    assessed-by: [SEC-REVIEW-001]
    ```

Import adapter:
```bash

Import CycloneDX SBOM as rivet artifact

rivet import --format cyclonedx sbom/vehicle-control.cdx.json

Import SPDX SBOM

rivet import --format spdx sbom/vehicle-control.spdx.json
```

3. Rivet → SBOM/AIBOM export

```bash

Export AI provenance as CycloneDX ML-BOM extension

rivet export --format cyclonedx-aibom

Export full compliance bundle: SBOM + AIBOM + traceability + safety case

rivet export --format compliance-bundle --schema eu-ai-act,eu-cra
```

4. End-to-end trace: requirement → signed binary

The complete chain:
```
REQ-042 (rivet: requirement)
← satisfies ← DD-043 (rivet: design decision, AI provenance from #104)
← implements ← FEAT-045 (rivet: feature)
← verified-by ← TEST-015 (rivet: verification)
← build-evidence ← ATT-meld-fuse-001 (rivet: sigil attestation)
← signed-by ← Sigil keyless signature (Sigstore/Fulcio)
← sbom-documents ← SBOM-vehicle-control-v1 (rivet: SBOM record)
```

`rivet trace REQ-042 --full` shows this complete chain from requirement to signed binary.

5. Schema additions

New artifact types (in `common.yaml` or a new `schemas/supply-chain.yaml`):

Type Purpose
`build-attestation` SLSA provenance attestation from Sigil
`sbom-record` SBOM metadata (pointer to CycloneDX/SPDX file)
`aibom-record` AIBOM metadata (pointer to ML-BOM file)
`release-artifact` A released binary/package with attestation + SBOM links
`vulnerability-assessment` CVE/vulnerability assessment against SBOM components

Traceability rules:

  • Every `release-artifact` must have a `build-attestation` (error)
  • Every `release-artifact` must have an `sbom-record` (error for CRA compliance)
  • Every `build-attestation` should reference SLSA level (warning)
  • AI-generated artifacts should have `aibom-record` linkage (warning)

6. `sigil attest --rivet` integration

In Sigil, add a flag to output attestations directly as Rivet YAML:

```bash

Sign and generate rivet artifact in one step

sigil sign --keyless -i module.wasm -o signed.wasm --rivet-artifact artifacts/attestations/
```

7. EU CRA compliance view

```bash

Check CRA readiness

rivet validate --schema supply-chain,eu-cra

→ SBOM present: ✓

→ Vulnerability assessment: ✓ (last assessed: 2026-03-28)

→ SLSA provenance: Level 3 ✓

→ Vulnerability reporting capability: ✓

→ Missing: update mechanism documentation

```

Phases

Phase 1: Schema + attestation import

  • `schemas/supply-chain.yaml` with `build-attestation`, `sbom-record`, `release-artifact`
  • `rivet import --format sigil-attestation` adapter
  • `rivet import --format cyclonedx` adapter (SBOM metadata extraction)

Phase 2: Traceability rules + CRA compliance

  • Rules: release needs attestation, release needs SBOM
  • `rivet validate --schema supply-chain` for CRA readiness checking
  • `rivet trace REQ-X --full` showing requirement → signed binary chain

Phase 3: AIBOM integration

Phase 4: Sigil integration

  • `sigil sign --rivet-artifact` flag for direct Rivet YAML output
  • Shared attestation format between Sigil and Rivet
  • `rivet export --format compliance-bundle` with SBOM + AIBOM + traceability + attestations

Regulatory alignment

Regulation Deadline What Rivet+Sigil provides
EU AI Act Aug 2, 2026 Annex IV documentation, AI system traceability, risk management (#99)
EU CRA Sep 11, 2026 (reporting), Dec 2027 (SBOM) SBOM generation, vulnerability assessment tracking, SLSA provenance
FDA SBOM Already required CycloneDX/SPDX SBOM linked to IEC 62304 traceability (#102)
ISO 26262 Part 8 Ongoing Tool qualification evidence via SLSA provenance + rivet traceability
ISO/PAS 8800 Published 2024 AI tool qualification + build provenance (#106)

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions