@tacuchi/agent-workflow-cli 20.14.2 → 20.16.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.
Files changed (35) hide show
  1. package/dist/application/history-table.js +106 -13
  2. package/dist/application/history-table.js.map +1 -1
  3. package/dist/application/history-update-service.js +5 -9
  4. package/dist/application/history-update-service.js.map +1 -1
  5. package/dist/application/session-resolver.js +16 -1
  6. package/dist/application/session-resolver.js.map +1 -1
  7. package/dist/application/status-service.js +1 -2
  8. package/dist/application/status-service.js.map +1 -1
  9. package/dist/application/templates/session.js +13 -5
  10. package/dist/application/templates/session.js.map +1 -1
  11. package/dist/cli/commands/history-update.js +3 -4
  12. package/dist/cli/commands/history-update.js.map +1 -1
  13. package/package.json +1 -1
  14. package/skills/w/SKILL.md +3 -1
  15. package/skills/w/artifacts/README.md +2 -2
  16. package/skills/w/artifacts/artifacts-core/BACKLOG.md +1 -4
  17. package/skills/w/artifacts/artifacts-core/CHECKPOINT.md +2 -2
  18. package/skills/w/artifacts/artifacts-core/SESSION.md +2 -5
  19. package/skills/w/commands/export-diagrams.md +2 -2
  20. package/skills/w/commands/export-manuals.md +1 -1
  21. package/skills/w/commands/plan-exec.md +1 -1
  22. package/skills/w/commands/plan-new.md +4 -4
  23. package/skills/w/commands/plan-refine.md +4 -4
  24. package/skills/w/commands/quick.md +1 -1
  25. package/skills/w/commands/spec-new.md +2 -2
  26. package/skills/w/commands/spec-refine.md +3 -3
  27. package/skills/w/exports/README.md +2 -2
  28. package/skills/w/exports/export-diagrams/EXPORT.md +5 -5
  29. package/skills/w/exports/export-manuals/EXPORT.md +4 -4
  30. package/skills/w/loops/CHASSIS.md +3 -3
  31. package/skills/w/loops/CODE-POLICIES.md +2 -1
  32. package/skills/w/loops/plan-exec-loop/LOOP.md +8 -6
  33. package/skills/w/loops/plan-new-loop/LOOP.md +22 -21
  34. package/skills/w/loops/plan-refine-loop/LOOP.md +13 -15
  35. package/skills/w/loops/spec-refine-loop/LOOP.md +19 -18
@@ -5,8 +5,8 @@ description: >-
5
5
  until it is unambiguous. Heir of the chassis (loops/CHASSIS.md). Deltas:
6
6
  spec gap taxonomy, analyze gate, ideation gate (consented brainstorming,
7
7
  optional web-research), ## UI spec section via the ui-design
