@trespies-source/dojo-genesis-plugin 1.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 (209) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/LICENSE +21 -0
  3. package/README.md +204 -0
  4. package/dist/hooks/after-tool-call/handler.d.ts +4 -0
  5. package/dist/hooks/after-tool-call/handler.d.ts.map +1 -0
  6. package/dist/hooks/after-tool-call/handler.js +37 -0
  7. package/dist/hooks/after-tool-call/handler.js.map +1 -0
  8. package/dist/hooks/agent-end/handler.d.ts +4 -0
  9. package/dist/hooks/agent-end/handler.d.ts.map +1 -0
  10. package/dist/hooks/agent-end/handler.js +16 -0
  11. package/dist/hooks/agent-end/handler.js.map +1 -0
  12. package/dist/hooks/before-agent-start/handler.d.ts +4 -0
  13. package/dist/hooks/before-agent-start/handler.d.ts.map +1 -0
  14. package/dist/hooks/before-agent-start/handler.js +81 -0
  15. package/dist/hooks/before-agent-start/handler.js.map +1 -0
  16. package/dist/index.d.ts +18 -0
  17. package/dist/index.d.ts.map +1 -0
  18. package/dist/index.js +35 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/src/commands/archive.d.ts +4 -0
  21. package/dist/src/commands/archive.d.ts.map +1 -0
  22. package/dist/src/commands/archive.js +20 -0
  23. package/dist/src/commands/archive.js.map +1 -0
  24. package/dist/src/commands/init.d.ts +4 -0
  25. package/dist/src/commands/init.d.ts.map +1 -0
  26. package/dist/src/commands/init.js +57 -0
  27. package/dist/src/commands/init.js.map +1 -0
  28. package/dist/src/commands/list.d.ts +4 -0
  29. package/dist/src/commands/list.d.ts.map +1 -0
  30. package/dist/src/commands/list.js +9 -0
  31. package/dist/src/commands/list.js.map +1 -0
  32. package/dist/src/commands/router.d.ts +3 -0
  33. package/dist/src/commands/router.d.ts.map +1 -0
  34. package/dist/src/commands/router.js +83 -0
  35. package/dist/src/commands/router.js.map +1 -0
  36. package/dist/src/commands/skill-invoke.d.ts +4 -0
  37. package/dist/src/commands/skill-invoke.d.ts.map +1 -0
  38. package/dist/src/commands/skill-invoke.js +26 -0
  39. package/dist/src/commands/skill-invoke.js.map +1 -0
  40. package/dist/src/commands/status.d.ts +4 -0
  41. package/dist/src/commands/status.d.ts.map +1 -0
  42. package/dist/src/commands/status.js +42 -0
  43. package/dist/src/commands/status.js.map +1 -0
  44. package/dist/src/commands/switch.d.ts +4 -0
  45. package/dist/src/commands/switch.d.ts.map +1 -0
  46. package/dist/src/commands/switch.js +20 -0
  47. package/dist/src/commands/switch.js.map +1 -0
  48. package/dist/src/orchestration/tool-registry.d.ts +18 -0
  49. package/dist/src/orchestration/tool-registry.d.ts.map +1 -0
  50. package/dist/src/orchestration/tool-registry.js +153 -0
  51. package/dist/src/orchestration/tool-registry.js.map +1 -0
  52. package/dist/src/skills/catalog.d.ts +9 -0
  53. package/dist/src/skills/catalog.d.ts.map +1 -0
  54. package/dist/src/skills/catalog.js +251 -0
  55. package/dist/src/skills/catalog.js.map +1 -0
  56. package/dist/src/state/manager.d.ts +19 -0
  57. package/dist/src/state/manager.d.ts.map +1 -0
  58. package/dist/src/state/manager.js +114 -0
  59. package/dist/src/state/manager.js.map +1 -0
  60. package/dist/src/state/migrations.d.ts +3 -0
  61. package/dist/src/state/migrations.d.ts.map +1 -0
  62. package/dist/src/state/migrations.js +8 -0
  63. package/dist/src/state/migrations.js.map +1 -0
  64. package/dist/src/state/types.d.ts +62 -0
  65. package/dist/src/state/types.d.ts.map +1 -0
  66. package/dist/src/state/types.js +2 -0
  67. package/dist/src/state/types.js.map +1 -0
  68. package/dist/src/ui/chat-formatter.d.ts +11 -0
  69. package/dist/src/ui/chat-formatter.d.ts.map +1 -0
  70. package/dist/src/ui/chat-formatter.js +39 -0
  71. package/dist/src/ui/chat-formatter.js.map +1 -0
  72. package/dist/src/utils/file-ops.d.ts +6 -0
  73. package/dist/src/utils/file-ops.d.ts.map +1 -0
  74. package/dist/src/utils/file-ops.js +38 -0
  75. package/dist/src/utils/file-ops.js.map +1 -0
  76. package/dist/src/utils/markdown.d.ts +2 -0
  77. package/dist/src/utils/markdown.d.ts.map +1 -0
  78. package/dist/src/utils/markdown.js +11 -0
  79. package/dist/src/utils/markdown.js.map +1 -0
  80. package/dist/src/utils/validation.d.ts +7 -0
  81. package/dist/src/utils/validation.d.ts.map +1 -0
  82. package/dist/src/utils/validation.js +29 -0
  83. package/dist/src/utils/validation.js.map +1 -0
  84. package/dist/tests/__mocks__/openclaw-types.d.ts +54 -0
  85. package/dist/tests/__mocks__/openclaw-types.d.ts.map +1 -0
  86. package/dist/tests/__mocks__/openclaw-types.js +29 -0
  87. package/dist/tests/__mocks__/openclaw-types.js.map +1 -0
  88. package/hooks/after-tool-call/HOOK.md +7 -0
  89. package/hooks/after-tool-call/handler.ts +41 -0
  90. package/hooks/agent-end/HOOK.md +7 -0
  91. package/hooks/agent-end/handler.ts +18 -0
  92. package/hooks/before-agent-start/HOOK.md +7 -0
  93. package/hooks/before-agent-start/handler.ts +133 -0
  94. package/openclaw.plugin.json +19 -0
  95. package/package.json +61 -0
  96. package/skills/agent-teaching/SKILL.md +583 -0
  97. package/skills/agent-teaching/claw.json +12 -0
  98. package/skills/compression-ritual/SKILL.md +136 -0
  99. package/skills/compression-ritual/claw.json +12 -0
  100. package/skills/context-ingestion/SKILL.md +109 -0
  101. package/skills/context-ingestion/claw.json +12 -0
  102. package/skills/decision-propagation/SKILL.md +130 -0
  103. package/skills/decision-propagation/claw.json +12 -0
  104. package/skills/documentation-audit/SKILL.md +146 -0
  105. package/skills/documentation-audit/claw.json +12 -0
  106. package/skills/era-architecture/SKILL.md +166 -0
  107. package/skills/era-architecture/claw.json +12 -0
  108. package/skills/file-management/SKILL.md +127 -0
  109. package/skills/file-management/claw.json +12 -0
  110. package/skills/frontend-from-backend/SKILL.md +127 -0
  111. package/skills/frontend-from-backend/claw.json +12 -0
  112. package/skills/handoff-protocol/SKILL.md +168 -0
  113. package/skills/handoff-protocol/claw.json +12 -0
  114. package/skills/health-audit/SKILL.md +123 -0
  115. package/skills/health-audit/claw.json +12 -0
  116. package/skills/implementation-prompt/SKILL.md +361 -0
  117. package/skills/implementation-prompt/claw.json +12 -0
  118. package/skills/iterative-scouting/SKILL.md +106 -0
  119. package/skills/iterative-scouting/claw.json +12 -0
  120. package/skills/memory-garden/SKILL.md +470 -0
  121. package/skills/memory-garden/claw.json +12 -0
  122. package/skills/multi-surface-strategy/SKILL.md +288 -0
  123. package/skills/multi-surface-strategy/claw.json +12 -0
  124. package/skills/parallel-tracks/SKILL.md +152 -0
  125. package/skills/parallel-tracks/claw.json +12 -0
  126. package/skills/patient-learning-protocol/SKILL.md +438 -0
  127. package/skills/patient-learning-protocol/claw.json +12 -0
  128. package/skills/planning-with-files/SKILL.md +139 -0
  129. package/skills/planning-with-files/claw.json +12 -0
  130. package/skills/pre-implementation-checklist/SKILL.md +156 -0
  131. package/skills/pre-implementation-checklist/claw.json +12 -0
  132. package/skills/process-extraction/SKILL.md +148 -0
  133. package/skills/process-extraction/claw.json +12 -0
  134. package/skills/process-extraction/references/process_example_template.md +40 -0
  135. package/skills/product-positioning/SKILL.md +293 -0
  136. package/skills/product-positioning/claw.json +12 -0
  137. package/skills/project-exploration/SKILL.md +168 -0
  138. package/skills/project-exploration/claw.json +12 -0
  139. package/skills/release-specification/SKILL.md +645 -0
  140. package/skills/release-specification/claw.json +12 -0
  141. package/skills/repo-context-sync/SKILL.md +362 -0
  142. package/skills/repo-context-sync/claw.json +12 -0
  143. package/skills/repo-context-sync/references/file_hierarchy_patterns.md +186 -0
  144. package/skills/repo-context-sync/references/zenflow_repo_patterns.md +328 -0
  145. package/skills/repo-context-sync/scripts/context_mapper.py +251 -0
  146. package/skills/repo-context-sync/scripts/diff_tracker.py +187 -0
  147. package/skills/repo-context-sync/scripts/smart_clone.sh +52 -0
  148. package/skills/repo-context-sync/templates/context_summary.md +58 -0
  149. package/skills/repo-status/SKILL.md +240 -0
  150. package/skills/repo-status/claw.json +12 -0
  151. package/skills/repo-status/references/semantic-clusters.md +159 -0
  152. package/skills/repo-status/references/status-template.md +214 -0
  153. package/skills/research-modes/SKILL.md +515 -0
  154. package/skills/research-modes/claw.json +12 -0
  155. package/skills/research-synthesis/SKILL.md +110 -0
  156. package/skills/research-synthesis/claw.json +12 -0
  157. package/skills/retrospective/SKILL.md +152 -0
  158. package/skills/retrospective/claw.json +12 -0
  159. package/skills/seed-extraction/SKILL.md +419 -0
  160. package/skills/seed-extraction/claw.json +12 -0
  161. package/skills/seed-library/SKILL.md +424 -0
  162. package/skills/seed-library/claw.json +12 -0
  163. package/skills/seed-library/references/seed_catalog.md +171 -0
  164. package/skills/seed-library/scripts/apply_seed.py +129 -0
  165. package/skills/seed-library/scripts/suggest_seeds.py +183 -0
  166. package/skills/seed-library/seeds/01_three_tiered_governance.md +90 -0
  167. package/skills/seed-library/seeds/02_harness_trace.md +135 -0
  168. package/skills/seed-library/seeds/03_context_iceberg.md +120 -0
  169. package/skills/seed-library/seeds/04_agent_connect.md +106 -0
  170. package/skills/seed-library/seeds/05_go_live_bundles.md +40 -0
  171. package/skills/seed-library/seeds/06_cost_guard.md +40 -0
  172. package/skills/seed-library/seeds/07_safety_switch.md +41 -0
  173. package/skills/seed-library/seeds/08_implicit_perspective_extraction.md +41 -0
  174. package/skills/seed-library/seeds/09_mode_based_complexity_gating.md +46 -0
  175. package/skills/seed-library/seeds/10_shared_infrastructure.md +75 -0
  176. package/skills/seed-library/seeds/11_voice_before_structure.md +74 -0
  177. package/skills/seed-library/seeds/12_pointer_directories.md +81 -0
  178. package/skills/seed-library/seeds/13_granular_visibility.md +82 -0
  179. package/skills/seed-library/seeds/meta_governance_multiplies_velocity.md +43 -0
  180. package/skills/seed-to-skill-converter/SKILL.md +113 -0
  181. package/skills/seed-to-skill-converter/claw.json +12 -0
  182. package/skills/semantic-clusters/SKILL.md +246 -0
  183. package/skills/semantic-clusters/claw.json +12 -0
  184. package/skills/semantic-clusters/references/verb-catalog.md +267 -0
  185. package/skills/skill-audit-upgrade/SKILL.md +427 -0
  186. package/skills/skill-audit-upgrade/claw.json +12 -0
  187. package/skills/skill-creation/LICENSE.txt +202 -0
  188. package/skills/skill-creation/SKILL.md +252 -0
  189. package/skills/skill-creation/claw.json +12 -0
  190. package/skills/skill-creation/references/output-patterns.md +82 -0
  191. package/skills/skill-creation/references/progressive-disclosure-patterns.md +79 -0
  192. package/skills/skill-creation/references/workflows.md +28 -0
  193. package/skills/skill-creation/scripts/init_skill.py +305 -0
  194. package/skills/skill-creation/scripts/quick_validate.py +134 -0
  195. package/skills/skill-maintenance/SKILL.md +413 -0
  196. package/skills/skill-maintenance/claw.json +12 -0
  197. package/skills/spec-constellation-to-prompt-suite/SKILL.md +174 -0
  198. package/skills/spec-constellation-to-prompt-suite/claw.json +12 -0
  199. package/skills/status-template/SKILL.md +211 -0
  200. package/skills/status-template/claw.json +12 -0
  201. package/skills/status-template/references/complete-template.md +191 -0
  202. package/skills/status-writing/SKILL.md +161 -0
  203. package/skills/status-writing/claw.json +12 -0
  204. package/skills/strategic-scout/SKILL.md +163 -0
  205. package/skills/strategic-scout/claw.json +12 -0
  206. package/skills/strategic-to-tactical-workflow/SKILL.md +391 -0
  207. package/skills/strategic-to-tactical-workflow/claw.json +12 -0
  208. package/skills/workspace-navigation/SKILL.md +622 -0
  209. package/skills/workspace-navigation/claw.json +12 -0
