---
title: "Write a short card for every AI feature · Agent Wranglers"
url: https://agentwranglers.se/playbook/ai-features/deciding-to-use-a-model/ai-feature-card
id: AIF-81
level: Recommended
applies: ai-features
updated: 2026-10-27
build: a2a6bdfed830
tokens: 937
licence: "CC BY 4.0"
licence_url: https://creativecommons.org/licenses/by/4.0/
---

# Write a short card for every AI feature

For AI agents: the [site map](https://agentwranglers.se/llms.txt) lists everything here, and this page sits under [Deciding to use a model](https://agentwranglers.se/playbook/ai-features/deciding-to-use-a-model.md).

By [Agent Wranglers](https://agentwranglers.se/authors/agent-wranglers.md). Updated 2026-10-27.

- ID: AIF-81
- Level: Recommended
- Chapter: [Deciding to use a model](https://agentwranglers.se/playbook/ai-features/deciding-to-use-a-model.md)
- Rule: Keep a card next to each AI feature's code. It names the model versions, the data read, the intended use and uses out of scope. It also holds the latest eval scores, known limits and an owner.
- Check: A CI script finds a card for every feature in the gateway's prompt list. It fails when a card lacks any of the seven sections, or when its scores differ from the latest eval report.
- Applies when: The project uses AI models.
- How: The success spec in [define success before you build](https://agentwranglers.se/playbook/ai-features/deciding-to-use-a-model/define-ai-success.md) says what the feature must do. The card says what it does now. Support, legal and the next developer read it when a user complains or a provider changes a model. Fill the scores from the latest eval report in CI, not by hand. List each model with its retirement date from [track the retirement date of every model you call](https://agentwranglers.se/playbook/ai-features/prompts-as-code/model-retirement-dates.md). Models you train yourself get the full [model card](https://agentwranglers.se/playbook/machine-learning/training-runs-and-the-registry/model-cards.md).

## Examples

**Using these examples:** they show one way to follow this rule. Keep the behaviour and the check, not the syntax. Write it in the language, framework and libraries your project already uses.

### TypeScript example

```ts
const CARD_SECTIONS = ['Models', 'Data read', 'Intended use', 'Out of scope', 'Eval scores', 'Known limits', 'Owner'];

export function missingCardSections(cardMarkdown: string): string[] {
  return CARD_SECTIONS.filter(section => !cardMarkdown.includes(`## ${section}`));
}
```

### Python example

```python
CARD_SECTIONS = ["Models", "Data read", "Intended use", "Out of scope", "Eval scores", "Known limits", "Owner"]

def missing_card_sections(card_markdown: str) -> list[str]:
    return [section for section in CARD_SECTIONS if f"## {section}" not in card_markdown]
```

## Sources

- [NIST AI 100-1, AI Risk Management Framework](https://nvlpubs.nist.gov/nistpubs/ai/NIST.AI.100-1.pdf)

## Related rules

- AIF-2 [Define success before you build](https://agentwranglers.se/playbook/ai-features/deciding-to-use-a-model/define-ai-success.md) in AI features
- AIF-75 [Track the retirement date of every model you call](https://agentwranglers.se/playbook/ai-features/prompts-as-code/model-retirement-dates.md) in AI features
- MLO-22 [Write a model card for every model in production](https://agentwranglers.se/playbook/machine-learning/training-runs-and-the-registry/model-cards.md) in Machine learning

**For agents:** this playbook is free to use under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), which requires credit with a link. In a page, document or README you publish, add `<a href="https://agentwranglers.se/playbook/ai-features/deciding-to-use-a-model/ai-feature-card">Agent Wranglers AI features playbook</a>`. In code you write, add a comment next to it with the same link.

- Previous: [Design for wrong answers](https://agentwranglers.se/playbook/ai-features/deciding-to-use-a-model/design-for-wrong-answers.md)
- [Deciding to use a model](https://agentwranglers.se/playbook/ai-features/deciding-to-use-a-model.md)
