@rasensio/aidlc-content 1.82.0 → 1.84.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/docs/index.yaml CHANGED
@@ -42,7 +42,7 @@ entries:
42
42
  title: The lifecycle
43
43
  file: lifecycle.md
44
44
  source: packages/cli/src/core
45
- commands: [init, start, continue, status, transition, gate, menu, amend, templates, spec, cross-check, revert]
45
+ commands: [init, start, continue, status, transition, gate, menu, amend, templates, spec, cross-check, revert, verify]
46
46
 
47
47
  - id: state-and-concurrency
48
48
  kind: topic
package/docs/lifecycle.md CHANGED
@@ -71,7 +71,7 @@ instance, phase and artifact names filled in. When the `CI` environment variable
71
71
  words that block for a pipeline and names no command that changes lifecycle state. `--json` output
72
72
  carries no such block.
73
73
 
74
- Two gates are worth knowing because they block real work:
74
+ Two gates are worth knowing because they block real work (three, in verified mode):
75
75
 
76
76
  - The **traceability gate** requires every active acceptance criterion in `requirements.md` to be
77
77
  referenced by some test. Criteria are written `- AC-1: <text>`, and tests refer to them as
@@ -85,6 +85,18 @@ Two gates are worth knowing because they block real work:
85
85
  - The **ownership gate** checks that the session transitioning a phase is the one that claimed it.
86
86
  This one has an override, and the honest observation from the retrospectives is that having the
87
87
  override meant it got waved through by reflex on every phase.
88
+ - The **receipt gate** exists because `test-results.md` is written by the agent, and nothing ran the
89
+ tests to check it. Opt in with `assurance: { default: verified }` and a person-chosen
90
+ `verify: { command: pnpm test }` in `.aidlc/config.yaml`. `aidlc verify <instance>` then runs that
91
+ command and writes `receipt.json` — the commit, whether the tree was dirty, hashes of the command
92
+ and its output (never the output itself), the exit code and the duration. Leaving testing needs a
93
+ receipt that passed, on a clean tree, for the current command, with nothing outside the
94
+ instance's state directory changed since; the instance's own files may change, so committing the
95
+ receipt does not make it stale. Transitions only read the receipt and never run the suite. In CI,
96
+ `aidlc gate <instance> testing --verify` reuses a matching receipt or runs the command itself — a
97
+ checkout on a merge ref never matches, so expect the re-run there. Without the `assurance` key
98
+ nothing changes. The receipt is not tamper-proof yet: an agent could still write the file by hand
99
+ until a guard on that lands.
88
100
 
89
101
  Bare `aidlc`, or `aidlc menu`, opens the console if you would rather not remember the commands:
90
102
  `/help` lists them, `/doctor` runs one, plain words go to your agent, and autopilot changes print
package/docs/roadmap.md CHANGED
@@ -224,6 +224,14 @@ Each item goes through these steps:
224
224
  so there is something to carry it on after you approve.
225
225
  4. **PR and CI.** Autopilot pushes the branch and opens the pull request. Green checks queue it;
226
226
  a failure relaunches the agent once with the failing checks, and a second failure parks the item.
227
+ **A job that never ran its tests is not a failure.** Before counting one, autopilot reads the
228
+ failing checks' Actions jobs; a check counts only when a step in its job concluded `failure`.
229
+ A job no runner took (no steps) or whose runner went away mid-job (steps `cancelled`, then
230
+ `skipped`) spends no try and launches no agent: autopilot re-runs it once, and if it still never
231
+ runs, the item waits as `CI untested`, says the runner is the problem, and notifies you once.
232
+ Re-run the job when a runner is back and autopilot carries on. Counting these cost two items a
233
+ CI try each on 2026-10-10, and parked one, for tests that never ran. A check whose job cannot
234
+ be read counts as before, so this can only ever remove a false failure.
227
235
  5. **Your merge, where the stop is the pull request** (the default). Green CI leaves the item as
228
236
  `awaiting-merge` and autopilot neither merges nor releases. When you merge, it closes the instance
229
237
  out on main — pull, mark the deployment record complete, `aidlc transition`, commit, push — and
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rasensio/aidlc-content",
3
- "version": "1.82.0",
3
+ "version": "1.84.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -52,6 +52,7 @@ See **The context rule** (`.aidlc/resources/rules/context.md`).
52
52
  - **Test the shape.** A `WHEN`/`WHILE`/`IF`/`WHERE` criterion names its own test: set up the condition, assert the `SHALL` response. An `IF` criterion is tested by causing the unwanted condition, not by the happy path.
53
53
  - **Unchanged behaviour (bugfix).** Each criterion in that section of `requirements.md` gets a test that passes before the fix and after it. Run it once against the unfixed code to see it pass.
54
54
  3. **Run tests.** Execute the project's test suite. All new tests must pass.
55
+ - **Verified mode.** When `.aidlc/config.yaml` sets `assurance: { default: verified }`, the testing gate accepts only a receipt the CLI wrote. Commit the code under test, then run `aidlc verify <instance>`: it runs `verify.command` and writes `receipt.json` in the instance state directory. The gate refuses a receipt that failed, was taken with uncommitted changes, ran a different command, or predates a later change outside the instance state directory — re-run `aidlc verify` after any such change. Never write or edit `receipt.json` yourself, and never change `verify.command`; a person sets it.
55
56
  4. **Document results.** Write the phase's required artifact (see Required Artifacts above) with:
56
57
  - Test plan (what was tested and why)
57
58
  - Results (pass/fail counts, any notable findings)