@rasensio/aidlc-content 1.47.0 → 1.49.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.47.0",
3
+ "version": "1.49.0",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -143,7 +143,7 @@ List each status directory, reading **only frontmatter and the containing direct
143
143
 
144
144
  For a `hold/` item, show whether it is **parked or declined**, with its reason, from the last `history` entry — that entry is in the frontmatter, so this costs nothing extra. An item with no reason recorded is reported as `hold — reason not recorded`, never guessed at: parked and declined are opposite answers, and a wrong one either revives work somebody killed or buries work somebody agreed to.
145
145
 
146
- **`aidlc roadmap next`** is the deterministic answer to "what next?": the `backlog/` item with the lowest `priority` among those whose `depends_on` are all `done`, unranked items last, ties by file name (`--explain` shows the order and what was skipped and why; `--json` for scripts). It is read-only and never promotes — promoting stays a person's decision. `priority` is an ordinary extension field a project declares in `roadmap.item_fields`; a rank, where 1 is first.
146
+ **`aidlc roadmap next`** is the deterministic answer to "what next?": the `backlog/` item with the lowest `priority` among those whose `depends_on` are all `done`, unranked items last, ties by file name (`--explain` shows the order and what was skipped and why; `--json` for scripts). It is read-only and never promotes — promoting stays a person's decision. `priority` is an ordinary extension field a project declares in `roadmap.item_fields`; a rank, where 1 is first. Where it is declared, `--explain` also lists every unranked backlog item, so one sitting last is visible rather than silently last. **`aidlc roadmap rank <item> <n>`** is the one way to change a rank: it puts the item at `n` and renumbers every ranked backlog item 1…k, so ranks stay unique and gap-free.
147
147
 
148
148
  The frontmatter-only rule holds for browsing, which is a list and must stay cheap enough to run over the whole roadmap. **Triage** below is the one flow allowed into the body, and only as far as the executive summary.
149
149
 
@@ -159,6 +159,18 @@ Triage is the one flow that reads into the body, and it reads **the executive su
159
159
 
160
160
  Read `.aidlc/context/constitution.md` when it exists and apply the constitution rule in `.aidlc/resources/rules/constitution.md`: an item that crosses a prohibition is the clearest `hold/` there is, and naming the prohibition turns "not for us" into a reason the submitter can read.
161
161
 
162
+ ### Ranking on the way in
163
+
164
+ When the project declares `priority` in `roadmap.item_fields`, moving an item into `backlog/` includes giving it a rank — otherwise it sorts last, and the order `aidlc roadmap next` and autopilot follow becomes the order nobody chose.
165
+
166
+ 1. Read the current order with `aidlc roadmap next --explain`.
167
+ 2. **Propose** a rank with a one-line reason drawn from the executive summaries — this item against its neighbours, not a score.
168
+ 3. Show where it lands: `aidlc roadmap rank <item> <n> --dry-run` prints the whole order with the item marked.
169
+ 4. Ask once: accept rank `n`, or give another number. One answer settles it.
170
+ 5. Run `aidlc roadmap rank <item> <answer>` without `--dry-run`. Never edit `priority:` by hand — the command is what keeps ranks unique and gap-free.
171
+
172
+ The proposed rank is never written without the person's answer: a rank nobody looked at reads exactly like a decided one. There is no scoring formula; the person decides and the flow only proposes. Projects that do not declare `priority` triage exactly as before, with no rank asked for.
173
+
162
174
  ## Promote
163
175
 
164
176
  Promotion is where the roadmap meets the lifecycle:
@@ -27,6 +27,7 @@ Read only:
27
27
  ideation artifact as input
28
28
  - the always-read guidance layers named in `.aidlc/guidance/index.yaml` (see **The always-read rule** (`.aidlc/resources/rules/always-read.md`))
29
29
  - `.aidlc/context/constitution.md`, when it exists
30
+ - the spec corpus files in `.aidlc/specs/` for the capabilities the change touches — `aidlc spec show` lists them
30
31
 
31
32
  Not the ideation *conversation* — the artifact is what it was written for.
32
33
  See **The context rule** (`.aidlc/resources/rules/context.md`).
@@ -55,7 +56,8 @@ See **The context rule** (`.aidlc/resources/rules/context.md`).
55
56
  A criterion that is not a behaviour — a performance budget, a docs change, a file that must exist — stays a plain sentence. A plain criterion is valid: the gate checks the ID, never the shape.
56
57
  4. **Set scope boundaries.** Explicitly state what is NOT included.
57
58
  5. **Non-functional requirements.** Address performance, security, accessibility, and compatibility where relevant.
58
- 6. **For open decisions**: When a decision would change what `requirements.md` says, ask it through the **Question Protocol** (`.aidlc/resources/rules/question-protocol.md`) — questions for this phase go to `.aidlc/state/<instance>/requirements-questions.md`. Prefer drafting `requirements.md` early with the unresolved points marked as explicit decision blocks: users decide better reacting to a concrete draft than answering abstract questions. Fold each answer into the draft and leave the question file as the record of what was decided and why.
59
+ 6. **Write the change as a spec delta.** `.aidlc/specs/<capability>.md` says what the system does today. Read the files your change touches, then end `requirements.md` with a `## Spec delta` section: one `### ADDED <capability>: <requirement name>`, `### MODIFIED …` or `### REMOVED …` block per change. ADDED and MODIFIED blocks hold the requirement's full new text, written as what the system does. MODIFIED and REMOVED blocks start with `Base: <revision>`, copied from `aidlc spec show <capability>`. Capabilities are lowercase kebab-case names; a new one is created by its first ADDED block. Run `aidlc spec fold <instance> --dry-run` before the phase closes — it reports every error and conflict, and the same fold runs at completion, where a conflict blocks it. Skip the section when the change alters no lasting behaviour, as most bugfixes do not.
60
+ 7. **For open decisions**: When a decision would change what `requirements.md` says, ask it through the **Question Protocol** (`.aidlc/resources/rules/question-protocol.md`) — questions for this phase go to `.aidlc/state/<instance>/requirements-questions.md`. Prefer drafting `requirements.md` early with the unresolved points marked as explicit decision blocks: users decide better reacting to a concrete draft than answering abstract questions. Fold each answer into the draft and leave the question file as the record of what was decided and why.
59
61
 
60
62
  ## Bugfix Reproduction (bugfix template)
61
63
 
@@ -26,6 +26,9 @@ Read only:
26
26
  - the always-read guidance layers named in `.aidlc/guidance/index.yaml` (see **The always-read rule** (`.aidlc/resources/rules/always-read.md`))
27
27
  - `.aidlc/context/architecture.md` and `style-guide.md`
28
28
  - `.aidlc/context/constitution.md`, when it exists
29
+ - the spec corpus files in `.aidlc/specs/` named by `requirements.md`'s `## Spec delta` section —
30
+ the current spec, which is what the design is built against. Not a past instance's
31
+ `requirements.md`: it describes a change, and later instances may have changed it again.
29
32
 
30
33
  The seams the requirements touch are then read from the *source*, as step 3 of the
31
34
  instructions says — a handful of files, not a survey, and not the previous phase's