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.
- package/bundled/VERSION.json +3 -3
- package/bundled/adapters/claude/agent-adapter.js +18 -0
- package/bundled/adapters/claude/command-adapter.js +1 -27
- package/bundled/agents/prizm-dev-team-critic.md +2 -0
- package/bundled/agents/prizm-dev-team-dev.md +2 -0
- package/bundled/agents/prizm-dev-team-reviewer.md +2 -0
- package/bundled/dev-pipeline/README.md +63 -63
- package/bundled/dev-pipeline/assets/feature-list-example.json +1 -1
- package/bundled/dev-pipeline/assets/prizm-dev-team-integration.md +1 -1
- package/bundled/dev-pipeline/{launch-daemon.sh → launch-feature-daemon.sh} +33 -33
- package/bundled/dev-pipeline/launch-refactor-daemon.sh +454 -0
- package/bundled/dev-pipeline/lib/branch.sh +1 -1
- package/bundled/dev-pipeline/reset-feature.sh +3 -3
- package/bundled/dev-pipeline/reset-refactor.sh +312 -0
- package/bundled/dev-pipeline/{retry-bug.sh → retry-bugfix.sh} +47 -59
- package/bundled/dev-pipeline/retry-feature.sh +41 -54
- package/bundled/dev-pipeline/retry-refactor.sh +358 -0
- package/bundled/dev-pipeline/run-bugfix.sh +6 -0
- package/bundled/dev-pipeline/{run.sh → run-feature.sh} +31 -31
- package/bundled/dev-pipeline/run-refactor.sh +787 -0
- package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +177 -10
- package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +419 -0
- package/bundled/dev-pipeline/scripts/init-refactor-pipeline.py +393 -0
- package/bundled/dev-pipeline/scripts/update-refactor-status.py +726 -0
- package/bundled/dev-pipeline/templates/agent-prompts/critic-code-challenge.md +13 -0
- package/bundled/dev-pipeline/templates/agent-prompts/critic-plan-challenge.md +7 -0
- package/bundled/dev-pipeline/templates/agent-prompts/dev-fix.md +7 -0
- package/bundled/dev-pipeline/templates/agent-prompts/dev-implement.md +26 -0
- package/bundled/dev-pipeline/templates/agent-prompts/dev-resume.md +5 -0
- package/bundled/dev-pipeline/templates/agent-prompts/reviewer-analyze.md +5 -0
- package/bundled/dev-pipeline/templates/agent-prompts/reviewer-review.md +12 -0
- package/bundled/dev-pipeline/templates/bootstrap-tier1.md +29 -2
- package/bundled/dev-pipeline/templates/bootstrap-tier2.md +8 -7
- package/bundled/dev-pipeline/templates/bootstrap-tier3.md +11 -10
- package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +2 -3
- package/bundled/dev-pipeline/templates/feature-list-schema.json +1 -1
- package/bundled/dev-pipeline/templates/refactor-list-schema.json +159 -0
- package/bundled/dev-pipeline/templates/sections/ac-verification-checklist.md +13 -0
- package/bundled/dev-pipeline/templates/sections/feature-context.md +1 -1
- package/bundled/dev-pipeline/templates/sections/phase-analyze-agent.md +9 -8
- package/bundled/dev-pipeline/templates/sections/phase-analyze-full.md +9 -8
- package/bundled/dev-pipeline/templates/sections/phase-browser-verification.md +2 -1
- package/bundled/dev-pipeline/templates/sections/phase-critic-code.md +8 -10
- package/bundled/dev-pipeline/templates/sections/phase-critic-plan-full.md +9 -10
- package/bundled/dev-pipeline/templates/sections/phase-critic-plan.md +8 -9
- package/bundled/dev-pipeline/templates/sections/phase-implement-agent.md +7 -10
- package/bundled/dev-pipeline/templates/sections/phase-implement-full.md +8 -15
- package/bundled/dev-pipeline/templates/sections/phase-review-agent.md +7 -12
- package/bundled/dev-pipeline/templates/sections/phase-review-full.md +8 -19
- package/bundled/dev-pipeline/templates/sections/test-failure-recovery.md +75 -0
- package/bundled/skills/_metadata.json +33 -6
- package/bundled/skills/app-planner/SKILL.md +105 -320
- package/bundled/skills/app-planner/assets/app-design-guide.md +101 -0
- package/bundled/skills/app-planner/references/frontend-design-guide.md +1 -1
- package/bundled/skills/app-planner/references/project-brief-guide.md +49 -80
- package/bundled/skills/bug-fix-workflow/SKILL.md +2 -2
- package/bundled/skills/bug-planner/SKILL.md +68 -5
- package/bundled/skills/bug-planner/scripts/validate-bug-list.py +3 -2
- package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +19 -5
- package/bundled/skills/{dev-pipeline-launcher → feature-pipeline-launcher}/SKILL.md +32 -32
- package/bundled/skills/feature-planner/SKILL.md +337 -0
- package/bundled/skills/{app-planner → feature-planner}/assets/evaluation-guide.md +4 -4
- package/bundled/skills/{app-planner → feature-planner}/assets/planning-guide.md +3 -171
- package/bundled/skills/{app-planner → feature-planner}/references/browser-interaction.md +6 -5
- package/bundled/skills/feature-planner/references/decomposition-patterns.md +75 -0
- package/bundled/skills/{app-planner → feature-planner}/references/error-recovery.md +8 -8
- package/bundled/skills/{app-planner → feature-planner}/references/incremental-feature-planning.md +1 -1
- package/bundled/skills/{app-planner/references/new-app-planning.md → feature-planner/references/new-project-planning.md} +1 -1
- package/bundled/skills/{app-planner → feature-planner}/scripts/validate-and-generate.py +4 -4
- package/bundled/skills/feature-workflow/SKILL.md +23 -23
- package/bundled/skills/prizm-kit/SKILL.md +1 -3
- package/bundled/skills/prizmkit-analyze/SKILL.md +2 -5
- package/bundled/skills/prizmkit-code-review/SKILL.md +2 -2
- package/bundled/skills/prizmkit-committer/SKILL.md +4 -8
- package/bundled/skills/prizmkit-deploy/SKILL.md +1 -5
- package/bundled/skills/prizmkit-implement/SKILL.md +3 -50
- package/bundled/skills/prizmkit-init/SKILL.md +5 -77
- package/bundled/skills/prizmkit-plan/SKILL.md +1 -12
- package/bundled/skills/prizmkit-prizm-docs/SKILL.md +6 -24
- package/bundled/skills/prizmkit-prizm-docs/assets/PRIZM-SPEC.md +21 -0
- package/bundled/skills/prizmkit-retrospective/SKILL.md +12 -117
- package/bundled/skills/recovery-workflow/SKILL.md +166 -316
- package/bundled/skills/recovery-workflow/evals/evals.json +29 -13
- package/bundled/skills/recovery-workflow/scripts/detect-recovery-state.py +232 -274
- package/bundled/skills/refactor-pipeline-launcher/SKILL.md +352 -0
- package/bundled/skills/refactor-planner/SKILL.md +436 -0
- package/bundled/skills/refactor-planner/assets/planning-guide.md +292 -0
- package/bundled/skills/refactor-planner/references/behavior-preservation.md +301 -0
- package/bundled/skills/refactor-planner/references/refactor-scoping-guide.md +221 -0
- package/bundled/skills/refactor-planner/scripts/validate-and-generate-refactor.py +786 -0
- package/bundled/skills/refactor-workflow/SKILL.md +299 -319
- package/package.json +1 -1
- package/src/clean.js +3 -3
- package/src/scaffold.js +6 -6
- /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: "
|
|
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
|
-
#
|
|
6
|
+
# app planner
|
|
7
7
|
|
|
8
|
-
Plan
|
|
9
|
-
-
|
|
10
|
-
-
|
|
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
|
-
|
|
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"
|
|
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
|
|
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
|
|
24
|
-
3. **Only switch if the user confirms**
|
|
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
|
|
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. `
|
|
38
|
-
2.
|
|
39
|
-
3.
|
|
40
|
-
4. `.prizmkit/
|
|
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
|
|
45
|
-
2. **Ask the user explicitly** whether they want to proceed to
|
|
46
|
-
3. If the user agrees → recommend invoking `
|
|
47
|
-
4. If the user wants to
|
|
48
|
-
5. **NEVER auto-execute** the pipeline,
|
|
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
|
-
- "
|
|
55
|
-
- "
|
|
56
|
-
- "
|
|
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
|
|
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. **
|
|
63
|
-
-
|
|
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. **
|
|
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
|
-
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
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
|
|
92
|
-
→ Save answers to `.prizmkit/project-conventions.json`
|
|
93
|
-
→ If all conventions are already answered → skip silently
|
|
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
|
-
|
|
97
|
-
→ Read `${SKILL_DIR}/references/project-brief-guide.md` for
|
|
98
|
-
→ Update after each meaningful user response containing business intent, constraints, design decisions
|
|
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
|
|
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
|
|
124
|
-
- Map config fields
|
|
125
|
-
- Do NOT re-ask
|
|
126
|
-
- If config.json has no `tech_stack`, fall back to asking during Phase 2
|
|
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
|
|
112
|
+
After initial greeting, confirm the user's deliverable intent:
|
|
157
113
|
|
|
158
114
|
1. **Ask explicitly**:
|
|
159
|
-
- "
|
|
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
|
|
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
|
|
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
|
|
169
|
-
- At Phase
|
|
170
|
-
- If yes →
|
|
171
|
-
- If no →
|
|
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
|
|
132
|
+
Execute the planning workflow in conversation mode with mandatory checkpoints:
|
|
178
133
|
|
|
179
134
|
### Interactive Phases
|
|
180
|
-
1.
|
|
181
|
-
1.1
|
|
182
|
-
1.2 **
|
|
183
|
-
2.
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
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
|
|
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** |
|
|
207
|
-
| **CP-AP-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
|
|
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
|
-
|
|
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
|
-
|
|
163
|
+
During interactive planning, maintain a `project-brief.md` at the project root as a simple checklist of product ideas.
|
|
346
164
|
|
|
347
|
-
|
|
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
|
-
|
|
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
|
-
|
|
171
|
+
[x] 表示构想已在某个 feature 中实现完成
|
|
378
172
|
|
|
379
|
-
|
|
173
|
+
--------
|
|
380
174
|
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
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
|
|
394
|
-
-
|
|
395
|
-
-
|
|
396
|
-
- Max 500 words
|
|
397
|
-
-
|
|
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
|
|
189
|
+
Prevent accidental session exit without completing the planning artifacts.
|
|
402
190
|
|
|
403
191
|
### Trigger Conditions
|
|
404
192
|
|
|
405
|
-
Activate
|
|
406
|
-
- Session goal = `produce`
|
|
407
|
-
-
|
|
408
|
-
- No
|
|
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
|
|
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**
|
|
417
|
-
- **(b) Save draft & exit** — write current progress as draft
|
|
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
|
-
|
|
209
|
+
After all checkpoints pass, present a summary and recommend next steps:
|
|
424
210
|
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
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)
|