@journeykit/canon 0.36.0 → 0.37.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 +13 -2
- package/dist/skills/reference/canon-gate.md +11 -0
- package/dist/skills/reference/canon-learn.md +7 -2
- package/dist/skills/reference/canon-review.md +5 -3
- package/dist/skills/reference/canon-storage.md +2 -2
- package/dist/skills/reference/canon-subject.md +5 -4
- package/dist/skills/reference/role-implementer.md +3 -1
- package/dist/skills/reference/role-reviewer.md +1 -1
- 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 +6 -4
- 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 +3 -3
- package/man/canon-divergence-add.1 +3 -3
- package/man/canon-divergence-defer.1 +3 -3
- package/man/canon-divergence-list.1 +3 -3
- package/man/canon-divergence-resolve.1 +2 -2
- package/man/canon-divergence.1 +2 -2
- package/man/canon-evidence-add.1 +6 -6
- package/man/canon-evidence-approval-payload.1 +3 -3
- package/man/canon-evidence-audit.1 +5 -5
- package/man/canon-evidence.1 +2 -2
- package/man/canon-export.1 +4 -4
- package/man/canon-feature-new.1 +2 -2
- package/man/canon-feature.1 +2 -2
- package/man/canon-finding-add.1 +4 -4
- package/man/canon-finding-close.1 +4 -6
- 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 +5 -4
- 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 +3 -3
- package/man/canon-query.1 +3 -3
- 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 +3 -3
- package/man/canon-review-scenario.1 +3 -3
- 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 +3 -3
- package/man/canon-skills-doctor.1 +3 -3
- package/man/canon-skills-install.1 +3 -3
- package/man/canon-skills-show.1 +2 -2
- package/man/canon-skills.1 +2 -2
- package/man/canon-status.1 +2 -2
- package/man/canon-strategy-approval-payload.1 +3 -3
- package/man/canon-strategy-promote.1 +2 -2
- package/man/canon-strategy-rollback.1 +3 -3
- 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
package/dist/skills/SKILL.src.md
CHANGED
|
@@ -127,7 +127,11 @@ tree, or in a repo with no commits, a command that needs a commit refuses
|
|
|
127
127
|
After a chore approval or a reopen, a scenario whose latest evidence was
|
|
128
128
|
recorded on the current `codeTree` needs nothing new: a docs-only chore then
|
|
129
129
|
needs its change-level review alone. What counts as code is `code.exclude` in
|
|
130
|
-
`canon.yaml` (globs, default `docs/**` and `*.md`).
|
|
130
|
+
`canon.yaml` (globs, default `docs/**` and `*.md`). A chore approved over the
|
|
131
|
+
code as it still is (the `(code tree <id>)` of its `Approved:` line is the
|
|
132
|
+
current tree) asks for no evidence at all, whatever tree the evidence is on, and
|
|
133
|
+
`status` says so; an approval with no recorded tree follows the rule above.
|
|
134
|
+
When code did change,
|
|
131
135
|
`canon status`, `meta.next` and the refusal hint lead with one batch over
|
|
132
136
|
every report, for example
|
|
133
137
|
`canon evidence add --all-scenarios --report junit:a.xml --report junit:b.xml --role implementer`
|
|
@@ -227,11 +231,18 @@ A role is guidance, not enforcement: `--role` on `evidence add` and
|
|
|
227
231
|
gives the JSON Schema of each report in `schemas`, `Input` (the schema of one `--input`
|
|
228
232
|
document) and `rejects` (what each validator refuses, in order); `#/schemas/<Name>` in
|
|
229
233
|
the command document resolves there. The first line of every `--help` points at it.
|
|
234
|
+
- An option of the same name takes the same value in every command that has it, and `canon schema` declares it once. An id
|
|
235
|
+
(`--project`, `--role`, `--domain`) is a kebab slug: lowercase letters and digits, single hyphens between them. A name
|
|
236
|
+
(`--actor`, `--approver`, `--relayed-via`) and a sentence (`--reason`, `--summary`, `--override-reason`) are one line of text:
|
|
237
|
+
the white space around it is trimmed (what is recorded, and what a signature is made of, is the trimmed text), and a value
|
|
238
|
+
that is empty once trimmed, or has a control character (a tab, an escape) or a line break inside it, is refused with the
|
|
239
|
+
command's own argument code. `--round` and `--limit` start at 1, and `--regime` is the four-part key `retrieve` and
|
|
240
|
+
`dispatch begin` both take. `finding close` takes `fixed`, `rejected` or `deferred`, never `open`.
|
|
230
241
|
- Pass `--json` and read stdout as one document, nothing on stderr. Success is
|
|
231
242
|
`{"ok":true,"data":…,"meta":…}`; failure is
|
|
232
243
|
`{"ok":false,"error":{…},"meta":…}` (a check that fails keeps its report in
|
|
233
244
|
`data`). `meta` carries `tool`, `toolVersion`, `contract` (`atip/1`),
|
|
234
|
-
`contractVersion` (`1.
|
|
245
|
+
`contractVersion` (`1.5`), `schemaVersion`,
|
|
235
246
|
`command`, and when present `next`, `warnings` (`[{code, message}]`) and
|
|
236
247
|
`page`; a repeated write that changed nothing reports `data.unchanged: true`.
|
|
237
248
|
Absent members are omitted, never `null` or `[]` (a value you sent empty comes back as `received: ""`).
|
|
@@ -255,6 +255,17 @@ review of the chore itself (`canon review change <slug>`) before
|
|
|
255
255
|
`--to shipped`; a changed verdict or case set stales that scenario's
|
|
256
256
|
review as before (and a new `divergence accept`, where the gap remains).
|
|
257
257
|
|
|
258
|
+
A chore's approval records the code tree of the work tree at that moment, as
|
|
259
|
+
`(code tree <id>)` in its `Approved:` line (outside the brief digest; none
|
|
260
|
+
outside git or with no commit). While that tree is the current code tree the
|
|
261
|
+
chore changed no code since it was approved, so it asks for no evidence at
|
|
262
|
+
all, whatever tree each scenario's latest evidence is on, and `status` says so
|
|
263
|
+
on its line; its change-level review is still asked, and it must be a review of
|
|
264
|
+
this code (the review records the code tree it saw): a brief edited after the
|
|
265
|
+
approval needs a new review, and so does a review of other code, as when the
|
|
266
|
+
same brief is approved again over code that came after the review. An approval
|
|
267
|
+
with no recorded tree (written before 0.37) follows the rule above.
|
|
268
|
+
|
|
258
269
|
### Audit records (`canon evidence audit`)
|
|
259
270
|
|
|
260
271
|
canon never generates or runs an audit. An external evaluator does, and
|
|
@@ -52,7 +52,11 @@ The production activation path is a signed, paired-evaluation workflow:
|
|
|
52
52
|
`meta.next` names the human signing step. The `data` contains the evaluation digest, RFC3339 `approved_at`,
|
|
53
53
|
subject `strategy:<strategy_id>`, namespace
|
|
54
54
|
`canon-learning-approval-v1`, and `payload_hex`. `approval-payload` never
|
|
55
|
-
reads a private key and never sets `verified`.
|
|
55
|
+
reads a private key and never sets `verified`. `--approval-at` is an RFC 3339
|
|
56
|
+
date-time (`2026-10-02T12:00:00Z`; a date alone, white space around it and a
|
|
57
|
+
one-digit month are refused): canon never stamps it, so fix it once and give
|
|
58
|
+
the same value to the signature and to the record. The bytes hold the instant
|
|
59
|
+
as UTC to the nanosecond, so one instant written `Z` or `+09:00` is one payload.
|
|
56
60
|
6. Decode `payload_hex` to the exact canonical JSON bytes. The signed object
|
|
57
61
|
is:
|
|
58
62
|
|
|
@@ -190,7 +194,8 @@ canon strategy rollback <strategy_id> --reason "<reason>" --actor alice \
|
|
|
190
194
|
|
|
191
195
|
`--signature-file` is an armored SSH detached signature over the
|
|
192
196
|
`canon-learning-approval-v1` payload bound to
|
|
193
|
-
`strategy:<id>:rollback:<sha256(reason)>`, actor, and `--approval-at
|
|
197
|
+
`strategy:<id>:rollback:<sha256(reason)>`, actor, and `--approval-at` (the same
|
|
198
|
+
RFC 3339 date-time that was signed; another instant fails the signature).
|
|
194
199
|
`actor` MUST be listed in policy-pinned `approval.allowed_signers`; verification
|
|
195
200
|
uses that file and `ssh-keygen -Y verify`. Successful rollback writes durable
|
|
196
201
|
provenance, sets lifecycle `rolled_back`, and records the optional contradicting
|
|
@@ -155,7 +155,7 @@ text in the summary, not a field.
|
|
|
155
155
|
|
|
156
156
|
| Disposition | Meaning |
|
|
157
157
|
|---|---|
|
|
158
|
-
| `open` | Raised and not yet dealt with. The default on `finding add`; `finding close
|
|
158
|
+
| `open` | Raised and not yet dealt with. The default on `finding add`; `finding close` refuses it (a defect that came back is a new finding). |
|
|
159
159
|
| `fixed` | Fixed by a commit. Carries `--resolution-rev <rev>` (default `HEAD`) naming a commit this repo holds; only `fixed` may carry one. |
|
|
160
160
|
| `rejected` | The reviewer's point was considered and declined. Needs `--reason`. |
|
|
161
161
|
| `deferred` | Accepted, but postponed to later work. Needs `--reason`. |
|
|
@@ -164,8 +164,10 @@ text in the summary, not a field.
|
|
|
164
164
|
|
|
165
165
|
Every reader takes the **latest version per natural key**
|
|
166
166
|
`(change_id, round, seq)` — the same fold the report's finding panel
|
|
167
|
-
uses. A blocker raised `open` and later closed `fixed` counts as fixed
|
|
168
|
-
|
|
167
|
+
uses. A blocker raised `open` and later closed `fixed` counts as fixed.
|
|
168
|
+
A finding is not reopened: `finding close` takes `fixed`, `rejected` or
|
|
169
|
+
`deferred` and refuses `--disposition open`; a defect that came back is a new
|
|
170
|
+
`finding add` (the next `--seq`).
|
|
169
171
|
|
|
170
172
|
## `canon review scenario`
|
|
171
173
|
|
|
@@ -192,7 +192,7 @@ section listing them and emits a matching stderr `WARN`.
|
|
|
192
192
|
|
|
193
193
|
## Retention, export, and access audit
|
|
194
194
|
|
|
195
|
-
`canon purge --kind <kind> --before <RFC3339> [--commit --plan-digest <planDigest>] [--repo <dir>] [--json]`
|
|
195
|
+
`canon purge --kind <kind> --before <RFC3339 date or date-time> [--commit --plan-digest <planDigest>] [--repo <dir>] [--json]`
|
|
196
196
|
is the canonical data-lifecycle boundary: the bare run previews: it prints the removal set and
|
|
197
197
|
its `planDigest` and deletes nothing; `--commit --plan-digest <planDigest>` deletes only if
|
|
198
198
|
the plan recomputed now has the same digest (`PLAN_STALE`, exit 2, when the
|
|
@@ -220,7 +220,7 @@ human's review and `--commit --plan-digest`), and an export's page state (`total
|
|
|
220
220
|
file and answers with `data: { output, kind, recordCount }`; `--dry-run`
|
|
221
221
|
answers with what it would write and writes nothing.
|
|
222
222
|
|
|
223
|
-
`canon export --kind <kind> [--before <RFC3339>] [--after <RFC3339>]
|
|
223
|
+
`canon export --kind <kind> [--before <RFC3339 date or date-time>] [--after <RFC3339 date or date-time>]
|
|
224
224
|
[--output <file>] [--json] [--limit <n> | --all] [--cursor <c>]` emits a versioned manifest containing source scope,
|
|
225
225
|
counts, digests, and redacted metadata. It does not authorize backend access;
|
|
226
226
|
credentials remain an operator prerequisite. New output files are mode
|
|
@@ -547,8 +547,9 @@ warn, and a command that writes and judges it is refused
|
|
|
547
547
|
`reason`), one rule in one section, reason required; add `match` to waive
|
|
548
548
|
only the findings whose matched text contains it. Listed in the output.
|
|
549
549
|
- **`approve`** records the human's answer: it writes
|
|
550
|
-
`Approved: <who> <when> — "<words>" (brief sha256:<digest>)`
|
|
551
|
-
|
|
550
|
+
`Approved: <who> <when> — "<words>" (code tree <id>) (brief sha256:<digest>)`
|
|
551
|
+
into the brief (the code tree, 0.37, is the work tree's as it is now and is
|
|
552
|
+
left out outside git or with no commit) and records the policy approval in the same call. It refuses
|
|
552
553
|
(exit 2) while the check has structure blockers. Edit the brief
|
|
553
554
|
afterwards and every reader says `BRIEF_APPROVAL_STALE` until a
|
|
554
555
|
human answers again and `approve` runs again. Run it only from the
|
|
@@ -617,8 +618,8 @@ uses, so status and the gate cannot disagree about a gap:
|
|
|
617
618
|
something after it, and sits outside HTML comments (`<!-- … -->`,
|
|
618
619
|
multi-line included) and fenced code blocks (```` ``` ```` or `~~~`).
|
|
619
620
|
`canon brief approve` writes it from the human's answer, as
|
|
620
|
-
`Approved: <who> <when> — "<the human's words>" (brief sha256:<digest>)`,
|
|
621
|
-
the digest covering the brief without its `Approved:` lines. A brief
|
|
621
|
+
`Approved: <who> <when> — "<the human's words>" (code tree <id>) (brief sha256:<digest>)`,
|
|
622
|
+
the digest covering the brief without its `Approved:` lines (the tree marker is outside it; a line without one is read as before). A brief
|
|
622
623
|
edited after that reads `brief: not approved (<brief> changed after its
|
|
623
624
|
approval (BRIEF_APPROVAL_STALE))` and names the re-approval
|
|
624
625
|
command: the changed brief needs a new human answer. A line with no
|
|
@@ -342,7 +342,9 @@ canon evidence add --input '[{"scenario":"auth.login.01","class":"test-run","ref
|
|
|
342
342
|
latest evidence was recorded on a different `codeTree` than the current
|
|
343
343
|
code (`code.exclude` in `canon.yaml` decides what is not code; the default
|
|
344
344
|
is `docs/**` and `*.md`). A docs-only chore needs its change-level review
|
|
345
|
-
alone
|
|
345
|
+
alone, and so does a chore whose approval recorded the code tree that is
|
|
346
|
+
still the current one (`(code tree <id>)` in its `Approved:` line; `status`
|
|
347
|
+
says so): it asks for no evidence at all. When code did change, the shipping refusal, `status` and
|
|
346
348
|
`meta.next` lead with one command over every report, with the real paths
|
|
347
349
|
(`--project <id>` is added only with several spec roots):
|
|
348
350
|
`canon evidence add --all-scenarios --report junit:a.xml --report junit:b.xml --role implementer`.
|
|
@@ -87,7 +87,7 @@ canon finding add --change add-login --round 1 --seq 2 --severity should-fix --i
|
|
|
87
87
|
```
|
|
88
88
|
```text
|
|
89
89
|
# Move an already-committed finding's disposition
|
|
90
|
-
usage: canon finding close <CHANGE_ID> --round <N> --seq <N> --disposition <
|
|
90
|
+
usage: canon finding close <CHANGE_ID> --round <N> --seq <N> --disposition <fixed|rejected|deferred> [--resolution-rev <REV>] [--reason <TEXT>] [--actor <ACTOR_ID>] [--role <ROLE>] [--session <SESSION_ID>] [--promote | --no-promote] [--input]
|
|
91
91
|
```
|
|
92
92
|
```bash
|
|
93
93
|
canon finding close add-login --round 1 --seq 1 --disposition rejected --reason "works as designed" --json
|
|
@@ -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.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.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
|
|
@@ -66,10 +66,12 @@ Examples:
|
|
|
66
66
|
Several ids take one name, one answer and one timestamp. Every id is checked
|
|
67
67
|
first; one refused id refuses the call (the first refused id\*(Aqs code, with a
|
|
68
68
|
detail for each) and nothing is
|
|
69
|
-
written. Writes `Approved: <who> <when> — "<words>" (brief sha256:<digest>)` into the
|
|
70
|
-
brief (the digest covers the brief without its `Approved:` lines
|
|
69
|
+
written. Writes `Approved: <who> <when> — "<words>" (code tree <id>) (brief sha256:<digest>)` into the
|
|
70
|
+
brief (the digest covers the brief without its `Approved:` lines; the code tree is the work
|
|
71
|
+
tree\*(Aqs as it is now, uncommitted code included, and is left out outside git or with no commit: a
|
|
72
|
+
chore whose approval saw the code tree that is still the current one asks for no evidence) and records
|
|
71
73
|
`canon policy approve` in the same call. Edit the brief afterwards and it reads as
|
|
72
74
|
not approved (BRIEF_APPROVAL_STALE) until a human answers again and this
|
|
73
75
|
runs again. Run it only from the human\*(Aqs answer, with their words as \-\-note.
|
|
74
76
|
.SH VERSION
|
|
75
|
-
v0.
|
|
77
|
+
v0.37.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.37.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.37.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.37.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
|
|
@@ -50,4 +50,4 @@ Examples:
|
|
|
50
50
|
|
|
51
51
|
The operand names the change; without it the repo\*(Aqs only live change is read.
|
|
52
52
|
.SH VERSION
|
|
53
|
-
v0.
|
|
53
|
+
v0.37.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.37.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
|
|
@@ -61,4 +61,4 @@ gets one blocker, `brief.old\-format`: `canon migrate` rewrites it. A brief
|
|
|
61
61
|
with fewer than two known headings (written before 0.19) checks as `brief.legacy`, an
|
|
62
62
|
advisory. Without \-\-change, the repo\*(Aqs only live change is checked.
|
|
63
63
|
.SH VERSION
|
|
64
|
-
v0.
|
|
64
|
+
v0.37.0
|
package/man/canon-change-new.1
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
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.37.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
|
|
@@ -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.37.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.37.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
|
|
@@ -39,4 +39,4 @@ Write .canon/changes/<slug>/brief.md, import it, and adopt it into a subject
|
|
|
39
39
|
Examples:
|
|
40
40
|
canon change new add\-login \-\-subject auth \-\-title \*(AqAdd login\*(Aq
|
|
41
41
|
.SH VERSION
|
|
42
|
-
v0.
|
|
42
|
+
v0.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.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.37.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-dispatch-begin 1 "begin 0.
|
|
3
|
+
.TH canon-dispatch-begin 1 "begin 0.37.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-dispatch\-begin \- Mint a Run manifest with retrieved guidance and context/policy lineage
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -77,4 +77,4 @@ Print help
|
|
|
77
77
|
\fB\-V\fR, \fB\-\-version\fR
|
|
78
78
|
Print version
|
|
79
79
|
.SH VERSION
|
|
80
|
-
v0.
|
|
80
|
+
v0.37.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-dispatch-diff 1 "diff 0.
|
|
3
|
+
.TH canon-dispatch-diff 1 "diff 0.37.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-dispatch\-diff \- Diff the declared plan DAG against the observed execution graph
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -38,4 +38,4 @@ Print help
|
|
|
38
38
|
\fB\-V\fR, \fB\-\-version\fR
|
|
39
39
|
Print version
|
|
40
40
|
.SH VERSION
|
|
41
|
-
v0.
|
|
41
|
+
v0.37.0
|
package/man/canon-dispatch-end.1
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-dispatch-end 1 "end 0.
|
|
3
|
+
.TH canon-dispatch-end 1 "end 0.37.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-dispatch\-end \- Close a dispatched run with a terminal status and an ended_at
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -57,4 +57,4 @@ Print version
|
|
|
57
57
|
<\fIRUN_ID\fR>
|
|
58
58
|
The RunId (ULID) minted by `canon dispatch begin`
|
|
59
59
|
.SH VERSION
|
|
60
|
-
v0.
|
|
60
|
+
v0.37.0
|
package/man/canon-dispatch.1
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-dispatch 1 "dispatch 0.
|
|
3
|
+
.TH canon-dispatch 1 "dispatch 0.37.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-dispatch \- Begin an agent run with retrieved guidance recorded
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -42,4 +42,4 @@ Close a dispatched run with a terminal status and an ended_at
|
|
|
42
42
|
canon\-dispatch\-diff(1)
|
|
43
43
|
Diff the declared plan DAG against the observed execution graph
|
|
44
44
|
.SH VERSION
|
|
45
|
-
v0.
|
|
45
|
+
v0.37.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-divergence-accept 1 "accept 0.
|
|
3
|
+
.TH canon-divergence-accept 1 "accept 0.37.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-divergence\-accept \- Accept a divergent scenario as a tracked known gap (a reviewer step): its latest evidence must be divergent and not the accepting actor\*(Aqs or session\*(Aqs. The acceptance pins that evidence, so new evidence ends it, and lapses at \-\-expiry; until then the ship guard counts the cell as covered while `status` and `gate check` list it as `accepted\-divergence`
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -36,7 +36,7 @@ Why the gap is accepted
|
|
|
36
36
|
Where the gap is tracked: an issue URL or reference
|
|
37
37
|
.TP
|
|
38
38
|
\fB\-\-expiry\fR \fI<TIMESTAMP>\fR
|
|
39
|
-
|
|
39
|
+
When the acceptance stops holding: an RFC 3339 date (`2030\-01\-01`, UTC midnight) or date\-time (`2030\-01\-01T10:00:00Z`); none means it holds until new evidence
|
|
40
40
|
.TP
|
|
41
41
|
\fB\-\-actor\fR \fI<ACTOR_ID>\fR
|
|
42
42
|
The reviewer recording this (recorded as the divergence\*(Aqs reviewer and actor)
|
|
@@ -74,4 +74,4 @@ Print version
|
|
|
74
74
|
<\fISCENARIO_ID\fR>
|
|
75
75
|
The accepted scenarios (`<area>.<surface>.<nn>`), one acceptance each, all or nothing
|
|
76
76
|
.SH VERSION
|
|
77
|
-
v0.
|
|
77
|
+
v0.37.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-divergence-add 1 "add 0.
|
|
3
|
+
.TH canon-divergence-add 1 "add 0.37.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-divergence\-add \- Add a divergence candidate, staged with no run_seq yet (commit it with `canon gate promote \-\-kind divergence`, or in the same run with \-\-promote / `write: { promote: auto }`)
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -53,7 +53,7 @@ deferred
|
|
|
53
53
|
Why the divergence is recorded; required with `\-\-state deferred`
|
|
54
54
|
.TP
|
|
55
55
|
\fB\-\-expiry\fR \fI<TIMESTAMP>\fR
|
|
56
|
-
When a deferral lapses
|
|
56
|
+
When a deferral lapses: an RFC 3339 date (`2030\-01\-01`, UTC midnight) or date\-time (`2030\-01\-01T10:00:00Z`); required with `\-\-state deferred`
|
|
57
57
|
.TP
|
|
58
58
|
\fB\-\-round\fR \fI<N>\fR [default: 1]
|
|
59
59
|
The review round this version belongs to (1\-based)
|
|
@@ -94,4 +94,4 @@ Print version
|
|
|
94
94
|
<\fISCENARIO_ID\fR>
|
|
95
95
|
The scenario (`<area>.<surface>.<nn>`)
|
|
96
96
|
.SH VERSION
|
|
97
|
-
v0.
|
|
97
|
+
v0.37.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-divergence-defer 1 "defer 0.
|
|
3
|
+
.TH canon-divergence-defer 1 "defer 0.37.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-divergence\-defer \- Directly record a deferred divergence (requires \-\-reason/\-\-expiry)
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -45,7 +45,7 @@ The acting session (recorded as actor.session_id); optional
|
|
|
45
45
|
Why the divergence is deferred
|
|
46
46
|
.TP
|
|
47
47
|
\fB\-\-expiry\fR \fI<TIMESTAMP>\fR
|
|
48
|
-
When the deferral lapses
|
|
48
|
+
When the deferral lapses: an RFC 3339 date (`2030\-01\-01`, UTC midnight) or date\-time (`2030\-01\-01T10:00:00Z`)
|
|
49
49
|
.TP
|
|
50
50
|
\fB\-\-role\fR \fI<ROLE>\fR
|
|
51
51
|
The role this record is attributed to (default: the role declared with \-\-as / CANON_ROLE)
|
|
@@ -68,4 +68,4 @@ Print version
|
|
|
68
68
|
<\fISCENARIO_ID\fR>
|
|
69
69
|
The scenario (`<area>.<surface>.<nn>`)
|
|
70
70
|
.SH VERSION
|
|
71
|
-
v0.
|
|
71
|
+
v0.37.0
|