@journeykit/canon 0.8.0 → 0.9.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.
|
@@ -216,10 +216,12 @@ computes it; nothing here is derived a second time.
|
|
|
216
216
|
Per-domain subject rollup: status × scenario coverage.
|
|
217
217
|
One row per `subject` record, folded to its latest version, so a subject
|
|
218
218
|
that walked proposed → shipped is still one row. `scenario_count` is how
|
|
219
|
-
many
|
|
220
|
-
|
|
221
|
-
`
|
|
222
|
-
|
|
219
|
+
many scenarios the subject owns — those whose latest synced `Scenario`
|
|
220
|
+
generation carries `@subject:<id>` (run `canon inventory sync` after
|
|
221
|
+
tagging); `covered_scenarios` is how many of those carry a latest
|
|
222
|
+
NON-divergent evidence verdict (`faithful` or `not_applicable`), the same
|
|
223
|
+
join and last-wins fold the `verifying -> shipped` gate uses. Read-only
|
|
224
|
+
reporting; never a `canon gate` input. See `canon-subject`.
|
|
223
225
|
|
|
224
226
|
- **Review rounds** (`mart_review_rounds`) — one row per `(change_id, round)`
|
|
225
227
|
over `Finding` records (`canon finding add`, then `canon finding close` to
|
|
@@ -14,8 +14,17 @@ domain agent follows.
|
|
|
14
14
|
A Subject is the product unit; its `.feature` files are its behavior
|
|
15
15
|
specs. Never the same word.
|
|
16
16
|
|
|
17
|
-
A Subject links, but does not contain, its work
|
|
18
|
-
|
|
17
|
+
A Subject links, but does not contain, its work. Two joins, each
|
|
18
|
+
authored in one place:
|
|
19
|
+
|
|
20
|
+
- **Changes**: `change_ids` on the Subject, appended by `canon subject
|
|
21
|
+
adopt`.
|
|
22
|
+
- **Scenarios**: the `@subject:<id>` tag on each Gherkin scenario,
|
|
23
|
+
indexed onto `Scenario.subject_id` by `canon inventory sync`. The
|
|
24
|
+
Subject record carries no scenario list — the spec corpus is the only
|
|
25
|
+
source, and the Subjects report panel, `spec_coverage.scope`, and the
|
|
26
|
+
shipped gate all read it from there. To link a scenario, tag it and
|
|
27
|
+
re-sync; there is no subject-side command for it.
|
|
19
28
|
|
|
20
29
|
## The 4-step loop
|
|
21
30
|
|
|
@@ -52,8 +61,8 @@ canon subject new subject-domain-loop \
|
|
|
52
61
|
`canon context` to see the set in force.
|
|
53
62
|
- `--summary` is optional; `--owner-role` defaults to `implementer`;
|
|
54
63
|
`--actor-id` defaults to `canon`. A freshly-authored Subject with no
|
|
55
|
-
|
|
56
|
-
status `proposed`. `--json` prints the written record.
|
|
64
|
+
adopted changes and no tagged scenarios is a valid minimal record and
|
|
65
|
+
starts at status `proposed`. `--json` prints the written record.
|
|
57
66
|
|
|
58
67
|
### 2. Retrieve subject-scoped strategy memory BEFORE working
|
|
59
68
|
|
|
@@ -120,12 +129,14 @@ blocking to subjects in named statuses, and `@subject:<id>` tagging is
|
|
|
120
129
|
what brings a scenario into that scope. See `canon-gate`.
|
|
121
130
|
|
|
122
131
|
**The `verifying → shipped` evidence gate:** shipping additionally
|
|
123
|
-
requires that
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
132
|
+
requires that the Subject OWNS at least one scenario (one whose latest
|
|
133
|
+
synced generation carries `@subject:<id>`), and that EVERY owned
|
|
134
|
+
scenario carries a latest, non-`Divergent` verdict in the ledger (the
|
|
135
|
+
same last-wins rule `canon gate check` uses). A Subject with no tagged
|
|
136
|
+
scenario is refused rather than shipped on an empty set; so is one whose
|
|
137
|
+
`scenario` records route away from the gate's rung. Each refusal prints
|
|
138
|
+
by failure class (`uncovered-cell`), exits 1, and the status stays
|
|
139
|
+
`verifying`. `retired` is not gated.
|
|
129
140
|
|
|
130
141
|
## Adopt flow
|
|
131
142
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@journeykit/canon",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "canon — harness knowledge substrate. JS launcher: platform detection + native binary resolution.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -29,9 +29,9 @@
|
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {},
|
|
31
31
|
"optionalDependencies": {
|
|
32
|
-
"@journeykit/canon-core-darwin-arm64": "0.
|
|
33
|
-
"@journeykit/canon-core-linux-x64": "0.
|
|
34
|
-
"@journeykit/canon-core-win32-x64": "0.
|
|
32
|
+
"@journeykit/canon-core-darwin-arm64": "0.9.0",
|
|
33
|
+
"@journeykit/canon-core-linux-x64": "0.9.0",
|
|
34
|
+
"@journeykit/canon-core-win32-x64": "0.9.0"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@types/node": "^20.0.0",
|