@tacuchi/agent-workflow-cli 15.2.0 → 16.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/package.json +1 -1
- package/skills/w/README.md +14 -14
- package/skills/w/SKILL.md +94 -82
- package/skills/w/artifacts/artifacts-core/TASKS.md +1 -1
- package/skills/w/artifacts/artifacts-research/CONCLUSIONS.md +1 -1
- package/skills/w/commands/README.md +22 -22
- package/skills/w/commands/export-diagrams.md +9 -9
- package/skills/w/commands/export-manuals.md +9 -9
- package/skills/w/commands/export-reports.md +9 -9
- package/skills/w/commands/export-scripts.md +9 -9
- package/skills/w/commands/fix-git.md +12 -12
- package/skills/w/commands/plan-exec.md +19 -19
- package/skills/w/commands/plan-new.md +18 -18
- package/skills/w/commands/plan-refine.md +22 -22
- package/skills/w/commands/quick.md +16 -16
- package/skills/w/commands/spec-new.md +35 -34
- package/skills/w/commands/spec-refine.md +16 -16
- package/skills/w/commands/status.md +18 -16
- package/skills/w/commands/workspace-init.md +14 -14
- package/skills/w/exports/README.md +5 -5
- package/skills/w/exports/export-diagrams/SKILL.md +58 -58
- package/skills/w/exports/export-manuals/SKILL.md +61 -61
- package/skills/w/exports/export-reports/SKILL.md +51 -51
- package/skills/w/exports/export-scripts/SKILL.md +60 -60
- package/skills/w/harness/SKILL.md +48 -47
- package/skills/w/loops/CHASSIS.md +101 -98
- package/skills/w/loops/CODE-POLICIES.md +21 -21
- package/skills/w/loops/README.md +30 -29
- package/skills/w/loops/plan-exec-loop/SKILL.md +77 -77
- package/skills/w/loops/plan-new-loop/SKILL.md +80 -80
- package/skills/w/loops/plan-refine-loop/SKILL.md +62 -62
- package/skills/w/loops/quick-loop/SKILL.md +79 -79
- package/skills/w/loops/spec-refine-loop/SKILL.md +93 -94
- package/skills/w/roles/README.md +2 -2
- package/skills/w/roles/diagrams/SKILL.md +50 -47
- package/skills/w/roles/git/SKILL.md +58 -58
- package/skills/w/roles/research/SKILL.md +65 -62
- package/skills/w/roles/sql/SKILL.md +59 -55
- package/skills/w/roles/ui-spec/SKILL.md +60 -74
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Generates an executive/functional report in docs/reports/ consolidating the session corpus (spec, CONCLUSIONS, DECISION), the plan-doc and the docs/ state. Single-pass, explicit.
|
|
3
3
|
argument-hint: [--sessions <ids>] [--audience <gerencia|tecnica>] [--dry-run]
|
|
4
4
|
allowed-tools:
|
|
5
5
|
[
|
|
@@ -9,21 +9,21 @@ allowed-tools:
|
|
|
9
9
|
]
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
-
# export-reports —
|
|
12
|
+
# export-reports — export reports
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
Consolidates the full session corpus (`CONCLUSIONS`, `DECISION`, spec) + plan-doc (state) + `docs/` and generates an executive or functional report in `docs/reports/`. Single-pass, read-only over sessions.
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
To run: **read** `../exports/export-reports/SKILL.md` and **follow** its instructions with `$ARGUMENTS` as input. Do not try `Skill: export-reports` (it is not registered by name); the sibling SKILL.md is this export's body.
|
|
17
17
|
|
|
18
|
-
##
|
|
18
|
+
## What it produces
|
|
19
19
|
|
|
20
|
-
- `docs/reports/`:
|
|
21
|
-
- **
|
|
22
|
-
-
|
|
20
|
+
- `docs/reports/`: a consolidated, cross-session report with dedup and progress state.
|
|
21
|
+
- Does **not** mutate sessions nor open/close loops.
|
|
22
|
+
- Writes only `docs/reports/`.
|
|
23
23
|
|
|
24
24
|
## Plan mode
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
Describes the scope and index of the report it would generate (sections, source sessions, progress state) without writing files.
|
|
27
27
|
|
|
28
28
|
## Resources
|
|
29
29
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Exports DB scripts (type-B SCRIPTS.sql) from N sessions to docs/scripts/ as numbered forwards + rollback. Explicit, separate step — never automatic.
|
|
3
3
|
argument-hint: [--sessions <ids>] [--dry-run]
|
|
4
4
|
allowed-tools:
|
|
5
5
|
[
|
|
@@ -9,21 +9,21 @@ allowed-tools:
|
|
|
9
9
|
]
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
-
# export-scripts —
|
|
12
|
+
# export-scripts — export DB scripts
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
Promotes the `SCRIPTS.sql` artifacts (type B — migrations) of N sessions from `.workflow/sessions/` to `docs/scripts/`. Single-pass, read-only over sessions.
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
To run: **read** `../exports/export-scripts/SKILL.md` and **follow** its instructions with `$ARGUMENTS` as input. Do not try `Skill: export-scripts` (it is not registered by name); the sibling SKILL.md is this export's body.
|
|
17
17
|
|
|
18
|
-
##
|
|
18
|
+
## What it produces
|
|
19
19
|
|
|
20
|
-
- `docs/scripts/`:
|
|
21
|
-
- **
|
|
22
|
-
-
|
|
20
|
+
- `docs/scripts/`: continuously numbered forwards (cross-session, dedup) + `00-ROLLBACK.sql`.
|
|
21
|
+
- Does **not** mutate sessions nor open/close loops.
|
|
22
|
+
- The AI **never executes** the scripts — it only consolidates and delivers them.
|
|
23
23
|
|
|
24
24
|
## Plan mode
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
Describes the scripts it would consolidate and the `docs/scripts/` structure it would generate, without writing files.
|
|
27
27
|
|
|
28
28
|
## Resources
|
|
29
29
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Resolves the conflicts of an in-progress merge for a given or detected source. Identifies origin (theirs) and destination (ours), analyzes both sides' intent and resolves; asks (structured-choice) on ambiguity or incoherence. Git-safe — proposes the merge commit, never push/--amend/--no-verify. Transversal (not a flow), no loop, no session, never touches docs/. Works in any git repo, no initialized workspace required.
|
|
3
3
|
argument-hint: "[<source path | alias>]"
|
|
4
4
|
allowed-tools:
|
|
5
5
|
[
|
|
@@ -9,25 +9,25 @@ allowed-tools:
|
|
|
9
9
|
]
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
-
# fix-git —
|
|
12
|
+
# fix-git — merge-conflict resolver (transversal)
|
|
13
13
|
|
|
14
|
-
Single-pass, **
|
|
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/`.
|
|
15
15
|
|
|
16
|
-
##
|
|
16
|
+
## Run
|
|
17
17
|
|
|
18
|
-
1. **
|
|
19
|
-
-
|
|
20
|
-
2. **
|
|
21
|
-
3. **
|
|
18
|
+
1. **Detect + identify** — run `aw merge-state [<source>]` (read-only; `--source <alias>` or `--all` when a workspace exists; a direct path otherwise). From the JSON, per repo: `is_merging`, `current_branch` (**destination / ours**), `merge_origin` (**origin / theirs**), `conflicted_files`.
|
|
19
|
+
- If **no merge is in progress** (`is_merging:false`) and the user named a **target** (e.g. "merge `<branch>`"): that is an explicit request → `git -C <path> merge <branch>` and continue. No target → report there is no merge to resolve and stop.
|
|
20
|
+
2. **Resolve** — **read and follow** the ***Merge-conflict resolution*** section of the `git` role (`../roles/git/SKILL.md`): analyze each conflict's intent (3 versions `git show :1:/:2:/:3:<file>`, `git log --merge`), resolve (ours / theirs / combine / rewrite) and `git add` what is resolved. On **ambiguity or incoherence**, ask via *structured-choice* (never invent the resolution).
|
|
21
|
+
3. **Close** — **propose** the merge commit (propose-then-execute, canonical format, git-safe). Escape hatch: `git merge --abort` after user confirmation.
|
|
22
22
|
|
|
23
|
-
>
|
|
23
|
+
> Do not try `Skill: git` — the role is **read and followed** (it is the capability this command composes). The command **is** the entry; the conflict doctrine lives in the `git` role.
|
|
24
24
|
|
|
25
25
|
## Plan mode
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
Run `aw merge-state` (read-only), report **origin ↔ destination** and the per-file conflicts, and describe the **resolution strategy** you would apply — **without** editing files or committing.
|
|
28
28
|
|
|
29
29
|
## Resources
|
|
30
30
|
|
|
31
|
-
- Capability: `../roles/git/SKILL.md` (
|
|
32
|
-
- CLI: `aw merge-state` (
|
|
31
|
+
- Capability: `../roles/git/SKILL.md` (section *Merge-conflict resolution*)
|
|
32
|
+
- CLI: `aw merge-state` (read-only merge-state inspector)
|
|
33
33
|
- Design reference: `docs/referencias/workflow-skills/fix-git.md`
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Starts or resumes the execution loop (plan-exec-loop) over an existing plan. The real work happens here - code edits, proposed SQL scripts, created tools. Git-safe.
|
|
3
3
|
argument-hint: <docs/plans/PPP-plan-<slug>.md>
|
|
4
4
|
allowed-tools:
|
|
5
5
|
[
|
|
@@ -10,37 +10,37 @@ allowed-tools:
|
|
|
10
10
|
]
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
# plan-exec —
|
|
13
|
+
# plan-exec — trampoline to the execution loop
|
|
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
|
-
##
|
|
17
|
+
## Run the loop
|
|
18
18
|
|
|
19
|
-
`plan-exec-loop` **
|
|
19
|
+
`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**:
|
|
20
20
|
|
|
21
|
-
1. **
|
|
22
|
-
2. **
|
|
21
|
+
1. **Read** `../loops/plan-exec-loop/SKILL.md` (inside the installed `w` skill — e.g. `~/.claude/skills/w/loops/…`).
|
|
22
|
+
2. **Follow** its instructions taking `$ARGUMENTS` as input: it detects CHECKPOINT/resume, executes phase by phase (git-safe, DB scripts-only), keeps the plan alive and reports.
|
|
23
23
|
|
|
24
|
-
>
|
|
24
|
+
> Do not try `Skill: plan-exec-loop` — it is not registered as a skill. The command **is** the entry; the loop is its body.
|
|
25
25
|
|
|
26
|
-
##
|
|
26
|
+
## What the loop does (summary)
|
|
27
27
|
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
- **
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
- **
|
|
35
|
-
-
|
|
28
|
+
- Reads and updates `docs/plans/PPP-plan-<slug>.md` (living doc: phase/task state).
|
|
29
|
+
- Edits code in the workspace sources (a single execution session per run; execution is still phase by phase, there is just no session per phase).
|
|
30
|
+
- If it creates a tool/utility, the ambient `creating-tools` skill documents it in `docs/tools/` (auto-discovered; the workflow does not bind it).
|
|
31
|
+
- **Closing review gate** at every phase boundary, **before proposing the commits**: re-reads the diff (independent pass) applying the **installed ambient conventions** and fixes or defers findings — nothing reaches a commit unreviewed (see `../loops/plan-exec-loop/SKILL.md` § *Delta 5*).
|
|
32
|
+
- Proposes commits per source (git-safe: verifies the branch, proposes, never push/--amend/--no-verify).
|
|
33
|
+
- Generates session artifacts (`DECISION`, `SCRIPTS.sql`) under `.workflow/sessions/`.
|
|
34
|
+
- **Never exports** to `docs/scripts`, `docs/manuals`, `docs/diagrams`, `docs/reports` — the `export-*` do that as a separate step.
|
|
35
|
+
- DB scripts (migrations) go to `SCRIPTS.sql` type B; the AI **never executes DML/DDL**, only read-only reads via MCP.
|
|
36
36
|
|
|
37
37
|
## Resumable
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
Same pattern as the other loops: it detects an existing CHECKPOINT and continues from there.
|
|
40
40
|
|
|
41
41
|
## Plan mode
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
The skill describes, phase by phase, what it would execute, which files it would touch, and which commits it would propose, without applying changes.
|
|
44
44
|
|
|
45
45
|
## Resources
|
|
46
46
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Starts or resumes the planning loop (plan-new-loop) from a spec. Turns the "what" (spec) into the "how" (plan). Ideal input: an already refined docs/specs/NNN-spec-<slug>.md.
|
|
3
3
|
argument-hint: <docs/specs/NNN-spec-<slug>.md | prompt>
|
|
4
4
|
allowed-tools:
|
|
5
5
|
[
|
|
@@ -10,40 +10,40 @@ allowed-tools:
|
|
|
10
10
|
]
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
# plan-new —
|
|
13
|
+
# plan-new — trampoline to the planning loop
|
|
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
|
-
##
|
|
17
|
+
## Input resolution
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
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):
|
|
20
20
|
|
|
21
|
-
1. **
|
|
22
|
-
2. **
|
|
23
|
-
3. **prompt** (
|
|
21
|
+
1. **Refined spec** (`docs/specs/NNN-spec-<slug>.md` that **already has** `## Refinement decisions` / `## Q&A traceability`) → ideal. Proceed straight to `plan-new-loop`.
|
|
22
|
+
2. **Draft spec** (same file, but **without** those two sections) → **soft-suggest** running `/w:spec-refine` first; planning over a solid spec produces better plans (the user may proceed anyway).
|
|
23
|
+
3. **prompt** (no spec referenced) → propose using the SPEC flow; **by default launch `/w:spec-new`** with that prompt to create the draft, and continue the natural flow from there.
|
|
24
24
|
|
|
25
|
-
> **
|
|
25
|
+
> **Refined vs draft** is distinguished by the **presence** of `## Refinement decisions` / `## Q&A traceability` in the spec, never by the filename (there is no `-refined` anymore).
|
|
26
26
|
|
|
27
|
-
##
|
|
27
|
+
## Run the loop
|
|
28
28
|
|
|
29
|
-
`plan-new-loop` **
|
|
29
|
+
`plan-new-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**:
|
|
30
30
|
|
|
31
|
-
1. **
|
|
32
|
-
2. **
|
|
31
|
+
1. **Read** `../loops/plan-new-loop/SKILL.md` (inside the installed `w` skill — e.g. `~/.claude/skills/w/loops/…`).
|
|
32
|
+
2. **Follow** its instructions taking `$ARGUMENTS` as input (resolved per the 3 rules above): it detects state/resume, runs the gap-driven engine, creates and manages sessions, converges and reports.
|
|
33
33
|
|
|
34
|
-
>
|
|
34
|
+
> Do not try `Skill: plan-new-loop` — it is not registered as a skill. The command **is** the entry; the loop is its body.
|
|
35
35
|
|
|
36
|
-
##
|
|
36
|
+
## Numbering notes
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
The plan is named `docs/plans/PPP-plan-<slug>.md`. `aw next-number docs/plans` returns JSON (field `next` = `PPP`); the loop builds the full name (slug = short kebab-case from the Requirement: `[a-z0-9-]`, ≤ ~5 words / ≤ 40 chars). It does **not inherit the spec's `NNN`**. The link to the spec is established by reference (`## Origin` / "Derived from") in the plan, never by number.
|
|
39
39
|
|
|
40
40
|
## UI → design SPECs
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
If the plan **includes UI**, the loop composes the `ui-design` capability and produces per-screen **design SPECs** (`NNN-SPEC-<SLUG>.md`) as artifacts of its session — the plan's UI Tasks reference them (see `../loops/plan-new-loop/SKILL.md` § *Delta 4* and `../artifacts/artifacts-design/SPEC.md`).
|
|
43
43
|
|
|
44
44
|
## Plan mode
|
|
45
45
|
|
|
46
|
-
|
|
46
|
+
The skill resolves the input per the 3 rules above and describes the loop actions it would run, without starting the iteration.
|
|
47
47
|
|
|
48
48
|
## Resources
|
|
49
49
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
2
|
+
description: Starts or resumes the plan refinement loop (plan-refine-loop). An auxiliary, NOT mandatory step of the PLAN flow — refines an existing plan in place before executing it. Ideal input: a docs/plans/PPP-plan-<slug>.md already generated by plan-new.
|
|
3
3
|
argument-hint: <docs/plans/PPP-plan-<slug>.md>
|
|
4
4
|
allowed-tools:
|
|
5
5
|
[
|
|
@@ -10,46 +10,46 @@ allowed-tools:
|
|
|
10
10
|
]
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
# plan-refine —
|
|
13
|
+
# plan-refine — trampoline to the plan refinement loop
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
An **auxiliary, NOT mandatory** step of the PLAN flow: `spec-refine`'s twin, but over the **plan**. `plan-new` already produces a plan from the refined spec; `plan-refine` exists for when — **before executing** — changes arise (new requirements, scope adjustments, deps or risks spotted while re-reading the plan) worth incorporating without regenerating the plan from scratch.
|
|
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
|
-
> **
|
|
19
|
+
> **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
20
|
|
|
21
|
-
##
|
|
21
|
+
## Input resolution
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
The skill evaluates `$ARGUMENTS` (plans live in place — `docs/plans/PPP-plan-<slug>.md`; locate via the `docs/plans/PPP-plan-*.md` glob or the exact path):
|
|
24
24
|
|
|
25
|
-
1. **
|
|
26
|
-
2. **
|
|
25
|
+
1. **Existing plan** (`docs/plans/PPP-plan-<slug>.md`) → proceed to `plan-refine-loop`.
|
|
26
|
+
2. **No plan** (the arg references no plan, or none exists) → **soft-suggest** running `/w:plan-new` first (there is nothing to refine yet); the user decides.
|
|
27
27
|
|
|
28
|
-
##
|
|
28
|
+
## Run the loop
|
|
29
29
|
|
|
30
|
-
`plan-refine-loop` **
|
|
30
|
+
`plan-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**:
|
|
31
31
|
|
|
32
|
-
1. **
|
|
33
|
-
2. **
|
|
32
|
+
1. **Read** `../loops/plan-refine-loop/SKILL.md` (inside the installed `w` skill — e.g. `~/.claude/skills/w/loops/…`).
|
|
33
|
+
2. **Follow** its instructions taking `$ARGUMENTS` as input: it detects state/resume, runs the gap-driven engine, creates and manages sessions, converges and reports.
|
|
34
34
|
|
|
35
|
-
>
|
|
35
|
+
> Do not try `Skill: plan-refine-loop` — it is not registered as a skill. The command **is** the entry; the loop is its body.
|
|
36
36
|
|
|
37
|
-
##
|
|
37
|
+
## State resolution (resumable)
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
The skill detects prior state before starting, **keying off the `CHECKPOINT`** (never a "refined" file):
|
|
40
40
|
|
|
41
|
-
1.
|
|
42
|
-
2. **
|
|
43
|
-
3. **
|
|
44
|
-
4. **
|
|
41
|
+
1. Find the plan's refinement session under `.workflow/sessions/` (descriptor `<slug>-plan-refine` + `## Origin`) and its `CHECKPOINT.md`.
|
|
42
|
+
2. **In progress** (a CHECKPOINT exists) → continue from the recorded progress (resolved gaps, Q&A).
|
|
43
|
+
3. **No progress** (no CHECKPOINT and the plan does **not** have `## Refinement decisions`/`## Q&A traceability`) → start from zero reading the plan (`PPP-plan-*.md`).
|
|
44
|
+
4. **Already refined / re-refine on demand** (no open CHECKPOINT but the plan **already has** the 2 sections) → **first-class operation**: while the flow stays in PLAN you can re-run `/w:plan-refine` over the same plan **as many times as needed** (new requirements, scope changes, re-reads). The loop does `create_or_resume` — it locates the existing refine session (even closed) and **reopens** it instead of duplicating — and re-refines reading the **plan itself**; on `Guardar`, edits in place with confirmation.
|
|
45
45
|
|
|
46
46
|
## UI → design SPECs
|
|
47
47
|
|
|
48
|
-
|
|
48
|
+
If the refine **touches UI**, the loop composes `ui-design` and produces/updates **design SPECs** (`NNN-SPEC-<SLUG>.md`) in its own session — scoped to the new/changed screens — and re-points the plan references (see `../loops/plan-refine-loop/SKILL.md` § *Delta 4*).
|
|
49
49
|
|
|
50
50
|
## Plan mode
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
The skill resolves the state and describes the actions the loop would run (gaps it would close, questions it would ask), without starting the iteration.
|
|
53
53
|
|
|
54
54
|
## Resources
|
|
55
55
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
3
|
-
argument-hint: <prompt
|
|
2
|
+
description: Lightweight shortcut for scoped work (fix, tweak, chore) that warrants no spec or plan. Starts quick-loop. Never touches docs/. If the objective exceeds a quick or the task grows, it escalates — to SPEC live (with consent), to PLAN deferred.
|
|
3
|
+
argument-hint: <prompt with the scoped task>
|
|
4
4
|
allowed-tools:
|
|
5
5
|
[
|
|
6
6
|
"Bash",
|
|
@@ -10,30 +10,30 @@ allowed-tools:
|
|
|
10
10
|
]
|
|
11
11
|
---
|
|
12
12
|
|
|
13
|
-
# quick —
|
|
13
|
+
# quick — trampoline to the lightweight loop
|
|
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
|
-
##
|
|
17
|
+
## Run the loop
|
|
18
18
|
|
|
19
|
-
`quick-loop` **
|
|
19
|
+
`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**:
|
|
20
20
|
|
|
21
|
-
1. **
|
|
22
|
-
2. **
|
|
21
|
+
1. **Read** `../loops/quick-loop/SKILL.md` (inside the installed `w` skill — e.g. `~/.claude/skills/w/loops/…`).
|
|
22
|
+
2. **Follow** its instructions taking `$ARGUMENTS` as the task: it evaluates the size gate, creates the light session, works with minimal ceremony (git-safe), escalates if the task exceeds or grows (SPEC live / PLAN deferred), and reports.
|
|
23
23
|
|
|
24
|
-
>
|
|
24
|
+
> Do not try `Skill: quick-loop` — it is not registered as a skill. The command **is** the entry; the loop is its body.
|
|
25
25
|
|
|
26
|
-
##
|
|
26
|
+
## What the loop does
|
|
27
27
|
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
- **
|
|
31
|
-
- **
|
|
32
|
-
- **
|
|
28
|
+
- Edits code in the workspace sources.
|
|
29
|
+
- Minimal session artifacts (lazy DECISION, proposed commit).
|
|
30
|
+
- **Proportional closing review gate** before proposing the single commit: re-reads the diff applying the installed ambient conventions and fixes or defers (see `../loops/quick-loop/SKILL.md` § *Sequence*).
|
|
31
|
+
- **Never touches `docs/`** and exports nothing.
|
|
32
|
+
- **Escalates** when complexity emerges — **entry size gate** (before creating the session) and mid-loop (many files, ≥2 sources, needs architecture, or the change is a feature/refactor). Accepting **SPEC** = **live** transition into the SPEC flow (draft via the spec-new procedure + spec-refine-loop); **PLAN** stays seeded for later. See `../loops/quick-loop/SKILL.md` § *QUICK delta*.
|
|
33
33
|
|
|
34
34
|
## Plan mode
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
The skill describes the changes it would apply and the files it would touch, without executing them. Escalation included: if the gate (entry or mid-loop) would fire, it describes it (options + the spec it would materialize) without writing `docs/` or starting loops.
|
|
37
37
|
|
|
38
38
|
## Resources
|
|
39
39
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
description:
|
|
3
|
-
argument-hint: <prompt
|
|
2
|
+
description: Generates a specification draft (docs/specs/NNN-spec-<slug>.md) from a prompt, in a single pass. Step 1 of the SPEC flow; starts no loop.
|
|
3
|
+
argument-hint: <prompt with the requirement or idea>
|
|
4
4
|
allowed-tools:
|
|
5
5
|
[
|
|
6
6
|
"Bash",
|
|
@@ -9,71 +9,72 @@ allowed-tools:
|
|
|
9
9
|
]
|
|
10
10
|
---
|
|
11
11
|
|
|
12
|
-
# spec-new —
|
|
12
|
+
# spec-new — specification draft (single-pass)
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
Generates `docs/specs/NNN-spec-<slug>.md` in a single pass from the prompt in `$ARGUMENTS`. Starts no loop.
|
|
15
15
|
|
|
16
|
-
> ## ⛔ Single-pass —
|
|
16
|
+
> ## ⛔ Single-pass — NO RESEARCH (hard rule)
|
|
17
17
|
>
|
|
18
|
-
>
|
|
18
|
+
> This command **only paraphrases** the user's input into the draft schema. It is **one sequential pass**: read `$ARGUMENTS` → fill the sections → write the file. Nothing else. It must take **seconds, not minutes**.
|
|
19
19
|
>
|
|
20
|
-
> **
|
|
20
|
+
> **FORBIDDEN**, no exceptions: launching sub-agents/workflows (`Task`/`Agent`/`Workflow`), research sessions, web searches, or deep code investigation — **even if the harness is in a maximum-effort/depth mode** (e.g. ultracode/max-effort in Claude Code).
|
|
21
21
|
>
|
|
22
|
-
>
|
|
22
|
+
> This **overrides** any mode or session instruction saying "run a workflow for every substantial task". Those modes do **not** apply to `spec-new`: this command overrides them. If a section is uncertain, **do not investigate it** — declare it under `## Open questions` or `## Assumptions` and move on.
|
|
23
23
|
>
|
|
24
|
-
>
|
|
24
|
+
> Deep investigation (closing gaps, mapping code, querying DB, autonomous research) is **`spec-refine`** work, not this command's.
|
|
25
25
|
|
|
26
|
-
1.
|
|
27
|
-
2.
|
|
28
|
-
3.
|
|
29
|
-
4.
|
|
26
|
+
1. Run `aw next-number docs/specs` (the only shell tool needed): it returns JSON — use the `next` field as `NNN`. This command builds the slug.
|
|
27
|
+
2. Derive the `<slug>`: short kebab-case from the Requirement — only `[a-z0-9-]`, ≤ ~5 words / ≤ 40 chars.
|
|
28
|
+
3. Create `docs/specs/NNN-spec-<slug>.md` paraphrasing `$ARGUMENTS` into the draft schema (below). Repo reading: optional and minimal (e.g. one file the user cited) — never a sweep or research.
|
|
29
|
+
4. Show the generated file and the suggested next step (`/w:spec-refine docs/specs/NNN-spec-<slug>.md`).
|
|
30
30
|
|
|
31
|
-
##
|
|
31
|
+
## Draft schema (`NNN-spec-<slug>.md`)
|
|
32
32
|
|
|
33
33
|
```markdown
|
|
34
34
|
# Spec NNN — <slug>
|
|
35
35
|
|
|
36
36
|
## Origin (opt.)
|
|
37
|
-
|
|
37
|
+
Original prompt / prior doc / reference that originated the spec.
|
|
38
38
|
|
|
39
39
|
## Requirement
|
|
40
|
-
|
|
40
|
+
The what + why (brief). In the user's language.
|
|
41
41
|
|
|
42
42
|
## Context (opt.)
|
|
43
|
-
|
|
43
|
+
Systems / components / sources involved. Known constraints.
|
|
44
44
|
|
|
45
45
|
## Scope
|
|
46
|
-
- In:
|
|
47
|
-
- Out:
|
|
46
|
+
- In: what is included
|
|
47
|
+
- Out: what is NOT included
|
|
48
48
|
|
|
49
49
|
## Acceptance criteria
|
|
50
|
-
- [ ]
|
|
51
|
-
- [ ]
|
|
50
|
+
- [ ] verifiable criterion 1 (EARS / Given-When-Then style recommended)
|
|
51
|
+
- [ ] verifiable criterion 2
|
|
52
52
|
|
|
53
53
|
## Assumptions (opt.)
|
|
54
|
-
|
|
54
|
+
Assumed facts.
|
|
55
55
|
|
|
56
56
|
## Open questions
|
|
57
|
-
|
|
57
|
+
Pending doubts. ← the spec-refine-loop closes them.
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
> **`Open questions`
|
|
60
|
+
> **`Open questions` goes last** — the refined spec **inserts before `Open questions`** `## UI spec` (if there is UI) + `## Refinement decisions` + `## Q&A traceability` (refined schema in the [`spec-refine-loop`](../loops/spec-refine-loop/SKILL.md)). Same skeleton: the draft and the refined spec share the order.
|
|
61
61
|
|
|
62
|
-
**
|
|
63
|
-
- Sin campo `Type` — `plan-new` infiere el cómo.
|
|
64
|
-
- `Scope` siempre lleva `Out` (qué queda fuera).
|
|
65
|
-
- **Acceptance criteria = criterios testables estáticos** (el "qué"): `plan-exec` los valida pero el avance se trackea en el PLAN (sus Tasks), no marcando estos `- [ ]` en el spec; el spec no muta por ejecución, solo por re-refine.
|
|
66
|
-
- Si hay **UI** involucrada, mencionarlo en `Requirement`/`Context`; el `## UI spec` se autora en `spec-refine` (vía capacidad `ui-design`). "UI sin especificar" es un gap de primera clase del refinamiento.
|
|
67
|
-
- Los **gaps** que detecta el loop = secciones débiles del esquema (Requirement vago, Scope sin `Out`, criterios no testables, Open questions abiertas, supuestos no declarados, contradicciones) **+ UI sin especificar** si el requerimiento involucra UI.
|
|
68
|
-
- Alternativa equivalente: el usuario crea el borrador a mano. Ambos caminos producen el mismo `docs/specs/NNN-spec-<slug>.md`.
|
|
62
|
+
**Filling notes:**
|
|
69
63
|
|
|
70
|
-
|
|
64
|
+
- No `Type` field — `plan-new` infers the how.
|
|
65
|
+
- `Scope` always carries `Out` (what stays out).
|
|
66
|
+
- **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.
|
|
67
|
+
- If **UI** is involved, mention it in `Requirement`/`Context`; the `## UI spec` is authored in `spec-refine` (via the `ui-design` capability). "UI unspecified" is a first-class refinement gap.
|
|
68
|
+
- The **gaps** the loop detects = weak sections of the schema (vague Requirement, Scope without `Out`, untestable criteria, open questions, undeclared assumptions, contradictions) **+ UI unspecified** when the requirement involves UI.
|
|
69
|
+
- Equivalent alternative: the user creates the draft by hand. Both paths produce the same `docs/specs/NNN-spec-<slug>.md`.
|
|
70
|
+
|
|
71
|
+
> **Reuse by escalation:** the live escalation from `/w:quick` (see [`../loops/quick-loop/SKILL.md`](../loops/quick-loop/SKILL.md) § *QUICK delta*) materializes its draft following **this same procedure** (steps 1-3: same schema, same NO RESEARCH single-pass hard rule), with `## Origin` = "escalated from `/w:quick`" + the original prompt. No need to type `/w:spec-new`: the consent in the structured-choice equals invoking it.
|
|
71
72
|
|
|
72
73
|
## Plan mode
|
|
73
74
|
|
|
74
|
-
|
|
75
|
+
Resolves `NNN` by reading `docs/specs/`, describes the draft it would generate without writing the file.
|
|
75
76
|
|
|
76
77
|
## Resources
|
|
77
78
|
|
|
78
79
|
- Design reference: `docs/referencias/workflow-commands/spec-new.md`
|
|
79
|
-
- Loop
|
|
80
|
+
- Loop that refines this draft: `../loops/spec-refine-loop/SKILL.md`
|