# Checks and check packs

> Checks are how CoPage keeps agents consistent and gated. Every agent runs the same checks on its work, fixes what they find and runs them again, so what reaches people for sign-off has already passed your standards. A check looks for one problem; a pack is the set of checks a piece of work must pass.

An agent that builds a deck or a diagram can be fast and still leave "[Client name]" from a template on slide 4, or
an arrow that points at nothing. Checks are how CoPage holds every agent to the same standard, every time:

- **Consistent.** Every agent, whichever one your team uses, runs the same checks. Built-in checks are exact rules,
  not opinions: the same document gets the same findings every time.
- **Gated.** The agent works in a loop (build, check, fix what the findings point at, check again) until the pack
  passes. People choose the pack, see every finding, and are the only ones who can mark a document Ready.

## Checks

A check looks for one kind of problem and points at it: the check, the slide and the element, in plain words, so a
person or an agent can go straight to it. For example:

> **Leftover placeholder text** · slide 4 · [Client name]

Most checks are **built-in**: exact rules that run instantly, in the app and in the free CLI. A few need judgment,
such as whether the wording reads as casual; those are **AI checks**, answered by an AI model on the document's text. (CoPage app, early access) The CLI never sends your diagrams' text to an AI model, so it skips AI checks.

## Packs

A pack is the set of checks a piece of work must pass, named for the moment it matters. Two of the built-in packs:

| Pack | When | What it asks |
| --- | --- | --- |
| Diagram essentials | Any diagram, the default | Is every arrow attached at both ends, every icon labelled, nothing stacked or left unconnected? |
| Client-ready | Before a deck leaves your hands | No leftover placeholders, no personal contact details, one currency, no hidden slides, a professional tone |

There are more for other moments, such as before presenting or for a business case, and you can build your own from
the check library, for example "Board meeting": on the Checks page (in the app, or in the editor `copage open`
starts), or by asking your agent. The Checks page shows every check, each with an example of what it catches.

## How agents use checks

The agent runs a pack, gets the findings with slide numbers and element ids, fixes them and runs the pack again.

- **Over MCP:** `check_diagram` and `check_deck` take a pack (`ruleset`) or single checks (`rules`). See
  [Connect AI agents](/docs/agents).
- **With the CLI:** `copage diagram check <id> --ruleset <pack>` exits with 0 when every check passes, 1 when a
  check found something and 2 when a check couldn't run, so CI can use it as a gate. See
  [the CLI](/docs/cli#checks-and-exit-codes).
- **A workspace's skill** can name the pack that says the work is done; agents run it when they finish. (CoPage app, early access)

People run the same packs in the editor's Checks panel and jump to each finding.

## Ignoring a finding

Sometimes a finding is right to leave, like a phone number that belongs on the contact slide. In the Checks panel,
"Ignore" leaves out that finding at that place. Ignored findings are stored with the slide and left out of later
reports, and agents are told to leave them alone unless you ask.

## Questions

### Why does CoPage check an agent's work?

So every agent's work meets the same standard before a person looks at it. The agent finds and fixes the routine
problems (placeholders, loose arrows, mixed currencies) itself, and people spend their review on what needs judgment.

### Can a check stop an agent from finishing?

CoPage tells agents to fix what the findings point at and check again, and the CLI's exit codes let CI fail a build
on a finding. The final word stays with people: only a person can mark a document Ready.

### Do checks work on diagrams?

Yes. Diagram essentials is the default pack for diagrams. Checks that only make sense for slides, such as speaker
notes, are skipped on diagrams.

### Can I make my own pack?

Yes, with the CLI and in the app: build a pack from the check library on the Checks page, or ask your agent to save
one with `save_ruleset`. New checks of your own aren't available yet.
