prizmkit 1.1.0 → 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 (95) 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/{dev-pipeline-launcher → feature-pipeline-launcher}/scripts/preflight-check.py +0 -0
@@ -1,29 +1,32 @@
1
1
  ---
2
2
  name: "app-planner"
3
- description: "Interactive planning for both new apps and incremental features on existing apps. This skill should be used whenever users discuss app planning, feature scoping/re-prioritization, continuing a feature plan, or preparing a validated feature-list.json for dev-pipeline execution."
3
+ description: "Plan a new application through interactive conversation capture vision, tech stack, constraints, and project brief. Use this skill when users say 'plan an app', 'design a new project', 'start from scratch', 'build a new application', or discuss app-level architecture and design. For adding features to existing projects, use feature-planner instead."
4
4
  ---
5
5
 
6
- # App Planner
6
+ # app planner
7
7
 
8
- Plan deliverable features for dev-pipeline in two modes:
9
- - **New App Planning**: create a plan from scratch
10
- - **Incremental Feature Planning**: append new features to an existing app/plan
8
+ Plan a new application from idea to actionable project context through interactive conversation:
9
+ - Vision and problem statement
10
+ - Tech stack selection
11
+ - Constraints and design direction
12
+ - Architecture decision capture
13
+ - Project brief accumulation (`project-brief.md`)
11
14
 
12
- Always produce a validated `feature-list.json` that conforms to `dev-pipeline-feature-list`.
15
+ This skill captures **what to build and why**. For **feature decomposition and `feature-list.json` generation**, hand off to `feature-planner`.
16
+
17
+ For adding features to an **existing** project, use `feature-planner` directly.
13
18
 
14
19
  ## Invocation Commitment (Hard Rule)
15
20
 
16
21
  **When the user invokes `/app-planner`, you MUST execute the app-planner workflow.** You must NEVER:
17
22
  - Decide on the user's behalf that the task "doesn't need app-planner"
18
23
  - Skip app-planner to jump directly to spec/plan/implement or any other skill
19
- - Bypass the interactive phases because you judge the task to be "simple" or "obvious"
24
+ - Bypass the interactive phases because you judge the task to be "simple"
20
25
 
21
- If you believe the task is better suited for a different workflow (e.g., fast path via `/prizmkit-plan`), you MUST:
26
+ If you believe the task is better suited for a different workflow, you MUST:
22
27
  1. **Explain why** you think a different path is more appropriate
23
- 2. **Ask the user explicitly** whether they want to switch or continue with app-planner
24
- 3. **Only switch if the user confirms** — otherwise proceed with app-planner as invoked
25
-
26
- The user chose this skill intentionally. Respect that choice.
28
+ 2. **Ask the user explicitly** whether they want to switch
29
+ 3. **Only switch if the user confirms**
27
30
 
28
31
  ## Scope Boundary (Hard Rule)
29
32
 
@@ -31,171 +34,116 @@ The user chose this skill intentionally. Respect that choice.
31
34
  - Create, modify, or delete source code files (*.js, *.ts, *.py, *.go, *.html, *.css, etc.)
32
35
  - Create project scaffolding, directories, or boilerplate
33
36
  - Run build/install/test commands (npm init, pip install, etc.)
34
- - Execute any implementation action beyond writing `feature-list.json`
37
+ - Execute any implementation action beyond writing planning artifacts
38
+ - Generate `feature-list.json` — that is `feature-planner`'s responsibility
35
39
 
36
40
  **Your ONLY writable outputs are:**
37
- 1. `feature-list.json` (project root)
38
- 2. Architecture decisions appended to `CLAUDE.md` / `CODEBUDDY.md` (with user consent, see §Architecture Decision Capture)
39
- 3. Draft backups in `.prizmkit/planning/`
40
- 4. `.prizmkit/project-conventions.json` (project convention answers, see §Project Conventions Check)
41
- 5. `project-brief.md` (project root — accumulated project context brief for headless pipeline sessions)
41
+ 1. `project-brief.md` (project root — accumulated project context brief)
42
+ 2. `.prizmkit/project-conventions.json` (project convention answers)
43
+ 3. Architecture decisions appended to `CLAUDE.md` / `CODEBUDDY.md` (with user consent)
44
+ 4. Draft backups in `.prizmkit/planning/`
42
45
 
43
46
  **After planning is complete**, you MUST:
