@cleocode/cleo 2026.3.2 → 2026.3.6
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 +1 -3
- package/dist/cli/index.js +7381 -3507
- package/dist/cli/index.js.map +4 -4
- package/dist/mcp/index.js +5792 -2097
- package/dist/mcp/index.js.map +4 -4
- package/package.json +4 -4
- package/packages/ct-skills/index.js +1 -1
- package/packages/ct-skills/package.json +0 -2
- package/packages/ct-skills/profiles/core.json +1 -1
- package/packages/ct-skills/profiles/full.json +4 -5
- package/packages/ct-skills/profiles/minimal.json +3 -3
- package/packages/ct-skills/profiles/recommended.json +2 -2
- package/packages/ct-skills/provider-skills-map.json +97 -0
- package/packages/ct-skills/skills/_shared/skill-chaining-patterns.md +23 -26
- package/packages/ct-skills/skills/_shared/testing-framework-config.md +9 -9
- package/packages/ct-skills/skills/ct-cleo/SKILL.md +21 -1
- package/packages/ct-skills/skills/ct-dev-workflow/SKILL.md +1 -1
- package/packages/ct-skills/skills/ct-documentor/SKILL.md +1 -1
- package/packages/ct-skills/skills/ct-epic-architect/SKILL.md +1 -1
- package/packages/ct-skills/skills/ct-grade/SKILL.md +214 -0
- package/packages/ct-skills/skills/ct-orchestrator/SKILL.md +119 -43
- package/packages/ct-skills/skills/ct-orchestrator/orchestrator-prompt.txt +17 -0
- package/packages/ct-skills/skills/ct-orchestrator/references/orchestrator-patterns.md +1 -1
- package/packages/ct-skills/skills/ct-research-agent/SKILL.md +1 -1
- package/packages/ct-skills/skills/ct-spec-writer/SKILL.md +1 -1
- package/packages/ct-skills/skills/ct-task-executor/SKILL.md +1 -1
- package/packages/ct-skills/skills/ct-validator/SKILL.md +1 -1
- package/packages/ct-skills/skills/manifest.json +217 -947
- package/packages/ct-skills/skills.json +244 -3
- package/templates/CLEO-INJECTION.md +37 -0
- package/templates/README.md +4 -4
- package/templates/cleo-gitignore +3 -11
- package/templates/git-hooks/pre-commit +1 -1
- package/packages/ct-skills/protocols/agent-protocol.md +0 -260
- package/packages/ct-skills/protocols/artifact-publish.md +0 -587
- package/packages/ct-skills/protocols/consensus.md +0 -309
- package/packages/ct-skills/protocols/contribution.md +0 -375
- package/packages/ct-skills/protocols/decomposition.md +0 -352
- package/packages/ct-skills/protocols/implementation.md +0 -344
- package/packages/ct-skills/protocols/provenance.md +0 -600
- package/packages/ct-skills/protocols/release.md +0 -635
- package/packages/ct-skills/protocols/research.md +0 -248
- package/packages/ct-skills/protocols/specification.md +0 -287
- package/packages/ct-skills/protocols/testing.md +0 -346
- package/packages/ct-skills/protocols/validation.md +0 -229
- package/packages/ct-skills/skills/ct-gitbook/SKILL.md +0 -516
- package/packages/ct-skills/skills/ct-gitbook/assets/SUMMARY.md +0 -28
- package/packages/ct-skills/skills/ct-gitbook/assets/gitbook.yaml +0 -14
- package/packages/ct-skills/skills/ct-gitbook/references/api-sdk.md +0 -318
- package/packages/ct-skills/skills/ct-gitbook/references/auth-sso.md +0 -208
- package/packages/ct-skills/skills/ct-gitbook/references/change-requests.md +0 -169
- package/packages/ct-skills/skills/ct-gitbook/references/content-blocks.md +0 -230
- package/packages/ct-skills/skills/ct-gitbook/references/docs-sites.md +0 -202
- package/packages/ct-skills/skills/ct-gitbook/references/git-sync.md +0 -175
- package/packages/ct-skills/skills/ct-gitbook/references/llm-ready.md +0 -178
- package/packages/ct-skills/skills/ct-gitbook/references/migration.md +0 -263
- package/packages/ct-skills/skills/ct-library-implementer-bash/SKILL.md +0 -316
- package/packages/ct-skills/skills/ct-skill-lookup/SKILL.md +0 -179
- package/packages/ct-skills/skills/ct-test-writer-bats/SKILL.md +0 -347
- package/packages/ct-skills/skills/railway-platform/SKILL.md +0 -506
- package/packages/ct-skills/skills/railway-platform/_shared/scripts/railway-api.sh +0 -180
- package/packages/ct-skills/skills/railway-platform/_shared/scripts/railway-common.sh +0 -262
- package/packages/ct-skills/skills/railway-platform/references/01-getting-started.md +0 -149
- package/packages/ct-skills/skills/railway-platform/references/02-projects.md +0 -116
- package/packages/ct-skills/skills/railway-platform/references/03-services.md +0 -147
- package/packages/ct-skills/skills/railway-platform/references/04-deployments.md +0 -210
- package/packages/ct-skills/skills/railway-platform/references/05-databases.md +0 -142
- package/packages/ct-skills/skills/railway-platform/references/06-environments.md +0 -261
- package/packages/ct-skills/skills/railway-platform/references/07-domains.md +0 -139
- package/packages/ct-skills/skills/railway-platform/references/08-volumes.md +0 -533
- package/packages/ct-skills/skills/railway-platform/references/09-networking.md +0 -592
- package/packages/ct-skills/skills/railway-platform/references/10-cron.md +0 -488
- package/packages/ct-skills/skills/railway-platform/references/11-functions.md +0 -170
- package/packages/ct-skills/skills/railway-platform/references/12-monorepo.md +0 -294
- package/packages/ct-skills/skills/railway-platform/references/13-troubleshooting.md +0 -335
- package/packages/ct-skills/skills/railway-platform/references/14-railway-metal.md +0 -197
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
# CLEO Agent Protocol
|
|
2
|
-
|
|
3
|
-
**Version**: 1.0.0
|
|
4
|
-
**Type**: Agent Reference
|
|
5
|
-
**Audience**: LLM agents operating CLEO CLI
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Commands
|
|
10
|
-
|
|
11
|
-
| Command | Purpose | Output Key |
|
|
12
|
-
|---------|---------|------------|
|
|
13
|
-
| ct find "query" | Search tasks | .tasks[].id |
|
|
14
|
-
| ct find --id 142 | ID search | .tasks[].id |
|
|
15
|
-
| ct show T### | Task details | .task |
|
|
16
|
-
| ct add "Title" | Create task | .task.id |
|
|
17
|
-
| ct add "Title" --parent T### | Create subtask | .task.id |
|
|
18
|
-
| ct done T### | Complete task | .completedAt |
|
|
19
|
-
| ct update T### --status active | Update status | .task |
|
|
20
|
-
| ct start T### | Start working on task | .task |
|
|
21
|
-
| ct current | Current task | .task |
|
|
22
|
-
| ct next | Suggest task | .recommendation.taskId |
|
|
23
|
-
| ct session list | List sessions | .sessions[] |
|
|
24
|
-
| ct session start --scope epic:T### --auto-start --name "..." | Start session | .session.id |
|
|
25
|
-
| ct session end --note "..." | End session | .session |
|
|
26
|
-
| ct session resume ID | Resume session | .session |
|
|
27
|
-
| ct session status | Current session | .session |
|
|
28
|
-
| ct dash | Project overview | .summary |
|
|
29
|
-
| ct context | Context usage | .context |
|
|
30
|
-
| ct archive | Archive done tasks | .archived[] |
|
|
31
|
-
| ct exists T### | Check existence | .exists |
|
|
32
|
-
| ct list --parent T### | Children only | .tasks[] |
|
|
33
|
-
|
|
34
|
-
## Session Sequence
|
|
35
|
-
|
|
36
|
-
1. `ct session list` - Check existing sessions
|
|
37
|
-
2. `ct session start --scope epic:T### --auto-start --name "Name"` OR `ct session resume ID`
|
|
38
|
-
3. `ct start T###` - Start working on task
|
|
39
|
-
4. Execute work on current task
|
|
40
|
-
5. `ct complete T###` - Mark done
|
|
41
|
-
6. `ct start T###` - Next task (or `ct next`)
|
|
42
|
-
7. `ct archive` - Clean up done tasks
|
|
43
|
-
8. `ct session end --note "Progress summary"` - ALWAYS end
|
|
44
|
-
|
|
45
|
-
**CRITICAL**: Session start requires BOTH `--scope` AND `--auto-start` (or `--start T###`)
|
|
46
|
-
|
|
47
|
-
## Exit Codes
|
|
48
|
-
|
|
49
|
-
### General (0-8)
|
|
50
|
-
|
|
51
|
-
| Code | Constant | Recoverable | Recovery |
|
|
52
|
-
|------|----------|:-----------:|----------|
|
|
53
|
-
| 0 | SUCCESS | - | - |
|
|
54
|
-
| 1 | GENERAL_ERROR | Yes | Check error.message |
|
|
55
|
-
| 2 | INVALID_INPUT | Yes | Fix arguments |
|
|
56
|
-
| 3 | FILE_ERROR | No | Check permissions |
|
|
57
|
-
| 4 | NOT_FOUND | Yes | `ct find` to locate ID |
|
|
58
|
-
| 5 | DEPENDENCY_ERROR | No | Install missing tool |
|
|
59
|
-
| 6 | VALIDATION_ERROR | Yes | Check field lengths, escape \$ |
|
|
60
|
-
| 7 | LOCK_TIMEOUT | Yes | Retry after delay |
|
|
61
|
-
| 8 | CONFIG_ERROR | Yes | `ct doctor` to diagnose |
|
|
62
|
-
|
|
63
|
-
### Hierarchy (10-19)
|
|
64
|
-
|
|
65
|
-
| Code | Constant | Recoverable | Recovery |
|
|
66
|
-
|------|----------|:-----------:|----------|
|
|
67
|
-
| 10 | PARENT_NOT_FOUND | Yes | `ct exists <parentId>` first |
|
|
68
|
-
| 11 | DEPTH_EXCEEDED | Yes | Max 3 levels (epic->task->subtask) |
|
|
69
|
-
| 12 | SIBLING_LIMIT | Yes | Check parent children count |
|
|
70
|
-
| 13 | INVALID_PARENT_TYPE | Yes | Subtasks cannot have children |
|
|
71
|
-
| 14 | CIRCULAR_REFERENCE | No | Check dependency graph |
|
|
72
|
-
| 15 | ORPHAN_DETECTED | Yes | Verify parent exists |
|
|
73
|
-
| 16 | HAS_CHILDREN | Yes | Delete children first or use --cascade |
|
|
74
|
-
| 17 | TASK_COMPLETED | Yes | Use `ct archive` instead |
|
|
75
|
-
| 18 | CASCADE_FAILED | No | Manual intervention required |
|
|
76
|
-
| 19 | HAS_DEPENDENTS | Yes | Use --orphan flag |
|
|
77
|
-
|
|
78
|
-
### Concurrency (20-22)
|
|
79
|
-
|
|
80
|
-
| Code | Constant | Recoverable | Recovery |
|
|
81
|
-
|------|----------|:-----------:|----------|
|
|
82
|
-
| 20 | CHECKSUM_MISMATCH | Yes | Retry (file changed externally) |
|
|
83
|
-
| 21 | CONCURRENT_MODIFICATION | Yes | Retry after delay |
|
|
84
|
-
| 22 | ID_COLLISION | Yes | Retry (regenerates ID) |
|
|
85
|
-
|
|
86
|
-
### Session (30-39)
|
|
87
|
-
|
|
88
|
-
| Code | Constant | Recoverable | Recovery |
|
|
89
|
-
|------|----------|:-----------:|----------|
|
|
90
|
-
| 30 | SESSION_EXISTS | Yes | `ct session list`, resume existing |
|
|
91
|
-
| 31 | SESSION_NOT_FOUND | Yes | `ct session list` for valid IDs |
|
|
92
|
-
| 32 | SCOPE_CONFLICT | Yes | End conflicting session first |
|
|
93
|
-
| 33 | SCOPE_INVALID | Yes | Verify epic exists |
|
|
94
|
-
| 34 | TASK_NOT_IN_SCOPE | Yes | End session, restart with correct scope |
|
|
95
|
-
| 35 | TASK_CLAIMED | Yes | `ct next` for unclaimed task |
|
|
96
|
-
| 36 | SESSION_REQUIRED | Yes | `ct session start` first |
|
|
97
|
-
| 37 | SESSION_CLOSE_BLOCKED | No | Complete pending tasks first |
|
|
98
|
-
| 38 | START_REQUIRED | Yes | `ct start T###` |
|
|
99
|
-
| 39 | NOTES_REQUIRED | Yes | Add `--note "..."` |
|
|
100
|
-
|
|
101
|
-
### Verification (40-47)
|
|
102
|
-
|
|
103
|
-
| Code | Constant | Recoverable | Recovery |
|
|
104
|
-
|------|----------|:-----------:|----------|
|
|
105
|
-
| 40 | VERIFICATION_INIT_FAILED | Yes | Check task state |
|
|
106
|
-
| 41 | GATE_UPDATE_FAILED | Yes | Retry |
|
|
107
|
-
| 42 | INVALID_GATE | Yes | Check valid gate names |
|
|
108
|
-
| 43 | INVALID_AGENT | Yes | Check valid agent names |
|
|
109
|
-
| 44 | MAX_ROUNDS_EXCEEDED | Yes | Review implementation |
|
|
110
|
-
| 45 | GATE_DEPENDENCY | Yes | Complete prerequisite gate |
|
|
111
|
-
| 46 | VERIFICATION_LOCKED | No | Requires manual unlock |
|
|
112
|
-
| 47 | ROUND_MISMATCH | Yes | Sync round number |
|
|
113
|
-
|
|
114
|
-
### Context Safeguard (50-54)
|
|
115
|
-
|
|
116
|
-
| Code | Constant | Action |
|
|
117
|
-
|------|----------|--------|
|
|
118
|
-
| 50 | CONTEXT_WARNING | Continue, reduce output |
|
|
119
|
-
| 51 | CONTEXT_CAUTION | Prioritize completion |
|
|
120
|
-
| 52 | CONTEXT_CRITICAL | Run `ct safestop` |
|
|
121
|
-
| 53 | CONTEXT_EMERGENCY | Immediate `ct safestop` |
|
|
122
|
-
| 54 | CONTEXT_STALE | Re-check context state |
|
|
123
|
-
|
|
124
|
-
### Protocol/Orchestrator (60-67)
|
|
125
|
-
|
|
126
|
-
| Code | Constant | Recoverable | Recovery |
|
|
127
|
-
|------|----------|:-----------:|----------|
|
|
128
|
-
| 60 | PROTOCOL_MISSING | Yes | Add protocol injection block |
|
|
129
|
-
| 61 | INVALID_RETURN_MESSAGE | Yes | Fix return format |
|
|
130
|
-
| 62 | MANIFEST_ENTRY_MISSING | Yes | Append MANIFEST.jsonl entry |
|
|
131
|
-
| 63 | SPAWN_VALIDATION_FAILED | Yes | Fix spawn parameters |
|
|
132
|
-
| 64 | AUTONOMOUS_BOUNDARY | No | Requires HITL decision |
|
|
133
|
-
| 65 | HANDOFF_REQUIRED | No | Generate handoff document |
|
|
134
|
-
| 66 | RESUME_FAILED | Yes | Check session/handoff validity |
|
|
135
|
-
| 67 | CONCURRENT_SESSION | Yes | End other session first |
|
|
136
|
-
|
|
137
|
-
**NOTE**: Codes 60-67 have a known collision between protocol validation (RCSD) and orchestrator functions. They are isolated by usage context.
|
|
138
|
-
|
|
139
|
-
### Nexus (70-79)
|
|
140
|
-
|
|
141
|
-
| Code | Constant | Recoverable | Recovery |
|
|
142
|
-
|------|----------|:-----------:|----------|
|
|
143
|
-
| 70 | NEXUS_NOT_INITIALIZED | Yes | Run nexus init |
|
|
144
|
-
| 71 | NEXUS_PROJECT_NOT_FOUND | Yes | Register project first |
|
|
145
|
-
| 72 | NEXUS_PERMISSION_DENIED | No | Check permissions |
|
|
146
|
-
| 73 | NEXUS_INVALID_SYNTAX | Yes | Fix query syntax |
|
|
147
|
-
| 74 | NEXUS_SYNC_FAILED | Yes | Retry sync |
|
|
148
|
-
| 75 | NEXUS_REGISTRY_CORRUPT | No | Manual repair needed |
|
|
149
|
-
| 76 | NEXUS_PROJECT_EXISTS | Yes | Already registered |
|
|
150
|
-
| 77 | NEXUS_QUERY_FAILED | Yes | Retry or refine query |
|
|
151
|
-
| 78 | NEXUS_GRAPH_ERROR | Yes | Retry |
|
|
152
|
-
| 79 | NEXUS_RESERVED | - | Reserved |
|
|
153
|
-
|
|
154
|
-
### Lifecycle (80-84)
|
|
155
|
-
|
|
156
|
-
| Code | Constant | Recoverable | Recovery |
|
|
157
|
-
|------|----------|:-----------:|----------|
|
|
158
|
-
| 80 | LIFECYCLE_GATE_FAILED | Yes | Complete prerequisite RCSD stages |
|
|
159
|
-
| 81 | AUDIT_MISSING | Yes | Add required audit fields |
|
|
160
|
-
| 82 | CIRCULAR_VALIDATION | No | Assign different validator |
|
|
161
|
-
| 83 | LIFECYCLE_TRANSITION_INVALID | No | Follow RCSD->IVTR sequence |
|
|
162
|
-
| 84 | PROVENANCE_REQUIRED | Yes | Add provenance fields |
|
|
163
|
-
|
|
164
|
-
### Special (100+) - NOT errors
|
|
165
|
-
|
|
166
|
-
| Code | Constant | Meaning | Agent Action |
|
|
167
|
-
|------|----------|---------|-------------|
|
|
168
|
-
| 100 | NO_DATA | Query returned empty | Do NOT retry. No matching data. |
|
|
169
|
-
| 101 | ALREADY_EXISTS | Resource exists | Treat as success. |
|
|
170
|
-
| 102 | NO_CHANGE | No-op (idempotent) | Treat as success. Do NOT retry. |
|
|
171
|
-
|
|
172
|
-
## Error Recovery Decision Trees
|
|
173
|
-
|
|
174
|
-
### Exit 34 (TASK_NOT_IN_SCOPE)
|
|
175
|
-
```
|
|
176
|
-
1. ct session status -> get current scope
|
|
177
|
-
2. ct show T### -> get task's parent epic
|
|
178
|
-
3. ct session end --note "Scope mismatch"
|
|
179
|
-
4. ct session start --scope epic:<parentId> --auto-start --name "Name"
|
|
180
|
-
5. RETRY original command
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
### Exit 35 (TASK_CLAIMED)
|
|
184
|
-
```
|
|
185
|
-
1. ct next -> get unclaimed task suggestion
|
|
186
|
-
2. ct start <suggested> -> switch to unclaimed task
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
### Exit 38 (START_REQUIRED)
|
|
190
|
-
```
|
|
191
|
-
1. ct start T### -> start working on target task
|
|
192
|
-
2. RETRY original command
|
|
193
|
-
```
|
|
194
|
-
|
|
195
|
-
### Exit 100 (NO_DATA) with session start
|
|
196
|
-
```
|
|
197
|
-
1. ct session list -> check existing sessions
|
|
198
|
-
2. IF sessions exist: ct session resume <id>
|
|
199
|
-
3. ELSE: ct session start --scope epic:T### --auto-start --name "Name"
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
## State Transitions
|
|
203
|
-
|
|
204
|
-
| From | To | Via Command |
|
|
205
|
-
|------|----|-------------|
|
|
206
|
-
| pending | active | `ct start T###` |
|
|
207
|
-
| pending | blocked | `ct update T### --status blocked` |
|
|
208
|
-
| pending | done | `ct complete T###` |
|
|
209
|
-
| active | pending | `ct start <other>` (stops current) |
|
|
210
|
-
| active | blocked | `ct update T### --status blocked` |
|
|
211
|
-
| active | done | `ct complete T###` |
|
|
212
|
-
| blocked | pending | `ct update T### --status pending` |
|
|
213
|
-
| blocked | active | `ct start T###` |
|
|
214
|
-
| done | active | `ct reopen T###` |
|
|
215
|
-
|
|
216
|
-
Valid statuses: `pending` | `active` | `blocked` | `done`
|
|
217
|
-
|
|
218
|
-
## JSON Output Format
|
|
219
|
-
|
|
220
|
-
All commands return:
|
|
221
|
-
```json
|
|
222
|
-
{"_meta":{"command":"...","timestamp":"...","version":"..."},"success":true,...}
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
Errors return:
|
|
226
|
-
```json
|
|
227
|
-
{"_meta":{...},"success":false,"error":{"code":"E_...","exitCode":N,"message":"...","fix":"ct ...","alternatives":[{"action":"...","command":"ct ..."}]}}
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
**Parsing patterns**:
|
|
231
|
-
- Success check: `jq '.success'`
|
|
232
|
-
- Error code: `jq '.error.code'`
|
|
233
|
-
- Fix command: `jq -r '.error.fix'`
|
|
234
|
-
- Results field: `jq -r '._meta.resultsField'` -> tells which key has primary data
|
|
235
|
-
|
|
236
|
-
## Constraints
|
|
237
|
-
|
|
238
|
-
| Rule | Value |
|
|
239
|
-
|------|-------|
|
|
240
|
-
| Hierarchy depth | Max 3 (epic -> task -> subtask) |
|
|
241
|
-
| Siblings per parent | Max configurable (default varies) |
|
|
242
|
-
| Valid statuses | pending, active, blocked, done |
|
|
243
|
-
| ID format | T### (sequential, immutable) |
|
|
244
|
-
| Shell escaping | Escape `$` as `\$` in arguments |
|
|
245
|
-
| Context efficiency | Use `find` (not `list`) for discovery |
|
|
246
|
-
| Discovery pattern | `find` -> `show` for details |
|
|
247
|
-
|
|
248
|
-
## Subagent Protocol
|
|
249
|
-
|
|
250
|
-
1. `ct start T###` - Start task before work
|
|
251
|
-
2. Execute implementation work
|
|
252
|
-
3. Write output file to designated path
|
|
253
|
-
4. Append ONE line to `MANIFEST.jsonl` (compact JSON, no pretty-print)
|
|
254
|
-
5. `ct complete T###` - Mark task done
|
|
255
|
-
6. Return summary message ONLY (no file content)
|
|
256
|
-
|
|
257
|
-
**Manifest entry format**:
|
|
258
|
-
```json
|
|
259
|
-
{"id":"T###-slug","file":"path","title":"...","date":"YYYY-MM-DD","status":"complete","agent_type":"...","topics":[],"key_findings":[],"actionable":true,"needs_followup":[],"linked_tasks":["T###"]}
|
|
260
|
-
```
|