@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.
- package/CHANGELOG.md +30 -0
- package/LICENSE +21 -0
- package/README.md +204 -0
- package/dist/hooks/after-tool-call/handler.d.ts +4 -0
- package/dist/hooks/after-tool-call/handler.d.ts.map +1 -0
- package/dist/hooks/after-tool-call/handler.js +37 -0
- package/dist/hooks/after-tool-call/handler.js.map +1 -0
- package/dist/hooks/agent-end/handler.d.ts +4 -0
- package/dist/hooks/agent-end/handler.d.ts.map +1 -0
- package/dist/hooks/agent-end/handler.js +16 -0
- package/dist/hooks/agent-end/handler.js.map +1 -0
- package/dist/hooks/before-agent-start/handler.d.ts +4 -0
- package/dist/hooks/before-agent-start/handler.d.ts.map +1 -0
- package/dist/hooks/before-agent-start/handler.js +81 -0
- package/dist/hooks/before-agent-start/handler.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/src/commands/archive.d.ts +4 -0
- package/dist/src/commands/archive.d.ts.map +1 -0
- package/dist/src/commands/archive.js +20 -0
- package/dist/src/commands/archive.js.map +1 -0
- package/dist/src/commands/init.d.ts +4 -0
- package/dist/src/commands/init.d.ts.map +1 -0
- package/dist/src/commands/init.js +57 -0
- package/dist/src/commands/init.js.map +1 -0
- package/dist/src/commands/list.d.ts +4 -0
- package/dist/src/commands/list.d.ts.map +1 -0
- package/dist/src/commands/list.js +9 -0
- package/dist/src/commands/list.js.map +1 -0
- package/dist/src/commands/router.d.ts +3 -0
- package/dist/src/commands/router.d.ts.map +1 -0
- package/dist/src/commands/router.js +83 -0
- package/dist/src/commands/router.js.map +1 -0
- package/dist/src/commands/skill-invoke.d.ts +4 -0
- package/dist/src/commands/skill-invoke.d.ts.map +1 -0
- package/dist/src/commands/skill-invoke.js +26 -0
- package/dist/src/commands/skill-invoke.js.map +1 -0
- package/dist/src/commands/status.d.ts +4 -0
- package/dist/src/commands/status.d.ts.map +1 -0
- package/dist/src/commands/status.js +42 -0
- package/dist/src/commands/status.js.map +1 -0
- package/dist/src/commands/switch.d.ts +4 -0
- package/dist/src/commands/switch.d.ts.map +1 -0
- package/dist/src/commands/switch.js +20 -0
- package/dist/src/commands/switch.js.map +1 -0
- package/dist/src/orchestration/tool-registry.d.ts +18 -0
- package/dist/src/orchestration/tool-registry.d.ts.map +1 -0
- package/dist/src/orchestration/tool-registry.js +153 -0
- package/dist/src/orchestration/tool-registry.js.map +1 -0
- package/dist/src/skills/catalog.d.ts +9 -0
- package/dist/src/skills/catalog.d.ts.map +1 -0
- package/dist/src/skills/catalog.js +251 -0
- package/dist/src/skills/catalog.js.map +1 -0
- package/dist/src/state/manager.d.ts +19 -0
- package/dist/src/state/manager.d.ts.map +1 -0
- package/dist/src/state/manager.js +114 -0
- package/dist/src/state/manager.js.map +1 -0
- package/dist/src/state/migrations.d.ts +3 -0
- package/dist/src/state/migrations.d.ts.map +1 -0
- package/dist/src/state/migrations.js +8 -0
- package/dist/src/state/migrations.js.map +1 -0
- package/dist/src/state/types.d.ts +62 -0
- package/dist/src/state/types.d.ts.map +1 -0
- package/dist/src/state/types.js +2 -0
- package/dist/src/state/types.js.map +1 -0
- package/dist/src/ui/chat-formatter.d.ts +11 -0
- package/dist/src/ui/chat-formatter.d.ts.map +1 -0
- package/dist/src/ui/chat-formatter.js +39 -0
- package/dist/src/ui/chat-formatter.js.map +1 -0
- package/dist/src/utils/file-ops.d.ts +6 -0
- package/dist/src/utils/file-ops.d.ts.map +1 -0
- package/dist/src/utils/file-ops.js +38 -0
- package/dist/src/utils/file-ops.js.map +1 -0
- package/dist/src/utils/markdown.d.ts +2 -0
- package/dist/src/utils/markdown.d.ts.map +1 -0
- package/dist/src/utils/markdown.js +11 -0
- package/dist/src/utils/markdown.js.map +1 -0
- package/dist/src/utils/validation.d.ts +7 -0
- package/dist/src/utils/validation.d.ts.map +1 -0
- package/dist/src/utils/validation.js +29 -0
- package/dist/src/utils/validation.js.map +1 -0
- package/dist/tests/__mocks__/openclaw-types.d.ts +54 -0
- package/dist/tests/__mocks__/openclaw-types.d.ts.map +1 -0
- package/dist/tests/__mocks__/openclaw-types.js +29 -0
- package/dist/tests/__mocks__/openclaw-types.js.map +1 -0
- package/hooks/after-tool-call/HOOK.md +7 -0
- package/hooks/after-tool-call/handler.ts +41 -0
- package/hooks/agent-end/HOOK.md +7 -0
- package/hooks/agent-end/handler.ts +18 -0
- package/hooks/before-agent-start/HOOK.md +7 -0
- package/hooks/before-agent-start/handler.ts +133 -0
- package/openclaw.plugin.json +19 -0
- package/package.json +61 -0
- package/skills/agent-teaching/SKILL.md +583 -0
- package/skills/agent-teaching/claw.json +12 -0
- package/skills/compression-ritual/SKILL.md +136 -0
- package/skills/compression-ritual/claw.json +12 -0
- package/skills/context-ingestion/SKILL.md +109 -0
- package/skills/context-ingestion/claw.json +12 -0
- package/skills/decision-propagation/SKILL.md +130 -0
- package/skills/decision-propagation/claw.json +12 -0
- package/skills/documentation-audit/SKILL.md +146 -0
- package/skills/documentation-audit/claw.json +12 -0
- package/skills/era-architecture/SKILL.md +166 -0
- package/skills/era-architecture/claw.json +12 -0
- package/skills/file-management/SKILL.md +127 -0
- package/skills/file-management/claw.json +12 -0
- package/skills/frontend-from-backend/SKILL.md +127 -0
- package/skills/frontend-from-backend/claw.json +12 -0
- package/skills/handoff-protocol/SKILL.md +168 -0
- package/skills/handoff-protocol/claw.json +12 -0
- package/skills/health-audit/SKILL.md +123 -0
- package/skills/health-audit/claw.json +12 -0
- package/skills/implementation-prompt/SKILL.md +361 -0
- package/skills/implementation-prompt/claw.json +12 -0
- package/skills/iterative-scouting/SKILL.md +106 -0
- package/skills/iterative-scouting/claw.json +12 -0
- package/skills/memory-garden/SKILL.md +470 -0
- package/skills/memory-garden/claw.json +12 -0
- package/skills/multi-surface-strategy/SKILL.md +288 -0
- package/skills/multi-surface-strategy/claw.json +12 -0
- package/skills/parallel-tracks/SKILL.md +152 -0
- package/skills/parallel-tracks/claw.json +12 -0
- package/skills/patient-learning-protocol/SKILL.md +438 -0
- package/skills/patient-learning-protocol/claw.json +12 -0
- package/skills/planning-with-files/SKILL.md +139 -0
- package/skills/planning-with-files/claw.json +12 -0
- package/skills/pre-implementation-checklist/SKILL.md +156 -0
- package/skills/pre-implementation-checklist/claw.json +12 -0
- package/skills/process-extraction/SKILL.md +148 -0
- package/skills/process-extraction/claw.json +12 -0
- package/skills/process-extraction/references/process_example_template.md +40 -0
- package/skills/product-positioning/SKILL.md +293 -0
- package/skills/product-positioning/claw.json +12 -0
- package/skills/project-exploration/SKILL.md +168 -0
- package/skills/project-exploration/claw.json +12 -0
- package/skills/release-specification/SKILL.md +645 -0
- package/skills/release-specification/claw.json +12 -0
- package/skills/repo-context-sync/SKILL.md +362 -0
- package/skills/repo-context-sync/claw.json +12 -0
- package/skills/repo-context-sync/references/file_hierarchy_patterns.md +186 -0
- package/skills/repo-context-sync/references/zenflow_repo_patterns.md +328 -0
- package/skills/repo-context-sync/scripts/context_mapper.py +251 -0
- package/skills/repo-context-sync/scripts/diff_tracker.py +187 -0
- package/skills/repo-context-sync/scripts/smart_clone.sh +52 -0
- package/skills/repo-context-sync/templates/context_summary.md +58 -0
- package/skills/repo-status/SKILL.md +240 -0
- package/skills/repo-status/claw.json +12 -0
- package/skills/repo-status/references/semantic-clusters.md +159 -0
- package/skills/repo-status/references/status-template.md +214 -0
- package/skills/research-modes/SKILL.md +515 -0
- package/skills/research-modes/claw.json +12 -0
- package/skills/research-synthesis/SKILL.md +110 -0
- package/skills/research-synthesis/claw.json +12 -0
- package/skills/retrospective/SKILL.md +152 -0
- package/skills/retrospective/claw.json +12 -0
- package/skills/seed-extraction/SKILL.md +419 -0
- package/skills/seed-extraction/claw.json +12 -0
- package/skills/seed-library/SKILL.md +424 -0
- package/skills/seed-library/claw.json +12 -0
- package/skills/seed-library/references/seed_catalog.md +171 -0
- package/skills/seed-library/scripts/apply_seed.py +129 -0
- package/skills/seed-library/scripts/suggest_seeds.py +183 -0
- package/skills/seed-library/seeds/01_three_tiered_governance.md +90 -0
- package/skills/seed-library/seeds/02_harness_trace.md +135 -0
- package/skills/seed-library/seeds/03_context_iceberg.md +120 -0
- package/skills/seed-library/seeds/04_agent_connect.md +106 -0
- package/skills/seed-library/seeds/05_go_live_bundles.md +40 -0
- package/skills/seed-library/seeds/06_cost_guard.md +40 -0
- package/skills/seed-library/seeds/07_safety_switch.md +41 -0
- package/skills/seed-library/seeds/08_implicit_perspective_extraction.md +41 -0
- package/skills/seed-library/seeds/09_mode_based_complexity_gating.md +46 -0
- package/skills/seed-library/seeds/10_shared_infrastructure.md +75 -0
- package/skills/seed-library/seeds/11_voice_before_structure.md +74 -0
- package/skills/seed-library/seeds/12_pointer_directories.md +81 -0
- package/skills/seed-library/seeds/13_granular_visibility.md +82 -0
- package/skills/seed-library/seeds/meta_governance_multiplies_velocity.md +43 -0
- package/skills/seed-to-skill-converter/SKILL.md +113 -0
- package/skills/seed-to-skill-converter/claw.json +12 -0
- package/skills/semantic-clusters/SKILL.md +246 -0
- package/skills/semantic-clusters/claw.json +12 -0
- package/skills/semantic-clusters/references/verb-catalog.md +267 -0
- package/skills/skill-audit-upgrade/SKILL.md +427 -0
- package/skills/skill-audit-upgrade/claw.json +12 -0
- package/skills/skill-creation/LICENSE.txt +202 -0
- package/skills/skill-creation/SKILL.md +252 -0
- package/skills/skill-creation/claw.json +12 -0
- package/skills/skill-creation/references/output-patterns.md +82 -0
- package/skills/skill-creation/references/progressive-disclosure-patterns.md +79 -0
- package/skills/skill-creation/references/workflows.md +28 -0
- package/skills/skill-creation/scripts/init_skill.py +305 -0
- package/skills/skill-creation/scripts/quick_validate.py +134 -0
- package/skills/skill-maintenance/SKILL.md +413 -0
- package/skills/skill-maintenance/claw.json +12 -0
- package/skills/spec-constellation-to-prompt-suite/SKILL.md +174 -0
- package/skills/spec-constellation-to-prompt-suite/claw.json +12 -0
- package/skills/status-template/SKILL.md +211 -0
- package/skills/status-template/claw.json +12 -0
- package/skills/status-template/references/complete-template.md +191 -0
- package/skills/status-writing/SKILL.md +161 -0
- package/skills/status-writing/claw.json +12 -0
- package/skills/strategic-scout/SKILL.md +163 -0
- package/skills/strategic-scout/claw.json +12 -0
- package/skills/strategic-to-tactical-workflow/SKILL.md +391 -0
- package/skills/strategic-to-tactical-workflow/claw.json +12 -0
- package/skills/workspace-navigation/SKILL.md +622 -0
- 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
|
+
}
|