Why this tool exists

Use when a PE professional needs an EU AI Act (Regulation 2024/1689) compliance documentation pack for a portfolio company AI system. The tool produces a per-article documentation skeleton (Articles 6, 9–15 for high-risk; Article 50 for limited-risk) populated with the portco context, plus an Article 6 classification verdict citing Annex III. Scarcity-driven hook: the high-risk obligations of Articles 9–15 enter into force on 2 August 2026 — operators of high-risk systems must have the documentation skeleton in place by that date.

  1. Classifies the system under Article 6 (high-risk / limited-risk / minimal-risk) with a citation to the regulation.
  2. Maps each binding article (9–15 for high-risk, 50 for limited-risk) to a deterministic documentation skeleton drawn directly from the regulation text.
  3. Fills the per-article skeleton with the portco context the user supplied.
  4. Surfaces the 2 August 2026 deadline (Article 113) for high-risk systems.

You do not invent obligations. Every deliverable in the pack traces to a named article of Regulation (EU) 2024/1689 frozen in src/finance_mcp/eu_ai_act/annex_iii.py and articles.py, both of which are independently verifiable against the public EUR-Lex text.

Why this tool exists

Regulation (EU) 2024/1689 — the AI Act — was adopted 13 June 2024 and entered into force 1 August 2024. Article 113 stages its application:

DateWhat enters into force
2 February 2025Chapter I (general) and Chapter II (prohibited practices)
2 August 2025General-purpose AI model obligations; governance; penalties
2 August 2026Remainder of the regulation, including the high-risk obligations of Articles 6, 9–15. This is the binding deadline addressed by this tool.
2 August 2027Article 6(1) high-risk classification for products under Annex I Union harmonisation legislation

For PE portcos that touch Annex III categories (credit decisioning, HR tech, edtech, healthcare insurance pricing, etc.), the 2 August 2026 deadline is hard. The tool produces the documentation skeleton an operator can hand to a compliance officer on Monday.

What the tool emits

ai_act_audit(...) writes two artefacts to finance_output/:

  1. ai_act_audit_<portco>.html — printable letterpress compliance pack
  2. ai_act_audit_<portco>.json — structured sidecar for downstream tools

The HTML carries:

  • Letterhead with portco identity and "Reg. (EU) 2024/1689"
  • Article 6 verdict block — high-risk / limited-risk / minimal-risk with the Annex III citation (e.g. "Annex III §5(b)") that grounds it
  • Deadline strip — 2026-08-02, the use-case area, the count of articles addressed
  • Per-article sections for each binding article: regulation summary, application to the portco's system, and the named deliverables to maintain on file
  • Colophon with the public EUR-Lex CELEX URL for verification

The MCP tool you call

ai_act_audit(
    portco_id: str,
    ai_system_description: str,
    use_case_category: str,
    output_filename: str | None = None,
) -> dict

Returns:

{
  "report_path":               "/abs/path/to/ai_act_audit_<portco>.html",
  "json_path":                 "/abs/path/to/ai_act_audit_<portco>.json",
  "high_risk_classification":  "high-risk" | "limited-risk" | "minimal-risk",
  "articles_addressed":        ["Article 6", "Article 9", ..., "Article 15"],
  "deadline":                  "2026-08-02",
}

When the user invokes this skill

Step 1 — Identify the portco and the AI system in scope

Ask the user — if not already supplied — for:

  • portco_id — the portfolio company name (filename-slugged).
  • ai_system_description — one paragraph (≤ 4000 chars) describing what the AI system does, what data feeds it, and what decisions it drives. The description is reproduced verbatim in the per-article "Application to this system" paragraphs, so it should be precise.

Step 2 — Pick the use-case category