@@ -0,0 +1,288 @@
1
+ ---
2
+ name: multi-surface-strategy
3
+ description: Design a coherent multi-surface strategy where desktop, mobile, and web each have unique complementary roles. Use when planning multiple surfaces or adding a new platform. Trigger phrases: 'design the multi-surface strategy', 'map surfaces to contexts not devices', 'what is each surface uniquely good at', 'define the handoffs between surfaces'.
4
+ ---
5
+
6
+ > **OpenClaw Integration:** This skill is invoked by the Dojo Genesis plugin via `/dojo run multi-surface-strategy`.
7
+ > The agent receives project context automatically via the `before_agent_start` hook.
8
+ > Use `dojo_get_context` for full state, `dojo_save_artifact` to persist outputs,
9
+ > and `dojo_update_state` to record phase transitions and decisions.
10
+
11
+ # Multi-Surface Product Strategy Skill
12
+
13
+ **Version:** 1.1
14
+ **Created:** 2026-02-07
15
+ **Updated:** 2026-02-07
16
+ **Author:** Manus AI
17
+ **Purpose:** To guide the design of a coherent multi-surface product strategy where each surface (e.g., desktop, mobile, web) has a unique, complementary role.
18
+
19
+ ---
20
+
21
+ ## I. The Philosophy: Complement, Don't Compete
22
+
23
+ In a multi-surface world, the biggest mistake is to build the same product on every device. A desktop app, a mobile app, and a web app should not be clones of each other. They should be **complementary surfaces**, each optimized for the unique context in which it will be used.
24
+
25
+ This skill is about designing a product strategy where the whole is greater than the sum of its parts. We will define the unique "job-to-be-done" for each surface and then design a seamless experience for users as they move between them.
26
+
27
+ **The core principle:** Surfaces are for contexts, not devices.
28
+
29
+ ---
30
+
31
+ ## II. When to Use This Skill
32
+
33
+ - When planning a new product that will exist on multiple surfaces
34
+ - When adding a new surface (e.g., a mobile app) to an existing product
35
+ - When a multi-surface product feels fragmented or confusing
36
+ - During a strategic review of a product line
37
+ - After using `/product-positioning` to identify unique value propositions
38
+
39
+ ---
40
+
41
+ ## III. The Workflow
42
+
43
+ This is a 5-step workflow for designing a multi-surface product strategy.
44
+
45
+ ### Step 1: Identify the Surfaces
46
+
47
+ **Goal:** List all current and potential product surfaces.
48
+
49
+ **Actions:**
50
+ - List the existing surfaces (e.g., web app)
51
+ - Brainstorm potential new surfaces (e.g., desktop app, mobile app, browser extension)
52
+ - Consider unconventional surfaces (e.g., CLI, API, voice interface)
53
+
54
+ **Output:** A complete list of all surfaces to consider
55
+
56
+ ---
57
+
58
+ ### Step 2: Define the Core Job-to-be-Done for Each Surface
59
+
60
+ **Goal:** For each surface, define the primary job that users will hire it to do, based on its unique context.
61
+
62
+ **Actions:**
63
+ - For **Desktop**, define the job as "deep work, complex orchestration, sustained focus"
64
+ - For **Mobile**, define the job as "on-the-go quick capture, lightweight orchestration, glanceable status"
65
+ - For **Web**, define the job as "discovery, onboarding, cross-platform access without installation"
66
+ - For each surface, ask: "What is this uniquely good at that the others aren't?"
67
+
68
+ **Output:** A clear job-to-be-done statement for each surface
69
+
70
+ ---
71
+
72
+ ### Step 3: Map Features to Surfaces
73
+
74
+ **Goal:** Map existing and potential features to the surface where they best fit, based on the core job-to-be-done.
75
+
76
+ **Actions:**
77
+ - Create a table with surfaces as columns and features as rows
78
+ - For each feature, decide which surface is its primary home
79
+ - Identify features that should exist on multiple surfaces (with different implementations)
80
+ - Identify features that should be surface-exclusive
81
+
82
+ **Output:** A feature-to-surface mapping table
83
+
84
+ **Example:**
85
+
86
+ | Feature | Desktop | Mobile | Web |
87
+ |---------|---------|--------|-----|
88
+ | Complex multi-agent orchestration | Primary | - | - |
89
+ | Quick task capture | Secondary | Primary | Secondary |
90
+ | Status monitoring | Secondary | Primary | - |
91
+ | Deep configuration | Primary | - | Secondary |
92
+ | Onboarding tutorial | - | - | Primary |
93
+
94
+ ---
95
+
96
+ ### Step 4: Design the Handoffs
97
+
98
+ **Goal:** Design the mechanisms for seamless handoffs between surfaces.
99
+
100
+ **Actions:**
101
+ - Define the sync architecture (e.g., cloud-based, real-time, eventual consistency)
102
+ - Design the user experience for handoffs (e.g., "Continue on Desktop" button on mobile)
103
+ - Identify handoff triggers (e.g., "This task is too complex for mobile, switch to desktop")
104
+ - Design the visual/notification system for cross-surface awareness
105
+
106
+ **Output:** A handoff design document with sync architecture and UX patterns
107
+
108
+ ---
109
+
110
+ ### Step 5: Define the Business Model
111
+
112
+ **Goal:** Define the business model for the multi-surface strategy.
113
+
114
+ **Actions:**
115
+ - Decide which surfaces are free, paid, or part of a subscription
116
+ - Define the pricing tiers and what's included in each
117
+ - Consider surface-specific pricing (e.g., desktop is core, mobile is premium add-on)
118
+ - Plan the rollout timeline (e.g., desktop first, mobile 4-6 weeks later)
119
+
120
+ **Output:** A business model document with pricing and rollout plan
121
+
122
+ ---
123
+
124
+ ## IV. Best Practices
125
+
126
+ ### 1. Surfaces are for Contexts, Not Devices
127
+
128
+ **Why:** Users don't think "I need the mobile version." They think "I need to capture this idea quickly while I'm walking."
129
+
130
+ **How:** Frame each surface by its context of use, not by its device type.
131
+
132
+ ---
133
+
134
+ ### 2. The Handoff is the Feature
135
+
136
+ **Why:** The most magical part of a multi-surface strategy is the seamless handoff between surfaces. This is what makes the whole greater than the sum of its parts.
137
+
138
+ **How:** Invest heavily in sync architecture and handoff UX. Make it feel like one product, not three separate apps.
139
+
140
+ ---
141
+
142
+ ### 3. Simplicity Sells
143
+
144
+ **Why:** Each surface should be ruthlessly simple, focused on its core job-to-be-done. Feature bloat kills the magic.
145
+
146
+ **How:** Resist the temptation to add every feature to every surface. Say no to features that don't align with the surface's core job.
147
+
148
+ ---
149
+
150
+ ### 4. Start with One Surface, Expand Strategically
151
+
152
+ **Why:** Building multiple surfaces simultaneously is expensive and risky. Start with the core surface, prove the value, then expand.
153
+
154
+ **How:** Launch desktop first (for deep work), then add mobile (for on-the-go) once desktop is stable.
155
+
156
+ ---
157
+
158
+ ### 5. Design for Asymmetry
159
+
160
+ **Why:** Symmetrical multi-surface strategies (same features everywhere) are boring and wasteful.
161
+
162
+ **How:** Embrace asymmetry. Make each surface uniquely valuable. Users should want both, not just one.
163
+
164
+ ---
165
+
166
+ ## V. Quality Checklist
167
+
168
+ Before delivering the strategy, ensure you can answer "yes" to all of the following questions:
169
+
170
+ - [ ] Have you identified all potential product surfaces?
171
+ - [ ] Have you defined a clear and unique job-to-be-done for each surface?
172
+ - [ ] Have you mapped all key features to their primary surface?
173
+ - [ ] Have you designed a seamless handoff experience between surfaces?
174
+ - [ ] Have you defined a clear and sustainable business model for the multi-surface strategy?
175
+ - [ ] Have you planned a realistic rollout timeline?
176
+ - [ ] Have you identified which features should be surface-exclusive?
177
+
178
+ ---
179
+
180
+ ## VI. Example: Dojo Genesis Desktop + Mobile Strategy
181
+
182
+ **The Problem:** We had a web app but needed to decide whether to build desktop, mobile, or both.
183
+
184
+ **The Process:**
185
+
186
+ 1. **Identified Surfaces:** Desktop (Electron), Mobile (PWA/Native), Web (existing)
187
+ 2. **Defined Jobs:**
188
+ - Desktop: Deep work, complex multi-agent orchestration, sustained focus sessions
189
+ - Mobile: On-the-go task capture, quick status checks, lightweight orchestration
190
+ - Web: Discovery, onboarding, lightweight access without installation
191
+ 3. **Mapped Features:**
192
+ - Complex orchestration → Desktop primary
193
+ - Quick capture → Mobile primary
194
+ - Onboarding → Web primary
195
+ 4. **Designed Handoffs:**
196
+ - Cloud sync via backend API
197
+ - "Continue on Desktop" button in mobile app
198
+ - Real-time status updates across surfaces
199
+ 5. **Defined Business Model:**
200
+ - Desktop: Core product ($20/month)
201
+ - Mobile: Premium tier (separate subscription, launched 4-6 weeks after desktop)
202
+ - Web: Free tier for discovery
203
+
204
+ **The Outcome:** A clear, asymmetric multi-surface strategy where each surface has a unique value proposition. Desktop for deep work, mobile for on-the-go.
205
+
206
+ **Key Decision:** We chose Route 4 (Hybrid - PWA now, native later) to de-risk mobile development while shipping desktop first.
207
+
208
+ ---
209
+
210
+ ## VII. Common Pitfalls to Avoid
211
+
212
+ ### Pitfall 1: Building the Same Product on Every Surface
213
+
214
+ **Problem:** Users don't see the value in having multiple surfaces if they're all the same.
215
+
216
+ **Solution:** Define unique jobs-to-be-done for each surface and map features accordingly.
217
+
218
+ ---
219
+
220
+ ### Pitfall 2: Ignoring the Handoff Experience
221
+
222
+ **Problem:** Users get frustrated when they can't seamlessly move between surfaces.
223
+
224
+ **Solution:** Invest in sync architecture and handoff UX from day one.
225
+
226
+ ---
227
+
228
+ ### Pitfall 3: Feature Bloat on Every Surface
229
+
230
+ **Problem:** Trying to add every feature to every surface leads to complexity and confusion.
231
+
232
+ **Solution:** Be ruthlessly simple. Each surface should focus on its core job-to-be-done.
233
+
234
+ ---
235
+
236
+ ### Pitfall 4: Building All Surfaces Simultaneously
237
+
238
+ **Problem:** Building multiple surfaces at once is expensive, risky, and dilutes focus.
239
+
240
+ **Solution:** Start with one core surface, prove the value, then expand strategically.
241
+
242
+ ---
243
+
244
+ ### Pitfall 5: Symmetrical Pricing
245
+
246
+ **Problem:** Charging the same for all surfaces doesn't reflect their different value propositions.
247
+
248
+ **Solution:** Consider surface-specific pricing (e.g., desktop as core, mobile as premium add-on).
249
+
250
+ ---
251
+
252
+ ## VIII. Related Skills
253
+
254
+ - **`product-positioning`** - Use this first to identify the unique value of each surface
255
+ - **`strategic-scout`** - Use this to explore multiple routes for multi-surface strategy
256
+ - **`iterative-scouting`** - Use this to refine the strategy based on feedback
257
+ - **`release-specification`** - Use this to write detailed specs for each surface
258
+ - **`parallel-tracks`** - Use this to build multiple surfaces in parallel (if needed)
259
+
260
+ ---
261
+
262
+ ## IX. Skill Metadata
263
+
264
+ **Token Savings:** ~5,000-8,000 tokens per multi-surface strategy session
265
+ **Quality Impact:** Ensures coherent, complementary multi-surface strategies
266
+ **Maintenance:** Update when new surface types emerge (e.g., AR/VR, voice)
267
+
268
+ **When to Update This Skill:**
269
+ - After completing 2-3 multi-surface strategies (to incorporate new patterns)
270
+ - When a new surface type becomes mainstream (e.g., AR glasses)
271
+ - When handoff patterns evolve (e.g., new sync technologies)
272
+
273
+ ---
274
+
275
+ **Last Updated:** 2026-02-07
276
+ **Maintained By:** Manus AI
277
+ **Status:** Active
278
+ ---
279
+
280
+ ## OpenClaw Tool Integration
281
+
282
+ When running inside the Dojo Genesis plugin:
283
+
284
+ 1. **Start** by calling `dojo_get_context` to retrieve full project state, history, and artifacts
285
+ 2. **During** the skill, follow the workflow steps documented above
286
+ 3. **Save** outputs using `dojo_save_artifact` with the `artifacts` output directory
287
+ 4. **Update** project state by calling `dojo_update_state` to record skill completion and any phase transitions
288
+
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "dojo-genesis-plugin-multi-surface-strategy",
3
+ "version": "1.0.0",
4
+ "description": "Design coherent multi-surface strategies",
5
+ "author": "dojo-genesis",
6
+ "license": "MIT",
7
+ "permissions": [],
8
+ "entry": "SKILL.md",
9
+ "tags": ["dojo-genesis", "orchestration", "tools", "strategy"],
10
+ "models": ["claude-*", "gpt-*", "gemini-*"],
11
+ "minOpenClawVersion": "2026.1.0"
12
+ }
@@ -0,0 +1,152 @@
1
+ ---
2
+ name: parallel-tracks
3
+ description: Split large tasks into independent parallel tracks to maximize velocity. Use when coordinating multiple parallel development streams or organizing dependent tracks. Trigger phrases: 'split into parallel tracks', 'organize these tracks', 'phased parallelism', 'coordinate parallel development', 'define track dependencies'.
4
+ ---
5
+
6
+ # Parallel Tracks Pattern Skill
7
+
8
+ > **OpenClaw Integration:** This skill is invoked by the Dojo Genesis plugin via `/dojo tracks` or `/dojo run parallel-tracks`.
9
+ > The agent receives project context automatically via the `before_agent_start` hook.
10
+ > Use `dojo_get_context` for full state, `dojo_save_artifact` to persist outputs,
11
+ > and `dojo_update_state` to record phase transitions and decisions.
12
+
13
+ **Version:** 1.1
14
+ **Created:** February 7, 2026
15
+ **Author:** Manus AI
16
+ **Purpose:** To provide a structured, repeatable process for planning and executing large development tasks in parallel, significantly reducing timelines while improving focus and architectural discipline.
17
+
18
+ ---
19
+
20
+ ## I. The Philosophy: From Sequence to Simultaneity
21
+
22
+ In complex software development, the default is often sequential execution: one task must finish before the next can begin. This creates bottlenecks, extends timelines, and reduces the cognitive focus of the development team. The Parallel Tracks Pattern is a shift in mindset from **sequence to simultaneity**.
23
+
24
+ This skill provides a framework for identifying natural boundaries within a large body of work and splitting it into independent, self-contained tracks that can be executed concurrently. It is not merely about doing things at the same time; it is a disciplined practice of **upfront architectural planning, rigorous specification, and clear dependency management** that makes parallel execution possible. By investing in this discipline, we transform development from a linear relay race into a coordinated, multi-pronged advance, multiplying velocity without sacrificing quality.
25
+
26
+ ---
27
+
28
+ ## II. When to Use This Skill
29
+
30
+ This skill is most effective when planning a major release, a new feature with multiple components, or any large-scale development effort. Use this skill when the following conditions are met:
31
+
32
+ - **The task is large enough to benefit from parallelization.** A good rule of thumb is any work estimated to take more than two weeks if executed sequentially.
33
+ - **Clear separation of concerns exists.** The work can be cleanly divided by layer (frontend vs. backend), by feature (auth vs. orchestration), or by component (header vs. chat area).
34
+ - **Multiple agents or developers are available** to work on the tracks simultaneously.
35
+ - **The tracks have minimal dependencies on each other.** While some dependencies are expected, the work should not be so tightly coupled that parallel execution is impossible.
36
+ - **You are committed to writing clear, self-contained specifications** for each track.
37
+
38
+ ---
39
+
40
+ ## III. The Workflow
41
+
42
+ ### Step 1: Identify Natural Boundaries
43
+
44
+ Begin by analyzing the total scope of work. Look for clean separation points that allow you to divide the project into 2-4 substantial tracks. Avoid over-parallelization; each track should represent a meaningful chunk of work (e.g., 500+ lines of code or 3+ days of effort).
45
+
46
+ **Common Boundaries:**
47
+ - **By Layer:** `frontend`, `backend`, `database`, `ci-cd`
48
+ - **By Feature:** `authentication`, `orchestration-engine`, `user-interface`
49
+ - **By Component:** `desktop-foundation`, `orchestration-ui`, `essential-features`
50
+
51
+ ### Step 2: Define Track Dependencies
52
+
53
+ Create a dependency graph to visualize the relationships between the tracks. This will determine the execution order.
54
+
55
+ 1. **Identify Independent Tracks:** These have no dependencies and can begin immediately.
56
+ 2. **Identify Dependent Tracks:** These must wait for another track to be completed.
57
+
58
+ **Example Execution Plan (from v0.0.31):**
59
+
60
+ | Phase | Track(s) | Status |
61
+ | :--- | :--- | :--- |
62
+ | **1** | Track 1: Desktop Foundation | Start Immediately |
63
+ | **2** | Track 2: Orchestration UI<br>Track 3: Essential Features | Start after Track 1 is complete |
64
+
65
+ ### Step 2.5: Organize Tracks into Phases
66
+
67
+ When tracks have dependencies, organize them into execution phases:
68
+
69
+ **Phase 0 — Foundation (Sequential):**
70
+ Track 0 remediation and shared infrastructure. This phase runs BEFORE any parallel work. Use it to:
71
+ - Close gaps identified by the pre-implementation checklist
72
+ - Create shared types, interfaces, or utilities that multiple tracks need
73
+ - Set up test infrastructure or CI/CD changes
74
+
75
+ **Phase 1 — Parallel Execution (Independent):**
76
+ Tracks with no cross-dependencies execute simultaneously. Each track has its own self-contained specification. No track needs output from another Phase 1 track.
77
+
78
+ **Phase 2 — Integration (If Needed):**
79
+ Tracks that depend on Phase 1 output. These handle cross-cutting concerns like integration testing, shared state connections, or UI composition that combines output from multiple Phase 1 tracks.
80
+
81
+ **Evidence:** v0.0.35 used 4 tracks in 2 phases. v0.2.2 used Track 0 as Phase 0 + 3 parallel tracks as Phase 1. Timeline reduction: 40-50% vs sequential.
82
+
83
+ **Key triggers:** "phased parallelism", "dependent tracks", "Phase 0 foundation", "organize into phases"
84
+
85
+ ### Step 3: Write Self-Contained Specifications
86
+
87
+ For each track, write a comprehensive specification using the `/write-implementation-prompt` or similar skill. Each specification must be a standalone document that an agent can execute without needing additional context. It must include:
88
+
89
+ - **Goal:** A clear, one-sentence mission for the track.
90
+ - **Context:** What the agent can assume exists (from the current codebase or from completed dependency tracks).
91
+ - **Requirements:** A detailed, testable list of deliverables.
92
+ - **Success Criteria:** A checklist to verify completion.
93
+ - **Non-Goals:** What the track is explicitly *not* responsible for, to prevent scope creep.
94
+
95
+ ### Step 4: Define Integration Points
96
+
97
+ In the specifications, be explicit about how the tracks will connect after they are complete. Define the shared interfaces:
98
+
99
+ - **APIs:** The exact endpoints, request/response shapes, and status codes.
100
+ - **Component Props:** The names, types, and expected behavior of props passed between components from different tracks.
101
+ - **State Shapes:** The structure of any shared state (e.g., in a React Context or Zustand store).
102
+
103
+ ### Step 5: Execute in Parallel
104
+
105
+ Commission the independent tracks to their respective agents or developers. Once they are complete, commission the dependent tracks.
106
+
107
+ ### Step 6: Integrate and Test
108
+
109
+ As tracks are completed, merge them into the main branch. After all tracks are merged, run a full suite of integration tests to verify that the defined integration points are working correctly. Fix any interface mismatches or regressions.
110
+
111
+ ---
112
+
113
+ ## IV. Best Practices
114
+
115
+ - **Aim for 2-4 Tracks:** Over-parallelizing a task can create more coordination overhead than it saves. Find the right balance.
116
+ - **Lock Interfaces Early:** Once specifications are written, treat the defined interfaces as a contract. If a change is needed, it must be communicated to all dependent tracks immediately.
117
+ - **Design for Minimal File Overlap:** To reduce Git merge conflicts, design tracks to operate on different sets of files where possible. If overlap is unavoidable, designate one track as the "merge coordinator" responsible for resolving conflicts.
118
+ - **Use a Dependency Graph:** A simple visual diagram can clarify the execution order and prevent misunderstandings.
119
+
120
+ ---
121
+
122
+ ## V. Quality Checklist
123
+
124
+ Before commissioning the tracks, ensure you can answer "yes" to all of the following questions:
125
+
126
+ 1. [ ] Is the total scope of work large enough to justify parallelization?
127
+ 2. [ ] Have you identified 2-4 substantial, well-defined tracks?
128
+ 3. [ ] Have you created a clear dependency graph and execution plan?
129
+ 4. [ ] Does each track have its own comprehensive, self-contained specification?
130
+ 5. [ ] Are the integration points (APIs, props, state) clearly defined in the specifications?
131
+ 6. [ ] Have you considered potential merge conflicts and planned for them?
132
+
133
+ If you cannot answer "yes" to all of these, revisit the planning phase before proceeding.
134
+
135
+ ---
136
+
137
+ ## OpenClaw Tool Integration
138
+
139
+ When running inside the Dojo Genesis plugin:
140
+
141
+ 1. **Start** by calling `dojo_get_context` to retrieve full project state, history, and artifacts
142
+ 2. **During** the skill execution, follow the workflow steps as documented above
143
+ 3. **Save** all outputs using `dojo_save_artifact` with appropriate artifact types:
144
+ - `scout` → type: "scout-report"
145
+ - `spec` → type: "specification"
146
+ - `tracks` → type: "track-decomposition"
147
+ - `commission` → type: "implementation-prompt"
148
+ - `retro` → type: "retrospective"
149
+ 4. **Update state** by calling `dojo_update_state` to:
150
+ - Record the skill execution in activity history
151
+ - Advance the project phase if appropriate
152
+ - Log any decisions made during the skill run
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "dojo-genesis-plugin-parallel-tracks",
3
+ "version": "1.0.0",
4
+ "description": "Decompose specs into independent parallel tracks",
5
+ "author": "dojo-genesis",
6
+ "license": "MIT",
7
+ "permissions": [],
8
+ "entry": "SKILL.md",
9
+ "tags": ["dojo-genesis", "orchestration", "pipeline", "development"],
10
+ "models": ["claude-*", "gpt-*", "gemini-*"],
11
+ "minOpenClawVersion": "2026.1.0"
12
+ }