@journeykit/canon 0.34.0 → 0.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/skills/SKILL.src.md +22 -15
- package/dist/skills/reference/canon-artifact-ingest.md +6 -3
- package/dist/skills/reference/canon-authoring.md +6 -3
- package/dist/skills/reference/canon-context.md +6 -3
- package/dist/skills/reference/canon-fmt.md +2 -1
- package/dist/skills/reference/canon-gate.md +11 -7
- package/dist/skills/reference/canon-inventory.md +13 -10
- package/dist/skills/reference/canon-plan-import.md +6 -3
- package/dist/skills/reference/canon-plugins.md +12 -6
- package/dist/skills/reference/canon-report-dashboard.md +6 -3
- package/dist/skills/reference/canon-review.md +1 -1
- package/dist/skills/reference/canon-session-ingest.md +12 -6
- package/dist/skills/reference/canon-storage.md +46 -16
- package/dist/skills/reference/canon-subject.md +26 -17
- package/dist/skills/reference/role-implementer.md +29 -29
- package/dist/skills/reference/role-orchestrator.md +68 -63
- package/dist/skills/reference/role-planner.md +22 -22
- package/dist/skills/reference/role-reviewer.md +23 -23
- package/man/canon-adapter-authorize.1 +2 -2
- package/man/canon-adapter-validate.1 +2 -2
- package/man/canon-adapter.1 +2 -2
- package/man/canon-artifacts-move.1 +2 -2
- package/man/canon-artifacts-store.1 +2 -2
- package/man/canon-artifacts-verify.1 +2 -2
- package/man/canon-artifacts.1 +2 -2
- package/man/canon-brief-approve.1 +2 -2
- package/man/canon-brief-check.1 +2 -2
- package/man/canon-brief-show.1 +2 -2
- package/man/canon-brief.1 +2 -2
- package/man/canon-change-new.1 +2 -2
- package/man/canon-change.1 +2 -2
- package/man/canon-completion.1 +2 -2
- package/man/canon-context-pack-add.1 +2 -2
- package/man/canon-context-pack-show.1 +2 -2
- package/man/canon-context-pack-verify.1 +2 -2
- package/man/canon-context-pack.1 +2 -2
- package/man/canon-context.1 +2 -2
- package/man/canon-dashboard.1 +2 -2
- package/man/canon-demo-init.1 +2 -2
- package/man/canon-demo-review.1 +2 -2
- package/man/canon-demo.1 +2 -2
- package/man/canon-dispatch-begin.1 +2 -2
- package/man/canon-dispatch-diff.1 +2 -2
- package/man/canon-dispatch-end.1 +2 -2
- package/man/canon-dispatch.1 +2 -2
- package/man/canon-divergence-accept.1 +2 -2
- package/man/canon-divergence-add.1 +2 -2
- package/man/canon-divergence-defer.1 +2 -2
- package/man/canon-divergence-list.1 +2 -2
- package/man/canon-divergence-resolve.1 +2 -2
- package/man/canon-divergence.1 +2 -2
- package/man/canon-evidence-add.1 +2 -2
- package/man/canon-evidence-approval-payload.1 +2 -2
- package/man/canon-evidence-audit.1 +2 -2
- package/man/canon-evidence.1 +2 -2
- package/man/canon-export.1 +2 -2
- package/man/canon-feature-new.1 +2 -2
- package/man/canon-feature.1 +2 -2
- package/man/canon-finding-add.1 +2 -2
- package/man/canon-finding-close.1 +2 -2
- package/man/canon-finding-list.1 +2 -2
- package/man/canon-finding.1 +2 -2
- package/man/canon-format.1 +2 -2
- package/man/canon-gate-check.1 +2 -2
- package/man/canon-gate-install-hooks.1 +2 -2
- package/man/canon-gate-promote.1 +2 -2
- package/man/canon-gate.1 +2 -2
- package/man/canon-ingest-plans.1 +2 -2
- package/man/canon-ingest-records.1 +2 -2
- package/man/canon-ingest-sessions.1 +2 -2
- package/man/canon-ingest.1 +2 -2
- package/man/canon-init.1 +7 -7
- package/man/canon-inventory-sync.1 +2 -2
- package/man/canon-inventory.1 +2 -2
- package/man/canon-ledger-compact.1 +2 -2
- package/man/canon-ledger.1 +2 -2
- package/man/canon-migrate.1 +2 -2
- package/man/canon-plugin-sync.1 +2 -2
- package/man/canon-plugin.1 +2 -2
- package/man/canon-policy-approve.1 +2 -2
- package/man/canon-policy-show.1 +2 -2
- package/man/canon-policy.1 +2 -2
- package/man/canon-prompt-add.1 +2 -2
- package/man/canon-prompt-show.1 +2 -2
- package/man/canon-prompt.1 +2 -2
- package/man/canon-purge.1 +2 -2
- package/man/canon-query.1 +2 -2
- package/man/canon-regime-show.1 +2 -2
- package/man/canon-regime.1 +2 -2
- package/man/canon-report-build.1 +2 -2
- package/man/canon-report-check.1 +2 -2
- package/man/canon-report-snapshot.1 +2 -2
- package/man/canon-report.1 +2 -2
- package/man/canon-retrieve.1 +2 -2
- package/man/canon-review-change.1 +2 -2
- package/man/canon-review-scenario.1 +2 -2
- package/man/canon-review.1 +2 -2
- package/man/canon-scenario-new.1 +2 -2
- package/man/canon-scenario.1 +2 -2
- package/man/canon-schema.1 +2 -2
- package/man/canon-search.1 +2 -2
- package/man/canon-selftest.1 +2 -2
- package/man/canon-skills-check.1 +2 -2
- package/man/canon-skills-doctor.1 +2 -2
- package/man/canon-skills-install.1 +2 -2
- package/man/canon-skills-show.1 +5 -5
- package/man/canon-skills.1 +2 -2
- package/man/canon-status.1 +2 -2
- package/man/canon-strategy-approval-payload.1 +2 -2
- package/man/canon-strategy-promote.1 +2 -2
- package/man/canon-strategy-rollback.1 +2 -2
- package/man/canon-strategy.1 +2 -2
- package/man/canon-subject-adopt.1 +2 -2
- package/man/canon-subject-move.1 +2 -2
- package/man/canon-subject-new.1 +2 -2
- package/man/canon-subject-show.1 +2 -2
- package/man/canon-subject-unadopt.1 +2 -2
- package/man/canon-subject.1 +2 -2
- package/man/canon-task-done.1 +2 -2
- package/man/canon-task.1 +2 -2
- package/man/canon-tier-age.1 +2 -2
- package/man/canon-tier.1 +2 -2
- package/man/canon-trace.1 +2 -2
- package/man/canon.1 +2 -2
- package/package.json +4 -4
|
@@ -19,25 +19,25 @@ in your ids. Use only the options on a line; never guess one. Ask `canon schema
|
|
|
19
19
|
|
|
20
20
|
<!-- canon:generated commands-orchestrator begin -->
|
|
21
21
|
Every leaf takes `--as <ROLE>` and `--json`; `--repo <DIR>` too, except `completion`, `regime show`, `schema`, `selftest`, `skills show`. `--input <JSON|FILE|->` runs a leaf from one JSON document (an array is a batch) and is only on the lines ending `[--input]`. Its document keys are the option names in camelCase, singular even when the option repeats (the value is then an array), and `operands` holds the operands. `--fields <FIELDS>` is a comma list of the paths `canon schema <COMMAND> --json` declares under `outputs[].fields.paths`; a path is the record's own key, spelled as the answer spells it.
|
|
22
|
-
|
|
22
|
+
A `usage:` line shows the syntax and is not itself a command to run (the runnable example under it is): `<X>` is a value, `[x]` optional, `a | b` a choice, `(a | b)` exactly one is required, `[--x <V>]*` may repeat, `<X>+` is one or more, `[--a --b <V>]` go together. An option that is not on the line does not exist: it is refused (`USAGE`).
|
|
23
23
|
|
|
24
24
|
```text
|
|
25
25
|
# Authorize declared capabilities against repository policy (preflight only)
|
|
26
|
-
canon adapter authorize --response <FILE>
|
|
26
|
+
usage: canon adapter authorize --response <FILE>
|
|
27
27
|
```
|
|
28
28
|
```bash
|
|
29
29
|
canon adapter authorize --response adapter-response.json --repo . --json
|
|
30
30
|
```
|
|
31
31
|
```text
|
|
32
32
|
# Read and validate one provider-neutral response envelope
|
|
33
|
-
canon adapter validate --response <FILE>
|
|
33
|
+
usage: canon adapter validate --response <FILE>
|
|
34
34
|
```
|
|
35
35
|
```bash
|
|
36
36
|
canon adapter validate --response adapter-response.json --json
|
|
37
37
|
```
|
|
38
38
|
```text
|
|
39
39
|
# Move the local artifact blobs to an object-store tier, verify them, and remove the local copies
|
|
40
|
-
canon artifacts move --tier <TIER> [--commit --plan-digest <DIGEST>] [--input]
|
|
40
|
+
usage: canon artifacts move --tier <TIER> [--commit --plan-digest <DIGEST>] [--input]
|
|
41
41
|
# a bare run previews and prints planDigest; `--commit --plan-digest <DIGEST>` with that digest acts
|
|
42
42
|
```
|
|
43
43
|
```bash
|
|
@@ -45,182 +45,182 @@ canon artifacts move --tier cold --json
|
|
|
45
45
|
```
|
|
46
46
|
```text
|
|
47
47
|
# Store the bound files of existing evidence records and current reviews in the artifact store (.canon/artifacts/sha256/)
|
|
48
|
-
canon artifacts store [--max-artifact-mib <N>] [--dry-run] [--input]
|
|
48
|
+
usage: canon artifacts store [--max-artifact-mib <N>] [--dry-run] [--input]
|
|
49
49
|
```
|
|
50
50
|
```bash
|
|
51
51
|
canon artifacts store --json
|
|
52
52
|
```
|
|
53
53
|
```text
|
|
54
54
|
# Check that the artifact store holds every file the latest evidence and current reviews bind (--full re-hashes the stored bytes)
|
|
55
|
-
canon artifacts verify [--full]
|
|
55
|
+
usage: canon artifacts verify [--full]
|
|
56
56
|
```
|
|
57
57
|
```bash
|
|
58
58
|
canon artifacts verify --json
|
|
59
59
|
```
|
|
60
60
|
```text
|
|
61
61
|
# Write the shell completion script for canon (bash, zsh or fish)
|
|
62
|
-
canon completion <SHELL>
|
|
62
|
+
usage: canon completion <SHELL>
|
|
63
63
|
```
|
|
64
64
|
```bash
|
|
65
65
|
canon completion zsh --json
|
|
66
66
|
```
|
|
67
67
|
```text
|
|
68
68
|
# Show what you can author here: record kinds, fields, enums, policies
|
|
69
|
-
canon context [--fields <FIELDS>]
|
|
69
|
+
usage: canon context [--fields <FIELDS>]
|
|
70
70
|
```
|
|
71
71
|
```bash
|
|
72
72
|
canon context --json
|
|
73
73
|
```
|
|
74
74
|
```text
|
|
75
75
|
# Create an immutable context pack from a repository-local JSON manifest
|
|
76
|
-
canon context-pack add --manifest <FILE> [--input]
|
|
76
|
+
usage: canon context-pack add --manifest <FILE> [--input]
|
|
77
77
|
```
|
|
78
78
|
```bash
|
|
79
79
|
canon context-pack add --manifest .canon/context-manifest.json --json
|
|
80
80
|
```
|
|
81
81
|
```text
|
|
82
82
|
# Show a context pack after verifying its manifest and content objects
|
|
83
|
-
canon context-pack show <PACK_ID>
|
|
83
|
+
usage: canon context-pack show <PACK_ID>
|
|
84
84
|
```
|
|
85
85
|
```bash
|
|
86
86
|
canon context-pack show sha256:0000000000000000000000000000000000000000000000000000000000000000 --json
|
|
87
87
|
```
|
|
88
88
|
```text
|
|
89
89
|
# Verify a context pack's manifest and immutable content objects
|
|
90
|
-
canon context-pack verify <PACK_ID>
|
|
90
|
+
usage: canon context-pack verify <PACK_ID>
|
|
91
91
|
```
|
|
92
92
|
```bash
|
|
93
93
|
canon context-pack verify sha256:0000000000000000000000000000000000000000000000000000000000000000 --json
|
|
94
94
|
```
|
|
95
95
|
```text
|
|
96
96
|
# Serve the local status dashboard
|
|
97
|
-
canon dashboard [--snapshot <DIR>] [--port <N>] [--input]
|
|
97
|
+
usage: canon dashboard [--snapshot <DIR>] [--port <N>] [--input]
|
|
98
98
|
```
|
|
99
99
|
```bash
|
|
100
100
|
canon dashboard --json
|
|
101
101
|
```
|
|
102
102
|
```text
|
|
103
103
|
# Scaffold the demo repo (gate starts RED)
|
|
104
|
-
canon demo init [--input]
|
|
104
|
+
usage: canon demo init [--input]
|
|
105
105
|
```
|
|
106
106
|
```bash
|
|
107
107
|
canon demo init --repo canon-demo --json
|
|
108
108
|
```
|
|
109
109
|
```text
|
|
110
110
|
# Record the missing reviewer evidence (gate turns GREEN)
|
|
111
|
-
canon demo review [--input]
|
|
111
|
+
usage: canon demo review [--input]
|
|
112
112
|
```
|
|
113
113
|
```bash
|
|
114
114
|
canon demo review --json
|
|
115
115
|
```
|
|
116
116
|
```text
|
|
117
117
|
# Mint a Run manifest with retrieved guidance and context/policy lineage
|
|
118
|
-
canon dispatch begin --regime <KEY> [--role <ROLE>] [--actor <ACTOR_ID>] [--session <SESSION_ID>] [--provider <NAME>] [--model <NAME>] [--skill <ID>] [--skill-digest <DIGEST> (with --skill)] [--manifest <FILE>] [--prompt-bundle <NAME@VERSION>] [--task <TASK_ID>] [--parent-run <RUN_ID>] [--input]
|
|
118
|
+
usage: canon dispatch begin --regime <KEY> [--role <ROLE>] [--actor <ACTOR_ID>] [--session <SESSION_ID>] [--provider <NAME>] [--model <NAME>] [--skill <ID>] [--skill-digest <DIGEST> (with --skill)] [--manifest <FILE>] [--prompt-bundle <NAME@VERSION>] [--task <TASK_ID>] [--parent-run <RUN_ID>] [--input]
|
|
119
119
|
```
|
|
120
120
|
```bash
|
|
121
121
|
canon dispatch begin --regime implementer/my-repo/api/abcdef012345 --role implementer --json
|
|
122
122
|
```
|
|
123
123
|
```text
|
|
124
124
|
# Diff the declared plan DAG against the observed execution graph
|
|
125
|
-
canon dispatch diff
|
|
125
|
+
usage: canon dispatch diff
|
|
126
126
|
```
|
|
127
127
|
```bash
|
|
128
128
|
canon dispatch diff --json
|
|
129
129
|
```
|
|
130
130
|
```text
|
|
131
131
|
# Close a dispatched run with a terminal status and an ended_at
|
|
132
|
-
canon dispatch end <RUN_ID> --run-outcome <succeeded|failed> [--input]
|
|
132
|
+
usage: canon dispatch end <RUN_ID> --run-outcome <succeeded|failed> [--input]
|
|
133
133
|
```
|
|
134
134
|
```bash
|
|
135
135
|
canon dispatch end 01ARZ3NDEKTSV4RRFFQ69G5FAV --run-outcome succeeded --json
|
|
136
136
|
```
|
|
137
137
|
```text
|
|
138
138
|
# List the current divergence burn-down state
|
|
139
|
-
canon divergence list [--as-of <TIMESTAMP>] [--limit <N> | --all] [--cursor <CURSOR>] [--fields <FIELDS>]
|
|
139
|
+
usage: canon divergence list [--as-of <TIMESTAMP>] [--limit <N> | --all] [--cursor <CURSOR>] [--fields <FIELDS>]
|
|
140
140
|
```
|
|
141
141
|
```bash
|
|
142
142
|
canon divergence list --as-of 2030-01-01 --json
|
|
143
143
|
```
|
|
144
144
|
```text
|
|
145
145
|
# Emit exact bytes for external `ssh-keygen -Y sign -n canon-approval-v1`
|
|
146
|
-
canon evidence approval-payload --approver <NAME> --approval-at <TIMESTAMP> [--task <TASK_ID>] [--project <PROJECT_ID>] [--scenario <SCENARIO_ID>] [--run <RUN_ID>] [--rev <REV>] [--surface-ref <PATH_OR_EFFECT>]*
|
|
146
|
+
usage: canon evidence approval-payload --approver <NAME> --approval-at <TIMESTAMP> [--task <TASK_ID>] [--project <PROJECT_ID>] [--scenario <SCENARIO_ID>] [--run <RUN_ID>] [--rev <REV>] [--surface-ref <PATH_OR_EFFECT>]*
|
|
147
147
|
```
|
|
148
148
|
```bash
|
|
149
149
|
canon evidence approval-payload --scenario auth.login.01 --project root --approver alice --approval-at 2030-01-01T00:00:00Z --json
|
|
150
150
|
```
|
|
151
151
|
```text
|
|
152
152
|
# Export a redacted retention manifest without deleting records
|
|
153
|
-
canon export --kind <change|task|scenario|session|run|event|handoff|review|divergence|trajectory|strategy_item|evidence|subject|finding> [--before <TIMESTAMP>] [--after <TIMESTAMP>] [--output <FILE>] [--include-sensitive] [--limit <N> | --all] [--cursor <CURSOR>] [--fields <FIELDS>] [--dry-run] [--input]
|
|
153
|
+
usage: canon export --kind <change|task|scenario|session|run|event|handoff|review|divergence|trajectory|strategy_item|evidence|subject|finding> [--before <TIMESTAMP>] [--after <TIMESTAMP>] [--output <FILE>] [--include-sensitive] [--limit <N> | --all] [--cursor <CURSOR>] [--fields <FIELDS>] [--dry-run] [--input]
|
|
154
154
|
```
|
|
155
155
|
```bash
|
|
156
156
|
canon export --kind evidence --output evidence.json --json
|
|
157
157
|
```
|
|
158
158
|
```text
|
|
159
159
|
# List a change's committed findings at their latest version
|
|
160
|
-
canon finding list --change <CHANGE_ID> [--open] [--limit <N> | --all] [--cursor <CURSOR>] [--fields <FIELDS>]
|
|
160
|
+
usage: canon finding list --change <CHANGE_ID> [--open] [--limit <N> | --all] [--cursor <CURSOR>] [--fields <FIELDS>]
|
|
161
161
|
```
|
|
162
162
|
```bash
|
|
163
163
|
canon finding list --change add-login --json
|
|
164
164
|
```
|
|
165
165
|
```text
|
|
166
166
|
# Validate a spec/artifact corpus against canon's format
|
|
167
|
-
canon format [<DIR>]
|
|
167
|
+
usage: canon format [<DIR>]
|
|
168
168
|
```
|
|
169
169
|
```bash
|
|
170
170
|
canon format .canon/specs --json
|
|
171
171
|
```
|
|
172
172
|
```text
|
|
173
173
|
# Run the coverage/ledger/staleness/trust checks (0 clean, 1 red, 2 usage)
|
|
174
|
-
canon gate check [--release]
|
|
174
|
+
usage: canon gate check [--release]
|
|
175
175
|
```
|
|
176
176
|
```bash
|
|
177
177
|
canon gate check --json
|
|
178
178
|
```
|
|
179
179
|
```text
|
|
180
180
|
# Install the gate hook into .claude/settings.json / .codex/hooks.json
|
|
181
|
-
canon gate install-hooks [--event <NAME>] [--matcher <TEXT>] [--command <TEXT>] [--timeout <N>] [--dry-run] [--input]
|
|
181
|
+
usage: canon gate install-hooks [--event <NAME>] [--matcher <TEXT>] [--command <TEXT>] [--timeout <N>] [--dry-run] [--input]
|
|
182
182
|
```
|
|
183
183
|
```bash
|
|
184
184
|
canon gate install-hooks --json
|
|
185
185
|
```
|
|
186
186
|
```text
|
|
187
187
|
# Import plans as Change/Task records
|
|
188
|
-
canon ingest plans [--dialect <NAME> --plan-source <DIR>] [--dry-run] [--input]
|
|
188
|
+
usage: canon ingest plans [--dialect <NAME> --plan-source <DIR>] [--dry-run] [--input]
|
|
189
189
|
```
|
|
190
190
|
```bash
|
|
191
191
|
canon ingest plans --json
|
|
192
192
|
```
|
|
193
193
|
```text
|
|
194
194
|
# Import review/divergence/task/handoff records and derive verdicts
|
|
195
|
-
canon ingest records [--watch] [--interval-secs <N>] [--dry-run] [--run <RUN_ID>] [--input]
|
|
195
|
+
usage: canon ingest records [--watch] [--interval-secs <N>] [--dry-run] [--run <RUN_ID>] [--input]
|
|
196
196
|
```
|
|
197
197
|
```bash
|
|
198
198
|
canon ingest records --json
|
|
199
199
|
```
|
|
200
200
|
```text
|
|
201
201
|
# Import agent CLI session transcripts (omp/pi, Claude Code, Codex, Hermes)
|
|
202
|
-
canon ingest sessions [--watch] [--interval-secs <N>] [--home <DIR>] [--full] [--all-workspaces] [--dry-run] [--input]
|
|
202
|
+
usage: canon ingest sessions [--watch] [--interval-secs <N>] [--home <DIR>] [--full] [--all-workspaces] [--dry-run] [--input]
|
|
203
203
|
```
|
|
204
204
|
```bash
|
|
205
205
|
canon ingest sessions --json
|
|
206
206
|
```
|
|
207
207
|
```text
|
|
208
208
|
# Set up canon in a repo (canon.yaml, a starter policy, the AGENTS.md block, a plans home)
|
|
209
|
-
canon init [--check] [--no-agents-md | --check] [--policy <light|standard|strict> | --check | --no-policy] [--providers <LIST> | --check] [--language <TAG> | --check] [--dry-run | --check] [--input]
|
|
209
|
+
usage: canon init [--check] [--no-agents-md | --check] [--policy <light|standard|strict> | --check | --no-policy] [--providers <LIST> | --check] [--language <TAG> | --check] [--dry-run | --check] [--input]
|
|
210
210
|
```
|
|
211
211
|
```bash
|
|
212
212
|
canon init --json
|
|
213
213
|
```
|
|
214
214
|
```text
|
|
215
215
|
# Validate each spec root, then materialize scenario index records
|
|
216
|
-
canon inventory sync [--spec-root <DIR>] [--dry-run] [--input]
|
|
216
|
+
usage: canon inventory sync [--spec-root <DIR>] [--dry-run] [--input]
|
|
217
217
|
```
|
|
218
218
|
```bash
|
|
219
219
|
canon inventory sync --json
|
|
220
220
|
```
|
|
221
221
|
```text
|
|
222
222
|
# Move superseded versions of every record out of the ledger into the archive
|
|
223
|
-
canon ledger compact [--commit --plan-digest <DIGEST>] [--input]
|
|
223
|
+
usage: canon ledger compact [--commit --plan-digest <DIGEST>] [--input]
|
|
224
224
|
# a bare run previews and prints planDigest; `--commit --plan-digest <DIGEST>` with that digest acts
|
|
225
225
|
```
|
|
226
226
|
```bash
|
|
@@ -228,7 +228,7 @@ canon ledger compact --json
|
|
|
228
228
|
```
|
|
229
229
|
```text
|
|
230
230
|
# Bring a repo from an earlier canon up to date
|
|
231
|
-
canon migrate [--commit --plan-digest <DIGEST>] [--revert | --relayed-via <NAME>] [--backup <DIR> (with --revert)] [--actor <ACTOR_ID> (with --relayed-via)] [--approver <NAME> (with --relayed-via)] [--note <TEXT> (with --relayed-via)] [--input]
|
|
231
|
+
usage: canon migrate [--commit --plan-digest <DIGEST>] [--revert | --relayed-via <NAME>] [--backup <DIR> (with --revert)] [--actor <ACTOR_ID> (with --relayed-via)] [--approver <NAME> (with --relayed-via)] [--note <TEXT> (with --relayed-via)] [--input]
|
|
232
232
|
# a bare run previews and prints planDigest; `--commit --plan-digest <DIGEST>` with that digest acts
|
|
233
233
|
```
|
|
234
234
|
```bash
|
|
@@ -236,35 +236,35 @@ canon migrate --json
|
|
|
236
236
|
```
|
|
237
237
|
```text
|
|
238
238
|
# Validate and write a plugin's overlay records
|
|
239
|
-
canon plugin sync <PLUGIN_ID> [--spec-root <DIR>] [--dry-run] [--input]
|
|
239
|
+
usage: canon plugin sync <PLUGIN_ID> [--spec-root <DIR>] [--dry-run] [--input]
|
|
240
240
|
```
|
|
241
241
|
```bash
|
|
242
242
|
canon plugin sync my-plugin --json
|
|
243
243
|
```
|
|
244
244
|
```text
|
|
245
245
|
# Show the policy's digest and its approval (who, when, which bytes)
|
|
246
|
-
canon policy show
|
|
246
|
+
usage: canon policy show
|
|
247
247
|
```
|
|
248
248
|
```bash
|
|
249
249
|
canon policy show --json
|
|
250
250
|
```
|
|
251
251
|
```text
|
|
252
252
|
# Add a prompt bundle from a repository-local JSON manifest
|
|
253
|
-
canon prompt add <NAME@VERSION> --manifest <FILE> [--input]
|
|
253
|
+
usage: canon prompt add <NAME@VERSION> --manifest <FILE> [--input]
|
|
254
254
|
```
|
|
255
255
|
```bash
|
|
256
256
|
canon prompt add reviewer@v1 --manifest .canon/prompt-manifest.json --json
|
|
257
257
|
```
|
|
258
258
|
```text
|
|
259
259
|
# Select a registered prompt bundle version
|
|
260
|
-
canon prompt show <NAME@VERSION>
|
|
260
|
+
usage: canon prompt show <NAME@VERSION>
|
|
261
261
|
```
|
|
262
262
|
```bash
|
|
263
263
|
canon prompt show reviewer@v1 --json
|
|
264
264
|
```
|
|
265
265
|
```text
|
|
266
266
|
# Remove allowlisted records older than a cutoff
|
|
267
|
-
canon purge --kind <session|run|event|trajectory> --before <TIMESTAMP> [--commit --plan-digest <DIGEST>] [--input]
|
|
267
|
+
usage: canon purge --kind <session|run|event|trajectory> --before <TIMESTAMP> [--commit --plan-digest <DIGEST>] [--input]
|
|
268
268
|
# a bare run previews and prints planDigest; `--commit --plan-digest <DIGEST>` with that digest acts
|
|
269
269
|
```
|
|
270
270
|
```bash
|
|
@@ -272,161 +272,161 @@ canon purge --kind session --before 2020-01-01T00:00:00Z --json
|
|
|
272
272
|
```
|
|
273
273
|
```text
|
|
274
274
|
# Read stored records across every storage tier
|
|
275
|
-
canon query --kind <change|task|scenario|session|run|event|handoff|review|divergence|trajectory|strategy_item|evidence|subject|finding> [--since <TIMESTAMP>] [--plugin <PLUGIN_ID> | --history] [--change <CHANGE_ID>] [--status <STATUS>] [--domain <NAME>] [--include-sensitive] [--limit <N> | --all] [--cursor <CURSOR>] [--fields <FIELDS>]
|
|
275
|
+
usage: canon query --kind <change|task|scenario|session|run|event|handoff|review|divergence|trajectory|strategy_item|evidence|subject|finding> [--since <TIMESTAMP>] [--plugin <PLUGIN_ID> | --history] [--change <CHANGE_ID>] [--status <STATUS>] [--domain <NAME>] [--include-sensitive] [--limit <N> | --all] [--cursor <CURSOR>] [--fields <FIELDS>]
|
|
276
276
|
```
|
|
277
277
|
```bash
|
|
278
278
|
canon query --kind evidence --json
|
|
279
279
|
```
|
|
280
280
|
```text
|
|
281
281
|
# Build a canonical regime key for hook scripts
|
|
282
|
-
canon regime show --role-segment <NAME> --repo-name <NAME> --area <NAME> --hash <HASH>
|
|
282
|
+
usage: canon regime show --role-segment <NAME> --repo-name <NAME> --area <NAME> --hash <HASH>
|
|
283
283
|
```
|
|
284
284
|
```bash
|
|
285
285
|
canon regime show --role-segment reviewer --repo-name my-repo --area api --hash abcdef012345 --json
|
|
286
286
|
```
|
|
287
287
|
```text
|
|
288
288
|
# Write the status report (.canon/REPORT.md)
|
|
289
|
-
canon report build [--input]
|
|
289
|
+
usage: canon report build [--input]
|
|
290
290
|
```
|
|
291
291
|
```bash
|
|
292
292
|
canon report build --json
|
|
293
293
|
```
|
|
294
294
|
```text
|
|
295
295
|
# Byte-diff .canon/REPORT.md against a fresh build (0 fresh, 1 missing or drifted); writes nothing
|
|
296
|
-
canon report check
|
|
296
|
+
usage: canon report check
|
|
297
297
|
```
|
|
298
298
|
```bash
|
|
299
299
|
canon report check --json
|
|
300
300
|
```
|
|
301
301
|
```text
|
|
302
302
|
# Export the panel marts to <DIR>/*.parquet plus manifest.json
|
|
303
|
-
canon report snapshot <DIR> [--input]
|
|
303
|
+
usage: canon report snapshot <DIR> [--input]
|
|
304
304
|
```
|
|
305
305
|
```bash
|
|
306
306
|
canon report snapshot snapshot-out --json
|
|
307
307
|
```
|
|
308
308
|
```text
|
|
309
309
|
# Fetch role-scoped strategy guidance
|
|
310
|
-
canon retrieve --for-role <ROLE> (--regime <KEY> | --domain <NAME>) [--subject <SUBJECT_ID> (with --domain)] [--limit <N>]
|
|
310
|
+
usage: canon retrieve --for-role <ROLE> (--regime <KEY> | --domain <NAME>) [--subject <SUBJECT_ID> (with --domain)] [--limit <N>]
|
|
311
311
|
```
|
|
312
312
|
```bash
|
|
313
313
|
canon retrieve --for-role reviewer --domain dev --limit 20 --json
|
|
314
314
|
```
|
|
315
315
|
```text
|
|
316
316
|
# Describe canon's own commands
|
|
317
|
-
canon schema [<PATH>]* [--errors | --error <CODE> | --warning <CODE> | --warnings]
|
|
317
|
+
usage: canon schema [<PATH>]* [--errors | --error <CODE> | --warning <CODE> | --warnings]
|
|
318
318
|
```
|
|
319
319
|
```bash
|
|
320
320
|
canon schema evidence add --json
|
|
321
321
|
```
|
|
322
322
|
```text
|
|
323
323
|
# Search records, brief sections and scenario text, with each hit's neighbors in the record graph
|
|
324
|
-
canon search <TEXT> [--kind <change|task|scenario|session|run|event|handoff|review|divergence|trajectory|strategy_item|evidence|subject|finding|brief>]* [--expand <N>] [--limit <N>]
|
|
324
|
+
usage: canon search <TEXT> [--kind <change|task|scenario|session|run|event|handoff|review|divergence|trajectory|strategy_item|evidence|subject|finding|brief>]* [--expand <N>] [--limit <N>]
|
|
325
325
|
```
|
|
326
326
|
```bash
|
|
327
327
|
canon search timeout --kind finding --json
|
|
328
328
|
```
|
|
329
329
|
```text
|
|
330
330
|
# Run canon's built-in fixture self-tests
|
|
331
|
-
canon selftest [--suite <trust-spine-gate|tiered-storage|typed-authoring-vocabulary|policy-expressions|format-authority|session-ingest|canon-context|artifact-ingest|spec-ledger-selftest|plugin-overlays|plan-import>]
|
|
331
|
+
usage: canon selftest [--suite <trust-spine-gate|tiered-storage|typed-authoring-vocabulary|policy-expressions|format-authority|session-ingest|canon-context|artifact-ingest|spec-ledger-selftest|plugin-overlays|plan-import>]
|
|
332
332
|
```
|
|
333
333
|
```bash
|
|
334
334
|
canon selftest --suite trust-spine-gate --json
|
|
335
335
|
```
|
|
336
336
|
```text
|
|
337
337
|
# Check canonical projections without writing; exit 1 on drift, a legacy remnant, or a lock another canon version wrote
|
|
338
|
-
canon skills check [--skills-source <DIR>] [--providers <LIST>]
|
|
338
|
+
usage: canon skills check [--skills-source <DIR>] [--providers <LIST>]
|
|
339
339
|
```
|
|
340
340
|
```bash
|
|
341
341
|
canon skills check --json
|
|
342
342
|
```
|
|
343
343
|
```text
|
|
344
344
|
# Print diagnostics for canonical projections, the install lock's canon version, legacy remnants, canon projections for a provider that is not selected, and other skills whose description claims build work; reports only, never edits
|
|
345
|
-
canon skills doctor [--skills-source <DIR>] [--providers <LIST>]
|
|
345
|
+
usage: canon skills doctor [--skills-source <DIR>] [--providers <LIST>]
|
|
346
346
|
```
|
|
347
347
|
```bash
|
|
348
348
|
canon skills doctor --json
|
|
349
349
|
```
|
|
350
350
|
```text
|
|
351
351
|
# Install the canonical `canon` bundle or legacy developer skills
|
|
352
|
-
canon skills install [--skills-source <DIR>] [--providers <LIST>] [--dry-run] [--input]
|
|
352
|
+
usage: canon skills install [--skills-source <DIR>] [--providers <LIST>] [--dry-run] [--input]
|
|
353
353
|
```
|
|
354
354
|
```bash
|
|
355
355
|
canon skills install --json
|
|
356
356
|
```
|
|
357
357
|
```text
|
|
358
358
|
# Print a guide built into this binary (markdown on stdout); the installed SKILL.md is a stub that points here
|
|
359
|
-
canon skills show <NAME> [--full]
|
|
359
|
+
usage: canon skills show [<NAME>] [--full]
|
|
360
360
|
```
|
|
361
361
|
```bash
|
|
362
362
|
canon skills show canon --full --json
|
|
363
363
|
```
|
|
364
364
|
```text
|
|
365
365
|
# Show where this repo stands: subjects by status, their gaps, and the next commands
|
|
366
|
-
canon status [--fields <FIELDS>]
|
|
366
|
+
usage: canon status [--fields <FIELDS>]
|
|
367
367
|
```
|
|
368
368
|
```bash
|
|
369
369
|
canon status --json
|
|
370
370
|
```
|
|
371
371
|
```text
|
|
372
372
|
# The unsigned approval payload bytes an external signer signs
|
|
373
|
-
canon strategy approval-payload <STRATEGY_ID> --evaluation <FILE> --approver <NAME> --approval-at <TIMESTAMP>
|
|
373
|
+
usage: canon strategy approval-payload <STRATEGY_ID> --evaluation <FILE> --approver <NAME> --approval-at <TIMESTAMP>
|
|
374
374
|
```
|
|
375
375
|
```bash
|
|
376
376
|
canon strategy approval-payload 01ARZ3NDEKTSV4RRFFQ69G5FAV --evaluation evaluation.json --approver alice --approval-at 2030-01-01T00:00:00Z --json
|
|
377
377
|
```
|
|
378
378
|
```text
|
|
379
379
|
# Promote a strategy after paired evaluation and signed approval
|
|
380
|
-
canon strategy promote <STRATEGY_ID> [--evaluation <FILE> --approval <FILE>] [--signature-file <FILE> (with --approval)] [--dry-run] [--input]
|
|
380
|
+
usage: canon strategy promote <STRATEGY_ID> [--evaluation <FILE> --approval <FILE>] [--signature-file <FILE> (with --approval)] [--dry-run] [--input]
|
|
381
381
|
```
|
|
382
382
|
```bash
|
|
383
383
|
canon strategy promote 01ARZ3NDEKTSV4RRFFQ69G5FAV --json
|
|
384
384
|
```
|
|
385
385
|
```text
|
|
386
386
|
# Disable an active strategy with durable rollback provenance
|
|
387
|
-
canon strategy rollback <STRATEGY_ID> --reason <TEXT> --actor <ACTOR_ID> --signature-file <FILE> --approval-at <TIMESTAMP> [--contradicting-trajectory <ID>] [--input]
|
|
387
|
+
usage: canon strategy rollback <STRATEGY_ID> --reason <TEXT> --actor <ACTOR_ID> --signature-file <FILE> --approval-at <TIMESTAMP> [--contradicting-trajectory <ID>] [--input]
|
|
388
388
|
```
|
|
389
389
|
```bash
|
|
390
390
|
canon strategy rollback 01ARZ3NDEKTSV4RRFFQ69G5FAV --reason "regressed in production" --actor alice --signature-file approval.sig --approval-at 2030-01-01T00:00:00Z --json
|
|
391
391
|
```
|
|
392
392
|
```text
|
|
393
393
|
# Link an imported plan change to a subject (adopting it under another subject adds that subject; a change may belong to several)
|
|
394
|
-
canon subject adopt <SUBJECT_ID> --change <CHANGE_ID> [--dry-run] [--input]
|
|
394
|
+
usage: canon subject adopt <SUBJECT_ID> --change <CHANGE_ID> [--dry-run] [--input]
|
|
395
395
|
```
|
|
396
396
|
```bash
|
|
397
397
|
canon subject adopt demo --change add-login --json
|
|
398
398
|
```
|
|
399
399
|
```text
|
|
400
400
|
# Move a subject to another lifecycle state (shipping is evidence-gated; with spec_coverage.require_review, entering its scope is review-gated; shipped → verifying reopens with --reason)
|
|
401
|
-
canon subject move <SUBJECT_ID> --to <proposed|specced|building|verifying|shipped|retired> [--override-reason <TEXT>] [--reason <TEXT>] [--actor <ACTOR_ID>] [--session <SESSION_ID>] [--input]
|
|
401
|
+
usage: canon subject move <SUBJECT_ID> --to <proposed|specced|building|verifying|shipped|retired> [--override-reason <TEXT>] [--reason <TEXT>] [--actor <ACTOR_ID>] [--session <SESSION_ID>] [--input]
|
|
402
402
|
```
|
|
403
403
|
```bash
|
|
404
404
|
canon subject move demo --to specced --json
|
|
405
405
|
```
|
|
406
406
|
```text
|
|
407
407
|
# Author a new subject at status `proposed`
|
|
408
|
-
canon subject new <SUBJECT_ID> --domain <NAME> --title <TEXT> [--summary <TEXT>] [--owner-role <ROLE>] [--actor <ACTOR_ID>] [--session <SESSION_ID>] [--input]
|
|
408
|
+
usage: canon subject new <SUBJECT_ID> --domain <NAME> --title <TEXT> [--summary <TEXT>] [--owner-role <ROLE>] [--actor <ACTOR_ID>] [--session <SESSION_ID>] [--input]
|
|
409
409
|
```
|
|
410
410
|
```bash
|
|
411
411
|
canon subject new payments --domain dev --title Payments --json
|
|
412
412
|
```
|
|
413
413
|
```text
|
|
414
414
|
# Show a subject (read-only)
|
|
415
|
-
canon subject show <SUBJECT_ID>
|
|
415
|
+
usage: canon subject show <SUBJECT_ID>
|
|
416
416
|
```
|
|
417
417
|
```bash
|
|
418
418
|
canon subject show demo --json
|
|
419
419
|
```
|
|
420
420
|
```text
|
|
421
421
|
# Take a change back out of a subject (the mirror of adopt; refused for a change whose brief is approved)
|
|
422
|
-
canon subject unadopt <SUBJECT_ID> --change <CHANGE_ID> [--dry-run] [--input]
|
|
422
|
+
usage: canon subject unadopt <SUBJECT_ID> --change <CHANGE_ID> [--dry-run] [--input]
|
|
423
423
|
```
|
|
424
424
|
```bash
|
|
425
425
|
canon subject unadopt demo --change add-login --json
|
|
426
426
|
```
|
|
427
427
|
```text
|
|
428
428
|
# Apply canon.yaml aging rules, moving old records to their destination tier
|
|
429
|
-
canon tier age [--commit --plan-digest <DIGEST>] [--input]
|
|
429
|
+
usage: canon tier age [--commit --plan-digest <DIGEST>] [--input]
|
|
430
430
|
# a bare run previews and prints planDigest; `--commit --plan-digest <DIGEST>` with that digest acts
|
|
431
431
|
```
|
|
432
432
|
```bash
|
|
@@ -434,7 +434,7 @@ canon tier age --json
|
|
|
434
434
|
```
|
|
435
435
|
```text
|
|
436
436
|
# Follow a finding's review loop in time order: review, finding, fix, re-review, evidence
|
|
437
|
-
canon trace <ID>
|
|
437
|
+
usage: canon trace <ID>
|
|
438
438
|
```
|
|
439
439
|
```bash
|
|
440
440
|
canon trace add-login_1_1 --json
|
|
@@ -624,9 +624,14 @@ move` and `canon migrate` delete or rewrite existing data. A bare run only
|
|
|
624
624
|
previews: exit 0, nothing written, a report with `planDigest` and
|
|
625
625
|
`effects[]`. Read the effects, then act with `--commit --plan-digest
|
|
626
626
|
<planDigest>`; it refuses (`PLAN_STALE`, exit 2) when the plan recomputed
|
|
627
|
-
now differs from the one you previewed.
|
|
628
|
-
|
|
629
|
-
|
|
627
|
+
now differs from the one you previewed. The digest is `sha256:` and 64 hex
|
|
628
|
+
digits, over the effects and what the plan read, so a file or record the plan
|
|
629
|
+
read that changed since is `PLAN_STALE` too, and `meta.next[0]` is the preview
|
|
630
|
+
to run again. A commit holds the repository write lock for its whole run:
|
|
631
|
+
another command that writes waits for it, and one that waited 30 seconds
|
|
632
|
+
answers `REPO_WRITE_BUSY` (exit 2, retryable): run it again. A document passed
|
|
633
|
+
with `--input` never carries `--commit` or `--plan-digest`, and these five
|
|
634
|
+
leaves take one object only (`INPUT_INVALID`).
|
|
630
635
|
|
|
631
636
|
```bash
|
|
632
637
|
canon purge --kind session --before 2026-01-01
|