@cleocode/skills 2026.9.24 → 2026.9.25

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cleocode/skills",
3
- "version": "2026.9.24",
3
+ "version": "2026.9.25",
4
4
  "description": "CLEO skill definitions - bundled with CLEO monorepo",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -2,7 +2,7 @@
2
2
  name: ct-orchestrator
3
3
  description: "Pipeline-aware orchestration skill for managing complex workflows through subagent delegation. Use when the user asks to \"orchestrate\", \"orchestrator mode\", \"run as orchestrator\", \"delegate to subagents\", \"coordinate agents\", \"spawn subagents\", \"multi-agent workflow\", \"context-protected workflow\", \"agent farm\", \"HITL orchestration\", \"pipeline management\", or needs to manage complex workflows by delegating work to subagents while protecting the main context window. Enforces ORC-001 through ORC-009 constraints. Provider-neutral — works with any AI agent runtime."
4
4
  metadata:
5
- version: 4.0.5
5
+ version: 4.0.7
6
6
  tier: core
7
7
  install: harness
8
8
  covers:
@@ -174,12 +174,18 @@ since harness shells keep neither cwd nor env between calls (the git shim reads
174
174
 
175
175
  ### Valid Return Messages
176
176
 
177
- Capture exactly one `cleo manifest append` receipt (shorthand OR rich entry). Verify that same receipt has `success: true`, `data.appended: true`, and a nonempty `entryId`, then read it with `cleo manifest show <entryId>`. Never append again merely to capture or verify the receipt. On append or readback failure, report the failure; do not claim "Manifest appended". Static prompt checks do not prove storage or provider workflow success.
177
+ Append exactly once and capture the id with `--field /data/entryId` (ADR-086: never pipe the receipt through `python3`/`jq`). A nonempty `ENTRY_ID` must then read back with `cleo manifest show "$ENTRY_ID"`. Never append again merely to verify. On append or readback failure, return `blocked` with `manifest:none`; do not claim an entry. Static prompt checks do not prove storage or provider workflow success. The manifest `--type` is the protocol's own type (`consensus`, `specification`, `architecture_decision`, ... — T12521).
178
178
 
179
- After successful verification, subagents MUST return exactly one of:
180
- - `"[Type] complete. Manifest appended to pipeline_manifest."`
181
- - `"[Type] partial. Manifest appended to pipeline_manifest."`
182
- - `"[Type] blocked. Manifest appended to pipeline_manifest."`
179
+ After verification, subagents MUST return exactly this compressed block (T12521):
180
+
181
+ ```
182
+ [Type] <complete|partial|blocked>. manifest:<entryId>
183
+ commits: <sha7,sha7|none>
184
+ gates: <gate>=<pass|fail|skip> ...
185
+ blocker: <≤12 words|none>
186
+ ```
187
+
188
+ blocker: none when complete; required when partial/blocked. `manifest:none` only for `partial`/`blocked`; fill every `<...>` placeholder (validators reject `<`/`>` in the entry id). Validators (`checkReturnMessageFormat`, `checkReturnFormat`, `validateReturnMessage`) still accept the legacy one-liner `"[Type] <complete|partial|blocked>. Manifest appended to pipeline_manifest."`.
183
189
 
184
190
  > Detailed spawn workflow, manual protocol injection, skill dispatch matrix: `references/orchestrator-spawning.md`
185
191
 
@@ -1,21 +1,33 @@
1
1
  # Subagent Protocol Block
2
2
 
3
- Copy and include this block in EVERY subagent prompt spawned via Task tool.
3
+ Include this block in EVERY subagent prompt spawned via Task tool. It matches the
4
+ spawn prompt's Return Format Contract and Manifest Protocol blocks (T12521).
4
5
 
5
6
  ## Standard Protocol Block
6
7
 
7
- ```
8
+ ````
8
9
  ## SUBAGENT PROTOCOL (RFC 2119 - MANDATORY)
9
10
 
10
- OUTPUT REQUIREMENTS:
11
- 1. MUST record findings with `cleo docs add {{TASK_ID}} --content - --type <kind> --slug {{TOPIC_SLUG}}` (never a raw file under `.cleo/agent-outputs/`)
12
- 2. MUST append ONE entry via `cleo manifest append --entry '<json>'` (writes to pipeline_manifest table per ADR-027/T1093)
13
- 3. MUST return ONLY: "Research complete. Manifest appended to pipeline_manifest."
14
- 4. MUST NOT return research content in response.
15
-
16
- MANIFEST ENTRY FORMAT:
17
- {"id":"YYYY-MM-DD_{topic}","timestamp":"ISO8601","task_id":"TXXXX","agent":"agent-name","status":"complete","key_findings":["finding1","finding2"],"needs_followup":["next-task-id"],"file":"YYYY-MM-DD_{topic}.md"}
18
- ```
11
+ OUTPUT:
12
+ 1. MUST record findings: `cleo docs add {{TASK_ID}} --content - --type <kind> --slug {{TOPIC_SLUG}}`. Never a raw file under `.cleo/agent-outputs/`.
13
+ 2. MUST append ONE entry to SQLite `pipeline_manifest` (ADR-027/T1093) and read it back:
14
+ ENTRY_ID=$(cleo manifest append --task {{TASK_ID}} --type <protocol> \
15
+ --content "<work, commits, gates>" --status completed \
16
+ --field /data/entryId) || exit 1
17
+ [ -n "$ENTRY_ID" ] || exit 1
18
+ cleo manifest show "$ENTRY_ID" >/dev/null || exit 1
19
+ `--status`: completed, partial or blocked (actual progress). Do not append again to verify.
20
+ 3. MUST NOT return research content, findings, diffs or prose.
21
+ 4. MUST return EXACTLY this block, nothing else:
22
+ <Type> <complete|partial|blocked>. manifest:<entryId>
23
+ commits: <sha7,sha7|none>
24
+ gates: <gate>=<pass|fail|skip> ...
25
+ blocker: <≤12 words|none>
26
+ blocker: none when complete; required when partial/blocked.
27
+ Append or readback failed → `<Type> blocked. manifest:none` + `blocker: manifest append failed`. Never claim an entry you did not read back.
28
+
29
+ HITL: never ask the human. Return `<Type> blocked. manifest:<entryId>` + blocker: with {question, options[{label,description}], recommended} in the manifest; the orchestrator asks via the ask tool.
30
+ ````
19
31
 
20
32
  ## Usage
21
33
 
@@ -28,15 +40,11 @@ When spawning a subagent via Task tool:
28
40
 
29
41
  ## Example Subagent Prompt
30
42
 
31
- ```
43
+ ````
32
44
  You are the {ROLE} subagent. Your job is to complete CLEO task {TASK_ID}.
33
45
 
34
46
  ## SUBAGENT PROTOCOL (RFC 2119 - MANDATORY)
35
- OUTPUT REQUIREMENTS:
36
- 1. MUST record findings with `cleo docs add {{TASK_ID}} --content - --type <kind> --slug {{TOPIC_SLUG}}` (never a raw file under `.cleo/agent-outputs/`)
37
- 2. MUST append ONE entry via `cleo manifest append --entry '<json>'` (writes to pipeline_manifest table per ADR-027/T1093)
38
- 3. MUST return ONLY: "Research complete. Manifest appended to pipeline_manifest."
39
- 4. MUST NOT return research content in response.
47
+ <Standard Protocol Block above, with {{TASK_ID}} and --type filled in>
40
48
 
41
49
  ## CONTEXT
42
50
  - Epic: {EPIC_ID} ({EPIC_TITLE})
@@ -50,17 +58,35 @@ OUTPUT REQUIREMENTS:
50
58
  {DETAILED_INSTRUCTIONS}
51
59
 
52
60
  BEGIN EXECUTION.
61
+ ````
62
+
63
+ Example return:
64
+
65
+ ```
66
+ Research complete. manifest:T1599-research-20260929
67
+ commits: none
68
+ gates: implemented=pass
69
+ blocker: none
53
70
  ```
54
71
 
55
- ## Manifest Entry Schema
72
+ ## Rich Manifest Entry
73
+
74
+ The shorthand above is preferred. The rich form is
75
+ `cleo manifest append --entry '<json>'`, captured and read back the same way
76
+ (`ENTRY_ID=$(cleo manifest append --entry '<json>' --field /data/entryId)`, same guard).
56
77
 
57
78
  | Field | Type | Required | Description |
58
79
  |-------|------|----------|-------------|
59
- | id | string | Yes | Unique identifier (YYYY-MM-DD_{topic}) |
60
- | timestamp | string | Yes | ISO 8601 timestamp |
61
- | task_id | string | Yes | CLEO task ID (e.g., T1599) |
62
- | agent | string | Yes | Agent identifier |
63
- | status | string | Yes | "complete" or "partial" |
64
- | key_findings | array | Yes | Summary points (max 5) |
80
+ | id | string | Yes | Unique id, e.g. `T1599-research-<YYYYMMDDHHMMSS>` |
81
+ | file | string | Yes | Output path |
82
+ | title | string | Yes | Headline, max 120 chars |
83
+ | date | string | Yes | `YYYY-MM-DD` |
84
+ | status | string | Yes | `completed`, `partial` or `blocked` |
85
+ | agent_type | string | Yes | Protocol type (`research`, `consensus`, ...) |
86
+ | topics | array | Yes | Topic tags |
87
+ | actionable | boolean | Yes | Needs follow-up action |
88
+ | key_findings | array | No | Summary points (max 5) |
65
89
  | needs_followup | array | No | Task IDs requiring followup |
66
- | file | string | Yes | Output filename |
90
+ | linked_tasks | array | No | Task IDs; the first becomes the manifest task id |
91
+
92
+ Missing required fields → `E_VALIDATION_FAILED`. Link tasks via `linked_tasks[]`, not `task_id`.
@@ -16,9 +16,18 @@ echo "$prompt" | grep -q "SUBAGENT PROTOCOL" || echo "ERROR: Missing protocol bl
16
16
 
17
17
  ### MUST Validate Return Messages
18
18
 
19
- Only accept these return message formats from subagents:
19
+ Only accept these return message formats from subagents. The compressed block (T12521) is what spawn prompts ask for:
20
20
 
21
- | Status | Valid Return Message |
21
+ ```
22
+ Research <complete|partial|blocked>. manifest:<entryId>
23
+ commits: <sha7,sha7|none>
24
+ gates: <gate>=<pass|fail|skip> ...
25
+ blocker: <≤12 words|none>
26
+ ```
27
+
28
+ Line 1 is required; `commits:`, `gates:` and `blocker:` may each appear once, and `blocker` is not `none` only for `partial`/`blocked`. The legacy one-liner stays valid:
29
+
30
+ | Status | Legacy Return Message |
22
31
  |--------|---------------------|
23
32
  | Complete | "Research complete. Manifest appended to pipeline_manifest." |
24
33
  | Partial | "Research partial. Manifest appended to pipeline_manifest." |
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: ct-task-executor
3
3
  description: General implementation task execution for completing assigned CLEO tasks by following instructions and producing concrete deliverables. Handles coding, configuration, documentation work with quality verification against acceptance criteria and progress reporting. Use when executing implementation tasks, completing assigned work, or producing task deliverables. Triggers on implementation tasks, general execution needs, or task completion work.
4
- version: 2.7.5
4
+ version: 2.7.6
5
5
  protocol: implementation
6
6
  adrRefs:
7
7
  - ADR-070
@@ -17,7 +17,7 @@ compatibility:
17
17
  - gemini-cli
18
18
  license: MIT
19
19
  metadata:
20
- version: 2.7.5
20
+ version: 2.7.6
21
21
  tier: core
22
22
  install: harness
23
23
  covers:
@@ -163,7 +163,7 @@ The routing prints a one-line info message to stderr (suppress with
163
163
 
164
164
  1. MUST record findings with `cleo docs add {{TASK_ID}} --content - --type note --slug {{TOPIC_SLUG}}` (never a raw file under `.cleo/agent-outputs/`)
165
165
  2. MUST record ONE manifest entry: `cleo manifest append --entry '<entry JSON>'` (the flat manifest file is retired, ADR-027)
166
- 3. MUST return ONLY: "Implementation complete. Manifest appended to pipeline_manifest."
166
+ 3. MUST return ONLY the compressed block: `Implementation complete. manifest:<entryId>` then `commits:`, `gates:` and `blocker: none` lines (T12521; the legacy one-liner "Implementation complete. Manifest appended to pipeline_manifest." is still accepted)
167
167
  4. MUST NOT return implementation details in response
168
168
 
169
169
  ---
@@ -261,7 +261,7 @@ If all deliverables cannot be produced:
261
261
  3. Set manifest `"status": "partial"`
262
262
  4. Add blocking items to `needs_followup`
263
263
  5. Complete task (partial work is progress)
264
- 6. Return: "Implementation partial. Manifest appended to pipeline_manifest."
264
+ 6. Return the compressed block with `Implementation partial. manifest:<entryId>` and a `blocker:` line (≤12 words)
265
265
 
266
266
  ### Blocked Execution
267
267
 
@@ -271,7 +271,7 @@ If work cannot proceed (missing dependencies, access issues, unclear requirement
271
271
  2. Set manifest `"status": "blocked"`
272
272
  3. Add blocker details to `needs_followup`
273
273
  4. Do NOT complete task
274
- 5. Return: "Implementation blocked. Manifest appended to pipeline_manifest."
274
+ 5. Return the compressed block with `Implementation blocked. manifest:<entryId>` and a `blocker:` line (≤12 words)
275
275
 
276
276
  ### Acceptance Criteria Failure
277
277
 
@@ -983,7 +983,7 @@
983
983
  },
984
984
  {
985
985
  "name": "ct-orchestrator",
986
- "version": "4.0.5",
986
+ "version": "4.0.7",
987
987
  "description": "Pipeline-aware orchestration skill for managing complex workflows through subagent delegation. Use when the user asks to \\\"orchestrate\\\", \\\"orchestrator mode\\\", \\\"run as orchestrator\\\", \\\"delegate to subagents\\\", \\\"coordinate agents\\\", \\\"spawn subagents\\\", \\\"multi-agent workflow\\\", \\\"context-protected workflow\\\", \\\"agent farm\\\", \\\"HITL orchestration\\\", \\\"pipeline management\\\", or needs to manage complex workflows by delegating work to subagents while protecting the main context window. Enforces ORC-001 through ORC-009 constraints. Provider-neutral — works with any AI agent runtime.",
988
988
  "path": "skills/ct-orchestrator",
989
989
  "tier": 0,
@@ -1472,7 +1472,7 @@
1472
1472
  },
1473
1473
  {
1474
1474
  "name": "ct-task-executor",
1475
- "version": "2.7.5",
1475
+ "version": "2.7.6",
1476
1476
  "description": "General implementation task execution for completing assigned CLEO tasks by following instructions and producing concrete deliverables. Handles coding, configuration, documentation work with quality verification against acceptance criteria and progress reporting. Use when executing implementation tasks, completing assigned work, or producing task deliverables. Triggers on implementation tasks, general execution needs, or task completion work.",
1477
1477
  "path": "skills/ct-task-executor",
1478
1478
  "tier": 0,