@rasensio/aidlc-content 1.41.0 → 1.42.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rasensio/aidlc-content",
3
- "version": "1.41.0",
3
+ "version": "1.42.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -38,4 +38,6 @@ Each question in the file ends with an `[Answer]:` tag — blank while open, car
38
38
 
39
39
  With no interactive terminal, write the file, say where it is, and end the turn. Never assume an answer.
40
40
 
41
+ **Unattended (`AIDLC_UNATTENDED=1`)** is the one exception, and it is not an assumption: take the recommended option, write it into `[Answer]:` followed by `(unattended default)`, and log it — or, when the recommended option falls in a hard-stop class, stop. Both per `.aidlc/resources/rules/unattended.md`.
42
+
41
43
  **At most five questions stand open at once.** At the limit, answering — or accepting the stated defaults — comes before asking another. The cap counts open questions, not questions asked: a long negotiation is fine, an accumulating pile is not.
@@ -0,0 +1,60 @@
1
+ # The unattended rule
2
+
3
+ This file is the only statement of the rule. Skills point here instead of restating it, so there is no second copy to drift.
4
+
5
+ Unattended mode is on exactly when the environment variable `AIDLC_UNATTENDED` is `1` (`printenv AIDLC_UNATTENDED`). Otherwise every skill behaves as written. Nobody answers in this mode, so every place a skill would stop for a person has one outcome:
6
+
7
+ - **Default and log** — take the named default, log it, carry on.
8
+ - **Hard stop** — log it, park the item, release the claim, end the session.
9
+ - **Release boundary** — the normal end of an unattended run. Not a hard stop, and the item is not parked.
10
+
11
+ A situation no entry below covers is a hard stop. Guessing is what this mode exists to prevent.
12
+
13
+ ## The log
14
+
15
+ Append one entry per default or hard stop to `.aidlc/state/<instance>/unattended-stops.md`: a `## <n>. <title> — <slug>` heading, then **Source:** (skill and section, or rule), **Instruction:** (the exact text), **Decided:** (the default, or "hard stop"), **Why:** (why it is safe, or which hard-stop class). A Question Protocol answer also carries `(unattended default)` in its `[Answer]:` — how a reviewer finds every choice nobody made.
16
+
17
+ ## Hard stop
18
+
19
+ Always a hard stop:
20
+
21
+ 1. Crossing a prohibition in `.aidlc/context/constitution.md`.
22
+ 2. Deleting or overwriting data this session did not create.
23
+ 3. Changing authentication, secrets, permissions or CI tokens, or handling real credentials.
24
+ 4. Growing scope beyond the roadmap item's "What success looks like".
25
+
26
+ To stop:
27
+
28
+ 1. Append the log entry.
29
+ 2. Run `aidlc roadmap park <instance> --reason "<slug>: <one line>"`.
30
+ 3. Run `aidlc release <instance>`.
31
+ 4. End the session. Commit nothing more; try no other route to the same outcome.
32
+
33
+ ## The release boundary
34
+
35
+ When testing completes, write the deployment record's release plan and end the session. Do not push, open a pull request, merge or release: whatever runs the agent owns those, and two actors on one release lane is how two releases collided on 2026-10-01.
36
+
37
+ ## Every known stop
38
+
39
+ Each bullet begins with its one outcome; a condition after it is part of the rule.
40
+
41
+ - `entry-menu` — **default and log**: route to what the prompt names.
42
+ - `instance-name-taken` — **hard stop**: another session's work or an abandoned start, indistinguishable from here.
43
+ - `template-choice` — **default and log**: what the item or prompt names, else `defaults:` in `.aidlc/config.yaml`.
44
+ - `worktree-hand-off` — **default and log**: when the prompt says to continue, continue in the worktree.
45
+ - `roadmap-move-uncommitted` — **default and log**: leave it uncommitted; the caller commits.
46
+ - `roadmap-item-unlinked` — **default and log**: use `aidlc start --roadmap-item`; never move the item by hand.
47
+ - `requirements-input` — **default and log**: read `roadmap-item.md`; with neither it nor an ideation artifact, hard stop.
48
+ - `open-question` — **default and log**: the recommended option, marked `(unattended default)`; if it is a hard-stop class, hard stop — never another option.
49
+ - `requirements-confirmation` — **default and log**: hard stop if the requirements exceed the roadmap item.
50
+ - `design-confirmation` — **default and log**: the same scope test.
51
+ - `phase-end-turn` — **default and log**: continue into the next phase.
52
+ - `fresh-session` — **default and log**: continue; the runner decides where sessions start.
53
+ - `own-change-revert` — **default and log**: reverting this session's own change, after keeping a copy.
54
+ - `generated-output-discard` — **hard stop**: discarding output this session did not write.
55
+ - `sensitive-operation` — **hard stop**: deletions, infrastructure, permissions, credentials — except `own-change-revert`.
56
+ - `shared-state-prune` — **default and log**: it removes only entries whose worktree is gone and branch merged or deleted, and names each; log the names.
57
+ - `commit-incrementally` — **default and log**: on the instance branch only; never `main`, never push.
58
+ - `testing-security` — **hard stop**: production-like environments, real credentials, destructive operations.
59
+ - `platform-unknown` — **default and log**: carry on; the runner sets `AIDLC_AGENT`.
60
+ - `release-boundary` — **release boundary**: completing testing.
@@ -90,7 +90,7 @@ On each lifecycle event — `on-instance-start`, `on-phase-enter`, `on-phase-exi
90
90
 
91
91
  ## Question Protocol
92
92
 
93
- When to ask the user something, how the question is written, and where it is recorded. The rule is in `.aidlc/resources/rules/question-protocol.md`.
93
+ When to ask the user something, how the question is written, and where it is recorded. The rule is in `.aidlc/resources/rules/question-protocol.md`. With nobody there: `.aidlc/resources/rules/unattended.md`.
94
94
 
95
95
  ## Ending a Phase or a Review
96
96
 
@@ -8,11 +8,13 @@ native_mode_hint:
8
8
  claude-code: >-
9
9
  This skill is an interactive entry point, not a phase artifact. Do not
10
10
  enter plan mode. Read lifecycle state, present the menu, and wait for
11
- the user's choice before doing any work.
11
+ the user's choice before doing any work — unless their message already
12
+ says what they want; then route to it directly.
12
13
  copilot: >-
13
14
  This skill is an interactive entry point, not a phase artifact. Stay in the
14
15
  default agent — do not switch to plan mode. Read lifecycle state, present the
15
- menu, and wait for the user's choice before doing any work.
16
+ menu, and wait for the user's choice before doing any work — unless their
17
+ message already says what they want; then route to it directly.
16
18
  ---
17
19
  # AIDLC Entry Point
18
20
 
@@ -176,9 +176,8 @@ When the user asks for a worktree ("create a new worktree for roadmap `<file>`")
176
176
 
177
177
  1. **Find the item** by file name, `id`, or title, in `backlog/` or `inbox/`. Asking for a worktree counts as choosing to skip triage. When more than one item matches, list them and ask which one.
178
178
  2. **Instance name**: the item's file name without its date prefix and extension (the item filed as `20260929-say-what-to-do-next` becomes `say-what-to-do-next`). Template and scope come from the config defaults, unless the item or the user names them.
179
- 3. **Create the instance with** `aidlc start <template> --name <name> --scope <scope> --worktree --non-interactive`. Take the worktree path from the `Worktree:` line it prints. That command creates the branch and the worktree and fires `on-instance-start`; do not repeat any of it by hand.
180
- 4. **Seed the instance inside the worktree** (`<worktree>/.aidlc/state/<name>/`), not the primary checkout. Copy the item into it per step 5 above. Keep the roadmap move (step 6) in the primary checkout, as always.
181
- 5. **Hand off. Do not start the phase in this session.** The work belongs to the new session. End with the exact command that opens it:
179
+ 3. **Create the instance with** `aidlc start <template> --name <name> --scope <scope> --worktree --non-interactive --roadmap-item <item-file>`. Take the worktree path from the `Worktree:` line it prints. That one command creates the branch and the worktree, fires `on-instance-start`, sets the item's `promoted_to`, moves it to `in-progress/` in the primary checkout, and copies it into the instance as `roadmap-item.md` — which is the seeding step 5 above asks for. Do none of it by hand: a hand-made move is the step that got skipped. The move is left uncommitted in the primary checkout; committing it is yours.
180
+ 4. **Hand off. Do not start the phase in this session** — unless the user's own message asks you to continue here, in which case `cd` into the worktree and follow **aidlc-continue** there. Otherwise the work belongs to the new session. End with the exact command that opens it:
182
181
  ```
