@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.
Files changed (41) hide show
  1. package/README.md +19 -16
  2. package/dist/cli/index.js +18790 -11784
  3. package/dist/cli/index.js.map +4 -4
  4. package/dist/mcp/index.js +29402 -19482
  5. package/dist/mcp/index.js.map +4 -4
  6. package/drizzle/20260305011924_cheerful_mongu/migration.sql +2 -0
  7. package/drizzle/20260305011924_cheerful_mongu/snapshot.json +2662 -0
  8. package/drizzle/20260305203927_demonic_storm/migration.sql +28 -0
  9. package/drizzle/20260305203927_demonic_storm/snapshot.json +2924 -0
  10. package/drizzle/20260306001243_spooky_rage/migration.sql +25 -0
  11. package/drizzle/20260306001243_spooky_rage/snapshot.json +2939 -0
  12. package/drizzle-brain/20260301230215_workable_spitfire/migration.sql +68 -0
  13. package/drizzle-brain/20260301230215_workable_spitfire/snapshot.json +651 -0
  14. package/drizzle-brain/20260302050325_unknown_justin_hammer/migration.sql +23 -0
  15. package/drizzle-brain/20260302050325_unknown_justin_hammer/snapshot.json +884 -0
  16. package/drizzle-brain/20260302061755_unusual_jamie_braddock/migration.sql +2 -0
  17. package/drizzle-brain/20260302061755_unusual_jamie_braddock/snapshot.json +908 -0
  18. package/drizzle-brain/20260302193548_luxuriant_glorian/migration.sql +20 -0
  19. package/drizzle-brain/20260302193548_luxuriant_glorian/snapshot.json +1078 -0
  20. package/drizzle-brain/20260304045002_white_thunderbolt_ross/migration.sql +16 -0
  21. package/drizzle-brain/20260304045002_white_thunderbolt_ross/snapshot.json +1233 -0
  22. package/package.json +3 -3
  23. package/packages/ct-skills/skills/_shared/skill-chaining-patterns.md +1 -1
  24. package/packages/ct-skills/skills/_shared/subagent-protocol-base.md +1 -1
  25. package/packages/ct-skills/skills/ct-cleo/SKILL.md +16 -7
  26. package/packages/ct-skills/skills/ct-cleo/references/loom-lifecycle.md +1 -1
  27. package/packages/ct-skills/skills/ct-cleo/references/orchestrator-constraints.md +3 -3
  28. package/packages/ct-skills/skills/ct-cleo/references/session-protocol.md +5 -5
  29. package/packages/ct-skills/skills/ct-epic-architect/references/patterns.md +1 -1
  30. package/packages/ct-skills/skills/ct-grade/SKILL.md +9 -9
  31. package/packages/ct-skills/skills/ct-orchestrator/SKILL.md +43 -43
  32. package/packages/ct-skills/skills/ct-skill-creator/SKILL.md +1 -1
  33. package/packages/ct-skills/skills/ct-skill-creator/scripts/init_skill.py +16 -10
  34. package/packages/ct-skills/skills/ct-stickynote/README.md +14 -0
  35. package/packages/ct-skills/skills/ct-stickynote/SKILL.md +46 -0
  36. package/packages/ct-skills/skills.json +3 -3
  37. package/schemas/nexus-registry.schema.json +1 -1
  38. package/schemas/operation-constitution.schema.json +438 -0
  39. package/schemas/system-flow-atlas.schema.json +125 -0
  40. package/server.json +4 -4
  41. 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.12",
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.5.2",
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
- cleo_mutate({ domain: "orchestrate", operation: "spawn", params: { taskId: "T1234" }})
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/vision.md` for the complete LOOM framework, neural hierarchy model, and brain metaphor mapping.
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 `cleo_query` for reads and `cleo_mutate` for writes.
22
+ MCP is the **primary** entry point. Use `query` for reads and `mutate` for writes.
23
23
 
24
- ### Key Read Operations (`cleo_query`)
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 (`cleo_mutate`)
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
- cleo_mutate({ domain: "session", operation: "start",
169
+ mutate({ domain: "session", operation: "start",
161
170
  params: { scope: "epic:T001", name: "Work", autoStart: true }})
162
- cleo_query({ domain: "session", operation: "status" })
163
- cleo_mutate({ domain: "session", operation: "end", params: { note: "Progress" }})
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/vision.md` for the complete LOOM framework, neural hierarchy model, and brain metaphor mapping.
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/vision.md` for the complete LOOM framework, neural hierarchy model, and brain metaphor mapping.
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
- cleo_query({ domain: "orchestrate", operation: "analyze", params: { epicId: "T001" }})
22
+ query({ domain: "orchestrate", operation: "analyze", params: { epicId: "T001" }})
23
23
 
24
24
  # Get ready tasks
25
- cleo_query({ domain: "orchestrate", operation: "ready", params: { epicId: "T001" }})
25
+ query({ domain: "orchestrate", operation: "ready", params: { epicId: "T001" }})
26
26
 
27
27
  # Get next task suggestion
28
- cleo_query({ domain: "orchestrate", operation: "next", params: { epicId: "T001" }})
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
- cleo_mutate({ domain: "session", operation: "start",
17
+ mutate({ domain: "session", operation: "start",
18
18
  params: { scope: "epic:T001", name: "Work", autoStart: true }})
19
- cleo_query({ domain: "session", operation: "status" })
20
- cleo_mutate({ domain: "session", operation: "end", params: { note: "Progress" }})
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
- cleo_query({ domain: "skills", operation: "list" })
126
- cleo_query({ domain: "skills", operation: "show", params: { name: "ct-orchestrator" }})
125
+ query({ domain: "skills", operation: "list" })
126
+ query({ domain: "skills", operation: "show", params: { name: "ct-orchestrator" }})
127
127
  ```
