Skip to main content

Inventory Record

Operating · Inventory · Obligation map →

Every in-production agent, copilot, or model-backed workflow gets a row before it can cause a side effect. The row is the approve step on the control path. It is not the route table and not the PEP.

THE CLAIM

No inventory, no owner, no go-live. Ethics slides and a policy PDF do not substitute for a named use case with an accountable owner.

What the row owns​

OwnsDoes not own
Use-case id, name, owner, sponsorRoute route_id (Agents)
Autonomy pattern (0-3), data class, regionTool schemas (manifests)
Go-live state: proposed / approved / live / retiredALLOW / DENY / STEP_UP (Runtime)
Link to obligation map and evidence packPEP implementation

Minimum fields​

FieldWhy
use_case_idStable id for audit and KRIs
nameHuman label (refund agent, contract review)
ownerNamed accountable human or team
exec_sponsorWho accepted residual risk
pattern0-3 from the Agents Blueprint
data_classWhat the runtime and model gateway may see
region / residencyWhere inference and logs may live
statusproposed / approved / live / retired
runtime_profilePointer to policy profile / PEP surface
evidence_pack_idLink to the go-live pack

Do not store entitlements per user here. Claims stay on the IdP. Do not store tool lists here. Those live on the manifest.

Worked examples​

Two rows. Same register. Different risk, so different pattern, data class, and runtime profile. Do not clone the refund row onto a read-only FAQ.

Example row: bank refund agent (YAML)

Write path. Pattern 3 from the Agents Blueprint. Status stays approved until the evidence pack exists.

use_case_id: uc-refund-agent
name: Customer refund agent
owner: Priya Shah (Payments Operations)
exec_sponsor: James Cole (CRO)
pattern: 3
data_class: customer_financial
region: AU
status: approved
runtime_profile: pdp-refund-write-v4
evidence_pack_id: ev-refund-agent-2026-03
approved_at: 2026-03-12
Example row: staff HR policy FAQ (YAML)

Read path. Pattern 0: one LLM call, no tool loop. Still needs a row before it sees staff documents.

use_case_id: uc-hr-policy-faq
name: Staff HR policy FAQ
owner: Minh Tran (People Systems)
exec_sponsor: Ana Ruiz (CHRO)
pattern: 0
data_class: internal_unclassified
region: AU
status: live
runtime_profile: pdp-hr-faq-read-v1
evidence_pack_id: ev-hr-policy-faq-2026-01
approved_at: 2026-01-20
FieldRefund agentHR policy FAQ
pattern3 (model may pick tools inside a fixed refund stage)0 (no tools)
data_classcustomer_financialinternal_unclassified
runtime_profileWrite PEP, STEP_UP above the fraud bandRead-only retrieval scope
ownerNamed human in Payments, not payments-ops@Named human in People Systems

Good vs bad row​

BadWhy it failsGood
owner: [email protected]Mailbox cannot accept residual riskowner: Priya Shah (Payments Operations)
status: live and empty evidence_pack_idGate skippedapproved until ev-refund-agent-2026-03 exists
pattern: 1 on a refund write pathOpen loop on money movementpattern: 3 (or 2) with PEP on issue_refund
data_class blankRuntime and hosting have no scopecustomer_financial + region: AU
Tools listed on this rowWrong registerPointer to the manifest only

Failure classes​

  • Agent in production with no row: refund bot in a business-unit Slack, no use_case_id
  • Owner is a shared mailbox with no named human: ai-coe@ as owner
  • Status live with empty evidence pack: row ticked "approved" in a spreadsheet
  • Row exists; route table and PEP never linked: runtime_profile is a comment, not a profile id

Trace / register fields​

use_case_id, owner, status, pattern, data_class, evidence_pack_id, approved_at

Blueprint: Operating. Runtime after approve: Runtime playbooks.

Obligation-to-control map →