prizmkit 1.1.1 → 1.1.3

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.
Files changed (99) hide show
  1. package/bundled/VERSION.json +3 -3
  2. package/bundled/adapters/claude/agent-adapter.js +18 -0
  3. package/bundled/adapters/claude/command-adapter.js +1 -27
  4. package/bundled/agents/prizm-dev-team-critic.md +2 -0
  5. package/bundled/agents/prizm-dev-team-dev.md +2 -0
  6. package/bundled/agents/prizm-dev-team-reviewer.md +2 -0
  7. package/bundled/dev-pipeline/README.md +63 -63
  8. package/bundled/dev-pipeline/assets/feature-list-example.json +1 -1
  9. package/bundled/dev-pipeline/assets/prizm-dev-team-integration.md +1 -1
  10. package/bundled/dev-pipeline/{launch-daemon.sh → launch-feature-daemon.sh} +33 -33
  11. package/bundled/dev-pipeline/launch-refactor-daemon.sh +454 -0
  12. package/bundled/dev-pipeline/lib/branch.sh +1 -1
  13. package/bundled/dev-pipeline/reset-feature.sh +3 -3
  14. package/bundled/dev-pipeline/reset-refactor.sh +312 -0
  15. package/bundled/dev-pipeline/{retry-bug.sh → retry-bugfix.sh} +47 -59
  16. package/bundled/dev-pipeline/retry-feature.sh +41 -54
  17. package/bundled/dev-pipeline/retry-refactor.sh +358 -0
  18. package/bundled/dev-pipeline/run-bugfix.sh +6 -0
  19. package/bundled/dev-pipeline/{run.sh → run-feature.sh} +31 -31
  20. package/bundled/dev-pipeline/run-refactor.sh +787 -0
  21. package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +177 -10
  22. package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +419 -0
  23. package/bundled/dev-pipeline/scripts/init-refactor-pipeline.py +393 -0
  24. package/bundled/dev-pipeline/scripts/update-refactor-status.py +726 -0
  25. package/bundled/dev-pipeline/templates/agent-prompts/critic-code-challenge.md +13 -0
  26. package/bundled/dev-pipeline/templates/agent-prompts/critic-plan-challenge.md +7 -0
  27. package/bundled/dev-pipeline/templates/agent-prompts/dev-fix.md +7 -0
  28. package/bundled/dev-pipeline/templates/agent-prompts/dev-implement.md +26 -0
  29. package/bundled/dev-pipeline/templates/agent-prompts/dev-resume.md +5 -0
  30. package/bundled/dev-pipeline/templates/agent-prompts/reviewer-analyze.md +5 -0
  31. package/bundled/dev-pipeline/templates/agent-prompts/reviewer-review.md +12 -0
  32. package/bundled/dev-pipeline/templates/bootstrap-tier1.md +29 -2
  33. package/bundled/dev-pipeline/templates/bootstrap-tier2.md +8 -7
  34. package/bundled/dev-pipeline/templates/bootstrap-tier3.md +11 -10
  35. package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +2 -3
  36. package/bundled/dev-pipeline/templates/feature-list-schema.json +1 -1
  37. package/bundled/dev-pipeline/templates/refactor-list-schema.json +159 -0
  38. package/bundled/dev-pipeline/templates/sections/ac-verification-checklist.md +13 -0
  39. package/bundled/dev-pipeline/templates/sections/feature-context.md +1 -1
  40. package/bundled/dev-pipeline/templates/sections/phase-analyze-agent.md +9 -8
  41. package/bundled/dev-pipeline/templates/sections/phase-analyze-full.md +9 -8
  42. package/bundled/dev-pipeline/templates/sections/phase-browser-verification.md +2 -1
  43. package/bundled/dev-pipeline/templates/sections/phase-critic-code.md +8 -10
  44. package/bundled/dev-pipeline/templates/sections/phase-critic-plan-full.md +9 -10
  45. package/bundled/dev-pipeline/templates/sections/phase-critic-plan.md +8 -9
  46. package/bundled/dev-pipeline/templates/sections/phase-implement-agent.md +7 -10
  47. package/bundled/dev-pipeline/templates/sections/phase-implement-full.md +8 -15
  48. package/bundled/dev-pipeline/templates/sections/phase-review-agent.md +7 -12
  49. package/bundled/dev-pipeline/templates/sections/phase-review-full.md +8 -19
  50. package/bundled/dev-pipeline/templates/sections/test-failure-recovery.md +75 -0
  51. package/bundled/skills/_metadata.json +33 -6
  52. package/bundled/skills/app-planner/SKILL.md +105 -320
  53. package/bundled/skills/app-planner/assets/app-design-guide.md +101 -0
  54. package/bundled/skills/app-planner/references/frontend-design-guide.md +1 -1
  55. package/bundled/skills/app-planner/references/project-brief-guide.md +49 -80
  56. package/bundled/skills/bug-fix-workflow/SKILL.md +2 -2
  57. package/bundled/skills/bug-planner/SKILL.md +68 -5
  58. package/bundled/skills/bug-planner/scripts/validate-bug-list.py +3 -2
  59. package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +19 -5
  60. package/bundled/skills/{dev-pipeline-launcher → feature-pipeline-launcher}/SKILL.md +32 -32
  61. package/bundled/skills/feature-planner/SKILL.md +337 -0
  62. package/bundled/skills/{app-planner → feature-planner}/assets/evaluation-guide.md +4 -4
  63. package/bundled/skills/{app-planner → feature-planner}/assets/planning-guide.md +3 -171
  64. package/bundled/skills/{app-planner → feature-planner}/references/browser-interaction.md +6 -5
  65. package/bundled/skills/feature-planner/references/decomposition-patterns.md +75 -0
  66. package/bundled/skills/{app-planner → feature-planner}/references/error-recovery.md +8 -8
  67. package/bundled/skills/{app-planner → feature-planner}/references/incremental-feature-planning.md +1 -1
  68. package/bundled/skills/{app-planner/references/new-app-planning.md → feature-planner/references/new-project-planning.md} +1 -1
  69. package/bundled/skills/{app-planner → feature-planner}/scripts/validate-and-generate.py +4 -4
  70. package/bundled/skills/feature-workflow/SKILL.md +23 -23
  71. package/bundled/skills/prizm-kit/SKILL.md +1 -3
  72. package/bundled/skills/prizmkit-analyze/SKILL.md +2 -5
  73. package/bundled/skills/prizmkit-code-review/SKILL.md +2 -2
  74. package/bundled/skills/prizmkit-committer/SKILL.md +4 -8
  75. package/bundled/skills/prizmkit-deploy/SKILL.md +1 -5
  76. package/bundled/skills/prizmkit-implement/SKILL.md +3 -50
  77. package/bundled/skills/prizmkit-init/SKILL.md +5 -77
  78. package/bundled/skills/prizmkit-plan/SKILL.md +1 -12
  79. package/bundled/skills/prizmkit-prizm-docs/SKILL.md +6 -24
  80. package/bundled/skills/prizmkit-prizm-docs/assets/PRIZM-SPEC.md +21 -0
  81. package/bundled/skills/prizmkit-retrospective/SKILL.md +12 -117
  82. package/bundled/skills/recovery-workflow/SKILL.md +166 -316
  83. package/bundled/skills/recovery-workflow/evals/evals.json +29 -13
  84. package/bundled/skills/recovery-workflow/scripts/detect-recovery-state.py +232 -274
  85. package/bundled/skills/refactor-pipeline-launcher/SKILL.md +352 -0
  86. package/bundled/skills/refactor-planner/SKILL.md +436 -0
  87. package/bundled/skills/refactor-planner/assets/planning-guide.md +292 -0
  88. package/bundled/skills/refactor-planner/references/behavior-preservation.md +301 -0
  89. package/bundled/skills/refactor-planner/references/refactor-scoping-guide.md +221 -0
  90. package/bundled/skills/refactor-planner/scripts/validate-and-generate-refactor.py +786 -0
  91. package/bundled/skills/refactor-workflow/SKILL.md +299 -319
  92. package/package.json +1 -1
  93. package/src/clean.js +3 -3
  94. package/src/scaffold.js +6 -6
  95. package/bundled/skills/prizmkit-plan/assets/spec-template.md +0 -56
  96. package/bundled/skills/prizmkit-plan/references/clarify-guide.md +0 -67
  97. package/src/config.js +0 -504
  98. package/src/prompts.js +0 -210
  99. /package/bundled/skills/{dev-pipeline-launcher → feature-pipeline-launcher}/scripts/preflight-check.py +0 -0
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: "dev-pipeline-launcher"
2
+ name: "feature-pipeline-launcher"
3
3
  description: "Launch and manage the dev-pipeline from within an AI CLI session. Start pipeline in background, monitor logs, check status, stop pipeline. Use this skill whenever the user wants to start building features, run the pipeline, check pipeline progress, retry features, or stop the pipeline. Trigger on: 'run pipeline', 'start pipeline', 'start building', 'pipeline status', 'stop pipeline', 'retry feature', 'launch pipeline', 'start implementing', 'check pipeline status', 'stop the pipeline'. (project)"