44
- 1. Present the summary and recommended next step
45
- 2. **Ask the user explicitly** whether they want to proceed to execution
46
- 3. If the user agrees → recommend invoking `dev-pipeline-launcher` or running `run.sh` (do NOT execute it yourself)
47
- 4. If the user wants to adjustcontinue refining `feature-list.json`
48
- 5. **NEVER auto-execute** the pipeline, launcher, or any implementation step
47
+ 1. Present the summary of captured vision, constraints, and decisions
48
+ 2. **Ask the user explicitly** whether they want to proceed to feature decomposition
49
+ 3. If the user agrees → recommend invoking `feature-planner` to decompose into features and generate `feature-list.json`
50
+ 4. If the user wants to continue exploring stay in app-planner
51
+ 5. **NEVER auto-execute** the pipeline, feature-planner, or any implementation step
49
52
 
50
53
  ## When to Use
51
54
 
52
55
  Trigger this skill for requests like:
53
56
  - "Plan an app", "Design a project", "Design a new application"
54
- - "Add features to existing system", "Continue planning"
55
- - "Prepare feature-list.json", "Prepare dev-pipeline input"
56
- - "Reprioritize features", "Split features"
57
+ - "Start from scratch", "Build something new", "Create a new product"
58
+ - "Help me figure out what to build", "Brainstorm an app idea"
59
+ - "What tech stack should I use?", "Help me choose frameworks"
57
60
 
58
- Do NOT use this skill when the user only wants to run the pipeline (`dev-pipeline-launcher`), is debugging/refactoring, or wants to write source code directly.
61
+ Do NOT use this skill when:
62
+ - The user already has a project and wants to add features → use `feature-planner`
63
+ - The user wants to run the pipeline → use `feature-pipeline-launcher`
64
+ - The user is debugging/refactoring or wants to write source code directly
59
65
 
60
66
  ## Resource Loading Rules (Mandatory)
61
67
 
62
- 1. **Choose scenario reference before planning**:
63
- - New app → read `${SKILL_DIR}/references/new-app-planning.md`
64
- - Existing app incremental features → read `${SKILL_DIR}/references/incremental-feature-planning.md`
68
+ 1. **App design reference** always load at session start:
69
+ - Read `${SKILL_DIR}/assets/app-design-guide.md` for vision templates and tech stack matrix
65
70
 
66
- 2. **Use shared quality examples as needed**:
67
- - read `${SKILL_DIR}/assets/planning-guide.md` for decomposition and acceptance criteria patterns
68
-
69
- 3. **Load on-demand references when triggered**:
70
- - Validation errors or interrupted session → read `${SKILL_DIR}/references/error-recovery.md`
71
+ 2. **Load on-demand references when triggered**:
71
72
  - Architecture decisions emerged → read `${SKILL_DIR}/references/architecture-decisions.md`
72
- - Browser interaction fields needed → read `${SKILL_DIR}/references/browser-interaction.md`
73
-
74
- 4. **Brainstorm deep-dive** If the user chooses to continue discussing or exploring ideas before finalizing features (e.g., during Intent Confirmation the user selects "just explore ideas", or at any point says "let's discuss more" / "I want to think through this"):
75
- → read `${SKILL_DIR}/references/brainstorm-guide.md` and follow its four-phase structured ideation process (Assess Clarity → Understand → Explore Approaches → Capture Design)
76
- During Phase C (Explore Approaches), also read `${SKILL_DIR}/references/red-team-checklist.md` for adversarial critique of each approach
77
- → When brainstorm Phase D produces a "Capture Design" summary, use it as the Vision Summary (fulfilling CP-AP-2) and proceed to Phase 2 (constraints and tech assumptions)
78
-
79
- 5. **Frontend / UI design check** — Evaluate during Phase 2 (constraints and tech assumptions), after tech stack is confirmed. If the project has a frontend framework:
80
- → Check project root for existing UI/UX design docs (scan for files matching: `design-system*`, `style-guide*`, `ui-guide*`, `ux-guide*`, `theme*`)
81
- → Also search the active CLI's project instruction file (`CLAUDE.md` / `CODEBUDDY.md`) for keywords: "UI", "UX", "design system", "style guide", "theme", "typography", "color palette"
82
- → If unified design guidance is found → use it as constraint for feature descriptions
83
- → If NO unified design guidance found → ask user: "项目中未找到统一的 UI/UX 设计规范。是否需要在特性规划前先建立一套 UI/UX 设计方向?(No unified UI/UX design system found. Would you like to establish one before feature planning?)"
84
- → If yes → read `${SKILL_DIR}/references/frontend-design-guide.md` and conduct a design direction session. Capture the result in the project instruction file (with user consent).
85
- → If no → proceed without; individual features may still define their own UI approach.
86
-
87
- 6. **Project conventions check** — After Intent Confirmation (CP-AP-0), before brainstorm or Phase 1 vision work. This runs regardless of session goal (produce or explore):
73
+ - Frontend/UI project detected → read `${SKILL_DIR}/references/frontend-design-guide.md`
74
+ - User wants to explore ideas before committing → read `${SKILL_DIR}/references/brainstorm-guide.md`
75
+ - During brainstorm Phase C also read `${SKILL_DIR}/references/red-team-checklist.md`
76
+
77
+ 3. **Project conventions check** after Intent Confirmation, before brainstorm or vision work:
88
78
  → Read `.prizmkit/project-conventions.json` if it exists
