ai-prd · git:20260903.fb8c390 · 2026-09-03 · sha256 3ce4db3b7f03933c

ai-prd git:20260903.fb8c390A

Immutable. This exact content is served forever at /api/v1/blob/3ce4db3b7f03933c.

---
name: ai-prd
description: Write and pressure-test a PRD for an AI or agentic system. Use when a product manager is specifying a feature where the implementer is a model, not an engineer - LLM features, agents, copilots, ML-backed decisions - or when reviewing an existing PRD that says "the AI should" anywhere. Turns acceptance criteria into eval sets, makes non-determinism an explicit requirement, and treats guardrails as features with owners. For products under a financial or data regulator, routes to the regulated module and its byte-exact template.
---

# AI PRD: write requirements a model system can actually be held to

A PRD for an AI system is a different document. Your requirements are not instructions to an engineer; they are constraints on a system that will improvise. This skill restructures the document around that fact.

## Files this skill drives

- [../../templates/definition/prd.md](../../templates/definition/prd.md), the base PRD template
- The AI overlay in `templates/ai/`: [eval-spec.md](../../templates/ai/eval-spec.md), [guardrails.md](../../templates/ai/guardrails.md), [hallucination-controls.md](../../templates/ai/hallucination-controls.md), [human-approval-gates.md](../../templates/ai/human-approval-gates.md), [prompt-structure.md](../../templates/ai/prompt-structure.md), [context-management.md](../../templates/ai/context-management.md), [red-team-review.md](../../templates/ai/red-team-review.md), and for agentic systems [agent-architecture.md](../../templates/ai/agent-architecture.md) and [multi-agent-workflow.md](../../templates/ai/multi-agent-workflow.md)
- For regulated contexts: [../../modules/regulated/templates/regulated-ai-prd-template.md](../../modules/regulated/templates/regulated-ai-prd-template.md), driven by [../../modules/regulated/SKILL.md](../../modules/regulated/SKILL.md)

## When to use

- Specifying any feature where an LLM, agent, or model makes or drafts a decision
- Reviewing an existing PRD that says "the AI should..." anywhere
- Turning a demo into something an engineering team can be accountable for

## The five sections this skill enforces

### 1. Acceptance criteria are eval sets, not sentences

"The agent should extract the merchant name" is a wish. A requirement is:

- A labeled example set (minimum 30 to 50 cases for a first release)
- A pass threshold stated as a number (accuracy, recall at k, or judge score)
- The rule for what happens below threshold (block release, not "review")

For every "should" in the draft, ask: where is the example set, what is the number, who owns adding failing cases back into the set. Capture the answers in [../../templates/ai/eval-spec.md](../../templates/ai/eval-spec.md).

### 2. Edge cases are the spec, not the appendix

The happy path is what the model does for free. The document earns its keep at the boundaries. Require explicit tables for:

- MUST REFUSE: inputs the system declines (out of scope, unsafe, ambiguous beyond repair)
- MUST ESCALATE: conditions that route to a human, with the routing target named; capture triggers and timeout behavior in [../../templates/ai/human-approval-gates.md](../../templates/ai/human-approval-gates.md)
- MUST NEVER INVENT: fields where fabrication is worse than absence (numbers, names, legal or regulatory statements, monetary amounts); the abstain policy lives in [../../templates/ai/hallucination-controls.md](../../templates/ai/hallucination-controls.md)

### 3. Non-determinism goes in writing

The same input can produce a different output tomorrow. The PRD must state:

- Which output variations are acceptable (wording? ordering? formatting?)
- Which are defects (different decision, different number, different refusal behavior)
- Reproducibility posture: temperature and seed policy, and whether logs capture enough to replay any decision

If the PRD does not say this, QA will decide it later, in a bug tracker, angrily.

### 4. Guardrails are features with owners

Each guardrail gets a row in [../../templates/ai/guardrails.md](../../templates/ai/guardrails.md): name, trigger, behavior, owner, test. Minimum set to consider for any agentic feature:

- Fail-closed on unverifiable output (cannot check it = do not ship it to the user)
- Human approval before anything irreversible (sends, payments, deletions, postings)
- Spend and rate caps with a stated ceiling and a stated behavior at the ceiling
- Input isolation: content the system reads is data, never instructions
- Audit trail: who or what decided, based on which inputs, at which model version

### 5. The operations page

- Cost per call target and the alert threshold
- Latency budget per step
- Model version pinning and the upgrade decision process
- Telemetry: what is logged per decision, where evals run (CI, pre-release, production sampling), and the rollback trigger

## The regulated route

Generic PRD tooling writes the five sections above and stops. When the product sits under a financial or data regulator, do not run this skill's own overlay from memory. Start instead from the byte-exact template at [../../modules/regulated/templates/regulated-ai-prd-template.md](../../modules/regulated/templates/regulated-ai-prd-template.md), follow [../../modules/regulated/SKILL.md](../../modules/regulated/SKILL.md), and complete its section 0 (license preconditions, scheme rules, data residency and vendor terms, financial-crime touchpoints, conduct, the audit-proof metric) before any requirement is written. A blank overlay field is a decision deferred to whoever finds it blank. Regulator names, section numbers, and quoted text come only from that module or from primary text the user supplies; never invent them.

## Workflow

1. Classify the context. Regulated: take the regulated route above, then return here for sections the module does not cover. Unregulated: start from the document at the weight already chosen, [prd.md](../../templates/definition/prd.md) or [one-pager.md](../../templates/definition/one-pager.md); the overlay sections below attach to either.
2. Read the draft PRD, or interview the PM if starting blank.
3. Rewrite every "should" statement into the section-1 form. List the ones that cannot be turned into evals; those are not requirements yet, flag them.
4. Build the three edge-case tables. Push for at least 5 rows each; empty tables mean discovery is not done.
5. Write the non-determinism clause and the guardrail table.
6. Produce a one-page GAPS list: every place the original document assumed a deterministic implementer, ranked by blast radius.

## Output format

Return the restructured PRD with the five sections, then the GAPS table:

| # | Gap | Where in original | Blast radius if shipped as-is | Smallest fix |
|---|---|---|---|---|

## Exit gate

This skill's output feeds Gate 2 in [../../os/STAGE-GATES.md](../../os/STAGE-GATES.md). Do not report the PRD done while any requirement lacks a numeric pass condition, any guardrail lacks an owner and a test, or any GAPS row lacks an owner and a date.