---
title: "Publish a system card for every AI feature · Agent Wranglers"
url: https://agentwranglers.se/playbook/documentation/help-centres-and-user-guides/ai-system-card
id: DOC-42
level: Recommended
applies: ai-features
updated: 2026-10-27
build: a2a6bdfed830
tokens: 898
licence: "CC BY 4.0"
licence_url: https://creativecommons.org/licenses/by/4.0/
---

# Publish a system card for every AI feature

For AI agents: the [site map](https://agentwranglers.se/llms.txt) lists everything here, and this page sits under [Help centres and user guides](https://agentwranglers.se/playbook/documentation/help-centres-and-user-guides.md).

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

- ID: DOC-42
- Level: Recommended
- Chapter: [Help centres and user guides](https://agentwranglers.se/playbook/documentation/help-centres-and-user-guides.md)
- Rule: Publish one system card for every feature that uses a language or machine learning model. It names the model and version, the purpose, uses that are out of scope, the latest eval results, known limits and an owner.
- Check: A script lists every model ID in the code and config. Each one appears in a system card with the six fields filled in. The eval numbers on each card equal those in the latest eval report.
- Applies when: The project uses AI models.
- How: Users, support staff and reviewers need to know what the feature can and cannot do before they trust its answers. Keep the card next to the feature's code and generate the numbers from the latest eval run, so the card cannot drift. Write the purpose and the limits by hand. Change the card in the same pull request that changes the model or the prompt. A model you train yourself also gets the card in [Write a model card for every model in production](https://agentwranglers.se/playbook/machine-learning/training-runs-and-the-registry/model-cards.md). For a high-risk system, the card grows into the instructions for use in the next rule.

## 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.

### JavaScript example

```js
const FIELDS = ['model', 'purpose', 'outOfScope', 'evalResults', 'limits', 'owner'];

export function missingCardFields(card) {
  return FIELDS.filter(field => !card[field] || String(card[field]).trim() === '');
}
```

### Python example

```python
FIELDS = ["model", "purpose", "out_of_scope", "eval_results", "limits", "owner"]

def missing_card_fields(card: dict) -> list[str]:
    return [field for field in FIELDS if not str(card.get(field, "")).strip()]
```

## Related rules

- 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
- DOC-43 [Ship instructions for use with a high-risk AI system](https://agentwranglers.se/playbook/documentation/help-centres-and-user-guides/ai-instructions-for-use.md) in Documentation

**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/documentation/help-centres-and-user-guides/ai-system-card">Agent Wranglers documentation playbook</a>`. In code you write, add a comment next to it with the same link.

- Previous: [Ship the user information the Cyber Resilience Act lists](https://agentwranglers.se/playbook/documentation/help-centres-and-user-guides/cra-user-information.md)
- Next: [Ship instructions for use with a high-risk AI system](https://agentwranglers.se/playbook/documentation/help-centres-and-user-guides/ai-instructions-for-use.md)
- [Help centres and user guides](https://agentwranglers.se/playbook/documentation/help-centres-and-user-guides.md)
