@tacuchi/agent-workflow-cli 16.0.0 → 16.2.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.
@@ -45,7 +45,7 @@ ${renderOriginSection(values.origin)}
45
45
  ${values.type}
46
46
 
47
47
  ## Success criteria
48
- <!-- Verification-first done-condition, seeded BEFORE executing: falsifiable [ ] items (tests for code, a by-inspection rubric for analysis/design). The loop persists until all are green. -->
48
+ <!-- Verification-first done-condition, seeded BEFORE executing: falsifiable [ ] items (tests for code, a by-inspection rubric for analysis/design). The loop persists until all are green and flips each to [x] at the convergence gate; replace this comment when filling. -->
49
49
  - [ ]
50
50
  `;
51
51
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tacuchi/agent-workflow-cli",
3
- "version": "16.0.0",
3
+ "version": "16.2.0",
4
4
  "description": "Agnostic runtime CLI for AI development workflows — a stages + loops + artifacts harness. Bundles the universal `w` skill set under `skills/w/` (slash commands `/w:*`: spec-new/spec-refine, plan-new/plan-exec, quick, workspace-init, export-*); `self install --target <host>` copies SKILL + commands + hooks into the host. Pluggable capability skills via `.workflow/skills.toml`. Multi-empresa parametrization via `profile.json` cascade. Namespace auto-detected from any `.<ns>/sessions/` dir in CWD; default `workflow`.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -43,7 +43,7 @@ Sessions are created by the loops as needed — **one session per run**. The ses
43
43
 
44
44
  ## Common artifacts (any session)
45
45
 
46
- `SESSION` (descriptor: Objective / Origin / Type / **Success criteria** = verification-first done-condition, formerly research-only) · `CHECKPOINT` (resume) · `SCRIPTS.sql` (read-only queries **executable** + DDL/DML migrations **deliverable**, not executed) · `TASKS` · `BACKLOG` (only when there's something to defer).
46
+ `SESSION` (descriptor: Objective / Origin / Type / **Success criteria** the verification-first done-condition; the convergence gate flips them green) · `CHECKPOINT` (resume — **fixed headings, updated in place, never duplicated**; see its contract) · `SCRIPTS.sql` (read-only queries **executable** + DDL/DML migrations **deliverable**, not executed) · `TASKS` · `BACKLOG` (only when there's something to defer).
47
47
 
48
48
  ---
49
49
 
@@ -1,23 +1,25 @@
1
1
  # CHECKPOINT.md — session resume state (common)
2
2
 
3
3
  > What it is: the live resume state of a session — lets the loop resume exactly where it left off.
4
- > **Live log (artifact-first):** `Pending`/`Next` = the intent (what is about to be done, seeded BEFORE executing); `Completed` = the result (AFTER). Updated at every gap/phase boundary, not only on `Compactar`/`Cerrar`.
5
- > Owned by: **every session** (`refine` · `exec` · `quick`). Persisted **always** on close/compact (the resume key — invariant #6), unlike `BACKLOG` which is written only when something is deferred.
4
+ > **Live log (artifact-first):** `Pending / Next` = the intent (what is about to be done, seeded BEFORE executing); `Completed` = the result (AFTER). Updated at every gap/phase boundary, not only on `Compactar`/`Cerrar`.
5
+ > Owned by: **every session** (`refine` · `exec` · `quick`). Persisted **always** on close/compact (the resume key), unlike `BACKLOG`, which is written only when something is deferred.
6
6
 
7
- ## Activity
8
- Summary of the activity done so far.
7
+ ## Contract (hard rules)
9
8
 
10
- ## Critical context
11
- Key decisions / references to other artifacts or documents needed to continue.
9
+ 1. **Fixed headings, exactly these three**: `## Completed` · `## Pending / Next` · `## Open questions` (plus the optional ones below).
10
+ 2. **Update in place NEVER duplicate a section.** Every update edits the existing section's content; appending a second `## <same heading>` is a contract violation.
11
+ 3. New entries go at the top of their section (most recent first) or extend an existing bullet — each section stays a single block.
12
12
 
13
13
  ## Completed
