mindsystem-cc 3.13.1 → 3.16.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 (54) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +1 -0
  3. package/agents/ms-codebase-researcher.md +105 -0
  4. package/agents/ms-consolidator.md +137 -286
  5. package/agents/ms-debugger.md +1 -0
  6. package/agents/ms-designer.md +1 -0
  7. package/agents/ms-executor.md +2 -1
  8. package/agents/ms-flutter-reviewer.md +1 -0
  9. package/agents/ms-integration-checker.md +1 -0
  10. package/agents/ms-plan-checker.md +17 -327
  11. package/agents/ms-researcher.md +25 -343
  12. package/agents/ms-roadmapper.md +10 -75
  13. package/agents/ms-verifier.md +33 -309
  14. package/agents/ms-verify-fixer.md +1 -0
  15. package/commands/ms/check-phase.md +24 -55
  16. package/commands/ms/complete-milestone.md +6 -25
  17. package/commands/ms/create-roadmap.md +3 -15
  18. package/commands/ms/design-phase.md +40 -2
  19. package/commands/ms/discuss-phase.md +1 -9
  20. package/commands/ms/doctor.md +224 -0
  21. package/commands/ms/execute-phase.md +22 -12
  22. package/commands/ms/help.md +11 -0
  23. package/commands/ms/new-milestone.md +3 -3
  24. package/commands/ms/plan-phase.md +1 -1
  25. package/commands/ms/research-phase.md +249 -85
  26. package/commands/ms/verify-work.md +7 -13
  27. package/mindsystem/templates/UAT.md +0 -274
  28. package/mindsystem/templates/context.md +1 -11
  29. package/mindsystem/templates/discovery.md +2 -3
  30. package/mindsystem/templates/knowledge.md +99 -0
  31. package/mindsystem/templates/requirements.md +3 -61
  32. package/mindsystem/templates/research-comparison-output.md +50 -0
  33. package/mindsystem/templates/research-feasibility-output.md +43 -0
  34. package/mindsystem/templates/research-project-output.md +81 -0
  35. package/mindsystem/templates/research-subagent-prompt.md +164 -48
  36. package/mindsystem/templates/roadmap-milestone.md +67 -0
  37. package/mindsystem/templates/roadmap.md +2 -66
  38. package/mindsystem/workflows/complete-milestone.md +23 -140
  39. package/mindsystem/workflows/define-requirements.md +4 -8
  40. package/mindsystem/workflows/discuss-phase.md +25 -8
  41. package/mindsystem/workflows/execute-phase.md +34 -0
  42. package/mindsystem/workflows/execute-plan.md +8 -0
  43. package/mindsystem/workflows/mockup-generation.md +1 -1
  44. package/mindsystem/workflows/plan-phase.md +40 -102
  45. package/mindsystem/workflows/verify-work.md +40 -234
  46. package/package.json +1 -1
  47. package/scripts/cleanup-phase-artifacts.sh +68 -0
  48. package/scripts/scan-artifact-subsystems.sh +55 -0
  49. package/scripts/scan-planning-context.py +689 -0
  50. package/skills/flutter-code-quality/SKILL.md +1 -1
  51. package/skills/flutter-code-simplification/SKILL.md +1 -1
  52. package/skills/flutter-senior-review/SKILL.md +1 -1
  53. package/mindsystem/templates/decisions.md +0 -145
  54. package/mindsystem/templates/learnings.md +0 -150
@@ -6,14 +6,14 @@ allowed-tools:
6
6
  - Read
7
7
  - Bash
8
8
  - Task
9
+ - Write
10
+ - AskUserQuestion
9
11
  ---
10
12
 
11
13
  <objective>
12
- Research how to implement a phase. Spawns ms-researcher agent with phase context.
14
+ Research how to implement a phase by spawning 3 parallel specialized agents, then synthesizing their findings into RESEARCH.md.
13
15
 
14
- **Orchestrator role:** Parse phase, validate against roadmap, check existing research, gather context, spawn researcher agent, present results.
15
-
16
- **Why subagent:** Research burns context fast (WebSearch, Context7 queries, source verification). Fresh 200k context for investigation. Main context stays lean for user interaction.
16
+ **Orchestrator role:** Parse phase, validate, pre-scan project context, spawn 3 agents (external docs, codebase patterns, best practices), synthesize findings, resolve conflicts, write RESEARCH.md.
17
17
  </objective>
