Skip to content
Back to skills

Supply Chain Verification

ASecurity

Generate CycloneDX SBOMs, content manifests, and verify installed copies of kodelyth-ecc against shipped manifests. Use when an enterprise / security team asks "where does this code come from, is it tampered, and where is the SBOM".

  • 11 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 5, 2026
ai-agentsrustgobashnodecode-reviewgitapisecurity

Works with

  • cli
  • api
  • mcp

Security analysis

A100/100

Scanned October 5, 2026

npx -y skills add sifxprime/kodelyth-ecc --skill supply-chain-verification --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Supply Chain Verification?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Supply Chain Verification
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sifxprime-supply-chain-verification/badge)](https://www.skillsdirectory.com/skills/sifxprime-supply-chain-verification)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: supply-chain-verification
description: Generate CycloneDX SBOMs, content manifests, and verify installed copies of kodelyth-ecc against shipped manifests. Use when an enterprise / security team asks "where does this code come from, is it tampered, and where is the SBOM".
trigger:
  - supply chain
  - SBOM
  - CycloneDX
  - SLSA
  - provenance
  - manifest
  - tamper
  - integrity check
  - verify install
---

# Skill: supply-chain-verification

## What this skill does

Phase 2.9 of the Devil Roadmap. Three pure-function libraries plus three CLI subcommands give every kodelyth-ecc release **enterprise-grade supply-chain credentials**:

| Capability | What it produces | Format |
|---|---|---|
| **SBOM** | CycloneDX 1.5 software bill of materials for the package + every transitive dep in the lockfile | JSON |
| **Manifest** | sha256 content manifest of every shipped asset (agents, skills, commands, rules, hooks, scripts, bin, bundles, root files) | JSON |
| **Verify** | Compares an installed copy against a manifest and reports `ok` / `modified` / `missing` / `extra` | JSON or pretty |

Plus, every release published via `.github/workflows/publish.yml` ships with **SLSA Level 3 build provenance** courtesy of `npm publish --provenance` (sigstore-backed).

---

## When to use this skill

Use **explicitly** by name when:

- An enterprise / SOC 2 / FedRAMP-adjacent team asks for an SBOM to ingest into Dependency-Track, Snyk, or Anchore.
- A user reports a suspicious install — verify against the shipped manifest to confirm tamper or local mod.
- You're preparing an audit response and need provenance + bill-of-materials in one shot.
- You want to ship a third-party reproducibility check for a downstream consumer.

```bash
use supply-chain-verification

# Generate a CycloneDX 1.5 SBOM
npx kodelyth-ecc sbom --out sbom.cdx.json

# Generate a content manifest
npx kodelyth-ecc manifest --out manifest.json

# Verify a downloaded / installed copy
npx kodelyth-ecc verify --manifest manifest.json
```

Implicit triggers (the AI should route here automatically):

- "is my install of kodelyth-ecc tampered?"
- "give me an SBOM"
- "where is the SLSA provenance for this release?"
- "compliance team needs supply-chain attestation for this package"

---

## CLI surface

### `kodelyth-ecc sbom`

```
kodelyth-ecc sbom [--root DIR] [--out FILE] [--json]
```

Produces a CycloneDX 1.5 BOM:

```json
{
  "bomFormat": "CycloneDX",
  "specVersion": "1.5",
  "serialNumber": "urn:uuid:...",
  "metadata": {
    "timestamp": "2026-05-10T17:00:00Z",
    "tools": [{ "vendor": "kodelyth-ecc", "name": "kodelyth-ecc-sbom", "version": "1.7.0" }],
    "component": { "type": "application", "name": "kodelyth-ecc", "version": "1.7.0", "purl": "pkg:npm/kodelyth-ecc@1.7.0" }
  },
  "components": [/* one per lockfile entry */],
  "dependencies": [{ "ref": "kodelyth-ecc@1.7.0", "dependsOn": [/* direct deps */] }]
}
```

Pure: no network, no exec. Reads `package.json` + `package-lock.json` only. Components carry purl, license, and SHA-512 hash from npm SRI when present.

### `kodelyth-ecc manifest`

```
kodelyth-ecc manifest [--root DIR] [--out FILE] [--json]
```

Walks every shipped directory + root file. Produces:

```json
{
  "schema": "kodelyth.content-manifest/v1",
  "package": "kodelyth-ecc",
  "pkg_version": "1.7.0",
  "generated_at": "2026-05-10T17:00:00Z",
  "file_count": 730,
  "digest": "<sha256 over deterministic JSON of the entries array>",
  "files": [
    { "path": "agents/code-reviewer.md", "size": 4521, "sha256": "…" },
    …
  ]
}
```

Output is deterministic (sorted by path, stable sha256), so two runs against the same source tree produce identical files modulo `generated_at`.

### `kodelyth-ecc verify`

```
kodelyth-ecc verify [--root DIR] [--manifest FILE] [--json]
```

Compares disk against manifest:

| Category | Meaning | Fails verify? |
|---|---|---|
| `ok` | sha256 matches | No |
| `modified` | file present, hash differs | **Yes** |
| `missing` | file in manifest but not on disk | **Yes** |
| `extra` | file on disk not in manifest | No (advisory) |

Exits **0** if `ok=true`, **1** otherwise. Pair with `--json` for CI gates.

---

## What ships with each release

The `.github/workflows/publish.yml` pipeline does **all five** of:

1. Verify `package.json.version` matches the release tag.
2. Run the full test suite (255 tests).
3. `npm publish --provenance` → **SLSA Level 3** build provenance via npm + sigstore.
4. Generate `kodelyth-ecc-sbom.cdx.json` and attach to the GitHub release.
5. Generate `kodelyth-ecc-manifest.json` and attach to the GitHub release.

Three artifacts ship with every release:

```
v1.X.Y/
├── kodelyth-ecc-sbom.cdx.json    ← CycloneDX 1.5
├── kodelyth-ecc-manifest.json    ← sha256 content manifest
└── (npm sigstore provenance)     ← visible on npmjs.com
```

---

## Programmatic API

```js
const { generateSBOM }       = require('kodelyth-ecc/scripts/supply-chain/sbom.js');
const { generateManifest }   = require('kodelyth-ecc/scripts/supply-chain/manifest.js');
const { verifyAgainstManifest } = require('kodelyth-ecc/scripts/supply-chain/verify.js');

const bom = generateSBOM({ rootDir: '/path/to/installed/kodelyth-ecc' });
const m   = generateManifest({ rootDir: '/path/to/installed/kodelyth-ecc' });
const r   = verifyAgainstManifest({ rootDir: '/path/to/installed/kodelyth-ecc', manifest: m });

if (!r.ok) {
  console.error('Tamper detected:', r.summary);
  process.exit(1);
}
```

All three are pure functions. Safe to call from a CI step, an MCP tool, or any external automation.

---

## Hard rules

1. **Never** weaken `verify`. Modified or missing files MUST exit non-zero. Extras stay advisory.
2. SBOM `serialNumber` is derived deterministically from `name@version + timestamp`. If you need a true random UUID per build, set `timestamp` to the build timestamp.
3. Manifest `digest` is the sha256 of the deterministic JSON of `files`. Reproducible across runs at the same source state.
4. Don't include `node_modules/`, `.git/`, `.DS_Store`, `__pycache__/`, or `*.pyc` in the manifest. The skip list is in `scripts/supply-chain/manifest.js`.
5. Treat the published manifest as authoritative for tamper detection of an installed copy. Don't substitute a freshly-generated one.

---

## Pairing with other ECC features

| Pair with | What you get |
|---|---|
| **Phase 2.10 safety hooks** | The token-budget hook + this skill cover "trust" (no PII leakage + no tampered code). |
| **MCP server (Phase 2.1)** | Expose `verify` as an MCP tool downstream agents can call to confirm their toolkit is clean. |
| **Swarm orchestrator (Phase 2.7)** | Run `verify` as a pre-flight check before spawning N parallel workers. |
| **Replay (Phase 2.8)** | Bundles can carry the manifest of the source ECC version that produced them, enabling reproducible replays. |

---

## See also

- `commands/verify-supply-chain.md` — `/verify-supply-chain` slash command form
- `docs/supply-chain.md` — full reference + downstream verification guide
- `.github/workflows/publish.yml` — release pipeline that issues all three artifacts

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…