maxsimcli 3.12.0 → 4.0.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.
Files changed (178) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/adapters/index.d.ts +0 -11
  3. package/dist/adapters/index.d.ts.map +1 -1
  4. package/dist/adapters/index.js +4 -40
  5. package/dist/adapters/index.js.map +1 -1
  6. package/dist/assets/CHANGELOG.md +17 -0
  7. package/dist/assets/dashboard/client/assets/{index-wtQDvXzr.js → index-C_eAetZJ.js} +60 -60
  8. package/dist/assets/dashboard/client/assets/index-CmiJKqOU.css +32 -0
  9. package/dist/assets/dashboard/client/index.html +2 -2
  10. package/dist/assets/dashboard/server.js +467 -271
  11. package/dist/assets/templates/agents/AGENTS.md +13 -1
  12. package/dist/assets/templates/agents/maxsim-debugger.md +2 -2
  13. package/dist/assets/templates/agents/maxsim-executor.md +5 -5
  14. package/dist/assets/templates/agents/maxsim-phase-researcher.md +2 -2
  15. package/dist/assets/templates/agents/maxsim-plan-checker.md +2 -2
  16. package/dist/assets/templates/agents/maxsim-planner.md +3 -3
  17. package/dist/assets/templates/commands/maxsim/add-todo.md +15 -5
  18. package/dist/assets/templates/commands/maxsim/discuss-phase.md +1 -0
  19. package/dist/assets/templates/commands/maxsim/init-existing.md +4 -0
  20. package/dist/assets/templates/commands/maxsim/new-project.md +4 -0
  21. package/dist/assets/templates/references/thinking-partner.md +41 -0
  22. package/dist/assets/templates/skills/batch-worktree/SKILL.md +137 -0
  23. package/dist/assets/templates/skills/brainstorming/SKILL.md +159 -0
  24. package/dist/assets/templates/skills/roadmap-writing/SKILL.md +198 -0
  25. package/dist/assets/templates/skills/sdd/SKILL.md +175 -0
  26. package/dist/assets/templates/skills/simplify/SKILL.md +48 -0
  27. package/dist/assets/templates/skills/using-maxsim/SKILL.md +6 -1
  28. package/dist/assets/templates/templates/acceptance-criteria.md +10 -0
  29. package/dist/assets/templates/templates/decisions.md +10 -0
  30. package/dist/assets/templates/templates/no-gos.md +9 -0
  31. package/dist/assets/templates/workflows/add-todo.md +89 -0
  32. package/dist/assets/templates/workflows/discuss-phase.md +85 -1
  33. package/dist/assets/templates/workflows/execute-phase.md +22 -2
  34. package/dist/assets/templates/workflows/execute-plan.md +166 -0
  35. package/dist/assets/templates/workflows/init-existing.md +116 -0
  36. package/dist/assets/templates/workflows/new-project.md +105 -1
  37. package/dist/assets/templates/workflows/plan-phase.md +3 -3
  38. package/dist/assets/templates/workflows/quick.md +2 -2
  39. package/dist/cli.cjs +1264 -882
  40. package/dist/cli.cjs.map +1 -1
  41. package/dist/cli.js +97 -74
  42. package/dist/cli.js.map +1 -1
  43. package/dist/core/artefakte.d.ts +12 -0
  44. package/dist/core/artefakte.d.ts.map +1 -0
  45. package/dist/core/artefakte.js +136 -0
  46. package/dist/core/artefakte.js.map +1 -0
  47. package/dist/core/commands.d.ts +13 -13
  48. package/dist/core/commands.d.ts.map +1 -1
  49. package/dist/core/commands.js +44 -57
  50. package/dist/core/commands.js.map +1 -1
  51. package/dist/core/config.d.ts +4 -3
  52. package/dist/core/config.d.ts.map +1 -1
  53. package/dist/core/config.js +14 -18
  54. package/dist/core/config.js.map +1 -1
  55. package/dist/core/context-loader.d.ts +20 -0
  56. package/dist/core/context-loader.d.ts.map +1 -0
  57. package/dist/core/context-loader.js +154 -0
  58. package/dist/core/context-loader.js.map +1 -0
  59. package/dist/core/core.d.ts +8 -2
  60. package/dist/core/core.d.ts.map +1 -1
  61. package/dist/core/core.js +47 -11
  62. package/dist/core/core.js.map +1 -1
  63. package/dist/core/dashboard-launcher.d.ts +1 -1
  64. package/dist/core/dashboard-launcher.d.ts.map +1 -1
  65. package/dist/core/dashboard-launcher.js +18 -15
  66. package/dist/core/dashboard-launcher.js.map +1 -1
  67. package/dist/core/frontmatter.d.ts +5 -5
  68. package/dist/core/frontmatter.d.ts.map +1 -1
  69. package/dist/core/frontmatter.js +21 -26
  70. package/dist/core/frontmatter.js.map +1 -1
  71. package/dist/core/index.d.ts +8 -3
  72. package/dist/core/index.d.ts.map +1 -1
  73. package/dist/core/index.js +23 -3
  74. package/dist/core/index.js.map +1 -1
  75. package/dist/core/init.d.ts +14 -14
  76. package/dist/core/init.d.ts.map +1 -1
  77. package/dist/core/init.js +93 -154
  78. package/dist/core/init.js.map +1 -1
  79. package/dist/core/milestone.d.ts +3 -3
  80. package/dist/core/milestone.d.ts.map +1 -1
  81. package/dist/core/milestone.js +9 -9
  82. package/dist/core/milestone.js.map +1 -1
  83. package/dist/core/phase.d.ts +9 -9
  84. package/dist/core/phase.d.ts.map +1 -1
  85. package/dist/core/phase.js +64 -68
  86. package/dist/core/phase.js.map +1 -1
  87. package/dist/core/roadmap.d.ts +4 -3
  88. package/dist/core/roadmap.d.ts.map +1 -1
  89. package/dist/core/roadmap.js +46 -109
  90. package/dist/core/roadmap.js.map +1 -1
  91. package/dist/core/skills.d.ts +19 -0
  92. package/dist/core/skills.d.ts.map +1 -0
  93. package/dist/core/skills.js +145 -0
  94. package/dist/core/skills.js.map +1 -0
  95. package/dist/core/start.d.ts +15 -0
  96. package/dist/core/start.d.ts.map +1 -0
  97. package/dist/core/start.js +80 -0
  98. package/dist/core/start.js.map +1 -0
  99. package/dist/core/state.d.ts +13 -13
  100. package/dist/core/state.d.ts.map +1 -1
  101. package/dist/core/state.js +119 -126
  102. package/dist/core/state.js.map +1 -1
  103. package/dist/core/template.d.ts +3 -3
  104. package/dist/core/template.d.ts.map +1 -1
  105. package/dist/core/template.js +12 -14
  106. package/dist/core/template.js.map +1 -1
  107. package/dist/core/types.d.ts +14 -2
  108. package/dist/core/types.d.ts.map +1 -1
  109. package/dist/core/types.js +8 -0
  110. package/dist/core/types.js.map +1 -1
  111. package/dist/core/verify.d.ts +10 -9
  112. package/dist/core/verify.d.ts.map +1 -1
  113. package/dist/core/verify.js +38 -48
  114. package/dist/core/verify.js.map +1 -1
  115. package/dist/core-TFSlUjV1.cjs +4312 -0
  116. package/dist/core-TFSlUjV1.cjs.map +1 -0
  117. package/dist/install/adapters.d.ts +2 -11
  118. package/dist/install/adapters.d.ts.map +1 -1
  119. package/dist/install/adapters.js +16 -154
  120. package/dist/install/adapters.js.map +1 -1
  121. package/dist/install/copy.d.ts +1 -10
  122. package/dist/install/copy.d.ts.map +1 -1
  123. package/dist/install/copy.js +5 -125
  124. package/dist/install/copy.js.map +1 -1
  125. package/dist/install/hooks.d.ts +4 -5
  126. package/dist/install/hooks.d.ts.map +1 -1
  127. package/dist/install/hooks.js +46 -71
  128. package/dist/install/hooks.js.map +1 -1
  129. package/dist/install/index.js +163 -226
  130. package/dist/install/index.js.map +1 -1
  131. package/dist/install/manifest.d.ts +5 -2
  132. package/dist/install/manifest.d.ts.map +1 -1
  133. package/dist/install/manifest.js +20 -26
  134. package/dist/install/manifest.js.map +1 -1
  135. package/dist/install/patches.d.ts +1 -2
  136. package/dist/install/patches.d.ts.map +1 -1
  137. package/dist/install/patches.js +4 -16
  138. package/dist/install/patches.js.map +1 -1
  139. package/dist/install/shared.d.ts +24 -18
  140. package/dist/install/shared.d.ts.map +1 -1
  141. package/dist/install/shared.js +65 -35
  142. package/dist/install/shared.js.map +1 -1
  143. package/dist/install/uninstall.d.ts +2 -3
  144. package/dist/install/uninstall.d.ts.map +1 -1
  145. package/dist/install/uninstall.js +24 -82
  146. package/dist/install/uninstall.js.map +1 -1
  147. package/dist/install.cjs +321 -1230
  148. package/dist/install.cjs.map +1 -1
  149. package/dist/mcp-server.cjs +38 -14
  150. package/dist/mcp-server.cjs.map +1 -1
  151. package/dist/skills-BOSxYUzf.cjs +6812 -0
  152. package/dist/skills-BOSxYUzf.cjs.map +1 -0
  153. package/package.json +1 -1
  154. package/dist/adapters/codex.d.ts +0 -19
  155. package/dist/adapters/codex.d.ts.map +0 -1
  156. package/dist/adapters/codex.js +0 -94
  157. package/dist/adapters/codex.js.map +0 -1
  158. package/dist/adapters/gemini.d.ts +0 -19
  159. package/dist/adapters/gemini.d.ts.map +0 -1
  160. package/dist/adapters/gemini.js +0 -96
  161. package/dist/adapters/gemini.js.map +0 -1
  162. package/dist/adapters/opencode.d.ts +0 -17
  163. package/dist/adapters/opencode.d.ts.map +0 -1
  164. package/dist/adapters/opencode.js +0 -111
  165. package/dist/adapters/opencode.js.map +0 -1
  166. package/dist/adapters/transforms/content.d.ts +0 -39
  167. package/dist/adapters/transforms/content.d.ts.map +0 -1
  168. package/dist/adapters/transforms/content.js +0 -125
  169. package/dist/adapters/transforms/content.js.map +0 -1
  170. package/dist/adapters/transforms/frontmatter.d.ts +0 -42
  171. package/dist/adapters/transforms/frontmatter.d.ts.map +0 -1
  172. package/dist/adapters/transforms/frontmatter.js +0 -204
  173. package/dist/adapters/transforms/frontmatter.js.map +0 -1
  174. package/dist/adapters/transforms/tool-maps.d.ts +0 -20
  175. package/dist/adapters/transforms/tool-maps.d.ts.map +0 -1
  176. package/dist/adapters/transforms/tool-maps.js +0 -64
  177. package/dist/adapters/transforms/tool-maps.js.map +0 -1
  178. package/dist/assets/dashboard/client/assets/index-CxFKStBk.css +0 -32
