@brunosps00/dev-workflow 0.9.0 → 0.11.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 +48 -20
- package/lib/constants.js +2 -10
- package/lib/init.js +20 -3
- package/lib/migrate-gsd.js +1 -1
- package/lib/utils.js +8 -3
- package/package.json +1 -1
- package/scaffold/en/commands/dw-analyze-project.md +61 -0
- package/scaffold/en/commands/dw-autopilot.md +6 -6
- package/scaffold/en/commands/dw-brainstorm.md +1 -1
- package/scaffold/en/commands/dw-bugfix.md +1 -0
- package/scaffold/en/commands/dw-code-review.md +29 -0
- package/scaffold/en/commands/dw-commit.md +6 -0
- package/scaffold/en/commands/dw-create-prd.md +16 -0
- package/scaffold/en/commands/dw-create-tasks.md +42 -0
- package/scaffold/en/commands/dw-create-techspec.md +19 -0
- package/scaffold/en/commands/dw-deep-research.md +6 -0
- package/scaffold/en/commands/dw-deps-audit.md +1 -0
- package/scaffold/en/commands/dw-find-skills.md +4 -4
- package/scaffold/en/commands/dw-fix-qa.md +1 -0
- package/scaffold/en/commands/dw-generate-pr.md +1 -0
- package/scaffold/en/commands/dw-help.md +9 -29
- package/scaffold/en/commands/dw-intel.md +1 -1
- package/scaffold/en/commands/dw-refactoring-analysis.md +2 -1
- package/scaffold/en/commands/dw-review-implementation.md +28 -2
- package/scaffold/en/commands/dw-run-plan.md +2 -2
- package/scaffold/en/templates/constitution-template.md +111 -0
- package/scaffold/en/templates/idea-onepager.md +1 -1
- package/scaffold/pt-br/commands/dw-analyze-project.md +61 -0
- package/scaffold/pt-br/commands/dw-autopilot.md +6 -6
- package/scaffold/pt-br/commands/dw-brainstorm.md +1 -1
- package/scaffold/pt-br/commands/dw-bugfix.md +1 -0
- package/scaffold/pt-br/commands/dw-code-review.md +29 -0
- package/scaffold/pt-br/commands/dw-commit.md +6 -0
- package/scaffold/pt-br/commands/dw-create-prd.md +16 -0
- package/scaffold/pt-br/commands/dw-create-tasks.md +42 -0
- package/scaffold/pt-br/commands/dw-create-techspec.md +19 -0
- package/scaffold/pt-br/commands/dw-deep-research.md +6 -0
- package/scaffold/pt-br/commands/dw-deps-audit.md +1 -0
- package/scaffold/pt-br/commands/dw-find-skills.md +4 -4
- package/scaffold/pt-br/commands/dw-fix-qa.md +1 -0
- package/scaffold/pt-br/commands/dw-generate-pr.md +1 -0
- package/scaffold/pt-br/commands/dw-help.md +9 -29
- package/scaffold/pt-br/commands/dw-intel.md +1 -1
- package/scaffold/pt-br/commands/dw-refactoring-analysis.md +2 -1
- package/scaffold/pt-br/commands/dw-review-implementation.md +21 -2
- package/scaffold/pt-br/commands/dw-run-plan.md +2 -2
- package/scaffold/pt-br/templates/constitution-template.md +111 -0
- package/scaffold/pt-br/templates/idea-onepager.md +1 -1
- package/scaffold/skills/dw-codebase-intel/SKILL.md +1 -0
- package/scaffold/skills/dw-codebase-intel/references/api-design-discipline.md +138 -0
- package/scaffold/skills/dw-debug-protocol/SKILL.md +106 -0
- package/scaffold/skills/dw-debug-protocol/references/error-categorization.md +127 -0
- package/scaffold/skills/dw-debug-protocol/references/non-reproducible-strategy.md +108 -0
- package/scaffold/skills/dw-debug-protocol/references/six-step-triage.md +139 -0
- package/scaffold/skills/dw-debug-protocol/references/stop-the-line.md +52 -0
- package/scaffold/skills/dw-git-discipline/SKILL.md +120 -0
- package/scaffold/skills/dw-git-discipline/references/atomic-commits-discipline.md +158 -0
- package/scaffold/skills/dw-git-discipline/references/branch-hygiene.md +150 -0
- package/scaffold/skills/dw-git-discipline/references/trunk-based-pattern.md +82 -0
- package/scaffold/skills/dw-memory/SKILL.md +1 -2
- package/scaffold/skills/dw-simplification/SKILL.md +142 -0
- package/scaffold/skills/dw-simplification/references/behavior-preserving.md +148 -0
- package/scaffold/skills/dw-simplification/references/chestertons-fence.md +152 -0
- package/scaffold/skills/dw-simplification/references/complexity-metrics.md +147 -0
- package/scaffold/skills/dw-source-grounding/SKILL.md +128 -0
- package/scaffold/skills/dw-source-grounding/references/citation-protocol.md +108 -0
- package/scaffold/skills/dw-source-grounding/references/freshness-check.md +108 -0
- package/scaffold/skills/dw-source-grounding/references/source-priority.md +146 -0
- package/scaffold/skills/dw-verify/SKILL.md +0 -1
- package/scaffold/skills/vercel-react-best-practices/SKILL.md +4 -0
- package/scaffold/skills/vercel-react-best-practices/references/perf-discipline.md +122 -0
- package/scaffold/skills/webapp-testing/SKILL.md +5 -0
- package/scaffold/skills/webapp-testing/references/security-boundary.md +115 -0
- package/scaffold/skills/webapp-testing/references/three-workflow-patterns.md +144 -0
- package/scaffold/templates-overrides-readme.md +75 -0
- package/scaffold/en/commands/dw-execute-phase.md +0 -149
- package/scaffold/en/commands/dw-plan-checker.md +0 -144
- package/scaffold/en/commands/dw-quick.md +0 -103
- package/scaffold/en/commands/dw-resume.md +0 -84
- package/scaffold/pt-br/commands/dw-execute-phase.md +0 -149
- package/scaffold/pt-br/commands/dw-plan-checker.md +0 -144
- package/scaffold/pt-br/commands/dw-quick.md +0 -103
- package/scaffold/pt-br/commands/dw-resume.md +0 -84
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Template Overrides
|
|
2
|
+
|
|
3
|
+
Files in this directory override the corresponding templates in `.dw/templates/`. Use this when your team needs a customized PRD/TechSpec/Task/etc. shape **without** losing the ability to receive `dev-workflow` updates.
|
|
4
|
+
|
|
5
|
+
## How it works
|
|
6
|
+
|
|
7
|
+
- During `dev-workflow init` or `dev-workflow update`, the CLI copies templates from the package into `.dw/templates/`.
|
|
8
|
+
- Before writing each file, the CLI checks `.dw/templates/overrides/` for a same-named file.
|
|
9
|
+
- If found, **the override is preserved and the core template is skipped**. Your customization wins.
|
|
10
|
+
- If not found, the core template is installed/updated normally.
|
|
11
|
+
|
|
12
|
+
## How to override a template
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# 1. Copy the template you want to customize from .dw/templates/ to .dw/templates/overrides/
|
|
16
|
+
cp .dw/templates/prd-template.md .dw/templates/overrides/prd-template.md
|
|
17
|
+
|
|
18
|
+
# 2. Edit the override to fit your team's process
|
|
19
|
+
$EDITOR .dw/templates/overrides/prd-template.md
|
|
20
|
+
|
|
21
|
+
# 3. Commit it. Future updates won't touch this file.
|
|
22
|
+
git add .dw/templates/overrides/prd-template.md
|
|
23
|
+
git commit -m "chore(templates): customize PRD template for our team"
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The override takes effect immediately. Commands that consume the template (`/dw-create-prd`, etc.) will read from `.dw/templates/<name>.md`, which is preserved as your edited copy.
|
|
27
|
+
|
|
28
|
+
## How to revert an override
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# 1. Delete the override
|
|
32
|
+
rm .dw/templates/overrides/prd-template.md
|
|
33
|
+
|
|
34
|
+
# 2. Re-run dev-workflow update to restore the core template
|
|
35
|
+
npx @brunosps00/dev-workflow update
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## When an override is appropriate
|
|
39
|
+
|
|
40
|
+
- Adding required sections specific to your industry (compliance, finance, healthcare).
|
|
41
|
+
- Removing sections that don't apply.
|
|
42
|
+
- Renaming sections to match your team's vocabulary.
|
|
43
|
+
- Embedding links to internal tools, dashboards, runbooks.
|
|
44
|
+
|
|
45
|
+
## When an override is **not** appropriate
|
|
46
|
+
|
|
47
|
+
- Removing critical-path sections like FR numbering or test plans — downstream commands rely on these.
|
|
48
|
+
- Adding fields that conflict with the YAML frontmatter schema.
|
|
49
|
+
- Anything that breaks `/dw-create-techspec` or `/dw-create-tasks` cross-references.
|
|
50
|
+
|
|
51
|
+
If in doubt, run the workflow end-to-end after editing — the consistency check at the end of `/dw-create-tasks` will surface most structural breakages.
|
|
52
|
+
|
|
53
|
+
## Versioning your overrides
|
|
54
|
+
|
|
55
|
+
When `dev-workflow` releases a new minor version, the core templates may change shape (new sections, renamed fields). Your override will continue to work, but it might lack the new sections.
|
|
56
|
+
|
|
57
|
+
Recommended cadence: when you upgrade `dev-workflow`, `diff` your override against the new core template:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
diff .dw/templates/overrides/prd-template.md .dw/templates/prd-template.md
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Merge in anything you want from upstream. The override stays canonical; the core template is just a reference.
|
|
64
|
+
|
|
65
|
+
## Subdirectories
|
|
66
|
+
|
|
67
|
+
Overrides can mirror the directory structure of `.dw/templates/`. For example, to override a file inside `functional-doc/`:
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
.dw/templates/overrides/
|
|
71
|
+
└── functional-doc/
|
|
72
|
+
└── e2e-runbook.md
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
The resolver descends recursively — each leaf file is checked independently against its corresponding path under `overrides/`.
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
<system_instructions>
|
|
2
|
-
You are a phase execution orchestrator. Your job is to spawn the `dw-executor` agent (from the `dw-execute-phase` bundled skill) to execute every task in `.dw/spec/prd-<slug>/tasks.md` in waves, with one atomic commit per task. Before spawning the executor, you MUST gate on the `dw-plan-checker` agent — execution does not start until plan-checker returns PASS.
|
|
3
|
-
|
|
4
|
-
<critical>NEVER execute without plan-checker PASS. The gate is non-negotiable. If plan-checker returns REVISE or BLOCK, abort and surface the verdict.</critical>
|
|
5
|
-
<critical>One commit per task. The executor enforces this; do not bypass.</critical>
|
|
6
|
-
<critical>Deviation Rule 3 (architectural conflict) aborts execution. Do not auto-retry.</critical>
|
|
7
|
-
|
|
8
|
-
## When to Use
|
|
9
|
-
|
|
10
|
-
- After `/dw-create-tasks` produces `tasks.md` and you want to execute the entire phase
|
|
11
|
-
- When `/dw-autopilot` reaches the execution stage
|
|
12
|
-
- After resolving REVISE issues from a previous plan-checker run
|
|
13
|
-
- NOT for single-task changes (use `/dw-run-task` instead)
|
|
14
|
-
- NOT for greenfield scaffolding (use `/dw-new-project` instead)
|
|
15
|
-
|
|
16
|
-
## Pipeline Position
|
|
17
|
-
|
|
18
|
-
**Predecessor:** `/dw-create-tasks` (and optionally `/dw-plan-checker` run manually first) | **Successor:** `/dw-run-qa` to validate against PRD, then `/dw-code-review` and `/dw-generate-pr`
|
|
19
|
-
|
|
20
|
-
## Complementary Skills
|
|
21
|
-
|
|
22
|
-
| Skill | Trigger |
|
|
23
|
-
|-------|---------|
|
|
24
|
-
| `dw-execute-phase` | **ALWAYS** — source of `dw-executor` and `dw-plan-checker` agents and reference docs (`wave-coordination.md`, `plan-verification.md`, `atomic-commits.md`) |
|
|
25
|
-
| `dw-codebase-intel` | Optional — executor reads `.dw/intel/` for codebase facts during implementation |
|
|
26
|
-
| `dw-verify` | **ALWAYS** — VERIFICATION REPORT after each phase completes (test + lint + build PASS) |
|
|
27
|
-
|
|
28
|
-
## Input Variables
|
|
29
|
-
|
|
30
|
-
| Variable | Description | Example |
|
|
31
|
-
|----------|-------------|---------|
|
|
32
|
-
| `{{PRD_PATH}}` | Path to the PRD folder containing `tasks.md` | `.dw/spec/prd-checkout-v2` |
|
|
33
|
-
| `{{START_FROM}}` | Optional. Resume from task NN (default 01) | `04` |
|
|
34
|
-
| `{{MODE}}` | Optional. `full` (default), `wave-only N`, `up-to-task NN` | `full` |
|
|
35
|
-
|
|
36
|
-
## Flags
|
|
37
|
-
|
|
38
|
-
| Flag | Behavior |
|
|
39
|
-
|------|----------|
|
|
40
|
-
| (default) | Run all waves to completion with plan-checker gate |
|
|
41
|
-
| `--skip-check` | DANGEROUS — skip plan-checker gate. Only allowed if plan-checker ran <30 min ago and returned PASS (verifier audit log). |
|
|
42
|
-
| `--dry-run` | Run plan-checker only; do not spawn executor. |
|
|
43
|
-
| `--from <NN>` | Resume from task NN (skips earlier tasks). Use with `/dw-resume`. |
|
|
44
|
-
|
|
45
|
-
## File Locations
|
|
46
|
-
|
|
47
|
-
- PRD: `{{PRD_PATH}}/prd.md`
|
|
48
|
-
- TechSpec: `{{PRD_PATH}}/techspec.md`
|
|
49
|
-
- Tasks: `{{PRD_PATH}}/tasks.md` (the plan being executed)
|
|
50
|
-
- Per-task detail: `{{PRD_PATH}}/<NN>_task.md`
|
|
51
|
-
- Deviations log: `{{PRD_PATH}}/deviations.md`
|
|
52
|
-
- Phase summary (output): `{{PRD_PATH}}/SUMMARY.md`
|
|
53
|
-
- Active session (checkpoint): `{{PRD_PATH}}/active-session.md`
|
|
54
|
-
- Skill source: `.agents/skills/dw-execute-phase/{SKILL.md, agents/*.md, references/*.md}`
|
|
55
|
-
|
|
56
|
-
## Required Behavior
|
|
57
|
-
|
|
58
|
-
### Stage 1 — Plan-checker gate
|
|
59
|
-
|
|
60
|
-
Spawn `dw-plan-checker` agent with the PRD path. The agent runs the 6-dimension verification (requirement coverage, task completeness, dependency soundness, artifact wiring, context budget, constraint compliance).
|
|
61
|
-
|
|
62
|
-
Three possible verdicts:
|
|
63
|
-
|
|
64
|
-
- **PASS** → proceed to Stage 2
|
|
65
|
-
- **REVISE** → abort. Print the issues. Suggest re-running `/dw-create-tasks` with the issues as input. Exit status: `PHASE-REVISE-NEEDED`.
|
|
66
|
-
- **BLOCK** → abort. Print the issues with file:line citations. Exit status: `PHASE-BLOCKED`. User must resolve manually before re-running.
|
|
67
|
-
|
|
68
|
-
If `--skip-check` is passed AND a recent plan-checker PASS exists in audit log (within 30 min), skip Stage 1. Otherwise reject the flag.
|
|
69
|
-
|
|
70
|
-
### Stage 2 — Executor dispatch
|
|
71
|
-
|
|
72
|
-
Spawn `dw-executor` agent with:
|
|
73
|
-
|
|
74
|
-
- `prd_path: {{PRD_PATH}}`
|
|
75
|
-
- `start_from: {{START_FROM}}` (default `01`)
|
|
76
|
-
- `mode: {{MODE}}` (default `full`)
|
|
77
|
-
- `required_reading:` block citing `SKILL.md`, `agents/executor.md`, `references/wave-coordination.md`, `references/atomic-commits.md`
|
|
78
|
-
|
|
79
|
-
The executor:
|
|
80
|
-
|
|
81
|
-
1. Computes waves from `Depends on:` fields
|
|
82
|
-
2. For each wave, dispatches subagents in parallel (one per task)
|
|
83
|
-
3. Each subagent implements + verifies + commits atomically
|
|
84
|
-
4. Marks `[x]` in `tasks.md` after each task commits
|
|
85
|
-
5. Writes `SUMMARY.md` after the final wave
|
|
86
|
-
6. Checkpoints to `active-session.md` if context budget hits 70%
|
|
87
|
-
|
|
88
|
-
### Stage 3 — Verification
|
|
89
|
-
|
|
90
|
-
After executor returns, run `dw-verify` skill: full project test + lint + build must PASS.
|
|
91
|
-
|
|
92
|
-
If verification fails → status `PHASE-VERIFICATION-FAILED`. The phase committed code (atomically per task) but the aggregate project state has issues. Surface to user — likely needs `/dw-fix-qa` next.
|
|
93
|
-
|
|
94
|
-
### Stage 4 — Report
|
|
95
|
-
|
|
96
|
-
Print:
|
|
97
|
-
|
|
98
|
-
```
|
|
99
|
-
## Phase Execution Complete
|
|
100
|
-
|
|
101
|
-
PRD: {{PRD_PATH}}
|
|
102
|
-
Status: <COMPLETE | PARTIAL | CHECKPOINT>
|
|
103
|
-
Tasks: <N> total, <N> committed, <N> deviations
|
|
104
|
-
Waves: <N> (max width: <N>)
|
|
105
|
-
Duration: <minutes>
|
|
106
|
-
Final commit: <SHA>
|
|
107
|
-
|
|
108
|
-
VERIFICATION REPORT:
|
|
109
|
-
- Lint: PASS/FAIL
|
|
110
|
-
- Tests: PASS/FAIL
|
|
111
|
-
- Build: PASS/FAIL
|
|
112
|
-
|
|
113
|
-
Next steps:
|
|
114
|
-
- Run /dw-run-qa to validate against PRD acceptance criteria
|
|
115
|
-
- Run /dw-code-review for the formal Level 3 review
|
|
116
|
-
- Then /dw-generate-pr to ship
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
## Critical Rules
|
|
120
|
-
|
|
121
|
-
- <critical>plan-checker PASS is a hard gate. NEVER execute without it (except with `--skip-check` AND a fresh prior PASS).</critical>
|
|
122
|
-
- <critical>The executor owns commit format. NEVER post-process commits from this command.</critical>
|
|
123
|
-
- <critical>Rule 3 deviations (architectural conflicts) abort the phase. Do not auto-retry.</critical>
|
|
124
|
-
- <critical>Checkpoint > push-through. If the executor checkpoints, do NOT auto-restart; let the user invoke `/dw-resume`.</critical>
|
|
125
|
-
- Do NOT push to remote. `/dw-generate-pr` handles the push.
|
|
126
|
-
- Do NOT skip dimensions in plan-checker via flags. Plan-checker is non-negotiable.
|
|
127
|
-
|
|
128
|
-
## Error Handling
|
|
129
|
-
|
|
130
|
-
- Plan-checker returns BLOCK → exit `PHASE-BLOCKED`, surface issues, no auto-replan
|
|
131
|
-
- Executor returns `EXEC-BLOCKED` (Rule 3 deviation) → exit `PHASE-BLOCKED`, the deviation is in `deviations.md`
|
|
132
|
-
- Executor returns `EXEC-PARTIAL` → some tasks committed, recoverable via `/dw-resume`
|
|
133
|
-
- Executor returns `CHECKPOINT` → context budget exhausted, `/dw-resume` to continue
|
|
134
|
-
- Plan-checker times out (>5 min) → exit with status `PLAN-CHECK-TIMEOUT`, suggest reducing phase size
|
|
135
|
-
|
|
136
|
-
## Integration With Other dw-* Commands
|
|
137
|
-
|
|
138
|
-
- **`/dw-create-tasks`** — predecessor; produces the `tasks.md` this command executes
|
|
139
|
-
- **`/dw-plan-checker`** — manual invocation of just the gate (this command bundles it)
|
|
140
|
-
- **`/dw-resume`** — restores from `active-session.md` after CHECKPOINT
|
|
141
|
-
- **`/dw-run-task`** — runs a single task; `/dw-execute-phase` runs the whole phase
|
|
142
|
-
- **`/dw-run-plan`** — older command; v0.9.0 makes it an alias for this command (both call the same agents)
|
|
143
|
-
- **`/dw-run-qa`** — successor; validates the implemented phase against PRD
|
|
144
|
-
|
|
145
|
-
## Inspired by
|
|
146
|
-
|
|
147
|
-
`dw-execute-phase` is dev-workflow-native. The two-stage gate-then-execute pattern, the wave-based parallel dispatch, atomic-commit-per-task, deviation handling, and checkpoint protocol are adapted from [`get-shit-done-cc`](https://github.com/gsd-build/get-shit-done) (`/gsd-execute-phase`, `gsd-executor`, `gsd-plan-checker`) by gsd-build (MIT license). dev-workflow specifics: writes to `.dw/spec/prd-<slug>/` (not `.planning/<phase>/`), uses dev-workflow's PRD/TechSpec/Tasks hierarchy, integrates with `dw-verify` and `dw-codebase-intel` skills.
|
|
148
|
-
|
|
149
|
-
</system_instructions>
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
<system_instructions>
|
|
2
|
-
You are a plan verification orchestrator. Your job is to spawn the `dw-plan-checker` agent (from the `dw-execute-phase` bundled skill) to verify that a phase's `tasks.md` will achieve the PRD goal — BEFORE any code is touched.
|
|
3
|
-
|
|
4
|
-
This is a standalone manual gate. `/dw-execute-phase` and `/dw-autopilot` invoke the same agent automatically; this command lets you run just the gate to inspect the plan quality without committing to execution.
|
|
5
|
-
|
|
6
|
-
<critical>This command is read-only. Plan-checker NEVER modifies files.</critical>
|
|
7
|
-
<critical>Output one of three verdicts: PASS, REVISE, BLOCK. No middle ground.</critical>
|
|
8
|
-
|
|
9
|
-
## When to Use
|
|
10
|
-
|
|
11
|
-
- Before invoking `/dw-execute-phase` if you want to inspect the plan quality first
|
|
12
|
-
- After a partial execution to verify remaining tasks still make sense
|
|
13
|
-
- After manual edits to `tasks.md` (always re-verify before re-executing)
|
|
14
|
-
- During `/dw-create-tasks` revisions to confirm the planner addressed prior REVISE issues
|
|
15
|
-
- NOT for verifying implementation correctness (use `/dw-run-qa`)
|
|
16
|
-
- NOT for code-quality review (use `/dw-code-review`)
|
|
17
|
-
|
|
18
|
-
## Pipeline Position
|
|
19
|
-
|
|
20
|
-
**Predecessor:** `/dw-create-tasks` (or manual edits to `tasks.md`) | **Successor:** `/dw-execute-phase` if PASS; `/dw-create-tasks --revise` if REVISE; manual intervention if BLOCK
|
|
21
|
-
|
|
22
|
-
## Complementary Skills
|
|
23
|
-
|
|
24
|
-
| Skill | Trigger |
|
|
25
|
-
|-------|---------|
|
|
26
|
-
| `dw-execute-phase` | **ALWAYS** — source of `dw-plan-checker` agent and `references/plan-verification.md` |
|
|
27
|
-
| `dw-codebase-intel` | Optional — agent reads `.dw/intel/` to verify plan against actual codebase facts |
|
|
28
|
-
|
|
29
|
-
## Input Variables
|
|
30
|
-
|
|
31
|
-
| Variable | Description | Example |
|
|
32
|
-
|----------|-------------|---------|
|
|
33
|
-
| `{{PRD_PATH}}` | Path to the PRD folder containing `tasks.md` | `.dw/spec/prd-checkout-v2` |
|
|
34
|
-
|
|
35
|
-
## File Locations
|
|
36
|
-
|
|
37
|
-
- Inputs (read-only): `{{PRD_PATH}}/{prd.md, techspec.md, tasks.md, <NN>_task.md}`, `.dw/rules/*.md`, `.dw/intel/*` (if exists), `./CLAUDE.md`
|
|
38
|
-
- Audit log (append-only): `.dw/audit/plan-checks-<YYYY-MM-DD>.log` (records each verdict for `--skip-check` audit trail)
|
|
39
|
-
|
|
40
|
-
## Required Behavior
|
|
41
|
-
|
|
42
|
-
### 1. Load context
|
|
43
|
-
|
|
44
|
-
Verify the PRD path exists and contains `tasks.md`. Read `prd.md`, `techspec.md`, `tasks.md`, and any `<NN>_task.md` files referenced.
|
|
45
|
-
|
|
46
|
-
### 2. Spawn the agent
|
|
47
|
-
|
|
48
|
-
Spawn `dw-plan-checker` agent with:
|
|
49
|
-
|
|
50
|
-
- `prd_path: {{PRD_PATH}}`
|
|
51
|
-
- `required_reading:` block citing `.agents/skills/dw-execute-phase/SKILL.md` and `.agents/skills/dw-execute-phase/references/plan-verification.md`
|
|
52
|
-
|
|
53
|
-
The agent runs the 6-dimension verification:
|
|
54
|
-
|
|
55
|
-
1. **Requirement Coverage** — every RF-XX has a task
|
|
56
|
-
2. **Task Completeness** — files / action / verification / done present
|
|
57
|
-
3. **Dependency Soundness** — no cycles, no broken refs, waves ≤ 8 wide
|
|
58
|
-
4. **Artifact Wiring** — every produced artifact is consumed downstream or referenced in PRD
|
|
59
|
-
5. **Context Budget** — ≤ 12 tasks, ≤ 30 aggregate files
|
|
60
|
-
6. **Constraint Compliance** — no violations of `.dw/rules/`, CONTEXT.md `## Decisions`, CLAUDE.md
|
|
61
|
-
|
|
62
|
-
### 3. Process verdict
|
|
63
|
-
|
|
64
|
-
**PASS:**
|
|
65
|
-
|
|
66
|
-
- Append to `.dw/audit/plan-checks-<YYYY-MM-DD>.log`:
|
|
67
|
-
```
|
|
68
|
-
<ISO-8601> PASS {{PRD_PATH}} <task_count> tasks, <wave_count> waves
|
|
69
|
-
```
|
|
70
|
-
- Print: `Plan verification PASS — proceed to /dw-execute-phase {{PRD_PATH}}`
|
|
71
|
-
|
|
72
|
-
**REVISE:**
|
|
73
|
-
|
|
74
|
-
- Append to audit log with `REVISE` verdict
|
|
75
|
-
- Print the issues per dimension
|
|
76
|
-
- Suggest: `/dw-create-tasks --revise --issues <generated-issues-file>` OR manual edits
|
|
77
|
-
- Exit status: `PLAN-CHECK-REVISE`
|
|
78
|
-
|
|
79
|
-
**BLOCK:**
|
|
80
|
-
|
|
81
|
-
- Append to audit log with `BLOCK` verdict
|
|
82
|
-
- Print the conflicting issues with file:line
|
|
83
|
-
- Suggest: resolve the locked-decision conflict (update CONTEXT.md, OR change the plan to honor it)
|
|
84
|
-
- Exit status: `PLAN-CHECK-BLOCK`
|
|
85
|
-
|
|
86
|
-
### 4. Output format
|
|
87
|
-
|
|
88
|
-
```markdown
|
|
89
|
-
# Plan Verification — <prd-slug>
|
|
90
|
-
|
|
91
|
-
**Verdict:** PASS | REVISE | BLOCK
|
|
92
|
-
**PRD:** {{PRD_PATH}}
|
|
93
|
-
**Tasks file:** {{PRD_PATH}}/tasks.md (<N> tasks across <M> waves)
|
|
94
|
-
**Verified at:** <ISO-8601>
|
|
95
|
-
|
|
96
|
-
## Dimensions
|
|
97
|
-
|
|
98
|
-
| # | Dimension | Status | Issues |
|
|
99
|
-
|---|-----------|--------|--------|
|
|
100
|
-
| 1 | Requirement Coverage | ✓ / ✗ | <count> |
|
|
101
|
-
| 2 | Task Completeness | ✓ / ✗ | <count> |
|
|
102
|
-
| 3 | Dependency Soundness | ✓ / ✗ | <count> |
|
|
103
|
-
| 4 | Artifact Wiring | ✓ / ✗ | <count> |
|
|
104
|
-
| 5 | Context Budget | ✓ / ✗ | <count> |
|
|
105
|
-
| 6 | Constraint Compliance | ✓ / ✗ | <count> |
|
|
106
|
-
|
|
107
|
-
## Issues (REVISE/BLOCK only)
|
|
108
|
-
|
|
109
|
-
[detailed issues per dimension; cite file:line]
|
|
110
|
-
|
|
111
|
-
## Recommendation
|
|
112
|
-
|
|
113
|
-
- PASS → `/dw-execute-phase {{PRD_PATH}}`
|
|
114
|
-
- REVISE → `/dw-create-tasks --revise` and re-run this command
|
|
115
|
-
- BLOCK → resolve [list of locked-decision conflicts] then re-plan
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
## Critical Rules
|
|
119
|
-
|
|
120
|
-
- <critical>The agent owns verification logic. NEVER inline checks in this command.</critical>
|
|
121
|
-
- <critical>Read-only. Plan-checker MUST NOT modify any file in the project.</critical>
|
|
122
|
-
- <critical>Audit log is append-only. NEVER edit prior entries.</critical>
|
|
123
|
-
- <critical>BLOCK is reserved for hard conflicts (locked decisions, cycles). REVISE is for fixable issues.</critical>
|
|
124
|
-
- Do NOT auto-trigger `/dw-create-tasks` on REVISE. The user decides whether to re-run.
|
|
125
|
-
|
|
126
|
-
## Error Handling
|
|
127
|
-
|
|
128
|
-
- `tasks.md` missing → exit `PLAN-CHECK-FAILED` with hint: "Run `/dw-create-tasks {{PRD_PATH}}` first"
|
|
129
|
-
- `prd.md` missing → exit `PLAN-CHECK-FAILED`: "PRD not found; is the path correct?"
|
|
130
|
-
- Agent times out (>5 min) → exit `PLAN-CHECK-TIMEOUT`: "Plan too large; consider splitting via `/dw-create-tasks --split`"
|
|
131
|
-
- Cycle detected in dependencies → BLOCK with the cycle path; do NOT attempt to break it automatically
|
|
132
|
-
|
|
133
|
-
## Integration With Other dw-* Commands
|
|
134
|
-
|
|
135
|
-
- **`/dw-create-tasks`** — predecessor; produces the `tasks.md` this command verifies
|
|
136
|
-
- **`/dw-execute-phase`** — wraps this command as a gate before execution
|
|
137
|
-
- **`/dw-autopilot`** — wraps `/dw-create-tasks` → this command → `/dw-execute-phase` with hard gates between
|
|
138
|
-
- **`/dw-resume`** — when resuming after a checkpoint, this command verifies the remaining tasks still satisfy the goal
|
|
139
|
-
|
|
140
|
-
## Inspired by
|
|
141
|
-
|
|
142
|
-
`dw-plan-checker` is dev-workflow-native. The 6-dimension goal-backward verification protocol is adapted from [`get-shit-done-cc`](https://github.com/gsd-build/get-shit-done) (`/gsd-plan-phase`, `gsd-plan-checker`) by gsd-build (MIT license). dev-workflow specifics: verifies `tasks.md` (not GSD's PLAN.md), uses dev-workflow's PRD/TechSpec/Tasks vocabulary, audit log for `--skip-check` trail.
|
|
143
|
-
|
|
144
|
-
</system_instructions>
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
<system_instructions>
|
|
2
|
-
You are a quick task executor. This command exists to implement one-off changes with workflow guarantees (validation, atomic commit) without requiring a full PRD.
|
|
3
|
-
|
|
4
|
-
<critical>This command is for small, well-defined changes. If the change needs multiple tasks, redirect to `/dw-create-prd`.</critical>
|
|
5
|
-
<critical>ALWAYS run tests and validation before committing. Workflow guarantees are mandatory even for quick tasks.</critical>
|
|
6
|
-
|
|
7
|
-
## When to Use
|
|
8
|
-
- Use for small changes that don't justify the full pipeline (PRD -> TechSpec -> Tasks)
|
|
9
|
-
- Use for hotfixes, config adjustments, dependency updates, one-off refactors
|
|
10
|
-
- Use when invoked after `/dw-brainstorm --onepager` and the one-pager carries `[IMPROVES]` classification with an MVP Scope fitting in ≤3 files (skip-PRD path)
|
|
11
|
-
- Do NOT use for new features with multiple requirements (use `/dw-create-prd`)
|
|
12
|
-
- Do NOT use for complex bugs (use `/dw-bugfix`)
|
|
13
|
-
|
|
14
|
-
## Pipeline Position
|
|
15
|
-
**Predecessor:** (user's ad-hoc need) | **Successor:** `/dw-commit` (automatic)
|
|
16
|
-
|
|
17
|
-
## Complementary Skills
|
|
18
|
-
|
|
19
|
-
| Skill | Trigger |
|
|
20
|
-
|-------|---------|
|
|
21
|
-
| `dw-verify` | **ALWAYS** — invoked before the commit. Even small changes require a VERIFICATION REPORT PASS (minimal test + lint) before the atomic commit. |
|
|
22
|
-
|
|
23
|
-
## Input Variables
|
|
24
|
-
|
|
25
|
-
| Variable | Description | Example |
|
|
26
|
-
|----------|-------------|---------|
|
|
27
|
-
| `{{DESCRIPTION}}` | Description of the change to implement | "add loading spinner to dashboard" |
|
|
28
|
-
|
|
29
|
-
## Required Behavior
|
|
30
|
-
|
|
31
|
-
1. Read `.dw/rules/` to understand project patterns and conventions
|
|
32
|
-
2. **If a one-pager exists** at `.dw/spec/ideas/<slug>.md` and was passed as input, read it first. If classification is `[IMPROVES]` and MVP Scope fits in ≤3 files, proceed. If `[NEW]` or `[CONSOLIDATES]` with larger scope, warn and redirect to `/dw-create-prd`.
|
|
33
|
-
3. Summarize the change in 1-2 sentences and confirm scope with the user
|
|
34
|
-
4. If the change seems too large (>3 files, >100 lines), warn and suggest `/dw-create-prd`
|
|
35
|
-
5. Implement the change following project conventions
|
|
36
|
-
6. Run relevant existing tests (unit, integration)
|
|
37
|
-
7. Run lint if configured in the project
|
|
38
|
-
8. Invoke `dw-verify` and include the VERIFICATION REPORT in the output before committing. Without PASS, DO NOT commit.
|
|
39
|
-
9. Create atomic semantic commit with the change
|
|
40
|
-
|
|
41
|
-
## Task Tracking
|
|
42
|
-
|
|
43
|
-
<critical>Every `/dw-quick` execution writes a tracking entry to `.dw/spec/quick/<slug>.md` so the change is discoverable later.</critical>
|
|
44
|
-
|
|
45
|
-
Tracking format (single file per quick task):
|
|
46
|
-
|
|
47
|
-
```markdown
|
|
48
|
-
---
|
|
49
|
-
type: quick-task
|
|
50
|
-
schema_version: "1.0"
|
|
51
|
-
status: COMPLETE | PARTIAL | ABORTED
|
|
52
|
-
date: YYYY-MM-DD
|
|
53
|
-
files_touched: [...]
|
|
54
|
-
commit: <SHA>
|
|
55
|
-
---
|
|
56
|
-
|
|
57
|
-
# Quick Task — <slug>
|
|
58
|
-
|
|
59
|
-
## Description
|
|
60
|
-
<one-line description from the user's prompt>
|
|
61
|
-
|
|
62
|
-
## Files
|
|
63
|
-
<list>
|
|
64
|
-
|
|
65
|
-
## Verification
|
|
66
|
-
<dw-verify report excerpt>
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
Subsequent `/dw-intel` queries surface these via the file index.
|
|
70
|
-
|
|
71
|
-
## Codebase Intelligence
|
|
72
|
-
|
|
73
|
-
If `.dw/intel/` exists, query before implementing:
|
|
74
|
-
- Internally run: `/dw-intel "implementation patterns in [target area]"`
|
|
75
|
-
- Follow the patterns found
|
|
76
|
-
|
|
77
|
-
If `.dw/intel/` does NOT exist:
|
|
78
|
-
- Use only `.dw/rules/` as context (or grep directly if `.dw/rules/` is also absent)
|
|
79
|
-
|
|
80
|
-
## Response Format
|
|
81
|
-
|
|
82
|
-
### 1. Scope
|
|
83
|
-
- Change: [description]
|
|
84
|
-
- Affected files: [list]
|
|
85
|
-
- Estimate: [small/medium]
|
|
86
|
-
|
|
87
|
-
### 2. Implementation
|
|
88
|
-
- File-by-file changes
|
|
89
|
-
|
|
90
|
-
### 3. Validation
|
|
91
|
-
- Tests run: [result]
|
|
92
|
-
- Lint: [result]
|
|
93
|
-
|
|
94
|
-
### 4. Commit
|
|
95
|
-
- Message: [semantic commit]
|
|
96
|
-
|
|
97
|
-
## Closing
|
|
98
|
-
|
|
99
|
-
At the end, inform:
|
|
100
|
-
- Change implemented and committed
|
|
101
|
-
- Whether to push or continue with more changes
|
|
102
|
-
|
|
103
|
-
</system_instructions>
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
<system_instructions>
|
|
2
|
-
You are a session continuity assistant. This command exists to restore context from the last session and suggest the next workflow step.
|
|
3
|
-
|
|
4
|
-
<critical>This command is read-only. Do NOT modify code, do NOT execute tasks, do NOT create files. Only analyze state and recommend the next step.</critical>
|
|
5
|
-
|
|
6
|
-
## When to Use
|
|
7
|
-
- Use when starting a new session to pick up where you left off
|
|
8
|
-
- Use when unsure which command to run next
|
|
9
|
-
- Do NOT use in the middle of a task or plan execution
|
|
10
|
-
|
|
11
|
-
## Pipeline Position
|
|
12
|
-
**Predecessor:** (session start) | **Successor:** any dw-* command
|
|
13
|
-
|
|
14
|
-
## Complementary Skills
|
|
15
|
-
|
|
16
|
-
| Skill | Trigger |
|
|
17
|
-
|-------|---------|
|
|
18
|
-
| `dw-memory` | **ALWAYS** — for each active PRD identified, read `.dw/spec/<prd>/MEMORY.md` (shared) to reconstitute constraints, decisions, and handoff notes from the prior session. Include in the summary presented to the user. |
|
|
19
|
-
|
|
20
|
-
## Required Behavior
|
|
21
|
-
|
|
22
|
-
<critical>BEFORE any analysis, check for an interrupted autopilot. Look for `autopilot-state.json` in ALL directories inside `.dw/spec/`. If you find one without `"status": "completed"`, autopilot resumption takes PRIORITY over any other suggestion.</critical>
|
|
23
|
-
|
|
24
|
-
### Interrupted Autopilot Detection
|
|
25
|
-
|
|
26
|
-
1. Search for `.dw/spec/*/autopilot-state.json`
|
|
27
|
-
2. If you find a file with `"mode": "autopilot"` and no `"status": "completed"`:
|
|
28
|
-
- Present: original wish, step where it stopped, steps already completed
|
|
29
|
-
- Ask: **"Found an interrupted autopilot at step [N] ([step name]). Do you want to continue where you left off?"**
|
|
30
|
-
- If **YES**: run `/dw-autopilot` instructing it to resume from `current_step` using the state file. The autopilot must read the state and skip already completed steps.
|
|
31
|
-
- If **NO**: continue with the normal resume flow below
|
|
32
|
-
|
|
33
|
-
### Normal Flow (no pending autopilot)
|
|
34
|
-
|
|
35
|
-
1. Read `.dw/spec/` and identify PRDs with pending tasks (`- [ ]` checkboxes in tasks.md)
|
|
36
|
-
2. Read `git log --oneline -10` to identify the last work performed
|
|
37
|
-
3. Identify the active branch and whether there are uncommitted changes
|
|
38
|
-
4. **Invoke `dw-memory`**: for the active PRD, read `.dw/spec/<prd>/MEMORY.md` and the next pending task's memory (`tasks/<N>_memory.md` if present). Extract durable decisions, cross-task constraints, and handoff notes.
|
|
39
|
-
5. Cross-reference: last active PRD, last completed task, next pending task, memory context
|
|
40
|
-
6. Present the summary in the format below (including a "From where we left off" bullet list based on memory)
|
|
41
|
-
7. Suggest the next command to execute
|
|
42
|
-
|
|
43
|
-
## Cross-Session State
|
|
44
|
-
|
|
45
|
-
<critical>If `.dw/spec/active-session.md` exists (written by `/dw-execute-phase` at checkpoint), reading it is MANDATORY to restore the last-known position.</critical>
|
|
46
|
-
|
|
47
|
-
Read order for cross-session context:
|
|
48
|
-
|
|
49
|
-
1. `.dw/spec/active-session.md` — last completed task, next task, blockers, open deviations (written by `/dw-execute-phase` when it checkpoints at 70% context budget OR when the user signals stop)
|
|
50
|
-
2. `.dw/spec/prd-*/SUMMARY.md` — completed phase summaries (most recent ones)
|
|
51
|
-
3. Latest commits via `git log --oneline -20` — what landed on the current branch
|
|
52
|
-
4. Open deviations via `.dw/spec/prd-*/deviations.md` — any unresolved Rule 1/2/3 entries
|
|
53
|
-
5. Active PRD detection — the directory under `.dw/spec/` whose `tasks.md` has the most recent uncompleted task
|
|
54
|
-
|
|
55
|
-
If `.dw/spec/active-session.md` is absent (no checkpoint was written; clean session boundary), fall back to git log + `tasks.md` state across active PRDs.
|
|
56
|
-
|
|
57
|
-
## Response Format
|
|
58
|
-
|
|
59
|
-
### Session Summary
|
|
60
|
-
- **Last work**: [time ago], branch [name]
|
|
61
|
-
- **Active PRD**: [PRD name]
|
|
62
|
-
- **Tasks**: [N completed] of [total]
|
|
63
|
-
- **Last completed task**: [name]
|
|
64
|
-
- **Next pending task**: [name]
|
|
65
|
-
- **Blockers**: [unresolved dependencies, if any]
|
|
66
|
-
- **Uncommitted changes**: [yes/no]
|
|
67
|
-
|
|
68
|
-
### Suggested Next Step
|
|
69
|
-
- Command: `/dw-[command] [arguments]`
|
|
70
|
-
- Reason: [why this is the logical next step]
|
|
71
|
-
|
|
72
|
-
## Heuristics
|
|
73
|
-
|
|
74
|
-
- If there are uncommitted changes, suggest `/dw-commit` first
|
|
75
|
-
- If all tasks are complete, suggest `/dw-code-review` or `/dw-run-qa`
|
|
76
|
-
- If no active PRD, suggest `/dw-brainstorm` or `/dw-create-prd`
|
|
77
|
-
- If there are pending tasks, suggest `/dw-run-task` or `/dw-run-plan`
|
|
78
|
-
- If the last task failed, suggest investigating the error before continuing
|
|
79
|
-
|
|
80
|
-
## Closing
|
|
81
|
-
|
|
82
|
-
At the end, leave the user ready to execute the next command with a single copy-paste.
|
|
83
|
-
|
|
84
|
-
</system_instructions>
|