Codex v1 local-input note: This migrated skill supports local files and pasted text by default. References to Drive, CLM IDs, Slack, Westlaw, iManage, Ironclad, eDiscovery, dockets, or other remote systems require a separately configured Codex connector/MCP server. When a connector is unavailable, ask for a local export, local file path, or pasted excerpts. If config/local/codex-for-legal/<practice>/CLAUDE.md is missing, ask the user to run the relevant cold-start-interview or customize skill and copy from config/templates/codex-for-legal/<practice>/CLAUDE.md.
$ai-governance-legal:ai-inventory
When this runs
The user wants to manage their AI system inventory under the EU AI Act. The
core idea the skill exists to enforce: role and tier are per-system, not
per-company. A single organization can be a provider of System A, a
deployer of System B, and an importer of System C. Each combination
triggers a different set of obligations under the AI Act. The inventory
exists so those assessments are tracked where you can find them — the
obligations themselves are derived in conversation, not from a table.
What to do
Read the config. Read
config/local/codex-for-legal/ai-governance-legal/CLAUDE.md.
If it doesn't exist or still has [PLACEHOLDER] markers, direct the user
to $ai-governance-legal:cold-start-interview first.
Read the inventory. Inventory lives at
config/local/codex-for-legal/ai-governance-legal/ai-systems.yaml.
If it doesn't exist, create it with an empty systems: list when the
first add runs.
Dispatch on the argument:
- No argument, or
list → show the inventory table (see List below).
add → run the Add flow.
edit <id> → show the current record, ask what to change, update one
field, confirm, write.
classify <id> → run the Classification walk-through on an
existing record, updating role, tier, role_basis, and tier_basis.
show <id> → show the full record.
On list, offer the dashboard:
"Want the full dashboard? Filter by status / tier / EU nexus / owner.
Say the word."
Close every action with a hook into the lawyer's work.
After any write, say:
Recorded. When you're ready to walk through obligations for this
system, just ask — I'll do it in-conversation and flag where the AI
Act article mapping needs your verification. I don't derive
obligations from a table because the mapping is complex and changing.
List format
Render as a compact table:
| ID |
Name |
Owner |
Status |
EU nexus |
Role |
Tier |
Next review |
| sys-001 |
Resume screening |
HR / Jamie |
in_production |
yes |
deployer |
high_risk |
2026-08-01 |
| sys-002 |
Email drafting assistant |
IT / Priya |
in_production |
no |
deployer |
limited |
2026-12-01 |
Under the table, show counts by tier and a line: "N systems flagged for
review within 30 days."
Add flow (interview)
Ask, one field at a time (or accept a paste). The required fields are
name, owner, description, status, eu_nexus. The rest can be
deferred — say so explicitly: "you can come back to classification with
$ai-governance-legal:ai-inventory classify <id>."
- Name. Short label for the system.
- Owner. Person or team accountable for it day-to-day.
- Description. One or two sentences. What does it do, and against
what data?
- Status.
planned | in_development | in_production | deprecated.
- EU nexus. Is the system deployed in the EU/EEA, offered to users in
the EU/EEA, or used to produce outputs that affect people in the
EU/EEA? If any of these are true, EU AI Act analysis applies.
- Proceed to classification? Offer to run the walk-through now, or
skip and come back later.
Assign an ID: sys-NNN where NNN is the next integer in the file.
Classification walk-through
The walk-through produces role, role_basis, tier, tier_basis. Both
bases are tagged [verify against current AI Act text] — not because the
skill is hedging, but because the article mapping is complex and the AI
Act is still phasing in. The lawyer owns verification.
Step 1: Role
Who does what to this system?
Options, with the distinguishing test:
- Provider — you develop it (or have it developed) and place it on the
EU market or put it into service under your own name or trademark.
- Deployer — you use it under your own authority, not for personal
non-professional use. (Most common inside companies.)
- Importer — you bring an AI system into the EU from a provider
established outside the EU.
- Distributor — you make an AI system available on the EU market
without being the provider or importer.
- Authorized representative — you act on behalf of a non-EU provider
and are established in the EU.
- Product manufacturer — you put a general-purpose AI system (or
another AI system) into a product under your own name/trademark. Treated
as provider for the product.
Dual-role flag. If the user substantially modifies a vendor system
(fine-tunes on their own data, changes the intended purpose, rebrands),
they may become a provider of the modified system even if they started
as a deployer. Call this out when they describe any modification beyond
configuration. [verify against current AI Act text — Article 25, provider obligations and substantial modification]
Write the role. Write role_basis in one sentence.
Step 2: Tier
What does the system do, and does the use case fall into a regulated
category?
Check in order:
A. Article 5 prohibited practices. [verify against current AI Act text — Article 5]
Summaries, not definitive text:
- Subliminal or deceptive techniques materially distorting behavior
- Exploiting vulnerabilities (age, disability, socio-economic status) to
materially distort behavior
- Social scoring by public authorities leading to detrimental treatment
- Real-time remote biometric ID in publicly accessible spaces for law
enforcement (narrow exceptions)
- Biometric categorization inferring race, political opinions, union
membership, religious or philosophical beliefs, sex life, or sexual
orientation
- Emotion recognition in the workplace or education (medical and safety
exceptions)
- Facial image database scraping from the internet or CCTV
- Predictive policing based solely on personality traits
If matched → tier is prohibited. Flag the use case as stop and route to
the governance team's prohibited-practice workflow.
B. Annex III high-risk areas. [verify against current AI Act text — Annex III]
Summaries:
- Biometric identification and categorization
- Critical infrastructure (digital infrastructure, road traffic, supply of
water / gas / heating / electricity)
- Education and vocational training (access, evaluation, proctoring,
monitoring prohibited behavior)
- Employment, worker management, self-employment access — recruitment,
selection, promotion, termination, task allocation, monitoring, performance
- Essential private and public services (public benefits, credit scoring
for individuals, risk assessment and pricing for life/health insurance,
emergency dispatch)
- Law enforcement (risk assessment, polygraphs, deepfake detection,
reliability of evidence, profiling)
- Migration, asylum, border control (risk assessment, travel document
verification, examination of applications)
- Administration of justice and democratic processes (research and
interpretation, influencing elections)
If matched → tier is high_risk. Note the Annex III area and subsection.
C. GPAI. [verify against current AI Act text — Article 51 and surrounding]
- GPAI: model trained on broad data at scale, designed for generality,
capable of competently performing a wide range of distinct tasks.
- GPAI + systemic risk: cumulative compute > 10^25 FLOPs, or designated
by the Commission.
D. Limited risk. Chatbots interacting with natural persons, deepfakes,
emotion recognition and biometric categorization systems outside Article 5
scope — transparency obligations apply.
E. Minimal risk. Everything else.
Write the tier. Write tier_basis in one sentence, citing the article or
Annex entry that matched, tagged [verify against current AI Act text].
Step 3: Recommendations
Offer three next steps:
- "Want me to walk through obligations for this system? I'll do it in
conversation — I don't derive them from a table."
- "Want to run
$ai-governance-legal:aia-generation to produce a full
impact assessment?"
- "Want to set a next review date? I'll add it to the inventory."
Record format
systems:
- id: sys-001
name: "Resume screening tool"
owner: "HR / Jamie"
description: "Filters inbound CVs against job criteria"
status: in_production # planned | in_development | in_production | deprecated
eu_nexus: true # deployed, offered, or affects people in the EU/EEA
role: deployer # provider | deployer | importer | distributor | authorized_rep | product_manufacturer
role_basis: "We license from VendorX and deploy internally [verify against current AI Act text]"
tier: high_risk # prohibited | high_risk | limited | minimal | gpai | gpai_systemic
tier_basis: "Annex III(4)(a) — employment, recruitment selection [verify against current AI Act text]"
obligations_assessed: false
obligations_note: "To assess: as deployer of a high-risk system — human oversight, input data quality, monitoring, record-keeping, informing workers, FRIA if public body/service — see Article 26 [verify against current AI Act text]"
next_review: "2026-08-01"
review_trigger: "on substantial modification or annually"
created: "2026-05-11"
updated: "2026-05-11"
Why this skill does NOT auto-derive obligations
The inventory stores role, tier, and the basis for each. It does NOT
contain a hardcoded role × tier → obligations table.
When the user asks "what are my obligations for System X?", the skill
does the analysis in conversation, tagged [verify], and routes to
$ai-governance-legal:aia-generation for the formal impact assessment
if needed.
This is deliberate:
- Article mapping is complex and the AI Act is phasing in through 2027.
- Confident-and-wrong on a compliance obligation ends up in a board memo.
- The inventory is a registry for the lawyer. The lawyer owns the
obligation analysis.
Guardrails
- Never classify silently. The classification walk-through must be
visible; do not auto-classify from a system description.
[verify] tags stay. They are not hedging — they are the point.
Do not strip them in outputs.
- Flag substantial modification. Whenever a system is modified beyond
configuration, prompt the user to re-run
$ai-governance-legal:ai-inventory classify —
modification can change role.
- Don't declare obligations from a table. If asked, do the analysis
in conversation and route to
$ai-governance-legal:aia-generation for anything that needs
a formal record.
1---2name: ai-inventory3description: EU AI Act per-system inventory — track each AI system's role (provider, deployer, importer, distributor, authorized representative, product manufacturer) and risk tier (prohibited, high-risk, limited, minimal, GPAI, GPAI+systemic). Role and tier are assessed per system, not per company. Use when the user says "ai inventory", "add an ai system", "what systems do we have", "classify this ai system", "eu ai act register", or "ai system registry".4license: Apache-2.05---67> Codex v1 local-input note: This migrated skill supports local files and pasted text by default. References to Drive, CLM IDs, Slack, Westlaw, iManage, Ironclad, eDiscovery, dockets, or other remote systems require a separately configured Codex connector/MCP server. When a connector is unavailable, ask for a local export, local file path, or pasted excerpts. If `config/local/codex-for-legal/<practice>/CLAUDE.md` is missing, ask the user to run the relevant `cold-start-interview` or `customize` skill and copy from `config/templates/codex-for-legal/<practice>/CLAUDE.md`.8910# $ai-governance-legal:ai-inventory1112## When this runs1314The user wants to manage their AI system inventory under the EU AI Act. The15core idea the skill exists to enforce: **role and tier are per-system, not16per-company.** A single organization can be a *provider* of System A, a17*deployer* of System B, and an *importer* of System C. Each combination18triggers a different set of obligations under the AI Act. The inventory19exists so those assessments are tracked where you can find them — the20obligations themselves are derived in conversation, not from a table.2122## What to do23241. **Read the config.** Read25 `config/local/codex-for-legal/ai-governance-legal/CLAUDE.md`.26 If it doesn't exist or still has `[PLACEHOLDER]` markers, direct the user27 to `$ai-governance-legal:cold-start-interview` first.28292. **Read the inventory.** Inventory lives at30 `config/local/codex-for-legal/ai-governance-legal/ai-systems.yaml`.31 If it doesn't exist, create it with an empty `systems:` list when the32 first `add` runs.33343. **Dispatch on the argument:**3536 - No argument, or `list` → show the inventory table (see **List** below).37 - `add` → run the **Add** flow.38 - `edit <id>` → show the current record, ask what to change, update one39 field, confirm, write.40 - `classify <id>` → run the **Classification walk-through** on an41 existing record, updating role, tier, role_basis, and tier_basis.42 - `show <id>` → show the full record.43444. **On list, offer the dashboard:**45 "Want the full dashboard? Filter by status / tier / EU nexus / owner.46 Say the word."47485. **Close every action with a hook into the lawyer's work.**49 After any write, say:50 > Recorded. When you're ready to walk through obligations for this51 > system, just ask — I'll do it in-conversation and flag where the AI52 > Act article mapping needs your verification. I don't derive53 > obligations from a table because the mapping is complex and changing.5455## List format5657Render as a compact table:5859| ID | Name | Owner | Status | EU nexus | Role | Tier | Next review |60|----|------|-------|--------|----------|------|------|-------------|61| sys-001 | Resume screening | HR / Jamie | in_production | yes | deployer | high_risk | 2026-08-01 |62| sys-002 | Email drafting assistant | IT / Priya | in_production | no | deployer | limited | 2026-12-01 |6364Under the table, show counts by tier and a line: "N systems flagged for65review within 30 days."6667## Add flow (interview)6869Ask, one field at a time (or accept a paste). The required fields are70`name`, `owner`, `description`, `status`, `eu_nexus`. The rest can be71deferred — say so explicitly: "you can come back to classification with72`$ai-governance-legal:ai-inventory classify <id>`."73741. **Name.** Short label for the system.752. **Owner.** Person or team accountable for it day-to-day.763. **Description.** One or two sentences. What does it do, and against77 what data?784. **Status.** `planned | in_development | in_production | deprecated`.795. **EU nexus.** Is the system deployed in the EU/EEA, offered to users in80 the EU/EEA, or used to produce outputs that affect people in the81 EU/EEA? If any of these are true, EU AI Act analysis applies.826. **Proceed to classification?** Offer to run the walk-through now, or83 skip and come back later.8485Assign an ID: `sys-NNN` where NNN is the next integer in the file.8687## Classification walk-through8889The walk-through produces `role`, `role_basis`, `tier`, `tier_basis`. Both90bases are tagged `[verify against current AI Act text]` — not because the91skill is hedging, but because the article mapping is complex and the AI92Act is still phasing in. The lawyer owns verification.9394### Step 1: Role9596> **Who does what to this system?**9798Options, with the distinguishing test:99100- **Provider** — you develop it (or have it developed) and place it on the101 EU market or put it into service under your own name or trademark.102- **Deployer** — you use it under your own authority, not for personal103 non-professional use. (Most common inside companies.)104- **Importer** — you bring an AI system into the EU from a provider105 established outside the EU.106- **Distributor** — you make an AI system available on the EU market107 without being the provider or importer.108- **Authorized representative** — you act on behalf of a non-EU provider109 and are established in the EU.110- **Product manufacturer** — you put a general-purpose AI system (or111 another AI system) into a product under your own name/trademark. Treated112 as provider for the product.113114**Dual-role flag.** If the user substantially modifies a vendor system115(fine-tunes on their own data, changes the intended purpose, rebrands),116they may become a **provider** of the modified system even if they started117as a deployer. Call this out when they describe any modification beyond118configuration. `[verify against current AI Act text — Article 25, provider119obligations and substantial modification]`120121Write the role. Write `role_basis` in one sentence.122123### Step 2: Tier124125> **What does the system do, and does the use case fall into a regulated126> category?**127128Check in order:129130**A. Article 5 prohibited practices.** `[verify against current AI Act131text — Article 5]`132133Summaries, not definitive text:134- Subliminal or deceptive techniques materially distorting behavior135- Exploiting vulnerabilities (age, disability, socio-economic status) to136 materially distort behavior137- Social scoring by public authorities leading to detrimental treatment138- Real-time remote biometric ID in publicly accessible spaces for law139 enforcement (narrow exceptions)140- Biometric categorization inferring race, political opinions, union141 membership, religious or philosophical beliefs, sex life, or sexual142 orientation143- Emotion recognition in the workplace or education (medical and safety144 exceptions)145- Facial image database scraping from the internet or CCTV146- Predictive policing based solely on personality traits147148If matched → tier is `prohibited`. Flag the use case as stop and route to149the governance team's prohibited-practice workflow.150151**B. Annex III high-risk areas.** `[verify against current AI Act text —152Annex III]`153154Summaries:1551. Biometric identification and categorization1562. Critical infrastructure (digital infrastructure, road traffic, supply of157 water / gas / heating / electricity)1583. Education and vocational training (access, evaluation, proctoring,159 monitoring prohibited behavior)1604. Employment, worker management, self-employment access — recruitment,161 selection, promotion, termination, task allocation, monitoring, performance1625. Essential private and public services (public benefits, credit scoring163 for individuals, risk assessment and pricing for life/health insurance,164 emergency dispatch)1656. Law enforcement (risk assessment, polygraphs, deepfake detection,166 reliability of evidence, profiling)1677. Migration, asylum, border control (risk assessment, travel document168 verification, examination of applications)1698. Administration of justice and democratic processes (research and170 interpretation, influencing elections)171172If matched → tier is `high_risk`. Note the Annex III area and subsection.173174**C. GPAI.** `[verify against current AI Act text — Article 51 and175surrounding]`176177- **GPAI:** model trained on broad data at scale, designed for generality,178 capable of competently performing a wide range of distinct tasks.179- **GPAI + systemic risk:** cumulative compute > 10^25 FLOPs, or designated180 by the Commission.181182**D. Limited risk.** Chatbots interacting with natural persons, deepfakes,183emotion recognition and biometric categorization systems outside Article 5184scope — transparency obligations apply.185186**E. Minimal risk.** Everything else.187188Write the tier. Write `tier_basis` in one sentence, citing the article or189Annex entry that matched, tagged `[verify against current AI Act text]`.190191### Step 3: Recommendations192193Offer three next steps:1941. "Want me to walk through obligations for this system? I'll do it in195 conversation — I don't derive them from a table."1962. "Want to run `$ai-governance-legal:aia-generation` to produce a full197 impact assessment?"1983. "Want to set a next review date? I'll add it to the inventory."199200## Record format201202```yaml203systems:204 - id: sys-001205 name: "Resume screening tool"206 owner: "HR / Jamie"207 description: "Filters inbound CVs against job criteria"208 status: in_production # planned | in_development | in_production | deprecated209 eu_nexus: true # deployed, offered, or affects people in the EU/EEA210 role: deployer # provider | deployer | importer | distributor | authorized_rep | product_manufacturer211 role_basis: "We license from VendorX and deploy internally [verify against current AI Act text]"212 tier: high_risk # prohibited | high_risk | limited | minimal | gpai | gpai_systemic213 tier_basis: "Annex III(4)(a) — employment, recruitment selection [verify against current AI Act text]"214 obligations_assessed: false215 obligations_note: "To assess: as deployer of a high-risk system — human oversight, input data quality, monitoring, record-keeping, informing workers, FRIA if public body/service — see Article 26 [verify against current AI Act text]"216 next_review: "2026-08-01"217 review_trigger: "on substantial modification or annually"218 created: "2026-05-11"219 updated: "2026-05-11"220```221222## Why this skill does NOT auto-derive obligations223224The inventory stores role, tier, and the basis for each. It does NOT225contain a hardcoded role × tier → obligations table.226227When the user asks "what are my obligations for System X?", the skill228does the analysis **in conversation**, tagged `[verify]`, and routes to229`$ai-governance-legal:aia-generation` for the formal impact assessment230if needed.231232This is deliberate:233- Article mapping is complex and the AI Act is phasing in through 2027.234- Confident-and-wrong on a compliance obligation ends up in a board memo.235- The inventory is a registry for the lawyer. The lawyer owns the236 obligation analysis.237238## Guardrails239240- **Never classify silently.** The classification walk-through must be241 visible; do not auto-classify from a system description.242- **`[verify]` tags stay.** They are not hedging — they are the point.243 Do not strip them in outputs.244- **Flag substantial modification.** Whenever a system is modified beyond245 configuration, prompt the user to re-run `$ai-governance-legal:ai-inventory classify` —246 modification can change role.247- **Don't declare obligations from a table.** If asked, do the analysis248 in conversation and route to `$ai-governance-legal:aia-generation` for anything that needs249 a formal record.