@@ -12,6 +12,7 @@ You are a thinking partner, not an interviewer. The user is the visionary — yo
12
12
 
13
13
  <required_reading>
14
14
  @./references/dashboard-bridge.md
15
+ @./references/thinking-partner.md
15
16
  </required_reading>
16
17
 
17
18
  <tool_mandate>
@@ -52,7 +53,7 @@ Every question directed at the user MUST use a structured tool. NEVER write a qu
52
53
  </downstream_awareness>
53
54
 
54
55
  <philosophy>
55
- **User = founder/visionary. Claude = builder.**
56
+ **User = founder/visionary. Claude = thinking partner and builder.**
56
57
 
57
58
  The user knows:
58
59
  - How they imagine it working
@@ -67,6 +68,16 @@ The user doesn't know (and shouldn't be asked):
67
68
  - Success metrics (inferred from the work)
68
69
 
69
70
  Ask about vision and implementation choices. Capture decisions for downstream agents.
71
+
72
+ **Thinking-partner behaviors (from thinking-partner.md):**
73
+ - **Challenge vague answers** — "Cards" could mean many things. Push for specifics.
74
+ - **Surface unstated assumptions** — "You're assuming mobile-first — is that intentional?"
75
+ - **Propose alternatives with trade-offs** — Don't just accept first choice. Offer 2-3 options.
76
+ - **Make consequences visible** — "Infinite scroll means no shareable page positions."
77
+ - **Disagree constructively** — If an approach has risks, name them.
78
+ - **Follow the thread** — Build on what they just said. Don't jump topics.
79
+
80
+ Apply these behaviors within each discussion area. The user should feel like they're thinking through decisions with a collaborator, not answering a survey.
70
81
  </philosophy>