18
18
 
19
19
  <context>
@@ -51,135 +51,282 @@ ls .planning/phases/${PHASE}-*/RESEARCH.md 2>/dev/null
51
51
 
52
52
  **If doesn't exist:** Continue.
53
53
 
54
- ## 3. Gather Phase Context
54
+ ## 3. Pre-scan Project Context
55
+
56
+ Gather baseline context that all agents need:
55
57
 
56
58
  ```bash
59
+ # Dependency file (first 100 lines)
60
+ cat pubspec.yaml package.json Gemfile requirements.txt go.mod pyproject.toml 2>/dev/null | head -100
61
+
62
+ # Phase context from roadmap
57
63
  grep -A20 "Phase ${PHASE}:" .planning/ROADMAP.md
64
+
65
+ # Requirements
58
66
  cat .planning/REQUIREMENTS.md 2>/dev/null
67
+
68
+ # Phase-specific context and design
59
69
  cat .planning/phases/${PHASE}-*/${PHASE}-CONTEXT.md 2>/dev/null
60
70
  cat .planning/phases/${PHASE}-*/${PHASE}-DESIGN.md 2>/dev/null
71
+
72
+ # Locked decisions
61
73
  grep -A30 "### Decisions Made" .planning/STATE.md 2>/dev/null
74
+
75
+ # Prior knowledge — match subsystem(s) by comparing phase description against config.json names
76
+ jq -r '.subsystems[]' .planning/config.json 2>/dev/null
77
+ cat .planning/knowledge/{matched_subsystem}.md 2>/dev/null
78
+ ```
79
+
80
+ Extract from pre-scan:
81
+ - `existing_tech`: Libraries already in the project (from dependency file)
82
+ - `phase_description`: What this phase aims to build
83
+ - `phase_requirements`: Specific requirements
84
+ - `locked_decisions`: From CONTEXT.md and STATE.md
85
+ - `design_specs`: From DESIGN.md if exists
86
+ - `prior_knowledge`: From `.planning/knowledge/{subsystem}.md` — prior decisions, known pitfalls, architecture patterns (so agents don't re-research settled decisions)
87
+
88
+ ## 4. Determine Research Scope
89
+
90
+ Research modes:
91
+ - **ecosystem** (default): Survey available tools, libraries, and integration options
92
+ - **feasibility**: Assess whether current stack can support the requirements
93
+ - **implementation**: Concrete how-to patterns and step-by-step approaches
94
+ - **comparison**: Evaluate alternatives side-by-side with tradeoffs
95
+
96
+ Frame the research question based on mode + phase description. Present to user:
97
+
62
98
  ```
99
+ Research scope for Phase {N}: {name}
63
100
 
64
- Present summary with phase description, requirements, prior decisions.
101
+ Mode: {mode}
102
+ Question: {framed_question}
103
+ Existing tech: {existing_tech_summary}
65
104
 
66
- **If DESIGN.md exists:** Research should address:
67
- - Libraries needed for specified interactions (animations, gestures, charts)
68
- - Technical feasibility of design requirements
69
- - Platform-specific implementation approaches
70
- - Component libraries that match the design system
105
+ Spawning 3 parallel agents:
106
+ 1. External Docs library documentation, APIs, code examples
107
+ 2. Codebase Patterns existing patterns, learnings, established conventions
108
+ 3. Best Practices — community consensus, pitfalls, SOTA
71
109
 
72
- ## 4. Spawn ms-researcher Agent
110
+ Proceed? (yes / adjust scope / change mode)
111
+ ```
73
112
 
74
- Research modes: ecosystem (default), feasibility, implementation, comparison.
113
+ ## 5. Spawn 3 Agents in Parallel
75
114
 
76
- ```markdown
115
+ Announce: "Spawning 3 research agents in parallel..."
116
+
117
+ All 3 receive pre-scan context (existing tech, phase description, requirements, locked decisions, design specs if any). Spawn all 3 in a single message using the Task tool.
118
+
119
+ ### Agent 1: External Docs (ms-researcher)
120
+
121
+ ```
122
+ Task(
123
+ prompt="
77
124
  <research_type>
78
- Phase Research — investigating HOW to implement a specific phase well.
125
+ Phase Research — External Documentation focus.
79
126
  </research_type>
80
127
 
81
- <key_insight>
82
- The question is NOT "which library should I use?"
128
+ <focus>
129
+ Library documentation, APIs, version-specific behavior, verified code examples.
130
+ Use the ms-lookup CLI for library docs and deep research:
131
+ ~/.claude/mindsystem/scripts/ms-lookup-wrapper.sh docs <library> '<query>'
132
+ ~/.claude/mindsystem/scripts/ms-lookup-wrapper.sh deep '<query>'
133
+ Use WebSearch for ecosystem discovery.
134
+ Focus on finding authoritative, current documentation for the libraries and tools
135
+ needed to implement this phase.
136
+ </focus>
83
137
 
84
- The question is: "What do I not know that I don't know?"
138
+ <existing_tech>
139
+ {existing_tech from pre-scan — so agent knows what's already in the project}
140
+ </existing_tech>
85
141
 
86
- For this phase, discover:
87
- - What's the established architecture pattern?
88
- - What libraries form the standard stack?
89
- - What problems do people commonly hit?
90
- - What's SOTA vs what Claude's training thinks is SOTA?
91
- - What should NOT be hand-rolled?
92
- </key_insight>
142
+ <prior_knowledge>
143
+ {prior_decisions, known_pitfalls, architecture_patterns from knowledge files — so agents don't re-research settled decisions}
144
+ </prior_knowledge>
93
145
 
94
146
  <objective>
95
- Research implementation approach for Phase {phase_number}: {phase_name}
96
- Mode: ecosystem
147
+ Research external documentation for Phase {N}: {name}
148
+ Mode: {mode}
97
149
  </objective>
98
150
 
99
151
  <context>
100
- **Phase description:** {phase_description}
101
- **Requirements:** {requirements_list}
102
- **Prior decisions:** {decisions_if_any}
103
- **Phase context:** {context_md_content}
104
- **Design specs:** {design_md_content_if_exists}
152
+ {phase_description, requirements, locked_decisions, design_specs}
105
153
  </context>
106
154
 
107
155
  <downstream_consumer>
108
- Your RESEARCH.md will be loaded by `/ms:plan-phase` which uses specific sections:
109
- - `## Standard Stack` Plans use these libraries
110
- - `## Architecture Patterns` Task structure follows these
111
- - `## Don't Hand-Roll` Tasks NEVER build custom solutions for listed problems
112
- - `## Common Pitfalls` Verification steps check for these
113
- - `## Code Examples` Task actions reference these patterns
114
-
115
- Be prescriptive, not exploratory. "Use X" not "Consider X or Y."
156
+ Your findings feed into orchestrator synthesis -> RESEARCH.md sections:
157
+ - Standard Stack (libraries, versions, install commands)
158
+ - Architecture Patterns (library-recommended patterns)
159
+ - Don't Hand-Roll (library solutions for common problems)
160
+ - Code Examples (verified from official docs)
161
+ - State of the Art (latest approaches, deprecated patterns)
162
+ Be prescriptive. Specific versions. Verified code.
116
163
  </downstream_consumer>
117
164
 
118
- <quality_gate>
119
- Before declaring complete, verify:
120
- - [ ] All domains investigated (not just some)
121
- - [ ] Negative claims verified with official docs
122
- - [ ] Multiple sources for critical claims
123
- - [ ] Confidence levels assigned honestly
124
- - [ ] Section names match what plan-phase expects
125
- </quality_gate>
126
-
127
165
  <output>
128
- Write to: .planning/phases/{phase}-{slug}/{phase}-RESEARCH.md
166
+ Return findings as structured text. Do NOT write to filesystem.
167
+ Format:
168
+ ## EXTERNAL DOCS FINDINGS
169
+ ### Recommended Libraries (name, version, purpose, install)
170
+ ### API Patterns & Code Examples (verified from docs)
171
+ ### Architecture Recommendations (from library docs)
172
+ ### Don't Hand-Roll (library solutions exist for these)
173
+ ### Version Constraints & Compatibility
174
+ ### Confidence (HIGH/MEDIUM/LOW per section with sources)
175
+ Complete your built-in verification protocol and quality checklist before returning findings.
129
176
  </output>
177
+ ",
178
+ subagent_type="ms-researcher",
179
+ description="External docs: Phase {N}"
180
+ )
130
181
  ```
131
182
 
183
+ ### Agent 2: Codebase Patterns (ms-codebase-researcher)
184
+
132
185
  ```
133
186
  Task(
134
- prompt=filled_prompt,
135
- subagent_type="ms-researcher",
136
- description="Research Phase {phase}"
137
- )
138
- ```
187
+ prompt="
188
+ <objective>
189
+ Analyze project codebase for patterns relevant to Phase {N}: {name}
190
+ </objective>
139
191
 
140
- ## 5. Handle Agent Return
192
+ <research_question>
193
+ {framed_question}
194
+ </research_question>
141
195
 
142
- **`## RESEARCH COMPLETE`:**
196
+ <phase_context>
197
+ {phase_description, requirements, locked_decisions}
198
+ </phase_context>
143
199
 
144
- Commit the research file:
200
+ <existing_tech>
201
+ {existing_tech from pre-scan}
202
+ </existing_tech>
145
203
 
146
- ```bash
147
- git add .planning/phases/${PHASE}-*/*-RESEARCH.md
148
- git commit -m "docs: complete research for phase ${PHASE}"
204
+ <prior_knowledge>
205
+ {prior_decisions, known_pitfalls, architecture_patterns from knowledge files — so agents don't re-research settled decisions}
206
+ </prior_knowledge>
207
+
208
+ <scan_hints>
209
+ {keywords extracted from phase description for targeted scanning}
210
+ </scan_hints>
211
+
212
+ <quality>
213
+ Complete your built-in success criteria checklist before returning findings.
214
+ </quality>
215
+ ",
216
+ subagent_type="ms-codebase-researcher",
217
+ description="Codebase patterns: Phase {N}"
218
+ )
149
219
  ```
150
220
 
151
- Display summary, then read `~/.claude/mindsystem/references/prework-status.md` to show what's done vs still needed. Also offer: Dig deeper, Review full.
221
+ ### Agent 3: Best Practices (ms-researcher)
222
+
223
+ ```
224
+ Task(
225
+ prompt="
226
+ <research_type>
227
+ Phase Research — Best Practices & Community Consensus focus.
228
+ </research_type>
152
229
 
153
- **`## CHECKPOINT REACHED`:** Present to user, get response, spawn continuation.
230
+ <focus>
231
+ Community consensus, common pitfalls, proven approaches, state of the art.
232
+ Use the ms-lookup CLI for deep research on high-value questions:
233
+ ~/.claude/mindsystem/scripts/ms-lookup-wrapper.sh deep '<query>'
234
+ Use WebSearch for community articles, blog posts, Stack Overflow patterns.
235
+ Focus on what practitioners recommend and what mistakes to avoid.
236
+ </focus>
154
237
 
155
- **`## RESEARCH INCONCLUSIVE`:** Show what was attempted, offer: Add context, Try different mode, Manual.
238
+ <existing_tech>
239
+ {existing_tech from pre-scan}
240
+ </existing_tech>
156
241
 
157
- ## 6. Spawn Continuation Agent
242
+ <prior_knowledge>
243
+ {prior_decisions, known_pitfalls, architecture_patterns from knowledge files — so agents don't re-research settled decisions}
244
+ </prior_knowledge>
158
245
 
159
- ```markdown
160
246
  <objective>
161
- Continue research for Phase {phase_number}: {phase_name}
247
+ Research best practices for Phase {N}: {name}
248
+ Mode: {mode}
162
249
  </objective>
163
250
 
164
- <prior_state>
165
- Research file: @.planning/phases/{phase}-{slug}/{phase}-RESEARCH.md
166
- </prior_state>
251
+ <context>
252
+ {phase_description, requirements, locked_decisions, design_specs}
253
+ </context>
167
254
 
168
- <checkpoint_response>
169
- **Type:** {checkpoint_type}
170
- **Response:** {user_response}
171
- </checkpoint_response>
172
- ```
255
+ <downstream_consumer>
256
+ Your findings feed into orchestrator synthesis -> RESEARCH.md sections:
257
+ - Common Pitfalls (community war stories, warning signs)
258
+ - State of the Art (current vs deprecated approaches)
259
+ - Architecture Patterns (industry patterns, not library-specific)
260
+ - Don't Hand-Roll (community-known solved problems)
261
+ - Alternatives Considered (why X over Y)
262
+ Be prescriptive. Cite sources. Flag confidence levels.
263
+ </downstream_consumer>
173
264
 
174
- ```
175
- Task(
176
- prompt=continuation_prompt,
265
+ <output>
266
+ Return findings as structured text. Do NOT write to filesystem.
267
+ Format:
268
+ ## BEST PRACTICES FINDINGS
269
+ ### Recommended Approaches (community consensus)
270
+ ### Common Pitfalls (what goes wrong, warning signs, prevention)
271
+ ### State of the Art (current vs deprecated, when things changed)
272
+ ### Alternative Approaches (what else exists, why not chosen)
273
+ ### Industry Patterns (architecture, testing, deployment)
274
+ ### Confidence (HIGH/MEDIUM/LOW per section with sources)
275
+ Complete your built-in verification protocol and quality checklist before returning findings.
276
+ </output>
277
+ ",
177
278
  subagent_type="ms-researcher",
178
- description="Continue research Phase {phase}"
279
+ description="Best practices: Phase {N}"
179
280
  )
180
281
  ```
181
282
 
182
- ## 7. Update Last Command
283
+ ## 6. Synthesize Findings
284
+
285
+ After all 3 agents return, read their structured outputs. Map findings to RESEARCH.md sections:
286
+
287
+ | RESEARCH.md Section | External Docs | Codebase | Best Practices | Synthesis Rule |
288
+ |---------------------|--------------|----------|----------------|----------------|
289
+ | Summary | Key libraries found | What exists already | Community direction | 2-3 paragraph synthesis |
290
+ | Standard Stack | Recommended + versions | Already in project | Community recommended | Merge: keep existing when sufficient, add new when needed |
291
+ | Architecture Patterns | Library-recommended | Established project patterns | Industry patterns | Follow existing; adopt recommended for new capabilities |
292
+ | Don't Hand-Roll | Library solutions | Internal solutions | Solved problems | Union of all three |
293
+ | Common Pitfalls | Library-specific gotchas | Past failures/learnings | Community war stories | Union, deduplicate |
294
+ | Code Examples | From official docs | From project | From community | Prefer official docs; show project examples for "how we do it here" |
295
+ | State of the Art | Latest versions/APIs | — | Current vs deprecated | Combine external + community |
296
+
297
+ **Conflict resolution:** If external recommends library X but project already uses library Y for the same purpose, present conflict to user via AskUserQuestion:
298
+ - Options: "Keep existing [Y]" / "Switch to recommended [X]" / "Use both (different purposes)" / "Something else"
299
+ - Record decision in RESEARCH.md
300
+
301
+ **Source attribution:** In `<sources>` section, prefix findings with their agent origin: "From external docs:", "From codebase analysis:", "From best practices:"
302
+
303
+ Write RESEARCH.md to `.planning/phases/{phase}-{slug}/{phase}-RESEARCH.md` using the standard template structure (semantic XML tags: `<research_summary>`, `<standard_stack>`, `<architecture_patterns>`, `<dont_hand_roll>`, `<common_pitfalls>`, `<code_examples>`, `<sota_updates>`, `<open_questions>`, `<sources>`, `<metadata>`).
304
+
305
+ ## 7. Commit and Present
306
+
307
+ ```bash
308
+ git add .planning/phases/${PHASE}-*/*-RESEARCH.md
309
+ git commit -m "docs: complete research for phase ${PHASE}"
310
+ ```
311
+
312
+ Display research summary. Read `~/.claude/mindsystem/references/prework-status.md` to show what's done vs still needed for this phase.
313
+
314
+ **Post-synthesis routing:**
315
+
316
+ Scan the synthesized RESEARCH.md for LOW confidence sections and significant open questions.
317
+
318
+ If all sections HIGH/MEDIUM confidence with no major gaps, use AskUserQuestion:
319
+ 1. Proceed to planning
320
+ 2. Dig deeper into specific area
321
+ 3. Review full research
322
+
323
+ If any section has LOW confidence or significant open questions, flag the weak areas explicitly, then use AskUserQuestion:
324
+ 1. Dig deeper into [specific LOW area] — re-run targeted agent
325
+ 2. Try different research mode (e.g., ecosystem -> implementation)
326
+ 3. Proceed to planning with caveats noted
327
+ 4. Review full research
328
+
329
+ ## 8. Update Last Command
183
330
 
184
331
  Update `.planning/STATE.md` Last Command field:
185
332
  - Find line starting with `Last Command:` in Current Position section
@@ -188,11 +335,28 @@ Update `.planning/STATE.md` Last Command field:
188
335
 
189
336
  </process>
190
337
 
338
+ <checkpoint_handling>
339
+
340
+ **With parallel agents:**
341
+ - Wait for ALL 3 agents to complete before synthesizing
342
+ - If any agent returns CHECKPOINT: present all checkpoints after other agents finish, handle sequentially
343
+ - If any agent returns BLOCKED: report which failed, offer to retry that agent or proceed with 2/3 findings
344
+
345
+ **Continuation mechanics:**
346
+ When an agent returns CHECKPOINT, its text response contains partial findings. To continue:
347
+ 1. Capture the checkpointed agent's full text response
348
+ 2. Present the checkpoint reason to the user, get their input
349
+ 3. Spawn a fresh agent of the same type, injecting the captured text as inline content in `<prior_state>`
350
+
351
+ The `{partial_findings}` placeholder in the continuation template is the agent's raw text response, not a file reference. Read `mindsystem/templates/research-subagent-prompt.md` Continuation section for the prompt template.
352
+
353
+ </checkpoint_handling>
354
+
191
355
  <success_criteria>
192
- - [ ] Phase validated against roadmap
193
- - [ ] Existing research checked
194
- - [ ] ms-researcher spawned with context
195
- - [ ] Checkpoints handled correctly
196
- - [ ] RESEARCH.md committed on completion
356
+ - [ ] Conflicts reconciled (with user input if needed)
357
+ - [ ] RESEARCH.md synthesized and written
358
+ - [ ] 3 agents spawned in parallel (external-docs, codebase-patterns, best-practices)
359
+ - [ ] All 3 agent results received
360
+ - [ ] RESEARCH.md committed
197
361
  - [ ] User knows next steps
198
362
  </success_criteria>
@@ -61,6 +61,7 @@ Phase: $ARGUMENTS (optional)
61
61
  - Generate UAT fixes patch
62
62
  - Restore user's pre-existing work (if stashed)
63
63
  - Commit UAT.md, present summary
64
+ - **Update knowledge pitfalls** — if significant UAT issues (blocker/major) were fixed, append pitfall entries to relevant knowledge files
64
65
 
65
66
  10. **Update last command**
66
67
  - Update `.planning/STATE.md` Last Command field
@@ -82,18 +83,11 @@ Phase: $ARGUMENTS (optional)
82
83
  </anti_patterns>
83
84
 
84
85
  <success_criteria>
85
- - [ ] Dirty tree handled at start (stash/commit/abort)
86
- - [ ] Tests extracted from SUMMARY.md and classified
87
- - [ ] Tests batched by mock requirements
88
- - [ ] Mocks applied inline when needed (1-4 direct, 5+ via subagent)
89
- - [ ] Tests presented in batches of 4 using AskUserQuestion
90
- - [ ] Issues investigated with lightweight check first
91
- - [ ] Simple issues fixed inline with proper commit message
92
- - [ ] Complex issues escalated to fixer subagent
93
- - [ ] Failed re-tests get 2 retries then options
94
- - [ ] Stash conflicts auto-resolved to fix version
95
- - [ ] Mocks reverted on completion (git checkout)
86
+ - [ ] Mocks stashed before fixing, restored after (git stash push/pop cycle)
87
+ - [ ] Stash conflicts auto-resolved to fix version (git checkout --theirs)
88
+ - [ ] Blocked tests re-presented after blocking issues resolved
89
+ - [ ] Failed re-tests get 2 retries then options (tracked via retry_count)
90
+ - [ ] All mocks reverted on completion (git checkout -- <mocked_files>)
96
91
  - [ ] UAT fixes patch generated
97
- - [ ] User's pre-existing work restored
98
- - [ ] UAT.md committed with final summary
92
+ - [ ] User's pre-existing work restored from stash
99
93
  </success_criteria>