prizmkit 1.1.57 → 1.1.60

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 (188) hide show
  1. package/bin/create-prizmkit.js +8 -6
  2. package/bundled/VERSION.json +3 -3
  3. package/bundled/adapters/codex/agent-adapter.js +38 -0
  4. package/bundled/adapters/codex/paths.js +27 -0
  5. package/bundled/adapters/codex/rules-adapter.js +30 -0
  6. package/bundled/adapters/codex/settings-adapter.js +27 -0
  7. package/bundled/adapters/codex/skill-adapter.js +65 -0
  8. package/bundled/adapters/codex/team-adapter.js +37 -0
  9. package/bundled/dev-pipeline/.env.example +2 -1
  10. package/bundled/dev-pipeline/README.md +10 -7
  11. package/bundled/dev-pipeline/lib/common.sh +278 -37
  12. package/bundled/dev-pipeline/run-bugfix.sh +10 -61
  13. package/bundled/dev-pipeline/run-feature.sh +10 -78
  14. package/bundled/dev-pipeline/run-recovery.sh +10 -46
  15. package/bundled/dev-pipeline/run-refactor.sh +10 -61
  16. package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +17 -7
  17. package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +9 -3
  18. package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +9 -3
  19. package/bundled/dev-pipeline/scripts/utils.py +6 -4
  20. package/bundled/dev-pipeline-windows/.env.example +28 -0
  21. package/bundled/dev-pipeline-windows/README.md +30 -0
  22. package/bundled/dev-pipeline-windows/SCHEMA_ANALYSIS.md +525 -0
  23. package/bundled/dev-pipeline-windows/assets/feature-list-example.json +146 -0
  24. package/bundled/dev-pipeline-windows/assets/prizm-dev-team-integration.md +138 -0
  25. package/bundled/dev-pipeline-windows/launch-bugfix-daemon.ps1 +9 -0
  26. package/bundled/dev-pipeline-windows/launch-feature-daemon.ps1 +9 -0
  27. package/bundled/dev-pipeline-windows/launch-refactor-daemon.ps1 +9 -0
  28. package/bundled/dev-pipeline-windows/lib/common.ps1 +432 -0
  29. package/bundled/dev-pipeline-windows/lib/daemon.ps1 +140 -0
  30. package/bundled/dev-pipeline-windows/lib/pipeline.ps1 +446 -0
  31. package/bundled/dev-pipeline-windows/lib/reset.ps1 +87 -0
  32. package/bundled/dev-pipeline-windows/reset-bug.ps1 +9 -0
  33. package/bundled/dev-pipeline-windows/reset-feature.ps1 +9 -0
  34. package/bundled/dev-pipeline-windows/reset-refactor.ps1 +9 -0
  35. package/bundled/dev-pipeline-windows/run-bugfix.ps1 +9 -0
  36. package/bundled/dev-pipeline-windows/run-feature.ps1 +9 -0
  37. package/bundled/dev-pipeline-windows/run-recovery.ps1 +76 -0
  38. package/bundled/dev-pipeline-windows/run-refactor.ps1 +9 -0
  39. package/bundled/dev-pipeline-windows/scripts/check-session-status.py +228 -0
  40. package/bundled/dev-pipeline-windows/scripts/cleanup-logs.py +192 -0
  41. package/bundled/dev-pipeline-windows/scripts/detect-stuck.py +530 -0
  42. package/bundled/dev-pipeline-windows/scripts/generate-bootstrap-prompt.py +1737 -0
  43. package/bundled/dev-pipeline-windows/scripts/generate-bugfix-prompt.py +685 -0
  44. package/bundled/dev-pipeline-windows/scripts/generate-recovery-prompt.py +805 -0
  45. package/bundled/dev-pipeline-windows/scripts/generate-refactor-prompt.py +763 -0
  46. package/bundled/dev-pipeline-windows/scripts/init-bugfix-pipeline.py +316 -0
  47. package/bundled/dev-pipeline-windows/scripts/init-dev-team.py +134 -0
  48. package/bundled/dev-pipeline-windows/scripts/init-pipeline.py +380 -0
  49. package/bundled/dev-pipeline-windows/scripts/init-refactor-pipeline.py +399 -0
  50. package/bundled/dev-pipeline-windows/scripts/parse-stream-progress.py +388 -0
  51. package/bundled/dev-pipeline-windows/scripts/patch-completion-notes.py +191 -0
  52. package/bundled/dev-pipeline-windows/scripts/update-bug-status.py +864 -0
  53. package/bundled/dev-pipeline-windows/scripts/update-checkpoint.py +173 -0
  54. package/bundled/dev-pipeline-windows/scripts/update-feature-status.py +1501 -0
  55. package/bundled/dev-pipeline-windows/scripts/update-refactor-status.py +1073 -0
  56. package/bundled/dev-pipeline-windows/scripts/utils.py +542 -0
  57. package/bundled/dev-pipeline-windows/templates/agent-prompts/critic-plan-challenge.md +7 -0
  58. package/bundled/dev-pipeline-windows/templates/agent-prompts/dev-fix.md +7 -0
  59. package/bundled/dev-pipeline-windows/templates/agent-prompts/dev-implement.md +30 -0
  60. package/bundled/dev-pipeline-windows/templates/agent-prompts/dev-resume.md +5 -0
  61. package/bundled/dev-pipeline-windows/templates/agent-prompts/reviewer-review.md +7 -0
  62. package/bundled/dev-pipeline-windows/templates/bootstrap-prompt.md +46 -0
  63. package/bundled/dev-pipeline-windows/templates/bootstrap-tier1.md +43 -0
  64. package/bundled/dev-pipeline-windows/templates/bootstrap-tier2.md +43 -0
  65. package/bundled/dev-pipeline-windows/templates/bootstrap-tier3.md +43 -0
  66. package/bundled/dev-pipeline-windows/templates/bug-fix-list-schema.json +263 -0
  67. package/bundled/dev-pipeline-windows/templates/bugfix-bootstrap-prompt.md +320 -0
  68. package/bundled/dev-pipeline-windows/templates/feature-list-schema.json +237 -0
  69. package/bundled/dev-pipeline-windows/templates/refactor-bootstrap-prompt.md +331 -0
  70. package/bundled/dev-pipeline-windows/templates/refactor-list-schema.json +270 -0
  71. package/bundled/dev-pipeline-windows/templates/sections/ac-verification-checklist.md +13 -0
  72. package/bundled/dev-pipeline-windows/templates/sections/checkpoint-system.md +91 -0
  73. package/bundled/dev-pipeline-windows/templates/sections/context-budget-rules.md +33 -0
  74. package/bundled/dev-pipeline-windows/templates/sections/critical-paths-agent.md +10 -0
  75. package/bundled/dev-pipeline-windows/templates/sections/critical-paths-full.md +12 -0
  76. package/bundled/dev-pipeline-windows/templates/sections/critical-paths-lite.md +7 -0
  77. package/bundled/dev-pipeline-windows/templates/sections/directory-convention-agent.md +8 -0
  78. package/bundled/dev-pipeline-windows/templates/sections/directory-convention-full.md +9 -0
  79. package/bundled/dev-pipeline-windows/templates/sections/directory-convention-lite.md +6 -0
  80. package/bundled/dev-pipeline-windows/templates/sections/failure-capture.md +21 -0
  81. package/bundled/dev-pipeline-windows/templates/sections/feature-context.md +31 -0
  82. package/bundled/dev-pipeline-windows/templates/sections/phase-browser-verification-auto.md +72 -0
  83. package/bundled/dev-pipeline-windows/templates/sections/phase-browser-verification-opencli.md +63 -0
  84. package/bundled/dev-pipeline-windows/templates/sections/phase-browser-verification.md +62 -0
  85. package/bundled/dev-pipeline-windows/templates/sections/phase-commit-full.md +71 -0
  86. package/bundled/dev-pipeline-windows/templates/sections/phase-commit.md +64 -0
  87. package/bundled/dev-pipeline-windows/templates/sections/phase-context-snapshot-agent-suffix.md +23 -0
  88. package/bundled/dev-pipeline-windows/templates/sections/phase-context-snapshot-base.md +24 -0
  89. package/bundled/dev-pipeline-windows/templates/sections/phase-context-snapshot-lite-suffix.md +12 -0
  90. package/bundled/dev-pipeline-windows/templates/sections/phase-critic-plan-full.md +53 -0
  91. package/bundled/dev-pipeline-windows/templates/sections/phase-critic-plan.md +32 -0
  92. package/bundled/dev-pipeline-windows/templates/sections/phase-implement-agent.md +37 -0
  93. package/bundled/dev-pipeline-windows/templates/sections/phase-implement-full.md +50 -0
  94. package/bundled/dev-pipeline-windows/templates/sections/phase-implement-lite.md +52 -0
  95. package/bundled/dev-pipeline-windows/templates/sections/phase-plan-agent.md +27 -0
  96. package/bundled/dev-pipeline-windows/templates/sections/phase-plan-lite.md +27 -0
  97. package/bundled/dev-pipeline-windows/templates/sections/phase-review-agent.md +27 -0
  98. package/bundled/dev-pipeline-windows/templates/sections/phase-review-full.md +29 -0
  99. package/bundled/dev-pipeline-windows/templates/sections/phase-specify-plan-full.md +77 -0
  100. package/bundled/dev-pipeline-windows/templates/sections/phase0-init.md +13 -0
  101. package/bundled/dev-pipeline-windows/templates/sections/phase0-test-baseline.md +23 -0
  102. package/bundled/dev-pipeline-windows/templates/sections/session-context.md +5 -0
  103. package/bundled/dev-pipeline-windows/templates/sections/subagent-timeout-recovery.md +6 -0
  104. package/bundled/dev-pipeline-windows/templates/sections/test-failure-recovery-agent.md +67 -0
  105. package/bundled/dev-pipeline-windows/templates/sections/test-failure-recovery-lite.md +58 -0
  106. package/bundled/dev-pipeline-windows/templates/session-status-schema.json +83 -0
  107. package/bundled/skills/_metadata.json +1 -1
  108. package/bundled/skills/app-planner/SKILL.md +26 -18
  109. package/bundled/skills/app-planner/references/architecture-decisions.md +9 -5
  110. package/bundled/skills/app-planner/references/frontend-design-guide.md +1 -1
  111. package/bundled/skills/feature-planner/SKILL.md +9 -2
  112. package/bundled/skills/prizmkit-init/SKILL.md +7 -6
  113. package/bundled/skills/recovery-workflow/scripts/detect-recovery-state.py +2 -0
  114. package/bundled/skills-windows/app-planner/SKILL.md +639 -0
  115. package/bundled/skills-windows/app-planner/assets/app-design-guide.md +101 -0
  116. package/bundled/skills-windows/app-planner/references/architecture-decisions.md +52 -0
  117. package/bundled/skills-windows/app-planner/references/brainstorm-guide.md +101 -0
  118. package/bundled/skills-windows/app-planner/references/frontend-design-guide.md +71 -0
  119. package/bundled/skills-windows/app-planner/references/project-brief-guide.md +82 -0
  120. package/bundled/skills-windows/app-planner/references/red-team-checklist.md +40 -0
  121. package/bundled/skills-windows/app-planner/references/rules/backend/derivation-rules.md +609 -0
  122. package/bundled/skills-windows/app-planner/references/rules/backend/fixed-rules.md +285 -0
  123. package/bundled/skills-windows/app-planner/references/rules/backend/question-bank.md +249 -0
  124. package/bundled/skills-windows/app-planner/references/rules/backend/template.md +173 -0
  125. package/bundled/skills-windows/app-planner/references/rules/database/derivation-rules.md +373 -0
  126. package/bundled/skills-windows/app-planner/references/rules/database/fixed-rules.md +211 -0
  127. package/bundled/skills-windows/app-planner/references/rules/database/question-bank.md +184 -0
  128. package/bundled/skills-windows/app-planner/references/rules/database/template.md +158 -0
  129. package/bundled/skills-windows/app-planner/references/rules/frontend/derivation-rules.md +810 -0
  130. package/bundled/skills-windows/app-planner/references/rules/frontend/fixed-rules.md +188 -0
  131. package/bundled/skills-windows/app-planner/references/rules/frontend/question-bank.md +302 -0
  132. package/bundled/skills-windows/app-planner/references/rules/frontend/template.md +320 -0
  133. package/bundled/skills-windows/app-planner/references/rules/mobile/derivation-rules.md +639 -0
  134. package/bundled/skills-windows/app-planner/references/rules/mobile/fixed-rules.md +290 -0
  135. package/bundled/skills-windows/app-planner/references/rules/mobile/question-bank.md +232 -0
  136. package/bundled/skills-windows/app-planner/references/rules/mobile/template.md +175 -0
  137. package/bundled/skills-windows/bug-fix-workflow/SKILL.md +415 -0
  138. package/bundled/skills-windows/bug-planner/SKILL.md +395 -0
  139. package/bundled/skills-windows/bug-planner/assets/bug-confirmation-template.md +43 -0
  140. package/bundled/skills-windows/bug-planner/references/critic-and-verification.md +44 -0
  141. package/bundled/skills-windows/bug-planner/references/error-recovery.md +73 -0
  142. package/bundled/skills-windows/bug-planner/references/input-formats.md +53 -0
  143. package/bundled/skills-windows/bug-planner/references/schema-validation.md +25 -0
  144. package/bundled/skills-windows/bug-planner/references/severity-rules.md +16 -0
  145. package/bundled/skills-windows/bug-planner/scripts/validate-bug-list.py +322 -0
  146. package/bundled/skills-windows/bugfix-pipeline-launcher/SKILL.md +380 -0
  147. package/bundled/skills-windows/feature-pipeline-launcher/SKILL.md +441 -0
  148. package/bundled/skills-windows/feature-pipeline-launcher/scripts/preflight-check.py +462 -0
  149. package/bundled/skills-windows/feature-planner/SKILL.md +401 -0
  150. package/bundled/skills-windows/feature-planner/assets/evaluation-guide.md +64 -0
  151. package/bundled/skills-windows/feature-planner/assets/planning-guide.md +214 -0
  152. package/bundled/skills-windows/feature-planner/references/browser-interaction.md +59 -0
  153. package/bundled/skills-windows/feature-planner/references/completeness-review.md +57 -0
  154. package/bundled/skills-windows/feature-planner/references/decomposition-patterns.md +75 -0
  155. package/bundled/skills-windows/feature-planner/references/error-recovery.md +90 -0
  156. package/bundled/skills-windows/feature-planner/references/incremental-feature-planning.md +112 -0
  157. package/bundled/skills-windows/feature-planner/references/new-project-planning.md +85 -0
  158. package/bundled/skills-windows/feature-planner/scripts/validate-and-generate.py +1029 -0
  159. package/bundled/skills-windows/feature-workflow/SKILL.md +531 -0
  160. package/bundled/skills-windows/prizmkit-init/SKILL.md +356 -0
  161. package/bundled/skills-windows/prizmkit-init/assets/project-brief-template.md +82 -0
  162. package/bundled/skills-windows/prizmkit-init/references/config-schema.md +68 -0
  163. package/bundled/skills-windows/prizmkit-init/references/rules/layer-detection.md +41 -0
  164. package/bundled/skills-windows/prizmkit-init/references/tech-stack-catalog.md +13 -0
  165. package/bundled/skills-windows/prizmkit-init/references/update-supplement.md +9 -0
  166. package/bundled/skills-windows/recovery-workflow/SKILL.md +456 -0
  167. package/bundled/skills-windows/recovery-workflow/evals/evals.json +46 -0
  168. package/bundled/skills-windows/recovery-workflow/scripts/detect-recovery-state.py +544 -0
  169. package/bundled/skills-windows/refactor-pipeline-launcher/SKILL.md +406 -0
  170. package/bundled/skills-windows/refactor-planner/SKILL.md +540 -0
  171. package/bundled/skills-windows/refactor-planner/assets/planning-guide.md +292 -0
  172. package/bundled/skills-windows/refactor-planner/references/behavior-preservation.md +301 -0
  173. package/bundled/skills-windows/refactor-planner/references/refactor-scoping-guide.md +221 -0
  174. package/bundled/skills-windows/refactor-planner/scripts/validate-and-generate-refactor.py +858 -0
  175. package/bundled/skills-windows/refactor-workflow/SKILL.md +503 -0
  176. package/package.json +3 -2
  177. package/src/clean.js +73 -2
  178. package/src/config.js +159 -50
  179. package/src/detect-platform.js +16 -8
  180. package/src/external-skills.js +26 -19
  181. package/src/index.js +31 -9
  182. package/src/manifest.js +6 -2
  183. package/src/metadata.js +43 -5
  184. package/src/platforms.js +36 -0
  185. package/src/prompts.js +31 -6
  186. package/src/runtimes.js +20 -0
  187. package/src/scaffold.js +314 -110
  188. package/src/upgrade.js +81 -41
