@outerlayer/cli 0.33.0-next.20261023151440 → 0.33.0-next.20261023154943

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.
@@ -1 +1 @@
1
- {"id":"2026-10-23T15:16:37.060Z+5648b3a","root":"/home/runner/_work/outerlayer/outerlayer","pkg":"outerlayer"}
1
+ {"id":"2026-10-23T15:51:40.272Z+f2e27cb","root":"/home/runner/_work/outerlayer/outerlayer","pkg":"outerlayer"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@outerlayer/cli",
3
- "version": "0.33.0-next.20261023151440",
3
+ "version": "0.33.0-next.20261023154943",
4
4
  "description": "OuterLayer CLI — commands: init, claude, connect, doctor, login, logout, sync, daemon (alias: watch), emit, findings, work, spec, runner, hooks, mcp, context. Capture and sync coding-agent sessions, and record proof of factory work.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Magu Studios, Inc.",
@@ -233,9 +233,17 @@ Run them in order.
233
233
 
234
234
  { "criteria": [ { "id": "<the id, if the issue gives one>", "text": "<verbatim>", "proof": null } ] }
235
235
 
236
- Give `proof` an artifact kind (`video`, `screenshot`, `report`, `log`,
237
- `test` or `file`) only when the issue states that proof explicitly, as in
238
- `(proof: screenshot)`. Never infer a proof kind from the words. Then run:
236
+ Set `proof` to an artifact kind (`video`, `screenshot`, `report`, `log`,
237
+ `test` or `file`). When the issue states a proof, as in
238
+ `(proof: screenshot)`, use it. A criterion that names a test seam, as in
239
+ `(seam: component)`, keeps `null`: a test proves it. Infer the proof of
240
+ every other criterion from its Then. A Then that a person sees in the
241
+ product's user interface takes `video` when its When has more than one
242
+ step, and `screenshot` when it shows one state. A label, a disabled button
243
+ and a closed box count. A Then that no screen shows, such as a stored row,
244
+ keeps `null`. Infer a screen proof only when the build can run and record
245
+ that interface. The final report lists each proof the build inferred.
246
+ Then run:
239
247
 
240
248
  node .outerlayer/skills/outerlayer-build/scripts/record-criteria.mjs --item "$OUTERLAYER_WORK" --criteria-file <file>
241
249
 
@@ -249,8 +257,8 @@ Run them in order.
249
257
  When the issue has no criteria anywhere, draft them from the issue's
250
258
  description. Each is one observable behavior the description asks for, in
251
259
  its words, adding no scope it does not state. Write them to the same kind
252
- of file without ids, set `proof` only when the description asks for that
253
- proof, and run the script with `--drafted` added. It numbers the draft
260
+ of file without ids, set `proof` by the rule above, and run the script
261
+ with `--drafted` added. It numbers the draft
254
262
  `AC-<item number>-NN` and records it with `drafted: true`, so the Criteria
255
263
  tab says the build drafted the list.
256
264
 
@@ -80,6 +80,7 @@
80
80
  ".outerlayer/skills/spec/SKILL.md": [
81
81
  "1dcc8d22e037b6cd93a5e3f0cb3f3bf97cf634313e2668c08bfded376cd5d01b",
82
82
  "290edbe7d4107ec84eb77bff1f57759adff48d330bb2fd382509fce01e9a7713",
83
+ "4e3aba9c7ee20928ce51ae425ad69a0b591eee91775c7ec7e542ff0416e5c948",
83
84
  "5848f2424fbd071d6097a736408b6d7c462a5c1b7c141b5e81ed3e5a60b717be",
84
85
  "71e81fabf353ad6117c54e061868538bf00066b78c2528f5a8364445d1def02e",
85
86
  "7676c9a19f8ea8741ffbe8f09e4600764cb3f98c2c6bce15ee5a90b4c5f1d41e",
@@ -93,6 +94,7 @@
93
94
  "a956aac4249118a058c4327c5751472883588720950d4a96f80c7e91f454bef9",
94
95
  "d9423f48add241b2cf23bf49b467858355882727a08e068937a07571399555d8",
95
96
  "dbadb39cba5dae936e7c4b97cb852c59072e4a60e44caec01b128a045c1be090",
97
+ "e50baa6d7c5145b9b0bddd9827de0659af54b81ee1238fb2dd1b74f2c58cf41c",
96
98
  "eb8aa95f5e76a46ae9bf340989fb40e470fd750ded791ba80b5f8c5c325513e5"
97
99
  ],
98
100
  ".outerlayer/skills/writing-specs/references/agents-snippet.md": [
@@ -41,10 +41,13 @@ Run them in order. Do not skip the approval.
41
41
  under an `## Acceptance criteria` heading, each in Given/When/Then form with
42
42
  a stable id the team chooses. Every criterion whose outcome a user can see
43
43
  carries a proof form beside its id: `(proof: video)` for a flow of more than
44
- one step, and `(proof: screenshot)` for a single state. A test is the proof
45
- only where nothing visible changes. A criterion nobody can prove is a
46
- criterion nobody can build to, so give every one either a proof form or a
47
- named test.
44
+ one step, and `(proof: screenshot)` for a single state. A label, a disabled
45
+ button, a closed box and a new line are visible outcomes too. The build
46
+ records each one as a chapter of the item's demo. A test alongside it does
47
+ not replace the proof form. A test is the proof only where nothing visible
48
+ changes, such as a stored row or a job that does not start. A criterion
49
+ nobody can prove is a criterion nobody can build to, so give every one
50
+ either a proof form or a named test.
48
51
  3. **Verdicts.** Decide the docs verdict and the structural verdict as
49
52
  `writing-specs` defines them. Give each a one-line reason. A docs-required
50
53
  verdict adds a criterion naming the page to change or add and its proof
@@ -66,7 +69,9 @@ Run them in order. Do not skip the approval.
66
69
  6. **Checkpoint.** Show the drafted title and body, the criteria with their
67
70
  proof forms, and both verdicts with their reasons. Wait for explicit
68
71
  approval. Before showing them, check every criterion: it has an id, a
69
- Given, When and Then, and a proof form or a named test. Check that both
72
+ Given, When and Then, and a proof form or a named test. Read the Then of
73
+ each criterion proved by a test again. If a user could see it on screen,
74
+ give it a proof form instead. Check that both
70
75
  verdicts are there, each with its reason. A criterion that fails the check
71
76
  goes back to step 2, and a missing verdict to step 3. Apply requested
72
77
  edits, run the reader pass again over the edited text, and show it again
@@ -99,11 +99,10 @@ implementing. Never write them by reading the finished implementation back.
99
99
  /login". Declarative criteria survive refactors and read as product truth.
100
100
  - **Every promised error path gets its own criterion.** An unstated edge case
101
101
  is not left open. It is guessed at during implementation.
102
- - **`(proof: ...)` between the id and Given** when a criterion needs
103
- human-visible evidence. Use `video` for a flow of more than one step and
104
- `screenshot` for a single state. A test is the proof only where nothing visible
105
- changes. The proof shows the running page, never a component render. The
106
- outerlayer-evidence skill covers capture.
102
+ - **`(proof: ...)` between the id and Given** on every criterion whose outcome
103
+ a user can see. Use `video` for a flow of more than one step and `screenshot`
104
+ for a single state. A test is the proof only where nothing visible changes. The proof shows the running page, never
105
+ a component render. The outerlayer-evidence skill covers capture.
107
106
 
108
107
  ## The two verdicts
109
108