docs: rewrite README for voice, add release SBOM
Your AI's guard dog to stop it from going rogue.
Brought to you by:
doberman
Originally created by: fu351
pip-audit resolves the dependency set from pyproject.toml, the publish workflow generates dist/sbom.json (non-blocking — a disclosed CVE in a transitive dependency shouldn't silently gate a release nobody's reviewed) and attaches it to the GitHub Release.sbom extra in pyproject.toml (pip install -e ".[sbom]") for local regeneration.python scripts/check_markdown_links.py — all internal links/anchors resolve (25 files checked).github/workflows/publish.yml parses as valid YAMLpyproject.toml parses, sbom extra resolvespip-audit -f cyclonedx-json -o sbom.json . against this repo locally: valid CycloneDX 1.4 output, 48 components resolved, no known vulnerabilitiesgh release upload step attaches the asset correctly (can't be tested pre-merge; continue-on-error + a hashFiles guard mean a failure here degrades to "no SBOM asset" rather than a broken release)🤖 Generated with Claude Code
Ticket changed by: fu351