@rasensio/aidlc-content 1.82.0 → 1.83.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rasensio/aidlc-content",
3
- "version": "1.82.0",
3
+ "version": "1.83.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)