@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,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: seed-to-skill-converter
|
|
3
|
+
description: Elevate a frequently-used Dojo Seed into a fully-fledged reusable Skill with templates and workflows. Use when a seed has proven value and describes a repeatable process. Trigger phrases: "promote this seed to a skill", "convert this seed into a skill", "make this seed into a skill", "formalize this pattern", "turn this seed active".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
> **OpenClaw Integration:** This skill is invoked by the Dojo Genesis plugin via `/dojo run seed-to-skill-converter`.
|
|
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
|
+
# Seed-to-Skill Converter Skill
|
|
12
|
+
|
|
13
|
+
**Version:** 1.0
|
|
14
|
+
**Created:** 2026-02-04
|
|
15
|
+
**Author:** Manus AI
|
|
16
|
+
**Purpose:** To provide a structured process for identifying when a Dojo Seed has become important enough to be promoted into a reusable Skill, and to guide the conversion process.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## I. The Philosophy: From Insight to Instrument
|
|
21
|
+
|
|
22
|
+
A Dojo Seed is a potent insight, a moment of clarity captured. It is a reminder of a lesson learned. A Skill is an **instrument**. It is that same lesson transformed into a repeatable, structured process that can be reliably executed by any agent.
|
|
23
|
+
|
|
24
|
+
The Seed-to-Skill Converter is the alchemical process that turns the passive wisdom of a Seed into the active utility of a Skill. It is the recognition that some insights are so fundamental to our practice that they deserve to be formalized, to become part of the very machinery of our workflow.
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## II. When to Use This Skill
|
|
29
|
+
|
|
30
|
+
- **When a Seed is referenced frequently:** If you find yourself constantly referring back to the same Seed across multiple projects or sprints, it may be ready for promotion.
|
|
31
|
+
- **When a Seed describes a multi-step process:** If a Seed isn't just a simple reminder but outlines a series of actions, it is a strong candidate for a Skill.
|
|
32
|
+
- **When a Seed represents a core part of our workflow:** If a Seed is fundamental to how we build, reflect, or collaborate, it should be a Skill.
|
|
33
|
+
- **During a Retrospective:** A retrospective is a perfect time to ask, "Which of our learnings from this sprint are so important they should become a permanent Skill?"
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## III. The Conversion Workflow
|
|
38
|
+
|
|
39
|
+
### Step 1: Identify the Candidate Seed
|
|
40
|
+
|
|
41
|
+
Select a Dojo Seed that meets the criteria from Section II. Announce the intention to convert it into a Skill.
|
|
42
|
+
|
|
43
|
+
**Example:** "The Seed 'Workflow as Practice' has become so central to our collaboration that I believe it's time to elevate it into a formal Skill."
|
|
44
|
+
|
|
45
|
+
### Step 2: Deconstruct the Seed's Wisdom
|
|
46
|
+
|
|
47
|
+
Analyze the Seed and break down its core components:
|
|
48
|
+
|
|
49
|
+
- **The Core Insight:** What is the fundamental truth or idea the Seed represents?
|
|
50
|
+
- **The Trigger:** When should this wisdom be applied?
|
|
51
|
+
- **The Process:** What are the concrete steps an agent should take to apply this wisdom?
|
|
52
|
+
- **The Desired Outcome:** What is the result of applying this wisdom correctly?
|
|
53
|
+
|
|
54
|
+
### Step 3: Draft the Skill Using the Standard Template
|
|
55
|
+
|
|
56
|
+
Create a new directory in `SKILLS/` and a `SKILL.md` file. Use the standard Skill template (see `skill-creation` skill) to structure the new Skill. The components deconstructed in Step 2 will form the core of the new Skill's content.
|
|
57
|
+
|
|
58
|
+
| Seed Component | Skill Section |
|
|
59
|
+
| :--- | :--- |
|
|
60
|
+
| **Core Insight** | `I. The Philosophy` |
|
|
61
|
+
| **Trigger** | `II. When to Use This Skill` |
|
|
62
|
+
| **Process** | `III. The Workflow` |
|
|
63
|
+
| **Desired Outcome** | `IV. Best Practices` / `V. Quality Checklist` |
|
|
64
|
+
|
|
65
|
+
### Step 4: Define the Workflow and Templates
|
|
66
|
+
|
|
67
|
+
This is the most critical step. Transform the abstract process from the Seed into a concrete, step-by-step workflow. If the Skill involves creating a document, provide a complete markdown template.
|
|
68
|
+
|
|
69
|
+
### Step 5: Commit the New Skill
|
|
70
|
+
|
|
71
|
+
Commit the new Skill to the AROMA repository and copy it to the local `/home/ubuntu/skills/` directory to make it available for immediate use.
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## IV. Example Conversion: 'Workflow as Practice' Seed
|
|
76
|
+
|
|
77
|
+
Let's imagine we are converting the Seed: **Seed: Workflow as Practice** — *Why it matters:* It reframes our collaboration from a means to an end to a valuable practice in itself. — *Revisit trigger:* When we feel rushed, frustrated, or focused only on the outcome.
|
|
78
|
+
|
|
79
|
+
### Deconstruction:
|
|
80
|
+
|
|
81
|
+
- **Core Insight:** Our collaboration is a practice, not just a series of tasks.
|
|
82
|
+
- **Trigger:** Feeling rushed, frustrated, or overly outcome-focused.
|
|
83
|
+
- **Process:** Pause, re-read the project's `PHILOSOPHY.md` or `STATUS.md`, reflect on the *how* not just the *what*, and consciously choose to slow down to the "pace of understanding."
|
|
84
|
+
- **Desired Outcome:** A return to a more mindful, less reactive state of work.
|
|
85
|
+
|
|
86
|
+
### Skill Creation:
|
|
87
|
+
|
|
88
|
+
This would likely become a Skill called `mindful-workflow-check`. The workflow would guide an agent to:
|
|
89
|
+
1. Recognize the trigger (frustration, rushing).
|
|
90
|
+
2. Pause current work.
|
|
91
|
+
3. Read the project's `STATUS.md` and `PHILOSOPHY.md`.
|
|
92
|
+
4. Write a brief, private reflection in `thinking/` on how the current work aligns with the project's deeper purpose.
|
|
93
|
+
5. State a clear intention for how to proceed with the work in a more mindful way.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## V. Best Practices
|
|
98
|
+
|
|
99
|
+
- **Not Every Seed Needs to Be a Skill:** The beauty of Seeds is their lightness. Only promote a Seed when it has proven its value and utility over time.
|
|
100
|
+
- **Skills Should Be Actionable:** A Skill must describe a *process*. If a Seed is purely a philosophical reminder, it should remain a Seed.
|
|
101
|
+
- **Skills Require Maintenance:** Once a Seed becomes a Skill, it is part of our formal infrastructure and must be kept up-to-date.
|
|
102
|
+
- **The Goal is Utility:** The purpose of this conversion is to create a useful instrument. If the resulting Skill is not useful, the conversion has failed.
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## OpenClaw Tool Integration
|
|
106
|
+
|
|
107
|
+
When running inside the Dojo Genesis plugin:
|
|
108
|
+
|
|
109
|
+
1. **Start** by calling `dojo_get_context` to retrieve full project state, history, and artifacts
|
|
110
|
+
2. **During** the skill, follow the workflow steps documented above
|
|
111
|
+
3. **Save** outputs using `dojo_save_artifact` with the `artifacts` output directory
|
|
112
|
+
4. **Update** project state by calling `dojo_update_state` to record skill completion and any phase transitions
|
|
113
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "dojo-genesis-plugin-seed-to-skill-converter",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Elevate proven seeds into full skills",
|
|
5
|
+
"author": "dojo-genesis",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"permissions": [],
|
|
8
|
+
"entry": "SKILL.md",
|
|
9
|
+
"tags": ["dojo-genesis", "orchestration", "garden", "memory"],
|
|
10
|
+
"models": ["claude-*", "gpt-*", "gemini-*"],
|
|
11
|
+
"minOpenClawVersion": "2026.1.0"
|
|
12
|
+
}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: semantic-clusters
|
|
3
|
+
description: Map software system capabilities using action-verb clusters that group components by what they DO rather than where they live. Produces behavioral architecture revealing capabilities, gaps, and architectural confusion. Use when you need to understand what a codebase does, explain a system to others, plan refactors, audit feature coverage, or understand cross-cutting concerns. Trigger phrases: 'what does this app actually do', 'walk me through the features', 'what are the main capabilities', 'map the system architecture', 'understand this codebase'.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
> **OpenClaw Integration:** This skill is invoked by the Dojo Genesis plugin via `/dojo run semantic-clusters`.
|
|
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
|
+
# Semantic Clusters Skill
|
|
12
|
+
|
|
13
|
+
**Version:** 1.0
|
|
14
|
+
**Created:** 2026-02-08
|
|
15
|
+
**Author:** Cruz + Manus (Cowork)
|
|
16
|
+
**Origin:** Elevated from the `repo-status` skill's semantic clusters reference, which was codified from a live strategic-scout audit of Dojo Genesis (13 clusters, 333 Go files, 416 frontend files mapped).
|
|
17
|
+
**Lineage:** strategic-scout (exploration) → repo-status (formalization) → this standalone skill.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## I. The Philosophy: Behavior Over Location
|
|
22
|
+
|
|
23
|
+
Every codebase has two architectures:
|
|
24
|
+
|
|
25
|
+
1. **The filesystem architecture** — where files live. Directories, packages, modules. This is what `ls` shows you.
|
|
26
|
+
2. **The behavioral architecture** — what the system *does*. Capabilities that cross-cut directories, features that span layers.
|
|
27
|
+
|
|
28
|
+
Most people only see architecture #1. They think in terms of `frontend/`, `backend/`, `utils/`. But understanding comes from architecture #2 — the verbs.
|
|
29
|
+
|
|
30
|
+
A "chat" feature isn't in one directory. It's a component in the frontend, a handler in the backend, a state engine in a context, a streaming service, an SSE connection, and a set of tools. These parts live in 6 different directories. But they all serve one verb: **CONVERSE**.
|
|
31
|
+
|
|
32
|
+
Semantic clusters make the behavioral architecture visible. Each cluster is named with an action verb, and every significant component in the codebase maps to one (sometimes two) clusters. The result is a map of *what the system can do* — not just where its files happen to be.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## II. When to Use This Skill
|
|
37
|
+
|
|
38
|
+
- **Exploring a new codebase:** Before diving into files, map the behavioral capabilities to build your mental model.
|
|
39
|
+
- **Explaining a system:** Clusters make better explanations than directory trees because they answer "what does it do?" not "where are the files?"
|
|
40
|
+
- **Planning a refactor:** Clusters reveal which components serve the same capability. Refactoring within a cluster is safer than across clusters.
|
|
41
|
+
- **Auditing feature coverage:** Clusters expose gaps — capabilities the system lacks or has only partially implemented.
|
|
42
|
+
- **Identifying architectural confusion:** If a component maps to 3+ clusters, it's probably doing too much. If a directory has components in 5 different clusters, it may need restructuring.
|
|
43
|
+
- **Writing status documents:** Section 4 of the `status-template` skill uses clusters. This skill provides the methodology.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## III. The Starter Verbs
|
|
48
|
+
|
|
49
|
+
These 13 action verbs cover most software systems. Read `references/verb-catalog.md` for detailed definitions, component examples, and signals for each.
|
|
50
|
+
|
|
51
|
+
| Verb | What It Means | Example Systems That Need It |
|
|
52
|
+
|------|--------------|---------------------------|
|
|
53
|
+
| **CONVERSE** | Real-time communication with users | Chat apps, messaging, support tools |
|
|
54
|
+
| **REASON** | Thinking, planning, deciding | AI agents, rule engines, recommendation systems |
|
|
55
|
+
| **REMEMBER** | Storing and recalling knowledge | Knowledge bases, caching, memory systems |
|
|
56
|
+
| **OBSERVE** | Watching and reporting | Monitoring, analytics, logging, tracing |
|
|
57
|
+
| **LEARN** | Adapting based on feedback | Calibration, A/B testing, preference learning |
|
|
58
|
+
| **ACT** | Executing side effects | Tool systems, API calls, file operations, cron |
|
|
59
|
+
| **PROTECT** | Enforcing boundaries | Auth, encryption, rate limiting, validation |
|
|
60
|
+
| **CONNECT** | Integrating externally | Plugins, APIs, webhooks, bots, OAuth |
|
|
61
|
+
| **PRESENT** | Rendering UI | Shells, layouts, component libraries, themes |
|
|
62
|
+
| **PERSIST** | Storing data durably | Databases, migrations, ORMs, caches |
|
|
63
|
+
| **BUILD** | Building, testing, shipping | CI/CD, Docker, scripts, test suites |
|
|
64
|
+
| **THINK** | Meta-cognition about itself | Skills, prompts, documentation, retrospectives |
|
|
65
|
+
| **ORCHESTRATE** | Coordinating multi-step work | DAG engines, task queues, workflows, sagas |
|
|
66
|
+
|
|
67
|
+
Not every project needs all 13. A simple CRUD app might only have CONVERSE, PERSIST, PRESENT, PROTECT, and BUILD. A complex AI platform might use all 13 plus custom ones.
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## IV. The Clustering Workflow
|
|
72
|
+
|
|
73
|
+
### Step 1: Inventory First
|
|
74
|
+
|
|
75
|
+
You can't cluster what you haven't seen. Before clustering, you need a component inventory — a list of every significant component with its location, approximate LOC, and current status.
|
|
76
|
+
|
|
77
|
+
If you've already run the `repo-status` skill (Phase 2), use that inventory. Otherwise, walk the filesystem yourself:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# Get top-level shape
|
|
81
|
+
ls -la project-root/
|
|
82
|
+
|
|
83
|
+
# Recursively explore significant directories
|
|
84
|
+
find project-root/src -type f | head -50
|
|
85
|
+
find project-root/backend -type d
|
|
86
|
+
|
|
87
|
+
# Count LOC per directory
|
|
88
|
+
find project-root/backend -name "*.go" | xargs wc -l | tail -1
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Step 2: Assign Verbs
|
|
92
|
+
|
|
93
|
+
For each significant component in your inventory, ask: **"What verb describes what this does?"**
|
|
94
|
+
|
|
95
|
+
Rules of thumb:
|
|
96
|
+
- Most components map to **one** verb. If you can't decide, pick the one that best describes the component's *primary purpose*.
|
|
97
|
+
- Some components legitimately serve **two** verbs (cross-cluster). This is fine — note both.
|
|
98
|
+
- If a component maps to **three or more** verbs, it's probably doing too much. Flag it as an architectural concern.
|
|
99
|
+
- If a component doesn't fit any verb, it might be dead code, or you might need a **new verb** (see Section V).
|
|
100
|
+
|
|
101
|
+
### Step 3: Build Cluster Tables
|
|
102
|
+
|
|
103
|
+
For each verb that has components, create a subsection:
|
|
104
|
+
|
|
105
|
+
```markdown
|
|
106
|
+
### [emoji] VERB — [Short Description]
|
|
107
|
+
> [One sentence explaining what this capability means.]
|
|
108
|
+
|
|
109
|
+
| Component | Location | Status | LOC |
|
|
110
|
+
|-----------|----------|--------|-----|
|
|
111
|
+
| [Name] | [path/] | [emoji] | [~number] |
|
|
112
|
+
|
|
113
|
+
**Health:** [emoji] [one-line assessment]
|
|
114
|
+
**Audit Notes:** [technical details, constraints, risks — 1-2 lines]
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Choosing emojis for verbs:**
|
|
118
|
+
| Verb | Suggested Emoji |
|
|
119
|
+
|------|----------------|
|
|
120
|
+
| CONVERSE | 🗣️ |
|
|
121
|
+
| REASON | 🧠 |
|
|
122
|
+
| REMEMBER | 💾 |
|
|
123
|
+
| OBSERVE | 👁️ |
|
|
124
|
+
| LEARN | 📚 |
|
|
125
|
+
| ACT | 🔧 |
|
|
126
|
+
| PROTECT | 🛡️ |
|
|
127
|
+
| CONNECT | 🔌 |
|
|
128
|
+
| PRESENT | 🎨 |
|
|
129
|
+
| PERSIST | 💿 |
|
|
130
|
+
| BUILD | 🏗️ |
|
|
131
|
+
| THINK | 💭 |
|
|
132
|
+
| ORCHESTRATE | 🎼 |
|
|
133
|
+
|
|
134
|
+
### Step 4: Identify Cross-Cluster Components
|
|
135
|
+
|
|
136
|
+
Some components serve multiple clusters. List these explicitly:
|
|
137
|
+
|
|
138
|
+
```markdown
|
|
139
|
+
### Cross-Cluster Components
|
|
140
|
+
| Component | Directory | Primary Cluster | Secondary | Notes |
|
|
141
|
+
|-----------|-----------|----------------|-----------|-------|
|
|
142
|
+
| [Name] | [path/] | [VERB] | [VERB] | [Why] |
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
This table is gold for understanding coupling. Components that are cross-cluster are integration points — they're where changes in one capability can break another.
|
|
146
|
+
|
|
147
|
+
### Step 5: Identify Orphans
|
|
148
|
+
|
|
149
|
+
Walk the directory tree and check: **is every significant directory represented in at least one cluster?**
|
|
150
|
+
|
|
151
|
+
Orphan directories — significant code that doesn't map to any cluster — signal one of three things:
|
|
152
|
+
1. **Dead code** that should be removed.
|
|
153
|
+
2. **An emerging capability** that deserves its own verb.
|
|
154
|
+
3. **A gap in your analysis** that needs a second look.
|
|
155
|
+
|
|
156
|
+
Document orphans explicitly. Don't sweep them under the rug.
|
|
157
|
+
|
|
158
|
+
### Step 6: Write Health Assessments
|
|
159
|
+
|
|
160
|
+
For each cluster, write a 2-line health assessment:
|
|
161
|
+
- **Health line:** Overall emoji + one-sentence verdict.
|
|
162
|
+
- **Audit Notes line:** Key constraints, risks, or technical details.
|
|
163
|
+
|
|
164
|
+
Be honest. A cluster with 85% test coverage and active development is ✅. A cluster with no tests and a known security gap is ⚠️. A cluster that's completely broken is ❌.
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## V. Creating New Verbs
|
|
169
|
+
|
|
170
|
+
The 13 starter verbs are a starting point. Your project may need verbs not on the list.
|
|
171
|
+
|
|
172
|
+
**Good custom verbs** are specific and immediately communicative:
|
|
173
|
+
| Verb | Use When |
|
|
174
|
+
|------|----------|
|
|
175
|
+
| TRANSLATE | i18n-heavy apps, multi-language support |
|
|
176
|
+
| SIMULATE | Apps with simulation engines, digital twins |
|
|
177
|
+
| COMPOSE | Content creation tools, editors, IDEs |
|
|
178
|
+
| GOVERN | Apps with complex compliance, policy, approval workflows |
|
|
179
|
+
| DISCOVER | Search-heavy apps, recommendation engines, explorers |
|
|
180
|
+
| TRANSFORM | Data pipeline apps, ETL systems, media converters |
|
|
181
|
+
| SCHEDULE | Calendar-heavy apps, booking systems, cron managers |
|
|
182
|
+
| NOTIFY | Apps where notification delivery is a core capability |
|
|
183
|
+
|
|
184
|
+
**Bad custom verbs** are vague and don't tell you anything:
|
|
185
|
+
- MANAGE (manage *what*?)
|
|
186
|
+
- PROCESS (process *what*?)
|
|
187
|
+
- HANDLE (handle *what*?)
|
|
188
|
+
- DO (everything "does" something)
|
|
189
|
+
|
|
190
|
+
The test: can someone read just the verb name and guess what kinds of components belong in that cluster? If yes, it's a good verb.
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## VI. Common Pitfalls
|
|
195
|
+
|
|
196
|
+
**1. Over-clustering.** Don't create 20 clusters for a 30-file project. If a cluster has only 1-2 components, merge it with a related cluster. A good rule: 4-8 clusters for small projects, 8-15 for large ones.
|
|
197
|
+
|
|
198
|
+
**2. Under-clustering.** Don't dump everything into PRESENT and PERSIST. If a cluster has 25+ components, consider splitting it. PRESENT might split into PRESENT (layout) and COMPOSE (content editing).
|
|
199
|
+
|
|
200
|
+
**3. Confusing location with behavior.** A component in `frontend/src/components/` isn't automatically PRESENT. A dashboard that displays traces belongs in OBSERVE. A form that manages API keys belongs in PROTECT. Let the *behavior* dictate the cluster, not the directory.
|
|
201
|
+
|
|
202
|
+
**4. Ignoring tests.** Tests belong in BUILD, not in the cluster of the code they test. They're infrastructure, not capabilities.
|
|
203
|
+
|
|
204
|
+
**5. Forgetting infrastructure.** CI/CD, Docker, and deployment configs are real capabilities. BUILD is a real cluster, not an afterthought.
|
|
205
|
+
|
|
206
|
+
**6. Treating clusters as hierarchical.** Clusters are *flat*. REASON is not "above" ACT. They're peers — different capabilities of the same system. The component tables within each cluster may have internal hierarchy, but the clusters themselves don't.
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## VII. Using Clusters Beyond Status Documents
|
|
211
|
+
|
|
212
|
+
Semantic clusters have applications beyond the status-template:
|
|
213
|
+
|
|
214
|
+
- **Architecture Decision Records (ADRs):** Frame decisions by which cluster they affect. "This ADR impacts REASON and ORCHESTRATE."
|
|
215
|
+
- **Sprint planning:** Assign work by cluster. "This sprint we're focused on OBSERVE and PRESENT."
|
|
216
|
+
- **Code review:** Ask "which cluster does this PR touch?" A PR that modifies 4+ clusters deserves extra scrutiny.
|
|
217
|
+
- **Onboarding:** Walk new team members through clusters, not directories. "Let me explain what this system can DO."
|
|
218
|
+
- **Technical debt tracking:** Rate each cluster's health independently. Focus debt reduction on ⚠️ and ❌ clusters.
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## VIII. Quality Checklist
|
|
223
|
+
|
|
224
|
+
Before delivering your semantic cluster map, confirm:
|
|
225
|
+
|
|
226
|
+
- [ ] Every significant component maps to at least one cluster
|
|
227
|
+
- [ ] No cluster has fewer than 2 components (merge if so)
|
|
228
|
+
- [ ] No cluster has more than 20 components (split if so)
|
|
229
|
+
- [ ] Cross-cluster components are explicitly listed
|
|
230
|
+
- [ ] Orphan directories are documented and explained
|
|
231
|
+
- [ ] Each cluster has a health assessment with emoji + notes
|
|
232
|
+
- [ ] Custom verbs (if any) pass the "can you guess the contents?" test
|
|
233
|
+
- [ ] The cluster map covers both frontend and backend (if applicable)
|
|
234
|
+
- [ ] LOC estimates are approximate but not fictional
|
|
235
|
+
- [ ] The map tells a coherent story about what the system does
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## OpenClaw Tool Integration
|
|
239
|
+
|
|
240
|
+
When running inside the Dojo Genesis plugin:
|
|
241
|
+
|
|
242
|
+
1. **Start** by calling `dojo_get_context` to retrieve full project state, history, and artifacts
|
|
243
|
+
2. **During** the skill, follow the workflow steps documented above
|
|
244
|
+
3. **Save** outputs using `dojo_save_artifact` with the `artifacts` output directory
|
|
245
|
+
4. **Update** project state by calling `dojo_update_state` to record skill completion and any phase transitions
|
|
246
|
+
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "dojo-genesis-plugin-semantic-clusters",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Map system capabilities with action-verb clusters",
|
|
5
|
+
"author": "dojo-genesis",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"permissions": [],
|
|
8
|
+
"entry": "SKILL.md",
|
|
9
|
+
"tags": ["dojo-genesis", "orchestration", "system", "health"],
|
|
10
|
+
"models": ["claude-*", "gpt-*", "gemini-*"],
|
|
11
|
+
"minOpenClawVersion": "2026.1.0"
|
|
12
|
+
}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
# Verb Catalog — Complete Reference
|
|
2
|
+
|
|
3
|
+
**Purpose:** Detailed definitions, typical components, signals, and examples for each of the 13 starter action verbs plus guidance on creating custom verbs.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## The 13 Starter Verbs
|
|
8
|
+
|
|
9
|
+
### CONVERSE
|
|
10
|
+
**Definition:** The system communicates with users in real-time through conversational interfaces.
|
|
11
|
+
|
|
12
|
+
**Typical components:**
|
|
13
|
+
- Chat UI components (message lists, input bars, bubbles)
|
|
14
|
+
- WebSocket or SSE handlers for real-time streaming
|
|
15
|
+
- Message models and serialization
|
|
16
|
+
- Command parsers and slash-command handlers
|
|
17
|
+
- Notification/toast systems for message delivery
|
|
18
|
+
- Typing indicators, read receipts, presence
|
|
19
|
+
|
|
20
|
+
**Signals you need this cluster:** The app has a chat, messaging, real-time communication, or conversational interface.
|
|
21
|
+
|
|
22
|
+
**Not CONVERSE:** A static contact form (that's PRESENT + ACT). Email sending (that's ACT). Push notifications (that's NOTIFY or ACT).
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
### REASON
|
|
27
|
+
**Definition:** The system thinks, plans, classifies, or makes autonomous decisions.
|
|
28
|
+
|
|
29
|
+
**Typical components:**
|
|
30
|
+
- AI agents and assistants
|
|
31
|
+
- Intent classifiers and NLU pipelines
|
|
32
|
+
- Orchestration engines and planners
|
|
33
|
+
- Rule engines and decision trees
|
|
34
|
+
- Recommendation algorithms
|
|
35
|
+
- Response caching and deduplication
|
|
36
|
+
|
|
37
|
+
**Signals:** The app has an AI agent, automated planning, intent classification, or autonomous decision-making that goes beyond simple if/else logic.
|
|
38
|
+
|
|
39
|
+
**Not REASON:** A form validation rule (that's PROTECT). A simple switch/case router (that's ACT). A user-configured filter (that's PRESENT).
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
### REMEMBER
|
|
44
|
+
**Definition:** The system stores and recalls knowledge over time, beyond simple data persistence.
|
|
45
|
+
|
|
46
|
+
**Typical components:**
|
|
47
|
+
- Memory managers with multi-tier storage
|
|
48
|
+
- Vector embeddings and semantic search
|
|
49
|
+
- Knowledge base systems
|
|
50
|
+
- Seed/snippet/template libraries
|
|
51
|
+
- Compression and summarization services
|
|
52
|
+
- Context builders that assemble relevant memory
|
|
53
|
+
|
|
54
|
+
**Signals:** The app has a memory, knowledge base, or learning component that persists across sessions and influences future behavior. Distinct from PERSIST, which is raw data storage.
|
|
55
|
+
|
|
56
|
+
**Not REMEMBER:** A database table (that's PERSIST). A user preferences file (that's LEARN or PERSIST). A cache layer (that's PERSIST or ACT).
|
|
57
|
+
|
|
58
|
+
**REMEMBER vs PERSIST:** PERSIST stores data. REMEMBER stores *knowledge* — data with semantic meaning, retrieval by relevance, and influence on system behavior. If the system just saves and loads rows, that's PERSIST. If it embeds, searches by similarity, compresses, and builds context from memories, that's REMEMBER.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
### OBSERVE
|
|
63
|
+
**Definition:** The system watches itself and reports what it sees — monitoring, tracing, and metrics.
|
|
64
|
+
|
|
65
|
+
**Typical components:**
|
|
66
|
+
- Trace loggers and span trackers
|
|
67
|
+
- Cost calculators and budget trackers
|
|
68
|
+
- Event buses and event sourcing
|
|
69
|
+
- Metrics collectors and dashboards
|
|
70
|
+
- Audit logs and activity feeds
|
|
71
|
+
- Health check endpoints
|
|
72
|
+
|
|
73
|
+
**Signals:** The app has logging, tracing, analytics, monitoring, or cost-tracking features. Any form of self-awareness about its own behavior.
|
|
74
|
+
|
|
75
|
+
**Not OBSERVE:** Application error handling (that's PROTECT). User analytics (that could be OBSERVE or a custom DISCOVER/ANALYZE verb depending on depth).
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
### LEARN
|
|
80
|
+
**Definition:** The system adapts its behavior based on feedback, patterns, or observations.
|
|
81
|
+
|
|
82
|
+
**Typical components:**
|
|
83
|
+
- Calibration engines
|
|
84
|
+
- Feedback collection and processing
|
|
85
|
+
- Preference systems (user and system)
|
|
86
|
+
- Pattern learners and trend detectors
|
|
87
|
+
- A/B testing frameworks
|
|
88
|
+
- Recommendation tuning
|
|
89
|
+
|
|
90
|
+
**Signals:** The system changes its behavior over time based on user feedback, observed patterns, or calibration. Not just storing preferences (that's PERSIST) — actually using them to modify behavior.
|
|
91
|
+
|
|
92
|
+
**LEARN vs REMEMBER:** REMEMBER stores knowledge for retrieval. LEARN changes behavior based on feedback. A system that remembers your name is REMEMBER. A system that learns to give shorter answers because you prefer conciseness is LEARN.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### ACT
|
|
97
|
+
**Definition:** The system executes side effects — doing things in the world beyond its own boundaries.
|
|
98
|
+
|
|
99
|
+
**Typical components:**
|
|
100
|
+
- Tool registries and tool execution engines
|
|
101
|
+
- File operations (read, write, search)
|
|
102
|
+
- API client calls to external services
|
|
103
|
+
- Email/SMS/notification sending
|
|
104
|
+
- Webhook dispatching
|
|
105
|
+
- Cron jobs and scheduled tasks
|
|
106
|
+
- Code execution sandboxes
|
|
107
|
+
|
|
108
|
+
**Signals:** The app executes side effects — writes files, calls external APIs, sends communications, triggers external systems.
|
|
109
|
+
|
|
110
|
+
**Not ACT:** Reading data from a database (that's PERSIST). Rendering UI (that's PRESENT). Internal event emission (that's OBSERVE).
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
### PROTECT
|
|
115
|
+
**Definition:** The system enforces boundaries, safety, and security constraints.
|
|
116
|
+
|
|
117
|
+
**Typical components:**
|
|
118
|
+
- Authentication middleware (JWT, OAuth, sessions)
|
|
119
|
+
- Authorization and RBAC
|
|
120
|
+
- Encryption services (at rest and in transit)
|
|
121
|
+
- Secure storage (keychains, vaults)
|
|
122
|
+
- Rate limiters and throttling
|
|
123
|
+
- Input validation and sanitization
|
|
124
|
+
- CSRF/XSS protection
|
|
125
|
+
- Budget enforcement and spending limits
|
|
126
|
+
|
|
127
|
+
**Signals:** The app has authentication, authorization, encryption, rate limiting, or any form of boundary enforcement.
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
### CONNECT
|
|
132
|
+
**Definition:** The system integrates with external services and platforms.
|
|
133
|
+
|
|
134
|
+
**Typical components:**
|
|
135
|
+
- Plugin architectures (gRPC, IPC, WASM)
|
|
136
|
+
- OAuth flows and token management
|
|
137
|
+
- Webhook receivers
|
|
138
|
+
- Bot integrations (Slack, Telegram, Discord)
|
|
139
|
+
- Import/export services
|
|
140
|
+
- Third-party SDK wrappers
|
|
141
|
+
|
|
142
|
+
**Signals:** The app talks to third-party services, has a plugin system, or supports integrations.
|
|
143
|
+
|
|
144
|
+
**CONNECT vs ACT:** ACT is about executing a side effect (sending an email, calling an API). CONNECT is about the *infrastructure* for integration — the plugin system, the OAuth flow, the webhook receiver. If you're building a Telegram bot integration, the bot framework is CONNECT; sending a specific message through it is ACT.
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
### PRESENT
|
|
149
|
+
**Definition:** The system renders user interfaces for human interaction.
|
|
150
|
+
|
|
151
|
+
**Typical components:**
|
|
152
|
+
- Layout shells and responsive containers
|
|
153
|
+
- Routing configurations
|
|
154
|
+
- Component libraries
|
|
155
|
+
- Style systems and themes
|
|
156
|
+
- Sidebar/panel/drawer management
|
|
157
|
+
- Form components and interactive controls
|
|
158
|
+
|
|
159
|
+
**Signals:** The app has a user-facing frontend — web, mobile, or desktop.
|
|
160
|
+
|
|
161
|
+
**Caveat:** Not every frontend component is PRESENT. A dashboard showing traces is OBSERVE. A settings page managing API keys is PROTECT. Let the *purpose* of the component determine the cluster, not its location in the frontend directory.
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
### PERSIST
|
|
166
|
+
**Definition:** The system stores data durably and reliably.
|
|
167
|
+
|
|
168
|
+
**Typical components:**
|
|
169
|
+
- Database managers and connection pools
|
|
170
|
+
- ORMs and query builders
|
|
171
|
+
- Migration systems (schema evolution)
|
|
172
|
+
- Seed data and fixtures
|
|
173
|
+
- Backup and restore scripts
|
|
174
|
+
- Cache layers (Redis, in-memory)
|
|
175
|
+
- File storage services
|
|
176
|
+
|
|
177
|
+
**Signals:** The app has a database, file storage, or any form of durable state.
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
### BUILD
|
|
182
|
+
**Definition:** The system builds, tests, and ships itself.
|
|
183
|
+
|
|
184
|
+
**Typical components:**
|
|
185
|
+
- CI/CD workflows (GitHub Actions, Jenkins, CircleCI)
|
|
186
|
+
- Docker configurations
|
|
187
|
+
- Build scripts and Makefiles
|
|
188
|
+
- Test suites (unit, integration, e2e)
|
|
189
|
+
- Linters and formatters
|
|
190
|
+
- Release automation
|
|
191
|
+
- Storybook or component playgrounds
|
|
192
|
+
- Performance benchmarks
|
|
193
|
+
|
|
194
|
+
**Signals:** The project has CI/CD, Docker, build scripts, or test infrastructure.
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
### THINK
|
|
199
|
+
**Definition:** The system reasons about itself at a meta level — meta-cognition.
|
|
200
|
+
|
|
201
|
+
**Typical components:**
|
|
202
|
+
- Skills and prompt libraries
|
|
203
|
+
- Knowledge artifacts and compressions
|
|
204
|
+
- Retrospectives and lessons learned
|
|
205
|
+
- Design documents and architectural decision records
|
|
206
|
+
- Template libraries for common tasks
|
|
207
|
+
|
|
208
|
+
**Signals:** The project has a meta-cognitive layer — skills, prompts, structured thinking artifacts, or self-reflective documentation that influences how the system is built and maintained.
|
|
209
|
+
|
|
210
|
+
**Not THINK:** A README (that's documentation, part of BUILD). API documentation (that's BUILD). THINK is specifically about meta-cognition — the system's knowledge about how to work on itself.
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
### ORCHESTRATE
|
|
215
|
+
**Definition:** The system coordinates multi-step, potentially parallel work.
|
|
216
|
+
|
|
217
|
+
**Typical components:**
|
|
218
|
+
- DAG engines and workflow managers
|
|
219
|
+
- Task queue systems
|
|
220
|
+
- Saga patterns and compensating transactions
|
|
221
|
+
- State machines for complex flows
|
|
222
|
+
- Parallel execution coordinators
|
|
223
|
+
- Circuit breakers and retry logic
|
|
224
|
+
|
|
225
|
+
**Signals:** The app decomposes complex tasks into sub-tasks and manages their execution, potentially in parallel with dependency tracking.
|
|
226
|
+
|
|
227
|
+
**ORCHESTRATE vs REASON:** REASON decides *what* to do. ORCHESTRATE manages *how* to execute it across multiple steps. An intent classifier is REASON. A DAG engine that runs 5 tasks in parallel with dependency ordering is ORCHESTRATE.
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## Creating Custom Verbs
|
|
232
|
+
|
|
233
|
+
When the 13 starters don't cover your system, create new verbs.
|
|
234
|
+
|
|
235
|
+
### Process
|
|
236
|
+
|
|
237
|
+
1. **Identify the gap.** You have components that don't fit any existing cluster.
|
|
238
|
+
2. **Name the behavior.** What do these orphan components *do*? Use a single, active verb.
|
|
239
|
+
3. **Test the name.** Can someone unfamiliar with the project guess what components belong in this cluster? If not, try a different verb.
|
|
240
|
+
4. **Pick an emoji.** Visual distinctiveness helps scanning.
|
|
241
|
+
5. **Write a one-sentence definition.** Same format as the starters above.
|
|
242
|
+
|
|
243
|
+
### Good Custom Verbs
|
|
244
|
+
|
|
245
|
+
| Verb | Emoji | Use When |
|
|
246
|
+
|------|-------|----------|
|
|
247
|
+
| TRANSLATE | 🌐 | i18n, multi-language, localization is a core feature |
|
|
248
|
+
| SIMULATE | 🧪 | Physics engines, digital twins, what-if scenarios |
|
|
249
|
+
| COMPOSE | ✏️ | Rich text editors, content creation tools |
|
|
250
|
+
| GOVERN | ⚖️ | Compliance, approval workflows, policy engines |
|
|
251
|
+
| DISCOVER | 🔍 | Search, exploration, recommendation discovery |
|
|
252
|
+
| TRANSFORM | 🔄 | Data pipelines, ETL, media conversion |
|
|
253
|
+
| SCHEDULE | 📅 | Booking systems, calendar management, cron |
|
|
254
|
+
| NOTIFY | 🔔 | Notification delivery as a core capability (beyond ACT) |
|
|
255
|
+
| RENDER | 🖼️ | 3D rendering, video processing, image generation |
|
|
256
|
+
| MEASURE | 📊 | Measurement/sensor systems (beyond OBSERVE) |
|
|
257
|
+
|
|
258
|
+
### Verbs to Avoid
|
|
259
|
+
|
|
260
|
+
| Bad Verb | Why | Better Alternative |
|
|
261
|
+
|----------|-----|-------------------|
|
|
262
|
+
| MANAGE | Too vague — manage what? | Use the specific behavior verb |
|
|
263
|
+
| PROCESS | Too vague — process what? | TRANSFORM, ANALYZE, CONVERT |
|
|
264
|
+
| HANDLE | Too vague — handle what? | Name the specific handling |
|
|
265
|
+
| DO | Everything "does" something | Not a useful cluster name |
|
|
266
|
+
| RUN | Same as DO | EXECUTE, ORCHESTRATE, or ACT |
|
|
267
|
+
| WORK | Meaningless | Name the specific work |
|