Generate a human-readable Markdown README from an evidence-bundle manifest.json (per evidence-bundle-spec v0.1).
Completes the readme-generator quartet:
agent-card-readme-generator— A2A AgentCardsmcp-server-readme-generator— MCP servertools/listprompt-provenance-readme-generator— prompt provenance docsevidence-bundle-readme-generator— evidence bundles
Part of the Kinetic Gain Suite.
| section | source |
|---|---|
| Title | bundle.subject |
| Identity badges | purpose badge (📚 RAG citation pack / 🧾 Audit evidence / ⚖️ Compliance disclosure / 🚨 Incident response / 🔍 Due diligence / 📋 Regulatory submission / 📦 Other), items count, signed/unsigned, expiration (and ⏰ **EXPIRED** when past due) |
| Bundle block | id, creator, created-at, spec version |
| Items | id, path, media type, humanized size, short sha256 — plus total size summary |
| Relationships | subject —predicate→ object table with cites, supersedes, derived-from, contradicts, summarizes, redaction-of |
| Provenance | cross-spec links (Agent Card, Tool Card, Prompt Provenance, OTel trace, model, retrieval query) |
| Signature | algorithm, signer, signed-at, truncated value |
| Labels | when present |
npx evidence-bundle-readme-generator path/to/manifest.json > README.md| flag | meaning |
|---|---|
--out FILE |
Write to FILE instead of stdout |
--hide-badges |
Suppress the identity-badge line under the title |
-h, --help |
Print help and exit |
Exit codes:
0— README emitted2— usage / I/O error or malformed manifest
import { generateReadme } from "evidence-bundle-readme-generator";
import type { Manifest } from "evidence-bundle-readme-generator";
const manifest: Manifest = JSON.parse(readFileSync("manifest.json", "utf8"));
const md = generateReadme(manifest, { hideBadges: false });Throws on missing bundle or non-array items.