71
82
 
72
83
  <scope_guardrail>
@@ -314,6 +325,15 @@ Ask 4 questions per area before offering to continue or move on. Each answer oft
314
325
  - Loop: discuss new areas, then prompt again
315
326
  - If "I'm ready for context": Proceed to write_context
316
327
 
328
+ **Adaptive probing (thinking-partner mode):**
329
+
330
+ Within each area, adapt your questioning based on the user's certainty level:
331
+ - **User is confident** (picks options quickly) — probe deeper: "You chose X — have you considered how that interacts with Y?"
332
+ - **User is uncertain** (picks "Other", hedges) — propose alternatives: "Here are 3 approaches with trade-offs..."
333
+ - **User defers** (picks "You decide") — accept but name consequences: "I'll go with X because [reason]. That means Y."
334
+
335
+ Challenge decisions that may have hidden costs. If the user picks something that conflicts with an earlier decision, surface it: "Earlier you said A, but this implies B. Which takes priority?"
336
+
317
337
  **Question design:**
318
338
  - Options should be concrete, not abstract ("Cards" not "Option A")
319
339
  - Each answer should inform the next question
@@ -400,6 +420,70 @@ mkdir -p ".planning/phases/${padded_phase}-${phase_slug}"
400
420
  ```
401
421
 
402
422
  Write file.
423
+
424
+ **Generate phase-specific artefakte:**
425
+
426
+ After writing CONTEXT.md, append phase-specific entries to the project-level artefakte files.
427
+
428
+ **Append to DECISIONS.md:**
429
+
430
+ ```bash
431
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs artefakte-append .planning/DECISIONS.md
432
+ ```
433
+
434
+ Append content:
435
+
436
+ ```markdown
437
+
438
+ ## Phase [X]: [Name]
439
+
440
+ | # | Decision | Rationale | Alternatives Considered | Status |
441
+ |---|----------|-----------|------------------------|--------|
442
+ | [next #] | [Decision from discussion] | [Why chosen] | [What else was offered] | Locked |
443
+ ```
444
+
445
+ **Append to ACCEPTANCE-CRITERIA.md:**
446
+
447
+ ```bash
448
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs artefakte-append .planning/ACCEPTANCE-CRITERIA.md
449
+ ```
450
+
451
+ Append content under "Phase-Level Criteria":
452
+
453
+ ```markdown
454
+
455
+ ### Phase [X]: [Name]
456
+
457
+ - [ ] [Observable outcome from decisions — e.g., "User sees card-based layout on feed page"]
458
+ - [ ] [Observable outcome from decisions — e.g., "Infinite scroll loads next batch on scroll"]
459
+ - [ ] [Observable outcome from decisions — e.g., "Empty state shows onboarding prompt"]
460
+ ```
461
+
462
+ **Append to NO-GOS.md (if applicable):**
463
+
464
+ If any "don't do this" or "avoid this approach" decisions were made during discussion:
465
+
466
+ ```bash
467
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs artefakte-append .planning/NO-GOS.md
468
+ ```
469
+
470
+ Append content:
471
+
472
+ ```markdown
473
+
474
+ ## Phase [X]: [Name]
475
+
476
+ - [Approach to avoid] -- [why, from discussion]
477
+ ```
478
+
479
+ If no no-gos emerged from discussion, skip this append.
480
+
481
+ **Commit artefakte updates:**
482
+
483
+ ```bash
484
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs commit "docs(${padded_phase}): update artefakte from phase discussion" --files .planning/DECISIONS.md .planning/ACCEPTANCE-CRITERIA.md .planning/NO-GOS.md
485
+ ```
486
+
403
487
  </step>
404
488
 
405
489
  <step name="confirm_creation">
@@ -152,7 +152,7 @@ Execute each wave in sequence. Within a wave: parallel if `PARALLELIZATION=true`
152
152
  - .planning/STATE.md (State)
153
153
  - .planning/config.json (Config, if exists)
154
154
  - ./CLAUDE.md (Project instructions, if exists — follow project-specific guidelines and coding conventions)
155
- - .agents/skills/ (Project skills, if exists — list skills, read SKILL.md for each, follow relevant rules during implementation)
155
+ - .skills/ (Project skills, if exists — list skills, read SKILL.md for each, follow relevant rules during implementation)
156
156
  </files_to_read>
157
157
 
158
158
  <success_criteria>
@@ -168,15 +168,18 @@ Execute each wave in sequence. Within a wave: parallel if `PARALLELIZATION=true`
168
168
 
169
169
  3. **Wait for all agents in wave to complete.**
170
170
 
171
- 4. **Report completion — spot-check claims first:**
171
+ 4. **Report completion — spot-check claims and review cycle:**
172
172
 
173
173
  For each SUMMARY.md:
174
174
  - Verify first 2 files from `key-files.created` exist on disk
175
175
  - Check `git log --oneline --all --grep="{phase}-{plan}"` returns ≥1 commit
176
176
  - Check for `## Self-Check: FAILED` marker
177
+ - **Check for `## Review Cycle` section** — verify all review stages show PASS/APPROVED/CLEAN/FIXED (not BLOCKED or FAIL)
177
178
 
178
179
  If ANY spot-check fails: report which plan failed, route to failure handler — ask "Retry plan?" or "Continue with remaining waves?"
179
180
 
181
+ If review cycle is missing or has unresolved issues: flag the plan as **review-incomplete** — ask "Run review cycle for this plan?" or "Continue (review will block phase completion)?"
182
+
180
183
  If pass — **emit plan-complete lifecycle event** (if `DASHBOARD_ACTIVE`):
181
184
  ```
182
185
  mcp__maxsim-dashboard__submit_lifecycle_event(
@@ -275,9 +278,26 @@ After all waves:
275
278
  1. **03-01**: [one-liner from SUMMARY.md]
276
279
  2. **03-02**: [one-liner from SUMMARY.md]
277
280
 
281
+ ### Review Cycle Summary
282
+ | Plan | Spec Review | Code Review | Simplify | Final Review |
283
+ |------|-------------|-------------|----------|--------------|
284
+ | 03-01 | PASS | APPROVED | CLEAN | — |
285
+ | 03-02 | PASS | APPROVED | FIXED | APPROVED |
286
+
287
+ [Aggregate review findings from each plan's SUMMARY.md `## Review Cycle` section.
288
+ If any plan has no Review Cycle section: mark as "NOT RUN" and flag for attention.
289
+ If any plan has unresolved BLOCKED/FAIL status: list the blocking issues below.]
290
+
291
+ ### Unresolved Review Issues
292
+ [List any plans with BLOCKED or FAIL review stages. These MUST be resolved before phase completion.]
293
+
278
294
  ### Issues Encountered
