Skip to content

v0.5.0 — Tier 3: STRIDE, serious-incident helper, model card, inventory roll-up

Choose a tag to compare

@JKasteele JKasteele released this 17 Jun 15:55
· 70 commits to main since this release

Adds the Tier 3 set and the public-demo plumbing.

Added

  • STRIDE threat model (stride report) — the six STRIDE categories driven by the security-architecture fields. Tampering, Information disclosure, Denial of service and Elevation of privilege reuse the AI security lens's architecture-aware severity, so the STRIDE and OWASP views agree by construction; Spoofing and Repudiation are scored from arch_auth_strength / arch_logging. Anchored on Art. 15 (Art. 12 for Repudiation).
  • Serious-incident decision helper + report (incident report) — a boolean-driven helper over the four Art. 3(49) limbs returning the binding Art. 73 reporting deadline (15 / 2 / 10 days), plus a fill-in incident-report template. Maps to NIST CSF Respond + ISO 27001 A.5.24/A.5.26. New section-10 inc_* intake fields drive it; they do not affect the risk tier.
  • Model Card generator (modelcard report) — a Mitchell et al. (2019) skeleton pre-filled from the intake, anchored on Art. 13.
  • Inventory portfolio roll-upGET /api/portfolio (risk-tier distribution, obligations coming due by date, Art. 50 disclosure count) + extra CSV columns; the web inventory shows the roll-up plus Due-from / Art. 50 columns. Pure aggregation, no new persistence.
  • Public demo plumbing — a DEMO_MODE flag (sandbox banner + /api/config), a $PORT-aware Dockerfile (Hugging Face Spaces), and docs/DEPLOY-HF-SPACE.md.

All three report types are wired into the CLI (--type stride|incident|modelcard), the web UI and MCP generate_report. security.arch_view / security.severity_for are now public so the STRIDE lens reuses the same severity engine.

Quality

104 tests pass (was 80); ruff + bandit clean. Deterministic engine; the LLM remains interface/narrator only with mandatory human-in-the-loop.