Releases: JKasteele/ai-act-companion
Release list
v0.10.0 — 2026 AI Act refresh, stateless demo, portfolio readiness
A portfolio-readiness release focused on current EU AI Act logic, evidence-backed governance outputs, and a safe public demonstration.
Highlights
- Models the Regulation (EU) 2026/1744 amendments, including amended Annex I routing, actor-specific obligations, Art. 4a, new prohibition gateways, and GPAI provider-versus-integrator distinctions.
- Makes the hosted demo stateless for visitor submissions and prevents curated inventory/export leakage, with bounded inputs and tighter container/API hardening.
- Adds guarded Claude Haiku 4.5 assistance with budget, daily, per-client, cooldown, and deduplication limits plus transparent replay fallback.
- Expands the portfolio with 37 legal regression cases, 45 generated report examples, insurer scenarios, governance/data/security lenses, and a reproducible MCP transcript.
- Adds a release guard that rejects any tag disagreeing with package, runtime, or plugin version metadata.
Quality gates
- 270 tests passed with 95.09% statement coverage.
- Python 3.10, 3.11, 3.12 and Windows CI passed.
- Ruff, mypy, frontend syntax, generated-artifact drift, Bandit, pip-audit, Docker build/smoke, wheel/sdist build, and
twine checkpassed.
Install the published engine with:
pip install ai-act-companion==0.10.0v0.8.0 — regulatory-logic pass, conformity artifacts, MCP contract, hardening
A review-driven correctness, testing and hardening release. Full details in CHANGELOG.md.
Highlights
- Three new report types (18 total): EU Declaration of Conformity (Art. 47 + Annex V), EU-database registration data sheet (Art. 49 + Annex VIII), and a GPAI obligations report (Art. 53–55) with copyright-policy and training-content-summary templates.
- Regulatory-logic correctness: Art. 2 scope exemptions (military, scientific R&D, pre-market, personal use) each cited by paragraph; provider vs. deployer obligation split filtered on role; GPAI open-source carve-out (Art. 53(2)); GPAI-aware applicability dates; Art. 4 AI literacy surfaced as a baseline obligation.
- MCP surface:
scan_repositorytool, report-by-id, and aconfirmedflag onsave_assessmentthat turns human-in-the-loop into an enforced contract. - Hardening: report free-text sanitised before Markdown interpolation;
DEMO_MODEenforced server-side; atomic storage writes; no more Google Fonts fetch (privacy). - Testing: four new test suites (CLI, MCP, LLM service, storage), five new golden-set cases, coverage in CI, a Windows matrix entry and a Docker smoke test — 167 tests total.
- Release automation: tag-triggered PyPI Trusted Publishing workflow (this release exercises it for the first time).
The live demo runs this version.
v0.7.0 — repo AI-usage scanner + Action, example gallery, refreshed demo
A distribution release: makes the project easy to see and to adopt.
Added
-
Repository AI-usage scanner (
ai-act scan) + a reusable GitHub Action (action.yml) — flags whether a codebase appears to use AI/ML (dependency manifests, source imports, model artifacts) and points to the EU AI Act questions worth asking (Art. 2/5/6/10/50). Deterministic, stdlib-only, no model calls — a relevance flag, not a classification. Writes a Markdown PR/job summary;--fail-on-detectturns it into a gate.- uses: JKasteele/ai-act-companion@v0.7.0 with: { path: . }
-
Static example report gallery (docs/examples/) — real generated artifacts for the synthetic examples (risk, AI-security, STRIDE, red-team, controls, data-security, FRIA, …), viewable on GitHub without running anything.
-
Demo inventory seeding — in
DEMO_MODEthe synthetic examples are pre-loaded, so the inventory and the portfolio roll-up are populated on a fresh ephemeral Space instead of empty.
Changed
- Regenerated the README hero GIF and all screenshots against the v0.6.0 UI.
116 tests pass; ruff + bandit clean.
v0.6.0 — UI refresh, EU AI Act countdown, new examples
A visibility + polish release.
Added
- UI refresh — a refined "regtech" dark theme (Fraunces display / IBM Plex Sans body / IBM Plex Mono for legal citations), an atmospheric backdrop, a stronger hero, staggered load-in motion (respects
prefers-reduced-motion), and refined cards, tabs, badges and the report "document" preview. No engine or report-content change; print/PDF output is unaffected. - EU AI Act deadline countdown in the hero — a live "N days until " pill (e.g. high-risk & Art. 50 obligations, 2 Aug 2026), fed by a new
GET /api/timelinefrom the knowledge base. Presentational only — the deterministic engine stays date-independent. - Two new examples —
GridSentinel autonomous operations agent(Annex III-2 critical infrastructure, High risk with a Critical AI-security profile — exercises the architecture-aware severity, STRIDE, red-team plan and control catalogue) andOpenScribe-7B foundation model(a GPAI provider — exercises the Chapter V obligations and the OWASP GenAI Data Security lens). Six examples now. docs/DEMO-SCRIPT.md— a 60–90s demo-video script + shot list.
Fixed
- Mixed-language UI: the form's select placeholder and Yes/No toggle now render in English.
111 tests pass; ruff + bandit clean.
v0.5.1 — ISO/IEC 42001 Annex A control mapping
Completes the last roadmap item.
Added
- ISO/IEC 42001 Annex A control mapping — the 38 Annex A reference controls (A.2.2 … A.10.4), titles only, each tagged with its most-relevant EU AI Act article as a Companion-derived analytical alignment. Rendered as section 5.2.1 of the risk-assessment report to support drafting an AIMS Statement of Applicability alongside the assessment.
- The control list was cross-verified against multiple public summaries — the depth at which third-party summaries diverge. The 38-control count and the A.6.1.x / A.6.2.x life-cycle sub-structure match the standard. (The module previously stopped at the category level for exactly this reason; now resolved with verification, titles only — no paid standard text.)
- Tests (
tests/test_iso_42001.py): the 38-control count, well-formedness, that every control resolves to a real EU AI Act article, full category coverage and rendering.
110 tests pass; ruff clean. Deterministic engine unchanged; the mapping is data + an analytical alignment with an explicit provenance line.
v0.5.0 — Tier 3: STRIDE, serious-incident helper, model card, inventory roll-up
Adds the Tier 3 set and the public-demo plumbing.
Added
- STRIDE threat model (
stridereport) — 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 fromarch_auth_strength/arch_logging. Anchored on Art. 15 (Art. 12 for Repudiation). - Serious-incident decision helper + report (
incidentreport) — 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-10inc_*intake fields drive it; they do not affect the risk tier. - Model Card generator (
modelcardreport) — a Mitchell et al. (2019) skeleton pre-filled from the intake, anchored on Art. 13. - Inventory portfolio roll-up —
GET /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_MODEflag (sandbox banner +/api/config), a$PORT-aware Dockerfile (Hugging Face Spaces), anddocs/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.
v0.4.0 — Defensive control catalogue + OWASP GenAI Data Security lens
Completes the Tier 2 purple-team set: pairs the red-team test plan with its defensive counterpart and adds a data-layer security lens.
Added
Defensive control catalogue (controls report · MCP generate_control_catalog) — the blue-team mirror of the red-team test plan. A prioritised, architecture-aware catalogue of the controls to implement per in-scope OWASP LLM risk: what to implement, what it prevents, how to verify it, the NIST CSF 2.0 / ISO 27001:2022 anchors and the EU AI Act / NIST AI RMF references. A control's priority is the architecture-aware severity of the risk it mitigates (the same number the red-team plan uses), conditional controls are gated on the same architecture conditions as the offense, and each control names the red-team test case(s) that verify it — implement, then test.
OWASP GenAI Data Security lens (datasec report · MCP assess_data_security) — maps the system to the 21 OWASP GenAI Data Security risks (DSGAI01–21, from the 2026 v1.0 guidance), the data-layer complement to the OWASP LLM Top 10 lens. Deterministic relevance over the intake; each applicable risk is cross-mapped to the OWASP LLM Top 10, EU AI Act Art. 10 (data governance), the GDPR and NIST AI RMF.
Both wired into the CLI (--type controls|datasec), the web UI (two tabs), the MCP server and the assessment skill. DESIGN.md + README updated. Identifiers verified against genai.owasp.org; cross-framework mappings are Companion-derived analytical alignments, labelled as such.
Tests: +20 (80 total), covering determinism, severity-driven priority, architecture gating, the free-text injection invariant, the offense↔defense cross-link integrity, DSGAI knowledge-base fidelity (21 ids), coverage consistency and rendering. ruff + bandit clean.
Full changelog: https://github.com/JKasteele/ai-act-companion/blob/main/CHANGELOG.md
v0.3.0 — AI red-team test-plan generator
Turns the architecture-aware AI security lens into an actionable, purple-team artifact.
Added
- AI red-team test plan generator (
redteamreport,app/redteam.py) — a prioritised, system-specific adversarial test plan to scope an authorized purple-team exercise. Each test case carries an objective, the MITRE ATLAS technique(s), preconditions, methodology (no exploit payloads), success criteria, expected detection & logging, and the EU AI Act / NIST control it validates. - Architecture-aware prioritisation. A test case's priority is the architecture-aware severity of its parent OWASP risk, and conditional tests are gated on the architecture (e.g. a Critical cross-tenant data-access test only when the LLM is the access-control boundary over all-users data). Free-text cannot add, drop or re-prioritise a test — the same invariant as the classifier.
- New MCP tool
generate_red_team_plan(structured);redteamadded togenerate_report, the CLI (--type redteam) and the web UI (Red-team plan tab). - Demo refreshed: hero GIF + new
redteam.pngscreenshot.
It is a planning aid, not an attack tool — it executes nothing and does not replace a real red-team or penetration test.
Tests: tests/test_redteam_plan.py (10) — 60 pass, ruff/bandit clean.
Full changelog: https://github.com/JKasteele/ai-act-companion/blob/main/CHANGELOG.md
v0.2.0 — Tier 1: docs pack + architecture-aware security
Completes the high-risk documentation pack and deepens the AI security lens.
New report types
- Annex IV technical documentation (Art. 11)
- Obligations & conformity tracker with the Art. 99 / 101 penalty exposure
- Post-market monitoring plan (Art. 72) on the six NIST AI 800-4 categories
- NIST CSF 2.0 / ISO 27001:2022 framework integration matrix
Architecture-aware severity — the security lens now computes a deterministic Critical/High/Medium/Low per OWASP LLM item from structured arch_* fields, each with a rationale naming the deciding architecture fact. Severity is a pure function of those fields; the red-team suite proves crafted free-text cannot move it.
Refreshed demo GIF + screenshots. 50 tests (golden-set accuracy + extended red-team invariant), ruff/bandit clean. See CHANGELOG.md.
AI Act Companion v0.1.0
First public release.
What it is: a local-first, explainable EU AI Act risk classifier that generates risk-assessment / DPIA / bias / AI-security / FRIA documentation, crosswalked to NIST AI RMF and ISO/IEC 42001, with an AI security lens (OWASP Top 10 for LLM Applications 2025 + MITRE ATLAS).
Highlights
- Deterministic, cited classifier (prohibited / high / limited / minimal) - validated by a 25-case golden-set eval (100%) and an adversarial red-team suite.
- Two ways to use it: a privacy-first local web app, or a Claude Code plugin (MCP server + skill + CLI).
- Human-in-the-loop by design: the AI layer only pre-fills; the deterministic engine decides.
See the README and DESIGN.md. Self-assessment aid - not legal advice.