14
- Completed phases/tasks (ref: plan-doc `docs/plans/PPP-plan.md`; or `TASKS.md` if the session created its own breakdown).
14
+ What already happened: finished phases/tasks/gaps with their outcome (ref: plan-doc `docs/plans/PPP-plan.md`, the spec's gaps, or `TASKS.md` if the session created its own split). Fold the key context a resume needs (settled decisions, discoveries) into these bullets.
15
15
 
16
- ## Excluded
17
- Excluded phases/tasks (ref: plan-doc; or `TASKS.md`) with reason.
16
+ ## Pending / Next
17
+ The intent: what remains and what comes immediately next (seeded BEFORE executing — artifact-first). A resume starts here.
18
18
 
19
- ## Pending
20
- Pending phases/tasks (ref: plan-doc; or `TASKS.md`) still to do.
19
+ ## Open questions
20
+ Live doubts not yet resolved (ideally "None"). Deferred ones move to the session's `BACKLOG` or the flow doc's `## Open questions`.
21
21
 
22
- ## Next
23
- Next phase/task (ref: plan-doc; or `TASKS.md`) to continue from on resume.
22
+ ### Optional sections
23
+
24
+ - `## Excluded` — phases/tasks explicitly excluded, with reason (the `aw status` dashboard reads it for the discarded list).
25
+ - The `checkpoint-write` hook (PreCompact/SessionEnd) may write a **machine snapshot** with its own headings (`Last action`, `Next step`, `Files touched`, `Refs`, …) and `_[AI: …]_` placeholders — complete the placeholders; the loop-owned contract above still governs what the loop writes.
@@ -21,4 +21,4 @@ Session type, **set by the parent loop** (not the user). Authoritative catalog:
21
21
  > `research` is **not** a session type the loops create. Research is an **inline** activity: ANALYSIS-FILE / CONCLUSIONS are written into whatever session is active (`refine`/`exec`/`quick`) when it does investigation.
22
22
 
23
23
  ## Success criteria
24
- The run's **done-condition**, seeded at session creation: a checklist `[ ]` of **falsifiable** items. Executable deliverable → runnable tests/checks; non-executable → inspection rubric (the human ratifies it if subjective). Spec/plan sessions may **reference** the doc's acceptance criteria instead of duplicating them. Full doctrine: [`../../loops/CHASSIS.md`](../../loops/CHASSIS.md) § *Verification-first*.
24
+ The run's **done-condition**, seeded at session creation: a checklist `[ ]` of **falsifiable** items. Executable deliverable → runnable tests/checks; non-executable → inspection rubric (the human ratifies it if subjective). Spec/plan sessions may **reference** the doc's acceptance criteria instead of duplicating them. The convergence gate **flips** each criterion to `- [x]` as it turns green — on close the checklist reflects the real final state. Full doctrine: [`../../loops/CHASSIS.md`](../../loops/CHASSIS.md) § *Verification-first*.
@@ -11,7 +11,7 @@ allowed-tools:
11
11
 
12
12
  # fix-git — merge-conflict resolver (transversal)
13
13
 
14
- Single-pass, **no loop, no session**, **never writes `docs/`**. **Transversal** command (belongs to no SPEC / PLAN / QUICK flow). **Workspace-agnostic**: operates on any git repo — the given `<source>` (path or alias), or the cwd — without requiring `.workflow/`.
14
+ Single-pass, **no loop, no session**, **never writes `docs/`**. **Transversal** command (belongs to no SPEC / PLAN / QUICK flow). **Workspace-agnostic**: operates on any git repo — the given `<source>` (path or alias), or the cwd — without requiring `.workflow/`. Everything user-facing (questions, proposals, the report) goes in the **user's language**.
15
15
 
16
16
  ## Run
17
17
 
@@ -14,6 +14,13 @@ allowed-tools:
14
14
 
15
15
  Starts or resumes `plan-exec-loop` (Layer 2), which executes the real work phase by phase. The plan (`docs/plans/PPP-plan-<slug>.md`) is a living document the loop keeps updated (phase and task state).
16
16
 
17
+ > **Hard floor — applies even if you read nothing beyond this file:**
18
+ >
19
+ > 1. **Session first** — create/resume the run's session before touching code: `aw session-create --type exec --name <slug>-plan-exec`; keep its `CHECKPOINT.md` updated (`## Completed` · `## Pending / Next` · `## Open questions`).
20
+ > 2. **Git/DB** — verify each source's expected branch before editing (`aw check-branch`); commits are **proposed**, never executed without approval; **never** `push`/`--amend`/`--no-verify`; never execute DML/DDL (SQL goes to the session's `SCRIPTS.sql`).
21
+ > 3. **Ask, don't invent** — user-dependent decisions go through questions with a recommended option first (≤3 content questions + the `flow` control `Compactar`/`Cerrar`).
22
+ > 4. **Language** — everything user-facing (questions, option labels, reports) goes in the **user's language**.
23
+
17
24
  ## Run the loop