183
182
  cd <worktree> && claude "/aidlc-continue <name>"
184
183
  ```
@@ -39,7 +39,7 @@ See **The context rule** (`.aidlc/resources/rules/context.md`).
39
39
 
40
40
  > {{glossary:artifact}}
41
41
 
42
- 1. **Gather requirements.** If a Full scope, read the ideation phase's artifact for context (`idea.md` for the feature templates, `research-question.md` for `spike`; `phase-ideation.yaml` names it). Otherwise, ask the user to describe desired behavior. Read the always-read guidance layers from `.aidlc/guidance/index.yaml` — see **The always-read rule** (`.aidlc/resources/rules/always-read.md`) for which layers those are and when to reach for the full `lessons.md`. Read `.aidlc/context/constitution.md` when it exists and apply the constitution rule in `.aidlc/resources/rules/constitution.md`.
42
+ 1. **Gather requirements.** If a Full scope, read the ideation phase's artifact for context (`idea.md` for the feature templates, `research-question.md` for `spike`; `phase-ideation.yaml` names it). At Standard scope, read the roadmap item the instance was promoted from (`roadmap-item.md` in its state directory). Ask the user to describe the desired behaviour only when there is neither. Unattended (`AIDLC_UNATTENDED=1`): no artifact and no item is a hard stop, per `.aidlc/resources/rules/unattended.md`. Read the always-read guidance layers from `.aidlc/guidance/index.yaml` — see **The always-read rule** (`.aidlc/resources/rules/always-read.md`) for which layers those are and when to reach for the full `lessons.md`. Read `.aidlc/context/constitution.md` when it exists and apply the constitution rule in `.aidlc/resources/rules/constitution.md`.
43
43
  2. **Write user stories.** Use the format: "As a [role], I want [capability], so that [benefit]."
44
44
  3. **Define acceptance criteria.** Each criterion must be:
45
45
  - Specific and unambiguous
@@ -78,7 +78,7 @@ When the instance uses the `bugfix` template, this phase produces `reproduction.
78
78
 
