@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 +1 -1
- package/docs/lifecycle.md +13 -1
- package/docs/roadmap.md +8 -0
- package/package.json +1 -1
- package/skills/50-testing.md +1 -0
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
package/skills/50-testing.md
CHANGED
|
@@ -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)
|