@journeykit/canon 0.29.0 → 0.31.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 +48 -22
- package/dist/skills/reference/brief-polish.md +4 -4
- package/dist/skills/reference/brief-shape.md +38 -7
- package/dist/skills/reference/canon-authoring.md +6 -6
- package/dist/skills/reference/canon-gate.md +49 -34
- package/dist/skills/reference/canon-learn.md +2 -2
- package/dist/skills/reference/canon-plan-import.md +2 -2
- package/dist/skills/reference/canon-plugins.md +6 -6
- package/dist/skills/reference/canon-report-dashboard.md +12 -8
- package/dist/skills/reference/canon-review.md +26 -25
- package/dist/skills/reference/canon-storage.md +20 -3
- package/dist/skills/reference/canon-subject.md +132 -98
- package/dist/skills/reference/role-implementer.md +42 -28
- package/dist/skills/reference/role-orchestrator.md +40 -24
- package/dist/skills/reference/role-planner.md +32 -17
- package/dist/skills/reference/role-reviewer.md +48 -30
- 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 +7 -4
- package/man/canon-brief-check.1 +2 -2
- package/man/canon-brief-show.1 +2 -2
- package/man/canon-brief.1 +8 -7
- package/man/canon-change-new.1 +4 -4
- package/man/canon-change.1 +3 -3
- 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 +10 -10
- 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 +6 -6
- package/man/canon-divergence-add.1 +6 -6
- package/man/canon-divergence-defer.1 +6 -6
- package/man/canon-divergence-list.1 +2 -2
- package/man/canon-divergence-resolve.1 +6 -6
- package/man/canon-divergence.1 +2 -2
- package/man/canon-evidence-add.1 +16 -16
- package/man/canon-evidence-approval-payload.1 +10 -10
- package/man/canon-evidence-audit.1 +10 -10
- package/man/canon-evidence.1 +3 -3
- package/man/canon-export.1 +2 -2
- package/man/canon-feature-new.1 +6 -6
- package/man/canon-feature.1 +2 -2
- package/man/canon-finding-add.1 +23 -11
- package/man/canon-finding-close.1 +8 -8
- package/man/canon-finding-list.1 +4 -4
- package/man/canon-finding.1 +4 -4
- 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 +4 -4
- package/man/canon-ingest-sessions.1 +2 -2
- package/man/canon-ingest.1 +2 -2
- package/man/canon-init.1 +2 -2
- 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 +25 -3
- 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 +5 -5
- 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 +5 -5
- package/man/canon-review-change.1 +6 -6
- package/man/canon-review-scenario.1 +6 -6
- package/man/canon-review.1 +2 -2
- package/man/canon-scenario-new.1 +10 -10
- package/man/canon-scenario.1 +2 -2
- package/man/canon-schema.1 +2 -2
- package/man/canon-search.1 +104 -0
- 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 +2 -2
- package/man/canon-skills.1 +2 -2
- package/man/canon-status.1 +7 -2
- package/man/canon-strategy-approval-payload.1 +2 -2
- package/man/canon-strategy-promote.1 +2 -2
- package/man/canon-strategy-rollback.1 +5 -5
- package/man/canon-strategy.1 +2 -2
- package/man/canon-subject-adopt.1 +4 -4
- package/man/canon-subject-move.1 +5 -5
- package/man/canon-subject-new.1 +5 -5
- package/man/canon-subject-show.1 +2 -2
- package/man/canon-subject-unadopt.1 +5 -5
- 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 +56 -0
- package/man/canon.1 +8 -2
- package/package.json +4 -4
|
@@ -51,17 +51,17 @@ canon context
|
|
|
51
51
|
```
|
|
52
52
|
```text
|
|
53
53
|
# Add a divergence candidate, staged with no run_seq yet
|
|
54
|
-
canon divergence add <SCENARIO_ID> --actor
|
|
54
|
+
canon divergence add <SCENARIO_ID> --actor <ACTOR_ID> [--project <PROJECT_ID>] [--rev <REV>] [--state <open|still-divergent|resolved|deferred>] [--reason <TEXT>] [--expiry <TIMESTAMP>] [--round <N>] [--session <SESSION_ID>] [--detail <TEXT>] [--role <ROLE>] [--promote | --no-promote] [--input]
|
|
55
55
|
```
|
|
56
56
|
```bash
|
|
57
|
-
canon divergence add auth.login.01 --actor
|
|
57
|
+
canon divergence add auth.login.01 --actor alice --role reviewer
|
|
58
58
|
```
|
|
59
59
|
```text
|
|
60
60
|
# Directly record a deferred divergence (requires --reason/--expiry)
|
|
61
|
-
canon divergence defer <SCENARIO_ID> --actor
|
|
61
|
+
canon divergence defer <SCENARIO_ID> --actor <ACTOR_ID> --reason <TEXT> --expiry <TIMESTAMP> [--project <PROJECT_ID>] [--rev <REV>] [--round <N>] [--session <SESSION_ID>] [--role <ROLE>] [--input]
|
|
62
62
|
```
|
|
63
63
|
```bash
|
|
64
|
-
canon divergence defer auth.login.01 --actor
|
|
64
|
+
canon divergence defer auth.login.01 --actor alice --reason "waiting on the vendor" --expiry 2030-01-01T00:00:00Z --role reviewer
|
|
65
65
|
```
|
|
66
66
|
```text
|
|
67
67
|
# List the current divergence burn-down state
|
|
@@ -72,31 +72,31 @@ canon divergence list --as-of 2030-01-01
|
|
|
72
72
|
```
|
|
73
73
|
```text
|
|
74
74
|
# Directly record a resolved divergence
|
|
75
|
-
canon divergence resolve <SCENARIO_ID> --actor
|
|
75
|
+
canon divergence resolve <SCENARIO_ID> --actor <ACTOR_ID> [--project <PROJECT_ID>] [--rev <REV>] [--round <N>] [--session <SESSION_ID>] [--detail <TEXT>] [--role <ROLE>] [--input]
|
|
76
76
|
```
|
|
77
77
|
```bash
|
|
78
|
-
canon divergence resolve auth.login.01 --actor
|
|
78
|
+
canon divergence resolve auth.login.01 --actor alice --role reviewer
|
|
79
79
|
```
|
|
80
80
|
```text
|
|
81
81
|
# Record one code-review finding
|
|
82
|
-
canon finding add --change
|
|
82
|
+
canon finding add --change <CHANGE_ID> --round <N> --seq <N> --severity <blocker|should-fix|note> --actor <ACTOR_ID> --summary <TEXT> [--disposition <open|fixed|rejected|deferred>] [--rev <REV>] [--resolution-rev <REV>] [--introduced-rev <REV>] [--introduced-unknown] [--review <REVIEW_ID>] [--file-ref <TEXT>] [--scenario <SCENARIO_ID>]* [--role <ROLE>] [--session <SESSION_ID>] [--promote | --no-promote] [--input]
|
|
83
83
|
```
|
|
84
84
|
```bash
|
|
85
|
-
canon finding add --change
|
|
85
|
+
canon finding add --change add-login --round 1 --seq 2 --severity should-fix --introduced-unknown --actor alice --summary "Token is logged"
|
|
86
86
|
```
|
|
87
87
|
```text
|
|
88
88
|
# Move an already-committed finding's disposition
|
|
89
|
-
canon finding close <CHANGE_ID> --round <N> --seq <N> --disposition <open|fixed|rejected|deferred> [--resolution-rev <REV>] [--reason <TEXT>] [--actor
|
|
89
|
+
canon finding close <CHANGE_ID> --round <N> --seq <N> --disposition <open|fixed|rejected|deferred> [--resolution-rev <REV>] [--reason <TEXT>] [--actor <ACTOR_ID>] [--role <ROLE>] [--session <SESSION_ID>] [--promote | --no-promote] [--input]
|
|
90
90
|
```
|
|
91
91
|
```bash
|
|
92
92
|
canon finding close add-login --round 1 --seq 1 --disposition rejected --reason "works as designed"
|
|
93
93
|
```
|
|
94
94
|
```text
|
|
95
95
|
# List a change's committed findings at their latest version
|
|
96
|
-
canon finding list --change
|
|
96
|
+
canon finding list --change <CHANGE_ID> [--open] [--limit <N> | --all] [--cursor <CURSOR>] [--fields <FIELDS>]
|
|
97
97
|
```
|
|
98
98
|
```bash
|
|
99
|
-
canon finding list --change
|
|
99
|
+
canon finding list --change add-login
|
|
100
100
|
```
|
|
101
101
|
```text
|
|
102
102
|
# Validate a spec/artifact corpus against canon's format
|
|
@@ -114,31 +114,31 @@ canon gate check
|
|
|
114
114
|
```
|
|
115
115
|
```text
|
|
116
116
|
# Read stored records across every storage tier
|
|
117
|
-
canon query --kind <change|task|scenario|session|run|event|handoff|review|divergence|trajectory|strategy_item|evidence|subject|finding> [--since <TIMESTAMP>] [--plugin
|
|
117
|
+
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>]
|
|
118
118
|
```
|
|
119
119
|
```bash
|
|
120
120
|
canon query --kind evidence
|
|
121
121
|
```
|
|
122
122
|
```text
|
|
123
123
|
# Fetch role-scoped strategy guidance
|
|
124
|
-
canon retrieve --for-role <ROLE> [--regime <KEY>] [--domain <NAME>] [--subject
|
|
124
|
+
canon retrieve --for-role <ROLE> [--regime <KEY>] [--domain <NAME>] [--subject <SUBJECT_ID>] [--limit <N>]
|
|
125
125
|
```
|
|
126
126
|
```bash
|
|
127
127
|
canon retrieve --for-role reviewer --domain dev --limit 20
|
|
128
128
|
```
|
|
129
129
|
```text
|
|
130
130
|
# Write one attributed Review record for a chore change directly to the ledger (exactly one provenance ref required)
|
|
131
|
-
canon review change <CHANGE_ID> --actor
|
|
131
|
+
canon review change <CHANGE_ID> --actor <ACTOR_ID> (--upstream-ref <TEXT> | --original-spec-ref <TEXT>) [--project <PROJECT_ID>] [--rev <REV>] [--role <ROLE>] [--session <SESSION_ID>] [--review-outcome <signed|indeterminate|unavailable>] [--reviewer-provider <NAME>] [--reviewer-model <NAME>] [--reviewer-harness <NAME>] [--artifact <PATH>]* [--max-artifact-mib <N>] [--input]
|
|
132
132
|
```
|
|
133
133
|
```bash
|
|
134
|
-
canon review change add-login --actor
|
|
134
|
+
canon review change add-login --actor alice --role reviewer --original-spec-ref docs/prd.md
|
|
135
135
|
```
|
|
136
136
|
```text
|
|
137
137
|
# Write one attributed Review record per scenario directly to the ledger, nothing to promote (exactly one provenance ref required)
|
|
138
|
-
canon review scenario <SCENARIO_ID>+ --actor
|
|
138
|
+
canon review scenario <SCENARIO_ID>+ --actor <ACTOR_ID> (--upstream-ref <TEXT> | --original-spec-ref <TEXT>) [--project <PROJECT_ID>] [--rev <REV>] [--role <ROLE>] [--session <SESSION_ID>] [--review-outcome <signed|indeterminate|unavailable>] [--reviewer-provider <NAME>] [--reviewer-model <NAME>] [--reviewer-harness <NAME>] [--artifact <PATH>]* [--max-artifact-mib <N>] [--input]
|
|
139
139
|
```
|
|
140
140
|
```bash
|
|
141
|
-
canon review scenario auth.login.01 --actor
|
|
141
|
+
canon review scenario auth.login.01 --actor alice --role reviewer --original-spec-ref docs/prd.md
|
|
142
142
|
```
|
|
143
143
|
```text
|
|
144
144
|
# Describe canon's own commands
|
|
@@ -148,6 +148,13 @@ canon schema [<PATH>]* [--errors | --error <CODE>]
|
|
|
148
148
|
canon schema evidence add
|
|
149
149
|
```
|
|
150
150
|
```text
|
|
151
|
+
# Search records, brief sections and scenario text, with each hit's neighbors in the record graph
|
|
152
|
+
canon search <TEXT> [--kind <change|task|scenario|session|run|event|handoff|review|divergence|trajectory|strategy_item|evidence|subject|finding|brief>]* [--expand <N>] [--limit <N>]
|
|
153
|
+
```
|
|
154
|
+
```bash
|
|
155
|
+
canon search timeout --kind finding
|
|
156
|
+
```
|
|
157
|
+
```text
|
|
151
158
|
# Print a guide built into this binary (markdown on stdout); the installed SKILL.md is a stub that points here
|
|
152
159
|
canon skills show <NAME> [--full]
|
|
153
160
|
```
|
|
@@ -161,6 +168,13 @@ canon status [--fields <FIELDS>]
|
|
|
161
168
|
```bash
|
|
162
169
|
canon status
|
|
163
170
|
```
|
|
171
|
+
```text
|
|
172
|
+
# Follow a finding's review loop in time order: review, finding, fix, re-review, evidence
|
|
173
|
+
canon trace <ID>
|
|
174
|
+
```
|
|
175
|
+
```bash
|
|
176
|
+
canon trace add-login_1_1
|
|
177
|
+
```
|
|
164
178
|
<!-- canon:generated commands-reviewer end -->
|
|
165
179
|
|
|
166
180
|
`review scenario` needs exactly one of `--upstream-ref <ref>` or
|
|
@@ -174,20 +188,20 @@ found goes in `finding add --summary`.
|
|
|
174
188
|
The forms you reach for most (the story's ids; swap in yours):
|
|
175
189
|
|
|
176
190
|
```bash
|
|
177
|
-
canon review scenario auth.login.01 auth.login.02 --actor
|
|
178
|
-
canon review scenario auth.login.01 --actor
|
|
179
|
-
canon review change add-login --actor
|
|
180
|
-
canon finding add --change
|
|
191
|
+
canon review scenario auth.login.01 auth.login.02 --actor reviewer-1 --session session-7 --original-spec-ref docs/prd.md
|
|
192
|
+
canon review scenario auth.login.01 --actor reviewer-1 --session session-7 --review-outcome indeterminate --original-spec-ref docs/prd.md
|
|
193
|
+
canon review change add-login --actor reviewer-1 --session session-7 --original-spec-ref docs/prd.md
|
|
194
|
+
canon finding add --change add-login --round 1 --seq 2 --severity blocker --actor reviewer-1 --session session-7 --summary "No rate limit" --scenario auth.login.01 --scenario auth.login.02 --introduced-rev HEAD~3
|
|
181
195
|
canon finding close add-login --round 1 --seq 2 --disposition fixed --resolution-rev HEAD
|
|
182
196
|
canon finding close add-login --round 1 --seq 3 --disposition rejected --reason "works as designed"
|
|
183
|
-
canon finding list --change
|
|
197
|
+
canon finding list --change add-login --open
|
|
184
198
|
```
|
|
185
199
|
|
|
186
200
|
Several findings at once are one `--input` array (the keys are option names
|
|
187
201
|
in camelCase):
|
|
188
202
|
|
|
189
203
|
```text
|
|
190
|
-
canon finding add --input '[{"
|
|
204
|
+
canon finding add --input '[{"change":"add-login","round":1,"seq":3,"severity":"note","actor":"reviewer-1","summary":"Token is logged"},{"change":"add-login","round":1,"seq":4,"severity":"should-fix","introducedUnknown":true,"actor":"reviewer-1","summary":"Error text leaks the user name"}]'
|
|
191
205
|
```
|
|
192
206
|
|
|
193
207
|
A review pins what you saw: the scenario's digest plus the verdict
|
|
@@ -210,8 +224,8 @@ or `status` again.
|
|
|
210
224
|
## Separate session
|
|
211
225
|
|
|
212
226
|
You run as a separate process with your own session id, never the session
|
|
213
|
-
that wrote the code and evidence under another `--actor
|
|
214
|
-
`--session
|
|
227
|
+
that wrote the code and evidence under another `--actor` or
|
|
228
|
+
`--session` label. Pass your real session id as `--session` on
|
|
215
229
|
everything you record. A harness with no subagent tool starts you (a new
|
|
216
230
|
`codex exec` run in this repo, say). Review happens on every change.
|
|
217
231
|
|
|
@@ -257,6 +271,10 @@ should make it fail and run it if it is cheap; if the test stays green, record
|
|
|
257
271
|
the finding. For a fix, read `canon query --kind evidence --history --json`
|
|
258
272
|
for that scenario's records: expect an earlier non-faithful version, or a
|
|
259
273
|
named closest reproduction in `--ref`; record a finding when neither exists.
|
|
274
|
+
`canon trace <finding key>` lists the loop around a finding in time order (the
|
|
275
|
+
review that raised it, the fix, the re-review, the evidence at those commits);
|
|
276
|
+
`canon search "<text>"` finds earlier findings and the scenarios about the same
|
|
277
|
+
thing.
|
|
260
278
|
Put one blast-radius fact in the finding or review `--summary`: what else the
|
|
261
279
|
change touches that the checks do not exercise. Read the waivers too:
|
|
262
280
|
`status` lists every `--override-reason` an implementer or the orchestrator
|
|
@@ -274,7 +292,7 @@ confirm the evidence really is divergent and the limit is outside this
|
|
|
274
292
|
change, then report to the human the scenario ids, the reason, the
|
|
275
293
|
tracking reference and an expiry when the limit should be gone by a date.
|
|
276
294
|
Give the exact call, ids filled in: the human runs `canon divergence accept
|
|
277
|
-
<ids> --actor
|
|
295
|
+
<ids> --actor <name> --reason "<why>" --tracking <ref>` themselves in their
|
|
278
296
|
own shell, from a session that did not attest the evidence
|
|
279
297
|
(`DIVERGENCE_ACCEPT_REFUSED` otherwise); you never run it or unset your role to. Never suggest it to skip
|
|
280
298
|
a fix the implementer can make in this change. The acceptance pins that
|
|
@@ -302,9 +320,9 @@ covered for the ship guard and stays listed as `accepted-divergence` in
|
|
|
302
320
|
- Sign off in one batch with `review scenario <ids>`, all or nothing. It writes
|
|
303
321
|
directly; nothing to promote. canon stores and re-checks attached bytes
|
|
304
322
|
and never compares images.
|
|
305
|
-
- Pass `--scenario
|
|
323
|
+
- Pass `--scenario` for each scenario a finding is about. A blocker you
|
|
306
324
|
close `fixed` then stays blocking until the implementer records evidence
|
|
307
|
-
again for those scenarios alone (`evidence add --scenario
|
|
325
|
+
again for those scenarios alone (`evidence add --scenario <id>`); the
|
|
308
326
|
close inherits the list. A blocker naming no scenario asks for the whole
|
|
309
327
|
suite again (`evidence add --all-scenarios`), which on a big suite is
|
|
310
328
|
a long e2e run for a one-scenario fix, so name them. Your pinned review
|
|
@@ -313,7 +331,7 @@ covered for the ship guard and stays listed as `accepted-divergence` in
|
|
|
313
331
|
evidence changes a verdict or the checks and so stales your review, look
|
|
314
332
|
again before you sign it again.
|
|
315
333
|
A chore has no scenarios: review it with one change-level review, `canon
|
|
316
|
-
review change <slug> --actor
|
|
334
|
+
review change <slug> --actor <me> --session <session>
|
|
317
335
|
--upstream-ref <ref>` (or `--original-spec-ref <path>`). It signs the
|
|
318
336
|
chore's invariants and checks against the diff and pins its brief, so
|
|
319
337
|
editing the brief stales it. The chore also needs new evidence on every
|
|
@@ -322,7 +340,7 @@ covered for the ship guard and stays listed as `accepted-divergence` in
|
|
|
322
340
|
|
|
323
341
|
**Done when:** `canon gate check` lists no `unreviewed-promotion` violation
|
|
324
342
|
and no open blocker for the change (read `data.violations[]` in `canon gate
|
|
325
|
-
check --json`; `canon finding list --change
|
|
343
|
+
check --json`; `canon finding list --change add-login --open` shows the
|
|
326
344
|
open findings), or each remaining one is a finding you recorded and the
|
|
327
345
|
implementer owns. Your last write's `meta.next` names the next step.
|
|
328
346
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-adapter-authorize 1 "authorize 0.
|
|
3
|
+
.TH canon-adapter-authorize 1 "authorize 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-adapter\-authorize \- Authorize declared capabilities against repository policy (preflight only)
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -41,4 +41,4 @@ Print help
|
|
|
41
41
|
\fB\-V\fR, \fB\-\-version\fR
|
|
42
42
|
Print version
|
|
43
43
|
.SH VERSION
|
|
44
|
-
v0.
|
|
44
|
+
v0.31.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-adapter-validate 1 "validate 0.
|
|
3
|
+
.TH canon-adapter-validate 1 "validate 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-adapter\-validate \- Read and validate one provider\-neutral response envelope
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -41,4 +41,4 @@ Print help
|
|
|
41
41
|
\fB\-V\fR, \fB\-\-version\fR
|
|
42
42
|
Print version
|
|
43
43
|
.SH VERSION
|
|
44
|
-
v0.
|
|
44
|
+
v0.31.0
|
package/man/canon-adapter.1
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-adapter 1 "adapter 0.
|
|
3
|
+
.TH canon-adapter 1 "adapter 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-adapter \- Validate a provider\-neutral adapter response without executing a provider
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -43,4 +43,4 @@ Examples:
|
|
|
43
43
|
canon adapter validate \-\-response response.json
|
|
44
44
|
canon adapter validate \-\-response response.json \-\-repo . \-\-json
|
|
45
45
|
.SH VERSION
|
|
46
|
-
v0.
|
|
46
|
+
v0.31.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-artifacts-move 1 "move 0.
|
|
3
|
+
.TH canon-artifacts-move 1 "move 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-artifacts\-move \- Move the local artifact blobs to an object\-store tier, verify them, and remove the local copies
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -60,4 +60,4 @@ The bare run previews: it lists every upload and removal and prints a planDigest
|
|
|
60
60
|
|
|
61
61
|
Idempotent and resumable: a run stopped anywhere leaves a repo the gate still passes, and the next run finishes; a second run finds nothing to do. A blob whose bytes do not match its name is never moved. Moving back to local is refused; `\-\-tier local` on a local repo is a no\-op.
|
|
62
62
|
.SH VERSION
|
|
63
|
-
v0.
|
|
63
|
+
v0.31.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-artifacts-store 1 "store 0.
|
|
3
|
+
.TH canon-artifacts-store 1 "store 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-artifacts\-store \- Store the bound files of existing evidence records and current reviews in the artifact store (.canon/artifacts/sha256/)
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -51,4 +51,4 @@ For records written before canon stored bound bytes (0.11\-0.13), and for any ev
|
|
|
51
51
|
|
|
52
52
|
Exit 0 when the pass ran (the gate decides whether an unstored file matters), 2 when the ledger cannot be read or a write fails.
|
|
53
53
|
.SH VERSION
|
|
54
|
-
v0.
|
|
54
|
+
v0.31.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-artifacts-verify 1 "verify 0.
|
|
3
|
+
.TH canon-artifacts-verify 1 "verify 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-artifacts\-verify \- Check that the artifact store holds every file the latest evidence and current reviews bind (\-\-full re\-hashes the stored bytes)
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -45,4 +45,4 @@ Asks the store canon.yaml\*(Aqs `artifacts:` block selects (default: local, .can
|
|
|
45
45
|
|
|
46
46
|
Exit 0 when every file is stored, 1 when one is missing or altered (data.problems names each), 2 when the store cannot be used or reached: an unreachable store is a refusal, never a pass.
|
|
47
47
|
.SH VERSION
|
|
48
|
-
v0.
|
|
48
|
+
v0.31.0
|
package/man/canon-artifacts.1
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-artifacts 1 "artifacts 0.
|
|
3
|
+
.TH canon-artifacts 1 "artifacts 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-artifacts \- Check or move the evidence artifact store (local, or an object\-store tier)
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -42,4 +42,4 @@ Store the bound files of existing evidence records and current reviews in the ar
|
|
|
42
42
|
canon\-artifacts\-move(1)
|
|
43
43
|
Move the local artifact blobs to an object\-store tier, verify them, and remove the local copies
|
|
44
44
|
.SH VERSION
|
|
45
|
-
v0.
|
|
45
|
+
v0.31.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-brief-approve 1 "approve 0.
|
|
3
|
+
.TH canon-brief-approve 1 "approve 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-brief\-approve \- Record the human\*(Aqs approval of the brief, bound to its text; refused while `brief check` has blockers
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -48,15 +48,18 @@ Print help
|
|
|
48
48
|
Print version
|
|
49
49
|
.TP
|
|
50
50
|
[\fICHANGE_ID\fR]
|
|
51
|
-
The
|
|
51
|
+
The changes to approve, one answer for all, none written unless every one is approvable (default: the repo\*(Aqs only live change)
|
|
52
52
|
.SH EXTRA
|
|
53
53
|
Examples:
|
|
54
54
|
canon brief approve add\-login \-\-approver Ana \-\-note \*(AqGo. Ship the failure flow too.\*(Aq
|
|
55
|
+
canon brief approve add\-login add\-search fix\-sync \-\-approver Ana \-\-note \*(AqAll three, go.\*(Aq
|
|
55
56
|
|
|
56
|
-
|
|
57
|
+
Several ids take one name, one answer and one timestamp. Every id is checked
|
|
58
|
+
first; one refused id refuses the call (BRIEF_APPROVE_REFUSED) and nothing is
|
|
59
|
+
written. Writes `Approved: <who> <when> — "<words>" (brief sha256:<digest>)` into the
|
|
57
60
|
brief (the digest covers the brief without its `Approved:` lines) and records
|
|
58
61
|
`canon policy approve` in the same call. Edit the brief afterwards and it reads as
|
|
59
62
|
not approved (BRIEF_CHANGED_SINCE_APPROVAL) until a human answers again and this
|
|
60
63
|
runs again. Run it only from the human\*(Aqs answer, with their words as \-\-note.
|
|
61
64
|
.SH VERSION
|
|
62
|
-
v0.
|
|
65
|
+
v0.31.0
|
package/man/canon-brief-check.1
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-brief-check 1 "check 0.
|
|
3
|
+
.TH canon-brief-check 1 "check 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-brief\-check \- Read the brief against the rules: blocker and advisory findings (exit 0 clean, 1 blockers, 2 refused)
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -41,4 +41,4 @@ Print version
|
|
|
41
41
|
[\fICHANGE_ID\fR]
|
|
42
42
|
The change to read (default: the repo\*(Aqs only live change)
|
|
43
43
|
.SH VERSION
|
|
44
|
-
v0.
|
|
44
|
+
v0.31.0
|
package/man/canon-brief-show.1
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-brief-show 1 "show 0.
|
|
3
|
+
.TH canon-brief-show 1 "show 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-brief\-show \- Show where the change stands and the next one to three steps; never edits
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -47,4 +47,4 @@ Examples:
|
|
|
47
47
|
|
|
48
48
|
The operand names the change; without it the repo\*(Aqs only live change is read.
|
|
49
49
|
.SH VERSION
|
|
50
|
-
v0.
|
|
50
|
+
v0.31.0
|
package/man/canon-brief.1
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-brief 1 "brief 0.
|
|
3
|
+
.TH canon-brief 1 "brief 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-brief \- Check a change\*(Aqs brief (PRD format) and see the next steps; never edits
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -48,16 +48,17 @@ Examples:
|
|
|
48
48
|
canon brief check add\-login \-\-json
|
|
49
49
|
|
|
50
50
|
The brief is the PRD `canon change new` writes: sections are found by their
|
|
51
|
-
|
|
51
|
+
English `##` heading (Intent, Desired outcome, …), never by a comment. Blockers
|
|
52
52
|
(structure) are a missing or out\-of\-order section, a duplicate flow id, step
|
|
53
53
|
detail that does not match the flow ids, leftover placeholders, and, once the
|
|
54
54
|
subject is building, a flow step with no scenario or no failure scenario.
|
|
55
55
|
Advisories (prose) apply to normative sections, Intent and Questions, in the
|
|
56
56
|
language each is written in (`language:` in canon.yaml overrides); only en and
|
|
57
57
|
ko have rule lists.
|
|
58
|
-
Waive one rule in one section with
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
58
|
+
Waive one rule in one section with an entry of the frontmatter `waive` list
|
|
59
|
+
(`rule`, `section`, `reason`, optional `match`). A brief in the 0.30 format
|
|
60
|
+
gets one blocker, `brief.old\-format`: `canon migrate` rewrites it. A brief
|
|
61
|
+
with fewer than two known headings (written before 0.19) checks as `brief.legacy`, an
|
|
62
|
+
advisory. Without \-\-change, the repo\*(Aqs only live change is checked.
|
|
62
63
|
.SH VERSION
|
|
63
|
-
v0.
|
|
64
|
+
v0.31.0
|
package/man/canon-change-new.1
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-change-new 1 "new 0.
|
|
3
|
+
.TH canon-change-new 1 "new 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-change\-new \- Write .canon/changes/<slug>/brief.md, import it, and adopt it into a subject
|
|
6
6
|
.SH SYNOPSIS
|
|
7
|
-
\fBcanon change new\fR [\fB\-\-as\fR] <\fB\-\-subject
|
|
7
|
+
\fBcanon change new\fR [\fB\-\-as\fR] <\fB\-\-subject\fR> [\fB\-\-change\-kind\fR] <\fB\-\-title\fR> [\fB\-\-repo\fR] [\fB\-\-json\fR] [\fB\-\-input\fR] [\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR] <\fICHANGE_ID\fR>
|
|
8
8
|
.SH DESCRIPTION
|
|
9
9
|
Write .canon/changes/<slug>/brief.md, import it, and adopt it into a subject
|
|
10
10
|
.SH OPTIONS
|
|
@@ -26,7 +26,7 @@ reviewer
|
|
|
26
26
|
orchestrator
|
|
27
27
|
.RE
|
|
28
28
|
.TP
|
|
29
|
-
\fB\-\-subject
|
|
29
|
+
\fB\-\-subject\fR \fI<SUBJECT_ID>\fR
|
|
30
30
|
The existing subject to adopt the change under
|
|
31
31
|
.TP
|
|
32
32
|
\fB\-\-change\-kind\fR \fI<CHANGE_KIND>\fR [default: feature]
|
|
@@ -63,4 +63,4 @@ Print version
|
|
|
63
63
|
<\fICHANGE_ID\fR>
|
|
64
64
|
The change\*(Aqs slug (its change_id)
|
|
65
65
|
.SH VERSION
|
|
66
|
-
v0.
|
|
66
|
+
v0.31.0
|
package/man/canon-change.1
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-change 1 "change 0.
|
|
3
|
+
.TH canon-change 1 "change 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-change \- Write a plan change (.canon/changes/<slug>/brief.md) and adopt it into a subject
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -37,6 +37,6 @@ canon\-change\-new(1)
|
|
|
37
37
|
Write .canon/changes/<slug>/brief.md, import it, and adopt it into a subject
|
|
38
38
|
.SH EXTRA
|
|
39
39
|
Examples:
|
|
40
|
-
canon change new add\-login \-\-subject
|
|
40
|
+
canon change new add\-login \-\-subject auth \-\-title \*(AqAdd login\*(Aq
|
|
41
41
|
.SH VERSION
|
|
42
|
-
v0.
|
|
42
|
+
v0.31.0
|
package/man/canon-completion.1
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-completion 1 "completion 0.
|
|
3
|
+
.TH canon-completion 1 "completion 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-completion \- Write the shell completion script for canon (bash, zsh or fish)
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -57,4 +57,4 @@ Examples:
|
|
|
57
57
|
|
|
58
58
|
The script is generated from the command tree, so it completes exactly what the parser accepts. It needs no repo and no network.
|
|
59
59
|
.SH VERSION
|
|
60
|
-
v0.
|
|
60
|
+
v0.31.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-context-pack-add 1 "add 0.
|
|
3
|
+
.TH canon-context-pack-add 1 "add 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-context\-pack\-add \- Create an immutable context pack from a repository\-local JSON manifest
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -44,4 +44,4 @@ Print help
|
|
|
44
44
|
\fB\-V\fR, \fB\-\-version\fR
|
|
45
45
|
Print version
|
|
46
46
|
.SH VERSION
|
|
47
|
-
v0.
|
|
47
|
+
v0.31.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-context-pack-show 1 "show 0.
|
|
3
|
+
.TH canon-context-pack-show 1 "show 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-context\-pack\-show \- Show a context pack after verifying its manifest and content objects
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -41,4 +41,4 @@ Print version
|
|
|
41
41
|
<\fIPACK_ID\fR>
|
|
42
42
|
Context pack id (sha256:<64 hex digits>)
|
|
43
43
|
.SH VERSION
|
|
44
|
-
v0.
|
|
44
|
+
v0.31.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-context-pack-verify 1 "verify 0.
|
|
3
|
+
.TH canon-context-pack-verify 1 "verify 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-context\-pack\-verify \- Verify a context pack\*(Aqs manifest and immutable content objects
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -41,4 +41,4 @@ Print version
|
|
|
41
41
|
<\fIPACK_ID\fR>
|
|
42
42
|
Context pack id (sha256:<64 hex digits>)
|
|
43
43
|
.SH VERSION
|
|
44
|
-
v0.
|
|
44
|
+
v0.31.0
|
package/man/canon-context-pack.1
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-context-pack 1 "context-pack 0.
|
|
3
|
+
.TH canon-context-pack 1 "context-pack 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-context\-pack \- Create, inspect, and verify reproducible context packs
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -47,4 +47,4 @@ Examples:
|
|
|
47
47
|
canon context\-pack show sha256:<pack\-digest> \-\-repo . \-\-json
|
|
48
48
|
canon context\-pack verify sha256:<pack\-digest>
|
|
49
49
|
.SH VERSION
|
|
50
|
-
v0.
|
|
50
|
+
v0.31.0
|
package/man/canon-context.1
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-context 1 "context 0.
|
|
3
|
+
.TH canon-context 1 "context 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-context \- Show what you can author here: record kinds, fields, enums, policies
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -41,4 +41,4 @@ Print help
|
|
|
41
41
|
\fB\-V\fR, \fB\-\-version\fR
|
|
42
42
|
Print version
|
|
43
43
|
.SH VERSION
|
|
44
|
-
v0.
|
|
44
|
+
v0.31.0
|
package/man/canon-dashboard.1
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-dashboard 1 "dashboard 0.
|
|
3
|
+
.TH canon-dashboard 1 "dashboard 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-dashboard \- Serve the local status dashboard
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -47,4 +47,4 @@ Print help
|
|
|
47
47
|
\fB\-V\fR, \fB\-\-version\fR
|
|
48
48
|
Print version
|
|
49
49
|
.SH VERSION
|
|
50
|
-
v0.
|
|
50
|
+
v0.31.0
|
package/man/canon-demo-init.1
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-demo-init 1 "init 0.
|
|
3
|
+
.TH canon-demo-init 1 "init 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-demo\-init \- Scaffold the demo repo (gate starts RED)
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -41,4 +41,4 @@ Print help
|
|
|
41
41
|
\fB\-V\fR, \fB\-\-version\fR
|
|
42
42
|
Print version
|
|
43
43
|
.SH VERSION
|
|
44
|
-
v0.
|
|
44
|
+
v0.31.0
|
package/man/canon-demo-review.1
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-demo-review 1 "review 0.
|
|
3
|
+
.TH canon-demo-review 1 "review 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-demo\-review \- Record the missing reviewer evidence (gate turns GREEN)
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -41,4 +41,4 @@ Print help
|
|
|
41
41
|
\fB\-V\fR, \fB\-\-version\fR
|
|
42
42
|
Print version
|
|
43
43
|
.SH VERSION
|
|
44
|
-
v0.
|
|
44
|
+
v0.31.0
|
package/man/canon-demo.1
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-demo 1 "demo 0.
|
|
3
|
+
.TH canon-demo 1 "demo 0.31.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-demo \- Try the evidence loop end\-to\-end in a throwaway demo repo
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -44,4 +44,4 @@ Examples:
|
|
|
44
44
|
canon gate check # RED
|
|
45
45
|
canon demo review && canon gate check # GREEN
|
|
46
46
|
.SH VERSION
|
|
47
|
-
v0.
|
|
47
|
+
v0.31.0
|