79
79
  - `requirements.md` exists with at least one user story and corresponding acceptance criteria
80
80
  - Each acceptance criterion is testable (has an observable pass/fail condition)
81
- - The user has confirmed the requirements are complete for the chosen scope
81
+ - The user has confirmed the requirements are complete for the chosen scope. Unattended (`AIDLC_UNATTENDED=1`): log the confirmation as a default, or hard-stop when the requirements reach beyond the roadmap item, per `.aidlc/resources/rules/unattended.md`.
82
82
 
83
83
  ## Guidance
84
84
 
@@ -66,7 +66,7 @@ transcript. See **The context rule** (`.aidlc/resources/rules/context.md`).
66
66
  - Every knowledge-graph symbol the design builds on was checked against the source
67
67
  - The design addresses all acceptance criteria from `requirements.md`
68
68
  - For templates requiring it: `tasks.md` exists and every active acceptance criterion is claimed by at least one task, or the gap is deliberate
69
- - The user has confirmed the design direction
69
+ - The user has confirmed the design direction. Unattended (`AIDLC_UNATTENDED=1`): log the confirmation as a default, or hard-stop when the design reaches beyond the roadmap item, per `.aidlc/resources/rules/unattended.md`.
70
70
 
71
71
  ## Guidance
72
72
 
