@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,645 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: release-specification
|
|
3
|
+
description: Write production-ready, A+ quality specifications for software releases. Use when planning a release, designing system architecture, or commissioning work to an autonomous agent. Trigger phrases: 'write a release spec', 'spec this feature', 'create a release specification', 'design the architecture', 'ground this in the codebase'.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Write Release Specification Skill
|
|
7
|
+
|
|
8
|
+
> **OpenClaw Integration:** This skill is invoked by the Dojo Genesis plugin via `/dojo spec` or `/dojo run release-specification`.
|
|
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:** 2.1
|
|
14
|
+
**Created:** 2026-02-02
|
|
15
|
+
**Updated:** 2026-02-07
|
|
16
|
+
**Author:** Manus AI
|
|
17
|
+
**Purpose:** Write production-ready, A+ quality specifications for software releases
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## I. The Philosophy: Specification as Contract
|
|
22
|
+
|
|
23
|
+
A specification is not documentation—it is a **contract**. It is a formal agreement between the architect and the builder about what will be created, how it will work, and what success looks like. A vague specification invites confusion, rework, and failure. A rigorous specification is an act of respect for the builder's time and an investment in quality.
|
|
24
|
+
|
|
25
|
+
This skill transforms specification writing from a creative exercise into a disciplined engineering practice. By following this structure, we create specifications that are:
|
|
26
|
+
|
|
27
|
+
- **Comprehensive:** Every question the builder might have is answered
|
|
28
|
+
- **Precise:** Technical details are specific, not hand-wavy
|
|
29
|
+
- **Actionable:** The path from specification to implementation is clear
|
|
30
|
+
- **Testable:** Success criteria are binary and measurable
|
|
31
|
+
|
|
32
|
+
**The standard:** 111/100 (A+). Good enough is not good enough.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## II. When to Use This Skill
|
|
37
|
+
|
|
38
|
+
Use this skill when:
|
|
39
|
+
|
|
40
|
+
- **Planning a new software version or release** with multiple features or components
|
|
41
|
+
- **Designing a complex system architecture** that requires detailed documentation
|
|
42
|
+
- **Commissioning work to an autonomous agent** (e.g., Claude Code, implementation agents) that needs complete context
|
|
43
|
+
- **Coordinating parallel development tracks** where specifications serve as contracts between teams
|
|
44
|
+
- **You need to communicate technical vision** to stakeholders, developers, or future maintainers
|
|
45
|
+
|
|
46
|
+
**Do not use this skill for:**
|
|
47
|
+
- Small bug fixes or minor tweaks (use a simple task description instead)
|
|
48
|
+
- Exploratory prototypes (use scouting or rapid iteration instead)
|
|
49
|
+
- Features that are still being actively designed (finish scouting first)
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## III. The Workflow
|
|
54
|
+
|
|
55
|
+
### Decision Point: Full Template or Lean Format?
|
|
56
|
+
|
|
57
|
+
Before starting, determine the right spec format:
|
|
58
|
+
|
|
59
|
+
**Use the Full Template (Section IV) when:**
|
|
60
|
+
- The system is new or the architecture is unfamiliar
|
|
61
|
+
- The audience includes stakeholders who need context
|
|
62
|
+
- Multiple teams or agents will implement from this spec
|
|
63
|
+
- The risk profile is high (production-critical, user-facing)
|
|
64
|
+
|
|
65
|
+
**Use the Lean Format when:**
|
|
66
|
+
- The architecture is established and the audience is the implementing agent
|
|
67
|
+
- The scope is well-defined (single feature, clear boundaries)
|
|
68
|
+
- The codebase patterns are well-documented
|
|
69
|
+
- The implementing agent is familiar with the codebase
|
|
70
|
+
|
|
71
|
+
**Lean Format structure:** Route layouts, component tables, behavior lists. No preamble. "Sonnet level chunks" — direct, precise, implementable.
|
|
72
|
+
|
|
73
|
+
**Rule:** The receiving agent should not default to the full template. Match format to scope.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
### Step 1: Gather Context and Inspiration
|
|
78
|
+
|
|
79
|
+
Before writing, immerse yourself in the problem space:
|
|
80
|
+
|
|
81
|
+
1. **Read previous specifications** - Study 2-3 recent specs to understand the pattern and quality bar
|
|
82
|
+
2. **Review the codebase** - Use `/repo-context-sync` to understand the current architecture
|
|
83
|
+
3. **Identify the problem** - What pain point, user need, or strategic goal is this release addressing?
|
|
84
|
+
4. **Scout alternatives** - Use `/strategic-scout` if you're choosing between multiple approaches
|
|
85
|
+
|
|
86
|
+
**Output:** A clear understanding of the problem, the current state, and the desired future state.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
### Step 1.5: Run Current State Audit
|
|
91
|
+
|
|
92
|
+
Before writing the spec, measure the codebase. Specs describe the delta from measured reality, not from assumptions.
|
|
93
|
+
|
|
94
|
+
**Run these audits against the target codebase:**
|
|
95
|
+
|
|
96
|
+
#### Testing
|
|
97
|
+
- Test file count: `find . -name "*.test.*" | wc -l`
|
|
98
|
+
- Test framework: [check package.json or equivalent]
|
|
99
|
+
- Coverage tool: [check scripts/config]
|
|
100
|
+
|
|
101
|
+
#### Accessibility
|
|
102
|
+
- Aria/role instances: `grep -r "aria-\|role=" --include="*.tsx" | wc -l`
|
|
103
|
+
- Error boundaries: `grep -r "ErrorBoundary" --include="*.tsx" | wc -l`
|
|
104
|
+
|
|
105
|
+
#### Performance
|
|
106
|
+
- Memoization usage: `grep -r "React.memo\|useMemo\|useCallback" --include="*.tsx" | wc -l`
|
|
107
|
+
- Code splitting: `grep -r "React.lazy" --include="*.tsx" | wc -l`
|
|
108
|
+
|
|
109
|
+
#### Dependencies
|
|
110
|
+
- UI framework: [check package.json]
|
|
111
|
+
- State management: [check package.json]
|
|
112
|
+
- Animation library: [check package.json]
|
|
113
|
+
|
|
114
|
+
#### File Structure
|
|
115
|
+
- Total source files: `find src -name "*.ts" -o -name "*.tsx" | wc -l`
|
|
116
|
+
- Route count: [check router config]
|
|
117
|
+
|
|
118
|
+
**Include the results as a "Current State" section at the top of the spec.** The spec then describes what changes FROM this measured baseline.
|
|
119
|
+
|
|
120
|
+
**Key triggers:** "codebase audit", "audit before spec", "current state", "ground the spec"
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
### Step 2: Draft Vision and Goals
|
|
125
|
+
|
|
126
|
+
Start with the "why" before the "what":
|
|
127
|
+
|
|
128
|
+
1. **Write a compelling vision statement** - A single sentence that captures the essence of this release
|
|
129
|
+
2. **Explain the core insight** - 2-3 paragraphs on why this release matters
|
|
130
|
+
3. **Define specific, measurable goals** - What will be different after this release?
|
|
131
|
+
4. **List non-goals explicitly** - What is out of scope for this release?
|
|
132
|
+
|
|
133
|
+
**Output:** A clear, inspiring vision that motivates the work and sets boundaries.
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
### Step 3: Design Technical Architecture
|
|
138
|
+
|
|
139
|
+
This is the heart of the specification:
|
|
140
|
+
|
|
141
|
+
1. **Create a system overview** - How do the major components fit together?
|
|
142
|
+
2. **Design each component in detail** - For each major feature/component:
|
|
143
|
+
- Purpose and responsibility
|
|
144
|
+
- Backend implementation (Go, Python, etc.) with code examples
|
|
145
|
+
- Frontend implementation (React, etc.) with code examples
|
|
146
|
+
- API endpoints with request/response shapes
|
|
147
|
+
- Database schema (if applicable)
|
|
148
|
+
- Integration points with existing systems
|
|
149
|
+
- Performance considerations
|
|
150
|
+
3. **Write production-ready code examples** - Not pseudocode, real code that could be committed
|
|
151
|
+
|
|
152
|
+
**Output:** A complete technical design that a skilled developer could implement without asking questions.
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
### Step 4: Plan Implementation Phases
|
|
157
|
+
|
|
158
|
+
Break the work into manageable phases:
|
|
159
|
+
|
|
160
|
+
1. **Define a phased approach** - 2-4 phases with clear focus areas
|
|
161
|
+
2. **Create a week-by-week breakdown** - Specific, actionable tasks for each week
|
|
162
|
+
3. **Identify dependencies** - What must be done before other work can start?
|
|
163
|
+
4. **Define the testing strategy** - Unit, integration, E2E, performance, and manual QA plans
|
|
164
|
+
|
|
165
|
+
**Output:** A realistic timeline with clear milestones and success criteria for each phase.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
### Step 5: Assess Risks and Document
|
|
170
|
+
|
|
171
|
+
Anticipate what could go wrong:
|
|
172
|
+
|
|
173
|
+
1. **Identify major risks** - Technical, timeline, or integration risks
|
|
174
|
+
2. **Define mitigation strategies** - How will you reduce or eliminate each risk?
|
|
175
|
+
3. **Plan rollback procedures** - How will you safely undo this release if needed?
|
|
176
|
+
4. **Define monitoring and alerts** - How will you know if something goes wrong in production?
|
|
177
|
+
5. **Document user and developer documentation needs** - What needs to be written?
|
|
178
|
+
|
|
179
|
+
**Output:** A comprehensive risk assessment and contingency plan.
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
### Step 6: Review Against Checklist
|
|
184
|
+
|
|
185
|
+
Before finalizing:
|
|
186
|
+
|
|
187
|
+
1. **Run the quality checklist** (Section VI) - Ensure every item is ✅
|
|
188
|
+
2. **Get feedback** - Share with a peer or stakeholder
|
|
189
|
+
3. **Iterate** - Refine based on feedback
|
|
190
|
+
4. **Commit to repository** - Save in `docs/vX.X.X/` with a clear filename
|
|
191
|
+
|
|
192
|
+
**Output:** A finalized, A+ quality specification ready for implementation.
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## IV. The A+ Specification Template
|
|
197
|
+
|
|
198
|
+
```markdown
|
|
199
|
+
# [Project Name] v[X.X.X]: [Memorable Tagline]
|
|
200
|
+
|
|
201
|
+
**Author:** [Your Name]
|
|
202
|
+
**Status:** [Draft | Final | Approved]
|
|
203
|
+
**Created:** [Date]
|
|
204
|
+
**Grounded In:** [What this builds on - previous versions, research, feedback]
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## 1. Vision
|
|
209
|
+
|
|
210
|
+
> A single, compelling sentence that captures the essence of this release.
|
|
211
|
+
|
|
212
|
+
**The Core Insight:**
|
|
213
|
+
|
|
214
|
+
[2-3 paragraphs explaining WHY this release matters, what problem it solves, and how it advances the overall vision]
|
|
215
|
+
|
|
216
|
+
**What Makes This Different:**
|
|
217
|
+
|
|
218
|
+
[2-3 paragraphs explaining what makes this approach unique, innovative, or better than alternatives]
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## 1.5 Current State (Audit Results)
|
|
223
|
+
|
|
224
|
+
> Include measured codebase metrics here. This grounds the spec in reality.
|
|
225
|
+
|
|
226
|
+
**Testing:** [X] test files, [framework], [coverage tool]
|
|
227
|
+
**Accessibility:** [X] aria/role instances, [X] error boundaries
|
|
228
|
+
**Performance:** [X] memoization instances, [X] code splitting instances
|
|
229
|
+
**Dependencies:** [list key deps from package.json]
|
|
230
|
+
**File Structure:** [X] source files, [X] routes, [X] shared components
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## 2. Goals & Success Criteria
|
|
235
|
+
|
|
236
|
+
**Primary Goals:**
|
|
237
|
+
1. [Specific, measurable goal]
|
|
238
|
+
2. [Specific, measurable goal]
|
|
239
|
+
3. [Specific, measurable goal]
|
|
240
|
+
|
|
241
|
+
**Success Criteria:**
|
|
242
|
+
- ✅ [Concrete, testable criterion]
|
|
243
|
+
- ✅ [Concrete, testable criterion]
|
|
244
|
+
- ✅ [Concrete, testable criterion]
|
|
245
|
+
|
|
246
|
+
**Non-Goals (Out of Scope):**
|
|
247
|
+
- ❌ [What this release explicitly does NOT include]
|
|
248
|
+
- ❌ [What is deferred to future versions]
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## 3. Technical Architecture
|
|
253
|
+
|
|
254
|
+
### 3.1 System Overview
|
|
255
|
+
|
|
256
|
+
[High-level diagram or description of how components fit together]
|
|
257
|
+
|
|
258
|
+
**Key Components:**
|
|
259
|
+
1. **[Component Name]** - [Purpose and responsibility]
|
|
260
|
+
2. **[Component Name]** - [Purpose and responsibility]
|
|
261
|
+
3. **[Component Name]** - [Purpose and responsibility]
|
|
262
|
+
|
|
263
|
+
### 3.2 [Feature/Component 1] - Detailed Design
|
|
264
|
+
|
|
265
|
+
**Purpose:** [What this component does and why it's needed]
|
|
266
|
+
|
|
267
|
+
**Architecture:**
|
|
268
|
+
|
|
269
|
+
[Detailed explanation with diagrams if helpful]
|
|
270
|
+
|
|
271
|
+
**Backend Implementation (Go):**
|
|
272
|
+
|
|
273
|
+
```go
|
|
274
|
+
// Complete, production-ready code example
|
|
275
|
+
package [package_name]
|
|
276
|
+
|
|
277
|
+
type [StructName] struct {
|
|
278
|
+
Field1 string `json:"field1"`
|
|
279
|
+
Field2 int `json:"field2"`
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
func (s *[StructName]) [MethodName]() error {
|
|
283
|
+
// Implementation with error handling
|
|
284
|
+
return nil
|
|
285
|
+
}
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
**Frontend Implementation (React/TypeScript):**
|
|
289
|
+
|
|
290
|
+
```typescript
|
|
291
|
+
// Complete, production-ready code example
|
|
292
|
+
interface [InterfaceName] {
|
|
293
|
+
field1: string;
|
|
294
|
+
field2: number;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
export const [ComponentName]: React.FC<Props> = ({ prop1, prop2 }) => {
|
|
298
|
+
const [state, setState] = useState<StateType>(initialState);
|
|
299
|
+
|
|
300
|
+
// Implementation
|
|
301
|
+
|
|
302
|
+
return (
|
|
303
|
+
<div className="...">
|
|
304
|
+
{/* JSX */}
|
|
305
|
+
</div>
|
|
306
|
+
);
|
|
307
|
+
};
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
**API Endpoints:**
|
|
311
|
+
|
|
312
|
+
| Method | Endpoint | Request | Response | Purpose |
|
|
313
|
+
|--------|----------|---------|----------|---------|
|
|
314
|
+
| POST | `/api/v1/[resource]` | `{ field: value }` | `{ id: string }` | [Description] |
|
|
315
|
+
| GET | `/api/v1/[resource]/:id` | - | `{ data: object }` | [Description] |
|
|
316
|
+
|
|
317
|
+
**Database Schema (if applicable):**
|
|
318
|
+
|
|
319
|
+
```sql
|
|
320
|
+
CREATE TABLE [table_name] (
|
|
321
|
+
id TEXT PRIMARY KEY,
|
|
322
|
+
field1 TEXT NOT NULL,
|
|
323
|
+
field2 INTEGER DEFAULT 0,
|
|
324
|
+
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
325
|
+
);
|
|
326
|
+
|
|
327
|
+
CREATE INDEX idx_[field] ON [table_name]([field]);
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
**Integration Points:**
|
|
331
|
+
- Integrates with [existing component] via [method]
|
|
332
|
+
- Depends on [existing service] for [functionality]
|
|
333
|
+
- Extends [existing pattern] from v[X.X.X]
|
|
334
|
+
|
|
335
|
+
**Performance Considerations:**
|
|
336
|
+
- [Specific optimization or constraint]
|
|
337
|
+
- [Caching strategy or database indexing]
|
|
338
|
+
- [Expected latency or throughput]
|
|
339
|
+
|
|
340
|
+
### 3.3 [Feature/Component 2] - Detailed Design
|
|
341
|
+
|
|
342
|
+
[Repeat structure for each major component]
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## 4. Implementation Plan
|
|
347
|
+
|
|
348
|
+
### 4.1 Phased Approach
|
|
349
|
+
|
|
350
|
+
**Timeline:** [X] weeks
|
|
351
|
+
|
|
352
|
+
| Phase | Duration | Focus | Deliverables |
|
|
353
|
+
|-------|----------|-------|--------------|
|
|
354
|
+
| 1 | Week 1-2 | [Focus area] | [Specific deliverables] |
|
|
355
|
+
| 2 | Week 3-4 | [Focus area] | [Specific deliverables] |
|
|
356
|
+
| 3 | Week 5-6 | [Focus area] | [Specific deliverables] |
|
|
357
|
+
|
|
358
|
+
### 4.2 Week-by-Week Breakdown
|
|
359
|
+
|
|
360
|
+
**Week 1: [Focus]**
|
|
361
|
+
- [ ] Task 1: [Specific, actionable task]
|
|
362
|
+
- [ ] Task 2: [Specific, actionable task]
|
|
363
|
+
- [ ] Task 3: [Specific, actionable task]
|
|
364
|
+
|
|
365
|
+
**Success Criteria:** [What "done" looks like for this week]
|
|
366
|
+
|
|
367
|
+
**Week 2: [Focus]**
|
|
368
|
+
[Repeat structure]
|
|
369
|
+
|
|
370
|
+
[Continue for all weeks]
|
|
371
|
+
|
|
372
|
+
### 4.3 Dependencies & Prerequisites
|
|
373
|
+
|
|
374
|
+
**Required Before Starting:**
|
|
375
|
+
- ✅ [Prerequisite 1]
|
|
376
|
+
- ✅ [Prerequisite 2]
|
|
377
|
+
|
|
378
|
+
**Parallel Work:**
|
|
379
|
+
- [What can be developed simultaneously]
|
|
380
|
+
|
|
381
|
+
**Blocking Dependencies:**
|
|
382
|
+
- [What must be completed before other work can start]
|
|
383
|
+
|
|
384
|
+
### 4.4 Testing Strategy
|
|
385
|
+
|
|
386
|
+
**Unit Tests:**
|
|
387
|
+
- [Component/module to test]
|
|
388
|
+
- Target coverage: [X]%
|
|
389
|
+
|
|
390
|
+
**Integration Tests:**
|
|
391
|
+
- [Integration point to test]
|
|
392
|
+
- [Expected behavior]
|
|
393
|
+
|
|
394
|
+
**E2E Tests:**
|
|
395
|
+
- [User flow to test]
|
|
396
|
+
- [Success criteria]
|
|
397
|
+
|
|
398
|
+
**Performance Tests:**
|
|
399
|
+
- [Metric to measure]
|
|
400
|
+
- Target: [Specific number]
|
|
401
|
+
|
|
402
|
+
**Manual QA:**
|
|
403
|
+
- [Scenario to test manually]
|
|
404
|
+
- [Edge cases to verify]
|
|
405
|
+
|
|
406
|
+
---
|
|
407
|
+
|
|
408
|
+
## 5. Risk Assessment & Mitigation
|
|
409
|
+
|
|
410
|
+
| Risk | Likelihood | Impact | Mitigation Strategy |
|
|
411
|
+
|------|------------|--------|---------------------|
|
|
412
|
+
| [Risk description] | High/Med/Low | High/Med/Low | [Specific mitigation] |
|
|
413
|
+
| [Risk description] | High/Med/Low | High/Med/Low | [Specific mitigation] |
|
|
414
|
+
|
|
415
|
+
---
|
|
416
|
+
|
|
417
|
+
## 6. Rollback & Contingency
|
|
418
|
+
|
|
419
|
+
**Feature Flags:**
|
|
420
|
+
- `[flag_name]`: Controls [feature], default: `false`
|
|
421
|
+
|
|
422
|
+
**Rollback Procedure:**
|
|
423
|
+
1. [Step 1]
|
|
424
|
+
2. [Step 2]
|
|
425
|
+
3. [Step 3]
|
|
426
|
+
|
|
427
|
+
**Monitoring & Alerts:**
|
|
428
|
+
- [Metric to monitor]: Alert if [condition]
|
|
429
|
+
- [Error rate]: Alert if > [threshold]
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
## 7. Documentation & Communication
|
|
434
|
+
|
|
435
|
+
**User-Facing Documentation:**
|
|
436
|
+
- [ ] Update user guide with [new feature]
|
|
437
|
+
- [ ] Create tutorial for [workflow]
|
|
438
|
+
|
|
439
|
+
**Developer Documentation:**
|
|
440
|
+
- [ ] Update API documentation
|
|
441
|
+
- [ ] Document new database schema
|
|
442
|
+
- [ ] Add code examples to README
|
|
443
|
+
|
|
444
|
+
**Release Notes:**
|
|
445
|
+
- [ ] Prepare changelog
|
|
446
|
+
- [ ] Highlight breaking changes (if any)
|
|
447
|
+
- [ ] Include migration guide (if needed)
|
|
448
|
+
|
|
449
|
+
---
|
|
450
|
+
|
|
451
|
+
## 8. Appendices
|
|
452
|
+
|
|
453
|
+
### 8.1 Related Work & Inspiration
|
|
454
|
+
|
|
455
|
+
- [Project/Paper]: [What we learned from it]
|
|
456
|
+
- [Tool/System]: [How it influenced this design]
|
|
457
|
+
|
|
458
|
+
### 8.2 Future Considerations
|
|
459
|
+
|
|
460
|
+
**v[X+1] Candidates:**
|
|
461
|
+
- [Feature that didn't make this release but is planned]
|
|
462
|
+
- [Enhancement that can build on this foundation]
|
|
463
|
+
|
|
464
|
+
### 8.3 Open Questions
|
|
465
|
+
|
|
466
|
+
- [ ] [Question that needs resolution before or during implementation]
|
|
467
|
+
- [ ] [Decision that can be made during development]
|
|
468
|
+
|
|
469
|
+
### 8.4 References
|
|
470
|
+
|
|
471
|
+
1. [Link to related spec]
|
|
472
|
+
2. [Link to research paper]
|
|
473
|
+
3. [Link to GitHub issue or discussion]
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
---
|
|
477
|
+
|
|
478
|
+
## V. Best Practices
|
|
479
|
+
|
|
480
|
+
### 1. Start with Vision, Not Features
|
|
481
|
+
|
|
482
|
+
**Why:** Features without vision are just a list of tasks. Vision provides meaning and direction.
|
|
483
|
+
|
|
484
|
+
**How:** Write the vision statement first. If you can't articulate why this release matters in one sentence, you're not ready to write the spec.
|
|
485
|
+
|
|
486
|
+
---
|
|
487
|
+
|
|
488
|
+
### 2. Write Production-Ready Code Examples
|
|
489
|
+
|
|
490
|
+
**Why:** Pseudocode leaves too much room for interpretation. Real code is a contract.
|
|
491
|
+
|
|
492
|
+
**How:** Write code examples that could be committed to the repository. Include imports, error handling, and types.
|
|
493
|
+
|
|
494
|
+
---
|
|
495
|
+
|
|
496
|
+
### 3. Use Realistic Timelines Based on Complexity
|
|
497
|
+
|
|
498
|
+
**Why:** Underestimating timelines leads to rushed work and technical debt.
|
|
499
|
+
|
|
500
|
+
**How:** Use past releases as benchmarks. A 1,000-line feature typically takes 1-2 weeks, not 2 days.
|
|
501
|
+
|
|
502
|
+
---
|
|
503
|
+
|
|
504
|
+
### 4. Document Integration Points Explicitly
|
|
505
|
+
|
|
506
|
+
**Why:** Most bugs happen at the boundaries between systems.
|
|
507
|
+
|
|
508
|
+
**How:** For every new component, explicitly document how it connects to existing systems (APIs, props, state, events).
|
|
509
|
+
|
|
510
|
+
---
|
|
511
|
+
|
|
512
|
+
### 5. Include Risk Mitigation from the Start
|
|
513
|
+
|
|
514
|
+
**Why:** Identifying risks after implementation is too late.
|
|
515
|
+
|
|
516
|
+
**How:** During the architecture phase, ask "What could go wrong?" and document mitigation strategies.
|
|
517
|
+
|
|
518
|
+
---
|
|
519
|
+
|
|
520
|
+
### 6. Make Success Criteria Binary and Testable
|
|
521
|
+
|
|
522
|
+
**Why:** Ambiguous success criteria lead to scope creep and endless iteration.
|
|
523
|
+
|
|
524
|
+
**How:** Every success criterion should be a yes/no question. "The user can create a new project" is testable. "The UI is intuitive" is not.
|
|
525
|
+
|
|
526
|
+
---
|
|
527
|
+
|
|
528
|
+
### 7. Reference Existing Patterns
|
|
529
|
+
|
|
530
|
+
**Why:** Consistency reduces cognitive load and makes the codebase easier to maintain.
|
|
531
|
+
|
|
532
|
+
**How:** When designing a new component, reference an existing component that follows the same pattern. "Follow the structure of `ComponentX`."
|
|
533
|
+
|
|
534
|
+
---
|
|
535
|
+
|
|
536
|
+
## VI. Quality Checklist
|
|
537
|
+
|
|
538
|
+
Before finalizing a specification, verify:
|
|
539
|
+
|
|
540
|
+
### Vision & Goals (3 questions)
|
|
541
|
+
- [ ] Is the vision statement a single, compelling sentence?
|
|
542
|
+
- [ ] Are the goals specific, measurable, and achievable?
|
|
543
|
+
- [ ] Are non-goals explicitly stated to prevent scope creep?
|
|
544
|
+
|
|
545
|
+
### Technical Architecture (4 questions)
|
|
546
|
+
- [ ] Does every major component have a detailed design with code examples?
|
|
547
|
+
- [ ] Are all API endpoints fully specified (method, path, request, response)?
|
|
548
|
+
- [ ] Are integration points with existing systems documented?
|
|
549
|
+
- [ ] Are performance considerations addressed?
|
|
550
|
+
|
|
551
|
+
### Implementation Plan (3 questions)
|
|
552
|
+
- [ ] Is the timeline realistic based on the complexity of the work?
|
|
553
|
+
- [ ] Does the week-by-week breakdown include specific, actionable tasks?
|
|
554
|
+
- [ ] Is the testing strategy comprehensive (unit, integration, E2E, performance)?
|
|
555
|
+
|
|
556
|
+
### Risk & Documentation (3 questions)
|
|
557
|
+
- [ ] Have major risks been identified with mitigation strategies?
|
|
558
|
+
- [ ] Is there a rollback procedure in case of failure?
|
|
559
|
+
- [ ] Are user and developer documentation needs documented?
|
|
560
|
+
|
|
561
|
+
**If you cannot answer "yes" to all 13 questions, the specification is not ready.**
|
|
562
|
+
|
|
563
|
+
---
|
|
564
|
+
|
|
565
|
+
## VII. Example: Dojo Genesis v0.0.23
|
|
566
|
+
|
|
567
|
+
**The Problem:** Users needed a way to calibrate the agent's behavior and communication style to match their preferences.
|
|
568
|
+
|
|
569
|
+
**The Vision:** "The Collaborative Calibration" - A release that transforms the agent from a fixed personality into an adaptive partner.
|
|
570
|
+
|
|
571
|
+
**What Made It A+:**
|
|
572
|
+
|
|
573
|
+
1. **Clear Vision:** The tagline "Collaborative Calibration" immediately communicated the essence
|
|
574
|
+
2. **Comprehensive Architecture:** Detailed design of the calibration UI, backend storage, and agent integration
|
|
575
|
+
3. **Production-Ready Code:** Complete Go and TypeScript examples that could be implemented directly
|
|
576
|
+
4. **Realistic Timeline:** 3-week phased approach with weekly milestones
|
|
577
|
+
5. **Risk Mitigation:** Identified the risk of "calibration drift" and defined a validation mechanism
|
|
578
|
+
|
|
579
|
+
**Key Decisions:**
|
|
580
|
+
- Store calibration preferences in SQLite for local-first architecture
|
|
581
|
+
- Use a multi-dimensional calibration model (tone, verbosity, formality)
|
|
582
|
+
- Implement real-time preview of calibration changes
|
|
583
|
+
|
|
584
|
+
**Outcome:** The specification was commissioned to Claude Code and implemented in 2.5 weeks with minimal rework.
|
|
585
|
+
|
|
586
|
+
---
|
|
587
|
+
|
|
588
|
+
## VIII. Common Pitfalls to Avoid
|
|
589
|
+
|
|
590
|
+
❌ **Vague Goals:** "Improve user experience" → ✅ "Reduce context loading time by 50%"
|
|
591
|
+
❌ **Missing Code Examples:** High-level description only → ✅ Complete, runnable code
|
|
592
|
+
❌ **Unrealistic Timelines:** "2 days for full backend" → ✅ "2 weeks with phased approach"
|
|
593
|
+
❌ **No Risk Assessment:** Assumes everything will work → ✅ Identifies risks and mitigations
|
|
594
|
+
❌ **Incomplete Testing:** "We'll test it" → ✅ Specific test cases and coverage targets
|
|
595
|
+
❌ **No Integration Points:** Treats feature as isolated → ✅ Documents how it connects to existing system
|
|
596
|
+
|
|
597
|
+
---
|
|
598
|
+
|
|
599
|
+
## IX. Related Skills
|
|
600
|
+
|
|
601
|
+
- **`strategic-to-tactical-workflow`** - The complete workflow from scouting to implementation (this skill is Phase 6)
|
|
602
|
+
- **`frontend-from-backend`** - For frontend specs that need deep backend grounding
|
|
603
|
+
- **`implementation-prompt`** - For converting this spec into implementation prompts
|
|
604
|
+
- **`parallel-tracks`** - For splitting large specs into parallel execution tracks
|
|
605
|
+
- **`repo-context-sync`** - For gathering codebase context before writing specs
|
|
606
|
+
- **`memory-garden`** - For documenting learnings from implementation
|
|
607
|
+
- **`seed-extraction`** - For extracting reusable patterns from specs
|
|
608
|
+
|
|
609
|
+
---
|
|
610
|
+
|
|
611
|
+
## X. Skill Metadata
|
|
612
|
+
|
|
613
|
+
**Token Savings:** ~10,000-15,000 tokens per specification (no need to re-read old specs for patterns)
|
|
614
|
+
**Quality Impact:** Ensures consistency across all specifications
|
|
615
|
+
**Maintenance:** Update when new patterns emerge from successful releases
|
|
616
|
+
|
|
617
|
+
**When to Update This Skill:**
|
|
618
|
+
- After completing 3-5 new specifications (to incorporate new patterns)
|
|
619
|
+
- When a specification leads to significant rework (to identify what was missing)
|
|
620
|
+
- When commissioning to a new type of agent (to adapt the template)
|
|
621
|
+
|
|
622
|
+
---
|
|
623
|
+
|
|
624
|
+
**Last Updated:** 2026-02-07
|
|
625
|
+
**Maintained By:** Manus AI
|
|
626
|
+
**Status:** Active
|
|
627
|
+
|
|
628
|
+
---
|
|
629
|
+
|
|
630
|
+
## OpenClaw Tool Integration
|
|
631
|
+
|
|
632
|
+
When running inside the Dojo Genesis plugin:
|
|
633
|
+
|
|
634
|
+
1. **Start** by calling `dojo_get_context` to retrieve full project state, history, and artifacts
|
|
635
|
+
2. **During** the skill execution, follow the workflow steps as documented above
|
|
636
|
+
3. **Save** all outputs using `dojo_save_artifact` with appropriate artifact types:
|
|
637
|
+
- `scout` → type: "scout-report"
|
|
638
|
+
- `spec` → type: "specification"
|
|
639
|
+
- `tracks` → type: "track-decomposition"
|
|
640
|
+
- `commission` → type: "implementation-prompt"
|
|
641
|
+
- `retro` → type: "retrospective"
|
|
642
|
+
4. **Update state** by calling `dojo_update_state` to:
|
|
643
|
+
- Record the skill execution in activity history
|
|
644
|
+
- Advance the project phase if appropriate
|
|
645
|
+
- Log any decisions made during the skill run
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "dojo-genesis-plugin-release-specification",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Write a production-ready release specification",
|
|
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
|
+
}
|