> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getcanonic.app/llms.txt
> Use this file to discover all available pages before exploring further.

# canonic review / apply

> Review and apply pending proposals from an ingest run.

After [`canonic ingest`](/cli-reference/ingest) writes reviewable diffs, use `review` for an interactive, item-by-item pass, or `apply` to batch-apply everything still pending, for example after editing diffs by hand.

## `canonic review`

Interactively review pending proposals one by one, in numeric order.

```bash theme={null}
canonic review
canonic review --run-id 2024-05-01T12-00-00
```

| Flag       | Description                                              |
| ---------- | -------------------------------------------------------- |
| `--run-id` | Explicit run-id to review (defaults to the most recent). |

For each pending proposal you're shown the diff and prompted:

```
[a]ccept / [r]eject / [s]kip / [f]reeze / [c]urate / [q]uit
```

* **freeze** writes the file and sets `meta.frozen: true`: a subsequent `canonic ingest` flags any conflicting evidence instead of editing the fact, regardless of tier.
* **curate** writes the file and sets `meta.provenance: human_curated`: the only way a fact gets promoted out of `inferred`. A curated fact is protected from future `inferred` evidence the same way any other `human_curated` fact is (see [provenance tiers](/concepts/ingestion-and-reconciliation#reconciliation)), but unlike `freeze` it isn't an unconditional lock: equally-or-more-authoritative future evidence can still propose an edit.

Resumable: quitting or crashing mid-review picks back up at the first still-pending item on the next invocation.

## `canonic apply`

Batch-apply all pending proposals from a run directory.

```bash theme={null}
canonic apply .canonic/pending-diffs/2024-05-01T12-00-00
```

| Argument  | Description                                                   |
| --------- | ------------------------------------------------------------- |
| `run_dir` | Path to the pending-diff run directory to apply (positional). |

Proposals already in a terminal state (accepted / rejected / frozen / curated), or whose diff file was deleted, are silently skipped. No git interaction. Applied files appear as unstaged changes in your working tree. `canonic apply` doesn't expose `freeze` or `curate`: every applied proposal resolves to `accepted`. Use `canonic review` for either.