4
4
  ---
5
5
 
@@ -11,8 +11,8 @@ Launch the autonomous development pipeline from within an AI CLI conversation. T
11
11
 
12
12
  Three execution modes are available. The user chooses one before configuring other options:
13
13
 
14
- 1. **Foreground** (recommended) — `dev-pipeline/run.sh run`. Visible output, direct error feedback, no orphaned processes.
15
- 2. **Background daemon** — `dev-pipeline/launch-daemon.sh`. Runs fully detached, survives AI CLI session closure.
14
+ 1. **Foreground** (recommended) — `dev-pipeline/run-feature.sh run`. Visible output, direct error feedback, no orphaned processes.
15
+ 2. **Background daemon** — `dev-pipeline/launch-feature-daemon.sh`. Runs fully detached, survives AI CLI session closure.
16
16
  3. **Manual** — Display the assembled command(s) only. Do not execute anything. User runs them on their own.
17
17
 
18
18
  ### When to Use
@@ -21,7 +21,7 @@ Three execution modes are available. The user chooses one before configuring oth
21
21
  - "run pipeline", "start pipeline", "start building", "launch dev-pipeline"
22
22
  - "run the features", "execute feature list", "start implementing"
23
23
  - "launch pipeline", "run the pipeline", "start auto-development"
24
- - After app-planner completes: "build it", "start developing from the feature list"
24
+ - After feature-planner completes: "build it", "start developing from the feature list"
25
25
  - "run only F-001 to F-005", "run features F-001,F-003", "only build these features"
26
26
 
27
27
  **Check status** -- User says:
@@ -40,7 +40,7 @@ Three execution modes are available. The user chooses one before configuring oth
40
40
  - "retry F-003", "retry this feature", "retry this node", "re-run this feature"
41
41
 
42
42
  **Do NOT use this skill when:**