@@ -0,0 +1,401 @@
1
+ ---
2
+ name: "feature-planner"
3
+ description: "Plan and manage features for an existing project — add new features, reprioritize, split, and generate validated .prizmkit/plans/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 .prizmkit/plans/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 `.prizmkit/plans/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, 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 `.prizmkit/plans/feature-list.json`
39
+
40
+ **Your ONLY writable outputs are:**
41
+ 1. `.prizmkit/plans/feature-list.json` (`.prizmkit/plans/`)
42
+ 2. Draft backups in `.prizmkit/plans/` (e.g., `feature-list.draft.json`)
43
+
44
+ **After planning is complete**, you MUST:
45
+ 1. Present the summary and recommended next step (invoking `feature-pipeline-launcher` )
46
+ 2. **Ask the user explicitly** whether they want to proceed to execution
47
+ 3. If the user wants to adjust → continue refining `.prizmkit/plans/feature-list.json`
48
+ 4. **NEVER auto-execute** the pipeline, launcher, or any implementation step
49
+
50
+ ## User-Provided Content Priority (Hard Rule)
51
+
52
+ When the user provides detailed specifications, rules, or implementation requirements:
53
+
54
+ 1. **Verbatim preservation**: The user's exact wording MUST be preserved in `description` and `acceptance_criteria` fields. Do NOT paraphrase, summarize, abstract, or simplify.
55
+ 2. **No autonomous simplification**: A 200-word user specification must NOT become a 30-word description. Match the detail level of the user's input.
56
+ 3. **Clarify, don't assume**: If any user-provided rule is ambiguous or potentially conflicts with another, ASK the user to clarify. No limit on clarification rounds. Do NOT proceed with unresolved ambiguities.
57
+ 4. **Populate `user_context`**: ALL user-provided materials (supplementary content, rules, file path references) MUST be written into the `user_context` array of each feature in the generated `.prizmkit/plans/feature-list.json`. Format:
58
+ - Supplementary content or rules → store as-is (verbatim text)
59
+ - File references → store as path string, e.g. `src/auth/login.ts:42-78` or `src/utils/validate.ts — focus on validateEmail function`
60
+
61
+ ## When to Use
62
+
63
+ Trigger this skill for requests like:
64
+ - "Add features to existing system", "Continue planning"
65
+ - "Prepare .prizmkit/plans/feature-list.json", "Prepare dev-pipeline input"
66
+ - "Reprioritize features", "Split features"
67
+ - "Plan features for my project" (when the project already exists)
68
+
69
+ Do NOT use this skill when:
70
+ - The user wants to plan a new app from scratch → use `app-planner`
71
+ - The user only wants to run the pipeline → use `feature-pipeline-launcher`
72
+ - The user is debugging/refactoring or wants to write source code directly
73
+
74
+ ## Resource Loading Rules (Mandatory)
75
+
76
+ 1. **Planning reference** — load before writing feature descriptions:
77
+ - Read `${SKILL_DIR}/assets/planning-guide.md` for description writing standards, acceptance criteria patterns, complexity estimation, dependency rules, and session granularity
78
+
79
+ 2. **Incremental planning reference** — load for incremental mode:
80
+ - Read `${SKILL_DIR}/references/incremental-feature-planning.md`
81
+
82
+ 3. **Load on-demand references when triggered**:
83
+ - Validation errors or interrupted session → read `${SKILL_DIR}/references/error-recovery.md`
84
+ - Browser interaction fields needed → read `${SKILL_DIR}/references/browser-interaction.md`
85
+ - New feature set for a project (Route A) → read `${SKILL_DIR}/references/new-project-planning.md` for phase guide, quality rules, and delivery checklist
86
+ - Feature decomposition from scratch → read `${SKILL_DIR}/references/decomposition-patterns.md` for common app patterns (CRUD, SaaS, Social, E-commerce)
87
+ - Phase 6 completeness review → read `${SKILL_DIR}/references/completeness-review.md`
88
+
89
+ 4. **Define the PowerShell Python helper before running validation scripts**:
90
+ ```powershell
91
+ function Invoke-PrizmPython {
92
+ param([Parameter(ValueFromRemainingArguments = $true)][string[]]$Arguments)
93
+ $python = Get-Command python -ErrorAction SilentlyContinue
94
+ if ($python) {
95
+ & $python.Source -c 'import sys; raise SystemExit(0 if sys.version_info[0] == 3 else 1)' *> $null
96
+ if ($LASTEXITCODE -eq 0) {
97
+ & $python.Source @Arguments
98
+ return
99
+ }
100
+ }
101
+ $py = Get-Command py -ErrorAction SilentlyContinue
102
+ if ($py) {
103
+ & $py.Source -3 -c 'import sys; raise SystemExit(0 if sys.version_info[0] == 3 else 1)' *> $null
104
+ if ($LASTEXITCODE -eq 0) {
105
+ & $py.Source -3 @Arguments
106
+ return
107
+ }
108
+ }
109
+ throw "Python 3 is required. Install Python and ensure python or py is in PATH."
110
+ }
111
+ ```
112
+
113
+ 5. **Always validate output via script** — see §Output Rules for the validation command.
114
+
115
+ If the script is not available, perform these manual validation checks:
116
+ 1. **ID sequence**: All feature IDs are sequential (F-001, F-002, F-003, ...)
117
+ 2. **No circular dependencies**: No feature depends (directly or transitively) on itself
118
+ 3. **Description length**: Minimum 15 words per description (error), recommended minimum 30/50/80/100+ for low/medium/high/critical (warning). No upper limit — more detail is always better
119
+ 4. **Dependency references**: All referenced features in dependencies exist in features array
120
+ 5. **Priority enums**: All priority values are exactly "critical", "high", "medium", or "low" (case-sensitive)
121
+ 6. **Status enum**: All status values are one of: pending, in_progress, completed, failed, skipped, split, auto_skipped
122
+ 7. **Acceptance criteria**: At least 1 criterion per feature, each is a concrete, measurable statement
123
+ 8. **Browser interaction**: If present, has verify_steps array (optional — AI auto-detects dev server, URL, port at runtime)
124
+ 9. **Complexity enum**: If present, is one of: low, medium, high, critical
125
+ 10. **Model field**: If present, is a non-empty string
126
+ 11. **Critic field**: If present, is boolean; if true, critic_count should be 1 or 3
127
+ 12. **Root schema**: Has $schema='dev-pipeline-feature-list-v1', project_name, and non-empty features array
128
+
129
+ 6. **Use script output as source of truth** — if validation fails, fix and re-run until pass
130
+
131
+ ## Prerequisites
132
+
133
+ Before questions, check optional context files (never block if absent):
134
+ - `.prizmkit/prizm-docs/root.prizm` (architecture/project context — typically created by app-planner with captured decisions)
135
+ - `.prizmkit/config.json` (existing stack preferences and detected tech stack)
136
+ - `.prizmkit/plans/project-brief.md` (project context from app-planner, if available)
137
+ - existing `.prizmkit/plans/feature-list.json` (required for incremental mode)
138
+ - Platform instruction file: use the `platform` field in `.prizmkit/manifest.json` as source of truth when present (`codex` → `AGENTS.md`, `claude` → `CLAUDE.md`, `codebuddy` → `CODEBUDDY.md`; `both`/`all` → read every matching file)
139
+ - If `.prizmkit/prizm-docs/root.prizm` is absent and the project has existing source code, scan the directory structure to understand the codebase layout:
140
+ ```powershell
141
+ Get-ChildItem -Path . -Directory -Recurse -Depth 2 -ErrorAction SilentlyContinue |
142
+ Where-Object { $_.FullName -notmatch '\\(node_modules|\.git|dist|build|__pycache__|vendor|\.agents|\.codex|\.claude|\.codebuddy|\.prizmkit)(\\|$)' } |
143
+ Select-Object -ExpandProperty FullName
144
+ ```
145
+
146
+ **Tech stack from config.json:**
147
+ - If `.prizmkit/config.json` contains a `tech_stack` object, use it to pre-fill `global_context` fields in the generated `.prizmkit/plans/feature-list.json`.
148
+ - Map config fields to global_context: `language`, `runtime`, `frontend_framework`, `frontend_styling`, `backend_framework`, `database`, `orm`, `testing` → `testing_strategy`, `bundler`, `project_type`.
149
+ - Do NOT re-ask the user for tech stack info already present in config.json. Show detected stack and confirm.
150
+
151
+ ## Global Context Population
152
+
153
+ The `global_context` object in `.prizmkit/plans/feature-list.json` provides technology stack information. Populate it from `.prizmkit/config.json` if available, or ask the user during Phase 1.
154
+
155
+ ### Recommended Fields by Project Type
156
+
157
+ **Frontend-only projects:**
158
+ - `language` (required) — e.g., "TypeScript", "JavaScript"
159
+ - `frontend_framework` (required) — e.g., "React", "Vue", "Svelte"
160
+ - `frontend_styling` (recommended) — e.g., "Tailwind CSS", "styled-components"
161
+ - `testing_strategy` (recommended) — e.g., "Jest + React Testing Library"
162
+
163
+ **Backend-only projects:**
164
+ - `language` (required) — e.g., "TypeScript", "Python", "Go"
165
+ - `backend_framework` (required) — e.g., "Express", "Django", "FastAPI"
166
+ - `database` (required if applicable) — e.g., "PostgreSQL", "MongoDB"
167
+ - `testing_strategy` (recommended) — e.g., "Jest", "pytest"
168
+
169
+ **Full-stack projects (include both frontend AND backend fields):**
170
+ - `language`, `frontend_framework`, `backend_framework`, `database`, `testing_strategy` (all recommended)
171
+ - Additional: `frontend_styling`, `orm`, `bundler`, `runtime`
172
+
173
+ All `global_context` fields are optional — including recommended fields improves downstream code generation quality. See `.prizmkit/dev-pipeline/templates/feature-list-schema.json` for the full schema definition.
174
+
175
+
176
+ ---
177
+
178
+ ## Scenario Routing
179
+
180
+ Classify user intent first:
181
+
182
+ ### Route A: New Feature Set (No Existing Plan)
183
+ Use when the project exists but has no `.prizmkit/plans/feature-list.json` yet.
184
+
185
+ Actions:
186
+ 1. Understand the existing codebase and what's already implemented
187
+ 2. Run interactive planning phases to identify needed features
188
+ 3. Generate initial `.prizmkit/plans/feature-list.json`
189
+
190
+ ### Route B: Incremental Feature Planning
191
+ Use when user already has a `.prizmkit/plans/feature-list.json` and wants to add or adjust features.
192
+
193
+ Actions:
194
+ 1. Load `${SKILL_DIR}/references/incremental-feature-planning.md`
195
+ 2. Read existing `.prizmkit/plans/feature-list.json` first (if missing, ask whether to start new plan)
196
+ 3. Append features with next sequential `F-NNN` IDs
197
+ 4. Preserve style/language/detail consistency with existing plan
198
+
199
+ ## Core Workflow
200
+
201
+ Execute the planning workflow in conversation mode with mandatory checkpoints:
202
+
203
+ ### Interactive Phases
204
+ 1. Clarify scope and goals
205
+ 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.
206
+ 1.2 **Collect reference materials** — **Upfront Material Detection (Hard Rule)**: If the user has already provided materials (file paths, URLs, rules, specifications, code snippets) in the same message that invoked this skill: (a) Acknowledge what was received: "I received the following materials: [list]"; (b) Read/fetch all provided materials immediately; (c) You MUST still ask: "Are there any additional materials you'd like to provide?"; (d) NEVER skip this collection step just because the user already provided some materials.
207
+
208
+ If the user has NOT provided any materials upfront, explicitly ask whether they have any supplementary materials for you to review. Present this as a single prompt covering all material types:
209
+ > "Do you have any reference materials I should review before planning? This can include:
210
+ > - **Code paths** — files or directories I should read to understand existing implementation
211
+ > - **Documents** — design docs, PRDs, API specs, architecture proposals, or internal wiki pages
212
+ > - **Knowledge docs** — `.prizmkit/prizm-docs/` files, README files, or project-specific documentation
213
+ > - **Images** — wireframes, mockups, architecture diagrams, or screenshots
214
+ > - **Web links** — reference implementations, API documentation pages, or relevant articles
215
+ >
216
+ > If none, we'll proceed with what's available in the codebase."
217
+
218
+ If the user provides materials, read/fetch them all before proceeding to Phase 2. For web links, use web fetch to retrieve and analyze the content. For images, read and analyze them visually. Record what was reviewed for traceability.
219
+ 2. Confirm constraints and existing architecture
220
+ 3. Propose feature set with dependencies
221
+ 4. Refine descriptions and acceptance criteria
222
+ 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.
223
+ 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.
224
+ 5. Verify DAG/order/priorities
225
+ 6. Pre-generation completeness review (see §Pre-Generation Completeness Review below)
226
+ 7. Build or append `.prizmkit/plans/feature-list.json`
227
+ 8. Apply default testing strategy (see §Testing Defaults below)
228
+ 9. Validate and fix until pass
229
+ 10. Summarize final feature table
230
+
231
+ ### Checkpoints (Mandatory Gates)
232
+
233
+ Checkpoints catch cascading errors early — skipping one means the next phase builds on unvalidated assumptions, which compounds into much harder debugging later.
234
+
235
+ | Checkpoint | Artifact/State | Criteria | Phase |
236
+ |-----------|----------------|----------|-------|
237
+ | **CP-FP-1** | Scope Confirmed | User confirmed what features to plan and context understood | 1 |
238
+ | **CP-FP-2** | Feature Proposals | Feature set with titles+deps identified (pre-validation) | 3-5 |
239
+ | **CP-FP-3** | DAG Validity | No cycles, dependencies resolved (validation dry-run) | 5 |
240
+ | **CP-FP-3.1** | Browser Interaction Applied | Qualifying features have `browser_interaction` field; user confirmed or opted out | 4 |
241
+ | **CP-FP-3.2** | Testing Defaults Applied | All features have appropriate `critic`, `critic_count`, and testing expectations | 7 |
242
+ | **CP-FP-3.3** | Completeness Review Passed | All features reviewed for description adequacy and cross-feature gaps | 6 |
243
+ | **CP-FP-4** | `.prizmkit/plans/feature-list.json` Generated | Schema validates, all required keys present | 7-8 |
244
+ | **CP-FP-5** | Final Validation Pass | Python script returns `"valid": true` with zero errors | 9 |
245
+
246
+ **Resume Detection**: If existing artifacts are found, read `${SKILL_DIR}/references/error-recovery.md` §Resume Support for checkpoint-based resumption.
247
+
248
+ ## Pre-Generation Completeness Review (Phase 6)
249
+
250
+ Before generating `.prizmkit/plans/feature-list.json`, review the full feature set holistically.
251
+
252
+ → Read `${SKILL_DIR}/references/completeness-review.md` for the full review process (description adequacy scan, cross-feature completeness check, user presentation, and interactive supplementation).
253
+
254
+ This gate ensures all features are implementation-ready before output generation. Thin descriptions here cost minutes to fix; misimplemented features downstream cost hours.
255
+
256
+ ## Fast Path (Simple Incremental)
257
+
258
+ For simple incremental planning, skip detailed Phase 2-3 analysis:
259
+
260
+ ### Eligibility Criteria (ALL must apply)
261
+ - **Incremental mode only** — not new feature set
262
+ - **Adding 1-2 features max** to existing plan
263
+ - **Each feature**: ≤5 acceptance criteria, <100 words description
264
+ - **Dependencies**: depends on ≤2 existing features (no chains)
265
+ - **Complexity**: "low" or "medium" only
266
+ - **No architectural changes** to existing tech stack
267
+
268
+ ### Fast Path Workflow
269
+ 1. Read existing `.prizmkit/plans/feature-list.json` and confirm scope
270
+ 2. **User confirmation (mandatory)** — Use `AskUserQuestion` to present interactive selectable options:
271
+
272
+ ```
273
+ AskUserQuestion:
274
+ question: "This qualifies for fast-path (simple incremental addition). How would you like to proceed?"
275
+ header: "Approach"
276
+ options:
277
+ - label: "Fast-path"
278
+ description: "Skip detailed Phase 2-3 analysis, draft features directly and add to feature-list.json"
279
+ - label: "Full workflow"
280
+ description: "Use the complete planning workflow with detailed analysis"
281
+ - label: "Implement directly"
282
+ description: "Skip the task list entirely and implement the feature(s) right now using /prizmkit-plan + /prizmkit-implement"
283
+ ```
284
+
285
+ - **Fast-path** → Continue with fast-path workflow below
286
+ - **Full workflow** → Exit fast path, use full workflow from Phase 2
287
+ - **Implement directly** → Invoke `/prizmkit-plan` directly to create spec + plan, then `/prizmkit-implement` to execute. Do NOT add to `.prizmkit/plans/feature-list.json`
288
+
289
+ **NEVER proceed without explicit user selection via `AskUserQuestion`. Do NOT render options as plain text — the user must be able to click/select.**
290
+ 3. Generate next sequential feature IDs
291
+ 4. Draft features (title + description + acceptance_criteria + dependencies)
292
+ 5. Write draft to `.prizmkit/plans/feature-list.draft.json`, then call the generate script:
293
+ ```powershell
294
+ Invoke-PrizmPython ${SKILL_DIR}/scripts/validate-and-generate.py generate --input .prizmkit/plans/feature-list.draft.json --output .prizmkit/plans/feature-list.json --mode incremental
295
+ ```
296
+ 6. If valid → summarize and recommend next step
297
+ 7. If invalid → apply fixes to the draft, re-run generate (max 2 attempts, then escalate to full workflow)
298
+
299
+ ## Browser Interaction Planning
300
+
301
+ For fullstack/frontend projects, qualifying features get `browser_interaction` **by default**.
302
+
303
+ ### Auto-Detection Rule
304
+
305
+ A feature **qualifies** when ALL true:
306
+ 1. `global_context.frontend_framework` exists
307
+ 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
308
+
309
+ A feature is **exempt** when ANY true:
310
+ - Backend-only (API endpoints, database migrations, no UI criteria)
311
+ - Config/setup/infrastructure
312
+ - `status: "completed"` (already implemented)
313
+
314
+ ### Default Behavior (Phase 4.2)
315
+
316
+ 1. **Ask user for browser tool preference (Mandatory)**: Before generating any `browser_interaction` fields, use `AskUserQuestion` to ask which browser verification tool to use as the project default. Read `${SKILL_DIR}/references/browser-interaction.md` §Browser Tool Selection for the exact question format and options (`auto`/`playwright-cli`/`opencli`). Do NOT skip this step or assume a default without asking.
317
+ 2. **Auto-generate** `browser_interaction` for ALL qualifying features. Read `${SKILL_DIR}/references/browser-interaction.md` for the object format, field rules, and per-feature `tool` override logic.
318
+ 3. **Tool assignment per feature**: Use the user's chosen default. Override to `"opencli"` when the feature involves OAuth/SSO callbacks, third-party dashboard verification, or requires real login state. Override to `"playwright-cli"` when the feature is purely local UI (forms, components, routing). If user chose `"auto"`, AI assigns per-feature based on these rules.
319
+ 4. **Present a summary** to the user showing which features received `browser_interaction` (including the `tool` value for each).
320
+ 5. **User can opt-OUT** specific features or override the `tool` choice.
321
+
322
+ ## Output Rules
323
+
324
+ `.prizmkit/plans/feature-list.json` must conform to `.prizmkit/dev-pipeline/templates/feature-list-schema.json` (`$schema` = `dev-pipeline-feature-list-v1`).
325
+
326
+ Key requirements:
327
+ - non-empty `features` array
328
+ - sequential feature IDs (`F-001`, `F-002`, ...)
329
+ - valid dependency DAG (no cycles, all referenced IDs exist)
330
+ - `priority`: `"critical"`, `"high"`, `"medium"`, or `"low"` (string, NOT numeric)
331
+ - new items default `status: "pending"`
332
+ - English feature titles for stable slug generation
333
+ - `critic` / `critic_count` defaults per Testing Defaults section
334
+ - `browser_interaction` auto-generated for qualifying frontend features (with `tool` selection: `auto`/`playwright-cli`/`opencli`)
335
+ - descriptions: minimum 15 words (error), recommended minimum 30/50/80/100+ for low/medium/high/critical (warning). No upper limit — more detail prevents AI guessing
336
+ - `estimated_complexity` determines pipeline execution tier:
337
+ - `low` / `medium` → **lite** (single agent, no subagents)
338
+ - `high` → **standard** (orchestrator + dev + reviewer, 3 agents)
339
+ - `critical` → **full** (full team + critic agents, 5 agents). Use for: architectural changes touching 10+ files, cross-module refactoring with API surface changes, features requiring multi-critic voting
340
+
341
+ **IMPORTANT: Do NOT hand-write the final JSON file.** Instead:
342
+ 1. Write a draft JSON to a temporary path (e.g., `.prizmkit/plans/feature-list.draft.json`)
343
+ 2. Call the generate script to validate and produce the final file:
344
+ ```powershell
345
+ Invoke-PrizmPython ${SKILL_DIR}/scripts/validate-and-generate.py generate --input .prizmkit/plans/feature-list.draft.json --output .prizmkit/plans/feature-list.json --mode <new|incremental>
346
+ ```
347
+ The script fills in defaults (`$schema`, `created_at`, `created_by`), validates all fields, and writes the final file only if validation passes. If validation fails, fix the draft and retry.
348
+
349
+ ## Testing Defaults (Phase 8)
350
+
351
+ Set default testing-related fields for each feature. The user can opt out.
352
+
353
+ | Priority | `critic` | `critic_count` | Rationale |
354
+ |----------|----------|----------------|-----------|
355
+ | high | `true` | `3` | Multi-critic voting |
356
+ | medium | `true` | `1` | Single critic review |
357
+ | low | `false` | (omitted) | Skip critic |
358
+
359
+ For frontend features with `browser_interaction`, browser verification is enabled by default. The `tool` field uses the user's choice from the mandatory browser tool question in Phase 4.2 (see §Browser Interaction Planning → Default Behavior).
360
+
361
+ Present a consolidated testing summary table at Phase 8, then ask for confirmation.
362
+
363
+ ## Next-Step Execution Policy (after planning)
364
+
365
+ Recommend invoking `feature-pipeline-launcher` to configure and launch the dev-pipeline. Do NOT recommend running shell scripts directly — that is the launcher's responsibility.
366
+
367
+ ## Error Recovery & Resume
368
+
369
+ 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.
370
+
371
+ Key behaviors:
372
+ - Warnings only → proceed with user approval
373
+ - Critical errors → group by type, auto-fix where possible, max 3 total attempts
374
+ - Interrupted session → detect checkpoint from existing artifacts, offer resume or restart
375
+ - `.prizmkit/plans/feature-list.json` MUST be written to `.prizmkit/plans/` (project root level: `./{root}/.prizmkit/plans/feature-list.json`)
376
+
377
+ ## Session Exit Gate
378
+
379
+ Prevent accidental session exit without deliverable completion.
380
+
381
+ ### Trigger Conditions
382
+ Activate when ALL true:
383
+ - User expressed intent to produce .prizmkit/plans/feature-list.json
384
+ - Current phase < Phase 7
385
+ - No valid `.prizmkit/plans/feature-list.json` written in this session
386
+
387
+ ### Gate Behavior
388
+ When the session appears to be ending:
389
+ 1. **Remind**: "You set out to produce `.prizmkit/plans/feature-list.json` but we haven't completed it yet."
390
+ 2. **Offer 3 options**:
391
+ - **(a) Continue to completion**
392
+ - **(b) Save draft & exit** — write current progress as `feature-list.draft.json` to `.prizmkit/plans/`
393
+ - **(c) Abandon** — exit without saving
394
+
395
+ ## Handoff Message Template
396
+
397
+ After successful validation, report:
398
+ 1. Output file path
399
+ 2. Total features + newly added features
400
+ 3. Dependency and priority highlights
401
+ 4. Recommended next action: `feature-pipeline-launcher`
@@ -0,0 +1,64 @@
1
+ # feature planner Evaluation Guide
2
+
3
+ This guide is for maintainers who evaluate and iterate on the `feature-planner` skill quality.
4
+
5
+ ## Evaluation & Quality Gates (Optional but Recommended)
6
+
7
+ After multiple planning cycles or before committing refined skill logic, run standardized evaluation.
8
+
9
+ ### One-Command Evaluation
10
+
11
+ Requires npm setup:
12
+
13
+ ```powershell
14
+ function Invoke-PrizmPython {
15
+ param([Parameter(ValueFromRemainingArguments = $true)][string[]]$Arguments)
16
+ $python = Get-Command python -ErrorAction SilentlyContinue
17
+ if ($python) {
18
+ & $python.Source -c 'import sys; raise SystemExit(0 if sys.version_info[0] == 3 else 1)' *> $null
19
+ if ($LASTEXITCODE -eq 0) {
20
+ & $python.Source @Arguments
21
+ return
22
+ }
23
+ }
24
+ $py = Get-Command py -ErrorAction SilentlyContinue
25
+ if ($py) {
26
+ & $py.Source -3 -c 'import sys; raise SystemExit(0 if sys.version_info[0] == 3 else 1)' *> $null
27
+ if ($LASTEXITCODE -eq 0) {
28
+ & $py.Source -3 @Arguments
29
+ return
30
+ }
31
+ }
32
+ throw "Python 3 is required. Install Python and ensure python or py is in PATH."
33
+ }
34
+ npm run skill:review -- `
35
+ --workspace .prizmkit/skill-evals/feature-planner-workspace `
36
+ --iteration iteration-N `
37
+ --skill-name feature-planner `
38
+ --skill-path ${SKILL_DIR} `
39
+ --runs 3 `
40
+ --grader-cmd "Invoke-PrizmPython ${SKILL_DIR}/scripts/validate-and-generate.py grade --workspace {workspace} --iteration {iteration}"
41
+ ```
42
+
43
+ Produces:
44
+ - `benchmark.json` — quantitative metrics (pass rate, feature quality, time)
45
+ - `benchmark.md` — human-readable summary
46
+ - `review.html` — interactive evaluation viewer
47
+
48
+ ### Metrics Tracked
49
+
50
+ | Metric | Computation | Target | Interpretation |
51
+ |--------|-------------|--------|-----------------|
52
+ | `plan_validity` | % runs with validation pass | >95% | Higher = more robust planning |
53
+ | `avg_features_per_run` | avg feature count | ±20% consistency | Should be stable across runs |
54
+ | `avg_acceptance_criteria` | AC count per feature | 4-6 | Target sweet spot for test coverage |
55
+ | `dependency_complexity` | max DAG depth, cycle count | depth < 5 | Manageable dependency graph |
56
+ | `description_quality` | word count, keyword coverage | min 20 words | Sufficient AC detail |
57
+ | `latency_sec` | wall-clock execution time | <120s per run | UX acceptable |
58
+
59
+ ### When to Run Evaluation
60
+
61
+ - After major SKILL.md revisions
62
+ - Before releasing new skill updates
63
+ - Quarterly quality assurance
64
+ - Post-optimization to measure improvement