@journeykit/canon 0.38.0 → 0.39.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 +8 -3
- package/dist/skills/reference/canon-artifact-ingest.md +0 -2
- package/dist/skills/reference/canon-gate.md +27 -2
- package/dist/skills/reference/canon-report-dashboard.md +27 -36
- package/dist/skills/reference/canon-storage.md +25 -1
- package/dist/skills/reference/role-implementer.md +2 -2
- package/dist/skills/reference/role-orchestrator.md +10 -15
- package/dist/skills/reference/role-planner.md +2 -2
- package/dist/skills/reference/role-reviewer.md +2 -2
- 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-prune.1 +4 -2
- package/man/canon-artifacts-store.1 +2 -2
- package/man/canon-artifacts-verify.1 +4 -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 +3 -3
- 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 -6
- 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.1 +4 -8
- 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 +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 +8 -8
- package/man/canon-query.1 +2 -6
- 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 -6
- package/man/canon-selftest.1 +2 -4
- 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 -4
- 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 +4 -4
- package/package.json +4 -4
- package/dist/skills/reference/canon-session-ingest.md +0 -224
- package/man/canon-ingest-sessions.1 +0 -62
package/dist/skills/SKILL.src.md
CHANGED
|
@@ -168,7 +168,13 @@ binds it, and, with `--keep-days N`, while any evidence or review of the last
|
|
|
168
168
|
`N` days binds it; the bare run previews the blobs it deletes and why the rest
|
|
169
169
|
stay, and `--commit --plan-digest` deletes. A deleted local blob stays in git
|
|
170
170
|
history (shrinking that history is the repo owner's call, not the command's); a
|
|
171
|
-
deleted object of an object-store tier is gone for good.
|
|
171
|
+
deleted object of an object-store tier is gone for good. The preview and the
|
|
172
|
+
commit also cover the stale temp files a killed blob write leaves in
|
|
173
|
+
`.canon/artifacts/sha256` (`.tmp-<sha256>-<pid>-<nanos>`, a regular file
|
|
174
|
+
modified over five minutes ago): the plan lists them in `data.staleTemps`, and
|
|
175
|
+
`artifacts verify` only counts them (it deletes nothing and its exit does not
|
|
176
|
+
change). A temp file is no finished blob, so deleting it changes no record; one
|
|
177
|
+
that git already tracks must be taken out of the commit.
|
|
172
178
|
|
|
173
179
|
### Search and trace
|
|
174
180
|
|
|
@@ -338,7 +344,7 @@ preview helps elsewhere (`init`, `skills install`, `export`, `inventory sync`,
|
|
|
338
344
|
`subject adopt`, …) `--dry-run` validates fully and writes nothing.
|
|
339
345
|
|
|
340
346
|
```bash
|
|
341
|
-
canon purge --kind
|
|
347
|
+
canon purge --kind run --before 2026-01-01
|
|
342
348
|
```
|
|
343
349
|
|
|
344
350
|
## Upgrading a repo from 0.27
|
|
@@ -441,7 +447,6 @@ current step needs.
|
|
|
441
447
|
| `canon-gate` | Evidence, gates, task checkboxes, hooks. |
|
|
442
448
|
| `canon-review` | Findings and reviews. |
|
|
443
449
|
| `canon-artifact-ingest` | `canon ingest records`: artifacts into verdict trajectories. |
|
|
444
|
-
| `canon-session-ingest` | `canon ingest sessions`: agent transcripts into session records. |
|
|
445
450
|
| `canon-plan-import` | `canon ingest plans`: plan state into change and task records. |
|
|
446
451
|
| `canon-storage` | Storage rungs, tiers, retention, export, purge. |
|
|
447
452
|
| `canon-policy` | The policy and the CEL expressions behind it. |
|
|
@@ -71,8 +71,6 @@ promotion/demotion.
|
|
|
71
71
|
|
|
72
72
|
## What this skill does NOT cover
|
|
73
73
|
|
|
74
|
-
- Session/cost ingestion (`canon ingest sessions`) — a different
|
|
75
|
-
pipeline; see the `canon-session-ingest` skill.
|
|
76
74
|
- Strategy promotion/demotion mechanics — see the `canon-learn` skill;
|
|
77
75
|
this skill only produces the verdict evidence promotion reads.
|
|
78
76
|
- The `regime_key` grammar itself — see `canon-retrieve`, which derives
|
|
@@ -24,7 +24,7 @@ Every violation carries one of these stable, grep-able strings:
|
|
|
24
24
|
| `uncovered-cell` | Either a policy-required evidence cell (role × artifact) with no matching record, or — with `spec_coverage` enabled — a spec scenario that is unimplemented or mismatched, or a feature surface missing a `require_cases` case. The detail string distinguishes them. Coverage means "a test exists", not "a test passed": even a `Divergent` verdict satisfies the role-cell form. At `verifying → shipped`, a `Divergent` latest verdict is `uncovered-cell` unless a reviewer accepted it (see Accepted divergence below), and a chore's approval, like a blocker closed `fixed`, needs every evidenced scenario evidenced again afterwards (see Re-verification below). |
|
|
25
25
|
| `unreviewed-promotion` | An artifact tagged `reviewed` has no matching ledger review record — or, with `spec_coverage.require_review` set, an in-scope scenario has no qualifying `Review`: none at all, only self-reviews, only stale reviews (the spec or evidence it pinned changed since), or only `indeterminate`/`unavailable` ones. Also, subject `policy`: the policy changed since its approval or its approval is unreadable (fails closed; see `canon-policy`). See `canon-review`. |
|
|
26
26
|
| `trust-below-required` | Achieved trust level is below `policy.yaml`'s `trust_required` for its class — RELEASE-scoped only (`canon gate check --release`); never fires on an ordinary run. |
|
|
27
|
-
| `stale-evidence` | A passing record degraded to stale:
|
|
27
|
+
| `stale-evidence` | A passing record degraded to stale: a path that changed since its `evidence_sha` matches its declared surface (`--surface-ref`, a path pattern read from the repository root; the detail names the declarations and paths that matched), or HEAD moved past `staleness.max_commits_behind`. Only degrades an already-green record. Also: a file bound to a latest evidence record whose bytes are gone — no intact blob in `.canon/artifacts/sha256/` and no working-tree copy with the recorded digest — or a file bound to an in-effect review with no intact blob (see Bound evidence stays provable below). |
|
|
28
28
|
| `malformed-evidence` | A candidate record doesn't parse, is misfiled, or carries an unparseable interim tag. Malformed evidence is no evidence. |
|
|
29
29
|
| `flagged` | The human-only `flagged` overlay is set — never green regardless of passing evidence. |
|
|
30
30
|
| `unevidenced-flip` | `canon task done <task_id>` was asked to flip a checkbox with no matching, non-`Divergent` evidence record. |
|
|
@@ -628,7 +628,8 @@ downloads and re-hashes) and refuse, never pass, when it cannot be reached.
|
|
|
628
628
|
store; it is the repo owner's decision. `canon artifacts prune` (a preview;
|
|
629
629
|
`--commit --plan-digest` acts) deletes the blobs no record binds any more and
|
|
630
630
|
leaves what `gate check` and `artifacts verify` read, so their answers do not
|
|
631
|
-
change
|
|
631
|
+
change (it also deletes the stale `.tmp-` files a killed blob write left, which
|
|
632
|
+
`artifacts verify` counts without deleting); it is the repo owner's decision too. See `canon-storage`.
|
|
632
633
|
|
|
633
634
|
`canon gate check` re-checks every file bound to a LATEST evidence record
|
|
634
635
|
(the latest per task and per `(project_id, scenario_id)`):
|
|
@@ -698,6 +699,30 @@ binding. This is still attestation input, not proof of the changed paths;
|
|
|
698
699
|
run/diff metadata is authoritative when available, and an unavailable
|
|
699
700
|
binding is a gate violation rather than a clean result.
|
|
700
701
|
|
|
702
|
+
A `--surface-ref` that is not `effect:...` is a path pattern read from the
|
|
703
|
+
repository root with the glob of `code.exclude`: `*` and `?` do not cross
|
|
704
|
+
`/`, `**` does, a directory matches everything below it, and a trailing `/`
|
|
705
|
+
is dropped. `src/`, `src`, `src/**` and `src/*.rs` all go `stale-evidence`
|
|
706
|
+
when `src/a.rs` changes; for `src/x/b.rs` the first three do and `src/*.rs`
|
|
707
|
+
does not. A name with no `/` is the file at the root: `Cargo.toml` is
|
|
708
|
+
the root manifest, not every crate's. A value identical to a changed path
|
|
709
|
+
matches it, and `effect:` is never compared with paths. A value that
|
|
710
|
+
matches no file of the work tree is recorded all the same, with a
|
|
711
|
+
`SURFACE_REF_UNMATCHED` warning. The `paths` of a risk tier keep their
|
|
712
|
+
older reading (`*` crosses `/`) until the next release that breaks
|
|
713
|
+
compatibility.
|
|
714
|
+
|
|
715
|
+
When git cannot read the base commit of a passing cell, `canon gate check`
|
|
716
|
+
prints one `staleness_unresolvable` advisory and `canon status` one
|
|
717
|
+
`STALENESS_UNRESOLVABLE` warning, with the same sentence: how many
|
|
718
|
+
(subject, role) cells, how many for each reason (`base_missing`: the commit
|
|
719
|
+
is not in this repository, as in a shallow clone or after `git gc
|
|
720
|
+
--prune=now`; `base_not_ancestor`: it is not an ancestor of HEAD, as after
|
|
721
|
+
a squash merge; `git_unavailable`: git did not answer), the first three
|
|
722
|
+
subjects, and `git fetch --unshallow` in a shallow clone. Verdicts and the
|
|
723
|
+
exit status do not change: a `base_missing` or `git_unavailable` cell adds
|
|
724
|
+
nothing, a `base_not_ancestor` cell is judged from `<base>..HEAD`.
|
|
725
|
+
|
|
701
726
|
Approval identity is separate from attestation text. An approval counts
|
|
702
727
|
only when it carries a detached SSH signature (`ssh-keygen -Y sign -n
|
|
703
728
|
canon-approval-v1` over `canon evidence approval-payload`'s bytes) that
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# canon-report-dashboard
|
|
2
2
|
|
|
3
|
-
canon's single status surface: `canon report build` renders
|
|
4
|
-
markdown, `canon report snapshot` exports the same
|
|
3
|
+
canon's single status surface: `canon report build` renders NINE panels to
|
|
4
|
+
markdown, `canon report snapshot` exports the same nine marts to
|
|
5
5
|
Parquet, and `canon dashboard` serves a small zero-network web app that
|
|
6
|
-
renders
|
|
6
|
+
renders SIX of them from such a snapshot. Neither surface computes an
|
|
7
7
|
aggregate itself — both read canon's precomputed
|
|
8
8
|
`crates/canon-store/sql/views.sql` marts, and each run reads the corpus
|
|
9
9
|
ONCE (`crates/canon-report/src/query.rs`'s `PIN_CORPUS_SQL`), so no two
|
|
@@ -35,7 +35,7 @@ drift-checked.
|
|
|
35
35
|
|
|
36
36
|
## `canon report build [--repo <dir>]`
|
|
37
37
|
|
|
38
|
-
Renders the current
|
|
38
|
+
Renders the current nine-panel report to `<repo>/.canon/REPORT.md`.
|
|
39
39
|
`--repo` resolves through the nearest-`canon.yaml`-ancestor walk every
|
|
40
40
|
subcommand uses — omit it (or pass `.`) to run from any subdirectory.
|
|
41
41
|
|
|
@@ -82,7 +82,7 @@ and commit the result.
|
|
|
82
82
|
|
|
83
83
|
## `canon report snapshot <dir>`
|
|
84
84
|
|
|
85
|
-
Exports all
|
|
85
|
+
Exports all nine views to `<dir>/<table>.parquet` plus a
|
|
86
86
|
`<dir>/manifest.json`. One explicit `COPY` per view — the exported
|
|
87
87
|
columns are each view's own `SELECT` list, wider than the curated column
|
|
88
88
|
subset the markdown tables render. `file` is always
|
|
@@ -98,7 +98,6 @@ existing consumer's order never moves:
|
|
|
98
98
|
"source_digest": "...",
|
|
99
99
|
"tables": [
|
|
100
100
|
{ "table": "mart_trust_matrix", "file": "mart_trust_matrix.parquet" },
|
|
101
|
-
{ "table": "mart_session_costs", "file": "mart_session_costs.parquet" },
|
|
102
101
|
{ "table": "mart_role_memory", "file": "mart_role_memory.parquet" },
|
|
103
102
|
{ "table": "mart_flywheel_funnel", "file": "mart_flywheel_funnel.parquet" },
|
|
104
103
|
{ "table": "mart_review_burndown", "file": "mart_review_burndown.parquet" },
|
|
@@ -174,7 +173,7 @@ human's explicit answer, with `--relayed-via`. The page lists the approvals an
|
|
|
174
173
|
agent recorded for the human under "Approved through an agent" (`relayed` in
|
|
175
174
|
`GET /api/briefs`), with the role, actor and tool of each.
|
|
176
175
|
|
|
177
|
-
The dashboard renders
|
|
176
|
+
The dashboard renders SIX panels — trust matrix, role
|
|
178
177
|
memory, flywheel funnel, review burn-down, review rounds, review totals.
|
|
179
178
|
**Scope status
|
|
180
179
|
and subjects are exported to the snapshot but have no dashboard panel**;
|
|
@@ -186,7 +185,7 @@ The dashboard's freshness banner shows the snapshot's
|
|
|
186
185
|
snapshot, not necessarily the live checkout" note — treat "matches
|
|
187
186
|
`canon report`" as "matches the inputs that produced THIS snapshot".
|
|
188
187
|
|
|
189
|
-
## Reading the
|
|
188
|
+
## Reading the nine panels
|
|
190
189
|
|
|
191
190
|
In `canon report`'s own render order. Each panel names the view that
|
|
192
191
|
computes it; nothing here is derived a second time.
|
|
@@ -202,17 +201,6 @@ computes it; nothing here is derived a second time.
|
|
|
202
201
|
version; `green` and `who` are read off one whole winner row, so they can
|
|
203
202
|
never come from two different attestations.
|
|
204
203
|
|
|
205
|
-
- **Session costs** (`mart_session_costs`) — token/cost per
|
|
206
|
-
`(session, client, role, workspace_label)`. Every `run`/`session`/
|
|
207
|
-
`token_usage` record is folded to its latest version first, so
|
|
208
|
-
a re-ingested corrected cost REPLACES the superseded figure instead of being summed with it.
|
|
209
|
-
`workspace_label` is NOT a repo identity: it is the last non-empty path
|
|
210
|
-
segment of the `token_usage` event's workspace key and nothing more, so it
|
|
211
|
-
SPLITS one repo whose worktrees sit in differently-named directories and
|
|
212
|
-
MERGES two different repos sharing a directory name. Two stronger fields
|
|
213
|
-
exist and this mart reads neither — the event's own `workspace_key`, and
|
|
214
|
-
`Session.project_key`, which `canon-cli` stamps to the main worktree's key.
|
|
215
|
-
|
|
216
204
|
- **Role memory** (`mart_role_memory`) — per-`(role, regime_key)` strategy
|
|
217
205
|
counts. `hit_rate` is NOT a retrieval hit rate: it is the fraction of that
|
|
218
206
|
namespace's distilled strategies carrying no `demotion` flag, i.e.
|
|
@@ -355,25 +343,28 @@ computes it; nothing here is derived a second time.
|
|
|
355
343
|
a row is one change's review history, and `findings` moves with how
|
|
356
344
|
much reviewing happened rather than with the change.
|
|
357
345
|
|
|
358
|
-
|
|
359
|
-
`--snapshot`: `mart_records_by_kind
|
|
360
|
-
|
|
346
|
+
One mart in `views.sql` is NOT a report panel and is not exported by
|
|
347
|
+
`--snapshot`: `mart_records_by_kind`. It counts records per stored kind, so
|
|
348
|
+
rows of the retired `session`/`event` kinds that remain in a store still show
|
|
349
|
+
there until `canon purge` deletes them. Read it with DuckDB directly against
|
|
350
|
+
`views.sql`.
|
|
361
351
|
|
|
362
352
|
- **Run observability** (`mart_run_observability`) — one row per folded
|
|
363
|
-
`run_id`,
|
|
364
|
-
|
|
365
|
-
only when both timestamps exist,
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
and
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
353
|
+
`run_id`, the ninth and last report/snapshot table after the established
|
|
354
|
+
eight tables. It reports lifecycle identifiers/status/timestamps, latency
|
|
355
|
+
only when both timestamps exist, child-run count, guidance count, and
|
|
356
|
+
lineage provider/model, all read from the `Run` record alone. These are
|
|
357
|
+
bounded observations and proxies: no field claims guidance caused an
|
|
358
|
+
outcome. `guidance_count` is a count only; guidance text is never emitted.
|
|
359
|
+
`*_unknown` columns explicitly expose missing values, including missing
|
|
360
|
+
session/project/task/parent-run lineage, end timestamps, provider/model and
|
|
361
|
+
guidance; a `Run` stored without `project_key` reads `project_key_unknown`.
|
|
362
|
+
There are no cost, token or event columns: canon has no cost or token
|
|
363
|
+
report and no replacement for it. Workspace absolute paths and verbatim
|
|
364
|
+
guidance are intentionally omitted. The adapter contract is strict
|
|
365
|
+
read-only validation; this panel does not execute adapters or enforce
|
|
366
|
+
provider sandbox capabilities. Privacy-safe omission of paths and guidance
|
|
367
|
+
text is part of the current semantics.
|
|
377
368
|
|
|
378
369
|
## What this skill does NOT cover
|
|
379
370
|
|
|
@@ -198,6 +198,26 @@ it is `ARTIFACTS_STORE_FAILED` (an object) or `WRITE_FAILED` (a local file); aft
|
|
|
198
198
|
some, `ARTIFACTS_PRUNE_INCOMPLETE` names what was deleted, and a new preview
|
|
199
199
|
lists what remains.
|
|
200
200
|
|
|
201
|
+
A blob write stages `.canon/artifacts/sha256/.tmp-<sha256>-<pid>-<nanos>` and
|
|
202
|
+
renames it when it is complete; a write killed in between (SIGKILL, a power
|
|
203
|
+
cut) leaves the file, and nothing else removes it. `canon artifacts prune`
|
|
204
|
+
counts the **stale** ones (a regular file of exactly that name shape, modified
|
|
205
|
+
more than five minutes ago; a younger file may be a live write, and a link, a
|
|
206
|
+
directory, a file stamped in the future or a name of another shape such as
|
|
207
|
+
`.tmp-notes` is never touched) in `data.staleTemps` (`files`, `bytes` and the
|
|
208
|
+
first names), apart from the blobs, and the commit deletes exactly the ones the
|
|
209
|
+
plan lists. They are part of the plan digest, so a temp file added or removed
|
|
210
|
+
since the preview is `PLAN_STALE`; the commit checks each again under the
|
|
211
|
+
store lock and skips one that changed; a repo with only temp files and no blob
|
|
212
|
+
to delete still gets the `--commit` command. `canon artifacts verify` takes no
|
|
213
|
+
lock and deletes nothing: it prints one line with the count and bytes and
|
|
214
|
+
`canon artifacts prune` when there are any, `data.staleTemps` always carries
|
|
215
|
+
`files` and `bytes` (`unreadable` instead, never a zero, when the store
|
|
216
|
+
directory cannot be read), and the exit follows the bound files alone. A temp
|
|
217
|
+
file is no finished blob, so deleting it changes no record. One that was
|
|
218
|
+
already committed is a tracked file: take it out of the commit (`git rm`, then
|
|
219
|
+
commit); the preview's `staleTemps.gitNote` says so.
|
|
220
|
+
|
|
201
221
|
## What `canon report build` does and doesn't read
|
|
202
222
|
|
|
203
223
|
canon exposes layered `stg_`/`int_`/`mart_` query views; `canon report build`
|
|
@@ -223,7 +243,11 @@ is the canonical data-lifecycle boundary: the bare run previews: it prints the r
|
|
|
223
243
|
its `planDigest` and deletes nothing; `--commit --plan-digest <planDigest>` deletes only if
|
|
224
244
|
the plan recomputed now has the same digest (`PLAN_STALE`, exit 2, when the
|
|
225
245
|
data moved). The only purgeable kinds are
|
|
226
|
-
`
|
|
246
|
+
`run` and `trajectory`, plus the retired `session` and `event` (kept for this
|
|
247
|
+
release only so stored rows can be deleted — delete them now, after the next
|
|
248
|
+
release only direct database access remains; they read no routing, so they
|
|
249
|
+
find rows in every configured tier even after `canon migrate` removes the
|
|
250
|
+
`routing:`/`aging:` keys); the cutoff applies to every
|
|
227
251
|
routed rung and every configured aging destination, including retained
|
|
228
252
|
historical versions. For `trajectory`, the command also purges the
|
|
229
253
|
operator-local Parquet learn store under `learn.root` in `canon.yaml`;
|
|
@@ -156,7 +156,7 @@ canon inventory sync --json
|
|
|
156
156
|
```
|
|
157
157
|
```text
|
|
158
158
|
# Read stored records across every storage tier
|
|
159
|
-
usage: canon query --kind <change|task|scenario|
|
|
159
|
+
usage: canon query --kind <change|task|scenario|run|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>]
|
|
160
160
|
```
|
|
161
161
|
```bash
|
|
162
162
|
canon query --kind evidence --json
|
|
@@ -184,7 +184,7 @@ canon schema evidence add --json
|
|
|
184
184
|
```
|
|
185
185
|
```text
|
|
186
186
|
# Search records, brief sections and scenario text, with each hit's neighbors in the record graph
|
|
187
|
-
usage: canon search <TEXT> [--kind <change|task|scenario|
|
|
187
|
+
usage: canon search <TEXT> [--kind <change|task|scenario|run|handoff|review|divergence|trajectory|strategy_item|evidence|subject|finding|brief>]* [--expand <N>] [--limit <N>]
|
|
188
188
|
```
|
|
189
189
|
```bash
|
|
190
190
|
canon search timeout --kind finding --json
|
|
@@ -158,7 +158,7 @@ canon evidence approval-payload --scenario auth.login.01 --project root --approv
|
|
|
158
158
|
```
|
|
159
159
|
```text
|
|
160
160
|
# Export a redacted retention manifest without deleting records
|
|
161
|
-
usage: canon export --kind <change|task|scenario|
|
|
161
|
+
usage: canon export --kind <change|task|scenario|run|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]
|
|
162
162
|
```
|
|
163
163
|
```bash
|
|
164
164
|
canon export --kind evidence --output evidence.json --json
|
|
@@ -206,13 +206,6 @@ usage: canon ingest records [--watch] [--interval-secs <N>] [--dry-run] [--run <
|
|
|
206
206
|
canon ingest records --json
|
|
207
207
|
```
|
|
208
208
|
```text
|
|
209
|
-
# Import agent CLI session transcripts (omp/pi, Claude Code, Codex, Hermes)
|
|
210
|
-
usage: canon ingest sessions [--watch] [--interval-secs <N>] [--home <DIR>] [--full] [--all-workspaces] [--dry-run] [--input]
|
|
211
|
-
```
|
|
212
|
-
```bash
|
|
213
|
-
canon ingest sessions --json
|
|
214
|
-
```
|
|
215
|
-
```text
|
|
216
209
|
# Set up canon in a repo (canon.yaml, a starter policy, the AGENTS.md block, a plans home)
|
|
217
210
|
usage: canon init [--check] [--no-agents-md | --check] [--policy <light|standard|strict> | --check | --no-policy] [--harness <claude|codex|omp|pi> | --check | --no-harness]* [--language <TAG> | --check] [--dry-run | --check] [--input]
|
|
218
211
|
```
|
|
@@ -272,15 +265,15 @@ canon prompt show reviewer@v1 --json
|
|
|
272
265
|
```
|
|
273
266
|
```text
|
|
274
267
|
# Remove allowlisted records older than a cutoff
|
|
275
|
-
usage: canon purge --kind <session|
|
|
268
|
+
usage: canon purge --kind <run|trajectory|session|event> --before <TIMESTAMP> [--commit --plan-digest <PLAN_DIGEST>] [--input]
|
|
276
269
|
# a bare run previews and prints planDigest; `--commit --plan-digest <PLAN_DIGEST>` with that digest acts
|
|
277
270
|
```
|
|
278
271
|
```bash
|
|
279
|
-
canon purge --kind
|
|
272
|
+
canon purge --kind run --before 2020-01-01T00:00:00Z --json
|
|
280
273
|
```
|
|
281
274
|
```text
|
|
282
275
|
# Read stored records across every storage tier
|
|
283
|
-
usage: canon query --kind <change|task|scenario|
|
|
276
|
+
usage: canon query --kind <change|task|scenario|run|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>]
|
|
284
277
|
```
|
|
285
278
|
```bash
|
|
286
279
|
canon query --kind evidence --json
|
|
@@ -329,14 +322,14 @@ canon schema evidence add --json
|
|
|
329
322
|
```
|
|
330
323
|
```text
|
|
331
324
|
# Search records, brief sections and scenario text, with each hit's neighbors in the record graph
|
|
332
|
-
usage: canon search <TEXT> [--kind <change|task|scenario|
|
|
325
|
+
usage: canon search <TEXT> [--kind <change|task|scenario|run|handoff|review|divergence|trajectory|strategy_item|evidence|subject|finding|brief>]* [--expand <N>] [--limit <N>]
|
|
333
326
|
```
|
|
334
327
|
```bash
|
|
335
328
|
canon search timeout --kind finding --json
|
|
336
329
|
```
|
|
337
330
|
```text
|
|
338
331
|
# Run canon's built-in fixture self-tests
|
|
339
|
-
usage: canon selftest [--suite <trust-spine-gate|tiered-storage|typed-authoring-vocabulary|policy-expressions|format-authority|
|
|
332
|
+
usage: canon selftest [--suite <trust-spine-gate|tiered-storage|typed-authoring-vocabulary|policy-expressions|format-authority|canon-context|artifact-ingest|spec-ledger-selftest|plugin-overlays|plan-import>]
|
|
340
333
|
```
|
|
341
334
|
```bash
|
|
342
335
|
canon selftest --suite trust-spine-gate --json
|
|
@@ -650,8 +643,10 @@ canon ledger compact
|
|
|
650
643
|
|
|
651
644
|
`canon artifacts move --tier <tier>` moves the local artifact store to an
|
|
652
645
|
object store and removes the local blobs, `canon artifacts prune` deletes the
|
|
653
|
-
blobs no record binds any more
|
|
654
|
-
|
|
646
|
+
blobs no record binds any more and the stale `.tmp-` files a killed write left
|
|
647
|
+
in the store (a deleted local blob stays in git history; a deleted object of a
|
|
648
|
+
tier is gone for good; `canon artifacts verify` only counts the temp files), and
|
|
649
|
+
`purge` deletes records. They
|
|
655
650
|
are the repo owner's decisions, not steps of the loop: run the preview, give
|
|
656
651
|
the human the effects, and run the commit only on their answer. If the repo is
|
|
657
652
|
large, the store is slow or the human has not asked for it, do not run it.
|
|
@@ -95,7 +95,7 @@ canon gate check --json
|
|
|
95
95
|
```
|
|
96
96
|
```text
|
|
97
97
|
# Read stored records across every storage tier
|
|
98
|
-
usage: canon query --kind <change|task|scenario|
|
|
98
|
+
usage: canon query --kind <change|task|scenario|run|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>]
|
|
99
99
|
```
|
|
100
100
|
```bash
|
|
101
101
|
canon query --kind evidence --json
|
|
@@ -123,7 +123,7 @@ canon schema evidence add --json
|
|
|
123
123
|
```
|
|
124
124
|
```text
|
|
125
125
|
# Search records, brief sections and scenario text, with each hit's neighbors in the record graph
|
|
126
|
-
usage: canon search <TEXT> [--kind <change|task|scenario|
|
|
126
|
+
usage: canon search <TEXT> [--kind <change|task|scenario|run|handoff|review|divergence|trajectory|strategy_item|evidence|subject|finding|brief>]* [--expand <N>] [--limit <N>]
|
|
127
127
|
```
|
|
128
128
|
```bash
|
|
129
129
|
canon search timeout --kind finding --json
|
|
@@ -115,7 +115,7 @@ canon gate check --json
|
|
|
115
115
|
```
|
|
116
116
|
```text
|
|
117
117
|
# Read stored records across every storage tier
|
|
118
|
-
usage: canon query --kind <change|task|scenario|
|
|
118
|
+
usage: canon query --kind <change|task|scenario|run|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>]
|
|
119
119
|
```
|
|
120
120
|
```bash
|
|
121
121
|
canon query --kind evidence --json
|
|
@@ -150,7 +150,7 @@ canon schema evidence add --json
|
|
|
150
150
|
```
|
|
151
151
|
```text
|
|
152
152
|
# Search records, brief sections and scenario text, with each hit's neighbors in the record graph
|
|
153
|
-
usage: canon search <TEXT> [--kind <change|task|scenario|
|
|
153
|
+
usage: canon search <TEXT> [--kind <change|task|scenario|run|handoff|review|divergence|trajectory|strategy_item|evidence|subject|finding|brief>]* [--expand <N>] [--limit <N>]
|
|
154
154
|
```
|
|
155
155
|
```bash
|
|
156
156
|
canon search timeout --kind finding --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.39.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.39.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.39.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.39.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.39.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.39.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.39.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.39.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ie \n(.g .ds Aq \(aq
|
|
2
2
|
.el .ds Aq '
|
|
3
|
-
.TH canon-artifacts-prune 1 "prune 0.
|
|
3
|
+
.TH canon-artifacts-prune 1 "prune 0.39.0"
|
|
4
4
|
.SH NAME
|
|
5
5
|
canon\-artifacts\-prune \- Delete the artifact blobs no record binds any more (the bare run previews; \-\-commit \-\-plan\-digest deletes)
|
|
6
6
|
.SH SYNOPSIS
|
|
@@ -70,6 +70,8 @@ The bare run previews: it says how many blobs and bytes go and stay, why each ke
|
|
|
70
70
|
|
|
71
71
|
A deleted local blob leaves the working tree, so commit the removal with the ledger; it stays in git history, and shrinking that history is the repo owner\*(Aqs call, not this command\*(Aqs. A deleted object of a tier cannot be undone: the tier keeps no other copy. A delete that fails stops the run (ARTIFACTS_PRUNE_INCOMPLETE says what was deleted); a new preview lists what remains.
|
|
72
72
|
|
|
73
|
+
It also deletes the stale temp files a killed blob write left in .canon/artifacts/sha256 (`.tmp\-<sha256>\-<pid>\-<nanos>`, a regular file modified over five minutes ago; a younger file, a link, a directory or any other name stays): the preview lists them in data.staleTemps, the plan digest covers them, and the commit checks each again under the store lock. A temp file is no finished blob, so deleting it changes no record; one git already tracks must be taken out of the commit. `canon artifacts verify` only counts them.
|
|
74
|
+
|
|
73
75
|
Exit 0 for a preview or a commit, 1 when a delete failed, 2 when the plan is stale or the records or the store cannot be read.
|
|
74
76
|
.SH VERSION
|
|
75
|
-
v0.
|
|
77
|
+
v0.39.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.39.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.39.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.39.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
|
|
@@ -44,5 +44,7 @@ Print version
|
|
|
44
44
|
Asks the store canon.yaml\*(Aqs `artifacts:` block selects (default: local, .canon/artifacts/sha256) about each bound file, the way `canon gate check` does. For an object store that is one HEAD per distinct digest plus the size and sha256 metadata written at upload; \-\-full downloads each blob and re\-hashes it.
|
|
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
|
+
|
|
48
|
+
It also counts the stale temp files a killed blob write left in .canon/artifacts/sha256 (`.tmp\-<sha256>\-<pid>\-<nanos>`, modified over five minutes ago): data.staleTemps has their files and bytes (unreadable, never 0, when the directory cannot be read) and a line names `canon artifacts prune`, which deletes them. verify deletes nothing, and a temp file never changes the exit.
|
|
47
49
|
.SH VERSION
|
|
48
|
-
v0.
|
|
50
|
+
v0.39.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.39.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
|
|
@@ -45,4 +45,4 @@ Move the local artifact blobs to an object\-store tier, verify them, and remove
|
|
|
45
45
|
canon\-artifacts\-prune(1)
|
|
46
46
|
Delete the artifact blobs no record binds any more (the bare run previews; \-\-commit \-\-plan\-digest deletes)
|
|
47
47
|
.SH VERSION
|
|
48
|
-
v0.
|
|
48
|
+
v0.39.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.39.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
|
|
@@ -74,4 +74,4 @@ chore whose approval saw the code tree that is still the current one asks for no
|
|
|
74
74
|
not approved (BRIEF_APPROVAL_STALE) until a human answers again and this
|
|
75
75
|
runs again. Run it only from the human\*(Aqs answer, with their words as \-\-note.
|
|
76
76
|
.SH VERSION
|
|
77
|
-
v0.
|
|
77
|
+
v0.39.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.39.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.39.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.39.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.39.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.39.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.39.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.39.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.39.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.39.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.39.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.39.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.39.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.39.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.39.0
|