@@ -44,7 +44,7 @@ Then the source files that task touches. See **The context rule** (`.aidlc/resou
44
44
  2. **Load guidance.** Read the always-read guidance layers from `.aidlc/guidance/index.yaml` — see **The always-read rule** (`.aidlc/resources/rules/always-read.md`) for which layers those are and when to reach for the full `lessons.md`. Apply their rules during implementation.
45
45
  3. **Execute the task breakdown.** When the instance has a `tasks.md` (produced in Design for full/quick-feature scope), read it and execute tasks in order: complete a task, then mark its checkbox `[x]` as part of the same work unit — never batch checkbox updates for later. A task that should not be done is deferred in place (`- [>] T<n>: <title> (deferred YYYY-MM-DD: <reason>)`) with a dated reason, never skipped silently or deleted; the implementation→testing gate blocks on open tasks. For bugfix scope, create the optional `tasks.md` at implementation start when the fix spans more than one commit-sized unit. For Micro scope, reference the task description and acceptance criteria directly — no task file.
46
46
  4. **Write code.** Follow the design interfaces. Match existing code style (naming, formatting, error handling patterns).
47
- 5. **Handle sensitive operations.** Before executing any of the following, describe the action and wait for explicit user confirmation:
47
+ 5. **Handle sensitive operations.** Before executing any of the following, describe the action and wait for explicit user confirmation (unattended, `AIDLC_UNATTENDED=1`: each is a hard stop except reverting this session's own changes, per `.aidlc/resources/rules/unattended.md`):
48
48
  - File deletions or destructive operations
49
49
  - Infrastructure changes (provisioning, configuration)
50
50
  - Permission or access control modifications
@@ -70,6 +70,8 @@ Then the source files that task touches. See **The context rule** (`.aidlc/resou
70
70
 
71
71
  ## Security Confirmation
72
72
 
73
+ Unattended (`AIDLC_UNATTENDED=1`): nobody can confirm, so everything this section asks to confirm is a hard stop, per `.aidlc/resources/rules/unattended.md`.
74
+
73
75
  Before proceeding with any sensitive operation during implementation:
74
76
  1. Describe what the operation does and what it affects
75
77
  2. State whether it is reversible
@@ -91,6 +91,8 @@ testing phase and record newly introduced advisories as findings.
91
91
 
92
92
  ## Security Confirmation
93
93
 
94
+ Unattended (`AIDLC_UNATTENDED=1`): nobody can confirm, so everything this section asks to confirm is a hard stop, per `.aidlc/resources/rules/unattended.md`.
95
+
94
96
  If testing requires:
95
97
  - Access to production-like environments
96
98
  - Use of real credentials or sensitive data
@@ -102,6 +104,8 @@ You MUST describe the action, confirm it targets a safe environment, and wait fo
102
104
 
103
105
  When exit criteria are met, update `phase-testing.yaml` status to `complete` and append a transition record to `transitions.log`.
104
106
 
107
+ Unattended (`AIDLC_UNATTENDED=1`): this is the release boundary. Write the deployment record's release plan and end the session — no push, pull request, merge or release — per `.aidlc/resources/rules/unattended.md`.
108
+
105
109
  Then end the turn as **The next-steps rule** (`.aidlc/resources/rules/next-steps.md`) says.
106
110
 
107
111
  **Changing a completed phase's artifact.** Do it only through an amendment — append an
@@ -82,6 +82,8 @@ deployment checklist.
82
82
 
83
83
  ## Security Confirmation
84
84
 
85
+ Unattended (`AIDLC_UNATTENDED=1`): nobody can confirm, so everything this section asks to confirm is a hard stop, per `.aidlc/resources/rules/unattended.md`.
86
+
85
87
  Deployment is inherently sensitive. You MUST:
86
88
  1. Confirm the target environment with the user (production vs. staging vs. dev)
87
89
  2. Present the full list of changes being deployed