279
295
  [Aggregate from SUMMARYs, or "None"]
280
296
  ```
297
+
298
+ **Phase completion gate:** If any plan has unresolved review issues (BLOCKED or FAIL in any review stage), the phase CANNOT proceed to `verify_phase_goal`. Present unresolved issues and offer:
299
+ - "Fix review issues now" — re-run the review cycle for affected plans
300
+ - "Override and continue" — mark as acknowledged, proceed (adds warning to VERIFICATION.md)
281
301
  </step>
282
302
 
283
303
  <step name="close_parent_artifacts">
@@ -343,6 +343,172 @@ Include: duration, start/end times, task count, file count.
343
343
  Next: more plans → "Ready for {next-plan}" | last → "Phase complete, ready for transition".
344
344
  </step>
345
345
 
346
+ <step name="review_cycle">
347
+ ## Execute-Review-Simplify-Review Cycle
348
+
349
+ After implementation is complete and SUMMARY.md is created, run the full review cycle before proceeding. All four stages must pass before the plan is considered done.
350
+
351
+ **Stage 1: Spec Review** — Verify implementation matches plan spec.
352
+
353
+ ```
354
+ Task(
355
+ subagent_type="maxsim-spec-reviewer",
356
+ prompt="
357
+ <objective>
358
+ Review plan {phase}-{plan} for spec compliance.
359
+ </objective>
360
+
361
+ <plan_spec>
362
+ Plan file: {phase_dir}/{phase}-{plan}-PLAN.md
363
+ Summary file: {phase_dir}/{phase}-{plan}-SUMMARY.md
364
+ </plan_spec>
365
+
366
+ <task_specs>
367
+ {For each task in the plan: task number, name, done criteria, files modified}
368
+ </task_specs>
369
+
370
+ <files_modified>
371
+ {List all files created/modified during execution from SUMMARY.md key-files}
372
+ </files_modified>
373
+
374
+ <instructions>
375
+ 1. Read the plan file and extract every task requirement
376
+ 2. For each requirement, verify the implementation exists and matches the spec
377
+ 3. Check that nothing was added beyond scope
378
+ 4. Report: PASS (all requirements met) or FAIL (list unmet requirements)
379
+ </instructions>
380
+ "
381
+ )
382
+ ```
383
+
384
+ **If spec review FAILS:** Fix unmet requirements, re-run verification, update SUMMARY.md, then re-run spec review. Do not proceed until PASS.
385
+
386
+ **Stage 2: Code Review** — Check code quality, security, error handling.
387
+
388
+ ```
389
+ Task(
390
+ subagent_type="maxsim-code-reviewer",
391
+ prompt="
392
+ <objective>
393
+ Review plan {phase}-{plan} code quality. Spec compliance already verified.
394
+ </objective>
395
+
396
+ <files_modified>
397
+ {List all files created/modified during execution from SUMMARY.md key-files}
398
+ </files_modified>
399
+
400
+ <instructions>
401
+ 1. Read CLAUDE.md for project conventions
402
+ 2. Review every modified file for: correctness, conventions, error handling, security, maintainability
403
+ 3. Categorize findings: BLOCKER (must fix), HIGH (should fix), MEDIUM (file for follow-up)
404
+ 4. Report: APPROVED (no blockers/high) or BLOCKED (list blocking issues)
405
+ </instructions>
406
+ "
407
+ )
408
+ ```
409
+
410
+ **If code review is BLOCKED:** Fix all blocker and high-severity issues. Re-run code review. Do not proceed until APPROVED.
411
+
412
+ **Stage 3: Simplify** — Spawn 3 parallel reviewers to catch reuse opportunities, quality issues, and inefficiencies.
413
+
414
+ ```
415
+ Task(
416
+ subagent_type="maxsim-executor",
417
+ prompt="
418
+ <objective>
419
+ Run simplification review on plan {phase}-{plan} with 3 parallel reviewers.
420
+ </objective>
421
+
422
+ <instructions>
423
+ Spawn 3 parallel review agents for the files modified in this plan:
424
+
425
+ Agent 1 — Code Reuse:
426
+ - Find duplicated logic across the codebase
427
+ - Identify copy-paste from other files that should be extracted
428
+ - Suggest shared helpers for patterns appearing 3+ times
429
+ - Check if existing utilities could replace new code
430
+
431
+ Agent 2 — Code Quality:
432
+ - Check naming consistency with codebase conventions
433
+ - Verify error handling covers all external calls
434
+ - Look for dead code: unused imports, unreachable branches, commented-out code
435
+ - Check for unnecessary abstractions or premature generalizations
436
+
437
+ Agent 3 — Efficiency:
438
+ - Find O(n^2) operations where O(n) is straightforward
439
+ - Identify repeated computations that could be cached or hoisted
440
+ - Check for unnecessary allocations in hot paths
441
+ - Look for redundant data transformations
442
+
443
+ After all 3 agents report:
444
+ 1. Consolidate findings into a single list
445
+ 2. Apply fixes for all actionable items (skip speculative optimizations)
446
+ 3. Run tests to confirm fixes do not break anything
447
+ 4. Report: CLEAN (no issues found), FIXED (issues found and resolved), or BLOCKED (issues found but cannot fix without architectural change)
448
+ </instructions>
449
+
450
+ <files_to_review>
451
+ {List all files created/modified during execution from SUMMARY.md key-files}
452
+ </files_to_review>
453
+ "
454
+ )
455
+ ```
456
+
457
+ **If simplify is BLOCKED:** Present architectural issues to user via checkpoint protocol. Do not proceed until resolved.
458
+
459
+ **Stage 4: Final Review** — If simplify made changes, one more code review pass.
460
+
461
+ Run this stage ONLY if Stage 3 reported FIXED (i.e., simplify found and applied fixes).
462
+
463
+ ```
464
+ Task(
465
+ subagent_type="maxsim-code-reviewer",
466
+ prompt="
467
+ <objective>
468
+ Final review pass after simplification changes on plan {phase}-{plan}.
469
+ Verify simplification fixes did not introduce regressions.
470
+ </objective>
471
+
472
+ <context>
473
+ Previous code review: APPROVED
474
+ Simplification: FIXED — changes were applied
475
+ This is a focused re-review of simplification changes only.
476
+ </context>
477
+
478
+ <files_modified>
479
+ {List files changed by simplification stage}
480
+ </files_modified>
481
+
482
+ <instructions>
483
+ 1. Review only the changes made during simplification
484
+ 2. Verify no regressions were introduced
485
+ 3. Check that simplification changes follow project conventions
486
+ 4. Report: APPROVED or BLOCKED (list issues)
487
+ </instructions>
488
+ "
489
+ )
490
+ ```
491
+
492
+ **If final review is BLOCKED:** Fix issues, re-run final review. Do not proceed until APPROVED.
493
+
494
+ **Review cycle tracking:** Record review results in SUMMARY.md under a `## Review Cycle` section:
495
+ ```markdown
496
+ ## Review Cycle
497
+
498
+ | Stage | Result | Findings |
499
+ |-------|--------|----------|
500
+ | Spec Review | PASS | All requirements met |
501
+ | Code Review | APPROVED | No blocking issues |
502
+ | Simplify | FIXED | Extracted shared helper for X, removed unused import Y |
503
+ | Final Review | APPROVED | Simplification changes verified |
504
+ ```
505
+
506
+ Update the SUMMARY.md commit after the review cycle completes:
507
+ ```bash
508
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs commit "docs({phase}-{plan}): add review cycle results" --files {phase_dir}/{phase}-{plan}-SUMMARY.md
509
+ ```
510
+ </step>
511
+
346
512
  <step name="update_current_position">