8
- capability, and adds Refinement decisions + Q&A traceability — the refined
9
- mark plan-new detects. Started by /w:spec-refine (or the live escalation
8
+ capability, and adds Refinement decisions — the refined mark plan-new
9
+ detects. Started by /w:spec-refine (or the live escalation
10
10
  from quick-loop); resumable via CHECKPOINT and re-runnable on demand.
11
11
  Invoke to refine/disambiguate a specification before planning.
12
12
  ---
@@ -34,7 +34,7 @@ It is also started by the **live escalation from `quick-loop`** (entry gate or m
34
34
  - `docs/specs/NNN-spec*.md` (glob — locates the spec by number; also catches the legacy `NNN-spec.md`), **or** the exact path passed as the command argument. **Always the spec itself**: this loop edits it in place; there is no separate "refined" file.
35
35
 
36
36
  ## Writes
37
- Updates `docs/specs/NNN-spec-<slug>.md` **in place** (when the user picks `Guardar especificación refinada`): completes sections and **adds** `## Refinement decisions` + `## Q&A traceability`, closing `Open questions` as they get resolved. Since it overwrites an existing doc, it asks the user's **confirmation**.
37
+ Updates `docs/specs/NNN-spec-<slug>.md` **in place** (when the user picks `Guardar especificación refinada`): completes sections and **adds** `## Refinement decisions`, closing `Open questions` as they get resolved. Since it overwrites an existing doc, it asks the user's **confirmation**.
38
38
 
39
39
  > **Boundary invariant:** this loop writes **only** into `docs/specs`. It never graduates/exports other artifacts to `docs/` — that is separate `export-*` work (chassis § *docs/ boundary*).
40
40
 
@@ -62,7 +62,7 @@ Other transversal capabilities the engine always uses: `research` (**inline**
62
62
 
63
63
  ## Deliverable schema (the spec, edited in place)
64
64
 
65
- The spec is completed **in place**: the draft's sections get **completed** + two new ones are **added** (`Refinement decisions`, `Q&A traceability`). NO separate file is created.
65
+ The spec is completed **in place**: the draft's sections get **completed** + one new one is **added** (`Refinement decisions`). NO separate file is created.
66
66
 
67
67
  ```markdown
68
68
  # Spec NNN — <slug>
@@ -74,23 +74,24 @@ The spec is completed **in place**: the draft's sections get **completed** + two
74
74
  ## Context (complete)
75
75
  ## Scope (clear In / Out)
76
76
  ## Acceptance criteria (testable, - [ ]; EARS style; behavioral ones expand in ## Scenarios)
77
- ## Scenarios (opt. — GIVEN/WHEN/THEN/AND blocks; each traces to ≥1 criterion)
77
+ ## Scenarios (opt. — GIVEN/WHEN/THEN/AND blocks; each traces to ≥1 criterion.
78
+ Only when it adds GIVEN setup or edge semantics the criterion
79
+ does not capture — NEVER a 1:1 restatement of a criterion)
78
80
  ## Assumptions (declared)
79
81
 
80
82
  ## UI spec (opt. — if UI is involved; via the ui-design capability / ui-spec skill)
81
83
  Structured Markdown description (screens → regions/components). See [`ui-spec`](../../roles/ui-spec/ROLE.md).
82
84
 
83
- ## Refinement decisions ← NEW (ADDED)
85
+ ## Refinement decisions ← NEW (ADDED) — the run's single trace
84
86
  What was defined while refining and why. Includes what inline research
85
- resolved (ref. the session's CONCLUSIONS) and the ideation verdicts (§ Ideation gate).
87
+ resolved (ref. the session's CONCLUSIONS), the ideation verdicts (§ Ideation
88
+ gate) and every doubt asked to the human, as entries
89
+ `Q: <question> → <chosen answer> — <rationale>`.
86
90
 
87
- ## Q&A traceability ← NEW (ADDED)
88
- Every doubt asked to the human + the chosen answer.
89
-
90
- ## Open questions (ideally "None"; whatever remains is deferred)
91
+ ## Open questions (whatever remains is deferred; OMIT the section when empty)
91
92
  ```
92
93
 
93
- > **Refined mark (contract with PLAN):** the presence of `## Refinement decisions` + `## Q&A traceability` distinguishes a refined spec from a draft — plan-new detects it this way, NOT by filename; without those 2 sections plan-new soft-suggests spec-refine.
94
+ > **Refined mark (contract with PLAN):** the presence of `## Refinement decisions` distinguishes a refined spec from a draft — plan-new detects it this way, NOT by filename; without that section plan-new soft-suggests spec-refine. *(Legacy specs also carry `## Q&A traceability` — they still count as refined; new runs never write it.)*
94
95
 
95
96
  > **Acceptance criteria = static testable criteria** (the "what"): plan-exec validates them, but progress is tracked in the PLAN (its Tasks), never by ticking these `- [ ]` in the spec; the spec never mutates by execution, only by a re-refine.
96
97
 
@@ -104,7 +105,7 @@ Every doubt asked to the human + the chosen answer.
104
105
  | Incomplete context | systems/components unidentified | **research** |
105
106
  | Blurry scope | `Out` missing, or In/Out overlap | **human** |
106
107
  | Untestable criteria | acceptance not verifiable | **human** (derive + confirm — often as a `### Scenario`) |
107
- | Scenario missing | behavioral criterion without a `### Scenario` | the AI drafts GIVEN/WHEN/THEN + **human** confirms |
108
+ | Scenario missing | behavioral criterion whose behavior is NOT captured by its WHEN/THEN (needs GIVEN setup or edge semantics; a criterion a scenario would only restate 1:1 is not a gap) | the AI drafts GIVEN/WHEN/THEN + **human** confirms |
108
109
  | Open questions pending | explicit doubts | by nature |
109
110
  | Hidden assumptions | the spec assumes unstated things | **research** validates / **human** confirms |
110
111
  | Internal contradiction | sections contradict each other | **human** |
@@ -154,7 +155,7 @@ spec-refine-loop(spec):
154
155
  switch(flow):
155
156
  Compactar → write CHECKPOINT (refine_session) ; compact(harness) ; continue
156
157
  Cerrar → goto finalize
157
- work = integrate(work, ans) # → Q&A traceability / Open questions
158
+ work = integrate(work, ans) # → Refinement decisions (Q: entries) / Open questions
158
159
  ideation offer accepted → run the round NOW, then its verdicts as a NEW ≤3+flow batch (§ Ideation gate) → integrate
159
160
  ideation offer declined → mark that gap exhausted # anti re-fire; on-demand entry stays open
160
161
  # no material gaps → analyze gate = Success criteria green (read-only) before offering Guardar:
@@ -162,7 +163,7 @@ spec-refine-loop(spec):
162
163
  if issues: gaps += issues ; continue # findings come back into the loop as gaps
163
164
  ans = structured_choice(content: [Guardar refinada, Preguntar algo más],
164
165
  flow: [Compactar, Cerrar])
165
- Guardar → edit_in_place_with_confirm(spec) # completes sections + inserts UI spec/Refinement decisions/Q&A ; goto finalize
166
+ Guardar → edit_in_place_with_confirm(spec) # completes sections + inserts UI spec/Refinement decisions ; goto finalize
166
167
  Preguntar algo más → continue
167
168
  flow Compactar/Cerrar → handle the same way
168
169
  finalize:
@@ -175,12 +176,12 @@ finalize:
175
176
 
176
177
  Full mechanism (3 cases, `Compactar`, re-run on demand with `--reopen`) in the chassis (§ *Compact / resume*). SPEC keys:
177
178
 
178
- - The **prior-work mark** is the presence of `## Refinement decisions` + `## Q&A traceability` in the spec (the *refined mark*, see *Deliverable schema*).
179
+ - The **prior-work mark** is the presence of `## Refinement decisions` in the spec (the *refined mark*, see *Deliverable schema*; legacy specs may also carry `## Q&A traceability`).
179
180
  - Re-refining on demand is a **first-class operation** while the flow stays in SPEC (new requirements, scope changes, after re-reading the spec): it always reads the **spec itself**, incremental re-refinement; on `Guardar`, edits in place with confirmation.
180
181
 
181
182
  ## Convergence / exit
182
183
 
183
- - **No material gaps** → **analyze gate** (read-only) = **`Success criteria` green** (*verification-first*; the SPEC instance of the chassis convergence gate): every acceptance criterion traces to the `Requirement`, no internal contradictions, coherent `Scope` In/Out, `Open questions` closed or explicitly deferred. **Minimality** — no gold-plating: every criterion and scope item earns its place (chassis § *Minimality*); speculative scope is cut or deferred. Scenarios must trace to ≥1 criterion — and behavioral criteria to 1 scenario — without contradicting `Scope`. Whatever fails **comes back as a gap**; if it passes → offer `Guardar especificación refinada`.
184
+ - **No material gaps** → **analyze gate** (read-only) = **`Success criteria` green** (*verification-first*; the SPEC instance of the chassis convergence gate): every acceptance criterion traces to the `Requirement`, no internal contradictions, coherent `Scope` In/Out, `Open questions` closed or explicitly deferred. **Minimality** — no gold-plating: every criterion and scope item earns its place (chassis § *Minimality*); speculative scope is cut or deferred. Scenarios must trace to ≥1 criterion — and add GIVEN setup or edge semantics beyond it (a 1:1 restatement of a criterion is gold-plating: cut it) — without contradicting `Scope`. Whatever fails **comes back as a gap**; if it passes → offer `Guardar especificación refinada`.
184
185
  - `Guardar` → `edit_in_place_with_confirm(spec)` and `finalize`.
185
186
  - `Cerrar` → the chassis `finalize` (always persists `CHECKPOINT`; `BACKLOG` **only if** something is deferred — here: close reason + deferred `Open questions`).
186
187
 
@@ -188,6 +189,6 @@ Full mechanism (3 cases, `Compactar`, re-run on demand with `--reopen`) in the c
188
189
 
189
190
  - Resolved via **inline research** → the spec's `## Refinement decisions` (+ ref to the session's `CONCLUSIONS`).
190
191
  - Resolved via **ideation** → per verdict (§ *Ideation gate*): `Adoptar` → the spec's sections + `## Refinement decisions` · `Descartar` → there · `Aparcar` → `## Open questions`.
191
- - Resolved via **human** → the spec's `## Q&A traceability`.
192
+ - Resolved via **human** → the same `## Refinement decisions`, as a `Q: <question> → <chosen answer> — <rationale>` entry.
192
193
  - Resolved via the **`ui-design` capability** (UI gap) → the spec's `## UI spec` section.
193
194
  - **Inconclusive or unresolved research** → the spec's `## Open questions` (deferred) + the refine session's `BACKLOG.md` (only if something is deferred).