@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.
- package/dist/application/history-table.js +106 -13
- package/dist/application/history-table.js.map +1 -1
- package/dist/application/history-update-service.js +5 -9
- package/dist/application/history-update-service.js.map +1 -1
- package/dist/application/session-resolver.js +16 -1
- package/dist/application/session-resolver.js.map +1 -1
- package/dist/application/status-service.js +1 -2
- package/dist/application/status-service.js.map +1 -1
- package/dist/application/templates/session.js +13 -5
- package/dist/application/templates/session.js.map +1 -1
- package/dist/cli/commands/history-update.js +3 -4
- package/dist/cli/commands/history-update.js.map +1 -1
- package/package.json +1 -1
- package/skills/w/SKILL.md +3 -1
- package/skills/w/artifacts/README.md +2 -2
- package/skills/w/artifacts/artifacts-core/BACKLOG.md +1 -4
- package/skills/w/artifacts/artifacts-core/CHECKPOINT.md +2 -2
- package/skills/w/artifacts/artifacts-core/SESSION.md +2 -5
- package/skills/w/commands/export-diagrams.md +2 -2
- package/skills/w/commands/export-manuals.md +1 -1
- package/skills/w/commands/plan-exec.md +1 -1
- package/skills/w/commands/plan-new.md +4 -4
- package/skills/w/commands/plan-refine.md +4 -4
- package/skills/w/commands/quick.md +1 -1
- package/skills/w/commands/spec-new.md +2 -2
- package/skills/w/commands/spec-refine.md +3 -3
- package/skills/w/exports/README.md +2 -2
- package/skills/w/exports/export-diagrams/EXPORT.md +5 -5
- package/skills/w/exports/export-manuals/EXPORT.md +4 -4
- package/skills/w/loops/CHASSIS.md +3 -3
- package/skills/w/loops/CODE-POLICIES.md +2 -1
- package/skills/w/loops/plan-exec-loop/LOOP.md +8 -6
- package/skills/w/loops/plan-new-loop/LOOP.md +22 -21
- package/skills/w/loops/plan-refine-loop/LOOP.md +13 -15
- 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
|
|
9
|
-
|
|
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
|
|
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** +
|
|
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)
|
|
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
|
-
##
|
|
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`
|
|
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
|
|
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
|
|
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
|
|
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`
|
|
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
|
|
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
|
|
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).
|