@tacuchi/agent-workflow-cli 17.1.0 → 19.0.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/README.md +11 -11
- package/dist/application/dev-only-services.d.ts +9 -1
- package/dist/application/dev-only-services.d.ts.map +1 -1
- package/dist/application/dev-only-services.js +12 -3
- package/dist/application/dev-only-services.js.map +1 -1
- package/dist/application/mcp-host-writer.d.ts.map +1 -1
- package/dist/application/mcp-host-writer.js +5 -37
- package/dist/application/mcp-host-writer.js.map +1 -1
- package/dist/application/multiroot/paths.d.ts +6 -0
- package/dist/application/multiroot/paths.d.ts.map +1 -1
- package/dist/application/multiroot/paths.js +32 -1
- package/dist/application/multiroot/paths.js.map +1 -1
- package/dist/application/project-tab-data.d.ts.map +1 -1
- package/dist/application/project-tab-data.js +22 -6
- package/dist/application/project-tab-data.js.map +1 -1
- package/dist/application/release-data/bundles.d.ts +18 -1
- package/dist/application/release-data/bundles.d.ts.map +1 -1
- package/dist/application/release-data/bundles.js +64 -11
- package/dist/application/release-data/bundles.js.map +1 -1
- package/dist/application/release-data-service.d.ts +6 -4
- package/dist/application/release-data-service.d.ts.map +1 -1
- package/dist/application/release-data-service.js +9 -6
- package/dist/application/release-data-service.js.map +1 -1
- package/dist/application/render/history-row.d.ts.map +1 -1
- package/dist/application/render/history-row.js +7 -1
- package/dist/application/render/history-row.js.map +1 -1
- package/dist/application/self/install-skill.d.ts +17 -3
- package/dist/application/self/install-skill.d.ts.map +1 -1
- package/dist/application/self/install-skill.js +206 -109
- package/dist/application/self/install-skill.js.map +1 -1
- package/dist/application/self/skills-manager.d.ts.map +1 -1
- package/dist/application/self/skills-manager.js +9 -3
- package/dist/application/self/skills-manager.js.map +1 -1
- package/dist/application/self/uninstall.d.ts.map +1 -1
- package/dist/application/self/uninstall.js +23 -12
- package/dist/application/self/uninstall.js.map +1 -1
- package/dist/application/session-close-service.d.ts +8 -1
- package/dist/application/session-close-service.d.ts.map +1 -1
- package/dist/application/session-close-service.js +22 -1
- package/dist/application/session-close-service.js.map +1 -1
- package/dist/application/source-launch-scripts-service.d.ts +0 -16
- package/dist/application/source-launch-scripts-service.d.ts.map +1 -1
- package/dist/application/source-launch-scripts-service.js +3 -17
- package/dist/application/source-launch-scripts-service.js.map +1 -1
- package/dist/application/source-launch-service.d.ts +31 -4
- package/dist/application/source-launch-service.d.ts.map +1 -1
- package/dist/application/source-launch-service.js +40 -8
- package/dist/application/source-launch-service.js.map +1 -1
- package/dist/application/workspace-init-service.d.ts +23 -3
- package/dist/application/workspace-init-service.d.ts.map +1 -1
- package/dist/application/workspace-init-service.js +142 -47
- package/dist/application/workspace-init-service.js.map +1 -1
- package/dist/cli/commands/dev-only.d.ts.map +1 -1
- package/dist/cli/commands/dev-only.js +7 -4
- package/dist/cli/commands/dev-only.js.map +1 -1
- package/dist/cli/commands/release-data.d.ts.map +1 -1
- package/dist/cli/commands/release-data.js +13 -4
- package/dist/cli/commands/release-data.js.map +1 -1
- package/dist/cli/commands/session-close.js +1 -1
- package/dist/cli/commands/session-close.js.map +1 -1
- package/dist/cli/commands/workspace-init.js +1 -1
- package/dist/cli/commands/workspace-init.js.map +1 -1
- package/dist/cli/parser.js +1 -1
- package/dist/cli/parser.js.map +1 -1
- package/dist/cli/tui/tabs/project-tab.js +26 -19
- package/dist/cli/tui/tabs/project-tab.js.map +1 -1
- package/dist/domain/harnesses.d.ts.map +1 -1
- package/dist/domain/harnesses.js +20 -10
- package/dist/domain/harnesses.js.map +1 -1
- package/dist/domain/skills.js +1 -1
- package/dist/domain/skills.js.map +1 -1
- package/package.json +1 -1
- package/skills/w/README.md +5 -5
- package/skills/w/SKILL.md +8 -8
- package/skills/w/artifacts/artifacts-design/SPEC.md +2 -2
- package/skills/w/commands/README.md +4 -4
- package/skills/w/commands/export-diagrams.md +2 -2
- package/skills/w/commands/export-manuals.md +2 -2
- package/skills/w/commands/export-reports.md +2 -2
- package/skills/w/commands/export-scripts.md +2 -2
- package/skills/w/commands/fix-git.md +2 -2
- package/skills/w/commands/plan-exec.md +3 -3
- package/skills/w/commands/plan-new.md +3 -3
- package/skills/w/commands/plan-refine.md +3 -3
- package/skills/w/commands/quick.md +4 -4
- package/skills/w/commands/spec-new.md +3 -3
- package/skills/w/commands/spec-refine.md +2 -2
- package/skills/w/commands/workspace-init.md +7 -5
- package/skills/w/exports/README.md +14 -14
- package/skills/w/exports/export-diagrams/{SKILL.md → EXPORT.md} +6 -6
- package/skills/w/exports/export-manuals/{SKILL.md → EXPORT.md} +5 -5
- package/skills/w/exports/export-reports/{SKILL.md → EXPORT.md} +6 -6
- package/skills/w/exports/export-scripts/{SKILL.md → EXPORT.md} +8 -7
- package/skills/w/harness/{SKILL.md → HARNESS.md} +15 -4
- package/skills/w/loops/CHASSIS.md +9 -9
- package/skills/w/loops/CODE-POLICIES.md +2 -2
- package/skills/w/loops/README.md +12 -12
- package/skills/w/loops/plan-exec-loop/{SKILL.md → LOOP.md} +1 -1
- package/skills/w/loops/plan-new-loop/{SKILL.md → LOOP.md} +3 -3
- package/skills/w/loops/plan-refine-loop/{SKILL.md → LOOP.md} +3 -3
- package/skills/w/loops/quick-loop/{SKILL.md → LOOP.md} +2 -2
- package/skills/w/loops/spec-refine-loop/{SKILL.md → LOOP.md} +2 -2
- package/skills/w/roles/README.md +9 -9
- package/skills/w/roles/git/{SKILL.md → ROLE.md} +1 -1
- package/skills/w/roles/research/{SKILL.md → ROLE.md} +1 -1
- package/skills/w/roles/ui-spec/{SKILL.md → ROLE.md} +3 -3
- /package/skills/w/roles/diagrams/{SKILL.md → ROLE.md} +0 -0
- /package/skills/w/roles/sql/{SKILL.md → ROLE.md} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# CODE-POLICIES — policies for code-editing loops
|
|
2
2
|
|
|
3
|
-
They apply to **`plan-exec-loop`** (per plan phase) and **`quick-loop`** (the single task; **proportional** gate): each orders this doc read from its `## Inherits`, **together with the chassis** ([`CHASSIS.md`](CHASSIS.md)). The document loops (spec-refine, plan-new, plan-refine) edit no code and do **not** load this doc — that is why it lives apart from the chassis. These policies materialize the **DB scripts-only** and **safe git** invariants — which also stay summarized **inline** (1-2 lines) in each code-editing loop's `
|
|
3
|
+
They apply to **`plan-exec-loop`** (per plan phase) and **`quick-loop`** (the single task; **proportional** gate): each orders this doc read from its `## Inherits`, **together with the chassis** ([`CHASSIS.md`](CHASSIS.md)). The document loops (spec-refine, plan-new, plan-refine) edit no code and do **not** load this doc — that is why it lives apart from the chassis. These policies materialize the **DB scripts-only** and **safe git** invariants — which also stay summarized **inline** (1-2 lines) in each code-editing loop's `LOOP.md`, because advisory hosts do not follow Reads; the full normative text lives here.
|
|
4
4
|
|
|
5
5
|
## Safe git — verified branch + proposed commits
|
|
6
6
|
|
|
@@ -31,4 +31,4 @@ Only with the gate green are the commits proposed.
|
|
|
31
31
|
|
|
32
32
|
## Location
|
|
33
33
|
|
|
34
|
-
Same as the chassis: code-editing loops reference it as `../CODE-POLICIES.md`
|
|
34
|
+
Same as the chassis: code-editing loops reference it as `../CODE-POLICIES.md` — the `w/loops/` tree is installed intact on every host (chassis § *Reference resolution*).
|
package/skills/w/loops/README.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
## What a loop is
|
|
10
10
|
|
|
11
|
-
A loop is
|
|
11
|
+
A loop is an **operating manual** that teaches the AI *how to iterate* until it produces a deliverable. **It is not invocable by name** as a standalone skill — its file is deliberately named `LOOP.md`, **not** `SKILL.md`, so no harness indexes it as a user-facing skill (several scan skill roots recursively): it is the body of its `/w:…` command, which **loads it by reading `<loop>/LOOP.md`** and executes it inline.
|
|
12
12
|
|
|
13
13
|
The 5 loops run the same **common engine**, whose canon lives in [`CHASSIS.md`](CHASSIS.md): persistent objective + verification-first, gap-driven convergent, single session per run with inline research, structured-choice + `flow` control (`Compactar`/`Cerrar`, always present), compact/resume, artifacts as a live log, convergence gate and the `docs/` boundary. Each loop is an **heir**: its `## Inherits` orders the chassis read before its deltas — nothing of the engine is repeated here.
|
|
14
14
|
|
|
@@ -16,11 +16,11 @@ The 5 loops run the same **common engine**, whose canon lives in [`CHASSIS.md`](
|
|
|
16
16
|
|
|
17
17
|
| Loop (`name:`) | Flow | Started by | Reads | Writes |
|
|
18
18
|
|---|---|---|---|---|
|
|
19
|
-
| [`spec-refine-loop`](spec-refine-loop/
|
|
20
|
-
| [`plan-new-loop`](plan-new-loop/
|
|
21
|
-
| [`plan-refine-loop`](plan-refine-loop/
|
|
22
|
-
| [`plan-exec-loop`](plan-exec-loop/
|
|
23
|
-
| [`quick-loop`](quick-loop/
|
|
19
|
+
| [`spec-refine-loop`](spec-refine-loop/LOOP.md) | SPEC | `/w:spec-refine` | `docs/specs/NNN-spec*.md` (the spec itself) | `docs/specs/NNN-spec-<slug>.md` (in place) |
|
|
20
|
+
| [`plan-new-loop`](plan-new-loop/LOOP.md) | PLAN | `/w:plan-new` | `docs/specs/NNN-spec-*.md` | `docs/plans/PPP-plan-<slug>.md` |
|
|
21
|
+
| [`plan-refine-loop`](plan-refine-loop/LOOP.md) | PLAN | `/w:plan-refine` *(aux, optional)* | `docs/plans/PPP-plan-*.md` (the plan itself) | `docs/plans/PPP-plan-<slug>.md` (in place) |
|
|
22
|
+
| [`plan-exec-loop`](plan-exec-loop/LOOP.md) | PLAN | `/w:plan-exec` | `docs/plans/PPP-plan-*.md` | `docs/plans/PPP-plan-<slug>.md` (update); the rest via `export-*` |
|
|
23
|
+
| [`quick-loop`](quick-loop/LOOP.md) | QUICK | `/w:quick` | — (prompt) | edits code + light session; **no** `docs/` |
|
|
24
24
|
|
|
25
25
|
> `/w:spec-new` has no loop (single-pass). Hence **6 commands / 5 loops**.
|
|
26
26
|
|
|
@@ -57,7 +57,7 @@ Loops compose **capabilities by role**, never concrete skills; the skill fulfill
|
|
|
57
57
|
| `sql` | `sql` | research · `plan-exec-loop` · `quick-loop` |
|
|
58
58
|
| `git` | `git` | `plan-exec-loop` · `quick-loop` |
|
|
59
59
|
| `research` | `research` | every loop (inline research) |
|
|
60
|
-
| `overview` | `
|
|
60
|
+
| `overview` | `w` | anyone (orientation) |
|
|
61
61
|
|
|
62
62
|
> **Ambient conventions (not roles):** code/testing/writing standards and `creating-tools` are standalone skills the host auto-discovers by `description` — the workflow neither binds nor depends on them. Full doctrine: [../roles/README.md](../roles/README.md).
|
|
63
63
|
|
|
@@ -67,8 +67,8 @@ Loops compose **capabilities by role**, never concrete skills; the skill fulfill
|
|
|
67
67
|
|
|
68
68
|
- [`CHASSIS.md`](CHASSIS.md) — the common engine of the 5 loops (referenced doc; not a skill)
|
|
69
69
|
- [`CODE-POLICIES.md`](CODE-POLICIES.md) — the code-editing loop policies (loaded only by plan-exec and quick)
|
|
70
|
-
- [`spec-refine-loop/
|
|
71
|
-
- [`plan-new-loop/
|
|
72
|
-
- [`plan-refine-loop/
|
|
73
|
-
- [`plan-exec-loop/
|
|
74
|
-
- [`quick-loop/
|
|
70
|
+
- [`spec-refine-loop/LOOP.md`](spec-refine-loop/LOOP.md)
|
|
71
|
+
- [`plan-new-loop/LOOP.md`](plan-new-loop/LOOP.md)
|
|
72
|
+
- [`plan-refine-loop/LOOP.md`](plan-refine-loop/LOOP.md) — aux, optional (refines the plan in place)
|
|
73
|
+
- [`plan-exec-loop/LOOP.md`](plan-exec-loop/LOOP.md)
|
|
74
|
+
- [`quick-loop/LOOP.md`](quick-loop/LOOP.md)
|
|
@@ -25,7 +25,7 @@ PLAN
|
|
|
25
25
|
`/w:plan-exec` — **resumable** (same chassis mechanism; here resume keys off the plan-doc checkboxes + CHECKPOINT, see Delta 1).
|
|
26
26
|
|
|
27
27
|
## Reads
|
|
28
|
-
`docs/plans/PPP-plan-<slug>.md` (locate via the `docs/plans/PPP-plan-*.md` glob or the exact path from the command argument). It runs **any** plan, whether or not it passed through [`plan-refine-loop`](../plan-refine-loop/
|
|
28
|
+
`docs/plans/PPP-plan-<slug>.md` (locate via the `docs/plans/PPP-plan-*.md` glob or the exact path from the command argument). It runs **any** plan, whether or not it passed through [`plan-refine-loop`](../plan-refine-loop/LOOP.md) — plan-refine is auxiliary, not mandatory; no gate requires it. If the plan includes UI, it also reads the **design SPECs** (`NNN-SPEC-<SLUG>.md`) its Tasks reference — artifacts of the plan-new/plan-refine session, read **read-only** as the design reference while implementing (see [`SPEC.md`](../../artifacts/artifacts-design/SPEC.md)).
|
|
29
29
|
|
|
30
30
|
## Writes
|
|
31
31
|
- `docs/plans/PPP-plan-<slug>.md` (**read/update**, living doc: phase/task state, `Open questions`).
|
|
@@ -71,7 +71,7 @@ The plan absorbs the `TECHNICAL-NOTE` level **inline** (user decision) + the roa
|
|
|
71
71
|
|
|
72
72
|
> **Scales with complexity:** the `(core)` sections go **always**; the `(opt.)` ones only when the plan warrants them — a small plan may omit `Dependencies`, AS-IS/TO-BE, `Risks`, `Assumptions`, `Estimated time`. Concise > exhaustive.
|
|
73
73
|
|
|
74
|
-
> **Catalog implication:** `TECHNICAL-NOTE` stops being a session artifact and becomes **sections of the plan-doc**. Reconciled in [`plan-exec-loop`](../plan-exec-loop/
|
|
74
|
+
> **Catalog implication:** `TECHNICAL-NOTE` stops being a session artifact and becomes **sections of the plan-doc**. Reconciled in [`plan-exec-loop`](../plan-exec-loop/LOOP.md): the single plan-exec session carries **no** `TECHNICAL-NOTE` nor its own `TASKS`; the technical detail and the progress live inline in the plan-doc (living).
|
|
75
75
|
|
|
76
76
|
## Delta 2 — Gap taxonomy (of "plan")
|
|
77
77
|
|
|
@@ -95,7 +95,7 @@ The chassis' **inline** research specializes: mapping **code/impact** — affect
|
|
|
95
95
|
|
|
96
96
|
## Delta 4 — Design SPECs (when the plan includes UI)
|
|
97
97
|
|
|
98
|
-
The **UI without design SPEC** gap is resolved by **composing** the **`ui-design`** capability (built-in default [`ui-spec`](../../roles/ui-spec/
|
|
98
|
+
The **UI without design SPEC** gap is resolved by **composing** the **`ui-design`** capability (built-in default [`ui-spec`](../../roles/ui-spec/ROLE.md); rebindable via `.workflow/skills.toml`; `off` → degrades to human / `Open questions`):
|
|
99
99
|
|
|
100
100
|
- It authors **one design SPEC per screen** as a session artifact: `NNN-SPEC-<SLUG>.md` (numbering local to the session — see [`SPEC.md`](../../artifacts/artifacts-design/SPEC.md)).
|
|
101
101
|
- It **derives** from the spec's `## UI spec` section when present (splits it per screen and raises it to executable detail); otherwise it authors from the `Requirement` (design system/theme/ambiguities via *structured-choice*, counts in the batch).
|
|
@@ -135,4 +135,4 @@ finalize: CHECKPOINT persisted (+ BACKLOG only if something is deferred) + close
|
|
|
135
135
|
- Passes → `Guardar plan` (writes with confirmation if it exists) → `finalize`.
|
|
136
136
|
- `Cerrar` at any time → `finalize` (persists `CHECKPOINT`; `BACKLOG` only if something is deferred; closes the session, reports).
|
|
137
137
|
|
|
138
|
-
> **After generating:** the plan can go straight to `plan-exec`, or — if changes arise before executing (new requirements, scope adjustments) — pass through [`plan-refine-loop`](../plan-refine-loop/
|
|
138
|
+
> **After generating:** the plan can go straight to `plan-exec`, or — if changes arise before executing (new requirements, scope adjustments) — pass through [`plan-refine-loop`](../plan-refine-loop/LOOP.md) (`/w:plan-refine`, auxiliary and **not mandatory**), which refines it in place.
|
|
@@ -48,7 +48,7 @@ Full doctrine in the chassis (§ *Internal sessions* + *Numbering*). This loop's
|
|
|
48
48
|
|
|
49
49
|
## Delta 1 — Deliverable: the PLAN, edited in place
|
|
50
50
|
|
|
51
|
-
The plan uses the **same skeleton** [`plan-new-loop`](../plan-new-loop/
|
|
51
|
+
The plan uses the **same skeleton** [`plan-new-loop`](../plan-new-loop/LOOP.md) produces (§ *Delta 1 — RICH PLAN*: `Summary`/`Solution`/`Impacted`/`Phases`/`Tasks`/`Validations`/`Final behavior`/… with `(core)` sections always and `(opt.)` by complexity). plan-refine does **not** change the schema: it **completes/adjusts** the existing sections **in place** and **adds** two trace sections:
|
|
52
52
|
|
|
53
53
|
```markdown
|
|
54
54
|
## Refinement decisions ← NEW (ADDED)
|
|
@@ -66,7 +66,7 @@ Every doubt asked to the human + the chosen answer.
|
|
|
66
66
|
|
|
67
67
|
## Delta 2 — Gap taxonomy (of "plan")
|
|
68
68
|
|
|
69
|
-
Reuses plan-new-loop's gap taxonomy **in full** ([`plan-new-loop`](../plan-new-loop/
|
|
69
|
+
Reuses plan-new-loop's gap taxonomy **in full** ([`plan-new-loop`](../plan-new-loop/LOOP.md) § *Delta 2*): vague Approach/Solution, components unidentified, AS-IS wiring unknown, phase too large, task not atomic, missing deps, spec criteria uncovered, unaddressed risks, UI without design SPEC. **Focus difference:** plan-new **builds** the plan from scratch; plan-refine **detects what changed** against the written plan (or against the spec, if the spec was re-refined) and closes **those** gaps — typically fewer and more localized. One extra re-refine gap:
|
|
70
70
|
|
|
71
71
|
| Gap | Signal | Resolved by |
|
|
72
72
|
|---|---|---|
|
|
@@ -78,7 +78,7 @@ Same as plan-new (maps code/impact: FE/BE/DB components, AS-IS wiring, deps), bu
|
|
|
78
78
|
|
|
79
79
|
## Delta 4 — Design SPECs (when the refine touches UI)
|
|
80
80
|
|
|
81
|
-
Same mechanism as [`plan-new-loop`](../plan-new-loop/
|
|
81
|
+
Same mechanism as [`plan-new-loop`](../plan-new-loop/LOOP.md) (§ *Delta 4*: the **`ui-design`** capability → per-screen `NNN-SPEC-<SLUG>.md`, see [`SPEC.md`](../../artifacts/artifacts-design/SPEC.md)), **scoped to the delta**: only the screens **new or changed** by the refine get a design SPEC. The updated SPEC is written in **plan-refine's own session** (each loop manages ITS session's artifacts — it never edits plan-new's) and the plan **re-points** the UI Task reference to the current SPEC. Untouched screens keep their original SPEC.
|
|
82
82
|
|
|
83
83
|
## Compact / resume
|
|
84
84
|
|
|
@@ -59,7 +59,7 @@ Read **[`../CHASSIS.md`](../CHASSIS.md)** — the loop's **full engine** — **a
|
|
|
59
59
|
- **Anti-duplicate** (the `create_or_resume` spirit): if a spec whose `## Origin` references this same objective already exists (or an equivalent `*-spec-refine` session), the recommended option becomes **resuming that spec** (`/w:spec-refine` semantics) — never a second draft.
|
|
60
60
|
- **Live transition to SPEC** (shared by the gate and mid-loop escalation). On acceptance, the work line **moves to the SPEC flow**: the explicit consent in the structured-choice **equals invoking the destination command** (*consented exception* — rule 3 of the *Continuity rule*, [`../../SKILL.md`](../../SKILL.md) § *Operating context*). On the SPEC side:
|
|
61
61
|
1. **Materialize the draft** via the [`../../commands/spec-new.md`](../../commands/spec-new.md) procedure: `aw next-number docs/specs`, slug, schema, single-pass **NO RESEARCH**. `## Origin` = "escalated from `/w:quick`" + the original prompt (+ the origin quick session if it exists).
|
|
62
|
-
2. **Load and execute** [`../spec-refine-loop/
|
|
62
|
+
2. **Load and execute** [`../spec-refine-loop/LOOP.md`](../spec-refine-loop/LOOP.md) — over that spec (trampoline pattern).
|
|
63
63
|
3. The run's session is that loop's **normal** `NNN-<slug>-spec-refine` (the CLI numbers it; its `## Origin` records the escalation). **Invariant 2 intact**: quick, while it is quick, never writes `docs/` — the draft is written by the SPEC flow, post-consent.
|
|
64
64
|
- **Mid-loop escalation + handoff**: if the task grows (same gate signals) → propose moving up to **SPEC/PLAN** (structured-choice, recommendation first). If the user accepts:
|
|
65
65
|
1. The **already-edited code stays** in the working tree (never reverted) and is **recorded** in `CHECKPOINT` + `BACKLOG`: "uncommitted changes in `<source>` — decide commit/discard on resume" (the "rejected commit" pattern, [`../CODE-POLICIES.md`](../CODE-POLICIES.md) § *Safe git*).
|
|
@@ -87,7 +87,7 @@ quick-loop(prompt):
|
|
|
87
87
|
structured_choice(content: [Cambiar a SPEC (recommended), Seguir en quick, Recortar alcance],
|
|
88
88
|
flow: [Compactar, Cerrar]) # Cerrar here = abort (nothing created yet)
|
|
89
89
|
Cambiar a SPEC → live transition (see delta): draft (spec-new procedure) +
|
|
90
|
-
load and execute ../spec-refine-loop/
|
|
90
|
+
load and execute ../spec-refine-loop/LOOP.md → END (no quick session)
|
|
91
91
|
Recortar alcance → objective = the proposed sub-task; the rest → BACKLOG when the session is created
|
|
92
92
|
Seguir en quick → continue
|
|
93
93
|
s = create_or_resume("<slug>-quick") # CLI prepends global NNN; always a light session
|
|
@@ -27,7 +27,7 @@ SPEC
|
|
|
27
27
|
## Started by
|
|
28
28
|
`/w:spec-refine` — **resumable**. Detects prior state (via CHECKPOINT) and starts accordingly (see *Compact / resume — SPEC keys*).
|
|
29
29
|
|
|
30
|
-
It is also started by the **live escalation from `quick-loop`** (entry gate or mid-loop — see [`../quick-loop/
|
|
30
|
+
It is also started by the **live escalation from `quick-loop`** (entry gate or mid-loop — see [`../quick-loop/LOOP.md`](../quick-loop/LOOP.md) § *QUICK delta*): quick materializes the draft (`spec-new` procedure) and **loads this loop** over that spec — same semantics as if the user had run `/w:spec-refine`.
|
|
31
31
|
|
|
32
32
|
## Reads
|
|
33
33
|
- `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.
|
|
@@ -76,7 +76,7 @@ The spec is completed **in place**: the draft's sections get **completed** + two
|
|
|
76
76
|
## Assumptions (declared)
|
|
77
77
|
|
|
78
78
|
## UI spec (opt. — if UI is involved; via the ui-design capability / ui-spec skill)
|
|
79
|
-
Structured Markdown description (screens → regions/components). See [`ui-spec`](../../roles/ui-spec/
|
|
79
|
+
Structured Markdown description (screens → regions/components). See [`ui-spec`](../../roles/ui-spec/ROLE.md).
|
|
80
80
|
|
|
81
81
|
## Refinement decisions ← NEW (ADDED)
|
|
82
82
|
What was defined while refining and why. Includes what inline research
|
package/skills/w/roles/README.md
CHANGED
|
@@ -12,12 +12,12 @@ All 6 roles, their built-in defaults, their tier, and which loops/exports compos
|
|
|
12
12
|
|
|
13
13
|
| Role | Default built-in | Tier | Composed by |
|
|
14
14
|
|---|---|---|---|
|
|
15
|
-
| `ui-design` | [`ui-spec`](ui-spec/
|
|
15
|
+
| `ui-design` | [`ui-spec`](ui-spec/ROLE.md) | must | `spec-refine-loop` (when requirement involves UI) · `plan-new-loop` / `plan-refine-loop` (per-screen design SPECs) |
|
|
16
16
|
| `sql` | `sql` | must | inline research · `plan-exec-loop` · `quick-loop` · `export-scripts` |
|
|
17
17
|
| `git` | `git` | must | `plan-exec-loop` · `quick-loop` |
|
|
18
|
-
| `research` | [`research`](research/
|
|
19
|
-
| `diagrams` | [`diagrams`](diagrams/
|
|
20
|
-
| `overview` | `
|
|
18
|
+
| `research` | [`research`](research/ROLE.md) | should | all loops (on-demand investigation) |
|
|
19
|
+
| `diagrams` | [`diagrams`](diagrams/ROLE.md) | should | `export-diagrams` |
|
|
20
|
+
| `overview` | `w` | should | any loop (orientation about the workflow itself) |
|
|
21
21
|
|
|
22
22
|
**Tiers:**
|
|
23
23
|
- `must` — core to almost every session; built-in always active unless explicitly `off`.
|
|
@@ -61,7 +61,7 @@ built-in default
|
|
|
61
61
|
# git = "git"
|
|
62
62
|
# research = "research"
|
|
63
63
|
# diagrams = "diagrams"
|
|
64
|
-
# overview = "
|
|
64
|
+
# overview = "w"
|
|
65
65
|
|
|
66
66
|
# Override examples:
|
|
67
67
|
ui-design = "acme/figma-spec" # third-party skill installed via skills.sh
|
|
@@ -116,7 +116,7 @@ sql sql built-in
|
|
|
116
116
|
git git built-in
|
|
117
117
|
research research built-in
|
|
118
118
|
diagrams mermaid-only global (~/.workflow/skills.toml)
|
|
119
|
-
overview
|
|
119
|
+
overview w built-in
|
|
120
120
|
```
|
|
121
121
|
|
|
122
122
|
---
|
|
@@ -124,13 +124,13 @@ overview workflow built-in
|
|
|
124
124
|
## Adding a new role
|
|
125
125
|
|
|
126
126
|
1. Define the role in this README (name, default built-in, tier, composed by).
|
|
127
|
-
2. Author the built-in skill under `roles/<name>/
|
|
127
|
+
2. Author the built-in skill under `roles/<name>/ROLE.md` following the schema.
|
|
128
128
|
3. Register it in the CLI resolver so `aw skills` lists it.
|
|
129
129
|
4. Document the binding key in the `skills.toml` reference above.
|
|
130
130
|
|
|
131
131
|
## Authoring a built-in skill
|
|
132
132
|
|
|
133
|
-
Each `
|
|
133
|
+
Each `ROLE.md` follows this schema:
|
|
134
134
|
|
|
135
135
|
| Section | Content |
|
|
136
136
|
|---|---|
|
|
@@ -143,4 +143,4 @@ Each `SKILL.md` follows this schema:
|
|
|
143
143
|
| `## Output` | what it produces and where (if any) |
|
|
144
144
|
| `## Source` | recycled from (if applicable) |
|
|
145
145
|
|
|
146
|
-
See [`research/
|
|
146
|
+
See [`research/ROLE.md`](research/ROLE.md) as a reference implementation.
|
|
@@ -46,7 +46,7 @@ And **always** forbidden, even when the user asks for a commit: `--no-verify` (r
|
|
|
46
46
|
|
|
47
47
|
### Read-only operations (always allowed, no asking)
|
|
48
48
|
|
|
49
|
-
`status` · `log` · `diff` · `branch --show-current` · `rev-parse` · `show`. `git checkout` (branch switch) is **not** read-only: it requires *structured-choice* (canonical rule: `../../loops/CHASSIS.md` § *Structured-choice*; per-harness binding: `../../harness/
|
|
49
|
+
`status` · `log` · `diff` · `branch --show-current` · `rev-parse` · `show`. `git checkout` (branch switch) is **not** read-only: it requires *structured-choice* (canonical rule: `../../loops/CHASSIS.md` § *Structured-choice*; per-harness binding: `../../harness/HARNESS.md`) even though it is not destructive (see branch verification).
|
|
50
50
|
|
|
51
51
|
### Branch verification (before editing)
|
|
52
52
|
|
|
@@ -25,7 +25,7 @@ The key discriminator:
|
|
|
25
25
|
| The question... | Action |
|
|
26
26
|
|---|---|
|
|
27
27
|
| can be answered by reading repo / data (objective system facts) | **investigate** |
|
|
28
|
-
| depends on the user's preferences, priorities or decisions | **ask the human** via *structured-choice* (canonical rule: `../../loops/CHASSIS.md` § *Structured-choice*; per-harness binding: `../../harness/
|
|
28
|
+
| depends on the user's preferences, priorities or decisions | **ask the human** via *structured-choice* (canonical rule: `../../loops/CHASSIS.md` § *Structured-choice*; per-harness binding: `../../harness/HARNESS.md`) |
|
|
29
29
|
| is partly in the repo and partly user intent | investigate first, then ask only about the uncertain part |
|
|
30
30
|
|
|
31
31
|
## Composed by
|
|
@@ -27,12 +27,12 @@ Given a UI requirement, author a **structured Markdown description** of the scre
|
|
|
27
27
|
|
|
28
28
|
Two levels, same capability:
|
|
29
29
|
|
|
30
|
-
- **`spec-refine-loop`** (see `../../loops/spec-refine-loop/
|
|
31
|
-
- **`plan-new-loop` · `plan-refine-loop`** (see `../../loops/plan-new-loop/
|
|
30
|
+
- **`spec-refine-loop`** (see `../../loops/spec-refine-loop/LOOP.md`) — resolving the **UI unspecified** gap (when the requirement involves UI): authors the spec's `## UI spec` section (the UI's *what*, coarse-grain screens).
|
|
31
|
+
- **`plan-new-loop` · `plan-refine-loop`** (see `../../loops/plan-new-loop/LOOP.md` § *Delta 4*) — resolving the **UI without design SPEC** gap (when the **plan includes UI**): authors per-screen **design SPECs** (`NNN-SPEC-<SLUG>.md`) as **PLAN session artifacts** (see `../../artifacts/artifacts-design/SPEC.md`); they derive from `## UI spec` when it exists.
|
|
32
32
|
|
|
33
33
|
In both, the composing loop contributes:
|
|
34
34
|
|
|
35
|
-
- **Asking the human** (design system, theme, screen ambiguities) via *structured-choice* (canonical rule: `../../loops/CHASSIS.md` § *Structured-choice*; per-harness binding: `../../harness/
|
|
35
|
+
- **Asking the human** (design system, theme, screen ambiguities) via *structured-choice* (canonical rule: `../../loops/CHASSIS.md` § *Structured-choice*; per-harness binding: `../../harness/HARNESS.md`).
|
|
36
36
|
- **Gap-driven iteration** until convergence.
|
|
37
37
|
- Offering **variants** and **curating** the result.
|
|
38
38
|
|
|
File without changes
|
|
File without changes
|