128
128
 
129
129
  ### Key Skills
@@ -273,7 +273,7 @@ For code modernization, architectural improvements, and tech debt reduction:
273
273
  - "Auth stuff"
274
274
  - "Part 1"
275
275
  - "Fix things"
276
- - "TODO"
276
+ - "TBD item"
277
277
 
278
278
  ### Numbered Sequences
279
279
 
@@ -45,7 +45,7 @@ ct session start --scope epic:T001 --name "Feature work" --grade
45
45
  ### MCP
46
46
 
47
47
  ```
48
- cleo_mutate({ domain: "session", operation: "start",
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 `cleo_query` (MCP) over CLI for programmatic access.
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
- cleo_query({ domain: "admin", operation: "grade",
87
+ query({ domain: "admin", operation: "grade",
88
88
  params: { sessionId: "abc-123" }})
89
89
 
90
90
  # List past grades
91
- cleo_query({ domain: "admin", operation: "grade.list" })
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 | `cleo_query` (MCP gateway) used for programmatic access |
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 `cleo_query` over CLI
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 `cleo_query`/`cleo_mutate` for programmatic access |
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
- | `cleo_query` | `admin` | `grade` | Grade a session (`params: { sessionId }`) |
214
- | `cleo_query` | `admin` | `grade.list` | List all past grade results |
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/vision.md` for the complete LOOM framework, neural hierarchy model, and brain metaphor mapping.
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
- cleo_mutate({ domain: "orchestrate", operation: "start", params: { epicId: "T1575" }})
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
- cleo_query({ domain: "session", operation: "list" })
139
- cleo_query({ domain: "research", operation: "pending" })
140
- cleo_query({ domain: "session", operation: "status" })
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
- cleo_query({ domain: "system", operation: "dash" })
144
- cleo_query({ domain: "pipeline", operation: "stage.status", params: { epicId: "T1575" }})
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
- cleo_mutate({ domain: "session", operation: "resume", params: { sessionId: "<id>" }})
147
+ mutate({ domain: "session", operation: "resume", params: { sessionId: "<id>" }})
148
148
  # OR