18
25
 
19
26
  `plan-exec-loop` is **not** a skill invocable by name — it is this command's operating manual (a sibling doc in the bundle). **Load it and execute it end to end**:
@@ -14,6 +14,13 @@ allowed-tools:
14
14
 
15
15
  SPEC → PLAN bridge. Turns the "what" (refined spec) into the "how" (plan). Delegates to `plan-new-loop` (Layer 2).
16
16
 
17
+ > **Hard floor — applies even if you read nothing beyond this file:**
18
+ >
19
+ > 1. **Session first** — create/resume the run's session before working: `aw session-create --type refine --name <slug>-plan-new`; keep its `CHECKPOINT.md` updated (`## Completed` · `## Pending / Next` · `## Open questions`).
20
+ > 2. **Ask, don't invent** — user-dependent decisions go through questions with a recommended option first (≤3 content questions + the `flow` control `Compactar`/`Cerrar`).
21
+ > 3. **Write boundary** — this flow writes only `docs/plans/…` (with confirmation if it exists); nothing else lands in `docs/`.
22
+ > 4. **Language** — everything user-facing (questions, option labels, the plan's content) goes in the **user's language**.
23
+
17
24
  ## Input resolution
18
25
 
19
26
  The skill evaluates `$ARGUMENTS` (specs live in place — `docs/specs/NNN-spec-<slug>.md`; locate via the `docs/specs/NNN-spec-*.md` glob or the exact path):
@@ -16,6 +16,13 @@ An **auxiliary, NOT mandatory** step of the PLAN flow: `spec-refine`'s twin, but
16
16
 
17
17
  This command does not refine the plan itself: it delegates to `plan-refine-loop` (Layer 2), which iterates, closes gaps and edits the plan **in place**.
18
18
 
19
+ > **Hard floor — applies even if you read nothing beyond this file:**
20
+ >
21
+ > 1. **Session first** — create/resume the run's session before working: `aw session-create --type refine --name <slug>-plan-refine`; keep its `CHECKPOINT.md` updated (`## Completed` · `## Pending / Next` · `## Open questions`).
22
+ > 2. **Ask, don't invent** — user-dependent decisions go through questions with a recommended option first (≤3 content questions + the `flow` control `Compactar`/`Cerrar`).
23
+ > 3. **Write boundary** — this flow edits only `docs/plans/…` (in place, with confirmation); nothing else lands in `docs/`.
24
+ > 4. **Language** — everything user-facing (questions, option labels, the plan's content) goes in the **user's language**.
25
+
19
26
  > **Not mandatory.** `plan-exec` runs **any** plan, refined or not — no gate requires passing through here. Use it only when the plan needs adjustments before executing.
20
27
 
21
28
  ## Input resolution
@@ -14,6 +14,13 @@ allowed-tools:
14
14
 
15
15
  For scoped, direct tasks that do not justify going through SPEC or PLAN. Creates a light session (traceability + resume) — unless the **entry size gate** escalates to SPEC before starting. Delegates to `quick-loop` (Layer 2).
16
16
 
17
+ > **Hard floor — applies even if you read nothing beyond this file:**
18
+ >
19
+ > 1. **Size gate BEFORE any session** — if the objective exceeds a quick (≥2 clear signals: needs architecture · ≥2 sources · several deliverables · large feature/refactor · ambiguous requirements), ask first with these verbatim options: `Cambiar a SPEC` *(recommended)* · `Seguir en quick` · `Recortar alcance`. If it escalates, create **no** quick session.
20
+ > 2. **Session first** — otherwise, before touching code, create/resume the run's session: `aw session-create --type quick --name <slug>-quick`; keep its `CHECKPOINT.md` updated (`## Completed` · `## Pending / Next` · `## Open questions`).
21
+ > 3. **Git/DB** — commits are **proposed**, never executed without approval; **never** `push`/`--amend`/`--no-verify`; never execute DML/DDL (SQL goes to the session's `SCRIPTS.sql`).
22
+ > 4. **Language** — everything user-facing (questions, option labels, reports) goes in the **user's language**.
23
+
17
24
  ## Run the loop
18
25
 
19
26
  `quick-loop` is **not** a skill invocable by name — it is this command's operating manual (a sibling doc in the bundle). **Load it and execute it end to end**:
@@ -61,6 +61,7 @@ Pending doubts. ← the spec-refine-loop closes them.
61
61
 
62
62
  **Filling notes:**
63
63
 
64
+ - The draft's **content** is written in the **user's language** (the schema headings stay as-is).
64
65
  - No `Type` field — `plan-new` infers the how.
65
66
  - `Scope` always carries `Out` (what stays out).
66
67
  - **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.
@@ -14,6 +14,13 @@ allowed-tools:
14
14
 
15
15
  This command does not refine the spec itself: it delegates to `spec-refine-loop` (Layer 2), which iterates, closes gaps and produces the refined spec.
16
16
 
17
+ > **Hard floor — applies even if you read nothing beyond this file:**
18
+ >
19
+ > 1. **Session first** — create/resume the run's session before working: `aw session-create --type refine --name <slug>-spec-refine`; keep its `CHECKPOINT.md` updated (`## Completed` · `## Pending / Next` · `## Open questions`).
20
+ > 2. **Ask, don't invent** — user-dependent decisions go through questions with a recommended option first (≤3 content questions + the `flow` control `Compactar`/`Cerrar`).
21
+ > 3. **Write boundary** — this flow edits only `docs/specs/…` (in place, with confirmation); nothing else lands in `docs/`.
22
+ > 4. **Language** — everything user-facing (questions, option labels, the doc's content) goes in the **user's language**.
23
+
17
24
  ## Run the loop
18
25
 
19
26
  `spec-refine-loop` is **not** a skill invocable by name — it is this command's operating manual (a sibling doc in the bundle). **Load it and execute it end to end**:
@@ -60,6 +60,8 @@ The loop works **artifact-first**: the artifact is **seeded before** executing a
60
60
 
61
61
  > The artifact expresses the **intent** (Pending/Next, before) and then the **result** (Completed/DECISION, after), at **every** gap/phase boundary — not only on `Compactar`/`Cerrar`. Session artifacts are the run's live log; the spec/plan is the **guiding base**.
62
62
 
63
+ > **Fixed form (hard rule):** an artifact keeps its template's `##` headings **exactly** and is updated **in place** — appending a **duplicate heading** is a contract violation. When a scaffolded section is filled, its `<!-- … -->` guidance comment is **replaced** by the real content. Canonical headings per artifact: its template under [`../artifacts/`](../artifacts/) (CHECKPOINT contract: `Completed` · `Pending / Next` · `Open questions`).
64
+
63
65
  ## Gap-driven convergent engine
64
66
 
65
67
  The common cycle — each heir instantiates it in its `## Sequence` with its own gap taxonomy:
@@ -144,7 +146,7 @@ Resume **keys off the `CHECKPOINT`** of the run's session, not the existence of
144
146
 
145
147
  ## Convergence / exit
146
148
 
147
- - **No material gaps** → **convergence gate** (read-only) = **`Success criteria` green** (*verification-first*). Whatever fails **comes back as a gap**; if it passes → the loop offers its closing action. The heirs are **instances** of the same gate: `spec-refine` = analyze gate, `plan-new` and `plan-refine` = plan coherence, `plan-exec` = final validation, `quick` = proportional spot validation.
149
+ - **No material gaps** → **convergence gate** (read-only) = **`Success criteria` green** (*verification-first*). Whatever fails **comes back as a gap**; if it passes → the loop **flips the green criteria** in `SESSION.md` (`- [ ]` → `- [x]`) and offers its closing action. The checklist must reflect the real final state: a criterion left unchecked at `finalize` needs an explicit reason (`Open questions`/`BACKLOG`). The heirs are **instances** of the same gate: `spec-refine` = analyze gate, `plan-new` and `plan-refine` = plan coherence, `plan-exec` = final validation, `quick` = proportional spot validation.
148
150
  - `Cerrar` (the `flow` control, at any time) → `finalize`. **`finalize` always persists `CHECKPOINT.md`** (resumable) and, **only if something was deferred/follow-up**, writes `BACKLOG.md` (close reason + the deferred items); closes the session and reports. Progress survives even without a prior `Compactar`.
149
151
 
150
152
  ## docs/ boundary — no auto-export (hard rule)