347
513
  Update STATE.md using maxsim-tools:
348
514
 
@@ -7,6 +7,7 @@ Output: `.planning/` directory with config.json, PROJECT.md, REQUIREMENTS.md, RO
7
7
  <required_reading>
8
8
  Read all files referenced by the invoking prompt's execution_context before starting.
9
9
  @./references/dashboard-bridge.md
10
+ @./references/thinking-partner.md
10
11
  </required_reading>
11
12
 
12
13
  <tool_mandate>
@@ -529,6 +530,11 @@ Ask user to confirm or correct via AskUserQuestion:
529
530
 
530
531
  If "Some corrections": ask "What needs correcting?" (freeform), capture corrections, apply to working context.
531
532
 
533
+ Apply thinking-partner behaviors when presenting findings:
534
+ - **Surface unstated assumptions** — "The scan assumes X is your primary framework — is that accurate?"
535
+ - **Make consequences visible** — "Your architecture pattern means Y for future phases."
536
+ - **Propose alternatives** — If concerns were found, suggest approaches: "The scan found tech debt in Z. We could address it early or defer — here are the trade-offs."
537
+
532
538
  ## Step 7: Future Direction Questions
533
539
 
534
540
  **If auto mode:** Skip. Generate generic "continue development" goals. Proceed to Step 9.