89
- → If the file exists but cannot be parsed as valid JSON → warn user ("conventions file is corrupted, will re-ask all questions"), treat all conventions as unanswered
90
79
  → Cross-reference with `${SKILL_DIR}/references/project-conventions.md` for the full question list
91
- → For any convention with a `null` or missing value → batch all unanswered questions into a single prompt to the user
92
- → Save answers to `.prizmkit/project-conventions.json` (create `.prizmkit/` directory if needed — this is an allowed writable output)
93
- → If all conventions are already answered → skip silently, do not re-ask
94
- → Use convention answers as context when writing feature descriptions and proposing features (see `${SKILL_DIR}/references/project-conventions.md` §How Conventions Are Used)
80
+ → For any convention with a `null` or missing value → batch all unanswered questions into a single prompt
81
+ → Save answers to `.prizmkit/project-conventions.json`
82
+ → If all conventions are already answered → skip silently
95
83
 
96
- 7. **Project brief accumulation** — Throughout all interactive phases, accumulate a `project-brief.md` at project root:
97
- → Read `${SKILL_DIR}/references/project-brief-guide.md` for the file template, trigger rules, and update rules
98
- → Update after each meaningful user response containing business intent, constraints, design decisions, or emphasized details
99
- → Verify at CP-AP-5.3 before generating `feature-list.json`
100
-
101
- 8. **Always validate output via script**:
102
- - run:
103
- ```bash
104
- python3 ${SKILL_DIR}/scripts/validate-and-generate.py validate --input <output-path> --mode <new|incremental>
105
- ```
106
-
107
- 9. **Use script output as source of truth**:
108
- - if validation fails, **MUST** fix and re-run until pass
84
+ 4. **Project brief accumulation** — throughout all interactive phases:
85
+ → Read `${SKILL_DIR}/references/project-brief-guide.md` for template and rules
86
+ → Update after each meaningful user response containing business intent, constraints, or design decisions
109
87
 
110
88
  ## Prerequisites
111
89
 
112
90
  Before questions, check optional context files (never block if absent):
113
91
  - `.prizm-docs/root.prizm` (architecture/project context)
114
92
  - `.prizmkit/config.json` (existing stack preferences and detected tech stack)