43
- - User wants to plan features (use `app-planner` instead)
43
+ - User wants to plan features (use `feature-planner` instead)
44
44
  - User wants to implement a single feature manually within current session (use `prizmkit-implement`)
45
45
  - User wants to define specs/plan (use `prizmkit-plan`)
46
46
 
@@ -48,7 +48,7 @@ Three execution modes are available. The user chooses one before configuring oth
48
48
 
49
49
  Before any action, validate:
50
50
 
51
- 1. **dev-pipeline exists**: Confirm `dev-pipeline/launch-daemon.sh` is present and executable
51
+ 1. **dev-pipeline exists**: Confirm `dev-pipeline/launch-feature-daemon.sh` is present and executable
52
52
  2. **For start**: `feature-list.json` must exist in project root (or user-specified path)
53
53
  3. **Dependencies**: `jq`, `python3`, AI CLI (`cbc` or `claude`) must be in PATH
54
54
  4. **Python version**: Requires Python 3.8+ for dev-pipeline scripts
@@ -62,7 +62,7 @@ command -v playwright-cli && echo "playwright-cli OK" || echo "playwright-cli no
62
62
  ```
63
63
 
64
64
  If `feature-list.json` is missing, inform user:
65
- > "No feature-list.json found. Run the `app-planner` skill first to generate one, or provide a path to your feature list."
65
+ > "No feature-list.json found. Run the `feature-planner` skill first to generate one, or provide a path to your feature list."
66
66
 
67
67
  ### Workflow
68
68
 
@@ -79,7 +79,7 @@ Detect user intent from their message, then follow the corresponding workflow:
79
79
 
80
80
  2. **Check not already running**:
81
81
  ```bash
82
- dev-pipeline/launch-daemon.sh status 2>/dev/null
82
+ dev-pipeline/launch-feature-daemon.sh status 2>/dev/null
83
83
  ```
84
84
  If running, inform user and ask: "Pipeline is already running. Want to restart it, check status, or view logs?"
85
85
 
@@ -129,8 +129,8 @@ Detect user intent from their message, then follow the corresponding workflow:
129
129
  5. **Ask execution mode** (first user decision):
130
130
 
131
131
  Present the three modes and ask the user to choose:
132
- - **(1) Foreground** (recommended) — pipeline runs in the current session via `run.sh run`. Visible output and direct error feedback.
133
- - **(2) Background daemon** — pipeline runs fully detached via `launch-daemon.sh`. Survives AI CLI session closure.
132
+ - **(1) Foreground** (recommended) — pipeline runs in the current session via `run-feature.sh run`. Visible output and direct error feedback.
133
+ - **(2) Background daemon** — pipeline runs fully detached via `launch-feature-daemon.sh`. Survives AI CLI session closure.
134
134
  - **(3) Manual** — display the final assembled commands only. Do not execute anything. User runs them on their own.
135
135
 
136
136
  6. **Ask configuration options** ⚠️ MANDATORY INTERACTIVE STEP — applies to ALL execution modes (Foreground, Background, AND Manual). You MUST ask the user to configure options and WAIT for their response BEFORE proceeding to step 7. Do NOT skip this step or merge it with step 7.
@@ -169,8 +169,6 @@ Detect user intent from their message, then follow the corresponding workflow:
169
169
  | Verbose: On | `VERBOSE=1` |
170
170
  | Max retries: N | `MAX_RETRIES=N` |
171
171
  | Timeout: value | `SESSION_TIMEOUT=<seconds>` |
172
- | "skip browser verify" | `BROWSER_VERIFY=false` |
173
- | "enable browser verify" | `BROWSER_VERIFY=true` |
174
172
 
175
173
  ⚠️ STOP HERE and wait for user response before continuing to step 7.
176
174
 
@@ -178,34 +176,34 @@ Detect user intent from their message, then follow the corresponding workflow:
178
176
 
179
177
  **Foreground command:**
180
178
  ```bash
181
- VERBOSE=1 dev-pipeline/run.sh run feature-list.json
179
+ VERBOSE=1 dev-pipeline/run-feature.sh run feature-list.json
182
180
  ```
183
181
  With all options:
184
182
  ```bash
185
183
  VERBOSE=1 ENABLE_CRITIC=true MAX_RETRIES=5 SESSION_TIMEOUT=3600 \
186
- dev-pipeline/run.sh run feature-list.json --features F-001:F-005
184
+ dev-pipeline/run-feature.sh run feature-list.json --features F-001:F-005
187
185
  ```
188
186
 
189
187
  **Background daemon command:**
190
188
  ```bash
191
- dev-pipeline/launch-daemon.sh start feature-list.json --env "VERBOSE=1"
189
+ dev-pipeline/launch-feature-daemon.sh start feature-list.json --env "VERBOSE=1"
192
190
  ```
193
191
  With all options:
194
192
  ```bash
195
- dev-pipeline/launch-daemon.sh start feature-list.json --features F-001:F-005 \
193
+ dev-pipeline/launch-feature-daemon.sh start feature-list.json --features F-001:F-005 \
196
194
  --env "VERBOSE=1 ENABLE_CRITIC=true MAX_RETRIES=5"
197
195
  ```
198
196
 
199
197
  **Manual mode**: Print the assembled command(s) and **stop here**. Do not execute anything. Do not proceed to step 8.
200
198
  ```
201
199
  # To run in foreground:
202
- VERBOSE=1 dev-pipeline/run.sh run feature-list.json
200
+ VERBOSE=1 dev-pipeline/run-feature.sh run feature-list.json
203
201
 
204
202
  # To run in background (detached):