@@ -628,6 +634,15 @@ Ask inline (freeform, NOT AskUserQuestion):
628
634
 
629
635
  Wait for response.
630
636
 
637
+ **Thinking-partner follow-up on vision:**
638
+
639
+ After the user shares their vision, apply thinking-partner behaviors:
640
+ - Challenge vague statements: "You said 'improve performance' — improve which operations, for which users?"
641
+ - Surface assumptions: "That assumes users will migrate from X — is that the plan?"
642
+ - Propose alternatives if the vision seems narrow: "Have you considered approaching it from Y angle instead?"
643
+
644
+ Use 1-2 follow-up AskUserQuestion prompts to sharpen the vision if needed. Don't over-question — 1-2 rounds max.
645
+
631
646
  ## Step 8: Milestone Suggestion
632
647
 
633
648
  **If auto mode:** Generate a milestone name from the inferred project purpose. Proceed to Step 9.
@@ -991,6 +1006,104 @@ Pre-populate:
991
1006
 
992
1007
  Already written in Step 5. If merge mode and config.json existed, it was preserved (unless user chose overwrite).
993
1008
 
1009
+ ### 9f: Artefakte Generation
1010
+
1011
+ Generate structured artefakte documents from gathered context.
1012
+
1013
+ **DECISIONS.md:**
1014
+
1015
+ ```bash
1016
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs artefakte-write .planning/DECISIONS.md
1017
+ ```
1018
+
1019
+ Write content:
1020
+
1021
+ ```markdown
1022
+ # Key Decisions
1023
+
1024
+ **Generated:** [date]
1025
+ **Source:** Init-existing initialization
1026
+
1027
+ | # | Decision | Rationale | Alternatives Considered | Status |
1028
+ |---|----------|-----------|------------------------|--------|
1029
+ | 1 | [Config choice: mode] | [Why] | [Other options] | Locked |
1030
+ | 2 | [Stage assessment] | [Evidence from scan] | [Other stages considered] | Locked |
1031
+ | 3 | [Any constraint decisions from Step 7] | [Why] | [Alternatives] | Locked |
1032
+
1033
+ ---
1034
+ *Decisions captured during /maxsim:init-existing initialization*
1035
+ ```
1036
+
1037
+ **ACCEPTANCE-CRITERIA.md:**
1038
+
1039
+ ```bash
1040
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs artefakte-write .planning/ACCEPTANCE-CRITERIA.md
1041
+ ```
1042
+
1043
+ Write content:
1044
+
1045
+ ```markdown
1046
+ # Acceptance Criteria
1047
+
1048
+ **Generated:** [date]
1049
+ **Source:** Init-existing initialization
1050
+
1051
+ ## Project-Level Criteria
1052
+
1053
+ - [ ] [Observable outcome from user's vision]
1054
+ - [ ] [Observable outcome from user's vision]
1055
+ - [ ] [Stability guard from production constraints, if applicable]
1056
+
1057
+ ## Phase-Level Criteria
1058
+
1059
+ Populated per-phase during /maxsim:discuss-phase.
1060
+
1061
+ ---
1062
+ *Criteria derived from init-existing initialization*
1063
+ ```
1064
+
1065
+ **NO-GOS.md:**
1066
+
1067
+ ```bash
1068
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs artefakte-write .planning/NO-GOS.md
1069
+ ```
1070
+
1071
+ Write content:
1072
+
1073
+ ```markdown
1074
+ # No-Gos
1075
+
1076
+ **Generated:** [date]
1077
+ **Source:** Init-existing initialization
1078
+
1079
+ ## Must Not Break
1080
+
1081
+ [From production constraints / GUARD requirements in REQUIREMENTS.md]
1082
+
1083
+ - [Critical thing that cannot break] -- [why]
1084
+
1085
+ ## Anti-Patterns
1086
+
1087
+ [From CONCERNS.md and user input]
1088
+
1089
+ - [Approach to avoid] -- [why]
1090
+
1091
+ ## Scope Boundaries
1092
+
1093
+ - [What this milestone is NOT trying to achieve]
1094
+
1095
+ ---
1096
+ *No-gos captured during /maxsim:init-existing initialization*
1097
+ ```
1098
+
1099
+ **If auto mode:** Generate artefakte from scan findings with reasonable inferences. Mark uncertain entries with `(inferred)`.
1100
+
1101
+ **Commit artefakte:**
1102
+
1103
+ ```bash
1104
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs commit "docs: generate initialization artefakte" --files .planning/DECISIONS.md .planning/ACCEPTANCE-CRITERIA.md .planning/NO-GOS.md
1105
+ ```
1106
+
994
1107
  ## Step 10: Git Stage and Summary