115
- - `.prizmkit/project-conventions.json` (previously answered project conventions — see §Resource Loading Rules #6)
116
- - existing `feature-list.json` (required for incremental mode)
93
+ - `.prizmkit/project-conventions.json` (previously answered project conventions)
117
94
  - If `.prizm-docs/root.prizm` is absent and the project has existing source code, scan the directory structure to understand the codebase layout:
118
95
  ```bash
119
96
  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'
120
97
  ```
121
98
 
122
99
  **Tech stack auto-population from config.json:**
123
- - If `.prizmkit/config.json` contains a `tech_stack` object, use it to pre-fill `global_context` fields in the generated `feature-list.json`.
124
- - Map config fields to global_context: `language`, `runtime`, `frontend_framework`, `frontend_styling`, `backend_framework`, `database`, `orm`, `testing` → `testing_strategy`, `bundler`, `project_type`.
125
- - Do NOT re-ask the user for tech stack info that is already present in config.json. Instead, show the detected stack and ask: "Is this correct? Any changes?"
126
- - If config.json has no `tech_stack`, fall back to asking during Phase 2 (constraints and tech assumptions).
100
+ - If `.prizmkit/config.json` contains a `tech_stack` object, use it to pre-fill tech assumptions.
101
+ - Map config fields: `language`, `runtime`, `frontend_framework`, `frontend_styling`, `backend_framework`, `database`, `orm`, `testing`, `bundler`, `project_type`.
102
+ - Do NOT re-ask for tech stack info already in config.json. Show the detected stack and ask: "Is this correct? Any changes?"
103
+ - If config.json has no `tech_stack`, fall back to asking during Phase 2.
127
104
 
128
105
  Note:
129
106
  - This skill **reads** `.prizmkit/config.json` if present.
130
107
  - This skill does **not** create `.prizmkit/config.json` directly.
131
108
  - Creation/update is handled by bootstrap/init flows (e.g., `prizmkit-init`, `dev-pipeline/scripts/init-dev-team.py`).
132
109
 
133
- ## Scenario Routing
134
-
135
- Classify user intent first:
136
-
137
- ### Route A: New App Planning
138
- Use when user starts from idea/blank slate or asks for initial end-to-end plan.
139
-
140
- Actions:
141
- 1. Load `${SKILL_DIR}/references/new-app-planning.md`
142
- 2. Run interactive planning phases
143
- 3. Generate initial `feature-list.json`
144
-
145
- ### Route B: Incremental Feature Planning
146
- Use when user already has app/code/plan and asks to add or adjust features.
147
-
148
- Actions:
149
- 1. Load `${SKILL_DIR}/references/incremental-feature-planning.md`
150
- 2. Read existing `feature-list.json` first (if missing, ask whether to start new plan)
151
- 3. Append features with next sequential `F-NNN` IDs
152
- 4. Preserve style/language/detail consistency with existing plan
153
-
154
110
  ## Intent Confirmation (Mandatory First Step)
155
111
 
156
- After scenario routing, immediately confirm the user's deliverable intent:
112
+ After initial greeting, confirm the user's deliverable intent:
157
113
 
158
114
  1. **Ask explicitly**:
159
- - "本次规划的目标是生成可执行的 `feature-list.json` 吗?还是只想先讨论想法?"
160
- - (English: "Is the goal to produce a `feature-list.json` for pipeline execution, or just explore ideas?")
115
+ - "Is the goal to produce a project plan for eventual pipeline execution, or just explore ideas first?"
161
116
 
162
117
  2. **Route by answer**:
163
- - **"Produce feature-list.json"** → Continue to Core Workflow. Set session goal = `produce`.
118
+ - **"Produce a plan"** → Continue to Core Workflow. Set session goal = `produce`.
164
119
  - **"Just explore ideas"** → Enter **Exploration Mode**:
165
- - Run project conventions check first (CP-AP-1) — same as produce mode
120
+ - Run project conventions check first
166
121
  - Load `${SKILL_DIR}/references/brainstorm-guide.md` and follow its structured ideation process (Phases A-D)
167
122
  - Brainstorm Phase D output serves as the Vision Summary (CP-AP-2)
168
- - Continue with Phase 2 (constraints — including frontend design check CP-AP-3 if applicable), then Phases 3-5 normally
169
- - At Phase 5 completion, re-ask: "Ideas are taking shape. Ready to generate `feature-list.json` now?"
170
- - If yes → continue to Phase 6
171
- - If no → summarize discussion, suggest saving notes, end session
123
+ - Continue with Phase 2 (constraints — including frontend design check if applicable)
124
+ - At Phase 2 completion, re-ask: "Ideas are taking shape. Ready to hand off to `feature-planner` for feature decomposition?"
125
+ - If yes → recommend invoking `feature-planner`
126
+ - If no → offer to continue exploring (loop back to brainstorm or constraints), or save draft to `.prizmkit/planning/` and exit
172
127
 
173
128
  3. **Session goal tracking**: Track the intent (`produce` or `explore`) throughout the session. If `explore`, always re-prompt before ending.
174
129
 
175
130
  ## Core Workflow
176
131
 
177
- Execute the selected scenario workflow in conversation mode with mandatory checkpoints:
132
+ Execute the planning workflow in conversation mode with mandatory checkpoints:
178
133
 
179
134
  ### Interactive Phases
180
- 1. clarify business goal and scope
181
- 1.1 confirm deliverable intent (→ Intent Confirmation)
182
- 1.2 **requirement clarification** — for ANY unclear aspect of the user's vision, goals, target users, 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 or number of questions. Do not proceed to Phase 2 with unresolved ambiguities.
183
- 2. confirm constraints and tech assumptions
184
- 3. propose feature set with dependencies
185
- 4. refine descriptions and acceptance criteria
186
- 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. Continue until every feature has unambiguous, implementation-ready details.
187
- 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.
188
- 5. verify DAG/order/priorities
189
- 6. build or append `feature-list.json`
190
- 7. apply default testing strategy (see §Testing Defaults below)
191
- 8. validate and fix until pass
192
- 9. summarize final feature table
135
+ 1. Clarify business goal and scope
136
+ 1.1 Confirm deliverable intent (→ Intent Confirmation)
137
+ 1.2 **Requirement clarification** — for ANY unclear aspect of the user's vision, goals, target users, or scope, ask questions one at a time until fully understood. No limit on rounds. Do not proceed to Phase 2 with unresolved ambiguities.
138
+ 2. Confirm constraints and tech assumptions
139
+ 2.1 Tech stack selection use `${SKILL_DIR}/assets/app-design-guide.md` §2 decision matrix
140
+ 2.2 **Frontend design check** (for frontend projects) — scan for existing UI/UX design docs. If none found, ask user if they want to establish design direction via `${SKILL_DIR}/references/frontend-design-guide.md`
141
+ 3. Capture architecture decisions and finalize project brief
142
+ 4. Hand off to `feature-planner` for feature decomposition
193
143
 
194
144
  ### Checkpoints (Mandatory Gates)
195
145
 
196
- Checkpoints catch cascading errors early — skipping one means the next phase builds on unvalidated assumptions, which compounds into much harder debugging later.
197
-
198
- Note: Checkpoint numbers (CP-AP-N) are sequential identifiers for the gate, NOT phase numbers. See the "Phase" column for the corresponding workflow phase.
146
+ Checkpoints catch cascading errors early — skipping one means the next phase builds on unvalidated assumptions.
199
147
 
200
148
  | Checkpoint | Artifact/State | Criteria | Phase |
201
149
  |-----------|----------------|----------|-------|
@@ -203,227 +151,64 @@ Note: Checkpoint numbers (CP-AP-N) are sequential identifiers for the gate, NOT
203
151
  | **CP-AP-1** | Conventions Checked | Project conventions loaded or asked; `.prizmkit/project-conventions.json` up to date | 1 |
204
152
  | **CP-AP-2** | Vision Summary | Goal/users/differentiators confirmed by user | 1-2 |
205
153
  | **CP-AP-3** | Frontend Design Evaluated | For frontend projects: checked for existing UI/UX design system; user was asked if missing | 2 |
206
- | **CP-AP-4** | Feature Proposals | Feature set with titles+deps identified (pre-validation) | 3-5 |
207
- | **CP-AP-5** | DAG Validity | No cycles, dependencies resolved (validation dry-run) | 5 |
208
- | **CP-AP-5.1** | Browser Interaction Applied | Qualifying features have `browser_interaction` field; user confirmed or opted out | 4 |
209
- | **CP-AP-5.2** | Testing Defaults Applied | All features have appropriate `critic`, `critic_count`, and testing expectations per §Testing Defaults | 7 |
210
- | **CP-AP-5.3** | Project Brief Accumulated | `project-brief.md` exists at project root with Vision + at least one other section | 5 |
211
- | **CP-AP-6** | `feature-list.json` Generated | Schema validates, all required keys present | 6-7 |
212
- | **CP-AP-7** | Final Validation Pass | Python script returns `"valid": true` with zero errors | 8 |
213
-
214
- **Resume Detection**: If existing artifacts are found, read `${SKILL_DIR}/references/error-recovery.md` §Resume Support for checkpoint-based resumption.
154
+ | **CP-AP-4** | Project Brief Accumulated | `project-brief.md` exists at project root with at least 3 ideas listed | 3 |
155
+ | **CP-AP-5** | Handoff Ready | All app-level context captured; user confirmed readiness for feature decomposition | 4 |
215
156
 
216
157
  ## Architecture Decision Capture
217
158
 
218
- After Phase 5, if framework-shaping architecture decisions emerged during planning (tech stack, communication patterns, data model strategies — not individual feature details), read `${SKILL_DIR}/references/architecture-decisions.md` and follow the capture flow. Most sessions will NOT produce architecture decisions — only capture when genuinely impactful.
219
-
220
- ## Fast Path — Incremental Shortcuts
221
-
222
- For simple incremental planning, skip detailed Phase 2-3 analysis to accelerate delivery:
223
-
224
- ### Eligibility Criteria (ALL must apply)
225
- - **Incremental mode only** — not new app planning
226
- - **Adding 1-2 features max** to existing plan
227
- - **Each feature**: ≤5 acceptance criteria, <100 words description
228
- - **Dependencies**: depends on ≤2 existing features (no chains)
229
- - **Complexity**: "low" or "medium" only
230
- - **No architectural changes** to existing tech stack
231
-
232
- ### Fast Path Workflow
233
- 1. Read existing `feature-list.json` and confirm scope
234
- 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.
235
- 3. Generate next sequential feature IDs
236
- 4. Draft features (title + description + acceptance_criteria + dependencies)
237
- 5. Run validation script immediately
238
- 6. If valid → summarize and recommend next step
239
- 7. If invalid → apply fixes, re-validate (max 2 attempts, then escalate to full workflow)
240
-
241
- ### When NOT to Use Fast Path
242
- - New app planning (always use full workflow)
243
- - Adding >2 features in one session
244
- - Features with complex interdependencies (>2 dependencies)
245
- - High complexity features requiring architecture decisions
246
- - Changes affecting >3 existing features
247
-
248
- ### Example Fast Path Session
249
- ```
250
- User: "Add email verification to existing user module."
251
- AI: [Detects incremental mode]
252
- AI: [Checks existing plan: found 8 features, user module exists]
253
- AI: [Qualifies for fast path: 1 feature, low complexity, ≤2 deps]
254
- AI: "This qualifies for fast-path. Skip detailed analysis and draft directly? Or use full workflow?"
255
- User: "Fast path is fine."
256
- AI: "Drafting F-009..."
257
- AI: [Validates immediately]
258
- AI: "Ready to proceed to dev-pipeline."
259
- ```
260
-
261
- ## Browser Interaction Planning
262
-
263
- For fullstack/frontend projects, qualifying features get `browser_interaction` **by default**. This is not opt-in — it is the standard.
264
-
265
- ### Auto-Detection Rule
266
-
267
- A feature **qualifies** for browser interaction when ALL of these are true:
268
- 1. `global_context.frontend_framework` exists (project has a frontend)
269
- 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
270
-
271
- A feature is **exempt** when ANY of these are true:
272
- - It is backend-only (API endpoints, database migrations, no UI criteria)
273
- - It is config/setup/infrastructure
274
- - It has `status: "completed"` (already implemented)
275
-
276
- ### Default Behavior (Phase 4.2)
277
-
278
- 1. **Auto-generate** `browser_interaction` for ALL qualifying features. Read `${SKILL_DIR}/references/browser-interaction.md` for the object format and field rules.
279
- 2. **Present a summary** to the user showing which features received `browser_interaction`:
280
- > "以下 N 个前端特性已自动添加 browser_interaction 用于 Playwright 自动验证:F-002, F-004, F-007。如需移除某个特性的浏览器验证,请告知。"
281
- 3. **User can opt-OUT** specific features — remove the field for declined features.
282
- 4. If **user opts out entirely** ("remove all browser verification") → remove all fields and record the decision.
283
-
284
- **You must NOT skip this step for qualifying features.** The checkpoint CP-AP-5.1 verifies this step was completed.
285
-
286
- ### When NOT to add
287
-
288
- **Do NOT add for**: backend-only features, config/setup features, or non-UI features. These are automatically exempt.
289
-
290
- ## Output Rules
159
+ After Phase 2, if framework-shaping architecture decisions emerged during planning (tech stack, communication patterns, data model strategies — not individual feature details), read `${SKILL_DIR}/references/architecture-decisions.md` and follow the capture flow. Most sessions will NOT produce architecture decisions — only capture when genuinely impactful.
291
160
 
292
- `feature-list.json` must satisfy:
293
- - `$schema` = `dev-pipeline-feature-list-v1`
294
- - non-empty `features`
295
- - sequential feature IDs (`F-001`, `F-002`, ...)
296
- - valid dependency DAG
297
- - `priority` must be a string: `"high"`, `"medium"`, or `"low"` (NOT numeric values like 1/2/3)
298
- - new items default `status: "pending"`
299
- - English feature titles for stable slug generation
300
- - `model` field is optional — omitting it means the pipeline uses $MODEL env or CLI default
301
- - `critic` field defaults based on priority: `true` for high/medium priority features, `false` for low. User can override.
302
- - `critic_count` field defaults based on priority: `3` (multi-critic voting) for high priority, `1` (single critic) for medium. User can override.
303
- - `browser_interaction` field is auto-generated for qualifying frontend features (see §Browser Interaction Planning). Requires `playwright-cli` to be installed.
304
- - **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 for what to include.
305
-
306
- ## Testing Defaults (Phase 7)
307
-
308
- All three testing mechanisms are **enabled by default** to maximize quality. The user can opt out of any mechanism, but the default is comprehensive testing.
309
-
310
- ### 1. Test File Generation (TDD)
311
-
312
- Every feature is expected to include tests. When writing feature descriptions, explicitly state testing expectations:
313
-
314
- | Complexity | Default Testing Expectation |
315
- |------------|----------------------------|
316
- | low | Unit tests for core logic |
317
- | medium | Unit tests + integration tests for key flows |
318
- | high | Unit tests + integration tests + edge case coverage |
319
-
320
- **In the feature description**, include a line like:
321
- - "Include unit tests for [key functions/modules]."
322
- - "Include integration tests verifying [API endpoints / data flows]."
323
-
324
- This ensures the downstream `prizmkit-implement` skill (which uses TDD) has clear guidance on what tests to write.
325
-
326
- ### 2. Browser Verification (Playwright)
327
-
328
- See §Browser Interaction Planning above. Default: **ON** for all qualifying frontend features.
329
-
330
- ### 3. Adversarial Critic Review (Multi-Agent)
331
-
332
- Default assignments based on feature priority:
333
-
334
- | Priority | `critic` | `critic_count` | Rationale |
335
- |----------|----------|----------------|-----------|
336
- | high | `true` | `3` | Multi-critic voting — catches more issues for critical features |
337
- | medium | `true` | `1` | Single critic review — balanced cost/quality |
338
- | low | `false` | (omitted) | Skip critic — simple features don't warrant the overhead |
339
-
340
- After applying defaults, present a summary to the user:
341
- > "已为 N 个 high/medium 优先级特性启用代码评审 (critic):high 优先级使用 3-agent 投票模式,medium 使用单 agent 评审。如需调整请告知。"
342
-
343
- The user can override any assignment (enable/disable critic, change critic_count) before finalizing.
161
+ ## Project Brief Accumulation
344
162
 
345
- ### Summary Presentation
163
+ During interactive planning, maintain a `project-brief.md` at the project root as a simple checklist of product ideas.
346
164
 
347
- At Phase 7, present a consolidated testing summary table:
165
+ Read `${SKILL_DIR}/references/project-brief-guide.md` for full format and rules.
348
166
 
167
+ **Format**: One idea per line, each starting with `[ ]`. Example:
349
168
  ```
350
- Feature | TDD Tests | Playwright | Critic
351
- F-001 | unit | — | —
352
- F-002 | unit+integration | ✓ | 3-agent
353
- F-003 | unit+integration | ✓ | 1-agent
354
- F-004 | unit | — | —
355
- ```
356
-
357
- Ask: "以上是各特性的默认测试配置。如需调整请告知,否则将按此配置生成 feature-list.json。"
358
-
359
- ## Next-Step Execution Policy (after planning)
360
-
361
- Recommend these three options in this strict order:
362
-
363
- 1. **Preferred**: invoke `dev-pipeline-launcher` skill (natural-language handoff)
364
- 2. **Fallback A**: run daemon wrapper
365
- ```bash
366
- ./dev-pipeline/launch-daemon.sh start feature-list.json
367
- ./dev-pipeline/launch-daemon.sh status
368
- ```
369
- 3. **Fallback B**: run direct foreground script
370
- ```bash
371
- ./dev-pipeline/run.sh run
372
- ./dev-pipeline/run.sh status
373
- ```
374
-
375
- When launcher is available, do not prioritize raw scripts.
169
+ # Project Brief
376
170
 
377
- ## Error Recovery & Resume
171
+ [x] 表示构想已在某个 feature 中实现完成
378
172
 
379
- 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.
173
+ --------
380
174
 
381
- Key behaviors:
382
- - Warnings only proceed with user approval
383
- - Critical errors group by type, auto-fix where possible, max 3 total attempts
384
- - Interrupted session → detect checkpoint from existing artifacts, offer resume or restart
385
- - `feature-list.json` MUST be written to project root (same level as `package.json` / `.git`)
386
-
387
- ## Project Brief Accumulation
388
-
389
- During interactive planning, maintain a `project-brief.md` at the project root that distills the user's key requirements, design decisions, and context for headless pipeline sessions.
390
-
391
- → Read `${SKILL_DIR}/references/project-brief-guide.md` for the file template, accumulation trigger, update rules, and examples.
175
+ [ ] B2B SaaS 餐饮库存管理平台,面向中小连锁餐厅
176
+ [ ] 核心价值:通过预测性订货减少 30% 食物浪费
177
+ [ ] 必须支持 iPad Safari 离线模式
178
+ ```
392
179
 
393
- **Key rules** (full details in guide):
394
- - Update after each meaningful user response that contains business intent, constraints, design decisions, or emphasized details
395
- - Fixed 4-section structure: Vision, Core Constraints, Design Decisions, Key Requirements
396
- - Max 500 words; one sentence per bullet
397
- - Checkpoint **CP-AP-5.3**: must exist with Vision + at least one other populated section before CP-AP-6
180
+ **Key rules**:
181
+ - After each meaningful user response append a new `[ ]` line
182
+ - One idea, one sentence per line no paragraphs
183
+ - Max 500 words total
184
+ - Must have at least 3 ideas listed before CP-AP-4
185
+ - The pipeline will mark `[x]` and append file paths when features are implemented
398
186
 
399
187
  ## Session Exit Gate
400
188
 
401
- Prevent accidental session exit without deliverable completion.
189
+ Prevent accidental session exit without completing the planning artifacts.
402
190
 
403
191
  ### Trigger Conditions
404
192
 
405
- Activate exit gate when ALL of these are true:
406
- - Session goal = `produce` (user confirmed they want feature-list.json via CP-AP-0)
407
- - Current phase < Phase 7 (final validation not yet passed)
408
- - No valid `feature-list.json` has been written in this session
193
+ Activate when ALL true:
194
+ - Session goal = `produce`
195
+ - `project-brief.md` has not been written or is incomplete (Vision section missing)
196
+ - No architecture decisions captured yet (if any emerged)
409
197
 
410
198
  ### Gate Behavior
411
199
 
412
- When the session appears to be ending (user says "thanks", "that's all", "bye", or conversation goes idle after Phase 3+):
413
-
414
- 1. **Remind**: "You set out to produce `feature-list.json` but we haven't completed it yet."
200
+ When the session appears to be ending:
201
+ 1. **Remind**: "You set out to produce a project plan but `project-brief.md` isn't complete yet."
415
202
  2. **Offer 3 options**:
416
- - **(a) Continue to completion** — resume from current phase
417
- - **(b) Save draft & exit** — write current progress as draft, exit session
203
+ - **(a) Continue to completion**
204
+ - **(b) Save draft & exit** — write current progress as draft to `.prizmkit/planning/`
418
205
  - **(c) Abandon** — exit without saving
419
- 3. **If (b)**: Write the draft file and remind user: "This is a draft, not validated. Run `/app-planner` again to resume and finalize."
420
- 4. **If (c)**: Accept without further prompting.
421
206
 
207
+ ## Handoff to feature-planner
422
208
 
423
- ## Handoff Message Template
209
+ After all checkpoints pass, present a summary and recommend next steps:
424
210
 
425
- After successful validation, report:
426
- 1. output file path
427
- 2. total features + newly added features
428
- 3. dependency and priority highlights
429
- 4. recommended next action: `dev-pipeline-launcher`
211
+ 1. **Summary**: List captured vision, tech stack, constraints, architecture decisions, and project brief status
212
+ 2. **Primary recommendation**: Invoke `feature-planner` to decompose the application into features and generate `feature-list.json`
213
+ 3. **Alternative**: If the user wants to continue refining the vision or constraints, stay in app-planner
214
+ 4. **Artifacts produced**: List files written (`project-brief.md`, `.prizmkit/project-conventions.json`, architecture decisions if any)