@journeykit/canon 0.18.0 → 0.21.1
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 +101 -184
- package/dist/skills/reference/brief-align.md +42 -0
- package/dist/skills/reference/brief-clarify.md +42 -0
- package/dist/skills/reference/brief-harden.md +41 -0
- package/dist/skills/reference/brief-polish.md +42 -0
- package/dist/skills/reference/brief-shape.md +46 -0
- package/dist/skills/reference/canon-authoring.md +4 -1
- package/dist/skills/reference/canon-context.md +3 -3
- package/dist/skills/reference/canon-gate.md +59 -36
- package/dist/skills/reference/canon-inventory.md +2 -2
- package/dist/skills/reference/canon-learn.md +4 -6
- package/dist/skills/reference/canon-plan-import.md +10 -7
- package/dist/skills/reference/canon-policy.md +5 -3
- package/dist/skills/reference/canon-review.md +2 -2
- package/dist/skills/reference/canon-storage.md +18 -4
- package/dist/skills/reference/canon-subject.md +138 -55
- package/dist/skills/reference/role-implementer.md +81 -0
- package/dist/skills/reference/role-orchestrator.md +76 -0
- package/dist/skills/reference/role-planner.md +84 -0
- package/dist/skills/reference/role-reviewer.md +70 -0
- package/package.json +4 -4
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Role: reviewer
|
|
2
|
+
|
|
3
|
+
You are the independent second look. Declare the role with
|
|
4
|
+
`CANON_ROLE=reviewer` (or `--as reviewer`); `--role` on `review add` then
|
|
5
|
+
defaults to `reviewer`.
|
|
6
|
+
|
|
7
|
+
## Commands
|
|
8
|
+
|
|
9
|
+
Every line is complete; fill the `<placeholders>`. `<root-id>` is the `id` of
|
|
10
|
+
a `specs.roots[]` entry in `canon.yaml` (`root` by default).
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
canon brief check --change <slug> --as reviewer --json
|
|
14
|
+
canon gate check --as reviewer --json # once, before review add
|
|
15
|
+
canon finding add --change-id <slug> --round <n> --seq <n> --severity <blocker|should-fix|note> --reviewer <me> --actor-id <me> --session-id <session> --summary "<defect>" --as reviewer --json
|
|
16
|
+
canon finding list --change-id <slug> --open --as reviewer --json
|
|
17
|
+
canon finding close --change-id <slug> --round <n> --seq <n> --disposition fixed --resolution-sha <sha> --as reviewer --json
|
|
18
|
+
canon review add --project-id <root-id> --scenario-id <id> --scenario-id <id> --reviewer <me> --actor-id <me> --role reviewer --session-id <session> --pin <sha> --upstream-ref <ref> --as reviewer --json
|
|
19
|
+
canon review add --project-id <root-id> --scenario-ids-from - --reviewer <me> --actor-id <me> --role reviewer --session-id <session> --pin <sha> --upstream-ref <ref> --as reviewer --json # ids on stdin, one per line
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
`review add` needs `--upstream-ref <ref>` or `--original-spec-ref <path>`;
|
|
23
|
+
add `--artifact <path>` (repeatable) for user-visible behavior. A short
|
|
24
|
+
`<sha>` is fine. With `write.promote: manual`, follow `finding add` and
|
|
25
|
+
`finding close` with `canon gate promote --as reviewer --json`.
|
|
26
|
+
|
|
27
|
+
Run `gate check` once, before `review add`: its `unreviewed-promotion`
|
|
28
|
+
violations are the subjects and scenarios that need your review. Do not loop
|
|
29
|
+
it. After `review add`, read its `meta.next` instead of calling `gate check`
|
|
30
|
+
or `status` again.
|
|
31
|
+
|
|
32
|
+
## Separate session
|
|
33
|
+
|
|
34
|
+
You run as a separate process with your own session id, never the session
|
|
35
|
+
that wrote the code and evidence under another `--actor-id` or
|
|
36
|
+
`--session-id` label. Pass your real session id as `--session-id` on
|
|
37
|
+
everything you record. A harness with no subagent tool starts you (a new
|
|
38
|
+
`codex exec` run in this repo, say). Review happens on every change.
|
|
39
|
+
|
|
40
|
+
## Read the PRD
|
|
41
|
+
|
|
42
|
+
1. `brief check`: the brief must have no blockers.
|
|
43
|
+
2. Read the brief itself, `.canon/changes/<slug>/brief.md`: intent, the flow
|
|
44
|
+
`F1`, `F2`, …, acceptance and failure path per step, out of scope. You do
|
|
45
|
+
not refine the brief; a brief defect is a finding, not an edit.
|
|
46
|
+
3. Check the scenarios against it: every flow step has a scenario that
|
|
47
|
+
proves it, every step has a failure scenario, each scenario's steps match
|
|
48
|
+
the step's acceptance, and nothing builds what the brief puts out of
|
|
49
|
+
scope.
|
|
50
|
+
|
|
51
|
+
## Run the checks yourself
|
|
52
|
+
|
|
53
|
+
Run the build, the tests and the app the evidence claims to cover, on the
|
|
54
|
+
commit you pin. Compare the results with the evidence records. Never sign
|
|
55
|
+
what you could not run: a reviewer that cannot run the tests says so and
|
|
56
|
+
does not sign off; record that instead (`--outcome indeterminate`, or
|
|
57
|
+
`unavailable` when you could not run).
|
|
58
|
+
|
|
59
|
+
## Record
|
|
60
|
+
|
|
61
|
+
- Every defect is a finding; `finding list` shows round, seq, severity and
|
|
62
|
+
disposition, so the next seq and the open blockers are one command away.
|
|
63
|
+
Close a finding once it is fixed.
|
|
64
|
+
- Sign off in one batch with `review add`, all or nothing. It writes
|
|
65
|
+
directly; nothing to promote. canon stores and re-checks attached bytes
|
|
66
|
+
and never compares images.
|
|
67
|
+
- Fixes you ask for return as a re-review of the same change. When a new
|
|
68
|
+
evidence record makes your review stale, look again before you re-pin.
|
|
69
|
+
|
|
70
|
+
Reference: `reference/canon-review.md`.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@journeykit/canon",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.21.1",
|
|
4
4
|
"description": "canon — harness knowledge substrate. JS launcher: platform detection + native binary resolution.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {},
|
|
32
32
|
"optionalDependencies": {
|
|
33
|
-
"@journeykit/canon-core-darwin-arm64": "0.
|
|
34
|
-
"@journeykit/canon-core-linux-x64": "0.
|
|
35
|
-
"@journeykit/canon-core-win32-x64": "0.
|
|
33
|
+
"@journeykit/canon-core-darwin-arm64": "0.21.1",
|
|
34
|
+
"@journeykit/canon-core-linux-x64": "0.21.1",
|
|
35
|
+
"@journeykit/canon-core-win32-x64": "0.21.1"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@types/node": "^20.0.0",
|