149
- cleo_mutate({ domain: "session", operation: "start",
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
- | `cleo_query({ domain: "session", operation: "list" })` | `cleo session list` | Show all sessions |
168
- | `cleo_mutate({ domain: "session", operation: "resume", params: { sessionId } })` | `cleo session resume <id>` | Continue existing |
169
- | `cleo_mutate({ domain: "session", operation: "start", params: { scope, name, autoStart } })` | `cleo session start --scope epic:T1575 --auto-start` | Begin new |
170
- | `cleo_mutate({ domain: "session", operation: "end", params: { note } })` | `cleo session end` | Close session |
171
- | `cleo_query({ domain: "session", operation: "status" })` | `cleo current` | Current task |
172
- | `cleo_mutate({ domain: "tasks", operation: "start", params: { taskId } })` | `cleo start T1586` | Start working on task |
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
- cleo_query({ domain: "pipeline", operation: "stage.status", params: { epicId: "T1575" }})
208
+ query({ domain: "pipeline", operation: "stage.status", params: { epicId: "T1575" }})
209
209
 
210
210
  # 2. Generate fully-resolved spawn prompt
211
- cleo_mutate({ domain: "orchestrate", operation: "spawn", params: { taskId: "T1586" }})
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
- cleo_mutate({ domain: "orchestrate", operation: "start", params: { epicId: "T1575" }})
236
- cleo_query({ domain: "research", operation: "pending" })
237
- cleo_query({ domain: "pipeline", operation: "stage.status", params: { epicId: "T1575" }})
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
- cleo_query({ domain: "orchestrate", operation: "analyze", params: { epicId: "T1575" }})
246
- cleo_query({ domain: "orchestrate", operation: "ready", params: { epicId: "T1575" }})
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
- cleo_query({ domain: "orchestrate", operation: "next", params: { epicId: "T1575" }})
255
- cleo_mutate({ domain: "orchestrate", operation: "spawn", params: { taskId: "T1586" }})
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
- cleo_query({ domain: "system", operation: "context" })
264
- cleo_mutate({ domain: "pipeline", operation: "stage.record", params: { epicId: "T1575", stage: "research", status: "done" }})
265
- cleo_mutate({ domain: "pipeline", operation: "stage.gate.pass", params: { epicId: "T1575", stage: "research" }})
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
- | `cleo_query({ domain: "tasks", operation: "find", params: { query } })` | `cleo find "query"` | Fuzzy search |
277
- | `cleo_query({ domain: "tasks", operation: "show", params: { taskId } })` | `cleo show T1234` | Full task details |
278
- | `cleo_query({ domain: "system", operation: "dash" })` | `cleo dash --compact` | Project overview |
279
- | `cleo_query({ domain: "orchestrate", operation: "ready", params: { epicId } })` | `cleo orchestrator ready --epic T1575` | Parallel-safe tasks |
280
- | `cleo_query({ domain: "orchestrate", operation: "next", params: { epicId } })` | `cleo orchestrator next --epic T1575` | Suggest next task |
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
- | `cleo_mutate({ domain: "tasks", operation: "add", params: { title, parent } })` | `cleo add "Task" --parent T1575` | Create child task |
287
- | `cleo_mutate({ domain: "tasks", operation: "start", params: { taskId } })` | `cleo start T1586` | Start working on task |
288
- | `cleo_mutate({ domain: "tasks", operation: "complete", params: { taskId } })` | `cleo complete T1586` | Mark task done |
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
- | `cleo_query({ domain: "research", operation: "list" })` | `cleo research list` | List entries |
295
- | `cleo_query({ domain: "research", operation: "show", params: { entryId } })` | `cleo research show <id>` | Entry summary (~500 tokens) |
296
- | `cleo_query({ domain: "research", operation: "pending" })` | `cleo research pending` | Followup items |
297
- | `cleo_mutate({ domain: "research", operation: "link", params: { taskId, entryId } })` | `cleo research link T1586 <id>` | Link research to task |
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
- | `cleo_query({ domain: "pipeline", operation: "stage.status", params: { epicId } })` | `cleo pipeline status --epic T1575` | Current pipeline stage |
304
- | `cleo_mutate({ domain: "pipeline", operation: "stage.record", params: { epicId, stage, status } })` | `cleo pipeline record T1575 research done` | Record stage progress |
305
- | `cleo_query({ domain: "pipeline", operation: "stage.validate", params: { epicId, stage } })` | `cleo pipeline validate T1575 implementation` | Check gate before spawn |
306
- | `cleo_mutate({ domain: "pipeline", operation: "stage.gate.pass", params: { epicId, stage } })` | `cleo pipeline gate-pass T1575 research` | Advance pipeline stage |
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 TODO placeholders
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: [TODO: Complete and informative explanation of what the skill does and when to use it. Include WHEN to use this skill - specific scenarios, file types, or tasks that trigger it.]
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
- [TODO: 1-2 sentences explaining what this skill enables]
27
+ [Required: 1-2 sentences explaining what this skill enables]
28
28
 
29
29
  ## Structuring This Skill
30
30
 
31
- [TODO: Choose the structure that best fits this skill's purpose. Common patterns:
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's just guidance.]
55
+ Delete this entire "Structuring This Skill" section when done - it is guidance only.]
56
56
 
57
- ## [TODO: Replace with the first main section based on chosen structure]
57
+ ## [Replace with the first main section based on chosen structure]
58
58
 
59
- [TODO: Add content here. See examples in existing skills:
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
- # TODO: Add actual script logic here
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(skill_name=skill_name, skill_title=skill_title)
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("1. Edit SKILL.md to complete the TODO items and update the description")
264
- print("2. Customize or delete the example files in scripts/, references/, and assets/")
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,14 @@
1
+ # ct-stickynote
2
+
3
+ Enhanced sticky note workflows for CLEO.
4
+
5
+ ## Features
6
+
7
+ - Templates for common note types
8
+ - Visual board view
9
+ - Batch operations
10
+ - Weekly digest
11
+
12
+ ## Usage
13
+
14
+ See SKILL.md for full documentation.
@@ -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/vision.md for the complete LOOM framework, neural hierarchy model, and brain metaphor mapping.",
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/vision.md",
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", "sharing"]
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 superseded by projects-registry.schema.json (v2.0.0). The unified registry at ~/.cleo/projects-registry.json now serves both global project management and Nexus cross-project coordination. This file is retained for reference only.",
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,