995
1108
 
996
1109
  Stage all changed files:
@@ -1057,6 +1170,9 @@ Print next steps:
1057
1170
  - `.planning/REQUIREMENTS.md`
1058
1171
  - `.planning/ROADMAP.md`
1059
1172
  - `.planning/STATE.md`
1173
+ - `.planning/DECISIONS.md`
1174
+ - `.planning/ACCEPTANCE-CRITERIA.md`
1175
+ - `.planning/NO-GOS.md`
1060
1176
  - `.planning/codebase/STACK.md`
1061
1177
  - `.planning/codebase/ARCHITECTURE.md`
1062
1178
  - `.planning/codebase/CONVENTIONS.md`
@@ -5,6 +5,7 @@ Initialize a new project through unified flow: questioning, research (optional),
5
5
  <required_reading>
6
6
  Read all files referenced by the invoking prompt's execution_context before starting.
7
7
  @./references/dashboard-bridge.md
8
+ @./references/thinking-partner.md
8
9
  </required_reading>
9
10
 
10
11
  <tool_mandate>
@@ -224,10 +225,18 @@ Ask inline (freeform, NOT AskUserQuestion):
224
225
 
225
226
  Wait for their response. This gives you the context needed to ask intelligent follow-up questions.
226
227
 
227
- **Follow the thread:**
228
+ **Follow the thread (thinking-partner mode):**
228
229
 
229
230
  Based on what they said, ask follow-up questions that dig into their response. Use AskUserQuestion with options that probe what they mentioned — interpretations, clarifications, concrete examples.
230
231
 
232
+ Apply thinking-partner behaviors from `thinking-partner.md`:
233
+ - **Challenge vague answers** — "Good UX" means what? Push for specifics.
234
+ - **Surface unstated assumptions** — Name assumptions the user didn't realize they were making.
235
+ - **Propose alternatives with trade-offs** — Don't just accept the first approach. Offer 2-3 paths.
236
+ - **Suggest directions** — "Have you considered...?" Frame as possibilities, not mandates.
237
+ - **Make consequences visible** — "If we go with X, that means Y will need to change."
238
+ - **Disagree constructively** — If you see a risk, say so.
239
+
231
240
  Keep following threads. Each answer opens new threads to explore. Ask about:
232
241
  - What excited them
233
242
  - What problem sparked this
@@ -346,6 +355,101 @@ mkdir -p .planning
346
355
  node ~/.claude/maxsim/bin/maxsim-tools.cjs commit "docs: initialize project" --files .planning/PROJECT.md
