mindsystem-cc 3.10.1 → 3.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/agents/ms-designer.md +8 -8
- package/agents/ms-executor.md +14 -163
- package/agents/ms-plan-checker.md +2 -3
- package/agents/ms-plan-writer.md +6 -21
- package/agents/ms-roadmapper.md +1 -18
- package/agents/ms-verify-fixer.md +1 -1
- package/commands/ms/design-phase.md +9 -14
- package/commands/ms/execute-phase.md +0 -9
- package/commands/ms/help.md +1 -8
- package/commands/ms/new-project.md +3 -40
- package/commands/ms/review-design.md +4 -7
- package/commands/ms/verify-work.md +1 -1
- package/mindsystem/references/design-directions.md +1 -1
- package/mindsystem/references/mock-patterns.md +48 -0
- package/mindsystem/references/plan-format.md +2 -129
- package/mindsystem/references/scope-estimation.md +3 -36
- package/mindsystem/templates/config.json +0 -13
- package/mindsystem/templates/design.md +1 -1
- package/mindsystem/templates/phase-prompt.md +6 -142
- package/mindsystem/templates/roadmap.md +1 -1
- package/mindsystem/templates/summary.md +24 -0
- package/mindsystem/workflows/execute-phase.md +4 -99
- package/mindsystem/workflows/execute-plan.md +12 -523
- package/mindsystem/workflows/generate-mocks.md +74 -0
- package/mindsystem/workflows/mockup-generation.md +11 -5
- package/mindsystem/workflows/plan-phase.md +15 -60
- package/mindsystem/workflows/transition.md +1 -10
- package/mindsystem/workflows/verify-work.md +97 -17
- package/package.json +1 -1
- package/scripts/__pycache__/compare_mockups.cpython-314.pyc +0 -0
- package/scripts/compare_mockups.py +219 -0
- package/mindsystem/references/checkpoint-detection.md +0 -50
- package/mindsystem/references/checkpoints.md +0 -788
|
@@ -215,46 +215,9 @@ Do not compress. Capture everything gathered.
|
|
|
215
215
|
|
|
216
216
|
</step>
|
|
217
217
|
|
|
218
|
-
<step name="workflow_preferences">
|
|
219
|
-
|
|
220
|
-
Ask workflow preferences in a single AskUserQuestion call (2 questions):
|
|
221
|
-
|
|
222
|
-
Use AskUserQuestion with questions array:
|
|
223
|
-
|
|
224
|
-
```
|
|
225
|
-
questions: [
|
|
226
|
-
{
|
|
227
|
-
header: "Depth",
|
|
228
|
-
question: "How thorough should planning be?",
|
|
229
|
-
multiSelect: false,
|
|
230
|
-
options: [
|
|
231
|
-
{ label: "Quick", description: "Ship fast (3-5 phases, 1-3 plans each)" },
|
|
232
|
-
{ label: "Standard (Recommended)", description: "Balanced scope and speed (5-8 phases, 3-5 plans each)" },
|
|
233
|
-
{ label: "Comprehensive", description: "Thorough coverage (8-12 phases, 5-10 plans each)" }
|
|
234
|
-
]
|
|
235
|
-
},
|
|
236
|
-
{
|
|
237
|
-
header: "Execution",
|
|
238
|
-
question: "Run plans in parallel?",
|
|
239
|
-
multiSelect: false,
|
|
240
|
-
options: [
|
|
241
|
-
{ label: "Parallel (Recommended)", description: "Independent plans run simultaneously" },
|
|
242
|
-
{ label: "Sequential", description: "One plan at a time" }
|
|
243
|
-
]
|
|
244
|
-
}
|
|
245
|
-
]
|
|
246
|
-
```
|
|
247
|
-
|
|
248
|
-
**Notes:**
|
|
249
|
-
- Depth controls compression tolerance, not artificial inflation
|
|
250
|
-
- Parallelization spawns multiple agents for independent plans
|
|
251
|
-
- All settings can be changed later in config.json
|
|
252
|
-
|
|
253
|
-
</step>
|
|
254
|
-
|
|
255
218
|
<step name="config">
|
|
256
219
|
|
|
257
|
-
Create `.planning/config.json` with
|
|
220
|
+
Create `.planning/config.json` with subsystems and code_review using `templates/config.json` structure.
|
|
258
221
|
|
|
259
222
|
**Subsystems:** Derive 5-10 initial subsystems from the project context gathered during questioning. These are short, lowercase identifiers for the major functional areas of the project.
|
|
260
223
|
|
|
@@ -263,7 +226,7 @@ Examples by project type:
|
|
|
263
226
|
- SaaS: `["auth", "dashboard", "analytics", "billing", "notifications", "ui", "api", "database"]`
|
|
264
227
|
- Mobile app: `["auth", "onboarding", "feed", "messaging", "profile", "media", "api", "storage"]`
|
|
265
228
|
|
|
266
|
-
|
|
229
|
+
These values are used throughout the system for consistent categorization of summaries, debug docs, and adhoc work.
|
|
267
230
|
|
|
268
231
|
</step>
|
|
269
232
|
|
|
@@ -340,7 +303,7 @@ Update `.planning/STATE.md` Last Command field (if STATE.md exists):
|
|
|
340
303
|
- [ ] PROJECT.md captures full context with evolutionary structure
|
|
341
304
|
- [ ] Requirements initialized as hypotheses (greenfield) or with inferred Validated (brownfield)
|
|
342
305
|
- [ ] Key Decisions table initialized
|
|
343
|
-
- [ ] config.json has
|
|
306
|
+
- [ ] config.json has subsystems and code_review settings
|
|
344
307
|
- [ ] All committed to git
|
|
345
308
|
|
|
346
309
|
</success_criteria>
|
|
@@ -117,12 +117,9 @@ ls .planning/phases/${PHASE_ARG}-*/*-DESIGN.md 2>/dev/null
|
|
|
117
117
|
|
|
118
118
|
### Step 2.3: Optional Context
|
|
119
119
|
|
|
120
|
-
**
|
|
121
|
-
```bash
|
|
122
|
-
ls .claude/skills/*implement-ui* 2>/dev/null
|
|
123
|
-
```
|
|
120
|
+
**Project UI skill (if exists):**
|
|
124
121
|
|
|
125
|
-
If
|
|
122
|
+
Check your available skills for one that provides domain expertise relevant to this project's UI implementation patterns. If found, invoke it via the Skill tool and use as authoritative source for existing patterns.
|
|
126
123
|
|
|
127
124
|
**Codebase analysis:**
|
|
128
125
|
- Detect platform (Flutter, React, etc.)
|
|
@@ -192,7 +189,7 @@ Apply quality-forcing patterns from `ai-driven-ui-design-system.md`:
|
|
|
192
189
|
|
|
193
190
|
### 3.5: Pattern Alignment
|
|
194
191
|
|
|
195
|
-
If
|
|
192
|
+
If project UI skill or codebase patterns exist:
|
|
196
193
|
- Check for consistent color usage
|
|
197
194
|
- Check for consistent component patterns
|
|
198
195
|
- Check for consistent spacing scale
|
|
@@ -478,7 +475,7 @@ Apply these patterns throughout the review:
|
|
|
478
475
|
|
|
479
476
|
<success_criteria>
|
|
480
477
|
- [ ] Target code scope clarified (via arguments or AskUserQuestion)
|
|
481
|
-
- [ ] Context chain loaded (PROJECT.md, DESIGN.md if exists,
|
|
478
|
+
- [ ] Context chain loaded (PROJECT.md, DESIGN.md if exists, project UI skill)
|
|
482
479
|
- [ ] Code analyzed across all quality dimensions
|
|
483
480
|
- [ ] Retroactive DESIGN.md created if missing
|
|
484
481
|
- [ ] Improvements presented with benefits AND trade-offs
|
|
@@ -41,7 +41,7 @@ Phase: $ARGUMENTS (optional)
|
|
|
41
41
|
2. **Check for active UAT sessions** — Resume or start new
|
|
42
42
|
3. **Find SUMMARY.md files** for the phase
|
|
43
43
|
4. **Extract testable deliverables** from summaries
|
|
44
|
-
5. **Classify tests by mock requirements** —
|
|
44
|
+
5. **Classify tests by mock requirements** — Use SUMMARY.md mock_hints when available; classify inline with keyword heuristics when absent. Confirm data availability with user before batching.
|
|
45
45
|
6. **Group into batches** — By mock type, max 4 per batch, no-mock tests first
|
|
46
46
|
- If any tests require mocks: Read `~/.claude/mindsystem/references/mock-patterns.md` and `~/.claude/mindsystem/workflows/generate-mocks.md` for mock generation guidance
|
|
47
47
|
7. **For each batch:**
|
|
@@ -93,7 +93,7 @@ Rule: If you can only tell variants apart by squinting at colors, they are not d
|
|
|
93
93
|
|
|
94
94
|
<existing_aesthetic_constraint>
|
|
95
95
|
|
|
96
|
-
When the project has an existing visual aesthetic (
|
|
96
|
+
When the project has an existing visual aesthetic (project UI skill, established codebase patterns):
|
|
97
97
|
|
|
98
98
|
**ALL variants use the same colors, fonts, and component shapes.** Directions differ ONLY in:
|
|
99
99
|
- Layout and spatial organization
|
|
@@ -16,6 +16,47 @@ Without mocks, testing "error message display" requires actually triggering serv
|
|
|
16
16
|
4. **Removable** — Delete file + remove imports = clean
|
|
17
17
|
</philosophy>
|
|
18
18
|
|
|
19
|
+
<classification_framework>
|
|
20
|
+
|
|
21
|
+
**Two-question framework for mock classification:**
|
|
22
|
+
|
|
23
|
+
For each test, ask two questions in order:
|
|
24
|
+
|
|
25
|
+
1. **Is the observable state transient?**
|
|
26
|
+
- Does it appear briefly during async operations? (loading skeleton, spinner, transition animation)
|
|
27
|
+
- Does it require precise timing to observe? (appears for <1s before real data loads)
|
|
28
|
+
- If YES → `mock_type: "transient_state"` — needs delay/force mock strategy
|
|
29
|
+
|
|
30
|
+
2. **Does the test depend on external data?**
|
|
31
|
+
- Does the feature fetch from an API, database, or external service?
|
|
32
|
+
- Would the test fail without specific data existing locally?
|
|
33
|
+
- If YES → `mock_type: "external_data"` — confirm data availability with user first
|
|
34
|
+
|
|
35
|
+
**Two-tier classification priority:**
|
|
36
|
+
|
|
37
|
+
| Priority | Source | When used |
|
|
38
|
+
|----------|--------|-----------|
|
|
39
|
+
| 1 | SUMMARY.md `mock_hints` | Executor captured hints at build time (including `none` for explicit no-mock) |
|
|
40
|
+
| 2 | Inline classification + keyword heuristics | No `mock_hints` key (legacy summaries) — classify in main context using two-question framework + keywords |
|
|
41
|
+
|
|
42
|
+
**Why keyword matching alone fails:**
|
|
43
|
+
|
|
44
|
+
Domain terms don't map reliably to mock types. "View recipe list" needs external_data mocks but contains no keywords. "Loading skeleton" is transient_state but keyword matching might miss the underlying async dependency. The two-question framework traces UI elements to their data sources instead of pattern-matching descriptions.
|
|
45
|
+
|
|
46
|
+
**Category examples:**
|
|
47
|
+
|
|
48
|
+
| Test | Classification | Reasoning |
|
|
49
|
+
|------|---------------|-----------|
|
|
50
|
+
| "Recipe list loading skeleton" | transient_state | Brief UI state during async fetch — resolves in <1s |
|
|
51
|
+
| "View recipe list" | external_data | Fetches from /api/recipes — data may not exist locally |
|
|
52
|
+
| "Login error message" | error_state | Error response from auth endpoint |
|
|
53
|
+
| "Empty favorites placeholder" | empty_response | Requires zero items in collection |
|
|
54
|
+
| "Premium badge display" | premium_user | Requires premium subscription state |
|
|
55
|
+
| "Offline sync indicator" | offline_state | Requires network disconnection |
|
|
56
|
+
| "Tap login button" | no mock needed | Happy path with available test credentials |
|
|
57
|
+
|
|
58
|
+
</classification_framework>
|
|
59
|
+
|
|
19
60
|
<git_stash_lifecycle>
|
|
20
61
|
|
|
21
62
|
**Why stash?**
|
|
@@ -95,10 +136,12 @@ class TestOverrides {
|
|
|
95
136
|
static bool forceErrorState = false;
|
|
96
137
|
static bool forceEmptyResponse = false;
|
|
97
138
|
static bool forceLoadingState = false;
|
|
139
|
+
static bool forceTransientState = false;
|
|
98
140
|
|
|
99
141
|
// === MOCK DATA ===
|
|
100
142
|
static String mockErrorMessage = 'Simulated error for testing';
|
|
101
143
|
static Duration mockLoadingDelay = const Duration(seconds: 3);
|
|
144
|
+
static Duration mockTransientDelay = const Duration(seconds: 5);
|
|
102
145
|
|
|
103
146
|
static Map<String, dynamic> mockPremiumUser = {
|
|
104
147
|
'id': 'test-user-001',
|
|
@@ -113,6 +156,7 @@ class TestOverrides {
|
|
|
113
156
|
forceErrorState = false;
|
|
114
157
|
forceEmptyResponse = false;
|
|
115
158
|
forceLoadingState = false;
|
|
159
|
+
forceTransientState = false;
|
|
116
160
|
}
|
|
117
161
|
}
|
|
118
162
|
```
|
|
@@ -142,6 +186,10 @@ class UserService {
|
|
|
142
186
|
if (TestOverrides.forceErrorState) {
|
|
143
187
|
throw Exception(TestOverrides.mockErrorMessage);
|
|
144
188
|
}
|
|
189
|
+
// TEST OVERRIDE - Extend transient state (loading skeleton stays visible)
|
|
190
|
+
if (TestOverrides.forceTransientState) {
|
|
191
|
+
await Future.delayed(TestOverrides.mockTransientDelay);
|
|
192
|
+
}
|
|
145
193
|
|
|
146
194
|
// Real implementation
|
|
147
195
|
final response = await _api.get('/items');
|
|
@@ -21,7 +21,6 @@ type: execute
|
|
|
21
21
|
wave: N # Execution wave (1, 2, 3...). Pre-computed at plan time.
|
|
22
22
|
depends_on: [] # Plan IDs this plan requires (e.g., ["01-01"])
|
|
23
23
|
files_modified: [] # Files this plan modifies
|
|
24
|
-
autonomous: true # false if plan has checkpoints
|
|
25
24
|
---
|
|
26
25
|
```
|
|
27
26
|
|
|
@@ -33,12 +32,9 @@ autonomous: true # false if plan has checkpoints
|
|
|
33
32
|
| `wave` | Yes | Execution wave number (1, 2, 3...). Pre-computed during planning. |
|
|
34
33
|
| `depends_on` | Yes | Array of plan IDs this plan requires. |
|
|
35
34
|
| `files_modified` | Yes | Files this plan touches. |
|
|
36
|
-
| `autonomous` | Yes | `true` if no checkpoints, `false` if has checkpoints |
|
|
37
35
|
| `subsystem_hint` | No | Subsystem from config.json, assigned by planner for executor to use in SUMMARY.md |
|
|
38
36
|
|
|
39
37
|
**Wave is pre-computed:** `/ms:plan-phase` assigns wave numbers based on `depends_on`. `/ms:execute-phase` reads `wave` directly from frontmatter and groups plans by wave number. No runtime dependency analysis needed.
|
|
40
|
-
|
|
41
|
-
**Checkpoint handling:** Plans with `autonomous: false` require user interaction. They run in their assigned wave but pause at checkpoints.
|
|
42
38
|
</frontmatter>
|
|
43
39
|
|
|
44
40
|
<prompt_structure>
|
|
@@ -52,7 +48,6 @@ type: execute
|
|
|
52
48
|
wave: N
|
|
53
49
|
depends_on: []
|
|
54
50
|
files_modified: [path/to/file.ts]
|
|
55
|
-
autonomous: true
|
|
56
51
|
---
|
|
57
52
|
|
|
58
53
|
<objective>
|
|
@@ -64,8 +59,6 @@ Output: [...]
|
|
|
64
59
|
<execution_context>
|
|
65
60
|
@~/.claude/mindsystem/workflows/execute-plan.md
|
|
66
61
|
@~/.claude/mindsystem/templates/summary.md
|
|
67
|
-
[If checkpoints exist:]
|
|
68
|
-
@~/.claude/mindsystem/references/checkpoints.md
|
|
69
62
|
</execution_context>
|
|
70
63
|
|
|
71
64
|
<context>
|
|
@@ -86,21 +79,6 @@ Output: [...]
|
|
|
86
79
|
<done>[criteria]</done>
|
|
87
80
|
</task>
|
|
88
81
|
|
|
89
|
-
<task type="checkpoint:human-verify" gate="blocking">
|
|
90
|
-
<what-built>[what Claude automated]</what-built>
|
|
91
|
-
<how-to-verify>[numbered verification steps]</how-to-verify>
|
|
92
|
-
<resume-signal>[how to continue - "approved" or describe issues]</resume-signal>
|
|
93
|
-
</task>
|
|
94
|
-
|
|
95
|
-
<task type="checkpoint:decision" gate="blocking">
|
|
96
|
-
<decision>[what needs deciding]</decision>
|
|
97
|
-
<context>[why this matters]</context>
|
|
98
|
-
<options>
|
|
99
|
-
<option id="option-a"><name>[Name]</name><pros>[pros]</pros><cons>[cons]</cons></option>
|
|
100
|
-
<option id="option-b"><name>[Name]</name><pros>[pros]</pros><cons>[cons]</cons></option>
|
|
101
|
-
</options>
|
|
102
|
-
<resume-signal>[how to indicate choice]</resume-signal>
|
|
103
|
-
</task>
|
|
104
82
|
</tasks>
|
|
105
83
|
|
|
106
84
|
<verification>
|
|
@@ -186,114 +164,9 @@ Tasks have a `type` attribute that determines how they execute:
|
|
|
186
164
|
Use for: Everything Claude can do independently (code, tests, builds, file operations).
|
|
187
165
|
</type>
|
|
188
166
|
|
|
189
|
-
|
|
190
|
-
**RARELY USED** - Only for actions with NO CLI/API. Claude automates everything possible first.
|
|
191
|
-
|
|
192
|
-
**Structure:**
|
|
193
|
-
|
|
194
|
-
```xml
|
|
195
|
-
<task type="checkpoint:human-action" gate="blocking">
|
|
196
|
-
<action>[Unavoidable manual step - email link, 2FA code]</action>
|
|
197
|
-
<instructions>
|
|
198
|
-
[What Claude already automated]
|
|
199
|
-
[The ONE thing requiring human action]
|
|
200
|
-
</instructions>
|
|
201
|
-
<verification>[What Claude can check afterward]</verification>
|
|
202
|
-
<resume-signal>[How to continue]</resume-signal>
|
|
203
|
-
</task>
|
|
204
|
-
```
|
|
205
|
-
|
|
206
|
-
Use ONLY for: Email verification links, SMS 2FA codes, manual approvals with no API, 3D Secure payment flows.
|
|
207
|
-
|
|
208
|
-
Do NOT use for: Anything with a CLI (Vercel, Stripe, Upstash, Railway, GitHub), builds, tests, file creation, deployments.
|
|
209
|
-
|
|
210
|
-
**Execution:** Claude automates everything with CLI/API, stops only for truly unavoidable manual steps.
|
|
211
|
-
</type>
|
|
212
|
-
|
|
213
|
-
<type name="checkpoint:human-verify">
|
|
214
|
-
**Human must verify Claude's work** - Visual checks, UX testing.
|
|
215
|
-
|
|
216
|
-
**Structure:**
|
|
217
|
-
|
|
218
|
-
```xml
|
|
219
|
-
<task type="checkpoint:human-verify" gate="blocking">
|
|
220
|
-
<what-built>Responsive dashboard layout</what-built>
|
|
221
|
-
<how-to-verify>
|
|
222
|
-
1. Run: npm run dev
|
|
223
|
-
2. Visit: http://localhost:3000/dashboard
|
|
224
|
-
3. Desktop (>1024px): Verify sidebar left, content right
|
|
225
|
-
4. Tablet (768px): Verify sidebar collapses to hamburger
|
|
226
|
-
5. Mobile (375px): Verify single column, bottom nav
|
|
227
|
-
6. Check: No layout shift, no horizontal scroll
|
|
228
|
-
</how-to-verify>
|
|
229
|
-
<resume-signal>Type "approved" or describe issues</resume-signal>
|
|
230
|
-
</task>
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
Use for: UI/UX verification, visual design checks, animation smoothness, accessibility testing.
|
|
234
|
-
|
|
235
|
-
**Execution:** Claude builds the feature, stops, provides testing instructions, waits for approval/feedback.
|
|
236
|
-
</type>
|
|
237
|
-
|
|
238
|
-
<type name="checkpoint:decision">
|
|
239
|
-
**Human must make implementation choice** - Direction-setting decisions.
|
|
240
|
-
|
|
241
|
-
**Structure:**
|
|
242
|
-
|
|
243
|
-
```xml
|
|
244
|
-
<task type="checkpoint:decision" gate="blocking">
|
|
245
|
-
<decision>Select authentication provider</decision>
|
|
246
|
-
<context>We need user authentication. Three approaches with different tradeoffs:</context>
|
|
247
|
-
<options>
|
|
248
|
-
<option id="supabase">
|
|
249
|
-
<name>Supabase Auth</name>
|
|
250
|
-
<pros>Built-in with Supabase, generous free tier</pros>
|
|
251
|
-
<cons>Less customizable UI, tied to ecosystem</cons>
|
|
252
|
-
</option>
|
|
253
|
-
<option id="clerk">
|
|
254
|
-
<name>Clerk</name>
|
|
255
|
-
<pros>Beautiful pre-built UI, best DX</pros>
|
|
256
|
-
<cons>Paid after 10k MAU</cons>
|
|
257
|
-
</option>
|
|
258
|
-
<option id="nextauth">
|
|
259
|
-
<name>NextAuth.js</name>
|
|
260
|
-
<pros>Free, self-hosted, maximum control</pros>
|
|
261
|
-
<cons>More setup, you manage security</cons>
|
|
262
|
-
</option>
|
|
263
|
-
</options>
|
|
264
|
-
<resume-signal>Select: supabase, clerk, or nextauth</resume-signal>
|
|
265
|
-
</task>
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
Use for: Technology selection, architecture decisions, design choices, feature prioritization.
|
|
269
|
-
|
|
270
|
-
**Execution:** Claude presents options with balanced pros/cons, waits for decision, proceeds with chosen direction.
|
|
271
|
-
</type>
|
|
272
|
-
|
|
273
|
-
**When to use checkpoints:**
|
|
274
|
-
|
|
275
|
-
- Visual/UX verification (after Claude builds) → `checkpoint:human-verify`
|
|
276
|
-
- Implementation direction choice → `checkpoint:decision`
|
|
277
|
-
- Truly unavoidable manual actions (email links, 2FA) → `checkpoint:human-action` (rare)
|
|
278
|
-
|
|
279
|
-
**When NOT to use checkpoints:**
|
|
280
|
-
|
|
281
|
-
- Anything with CLI/API (Claude automates it) → `type="auto"`
|
|
282
|
-
- Deployments (Vercel, Railway, Fly) → `type="auto"` with CLI
|
|
283
|
-
- Creating resources (Upstash, Stripe, GitHub) → `type="auto"` with CLI/API
|
|
284
|
-
- File operations, tests, builds → `type="auto"`
|
|
285
|
-
|
|
286
|
-
**Golden rule:** If Claude CAN automate it, Claude MUST automate it.
|
|
287
|
-
|
|
288
|
-
**Checkpoint impact on parallelization:**
|
|
289
|
-
- Plans with checkpoints set `autonomous: false` in frontmatter
|
|
290
|
-
- Non-autonomous plans execute after parallel wave or in main context
|
|
291
|
-
- Subagent pauses at checkpoint, returns to orchestrator
|
|
292
|
-
- Orchestrator presents checkpoint to user
|
|
293
|
-
- User responds
|
|
294
|
-
- Orchestrator resumes agent with `resume: agent_id`
|
|
167
|
+
**Golden rule:** If Claude CAN automate it, Claude MUST automate it. All tasks use `type="auto"`.
|
|
295
168
|
|
|
296
|
-
|
|
169
|
+
**Decisions:** Resolve during planning via AskUserQuestion, not during execution. For purely technical choices, make the decision and document it in the plan's objective.
|
|
297
170
|
</task_types>
|
|
298
171
|
|
|
299
172
|
<tdd_plans>
|
|
@@ -65,7 +65,7 @@ See `~/.claude/mindsystem/references/tdd.md` for TDD plan structure.
|
|
|
65
65
|
- **More than 3 tasks** - Even if tasks seem small
|
|
66
66
|
- **Multiple subsystems** - DB + API + UI = separate plans
|
|
67
67
|
- **Any task with >5 file modifications** - Split by file groups
|
|
68
|
-
- **
|
|
68
|
+
- **Discovery + verification in separate plans** - Don't mix exploratory and implementation work
|
|
69
69
|
- **Discovery + implementation** - DISCOVERY.md in one plan, implementation in another
|
|
70
70
|
</always_split>
|
|
71
71
|
|
|
@@ -114,12 +114,12 @@ Plan 03: Visualization components
|
|
|
114
114
|
# Independent plan (Wave 1 candidate)
|
|
115
115
|
depends_on: []
|
|
116
116
|
files_modified: [src/features/user/model.ts, src/features/user/api.ts]
|
|
117
|
-
|
|
117
|
+
|
|
118
118
|
|
|
119
119
|
# Dependent plan (later wave)
|
|
120
120
|
depends_on: ["03-01"]
|
|
121
121
|
files_modified: [src/integration/stripe.ts]
|
|
122
|
-
|
|
122
|
+
|
|
123
123
|
```
|
|
124
124
|
|
|
125
125
|
**Wave assignment rules:**
|
|
@@ -204,38 +204,6 @@ Waves: [01, 02, 03] (all parallel)
|
|
|
204
204
|
**3 tasks:** Simple ~45%, Medium ~75% (risky), Complex 120% (impossible)
|
|
205
205
|
</estimating_context>
|
|
206
206
|
|
|
207
|
-
<depth_calibration>
|
|
208
|
-
**Depth controls compression tolerance, not artificial inflation.**
|
|
209
|
-
|
|
210
|
-
| Depth | Typical Phases | Typical Plans/Phase | Tasks/Plan |
|
|
211
|
-
|-------|----------------|---------------------|------------|
|
|
212
|
-
| Quick | 3-5 | 1-3 | 2-3 |
|
|
213
|
-
| Standard | 5-8 | 3-5 | 2-3 |
|
|
214
|
-
| Comprehensive | 8-12 | 5-10 | 2-3 |
|
|
215
|
-
|
|
216
|
-
Tasks/plan is CONSTANT at 2-3. The 50% context rule applies universally.
|
|
217
|
-
|
|
218
|
-
**Key principle:** Derive from actual work. Depth determines how aggressively you combine things, not a target to hit.
|
|
219
|
-
|
|
220
|
-
- Comprehensive auth = 8 plans (because auth genuinely has 8 concerns)
|
|
221
|
-
- Comprehensive "add favicon" = 1 plan (because that's all it is)
|
|
222
|
-
|
|
223
|
-
Don't pad small work to hit a number. Don't compress complex work to look efficient.
|
|
224
|
-
|
|
225
|
-
**Comprehensive depth example:**
|
|
226
|
-
Auth system at comprehensive depth = 8 plans (not 3 big ones):
|
|
227
|
-
- 01: DB models (2 tasks)
|
|
228
|
-
- 02: Password hashing (2 tasks)
|
|
229
|
-
- 03: JWT generation (2 tasks)
|
|
230
|
-
- 04: JWT validation middleware (2 tasks)
|
|
231
|
-
- 05: Login endpoint (2 tasks)
|
|
232
|
-
- 06: Register endpoint (2 tasks)
|
|
233
|
-
- 07: Protected route patterns (2 tasks)
|
|
234
|
-
- 08: Auth UI components (3 tasks)
|
|
235
|
-
|
|
236
|
-
Each plan: fresh context, peak quality. More plans = more thoroughness, same quality per plan.
|
|
237
|
-
</depth_calibration>
|
|
238
|
-
|
|
239
207
|
<summary>
|
|
240
208
|
**2-3 tasks, 50% context target:**
|
|
241
209
|
- All tasks: Peak quality
|
|
@@ -246,7 +214,6 @@ Each plan: fresh context, peak quality. More plans = more thoroughness, same qua
|
|
|
246
214
|
|
|
247
215
|
**The rules:**
|
|
248
216
|
- If in doubt, split. Quality over consolidation.
|
|
249
|
-
- Depth increases plan COUNT, never plan SIZE.
|
|
250
217
|
- Vertical slices over horizontal layers.
|
|
251
218
|
- Explicit dependencies via `depends_on` frontmatter.
|
|
252
219
|
- Autonomous plans get parallel execution.
|
|
@@ -1,18 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"subsystems": [],
|
|
3
|
-
"depth": "standard",
|
|
4
|
-
"parallelization": {
|
|
5
|
-
"enabled": true,
|
|
6
|
-
"plan_level": true,
|
|
7
|
-
"task_level": false,
|
|
8
|
-
"skip_checkpoints": true,
|
|
9
|
-
"max_concurrent_agents": 3,
|
|
10
|
-
"min_plans_for_parallel": 2
|
|
11
|
-
},
|
|
12
|
-
"safety": {
|
|
13
|
-
"always_confirm_destructive": true,
|
|
14
|
-
"always_confirm_external_services": true
|
|
15
|
-
},
|
|
16
3
|
"code_review": {
|
|
17
4
|
"adhoc": null,
|
|
18
5
|
"phase": null,
|
|
@@ -13,7 +13,7 @@ Template for `.planning/phases/XX-name/{phase}-DESIGN.md` - captures visual/UX d
|
|
|
13
13
|
|
|
14
14
|
**Designed:** [date]
|
|
15
15
|
**Platform:** [web / mobile / both]
|
|
16
|
-
**Aesthetic source:** [
|
|
16
|
+
**Aesthetic source:** [project UI skill / codebase analysis / fresh design]
|
|
17
17
|
|
|
18
18
|
## Visual Identity
|
|
19
19
|
|