205
- dev-pipeline/launch-daemon.sh start feature-list.json --env "VERBOSE=1"
203
+ dev-pipeline/launch-feature-daemon.sh start feature-list.json --env "VERBOSE=1"
206
204
 
207
205
  # To check status:
208
- dev-pipeline/run.sh status feature-list.json
206
+ dev-pipeline/run-feature.sh status feature-list.json
209
207
  ```
210
208
 
211
209
  8. **Confirm and launch** (Foreground and Background only — Manual mode ends at step 7):
@@ -225,7 +223,7 @@ Detect user intent from their message, then follow the corresponding workflow:
225
223
  **If background daemon**:
226
224
  1. Verify launch:
227
225
  ```bash
228
- dev-pipeline/launch-daemon.sh status
226
+ dev-pipeline/launch-feature-daemon.sh status
229
227
  ```
230
228
  2. Start log monitoring — Use the Bash tool with `run_in_background: true`:
231
229
  ```bash
@@ -243,7 +241,7 @@ Detect user intent from their message, then follow the corresponding workflow:
243
241
 
244
242
  1. **Check daemon status**:
245
243
  ```bash
246
- dev-pipeline/launch-daemon.sh status
244
+ dev-pipeline/launch-feature-daemon.sh status
247
245
  ```
248
246
 
249
247
  2. **Show feature-level progress**:
@@ -267,12 +265,12 @@ Detect user intent from their message, then follow the corresponding workflow:
267
265
 
268
266
  1. **Stop the daemon**:
269
267
  ```bash
270
- dev-pipeline/launch-daemon.sh stop
268
+ dev-pipeline/launch-feature-daemon.sh stop
271
269
  ```
272
270
 
273
271
  2. **Verify stopped**:
274
272
  ```bash
275
- dev-pipeline/launch-daemon.sh status 2>/dev/null || true
273
+ dev-pipeline/launch-feature-daemon.sh status 2>/dev/null || true
276
274
  ```
277
275
 
278
276
  3. **Inform user**: "Pipeline stopped. State is preserved -- you can resume later with 'start pipeline' and it will pick up where it left off."
@@ -283,7 +281,7 @@ Detect user intent from their message, then follow the corresponding workflow:
283
281
 
284
282
  1. **Check if running**:
285
283
  ```bash
286
- dev-pipeline/launch-daemon.sh status 2>/dev/null
284
+ dev-pipeline/launch-feature-daemon.sh status 2>/dev/null
287
285
  ```
288
286
 
289
287
  2. **If running** -- Start live tail with Bash tool `run_in_background: true`:
@@ -326,9 +324,10 @@ SESSION_TIMEOUT=3600 dev-pipeline/retry-feature.sh F-003 feature-list.json
326
324
  ```
327
325
 
328
326
  Notes:
329
- - `retry-feature.sh` runs exactly one feature session and exits.
330
- - `reset-feature.sh --clean --run` clears the feature state before retrying (fresh start).
331
- - Keep pipeline daemon mode for main run management (`launch-daemon.sh`).
327
+ - `retry-feature.sh` runs exactly one feature session and exits. **It always performs a full clean** (deletes session history and `.prizmkit/specs/` artifacts) before retrying, ensuring a fresh start. This is destructive — prior session logs and spec artifacts for this feature will be deleted.
328
+ - `reset-feature.sh --clean --run` is equivalent to a manual clean + retry (same behavior as `retry-feature.sh`, but can also operate on ranges and filtered sets).
329
+ - For a lighter retry that preserves prior session artifacts, use `run-feature.sh run <F-XXX> --no-reset` instead.
330
+ - Keep pipeline daemon mode for main run management (`launch-feature-daemon.sh`).
332
331
 
333
332
  ---
334
333
 
@@ -353,7 +352,7 @@ After pipeline completion, if features have `browser_interaction` fields and `pl
353
352
 
354
353
  3. **If yes**, for each qualifying feature:
355
354
  - Start dev server if `setup_command` is specified
356
- - Use `playwright-cli` to open the URL, execute `verify_steps`, and take a screenshot
355
+ - Use `playwright-cli snapshot` to discover element refs, then verify each goal in `verify_steps` using appropriate actions, and take a screenshot
357
356
  - Close browser and stop dev server
358
357
 
359
358
  4. **Report results**:
@@ -369,23 +368,24 @@ After pipeline completion, if features have `browser_interaction` fields and `pl
369
368
 
370
369
  | Error | Action |
371
370
  |-------|--------|
372
- | `feature-list.json` not found | Tell user to run `app-planner` skill first |
371
+ | `feature-list.json` not found | Tell user to run `feature-planner` skill first |
373
372
  | `jq` not installed | Suggest: `brew install jq` |
374
373
  | `cbc`/`claude` not in PATH | Check AI CLI installation |
375
374
  | Pipeline already running | Show status, ask if user wants to stop and restart |
376
- | PID file stale (process dead) | `launch-daemon.sh` auto-cleans, retry start |
375
+ | PID file stale (process dead) | `launch-feature-daemon.sh` auto-cleans, retry start |
377
376
  | Launch failed (process died immediately) | Show last 20 lines of log: `tail -20 dev-pipeline/state/pipeline-daemon.log` |
378
377
  | Feature stuck/blocked | Use `retry-feature.sh <F-XXX>` to retry; use `reset-feature.sh <F-XXX> --clean --run` for fresh start |
379
378
  | All features blocked/failed | Show status, suggest daemon-safe recovery: `dev-pipeline/reset-feature.sh <F-XXX> --clean --run feature-list.json` |
380
379
  | `playwright-cli` not installed | Browser verification skipped (non-blocking). Suggest: `npm install -g @playwright/cli@latest && playwright-cli install --skills` |
381
- | Permission denied on script | Run `chmod +x dev-pipeline/launch-daemon.sh dev-pipeline/run.sh` |
380
+ | Permission denied on script | Run `chmod +x dev-pipeline/launch-feature-daemon.sh dev-pipeline/run-feature.sh` |
381
+ | Pipeline stop failed (process won't die) | Process may be stuck in I/O wait. Try `kill -9 <PID>` manually. Check for orphaned child processes with `ps aux \| grep claude` |
382
382
  | `.env.local` missing or incomplete | Warn: database connection variables not found. Suggest creating env file with required connection variables for the project's database |
383
383
  | Database unreachable | Warn: database features will produce mock-only tests. Suggest checking database service status and connection credentials |
384
384
  | Migrations not applied | Warn: tables or schema referenced in migration files not found in database. Suggest applying pending migrations |
385
385
 
386
386
  ### Integration Notes
387
387
 
388
- - **After app-planner**: This is the natural next step. When user finishes planning and has `feature-list.json`, suggest launching the pipeline.
388
+ - **After feature-planner**: This is the natural next step. When user finishes planning and has `feature-list.json`, suggest launching the pipeline.
389
389
  - **Session independence**: The pipeline runs completely detached. User can close the AI CLI session, open a new session later, and use this skill to check progress or stop the pipeline.
390
390
  - **Single instance**: Only one pipeline can run at a time. The PID file prevents duplicates.
391
391
  - **Pipeline coexistence**: Feature and bugfix pipelines use separate state directories (`state/` vs `bugfix-state/`), so they can run simultaneously without conflict.
@@ -0,0 +1,337 @@
1
+ ---
2
+ name: "feature-planner"
3
+ description: "Plan and manage features for an existing project — add new features, reprioritize, split, and generate validated feature-list.json for dev-pipeline execution. Use this skill for feature scoping, incremental planning, continuing a feature plan, or preparing pipeline input. For planning a new app from scratch, use app-planner instead."
4
+ ---
5
+
6
+ # feature planner
7
+
8
+ Plan deliverable features for dev-pipeline on existing projects:
9
+ - **New Feature Set**: create an initial feature-list.json for a project that has code but no plan yet
10
+ - **Incremental Feature Planning**: append, adjust, or reprioritize features in an existing plan
11
+
12
+ Always produce a validated `feature-list.json` that conforms to `dev-pipeline-feature-list`.
13
+
14
+ For planning a **new application from scratch** (vision, tech stack, decomposition), use `app-planner` instead.
15
+
16
+ ## Invocation Commitment (Hard Rule)
17
+
18
+ **When the user invokes `/feature-planner`, you MUST execute the feature-planner workflow.** You must NEVER:
19
+ - Decide on the user's behalf that the task "doesn't need feature-planner"
20
+ - Skip feature-planner to jump directly to spec/plan/implement or any other skill
21
+ - Bypass the interactive phases because you judge the task to be "simple" or "obvious"
22
+
23
+ If the user's request is about planning a new app from scratch (vision, tech stack selection, app architecture), recommend `app-planner` instead and ask the user to confirm before switching.
24
+
25
+ If you believe the task is better suited for a different workflow (e.g., fast path via `/prizmkit-plan`), you MUST:
26
+ 1. **Explain why** you think a different path is more appropriate
27
+ 2. **Ask the user explicitly** whether they want to switch or continue with feature-planner
28
+ 3. **Only switch if the user confirms** — otherwise proceed with feature-planner as invoked
29
+
30
+ The user chose this skill intentionally. Respect that choice.
31
+
32
+ ## Scope Boundary (Hard Rule)
33
+
34
+ **This skill is PLANNING ONLY.** You must NEVER:
35
+ - Create, modify, or delete source code files (*.js, *.ts, *.py, *.go, *.html, *.css, etc.)
36
+ - Create project scaffolding, directories, or boilerplate
37
+ - Run build/install/test commands (npm init, pip install, etc.)
38
+ - Execute any implementation action beyond writing `feature-list.json`
39
+
40
+ **Your ONLY writable outputs are:**
41
+ 1. `feature-list.json` (project root)
42
+ 2. Draft backups in `.prizmkit/planning/`
43
+
44
+ **After planning is complete**, you MUST:
45
+ 1. Present the summary and recommended next step
46
+ 2. **Ask the user explicitly** whether they want to proceed to execution
47
+ 3. If the user agrees → recommend invoking `feature-pipeline-launcher` or running `run-feature.sh` (do NOT execute it yourself)
48
+ 4. If the user wants to adjust → continue refining `feature-list.json`
49
+ 5. **NEVER auto-execute** the pipeline, launcher, or any implementation step
50
+
51
+ ## When to Use
52
+
53
+ Trigger this skill for requests like:
54
+ - "Add features to existing system", "Continue planning"
55
+ - "Prepare feature-list.json", "Prepare dev-pipeline input"
56
+ - "Reprioritize features", "Split features"
57
+ - "Plan features for my project" (when the project already exists)
58
+
59
+ Do NOT use this skill when:
60
+ - The user wants to plan a new app from scratch → use `app-planner`
61
+ - The user only wants to run the pipeline → use `feature-pipeline-launcher`
62
+ - The user is debugging/refactoring or wants to write source code directly
63
+
64
+ ## Resource Loading Rules (Mandatory)
65
+
66
+ 1. **Planning reference** — load before writing feature descriptions:
67
+ - Read `${SKILL_DIR}/assets/planning-guide.md` for description writing standards, acceptance criteria patterns, complexity estimation, dependency rules, and session granularity
68
+
69
+ 2. **Incremental planning reference** — load for incremental mode:
70
+ - Read `${SKILL_DIR}/references/incremental-feature-planning.md`
71
+
72
+ 3. **Load on-demand references when triggered**:
73
+ - Validation errors or interrupted session → read `${SKILL_DIR}/references/error-recovery.md`
74
+ - Browser interaction fields needed → read `${SKILL_DIR}/references/browser-interaction.md`
75
+ - New feature set for a project (Route A) → read `${SKILL_DIR}/references/new-project-planning.md` for phase guide, quality rules, and delivery checklist
76
+ - Feature decomposition from scratch → read `${SKILL_DIR}/references/decomposition-patterns.md` for common app patterns (CRUD, SaaS, Social, E-commerce)
77
+
78
+ 4. **Always validate output via script**:
79
+ ```bash
80
+ python3 ${SKILL_DIR}/scripts/validate-and-generate.py validate --input <output-path> --mode <new|incremental>
81
+ ```
82
+
83
+ 5. **Use script output as source of truth** — if validation fails, fix and re-run until pass
84
+
85
+ ## Prerequisites
86
+
87
+ Before questions, check optional context files (never block if absent):
88
+ - `.prizm-docs/root.prizm` (architecture/project context)
89
+ - `.prizmkit/config.json` (existing stack preferences and detected tech stack)
90
+ - existing `feature-list.json` (required for incremental mode)
91
+ - If `.prizm-docs/root.prizm` is absent and the project has existing source code, scan the directory structure to understand the codebase layout:
92
+ ```bash
93
+ find . -maxdepth 2 -type d -not -path '*/node_modules/*' -not -path '*/.git/*' -not -path '*/dist/*' -not -path '*/build/*' -not -path '*/__pycache__/*' -not -path '*/vendor/*' | sed -e 's;[^/]*/;|____;g;s;____|; |;g'
94
+ ```
95
+
96
+ **Tech stack from config.json:**
97
+ - If `.prizmkit/config.json` contains a `tech_stack` object, use it to pre-fill `global_context` fields in the generated `feature-list.json`.
98
+ - Map config fields to global_context: `language`, `runtime`, `frontend_framework`, `frontend_styling`, `backend_framework`, `database`, `orm`, `testing` → `testing_strategy`, `bundler`, `project_type`.
99
+ - Do NOT re-ask the user for tech stack info already present in config.json. Show detected stack and confirm.
100
+
101
+ ## Scenario Routing
102
+
103
+ Classify user intent first:
104
+
105
+ ### Route A: New Feature Set (No Existing Plan)
106
+ Use when the project exists but has no `feature-list.json` yet.
107
+
108
+ Actions:
109
+ 1. Understand the existing codebase and what's already implemented
110
+ 2. Run interactive planning phases to identify needed features
111
+ 3. Generate initial `feature-list.json`
112
+
113
+ ### Route B: Incremental Feature Planning
114
+ Use when user already has a `feature-list.json` and wants to add or adjust features.
115
+
116
+ Actions:
117
+ 1. Load `${SKILL_DIR}/references/incremental-feature-planning.md`
118
+ 2. Read existing `feature-list.json` first (if missing, ask whether to start new plan)
119
+ 3. Append features with next sequential `F-NNN` IDs
120
+ 4. Preserve style/language/detail consistency with existing plan
121
+
122
+ ## Core Workflow
123
+
124
+ Execute the planning workflow in conversation mode with mandatory checkpoints:
125
+
126
+ ### Interactive Phases
127
+ 1. Clarify scope and goals
128
+ 1.1 **Requirement clarification** — for ANY unclear aspect of the user's goals or scope, ask questions one at a time (cite the unclear point, give a recommended answer with rationale) until you fully understand. No limit on rounds. Do not proceed to Phase 2 with unresolved ambiguities.
129
+ 2. Confirm constraints and existing architecture
130
+ 3. Propose feature set with dependencies
131
+ 4. Refine descriptions and acceptance criteria
132
+ 4.1 **Per-feature clarification** — for each feature, if the description, acceptance criteria, or scope is vague or could be interpreted multiple ways, ask the user to clarify before finalizing.
133
+ 4.2 **Browser interaction** (mandatory for fullstack/frontend projects) — see §Browser Interaction Planning below. Qualifying features get `browser_interaction` by default. Only confirm with the user as a batch summary; do NOT ask per-feature.
134
+ 5. Verify DAG/order/priorities
135
+ 6. Pre-generation completeness review (see §Pre-Generation Completeness Review below)
136
+ 7. Build or append `feature-list.json`
137
+ 8. Apply default testing strategy (see §Testing Defaults below)
138
+ 9. Validate and fix until pass
139
+ 10. Summarize final feature table
140
+
141
+ ### Checkpoints (Mandatory Gates)
142
+
143
+ Checkpoints catch cascading errors early — skipping one means the next phase builds on unvalidated assumptions, which compounds into much harder debugging later.
144
+
145
+ | Checkpoint | Artifact/State | Criteria | Phase |
146
+ |-----------|----------------|----------|-------|
147
+ | **CP-FP-1** | Scope Confirmed | User confirmed what features to plan and context understood | 1 |
148
+ | **CP-FP-2** | Feature Proposals | Feature set with titles+deps identified (pre-validation) | 3-5 |
149
+ | **CP-FP-3** | DAG Validity | No cycles, dependencies resolved (validation dry-run) | 5 |
150
+ | **CP-FP-3.1** | Browser Interaction Applied | Qualifying features have `browser_interaction` field; user confirmed or opted out | 4 |
151
+ | **CP-FP-3.2** | Testing Defaults Applied | All features have appropriate `critic`, `critic_count`, and testing expectations | 7 |
152
+ | **CP-FP-3.3** | Completeness Review Passed | All features reviewed for description adequacy and cross-feature gaps | 6 |
153
+ | **CP-FP-4** | `feature-list.json` Generated | Schema validates, all required keys present | 7-8 |
154
+ | **CP-FP-5** | Final Validation Pass | Python script returns `"valid": true` with zero errors | 9 |
155
+
156
+ **Resume Detection**: If existing artifacts are found, read `${SKILL_DIR}/references/error-recovery.md` §Resume Support for checkpoint-based resumption.
157
+
158
+ ## Pre-Generation Completeness Review (Phase 6)
159
+
160
+ Before generating `feature-list.json`, review the full feature set holistically. Individual features may look fine in isolation but have gaps when viewed together.
161
+
162
+ ### Step 1: Description Adequacy Scan
163
+
164
+ For each feature, evaluate against the word-count thresholds in `planning-guide.md` §4:
165
+ - Does the description cover: what to build, key behaviors, integration points, data model (if applicable), error/edge cases?
166
+ - Is the description specific enough for an AI coding session to implement without guessing?
167
+ - Flag any feature below the recommended word count for its complexity level (30/50/80 words for low/medium/high).
168
+
169
+ ### Step 2: Cross-Feature Completeness Check
170
+
171
+ Look at the feature set as a whole:
172
+ - **Implied functionality gaps**: Does feature A's acceptance criteria assume a capability that no other feature provides?
173
+ - **Missing integration seams**: If two features share data or interact at runtime, is the interface specified?
174
+ - **Scope leaks**: Does any feature's description reference functionality outside the agreed scope?
175
+
176
+ ### Step 3: Present Review to User
177
+
178
+ Show a structured summary table:
179
+
180
+ ```
181
+ Feature | Description | Cross-Feature | Recommendation
182
+ | Adequacy | Issues |
183
+ F-001 | ✓ (65 words)| — | Ready
184
+ F-002 | ⚠ (28 words)| — | Expand: add API endpoints, error handling
185
+ F-003 | ✓ (52 words)| Assumes email from | Clarify: who sends the notification?
186
+ | | F-006 (not yet defined)|
187
+ ```
188
+
189
+ Then ask if any features need further discussion.
190
+
191
+ ### Step 4: Interactive Supplementation
192
+
193
+ For each feature the user wants to discuss:
194
+ 1. Ask targeted questions about the unclear aspects
195
+ 2. Propose concrete description supplements
196
+ 3. Update the feature description with agreed details
197
+ 4. Re-check: does the supplement resolve the gap?
198
+
199
+ Continue until the user confirms all features are implementation-ready. This gate exists because fixing thin descriptions here costs minutes; fixing misimplemented features downstream costs hours.
200
+
201
+ ## Fast Path (Simple Incremental)
202
+
203
+ For simple incremental planning, skip detailed Phase 2-3 analysis:
204
+
205
+ ### Eligibility Criteria (ALL must apply)
206
+ - **Incremental mode only** — not new feature set
207
+ - **Adding 1-2 features max** to existing plan
208
+ - **Each feature**: ≤5 acceptance criteria, <100 words description
209
+ - **Dependencies**: depends on ≤2 existing features (no chains)
210
+ - **Complexity**: "low" or "medium" only
211
+ - **No architectural changes** to existing tech stack
212
+
213
+ ### Fast Path Workflow
214
+ 1. Read existing `feature-list.json` and confirm scope
215
+ 2. **User confirmation (mandatory)** — Tell the user: "This qualifies for fast-path (simple incremental addition). Skip detailed Phase 2-3 analysis and draft directly? Or use full workflow?" Only proceed with fast path if user confirms.
216
+ 3. Generate next sequential feature IDs
217
+ 4. Draft features (title + description + acceptance_criteria + dependencies)
218
+ 5. Run validation script immediately
219
+ 6. If valid → summarize and recommend next step
220
+ 7. If invalid → apply fixes, re-validate (max 2 attempts, then escalate to full workflow)
221
+
222
+ ## Browser Interaction Planning
223
+
224
+ For fullstack/frontend projects, qualifying features get `browser_interaction` **by default**.
225
+
226
+ ### Auto-Detection Rule
227
+
228
+ A feature **qualifies** when ALL true:
229
+ 1. `global_context.frontend_framework` exists
230
+ 2. The feature's `acceptance_criteria` contain UI-related keywords: click, button, modal, page, form, display, navigate, tab, input, opens, shows, renders, visible, redirect, download, upload, preview, select, toggle, dropdown, popup, toast, menu
231
+
232
+ A feature is **exempt** when ANY true:
233
+ - Backend-only (API endpoints, database migrations, no UI criteria)
234
+ - Config/setup/infrastructure
235
+ - `status: "completed"` (already implemented)
236
+
237
+ ### Default Behavior (Phase 4.2)
238
+
239
+ 1. **Auto-generate** `browser_interaction` for ALL qualifying features. Read `${SKILL_DIR}/references/browser-interaction.md` for the object format and field rules.
240
+ 2. **Present a summary** to the user showing which features received `browser_interaction`.
241
+ 3. **User can opt-OUT** specific features.
242
+
243
+ ## Output Rules
244
+
245
+ `feature-list.json` must satisfy:
246
+ - `$schema` = `dev-pipeline-feature-list-v1`
247
+ - non-empty `features`
248
+ - sequential feature IDs (`F-001`, `F-002`, ...)
249
+ - valid dependency DAG
250
+ - `priority` must be a string: `"high"`, `"medium"`, or `"low"` (NOT numeric)
251
+ - new items default `status: "pending"`
252
+ - English feature titles for stable slug generation
253
+ - `model` field is optional
254
+ - `critic` field defaults based on priority: `true` for high/medium, `false` for low
255
+ - `critic_count` field defaults: `3` for high priority, `1` for medium
256
+ - `browser_interaction` field auto-generated for qualifying frontend features
257
+ - descriptions must be implementation-ready — minimum 15 words (error), recommended 30/50/80 words for low/medium/high complexity (warning). See `planning-guide.md` §4.
258
+
259
+ ## Testing Defaults (Phase 8)
260
+
261
+ All three testing mechanisms are enabled by default. The user can opt out.
262
+
263
+ ### 1. Test File Generation (TDD)
264
+
265
+ Every feature includes tests. In the feature description, state testing expectations:
266
+
267
+ | Complexity | Default Testing Expectation |
268
+ |------------|----------------------------|
269
+ | low | Unit tests for core logic |
270
+ | medium | Unit tests + integration tests for key flows |
271
+ | high | Unit tests + integration tests + edge case coverage |
272
+
273
+ ### 2. Browser Verification (Playwright)
274
+
275
+ Default ON for all qualifying frontend features.
276
+
277
+ ### 3. Adversarial Critic Review
278
+
279
+ | Priority | `critic` | `critic_count` | Rationale |
280
+ |----------|----------|----------------|-----------|
281
+ | high | `true` | `3` | Multi-critic voting |
282
+ | medium | `true` | `1` | Single critic review |
283
+ | low | `false` | (omitted) | Skip critic |
284
+
285
+ Present a consolidated testing summary table at Phase 8, then ask for confirmation.
286
+
287
+ ## Next-Step Execution Policy (after planning)
288
+
289
+ Recommend these three options in this strict order:
290
+
291
+ 1. **Preferred**: invoke `feature-pipeline-launcher` skill
292
+ 2. **Fallback A**: run daemon wrapper
293
+ ```bash
294
+ ./dev-pipeline/launch-feature-daemon.sh start feature-list.json
295
+ ./dev-pipeline/launch-feature-daemon.sh status
296
+ ```
297
+ 3. **Fallback B**: run direct foreground script
298
+ ```bash
299
+ ./dev-pipeline/run-feature.sh run
300
+ ./dev-pipeline/run-feature.sh status
301
+ ```
302
+
303
+ ## Error Recovery & Resume
304
+
305
+ If validation fails or a session is interrupted → read `${SKILL_DIR}/references/error-recovery.md` for the full error type table, decision tree, retry logic, and checkpoint-based resume support.
306
+
307
+ Key behaviors:
308
+ - Warnings only → proceed with user approval
309
+ - Critical errors → group by type, auto-fix where possible, max 3 total attempts
310
+ - Interrupted session → detect checkpoint from existing artifacts, offer resume or restart
311
+ - `feature-list.json` MUST be written to project root (same level as `package.json` / `.git`)
312
+
313
+ ## Session Exit Gate
314
+
315
+ Prevent accidental session exit without deliverable completion.
316
+
317
+ ### Trigger Conditions
318
+ Activate when ALL true:
319
+ - User expressed intent to produce feature-list.json
320
+ - Current phase < Phase 7
321
+ - No valid `feature-list.json` written in this session
322
+
323
+ ### Gate Behavior
324
+ When the session appears to be ending:
325
+ 1. **Remind**: "You set out to produce `feature-list.json` but we haven't completed it yet."
326
+ 2. **Offer 3 options**:
327
+ - **(a) Continue to completion**
328
+ - **(b) Save draft & exit** — write current progress as draft
329
+ - **(c) Abandon** — exit without saving
330
+
331
+ ## Handoff Message Template
332
+
333
+ After successful validation, report:
334
+ 1. Output file path
335
+ 2. Total features + newly added features
336
+ 3. Dependency and priority highlights
337
+ 4. Recommended next action: `feature-pipeline-launcher`
@@ -1,6 +1,6 @@
1
- # App Planner Evaluation Guide
1
+ # feature planner Evaluation Guide
2
2
 
3
- This guide is for maintainers who evaluate and iterate on the `app-planner` skill quality.
3
+ This guide is for maintainers who evaluate and iterate on the `feature-planner` skill quality.
4
4
 
5
5
  ## Evaluation & Quality Gates (Optional but Recommended)
6
6
 
@@ -12,9 +12,9 @@ Requires npm setup:
12
12
 
13
13
  ```bash
14
14
  npm run skill:review -- \
15
- --workspace /.codebuddy/skill-evals/app-planner-workspace \
15
+ --workspace /.codebuddy/skill-evals/feature-planner-workspace \
16
16
  --iteration iteration-N \
17
- --skill-name app-planner \
17
+ --skill-name feature-planner \
18
18
  --skill-path ${SKILL_DIR} \
19
19
  --runs 3 \
20
20
  --grader-cmd "python3 ${SKILL_DIR}/scripts/validate-and-generate.py grade --workspace {workspace} --iteration {iteration}"