347
356
  ```
348
357
 
358
+ ## 4b. Generate Artefakte
359
+
360
+ After PROJECT.md is committed, generate artefakte documents that capture structured insights from questioning.
361
+
362
+ **DECISIONS.md** — Key decisions made during questioning with rationale:
363
+
364
+ ```bash
365
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs artefakte-write .planning/DECISIONS.md
366
+ ```
367
+
368
+ Write content:
369
+
370
+ ```markdown
371
+ # Key Decisions
372
+
373
+ **Generated:** [date]
374
+ **Source:** Project initialization questioning
375
+
376
+ | # | Decision | Rationale | Alternatives Considered | Status |
377
+ |---|----------|-----------|------------------------|--------|
378
+ | 1 | [Choice from questioning] | [Why this was chosen] | [What else was discussed] | Locked |
379
+ | 2 | [Choice from questioning] | [Why this was chosen] | [What else was discussed] | Locked |
380
+
381
+ ---
382
+ *Decisions captured during /maxsim:new-project initialization*
383
+ ```
384
+
385
+ **ACCEPTANCE-CRITERIA.md** — Measurable success criteria derived from user's vision:
386
+
387
+ ```bash
388
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs artefakte-write .planning/ACCEPTANCE-CRITERIA.md
389
+ ```
390
+
391
+ Write content:
392
+
393
+ ```markdown
394
+ # Acceptance Criteria
395
+
396
+ **Generated:** [date]
397
+ **Source:** Project initialization
398
+
399
+ ## Project-Level Criteria
400
+
401
+ These define what "done" looks like for the entire project:
402
+
403
+ - [ ] [Observable outcome from user's vision]
404
+ - [ ] [Observable outcome from user's vision]
405
+ - [ ] [Observable outcome from user's vision]
406
+
407
+ ## Phase-Level Criteria
408
+
409
+ Populated per-phase during /maxsim:discuss-phase.
410
+
411
+ ---
412
+ *Criteria derived from project initialization*
413
+ ```
414
+
415
+ **NO-GOS.md** — Explicit exclusions and anti-patterns:
416
+
417
+ ```bash
418
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs artefakte-write .planning/NO-GOS.md
419
+ ```
420
+
421
+ Write content:
422
+
423
+ ```markdown
424
+ # No-Gos
425
+
426
+ **Generated:** [date]
427
+ **Source:** Project initialization
428
+
429
+ ## Excluded Features
430
+
431
+ - [Feature explicitly excluded] — [why]
432
+
433
+ ## Anti-Patterns
434
+
435
+ - [Approach to avoid] — [why]
436
+
437
+ ## Scope Boundaries
438
+
439
+ - [What this project is NOT]
440
+
441
+ ---
442
+ *No-gos captured during /maxsim:new-project initialization*
443
+ ```
444
+
445
+ **Commit artefakte:**
446
+
447
+ ```bash
448
+ node ~/.claude/maxsim/bin/maxsim-tools.cjs commit "docs: generate initialization artefakte" --files .planning/DECISIONS.md .planning/ACCEPTANCE-CRITERIA.md .planning/NO-GOS.md
449
+ ```
450
+
451
+ **If auto mode:** Generate artefakte from the provided document with reasonable inferences. Mark uncertain entries with `(inferred)`.
452
+
349
453
  ## 5. Workflow Preferences
350
454
 
351
455
  **If auto mode:** Skip — config was collected in Step 2a. Proceed to Step 5.5.
@@ -112,7 +112,7 @@ Answer: "What do I need to know to PLAN this phase well?"
112
112
  **Phase requirement IDs (MUST address):** {phase_req_ids}
113
113
 
114
114
  **Project instructions:** Read ./CLAUDE.md if exists — follow project-specific guidelines
115
- **Project skills:** Check .agents/skills/ directory (if exists) — read SKILL.md files, research should account for project skill patterns
115
+ **Project skills:** Check .skills/ directory (if exists) — read SKILL.md files, research should account for project skill patterns
116
116
  </additional_context>
117
117
 
118
118
  <output>
@@ -212,7 +212,7 @@ Planner prompt:
212
212
  **Phase requirement IDs (every ID MUST appear in a plan's `requirements` field):** {phase_req_ids}
213
213
 
214
214
  **Project instructions:** Read ./CLAUDE.md if exists — follow project-specific guidelines
215
- **Project skills:** Check .agents/skills/ directory (if exists) — read SKILL.md files, plans should account for project skill rules
215
+ **Project skills:** Check .skills/ directory (if exists) — read SKILL.md files, plans should account for project skill rules
216
216
  </planning_context>
217
217
 
218
218
  <downstream_consumer>
@@ -277,7 +277,7 @@ Checker prompt:
277
277
  **Phase requirement IDs (MUST ALL be covered):** {phase_req_ids}
278
278
 
279
279
  **Project instructions:** Read ./CLAUDE.md if exists — verify plans honor project guidelines
280
- **Project skills:** Check .agents/skills/ directory (if exists) — verify plans account for project skill rules
280
+ **Project skills:** Check .skills/ directory (if exists) — verify plans account for project skill rules
281
281
  </verification_context>
282
282
 
283
283
  <expected_output>
@@ -108,7 +108,7 @@ Task(
108
108
  - ./CLAUDE.md (if exists — follow project-specific guidelines)
109
109
  </files_to_read>
110
110
 
111
- **Project skills:** Check .agents/skills/ directory (if exists) — read SKILL.md files, plans should account for project skill rules
111
+ **Project skills:** Check .skills/ directory (if exists) — read SKILL.md files, plans should account for project skill rules
112
112
 
113
113
  </planning_context>
114
114
 
@@ -259,7 +259,7 @@ Execute quick task ${next_num}.
259
259
  - ${QUICK_DIR}/${next_num}-PLAN.md (Plan)
260
260
  - .planning/STATE.md (Project state)
261
261
  - ./CLAUDE.md (Project instructions, if exists)
262
- - .agents/skills/ (Project skills, if exists — list skills, read SKILL.md for each, follow relevant rules during implementation)
262
+ - .skills/ (Project skills, if exists — list skills, read SKILL.md for each, follow relevant rules during implementation)
263
263
  </files_to_read>
264
264
 
265
265
  <constraints>