Choose the snake_case key that most narrowly matches. The full set of high-risk keys (verbatim, frozen) is:

  • biometrics — Annex III §1
  • critical_infrastructure — Annex III §2
  • education — Annex III §3
  • employment — Annex III §4
  • essential_services — Annex III §5 (broad)
  • credit_decisioning — Annex III §5(b) (preferred for lending)
  • insurance_pricing — Annex III §5(c) (preferred for life/health)
  • law_enforcement — Annex III §6
  • migration_asylum — Annex III §7
  • justice_democracy — Annex III §8

Plus these non-high-risk hint keys (the tool will return a limited-risk verdict + Article 50 obligations):

  • marketing_personalization
  • fraud_detection
  • internal_productivity
  • saas_analytics
  • supply_chain

Pick the narrowest matching key. For a consumer-lending portco, prefer credit_decisioning over essential_services — the verdict will cite Annex III §5(b) directly.

Step 3 — Call the tool

ai_act_audit(
    portco_id="LendingCo-EU",
    ai_system_description=(
        "A gradient-boosted underwriting model that scores consumer "
        "personal-loan applications across 12 EU markets. Inputs include "
        "bureau data, bank-transaction features, and self-reported income. "
        "Outputs a probability of default used to set approve/decline and "
        "price tier."
    ),
    use_case_category="credit_decisioning",
)

Step 4 — Surface the artefact

Report back:

  • The report_path (HTML — open it for the user).
  • The high_risk_classification verdict and the Annex III citation.
  • The deadline (2026-08-02 for high-risk and limited-risk; nothing binding for minimal-risk).
  • The list of articles addressed.
FailureDiagnosisFix
Unknown use_case_category 'X'The key isn't in Annex III or the non-high-risk hints mapPick from the enumerated list above. If the system is genuinely uncategorised, default to internal_productivity for limited-risk, or essential_services if the system touches public-benefit eligibility.
portco_id must be a non-empty stringMissing portco identifierAsk the user.
ai_system_description is too long (max 4000 chars)The user pasted a CIM sectionTrim to one paragraph: what the system does, inputs, outputs, decisions driven.
The verdict cites a broader Annex III area than expectedUser picked essential_services for a credit systemRe-run with credit_decisioning (Annex III §5(b)) — the citation is more specific and auditor-friendly.
Output finance_output/ does not existFirst run on a fresh checkoutThe tool creates the directory on first run; no action needed.

When you finish, return to the user:

  1. The absolute report_path to the HTML compliance pack.
  2. The classification verdict in plain prose: e.g. "High-risk per Annex III §5(b) (creditworthiness evaluation)".
  3. The deadline reminder: "Documentation must be in place by 2026-08-02 (Article 113)."
  4. The list of articles addressed.
  5. Optional: open the HTML in the user's browser if they ask.

Do not paste the full pack contents back into the chat. The HTML is the artefact; the chat output is the pointer.

User: "Run an EU AI Act audit on our consumer-lending portco LendingCo's underwriting model."

Agent:

  1. Confirms the portco_id is LendingCo-EU and asks for one paragraph describing the model's inputs and outputs.
  2. Selects use_case_category="credit_decisioning" (Annex III §5(b) is more specific than the broader essential_services).
  3. Calls ai_act_audit(portco_id="LendingCo-EU", ai_system_description=..., use_case_category="credit_decisioning").
  4. Replies: "Compliance pack rendered: finance_output/ai_act_audit_LendingCo-EU.html Verdict: HIGH-RISK per Annex III §5(b) (creditworthiness evaluation). Deadline: 2026-08-02 (Article 113 of Reg. (EU) 2024/1689). Articles covered: 6, 9, 10, 11, 12, 13, 14, 15. Open it?"

Last updated: October 13, 2026

Files (2)

Jurisdiction
🇪🇺 European Union
Practice area
Regulatory
License
MIT
Author
bolnet
Source
eu/regulatory/skills/ai-act-audit-bolnet

Test Why this tool exists

Ask a legal question — get an answer generated live from this skill’s instructions.

Sign in to test this skill.