@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,413 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skill-maintenance
|
|
3
|
+
description: Maintain skills directory health through systematic renaming, refactoring, and cross-reference management. Use when skill names drift or terminology needs updating. Trigger phrases: "update these skill names", "refactor the skills directory", "clean up skill references", "rename this skill", "audit the skills ecosystem".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
> **OpenClaw Integration:** This skill is invoked by the Dojo Genesis plugin via `/dojo run skill-maintenance`.
|
|
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
|
+
# Skill Maintenance Ritual
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## I. The Philosophy: Maintenance is Not Just Fixing—It's Keeping What Works Working Well
|
|
16
|
+
|
|
17
|
+
A skills directory is a living knowledge base. As the project evolves, skill names may become unclear, terminology may need updating, and cross-references may drift out of sync. Without systematic maintenance, the knowledge base degrades: skills become hard to find, references break, and terminology becomes inconsistent.
|
|
18
|
+
|
|
19
|
+
This skill transforms maintenance from a reactive chore into a proactive ritual. By following a structured process (read, propose, execute, verify, document), we ensure the skills directory remains clear, consistent, and valuable.
|
|
20
|
+
|
|
21
|
+
**Core Insight:** Good maintenance prevents future problems. A well-maintained knowledge base is easier to search, easier to understand, and easier to extend.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## II. When to Use This Skill
|
|
26
|
+
|
|
27
|
+
Use this skill when:
|
|
28
|
+
|
|
29
|
+
- **Skill names become unclear or outdated** - Names no longer describe what the skill does
|
|
30
|
+
- **Terminology needs updating** - Tool-specific language should be generalized (e.g., "zenflow" → "implementation")
|
|
31
|
+
- **Adding new skills** - New skills reference existing skills and need validation
|
|
32
|
+
- **Deprecating or merging skills** - Old skills need to be removed or consolidated
|
|
33
|
+
- **Conducting periodic audits** - Regular health checks of the skills directory
|
|
34
|
+
- **Onboarding new contributors** - Ensuring the knowledge base is accessible and consistent
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## III. The Workflow
|
|
39
|
+
|
|
40
|
+
This is a 9-step workflow for maintaining the skills directory.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
### **Step 1: Recognize the Need for Maintenance**
|
|
45
|
+
|
|
46
|
+
**Goal:** Identify when skill maintenance is needed.
|
|
47
|
+
|
|
48
|
+
**Triggers:**
|
|
49
|
+
- User requests skill renames or refactors
|
|
50
|
+
- You notice unclear or inconsistent skill names
|
|
51
|
+
- New skills are added that reference outdated names
|
|
52
|
+
- Terminology changes in the broader ecosystem (e.g., tool names, industry standards)
|
|
53
|
+
- Periodic audit schedule (e.g., quarterly)
|
|
54
|
+
|
|
55
|
+
**Actions:**
|
|
56
|
+
1. Pause and clarify the scope with the user
|
|
57
|
+
2. Ask: What specifically needs to change?
|
|
58
|
+
3. Ask: What should stay the same?
|
|
59
|
+
4. Document the maintenance goal clearly
|
|
60
|
+
|
|
61
|
+
**Output:** Clear understanding of maintenance scope
|
|
62
|
+
|
|
63
|
+
**Key Insight:** Always pause and clarify scope before large refactors. Avoid over-refactoring by understanding what actually needs to change.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
### **Step 2: Read Before Proposing**
|
|
68
|
+
|
|
69
|
+
**Goal:** Understand what the skills actually do before suggesting changes.
|
|
70
|
+
|
|
71
|
+
**Actions:**
|
|
72
|
+
1. Read all skills that will be affected by the maintenance
|
|
73
|
+
2. Understand the actual purpose and workflow of each skill
|
|
74
|
+
3. Note any cross-references between skills
|
|
75
|
+
4. Identify patterns in naming or terminology
|
|
76
|
+
|
|
77
|
+
**Tools:**
|
|
78
|
+
- `file` tool (read action) for each skill
|
|
79
|
+
- Take notes on what each skill does
|
|
80
|
+
|
|
81
|
+
**Output:** Deep understanding of affected skills
|
|
82
|
+
|
|
83
|
+
**Key Insight:** Never propose renames or refactors without reading the actual content first. Names should reflect reality, not assumptions.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
### **Step 3: Propose Clear, Descriptive Changes**
|
|
88
|
+
|
|
89
|
+
**Goal:** Suggest changes that improve clarity and consistency.
|
|
90
|
+
|
|
91
|
+
**Actions:**
|
|
92
|
+
1. For renames: Propose names following the "verb-object" pattern
|
|
93
|
+
- Examples: `release-specification`, `implementation-prompt`
|
|
94
|
+
2. For terminology refactors: Identify what should change and what should stay
|
|
95
|
+
3. Create a table showing old → new with rationale
|
|
96
|
+
4. Get user confirmation before proceeding
|
|
97
|
+
|
|
98
|
+
**Tools:**
|
|
99
|
+
- `message` tool (ask type) to propose and get feedback
|
|
100
|
+
|
|
101
|
+
**Output:** Agreed-upon changes
|
|
102
|
+
|
|
103
|
+
**Key Insight:** Good naming is good documentation. Descriptive names reduce cognitive load and make skills immediately understandable.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
### **Step 4: Execute Renames Systematically**
|
|
108
|
+
|
|
109
|
+
**Goal:** Rename skill directories and update internal references.
|
|
110
|
+
|
|
111
|
+
**Actions:**
|
|
112
|
+
1. Rename skill directories using `mv` command
|
|
113
|
+
2. Update `name` field in each SKILL.md frontmatter
|
|
114
|
+
3. Update title (H1 heading) in each SKILL.md
|
|
115
|
+
4. Verify renames with `ls` command
|
|
116
|
+
|
|
117
|
+
**Tools:**
|
|
118
|
+
- `shell` tool for directory renames
|
|
119
|
+
- `file` tool (edit action) for content updates
|
|
120
|
+
|
|
121
|
+
**Output:** Renamed skills with updated metadata
|
|
122
|
+
|
|
123
|
+
**Key Insight:** Rename both the directory and the internal metadata. Inconsistency between directory name and skill name causes confusion.
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
### **Step 5: Search and Catalog References**
|
|
128
|
+
|
|
129
|
+
**Goal:** Find all instances of terminology or names that need updating.
|
|
130
|
+
|
|
131
|
+
**Actions:**
|
|
132
|
+
1. Use `grep -r -i "<term>"` to find all references
|
|
133
|
+
2. Count references by directory: `grep -r -i "<term>" | cut -d: -f1 | sed 's|^\./||' | cut -d/ -f1 | sort | uniq -c | sort -rn`
|
|
134
|
+
3. Identify which references need updating (skills directory) vs. which should stay (historical docs)
|
|
135
|
+
4. Confirm scope with user if needed
|
|
136
|
+
|
|
137
|
+
**Tools:**
|
|
138
|
+
- `shell` tool with grep for searching
|
|
139
|
+
- `wc -l` to count references
|
|
140
|
+
- `cut`, `sort`, `uniq -c` to categorize
|
|
141
|
+
|
|
142
|
+
**Output:** Catalog of references to update
|
|
143
|
+
|
|
144
|
+
**Key Insight:** Always catalog before refactoring. Understanding the scope prevents over-refactoring or missing references.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
### **Step 6: Read Context and Determine Strategy**
|
|
149
|
+
|
|
150
|
+
**Goal:** Understand which references should change and which should stay.
|
|
151
|
+
|
|
152
|
+
**Actions:**
|
|
153
|
+
1. Use `match` tool (grep action) to view references with context
|
|
154
|
+
2. Analyze each usage to determine if it should be updated
|
|
155
|
+
3. Create a refactoring strategy:
|
|
156
|
+
- What should be replaced?
|
|
157
|
+
- What should be preserved?
|
|
158
|
+
- What replacement text should be used?
|
|
159
|
+
4. Document the strategy
|
|
160
|
+
|
|
161
|
+
**Tools:**
|
|
162
|
+
- `match` tool (grep action) with leading/trailing context
|
|
163
|
+
|
|
164
|
+
**Output:** Refactoring strategy document
|
|
165
|
+
|
|
166
|
+
**Example Strategy:**
|
|
167
|
+
- Replace "Zenflow prompt" → "implementation prompt"
|
|
168
|
+
- Replace "Zenflow" (as executor) → "implementation agent"
|
|
169
|
+
- Preserve "Zenflow" when listing multiple tools: "Zenflow, Claude Code, etc."
|
|
170
|
+
- Preserve "Zenflow" in routing decisions: "Zenflow: Strategic implementation"
|
|
171
|
+
|
|
172
|
+
**Key Insight:** Not all references should be changed. Preserve tool-specific references when contextually appropriate.
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
### **Step 7: Execute Refactor with Batch Edits**
|
|
177
|
+
|
|
178
|
+
**Goal:** Update all references systematically using batch edits.
|
|
179
|
+
|
|
180
|
+
**Actions:**
|
|
181
|
+
1. For each affected skill file:
|
|
182
|
+
- Create a list of find/replace pairs
|
|
183
|
+
- Use `file` tool (edit action) with multiple edits
|
|
184
|
+
- Set `all: true` to replace all occurrences
|
|
185
|
+
2. Verify changes with `grep` after each file
|
|
186
|
+
3. Keep a count of replacements per file
|
|
187
|
+
|
|
188
|
+
**Tools:**
|
|
189
|
+
- `file` tool (edit action) with multiple edits
|
|
190
|
+
- `shell` tool with grep to verify
|
|
191
|
+
|
|
192
|
+
**Output:** Updated skill files
|
|
193
|
+
|
|
194
|
+
**Example Edit:**
|
|
195
|
+
```json
|
|
196
|
+
{
|
|
197
|
+
"edits": [
|
|
198
|
+
{"all": true, "find": "Zenflow prompt", "replace": "implementation prompt"},
|
|
199
|
+
{"all": true, "find": "Zenflow", "replace": "implementation agent"}
|
|
200
|
+
]
|
|
201
|
+
}
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
**Key Insight:** Batch edits are more efficient than one-by-one replacements. Use `all: true` to replace all occurrences in a single operation.
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
### **Step 8: Verify and Commit**
|
|
209
|
+
|
|
210
|
+
**Goal:** Ensure all changes are correct and commit with comprehensive documentation.
|
|
211
|
+
|
|
212
|
+
**Actions:**
|
|
213
|
+
1. Verify no unintended references remain: `grep -i "<old term>" <directory>`
|
|
214
|
+
2. Check git status: `git status`
|
|
215
|
+
3. Stage changes: `git add skills/`
|
|
216
|
+
4. Write comprehensive commit message:
|
|
217
|
+
- Summary of changes
|
|
218
|
+
- File-by-file breakdown
|
|
219
|
+
- Rationale for changes
|
|
220
|
+
- What was preserved and why
|
|
221
|
+
5. Commit: `git commit -m "<message>"`
|
|
222
|
+
6. Push to remote: `git push origin main`
|
|
223
|
+
|
|
224
|
+
**Tools:**
|
|
225
|
+
- `shell` tool with git commands
|
|
226
|
+
|
|
227
|
+
**Output:** Committed and pushed changes
|
|
228
|
+
|
|
229
|
+
**Commit Message Template:**
|
|
230
|
+
```
|
|
231
|
+
<Action> in skills directory
|
|
232
|
+
|
|
233
|
+
<Summary paragraph>
|
|
234
|
+
|
|
235
|
+
Changes:
|
|
236
|
+
- <file1> (<N> replacements)
|
|
237
|
+
- <change 1>
|
|
238
|
+
- <change 2>
|
|
239
|
+
|
|
240
|
+
- <file2> (<N> replacements)
|
|
241
|
+
- <change 1>
|
|
242
|
+
|
|
243
|
+
Kept <term> only when:
|
|
244
|
+
- <context 1>
|
|
245
|
+
- <context 2>
|
|
246
|
+
|
|
247
|
+
<Rationale paragraph>
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
**Key Insight:** Comprehensive commit messages are documentation. Future maintainers need to understand *why* changes were made, not just *what* changed.
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
### **Step 9: Document the Process**
|
|
255
|
+
|
|
256
|
+
**Goal:** Create summary documents for future reference.
|
|
257
|
+
|
|
258
|
+
**Actions:**
|
|
259
|
+
1. Create a summary document with:
|
|
260
|
+
- Overview of changes
|
|
261
|
+
- Refactoring strategy
|
|
262
|
+
- Files modified
|
|
263
|
+
- Benefits of the changes
|
|
264
|
+
- Reflection on the process
|
|
265
|
+
2. Deliver summary to user with `message` tool
|
|
266
|
+
|
|
267
|
+
**Tools:**
|
|
268
|
+
- `file` tool (write action)
|
|
269
|
+
- `message` tool (result type)
|
|
270
|
+
|
|
271
|
+
**Output:** Documentation for future reference
|
|
272
|
+
|
|
273
|
+
**Key Insight:** Document the process immediately after completing it. Details fade quickly from memory.
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
## IV. Best Practices
|
|
278
|
+
|
|
279
|
+
### **Pause and Clarify Scope**
|
|
280
|
+
|
|
281
|
+
Before any large refactor, pause and clarify with the user:
|
|
282
|
+
- What exactly needs to change?
|
|
283
|
+
- What should stay the same?
|
|
284
|
+
- What's the scope (skills directory only, or entire repository)?
|
|
285
|
+
|
|
286
|
+
### **Read Before Proposing**
|
|
287
|
+
|
|
288
|
+
Never suggest changes without reading the actual content. Understanding reality prevents proposing changes that don't make sense.
|
|
289
|
+
|
|
290
|
+
### **Use Systematic Search**
|
|
291
|
+
|
|
292
|
+
Don't rely on memory to find all references. Use `grep` to systematically search and catalog all instances.
|
|
293
|
+
|
|
294
|
+
### **Preserve Contextually Appropriate References**
|
|
295
|
+
|
|
296
|
+
Not all references should be changed. Preserve tool-specific mentions when they're contextually appropriate (e.g., when listing multiple tools).
|
|
297
|
+
|
|
298
|
+
### **Batch Edits for Efficiency**
|
|
299
|
+
|
|
300
|
+
Use the `file` tool's multiple edits feature with `all: true` to replace all occurrences in a single operation.
|
|
301
|
+
|
|
302
|
+
### **Comprehensive Commit Messages**
|
|
303
|
+
|
|
304
|
+
Write commit messages that explain:
|
|
305
|
+
- **What** changed (file-by-file breakdown)
|
|
306
|
+
- **Why** it changed (rationale)
|
|
307
|
+
- **What** was preserved (and why)
|
|
308
|
+
|
|
309
|
+
### **Document Immediately**
|
|
310
|
+
|
|
311
|
+
Create summary documents right after completing the maintenance. Details fade quickly, and future maintainers will thank you.
|
|
312
|
+
|
|
313
|
+
---
|
|
314
|
+
|
|
315
|
+
## V. Quality Checklist
|
|
316
|
+
|
|
317
|
+
Before considering the maintenance complete, ensure you can answer "yes" to all of the following:
|
|
318
|
+
|
|
319
|
+
- [ ] Have you clarified the scope with the user?
|
|
320
|
+
- [ ] Have you read all affected skills to understand their purpose?
|
|
321
|
+
- [ ] Have you proposed changes and received user confirmation?
|
|
322
|
+
- [ ] Have you renamed directories and updated internal metadata?
|
|
323
|
+
- [ ] Have you cataloged all references that need updating?
|
|
324
|
+
- [ ] Have you determined a refactoring strategy (what changes, what stays)?
|
|
325
|
+
- [ ] Have you executed the refactor with batch edits?
|
|
326
|
+
- [ ] Have you verified no unintended references remain?
|
|
327
|
+
- [ ] Have you committed with a comprehensive commit message?
|
|
328
|
+
- [ ] Have you pushed changes to the remote repository?
|
|
329
|
+
- [ ] Have you created summary documentation?
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
## VI. Common Pitfalls to Avoid
|
|
334
|
+
|
|
335
|
+
❌ **Over-refactoring:** Changing references that should stay (e.g., historical docs, tool-specific mentions)
|
|
336
|
+
✅ **Scope appropriately:** Only change what needs changing
|
|
337
|
+
|
|
338
|
+
❌ **Proposing without reading:** Suggesting changes based on assumptions
|
|
339
|
+
✅ **Read first:** Understand reality before proposing
|
|
340
|
+
|
|
341
|
+
❌ **Missing references:** Relying on memory instead of systematic search
|
|
342
|
+
✅ **Use grep:** Catalog all references systematically
|
|
343
|
+
|
|
344
|
+
❌ **Vague commit messages:** "Updated skills" without explanation
|
|
345
|
+
✅ **Be comprehensive:** Explain what, why, and what was preserved
|
|
346
|
+
|
|
347
|
+
❌ **No documentation:** Completing maintenance without recording the process
|
|
348
|
+
✅ **Document immediately:** Create summary docs while details are fresh
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
## VII. Example: Skill Rename and Terminology Refactor (Feb 7, 2026)
|
|
353
|
+
|
|
354
|
+
**Context:** After creating 5 new skills, we needed to rename 4 existing skills and refactor "zenflow" to "implementation" across 32 references.
|
|
355
|
+
|
|
356
|
+
**Process:**
|
|
357
|
+
1. User requested renames: "let's rename our specification and prompt skills to simply describe what they do"
|
|
358
|
+
2. Read all 4 skills to understand their purpose
|
|
359
|
+
3. Proposed renames following "verb-object" pattern
|
|
360
|
+
4. User refined names (e.g., "write-zenflow-prompt" → "write-implementation-prompt")
|
|
361
|
+
5. Renamed directories and updated metadata
|
|
362
|
+
6. User requested terminology refactor: "complete this knowledge refactor to rename everything else with zenflow in it to implementation"
|
|
363
|
+
7. Searched and found 530 total "zenflow" references
|
|
364
|
+
8. User scoped down: "skills directory only" (32 references)
|
|
365
|
+
9. Read context and determined strategy (what to change, what to preserve)
|
|
366
|
+
10. Executed refactor with batch edits (22 + 7 + 2 + 1 replacements)
|
|
367
|
+
11. Verified and committed with comprehensive message
|
|
368
|
+
12. Created summary documentation
|
|
369
|
+
|
|
370
|
+
**Outcome:**
|
|
371
|
+
- 4 skills renamed with clear, descriptive names
|
|
372
|
+
- 32 references updated to generic "implementation" terminology
|
|
373
|
+
- 6 tool-specific "Zenflow" references preserved
|
|
374
|
+
- All cross-references updated
|
|
375
|
+
- Comprehensive documentation created
|
|
376
|
+
|
|
377
|
+
**Time:** ~2 hours total
|
|
378
|
+
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
## VIII. Related Skills
|
|
382
|
+
|
|
383
|
+
- **`compression-ritual`** - For preserving insights before large refactors
|
|
384
|
+
- **`process-extraction`** - For creating new skills from maintenance processes
|
|
385
|
+
- **`health-audit`** - For comprehensive repository health audits
|
|
386
|
+
- **`documentation-audit`** - For identifying documentation drift
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
## IX. Maintenance Schedule Recommendation
|
|
391
|
+
|
|
392
|
+
**Suggested frequency:**
|
|
393
|
+
- **Quarterly:** Full audit of skills directory
|
|
394
|
+
- **After major additions:** When 5+ new skills are added
|
|
395
|
+
- **On user request:** When terminology or naming issues are identified
|
|
396
|
+
- **Before major releases:** Ensure consistency before public releases
|
|
397
|
+
|
|
398
|
+
---
|
|
399
|
+
|
|
400
|
+
**Last Updated:** 2026-02-07
|
|
401
|
+
**Maintained By:** Manus AI
|
|
402
|
+
**Status:** Active
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
## OpenClaw Tool Integration
|
|
406
|
+
|
|
407
|
+
When running inside the Dojo Genesis plugin:
|
|
408
|
+
|
|
409
|
+
1. **Start** by calling `dojo_get_context` to retrieve full project state, history, and artifacts
|
|
410
|
+
2. **During** the skill, follow the workflow steps documented above
|
|
411
|
+
3. **Save** outputs using `dojo_save_artifact` with the `artifacts` output directory
|
|
412
|
+
4. **Update** project state by calling `dojo_update_state` to record skill completion and any phase transitions
|
|
413
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "dojo-genesis-plugin-skill-maintenance",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Maintain skill health through systematic review",
|
|
5
|
+
"author": "dojo-genesis",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"permissions": [],
|
|
8
|
+
"entry": "SKILL.md",
|
|
9
|
+
"tags": ["dojo-genesis", "orchestration", "forge", "skills"],
|
|
10
|
+
"models": ["claude-*", "gpt-*", "gemini-*"],
|
|
11
|
+
"minOpenClawVersion": "2026.1.0"
|
|
12
|
+
}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: spec-constellation-to-prompt-suite
|
|
3
|
+
description: Convert multiple specs into coordinated parallel-track implementation prompts with integration contracts. Use when translating specs into execution-ready prompts for multiple tracks. Trigger phrases: 'convert specs to prompts', 'create implementation prompts', 'define integration contracts', 'ready to commission these specs', 'coordinate these parallel tracks'.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
> **OpenClaw Integration:** This skill is invoked by the Dojo Genesis plugin via `/dojo run spec-constellation-to-prompt-suite`.
|
|
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
|
+
## I. The Philosophy
|
|
12
|
+
|
|
13
|
+
When you move from one specification to one implementation prompt, you're writing a focused brief. But when you move from four interconnected specifications to four parallel implementation prompts, you're solving a **coordination problem**.
|
|
14
|
+
|
|
15
|
+
The danger: each prompt looks coherent in isolation, but the tracks execute independently. Track B (Go backend) produces the API that Track C (frontend) consumes—but if the two prompts define the contract differently, integration fails. Track A (scaffold) defines design tokens that Track D (dock + home) must use—but inconsistent naming breaks everything. Type definitions (DojoEntity, PipelineContent) must be identical across tracks, not compatible or "close enough."
|
|
16
|
+
|
|
17
|
+
This skill exists because:
|
|
18
|
+
- Writing N prompts from N specs is not N repetitions of "write one prompt"
|
|
19
|
+
- The coordination happens at the integration boundaries, not within prompts
|
|
20
|
+
- Shared types and contracts must be defined BEFORE prompts are written
|
|
21
|
+
- Cross-validation is the difference between "tracks that exist" and "tracks that integrate"
|
|
22
|
+
|
|
23
|
+
## II. When to Use This Skill
|
|
24
|
+
|
|
25
|
+
- You have 2+ interconnected specifications covering different aspects of a release
|
|
26
|
+
- Prompts for different tracks must agree on APIs, types, exports, or design tokens
|
|
27
|
+
- You're moving from "specs documented" to "ready to commission parallel work"
|
|
28
|
+
- One track's output becomes another track's input (explicit handoff required)
|
|
29
|
+
- You need a master plan that ties implementation work together
|
|
30
|
+
- Risk: Tracks ship independently without realizing their contracts don't align
|
|
31
|
+
|
|
32
|
+
## III. Prerequisites
|
|
33
|
+
|
|
34
|
+
- A master plan or release plan defining the release scope
|
|
35
|
+
- 2+ specifications covering different aspects of the release
|
|
36
|
+
- A parallel tracks decomposition (or the intent to create one)
|
|
37
|
+
- Codebase patterns extracted for grounding (handler patterns, response formats, type definitions)
|
|
38
|
+
- At least one existing codebase to extract patterns from
|
|
39
|
+
|
|
40
|
+
## IV. The Workflow
|
|
41
|
+
|
|
42
|
+
### Step 1: Map the Spec Constellation
|
|
43
|
+
|
|
44
|
+
List all specs that contribute to this release. For each spec, identify:
|
|
45
|
+
- Which aspects map to which track(s)
|
|
46
|
+
- Which other specs it depends on or feeds
|
|
47
|
+
- What decisions or scouts inform it
|
|
48
|
+
|
|
49
|
+
Create a matrix:
|
|
50
|
+
| Spec | Contributes To | Dependencies | Key Decision |
|
|
51
|
+
|------|---|---|---|
|
|
52
|
+
| Entity Data Model | Track B, C, D | — | Entity CRUD shape |
|
|
53
|
+
| Tauri Shell | Track A | — | Platform scaffold |
|
|
54
|
+
| Horizon Dock | Track D | Tauri Shell, Entity Model | UI layout |
|
|
55
|
+
| Home State | Track D | Entity Model | State shape |
|
|
56
|
+
|
|
57
|
+
**Key insight:** Specs don't map 1:1 to tracks. One spec feeds multiple tracks; multiple specs feed one track.
|
|
58
|
+
|
|
59
|
+
### Step 2: Define Integration Interfaces
|
|
60
|
+
|
|
61
|
+
For each pair of tracks that share data, define the contract in this format:
|
|
62
|
+
|
|
63
|
+
**Integration Contract Table:**
|
|
64
|
+
| Interface | Produced By | Consumed By | Shape | Verification |
|
|
65
|
+
|---|---|---|---|---|
|
|
66
|
+
| EntityAPI | Track B | Track C | `listEntities(route): Promise<DojoEntity[]>` | Type check against export |
|
|
67
|
+
| DojoEntity type | Track B | Track C, D | TypeScript interface | Shared in all 3 prompts identically |
|
|
68
|
+
| Route handlers | Track A | Track D | Path format: `/entity/:id` | Navigation code type-checks |
|
|
69
|
+
|
|
70
|
+
Write each contract in the Integration Contract Template below. **This table becomes the spine of the master plan.**
|
|
71
|
+
|
|
72
|
+
### Step 3: Extract Codebase Patterns
|
|
73
|
+
|
|
74
|
+
For each track that touches existing code:
|
|
75
|
+
|
|
76
|
+
- **Backend tracks:** Extract handler patterns, request/response shapes, middleware hooks
|
|
77
|
+
- **Frontend tracks:** Extract component folder structure, hook patterns, state management shapes
|
|
78
|
+
- **All tracks:** Response formats, error handling, logging conventions
|
|
79
|
+
|
|
80
|
+
Store patterns as reference files in the prompt (or link to them). Ground each prompt in "this is how we actually do it," not assumptions.
|
|
81
|
+
|
|
82
|
+
### Step 4: Write Prompts in Dependency Order
|
|
83
|
+
|
|
84
|
+
Begin with the track that has **no dependencies** (often scaffold or backend). For each prompt, include:
|
|
85
|
+
|
|
86
|
+
1. **Context & Grounding:** Which specs to read, which pattern files to reference
|
|
87
|
+
2. **Detailed Requirements:** Numbered, specific, unambiguous
|
|
88
|
+
3. **File Manifest:** Create vs. modify; where files go
|
|
89
|
+
4. **Success Criteria:** Binary, testable (not "looks good")
|
|
90
|
+
5. **Constraints & Non-Goals:** What NOT to do
|
|
91
|
+
6. **Integration Contracts:** What this track produces; what it depends on (reference Step 2)
|
|
92
|
+
|
|
93
|
+
**When writing a consuming track's prompt**, cite the producing track's contract explicitly:
|
|
94
|
+
> "Track B produces the DojoEntity type (Integration Contract: DojoEntity type). Use that type exactly in Track C's API client."
|
|
95
|
+
|
|
96
|
+
### Step 5: Cross-Validate Type Consistency
|
|
97
|
+
|
|
98
|
+
For every shared type (DojoEntity, PipelineContent, etc.):
|
|
99
|
+
- Check that the definition appears identically in every prompt that references it
|
|
100
|
+
- If a type evolves, update it in ALL prompts and the Integration Contract Table
|
|
101
|
+
|
|
102
|
+
For every API contract:
|
|
103
|
+
- Verify producer's response shape matches consumer's expected input shape
|
|
104
|
+
- Check HTTP method, status codes, error responses
|
|
105
|
+
|
|
106
|
+
For shared resources (CSS variables, design tokens, route patterns):
|
|
107
|
+
- Verify naming is consistent across all prompts
|
|
108
|
+
|
|
109
|
+
**Catch-and-fix:** This step prevents integration bugs.
|
|
110
|
+
|
|
111
|
+
### Step 6: Write the Master Implementation Plan
|
|
112
|
+
|
|
113
|
+
Summarize all tracks, dependencies, and integration points:
|
|
114
|
+
|
|
115
|
+
1. List all tracks in dependency order
|
|
116
|
+
2. Include the Integration Contract Table from Step 2
|
|
117
|
+
3. Define the day-by-day execution sequence
|
|
118
|
+
4. List aggregate success criteria spanning tracks
|
|
119
|
+
5. Note risk mitigation (e.g., "Track B ships Friday; Track C unblocked Monday")
|
|
120
|
+
|
|
121
|
+
## V. Integration Contract Template
|
|
122
|
+
|
|
123
|
+
```markdown
|
|
124
|
+
### Integration Contract: [Name]
|
|
125
|
+
|
|
126
|
+
- **Producer:** Track [X] — [brief description of what produces this]
|
|
127
|
+
- **Consumer:** Track [Y] — [brief description of what consumes this]
|
|
128
|
+
- **Interface:** [API endpoint / TypeScript type / CSS variable / Go struct / etc.]
|
|
129
|
+
- **Language:** [TypeScript / Go / CSS / etc.]
|
|
130
|
+
- **Shape:**
|
|
131
|
+
```typescript
|
|
132
|
+
// or Go, or CSS — whatever the interface language is
|
|
133
|
+
interface EntityAPI {
|
|
134
|
+
listEntities(route: string): Promise<DojoEntity[]>
|
|
135
|
+
getEntity(id: string): Promise<DojoEntity>
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
- **Constraints:** [Any limits on the interface — e.g., "Must serialize to JSON", "Case-sensitive names"]
|
|
139
|
+
- **Verification:** [How to verify the contract is met — e.g., "Track Y's API client type-checks against Track X's response"]
|
|
140
|
+
- **Owner:** Track [X] (responsible for backward compatibility)
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## VI. Best Practices
|
|
144
|
+
|
|
145
|
+
- **Specs don't map 1:1 to tracks.** Build the mapping explicitly in Step 1.
|
|
146
|
+
- **Integration contracts are the most important output.** Prompts without contracts produce tracks that don't integrate.
|
|
147
|
+
- **Write the most-depended-on track's prompt first.** Its contracts shape everything downstream.
|
|
148
|
+
- **Cross-validation catches bugs before execution.** Type mismatches, response shape mismatches, and naming inconsistencies surface now, not during integration.
|
|
149
|
+
- **If a spec needs updating mid-stream,** do it in the prompt, not by rewriting the spec. Prompts are executable; specs are reference.
|
|
150
|
+
- **Each prompt must be self-contained.** An agent should execute it without reading other prompts. Integration contracts embedded in the prompt provide necessary context.
|
|
151
|
+
|
|
152
|
+
## VII. Quality Checklist
|
|
153
|
+
|
|
154
|
+
- [ ] All specs contributing to this release are mapped to tracks (Step 1)
|
|
155
|
+
- [ ] Every cross-track dependency has an explicit integration contract (Step 2)
|
|
156
|
+
- [ ] Shared types (DojoEntity, etc.) are consistent across all prompts that reference them (Step 5)
|
|
157
|
+
- [ ] Each prompt is self-contained and executable independently
|
|
158
|
+
- [ ] Prompts are ordered by dependency (foundation tracks first) (Step 4)
|
|
159
|
+
- [ ] Integration Contract Table is complete and unambiguous (Step 2)
|
|
160
|
+
- [ ] Codebase patterns extracted and grounded in prompts (Step 3)
|
|
161
|
+
- [ ] Master implementation plan ties all tracks together (Step 6)
|
|
162
|
+
- [ ] Success criteria span tracks, not just per-track (Step 6)
|
|
163
|
+
- [ ] Risk mitigation plan addresses integration dependencies
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## OpenClaw Tool Integration
|
|
167
|
+
|
|
168
|
+
When running inside the Dojo Genesis plugin:
|
|
169
|
+
|
|
170
|
+
1. **Start** by calling `dojo_get_context` to retrieve full project state, history, and artifacts
|
|
171
|
+
2. **During** the skill, follow the workflow steps documented above
|
|
172
|
+
3. **Save** outputs using `dojo_save_artifact` with the `artifacts` output directory
|
|
173
|
+
4. **Update** project state by calling `dojo_update_state` to record skill completion and any phase transitions
|
|
174
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "dojo-genesis-plugin-spec-constellation-to-prompt-suite",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Convert multiple specs into coordinated prompts",
|
|
5
|
+
"author": "dojo-genesis",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"permissions": [],
|
|
8
|
+
"entry": "SKILL.md",
|
|
9
|
+
"tags": ["dojo-genesis", "orchestration", "workflow", "process"],
|
|
10
|
+
"models": ["claude-*", "gpt-*", "gemini-*"],
|
|
11
|
+
"minOpenClawVersion": "2026.1.0"
|
|
12
|
+
}
|