@cleocode/cleo 2026.3.12 → 2026.3.14
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/README.md +19 -16
- package/dist/cli/index.js +18790 -11784
- package/dist/cli/index.js.map +4 -4
- package/dist/mcp/index.js +29402 -19482
- package/dist/mcp/index.js.map +4 -4
- package/drizzle/20260305011924_cheerful_mongu/migration.sql +2 -0
- package/drizzle/20260305011924_cheerful_mongu/snapshot.json +2662 -0
- package/drizzle/20260305203927_demonic_storm/migration.sql +28 -0
- package/drizzle/20260305203927_demonic_storm/snapshot.json +2924 -0
- package/drizzle/20260306001243_spooky_rage/migration.sql +25 -0
- package/drizzle/20260306001243_spooky_rage/snapshot.json +2939 -0
- package/drizzle-brain/20260301230215_workable_spitfire/migration.sql +68 -0
- package/drizzle-brain/20260301230215_workable_spitfire/snapshot.json +651 -0
- package/drizzle-brain/20260302050325_unknown_justin_hammer/migration.sql +23 -0
- package/drizzle-brain/20260302050325_unknown_justin_hammer/snapshot.json +884 -0
- package/drizzle-brain/20260302061755_unusual_jamie_braddock/migration.sql +2 -0
- package/drizzle-brain/20260302061755_unusual_jamie_braddock/snapshot.json +908 -0
- package/drizzle-brain/20260302193548_luxuriant_glorian/migration.sql +20 -0
- package/drizzle-brain/20260302193548_luxuriant_glorian/snapshot.json +1078 -0
- package/drizzle-brain/20260304045002_white_thunderbolt_ross/migration.sql +16 -0
- package/drizzle-brain/20260304045002_white_thunderbolt_ross/snapshot.json +1233 -0
- package/package.json +3 -3
- package/packages/ct-skills/skills/_shared/skill-chaining-patterns.md +1 -1
- package/packages/ct-skills/skills/_shared/subagent-protocol-base.md +1 -1
- package/packages/ct-skills/skills/ct-cleo/SKILL.md +16 -7
- package/packages/ct-skills/skills/ct-cleo/references/loom-lifecycle.md +1 -1
- package/packages/ct-skills/skills/ct-cleo/references/orchestrator-constraints.md +3 -3
- package/packages/ct-skills/skills/ct-cleo/references/session-protocol.md +5 -5
- package/packages/ct-skills/skills/ct-epic-architect/references/patterns.md +1 -1
- package/packages/ct-skills/skills/ct-grade/SKILL.md +9 -9
- package/packages/ct-skills/skills/ct-orchestrator/SKILL.md +43 -43
- package/packages/ct-skills/skills/ct-skill-creator/SKILL.md +1 -1
- package/packages/ct-skills/skills/ct-skill-creator/scripts/init_skill.py +16 -10
- package/packages/ct-skills/skills/ct-stickynote/README.md +14 -0
- package/packages/ct-skills/skills/ct-stickynote/SKILL.md +46 -0
- package/packages/ct-skills/skills.json +3 -3
- package/schemas/nexus-registry.schema.json +1 -1
- package/schemas/operation-constitution.schema.json +438 -0
- package/schemas/system-flow-atlas.schema.json +125 -0
- package/server.json +4 -4
- package/templates/CLEO-INJECTION.md +12 -12
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cleocode/cleo",
|
|
3
|
-
"version": "2026.3.
|
|
3
|
+
"version": "2026.3.14",
|
|
4
4
|
"description": "CLEO V2 - TypeScript task management CLI for AI coding agents",
|
|
5
5
|
"mcpName": "io.github.kryptobaseddev/cleo-mcp-server",
|
|
6
6
|
"type": "module",
|
|
@@ -31,7 +31,6 @@
|
|
|
31
31
|
"prepare": "npm run build",
|
|
32
32
|
"prepack": "npm run build",
|
|
33
33
|
"postinstall": "node bin/postinstall.js",
|
|
34
|
-
"migrate:todos": "node dist/scripts/migrate-todo-to-tasks.js",
|
|
35
34
|
"cleo:update-status": "node dist/scripts/update-task-status.js",
|
|
36
35
|
"adr:validate": "tsx dev/validate-adrs.ts",
|
|
37
36
|
"adr:manifest": "tsx dev/generate-adr-manifest.ts",
|
|
@@ -56,6 +55,7 @@
|
|
|
56
55
|
"files": [
|
|
57
56
|
"dist",
|
|
58
57
|
"drizzle",
|
|
58
|
+
"drizzle-brain",
|
|
59
59
|
"packages/ct-skills",
|
|
60
60
|
"schemas",
|
|
61
61
|
"templates",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"bin"
|
|
66
66
|
],
|
|
67
67
|
"dependencies": {
|
|
68
|
-
"@cleocode/caamp": "^1.
|
|
68
|
+
"@cleocode/caamp": "^1.6.0",
|
|
69
69
|
"@cleocode/lafs-protocol": "^1.6.0",
|
|
70
70
|
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
71
71
|
"ajv": "^8.18.0",
|
|
@@ -37,7 +37,7 @@ The orchestrator delegates work to a subagent via `orchestrate.spawn` with skill
|
|
|
37
37
|
|
|
38
38
|
```
|
|
39
39
|
# 1. Generate fully-resolved spawn prompt via MCP
|
|
40
|
-
|
|
40
|
+
mutate({ domain: "orchestrate", operation: "spawn", params: { taskId: "T1234" }})
|
|
41
41
|
|
|
42
42
|
# 2. Provider adapter executes the prompt using its native mechanism
|
|
43
43
|
# - Claude Code: Task tool with cleo-subagent type
|
|
@@ -95,7 +95,7 @@ See the reference above for:
|
|
|
95
95
|
|
|
96
96
|
## Task Lifecycle Integration (LOOM)
|
|
97
97
|
|
|
98
|
-
All work follows the **LOOM** (Logical Order of Operations Methodology) framework through the RCASD-IVTR+C pipeline stages. See `docs/concepts/
|
|
98
|
+
All work follows the **LOOM** (Logical Order of Operations Methodology) framework through the RCASD-IVTR+C pipeline stages. See `docs/concepts/CLEO-VISION.md` for the complete LOOM framework, neural hierarchy model, and brain metaphor mapping.
|
|
99
99
|
|
|
100
100
|
Reference: @skills/_shared/task-system-integration.md
|
|
101
101
|
|
|
@@ -19,9 +19,9 @@ CLEO is the task management protocol for AI coding agents. It provides structure
|
|
|
19
19
|
|
|
20
20
|
## MCP-First Workflow
|
|
21
21
|
|
|
22
|
-
MCP is the **primary** entry point. Use `
|
|
22
|
+
MCP is the **primary** entry point. Use `query` for reads and `mutate` for writes.
|
|
23
23
|
|
|
24
|
-
### Key Read Operations (`
|
|
24
|
+
### Key Read Operations (`query`)
|
|
25
25
|
|
|
26
26
|
| Domain | Operation | Description |
|
|
27
27
|
|--------|-----------|-------------|
|
|
@@ -42,8 +42,10 @@ MCP is the **primary** entry point. Use `cleo_query` for reads and `cleo_mutate`
|
|
|
42
42
|
| `skills` | `show` | Skill details (`params: { name }`) |
|
|
43
43
|
| `pipeline` | `stage.status` | Pipeline stage for epic (`params: { epicId }`) |
|
|
44
44
|
| `pipeline` | `stage.validate` | Validate gate before advancing (`params: { epicId, stage }`) |
|
|
45
|
+
| `sticky` | `list` | List sticky notes (`params: { status?, tag? }`) |
|
|
46
|
+
| `sticky` | `show` | Show sticky details (`params: { stickyId }`) |
|
|
45
47
|
|
|
46
|
-
### Key Write Operations (`
|
|
48
|
+
### Key Write Operations (`mutate`)
|
|
47
49
|
|
|
48
50
|
| Domain | Operation | Description |
|
|
49
51
|
|--------|-----------|-------------|
|
|
@@ -58,6 +60,9 @@ MCP is the **primary** entry point. Use `cleo_query` for reads and `cleo_mutate`
|
|
|
58
60
|
| `orchestrate` | `spawn` | Generate spawn prompt for subagent (`params: { taskId }`) |
|
|
59
61
|
| `pipeline` | `stage.record` | Record pipeline stage progress (`params: { epicId, stage, status }`) |
|
|
60
62
|
| `pipeline` | `stage.gate.pass` | Advance pipeline to next stage (`params: { epicId, stage }`) |
|
|
63
|
+
| `sticky` | `add` | Create sticky note (`params: { content, tags?, color?, priority? }`) |
|
|
64
|
+
| `sticky` | `convert` | Convert to task/memory (`params: { stickyId, targetType }`) |
|
|
65
|
+
| `sticky` | `archive` | Archive sticky (`params: { stickyId }`) |
|
|
61
66
|
|
|
62
67
|
## CLI Fallback
|
|
63
68
|
|
|
@@ -71,6 +76,10 @@ ct add "Task title" # Create task
|
|
|
71
76
|
ct complete T1234 # Complete task
|
|
72
77
|
ct start T1234 # Start working on task
|
|
73
78
|
ct dash # Project overview
|
|
79
|
+
|
|
80
|
+
ct sticky add "Quick note" # Create sticky note
|
|
81
|
+
ct sticky list # List active stickies
|
|
82
|
+
ct sticky show SN-001 # Show sticky details
|
|
74
83
|
```
|
|
75
84
|
|
|
76
85
|
## Task Discovery (Context Efficiency)
|
|
@@ -157,10 +166,10 @@ ct session end --note "Progress"
|
|
|
157
166
|
### MCP Session Operations
|
|
158
167
|
|
|
159
168
|
```
|
|
160
|
-
|
|
169
|
+
mutate({ domain: "session", operation: "start",
|
|
161
170
|
params: { scope: "epic:T001", name: "Work", autoStart: true }})
|
|
162
|
-
|
|
163
|
-
|
|
171
|
+
query({ domain: "session", operation: "status" })
|
|
172
|
+
mutate({ domain: "session", operation: "end", params: { note: "Progress" }})
|
|
164
173
|
```
|
|
165
174
|
|
|
166
175
|
## Error Handling
|
|
@@ -182,7 +191,7 @@ After EVERY command:
|
|
|
182
191
|
|
|
183
192
|
## RCSD-IVTR Lifecycle (LOOM)
|
|
184
193
|
|
|
185
|
-
**LOOM** (Logical Order of Operations Methodology) is the systematic framework for how CLEO processes project threads through the RCASD-IVTR+C pipeline. See `docs/concepts/
|
|
194
|
+
**LOOM** (Logical Order of Operations Methodology) is the systematic framework for how CLEO processes project threads through the RCASD-IVTR+C pipeline. See `docs/concepts/CLEO-VISION.md` for the complete LOOM framework, neural hierarchy model, and brain metaphor mapping.
|
|
186
195
|
|
|
187
196
|
**Lifecycle**: See CLEO-INJECTION.md standard tier for full RCASD-IVTR+C pipeline details, or `references/loom-lifecycle.md` for gate enforcement and subagent architecture.
|
|
188
197
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
**LOOM** (Logical Order of Operations Methodology) is the systematic framework for how CLEO processes project threads through the RCASD-IVTR+C pipeline. This document details the lifecycle stages and gate enforcement.
|
|
4
4
|
|
|
5
|
-
See `docs/concepts/
|
|
5
|
+
See `docs/concepts/CLEO-VISION.md` for the complete LOOM framework, neural hierarchy model, and brain metaphor mapping.
|
|
6
6
|
|
|
7
7
|
## Pipeline Stages
|
|
8
8
|
|
|
@@ -19,13 +19,13 @@
|
|
|
19
19
|
|
|
20
20
|
```
|
|
21
21
|
# Analyze dependency waves
|
|
22
|
-
|
|
22
|
+
query({ domain: "orchestrate", operation: "analyze", params: { epicId: "T001" }})
|
|
23
23
|
|
|
24
24
|
# Get ready tasks
|
|
25
|
-
|
|
25
|
+
query({ domain: "orchestrate", operation: "ready", params: { epicId: "T001" }})
|
|
26
26
|
|
|
27
27
|
# Get next task suggestion
|
|
28
|
-
|
|
28
|
+
query({ domain: "orchestrate", operation: "next", params: { epicId: "T001" }})
|
|
29
29
|
```
|
|
30
30
|
|
|
31
31
|
### CLI Spawn Operations
|
|
@@ -14,10 +14,10 @@ ct session start --scope epic:T001 --auto-focus --name "Name"
|
|
|
14
14
|
## MCP Session Operations
|
|
15
15
|
|
|
16
16
|
```
|
|
17
|
-
|
|
17
|
+
mutate({ domain: "session", operation: "start",
|
|
18
18
|
params: { scope: "epic:T001", name: "Work", autoStart: true }})
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
query({ domain: "session", operation: "status" })
|
|
20
|
+
mutate({ domain: "session", operation: "end", params: { note: "Progress" }})
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
## CLI Session Protocol
|
|
@@ -122,8 +122,8 @@ Skills are **context injections, NOT agents**. The orchestrator selects and inje
|
|
|
122
122
|
### Discovery
|
|
123
123
|
|
|
124
124
|
```
|
|
125
|
-
|
|
126
|
-
|
|
125
|
+
query({ domain: "skills", operation: "list" })
|
|
126
|
+
query({ domain: "skills", operation: "show", params: { name: "ct-orchestrator" }})
|
|
127
127
|
```
|
|
128
128
|
|
|
129
129
|
### Key Skills
|
|
@@ -45,7 +45,7 @@ ct session start --scope epic:T001 --name "Feature work" --grade
|
|
|
45
45
|
### MCP
|
|
46
46
|
|
|
47
47
|
```
|
|
48
|
-
|
|
48
|
+
mutate({ domain: "session", operation: "start",
|
|
49
49
|
params: { scope: "epic:T001", name: "Feature work", grade: true }})
|
|
50
50
|
```
|
|
51
51
|
|
|
@@ -66,7 +66,7 @@ Tests whether the agent handles errors correctly: follows up `E_NOT_FOUND` with
|
|
|
66
66
|
Tests session discipline end-to-end: session listed before task ops, session properly ended, MCP-first usage patterns.
|
|
67
67
|
|
|
68
68
|
### 5. Multi-Domain Analysis
|
|
69
|
-
Tests progressive disclosure: use of `admin.help` or skill lookups, preference for `
|
|
69
|
+
Tests progressive disclosure: use of `admin.help` or skill lookups, preference for `query` (MCP) over CLI for programmatic access.
|
|
70
70
|
|
|
71
71
|
## Evaluating Results
|
|
72
72
|
|
|
@@ -84,11 +84,11 @@ ct grade --list
|
|
|
84
84
|
|
|
85
85
|
```
|
|
86
86
|
# Grade a session
|
|
87
|
-
|
|
87
|
+
query({ domain: "admin", operation: "grade",
|
|
88
88
|
params: { sessionId: "abc-123" }})
|
|
89
89
|
|
|
90
90
|
# List past grades
|
|
91
|
-
|
|
91
|
+
query({ domain: "admin", operation: "grade.list" })
|
|
92
92
|
```
|
|
93
93
|
|
|
94
94
|
## Understanding the 5 Dimensions
|
|
@@ -140,7 +140,7 @@ Starts at 20 and deducts for violations:
|
|
|
140
140
|
| Points | Criteria |
|
|
141
141
|
|--------|----------|
|
|
142
142
|
| 10 | `admin.help` or skill lookup calls made |
|
|
143
|
-
| 10 | `
|
|
143
|
+
| 10 | `query` (MCP gateway) used for programmatic access |
|
|
144
144
|
|
|
145
145
|
**What it measures**: Does the agent use progressive disclosure (help/skills) and prefer MCP over CLI?
|
|
146
146
|
|
|
@@ -177,7 +177,7 @@ Flags are actionable diagnostic messages. Each flag identifies a specific behavi
|
|
|
177
177
|
- `Subtasks created without tasks.exists parent check` -- Verify parent exists first
|
|
178
178
|
- `E_NOT_FOUND not followed by recovery lookup` -- Follow errors with `tasks.find` or `tasks.exists`
|
|
179
179
|
- `No admin.help or skill lookup calls` -- Load `ct-cleo` for protocol guidance
|
|
180
|
-
- `No MCP query calls` -- Prefer `
|
|
180
|
+
- `No MCP query calls` -- Prefer `query` over CLI
|
|
181
181
|
|
|
182
182
|
## Common Anti-patterns
|
|
183
183
|
|
|
@@ -190,7 +190,7 @@ Flags are actionable diagnostic messages. Each flag identifies a specific behavi
|
|
|
190
190
|
| Ignoring `E_NOT_FOUND` errors | -5 each S4 | Follow up with `tasks.find` or `tasks.exists` |
|
|
191
191
|
| Creating duplicate tasks | -5 S4 | Check for existing tasks before creating new ones |
|
|
192
192
|
| Never using `admin.help` | -10 S5 | Use progressive disclosure for protocol guidance |
|
|
193
|
-
| CLI-only usage (no MCP) | -10 S5 | Prefer `
|
|
193
|
+
| CLI-only usage (no MCP) | -10 S5 | Prefer `query`/`mutate` for programmatic access |
|
|
194
194
|
|
|
195
195
|
## Grade Result Schema
|
|
196
196
|
|
|
@@ -210,5 +210,5 @@ Grade results are stored in `.cleo/metrics/GRADES.jsonl` as append-only JSONL. E
|
|
|
210
210
|
|
|
211
211
|
| Gateway | Domain | Operation | Description |
|
|
212
212
|
|---------|--------|-----------|-------------|
|
|
213
|
-
| `
|
|
214
|
-
| `
|
|
213
|
+
| `query` | `admin` | `grade` | Grade a session (`params: { sessionId }`) |
|
|
214
|
+
| `query` | `admin` | `grade.list` | List all past grade results |
|
|
@@ -61,7 +61,7 @@ The orchestrator manages epic-level pipeline progression through the **LOOM** (L
|
|
|
61
61
|
|
|
62
62
|
**LOOM Pipeline Flow**: Research -> Consensus -> Architecture Decision -> Specification -> Decomposition -> Implementation -> Validation -> Testing -> Release -> Contribution
|
|
63
63
|
|
|
64
|
-
See `docs/concepts/
|
|
64
|
+
See `docs/concepts/CLEO-VISION.md` for the complete LOOM framework, neural hierarchy model, and brain metaphor mapping.
|
|
65
65
|
|
|
66
66
|
### Pipeline Decision Matrix
|
|
67
67
|
|
|
@@ -120,7 +120,7 @@ This separation means the orchestrator protocol works identically regardless of
|
|
|
120
120
|
### Quick Start — MCP (Recommended)
|
|
121
121
|
|
|
122
122
|
```
|
|
123
|
-
|
|
123
|
+
mutate({ domain: "orchestrate", operation: "start", params: { epicId: "T1575" }})
|
|
124
124
|
```
|
|
125
125
|
|
|
126
126
|
**Returns**: Session state, context budget, next task, pipeline stage, and recommended action in one call.
|
|
@@ -135,18 +135,18 @@ cleo orchestrator start --epic T1575
|
|
|
135
135
|
|
|
136
136
|
```
|
|
137
137
|
# 1. Check for existing work
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
138
|
+
query({ domain: "session", operation: "list" })
|
|
139
|
+
query({ domain: "research", operation: "pending" })
|
|
140
|
+
query({ domain: "session", operation: "status" })
|
|
141
141
|
|
|
142
142
|
# 2. Get epic overview and pipeline state
|
|
143
|
-
|
|
144
|
-
|
|
143
|
+
query({ domain: "system", operation: "dash" })
|
|
144
|
+
query({ domain: "pipeline", operation: "stage.status", params: { epicId: "T1575" }})
|
|
145
145
|
|
|
146
146
|
# 3. Resume or start
|
|
147
|
-
|
|
147
|
+
mutate({ domain: "session", operation: "resume", params: { sessionId: "<id>" }})
|
|
148
148
|
# OR
|
|
149
|
-
|
|
149
|
+
mutate({ domain: "session", operation: "start",
|
|
150
150
|
params: { scope: "epic:T1575", name: "Work", autoStart: true }})
|
|
151
151
|
```
|
|
152
152
|
|
|
@@ -164,12 +164,12 @@ cleo_mutate({ domain: "session", operation: "start",
|
|
|
164
164
|
|
|
165
165
|
| MCP (Primary) | CLI (Fallback) | Purpose |
|
|
166
166
|
|----------------|----------------|---------|
|
|
167
|
-
| `
|
|
168
|
-
| `
|
|
169
|
-
| `
|
|
170
|
-
| `
|
|
171
|
-
| `
|
|
172
|
-
| `
|
|
167
|
+
| `query({ domain: "session", operation: "list" })` | `cleo session list` | Show all sessions |
|
|
168
|
+
| `mutate({ domain: "session", operation: "resume", params: { sessionId } })` | `cleo session resume <id>` | Continue existing |
|
|
169
|
+
| `mutate({ domain: "session", operation: "start", params: { scope, name, autoStart } })` | `cleo session start --scope epic:T1575 --auto-start` | Begin new |
|
|
170
|
+
| `mutate({ domain: "session", operation: "end", params: { note } })` | `cleo session end` | Close session |
|
|
171
|
+
| `query({ domain: "session", operation: "status" })` | `cleo current` | Current task |
|
|
172
|
+
| `mutate({ domain: "tasks", operation: "start", params: { taskId } })` | `cleo start T1586` | Start working on task |
|
|
173
173
|
|
|
174
174
|
## Skill Dispatch (Universal Subagent Architecture)
|
|
175
175
|
|
|
@@ -205,10 +205,10 @@ Gate check: epic tasks must complete prior RCSD stages before later stages can s
|
|
|
205
205
|
|
|
206
206
|
```
|
|
207
207
|
# 1. Check pipeline stage is appropriate for this task type
|
|
208
|
-
|
|
208
|
+
query({ domain: "pipeline", operation: "stage.status", params: { epicId: "T1575" }})
|
|
209
209
|
|
|
210
210
|
# 2. Generate fully-resolved spawn prompt
|
|
211
|
-
|
|
211
|
+
mutate({ domain: "orchestrate", operation: "spawn", params: { taskId: "T1586" }})
|
|
212
212
|
|
|
213
213
|
# 3. Delegate via the provider's native mechanism
|
|
214
214
|
# orchestrate.spawn returns a fully-resolved prompt
|
|
@@ -232,9 +232,9 @@ The spawn prompt combines the **Base Protocol** (`agents/cleo-subagent/AGENT.md`
|
|
|
232
232
|
### Phase 1: Discovery
|
|
233
233
|
|
|
234
234
|
```
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
235
|
+
mutate({ domain: "orchestrate", operation: "start", params: { epicId: "T1575" }})
|
|
236
|
+
query({ domain: "research", operation: "pending" })
|
|
237
|
+
query({ domain: "pipeline", operation: "stage.status", params: { epicId: "T1575" }})
|
|
238
238
|
```
|
|
239
239
|
|
|
240
240
|
Check MANIFEST.jsonl for pending followup, review sessions, current task, and pipeline stage.
|
|
@@ -242,8 +242,8 @@ Check MANIFEST.jsonl for pending followup, review sessions, current task, and pi
|
|
|
242
242
|
### Phase 2: Planning
|
|
243
243
|
|
|
244
244
|
```
|
|
245
|
-
|
|
246
|
-
|
|
245
|
+
query({ domain: "orchestrate", operation: "analyze", params: { epicId: "T1575" }})
|
|
246
|
+
query({ domain: "orchestrate", operation: "ready", params: { epicId: "T1575" }})
|
|
247
247
|
```
|
|
248
248
|
|
|
249
249
|
Decompose work into subagent-sized chunks with clear completion criteria. Ensure planned tasks match the current pipeline stage.
|
|
@@ -251,8 +251,8 @@ Decompose work into subagent-sized chunks with clear completion criteria. Ensure
|
|
|
251
251
|
### Phase 3: Execution
|
|
252
252
|
|
|
253
253
|
```
|
|
254
|
-
|
|
255
|
-
|
|
254
|
+
query({ domain: "orchestrate", operation: "next", params: { epicId: "T1575" }})
|
|
255
|
+
mutate({ domain: "orchestrate", operation: "spawn", params: { taskId: "T1586" }})
|
|
256
256
|
```
|
|
257
257
|
|
|
258
258
|
Spawn subagent via `orchestrate.spawn`. The provider's adapter handles execution. Wait for manifest entry before proceeding.
|
|
@@ -260,9 +260,9 @@ Spawn subagent via `orchestrate.spawn`. The provider's adapter handles execution
|
|
|
260
260
|
### Phase 4: Verification & Pipeline Advancement
|
|
261
261
|
|
|
262
262
|
```
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
263
|
+
query({ domain: "system", operation: "context" })
|
|
264
|
+
mutate({ domain: "pipeline", operation: "stage.record", params: { epicId: "T1575", stage: "research", status: "done" }})
|
|
265
|
+
mutate({ domain: "pipeline", operation: "stage.gate.pass", params: { epicId: "T1575", stage: "research" }})
|
|
266
266
|
```
|
|
267
267
|
|
|
268
268
|
Verify all subagent outputs in manifest. Update CLEO task status. Record pipeline progress. Advance to next stage when all stage tasks complete.
|
|
@@ -273,37 +273,37 @@ Verify all subagent outputs in manifest. Update CLEO task status. Record pipelin
|
|
|
273
273
|
|
|
274
274
|
| MCP (Primary) | CLI (Fallback) | Purpose |
|
|
275
275
|
|----------------|----------------|---------|
|
|
276
|
-
| `
|
|
277
|
-
| `
|
|
278
|
-
| `
|
|
279
|
-
| `
|
|
280
|
-
| `
|
|
276
|
+
| `query({ domain: "tasks", operation: "find", params: { query } })` | `cleo find "query"` | Fuzzy search |
|
|
277
|
+
| `query({ domain: "tasks", operation: "show", params: { taskId } })` | `cleo show T1234` | Full task details |
|
|
278
|
+
| `query({ domain: "system", operation: "dash" })` | `cleo dash --compact` | Project overview |
|
|
279
|
+
| `query({ domain: "orchestrate", operation: "ready", params: { epicId } })` | `cleo orchestrator ready --epic T1575` | Parallel-safe tasks |
|
|
280
|
+
| `query({ domain: "orchestrate", operation: "next", params: { epicId } })` | `cleo orchestrator next --epic T1575` | Suggest next task |
|
|
281
281
|
|
|
282
282
|
### Task Coordination
|
|
283
283
|
|
|
284
284
|
| MCP (Primary) | CLI (Fallback) | Purpose |
|
|
285
285
|
|----------------|----------------|---------|
|
|
286
|
-
| `
|
|
287
|
-
| `
|
|
288
|
-
| `
|
|
286
|
+
| `mutate({ domain: "tasks", operation: "add", params: { title, parent } })` | `cleo add "Task" --parent T1575` | Create child task |
|
|
287
|
+
| `mutate({ domain: "tasks", operation: "start", params: { taskId } })` | `cleo start T1586` | Start working on task |
|
|
288
|
+
| `mutate({ domain: "tasks", operation: "complete", params: { taskId } })` | `cleo complete T1586` | Mark task done |
|
|
289
289
|
|
|
290
290
|
### Manifest & Research
|
|
291
291
|
|
|
292
292
|
| MCP (Primary) | CLI (Fallback) | Purpose |
|
|
293
293
|
|----------------|----------------|---------|
|
|
294
|
-
| `
|
|
295
|
-
| `
|
|
296
|
-
| `
|
|
297
|
-
| `
|
|
294
|
+
| `query({ domain: "research", operation: "list" })` | `cleo research list` | List entries |
|
|
295
|
+
| `query({ domain: "research", operation: "show", params: { entryId } })` | `cleo research show <id>` | Entry summary (~500 tokens) |
|
|
296
|
+
| `query({ domain: "research", operation: "pending" })` | `cleo research pending` | Followup items |
|
|
297
|
+
| `mutate({ domain: "research", operation: "link", params: { taskId, entryId } })` | `cleo research link T1586 <id>` | Link research to task |
|
|
298
298
|
|
|
299
299
|
### Pipeline Operations
|
|
300
300
|
|
|
301
301
|
| MCP (Primary) | CLI (Fallback) | Purpose |
|
|
302
302
|
|----------------|----------------|---------|
|
|
303
|
-
| `
|
|
304
|
-
| `
|
|
305
|
-
| `
|
|
306
|
-
| `
|
|
303
|
+
| `query({ domain: "pipeline", operation: "stage.status", params: { epicId } })` | `cleo pipeline status --epic T1575` | Current pipeline stage |
|
|
304
|
+
| `mutate({ domain: "pipeline", operation: "stage.record", params: { epicId, stage, status } })` | `cleo pipeline record T1575 research done` | Record stage progress |
|
|
305
|
+
| `query({ domain: "pipeline", operation: "stage.validate", params: { epicId, stage } })` | `cleo pipeline validate T1575 implementation` | Check gate before spawn |
|
|
306
|
+
| `mutate({ domain: "pipeline", operation: "stage.gate.pass", params: { epicId, stage } })` | `cleo pipeline gate-pass T1575 research` | Advance pipeline stage |
|
|
307
307
|
|
|
308
308
|
**Context Budget Rule**: Stay under 10K tokens. Use `cleo research list` over reading full files.
|
|
309
309
|
|
|
@@ -282,7 +282,7 @@ scripts/init_skill.py <skill-name> --path <output-directory>
|
|
|
282
282
|
The script:
|
|
283
283
|
|
|
284
284
|
- Creates the skill directory at the specified path
|
|
285
|
-
- Generates a SKILL.md template with proper frontmatter and
|
|
285
|
+
- Generates a SKILL.md template with proper frontmatter and required placeholder guidance
|
|
286
286
|
- Creates example resource directories: `scripts/`, `references/`, and `assets/`
|
|
287
287
|
- Adds example files in each directory that can be customized or deleted
|
|
288
288
|
|
|
@@ -17,18 +17,18 @@ from pathlib import Path
|
|
|
17
17
|
|
|
18
18
|
SKILL_TEMPLATE = """---
|
|
19
19
|
name: {skill_name}
|
|
20
|
-
description: [
|
|
20
|
+
description: [Required: complete and informative explanation of what this skill does and when to use it. Include concrete trigger scenarios, file types, or task patterns.]
|
|
21
21
|
---
|
|
22
22
|
|
|
23
23
|
# {skill_title}
|
|
24
24
|
|
|
25
25
|
## Overview
|
|
26
26
|
|
|
27
|
-
[
|
|
27
|
+
[Required: 1-2 sentences explaining what this skill enables]
|
|
28
28
|
|
|
29
29
|
## Structuring This Skill
|
|
30
30
|
|
|
31
|
-
[
|
|
31
|
+
[Choose the structure that best fits this skill's purpose. Common patterns:
|
|
32
32
|
|
|
33
33
|
**1. Workflow-Based** (best for sequential processes)
|
|
34
34
|
- Works well when there are clear step-by-step procedures
|
|
@@ -52,11 +52,11 @@ description: [TODO: Complete and informative explanation of what the skill does
|
|
|
52
52
|
|
|
53
53
|
Patterns can be mixed and matched as needed. Most skills combine patterns (e.g., start with task-based, add workflow for complex operations).
|
|
54
54
|
|
|
55
|
-
Delete this entire "Structuring This Skill" section when done - it
|
|
55
|
+
Delete this entire "Structuring This Skill" section when done - it is guidance only.]
|
|
56
56
|
|
|
57
|
-
## [
|
|
57
|
+
## [Replace with the first main section based on chosen structure]
|
|
58
58
|
|
|
59
|
-
[
|
|
59
|
+
[Add content here. See examples in existing skills:
|
|
60
60
|
- Code samples for technical skills
|
|
61
61
|
- Decision trees for complex workflows
|
|
62
62
|
- Concrete examples with realistic user requests
|
|
@@ -116,7 +116,7 @@ Example real scripts from other skills:
|
|
|
116
116
|
|
|
117
117
|
def main():
|
|
118
118
|
print("This is an example script for {skill_name}")
|
|
119
|
-
#
|
|
119
|
+
# Add actual script logic here before production use.
|
|
120
120
|
# This could be data processing, file conversion, API calls, etc.
|
|
121
121
|
|
|
122
122
|
if __name__ == "__main__":
|
|
@@ -220,7 +220,9 @@ def init_skill(skill_name, path):
|
|
|
220
220
|
|
|
221
221
|
# Create SKILL.md from template
|
|
222
222
|
skill_title = title_case_skill_name(skill_name)
|
|
223
|
-
skill_content = SKILL_TEMPLATE.format(
|
|
223
|
+
skill_content = SKILL_TEMPLATE.format(
|
|
224
|
+
skill_name=skill_name, skill_title=skill_title
|
|
225
|
+
)
|
|
224
226
|
|
|
225
227
|
skill_md_path = skill_dir / "SKILL.md"
|
|
226
228
|
try:
|
|
@@ -260,8 +262,12 @@ def init_skill(skill_name, path):
|
|
|
260
262
|
# Print next steps
|
|
261
263
|
print(f"\n✅ Skill '{skill_name}' initialized successfully at {skill_dir}")
|
|
262
264
|
print("\nNext steps:")
|
|
263
|
-
print(
|
|
264
|
-
|
|
265
|
+
print(
|
|
266
|
+
"1. Edit SKILL.md to complete all required placeholder text and update the description"
|
|
267
|
+
)
|
|
268
|
+
print(
|
|
269
|
+
"2. Customize or delete the example files in scripts/, references/, and assets/"
|
|
270
|
+
)
|
|
265
271
|
print("3. Run the validator when ready to check the skill structure")
|
|
266
272
|
|
|
267
273
|
return skill_dir
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ct-stickynote
|
|
3
|
+
description: Quick ephemeral sticky notes for project-wide capture before formal classification
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
category: productivity
|
|
6
|
+
tier: 0
|
|
7
|
+
protocol: null
|
|
8
|
+
tags: [sticky, notes, capture, quick, ephemeral]
|
|
9
|
+
triggers: [note, sticky, jot, capture]
|
|
10
|
+
compatibility: [claude-code, gemini-cli, codex-cli, opencode]
|
|
11
|
+
dependencies: []
|
|
12
|
+
sharedResources: []
|
|
13
|
+
license: MIT
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Sticky Notes Skill
|
|
17
|
+
|
|
18
|
+
Quick capture ephemeral notes that fill the gap between session notes and formal tasks.
|
|
19
|
+
|
|
20
|
+
## When to Use
|
|
21
|
+
|
|
22
|
+
Use sticky notes for:
|
|
23
|
+
- Quick thoughts that don't fit a formal task yet
|
|
24
|
+
- Temporary reminders
|
|
25
|
+
- Ideas that need refinement before becoming tasks
|
|
26
|
+
- Notes that span multiple sessions
|
|
27
|
+
|
|
28
|
+
## Operations
|
|
29
|
+
|
|
30
|
+
| Operation | Usage | Example |
|
|
31
|
+
|-----------|-------|---------|
|
|
32
|
+
| `sticky.add` | Create sticky | `cleo sticky add "Refactor auth middleware" --tag bug --color red` |
|
|
33
|
+
| `sticky.list` | List active | `cleo sticky list --tag bug` |
|
|
34
|
+
| `sticky.show` | Show details | `cleo sticky show SN-001` |
|
|
35
|
+
| `sticky.convert` | Promote to task/memory | `cleo sticky convert SN-001 --to-task` |
|
|
36
|
+
| `sticky.archive` | Archive | `cleo sticky archive SN-001` |
|
|
37
|
+
|
|
38
|
+
## Installation
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
cleo skill install library:ct-stickynote
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Auto-Archive
|
|
45
|
+
|
|
46
|
+
Stickies auto-archive after 30 days if not converted.
|
|
@@ -244,9 +244,9 @@
|
|
|
244
244
|
},
|
|
245
245
|
{
|
|
246
246
|
"name": "loom",
|
|
247
|
-
"description": "LOOM (Logical Order of Operations Methodology) - the systematic framework for how CLEO processes project threads through the RCASD-IVTR+C pipeline. LOOM encompasses the full lifecycle methodology that transforms raw ideas into delivered artifacts, from Research through Release with the Contribution protocol (+C) running across all stages. References docs/concepts/
|
|
247
|
+
"description": "LOOM (Logical Order of Operations Methodology) - the systematic framework for how CLEO processes project threads through the RCASD-IVTR+C pipeline. LOOM encompasses the full lifecycle methodology that transforms raw ideas into delivered artifacts, from Research through Release with the Contribution protocol (+C) running across all stages. References docs/concepts/CLEO-VISION.md for the complete LOOM framework, neural hierarchy model, and brain metaphor mapping.",
|
|
248
248
|
"version": "1.0.0",
|
|
249
|
-
"path": "docs/concepts/
|
|
249
|
+
"path": "docs/concepts/CLEO-VISION.md",
|
|
250
250
|
"references": [".cleo/adrs/ADR-007-domain-consolidation.md", ".cleo/adrs/ADR-009-BRAIN-cognitive-architecture.md"],
|
|
251
251
|
"core": false,
|
|
252
252
|
"category": "core",
|
|
@@ -258,7 +258,7 @@
|
|
|
258
258
|
"license": "MIT",
|
|
259
259
|
"metadata": {
|
|
260
260
|
"concepts": ["LOOM", "RCASD-IVTR+C", "lifecycle pipeline", "neural hierarchy", "brain metaphor"],
|
|
261
|
-
"domains": ["tasks", "session", "memory", "check", "pipeline", "orchestrate", "tools", "admin", "nexus", "
|
|
261
|
+
"domains": ["tasks", "session", "memory", "check", "pipeline", "orchestrate", "tools", "admin", "nexus", "sticky"]
|
|
262
262
|
}
|
|
263
263
|
}
|
|
264
264
|
]
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"$id": "https://cleo-dev.com/schemas/v1/nexus-registry.schema.json",
|
|
4
4
|
"title": "CLEO Nexus Registry Schema (DEPRECATED)",
|
|
5
|
-
"description": "DEPRECATED: This schema is
|
|
5
|
+
"description": "DEPRECATED: This schema is no longer used. nexus.db (SQLite) is the live backend as of 2026.3. Legacy JSON (projects-registry.json) is auto-migrated on first nexus init. Retained for historical reference only.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"required": ["version", "lastUpdated", "projects"],
|
|
8
8
|
"additionalProperties": false,
|