@cleocode/skills 2026.9.22 → 2026.9.24

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.22",
3
+ "version": "2026.9.24",
4
4
  "description": "CLEO skill definitions - bundled with CLEO monorepo",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
@@ -2,14 +2,14 @@
2
2
  name: ct-cleo
3
3
  description: CLEO task management protocol - session, task, and workflow guidance. Use when managing tasks, sessions, or multi-agent workflows with the CLEO CLI protocol.
4
4
  metadata:
5
- version: 2.22.2
5
+ version: 2.24.1
6
6
  tier: core
7
7
  install: harness
8
8
  covers:
9
9
  - packages/cleo/src/cli/commands/session.ts
10
10
  - packages/cleo/src/cli/commands/focus.ts
11
11
  - packages/cleo/src/cli/commands/sticky.ts
12
- lastReviewed: 2026-09-28
12
+ lastReviewed: 2026-09-29
13
13
  stability: stable
14
14
  ---
15
15
 
@@ -48,8 +48,8 @@ send routine status chatter: report only when done or when a decision is needed.
48
48
 
49
49
  ## Project identity and moving between devices
50
50
 
51
- A project is identified by its portable `project_id` in `.cleo/project-id`
52
- (tracked, write-once; ADR-094). A path is only a per-device hint, so a moved or
51
+ A project is identified by its portable `project_id` in `.cleo/project.json`
52
+ (tracked, id write-once, plus its name; ADR-096; legacy mirror `.cleo/project-id`). A path is only a per-device hint, so a moved or
53
53
  restored checkout keeps its identity. After a new device, restore or migration,
54
54
  or when a known repo reports "Not inside a CLEO project", registry paths are
55
55
  unreachable, or nexus hits `ENOENT` on an old path, run and report:
@@ -57,7 +57,7 @@ unreachable, or nexus hits `ENOENT` on an old path, run and report:
57
57
  1. `cleo doctor projects` — machine-wide: moved, missing, split and temp rows with
58
58
  remedies. Dry-run by default; `--apply` rebinds only on nonce proof and writes a
59
59
  receipt; `--rollback <id>` restores.
60
- 2. `cleo doctor project-identity` — missing, conflicting or uncommitted id.
60
+ 2. `cleo doctor project-identity` — legacy, missing, conflicting or uncommitted id, name drift; `--resolve --dry-run` then `--resolve` is the only migration.
61
61
  3. `cleo doctor --all-projects` — unreachable registered projects.
62
62
  4. `cleo nexus projects clean --orphans --dry-run` — NEVER without `--dry-run`;
63
63
  it deletes rows for projects that merely moved.
@@ -143,7 +143,7 @@ stderr; `session status` / `briefing` label a guessed session `unbound: true`.
143
143
 
144
144
  ## Typed decisions (`cleo decide`, T12491)
145
145
 
146
- `decide` answers typed questions (yes/no, choice, score) through a swappable Jev-wire provider and falls back to local heuristics when unconfigured or failing. It needs two settings, an API URL and a key: `printf %s "$KEY" | cleo decide config --url <u> --key-stdin` (optional `--model`; `--clear` removes them). The key is kept in a 0600 file and never printed. `cleo decide status` probes reachability and `cleo decide ask --state <text> --noul <q>` runs one debug question.
146
+ `decide` answers typed questions (yes/no, choice, score) through a swappable Jev-wire provider and falls back to local heuristics when unconfigured or failing. Pick a provider and supply its key: `printf %s "$KEY" | cleo decide config --provider layahost --key-stdin` (layahost, the default, needs only the key and uses model `laya-auto`); a custom endpoint is `--provider jev --url <u>`. `--model` overrides the model and `--clear` removes the settings. On a terminal, `cleo decide config` with no flags runs a setup wizard that reads the key hidden. The key is kept in a 0600 file and never printed. `cleo decide status` probes reachability and `cleo decide ask --state <text> --noul <q>` runs one debug question.
147
147
 
148
148
  ## Quick Reference
149
149
 
@@ -213,7 +213,7 @@ Dry-run creates no committed attestation; failed writes leave no committed recei
213
213
 
214
214
  Use `cleo show <id> --full` to inspect task fields before editing them. Compact
215
215
  records name every omitted field in `_withheld`, including empty or null values;
216
- the size is UTF-8 content bytes for strings and serialized JSON bytes otherwise.
216
+ the size is UTF-8 content bytes for strings and serialized JSON bytes otherwise. A `list/*/field` key (`acRows/*/id`) names a field omitted from every element, summed.
217
217
  Repeated projection retains earlier omissions. A record without `_withheld` is
218
218
  complete at the record projection boundary; an envelope can separately report
219
219
  omitted records or fields. Never overwrite a field because a compact read omitted it.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: ct-codebase-mapper
3
- version: 2.0.1
3
+ version: 2.1.0
4
4
  description: Orient in an unfamiliar or large codebase with CLEO's code-intelligence graph (cleo nexus) and project map (cleo map). Use before planning or editing unfamiliar code, for brownfield onboarding, to find what a change would break, or to map a project's structure, communities and execution flows. Triggers on "map the codebase", "understand this project", "what calls X", "what would break", "brownfield analysis", "project structure".
5
5
  protocol: null
6
6
  dependencies: []
@@ -17,13 +17,13 @@ triggers:
17
17
  - project structure
18
18
  - blast radius
19
19
  metadata:
20
- version: 2.0.1
20
+ version: 2.1.0
21
21
  tier: on-demand
22
22
  install: harness
23
23
  covers:
24
24
  - packages/cleo/src/cli/commands/nexus.ts
25
25
  - packages/cleo/src/cli/commands/map.ts
26
- lastReviewed: 2026-09-28
26
+ lastReviewed: 2026-09-29
27
27
  stability: stable
28
28
  ---
29
29
 
@@ -83,6 +83,20 @@ caller, so an empty footprint alone never establishes that a change is safe.
83
83
  When a symbol name is ambiguous, pass the qualified candidate the command
84
84
  returns and confirm against the source.
85
85
 
86
+ ## 5. Across projects: where each one lives, and its state
87
+
88
+ ```bash
89
+ cleo nexus projects status # every project, per device: path, branch, dirty, ahead/behind
90
+ cleo nexus projects status --dirty --behind # filters: --missing --dirty --behind --ahead --stale --errored
91
+ cleo nexus projects status --device current # one machine (device id, hostname or current)
92
+ cleo nexus projects status --refresh # re-probe this device first (bounded; --fetch also fetches)
93
+ ```
94
+
95
+ The output lists counts first, then one page (`--limit`, `--offset`). It reads
96
+ recorded probes. `ahead`/`behind` are as of `remote.fetchedAt`, and `stale`
97
+ flags an old or missing probe or fetch. Read `matched` and `hasMore` before
98
+ concluding "none".
99
+
86
100
  ## When to use
87
101
 
88
102
  | Situation | Start with |
@@ -92,6 +106,7 @@ returns and confirm against the source.
92
106
  | About to change a function or type | `cleo nexus impact <symbol>` |
93
107
  | "Who calls this / what does this call?" | `cleo nexus context <symbol>` |
94
108
  | Tech-debt review | `cleo map --focus concerns` |
109
+ | "Which machines hold this project, and is it pushed?" | `cleo nexus projects status` |
95
110
 
96
111
  ## `cleo map` output
97
112
 
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: ct-dev-workflow
3
3
  description: Development workflow orchestration for task-driven development with atomic commits, conventional commit messages, and systematic release processes. Enforces task traceability, branch discipline, smart test scope selection, and GitHub Actions integration. Use when committing code, creating releases, managing branches, or following contribution protocols. Triggers on commit operations, release preparation, or workflow compliance needs.
4
- version: 3.1.3
4
+ version: 3.1.4
5
5
  protocol: contribution
6
6
  dependencies: []
7
7
  sharedResources:
@@ -14,12 +14,12 @@ compatibility:
14
14
  - gemini-cli
15
15
  license: MIT
16
16
  metadata:
17
- version: 3.1.3
17
+ version: 3.1.4
18
18
  tier: core
19
19
  install: harness
20
20
  covers:
21
21
  - .github/workflows/release-prepare.yml
22
- lastReviewed: 2026-09-28
22
+ lastReviewed: 2026-09-29
23
23
  stability: stable
24
24
  ---
25
25
 
@@ -276,6 +276,20 @@ git push origin HEAD
276
276
  # - Uploads artifacts
277
277
  ```
278
278
 
279
+ **Release preflight (`release-prepare.yml`).** `cleo release open <version>`
280
+ checks main's HEAD SHA and dispatches with `skip-tests=true` when the `ci.yml`
281
+ push run for that SHA is green AND ran every Linux `Unit Tests` shard green (a
282
+ docs-only push that skipped the tests does not count), and
283
+ `skip-macos-tests=true` when the nightly macOS jobs for that SHA are green; the
284
+ SHA travels as `verified-sha`, and the workflow ignores the skips if it checks
285
+ out another commit or `verified-sha` is empty. Otherwise the 4
286
+ Linux and 4 macOS test shards run. The decision is in the run summary.
287
+
288
+ **Bump-PR merge.** Its `pull_request` runs stay `action_required` (no GitHub
289
+ App), so the orchestrator admin-merges once the dispatched `CI` run on the PR
290
+ head SHA is green: `gh pr merge <n> --admin --merge` — see
291
+ `docs/release/merge-queue-runbook.md`.
292
+
279
293
  ---
280
294
 
281
295
  ## Quick Decision Matrix
@@ -2,13 +2,13 @@
2
2
  name: ct-lead
3
3
  description: "Phase Lead orchestration playbook for spawning and supervising a parallel worker swarm in one wave. Use when spawned by ct-orchestrator with role=orchestrator to fan out N leaf workers via delegate_task, drain the epic-{TID}.wave-{n} conduit topic plus pipeline_manifest, await rollupWaveStatus convergence, and return ONE rolled-up contract string to the parent Orchestrator. Triggers: 'phase lead', 'wave lead', 'supervise wave', 'fan out workers', 'aggregate worker results', 'rollup wave', any task with role=orchestrator that is itself a child of another orchestrator. Implements ADR-070 hierarchical orchestration."
4
4
  metadata:
5
- version: 1.0.5
5
+ version: 1.0.7
6
6
  tier: core
7
7
  install: harness
8
8
  covers:
9
9
  - packages/core/src/orchestration/lead-rollup.ts
10
10
  - packages/core/src/orchestration/waves.ts
11
- lastReviewed: 2026-09-28
11
+ lastReviewed: 2026-09-29
12
12
  stability: stable
13
13
  ---
14
14
 
@@ -126,10 +126,25 @@ cleo orchestrate roll-up "${EPIC}" --wave "${WAVE}" --json \
126
126
  >
127
127
  > `orchestrate ready`, `plan` and `parallel start --wave <n>` never re-run
128
128
  > finished tasks.
129
+ >
130
+ > **Order within a wave (T12692).** Members of a wave, the `orchestrate
131
+ > ready` list and the focus ready wave are in the SAME order as `cleo next`
132
+ > (D11161): priority band, then attested severity (unset is unknown and never
133
+ > outranks an attested P1 of the same band), then a bounded tiebreak (deps,
134
+ > phase, leverage, age), then `createdAt`, then id. Spawn in that order when
135
+ > the wave is wider than `maxConcurrent`. Only the order moves; the wave
136
+ > number is still structural depth.
129
137
 
130
138
  `rollupWaveStatus` (T9082, `packages/core/src/orchestration/lead-rollup.ts`)
131
139
  returns `{ wave, total, complete, partial, blocked, failed, workers: [...] }`.
132
140
 
141
+ A stored manifest row with malformed metadata no longer fails the roll-up
142
+ (T12686): it is skipped, every other worker is still reported, and a
143
+ `W_MANIFEST_ROW_MALFORMED` warning names the row, the bad field and the
144
+ repair. Treat that warning as missing coverage, not a clean wave: run
145
+ `cleo doctor manifest-rows` to list such rows, `--repair` to see the plan,
146
+ and `--repair --apply` to rewrite them with a receipt.
147
+
133
148
  ### 4. Decide: retry / escalate / return
134
149
 
135
150
  See `references/aggregation-protocol.md` for the full decision matrix.
@@ -2,13 +2,13 @@
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.4
5
+ version: 4.0.5
6
6
  tier: core
7
7
  install: harness
8
8
  covers:
9
9
  - packages/cleo/src/cli/commands/orchestrate.ts
10
10
  - packages/core/src/orchestration/spawn-prompt.ts
11
- lastReviewed: 2026-09-28
11
+ lastReviewed: 2026-09-29
12
12
  stability: stable
13
13
  ---
14
14
 
@@ -160,6 +160,16 @@ Agent({
160
160
  })
161
161
  ```
162
162
 
163
+ **Task claims (T12502)**: spawn gives the task's claim lease to the worker's own
164
+ session and records your session as its spawner (`spawnedBySessionId`, written
165
+ only by the spawn — a self-declared `CLEO_PARENT_SESSION_ID` does not count), so
166
+ the lease moves between you and your worker without an override. A task another session holds refuses the
167
+ spawn with `E_TASK_CLAIMED`; a failed spawn hands the lease back to you. The
168
+ prompt tells the worker to begin every Bash call with
169
+ `cd <worktree> && export CLEO_SESSION_ID=… CLEO_AGENT_ID=… CLEO_AGENT_ROLE=… || exit 1`,
170
+ since harness shells keep neither cwd nor env between calls (the git shim reads
171
+ `CLEO_AGENT_ROLE`). Do not strip that line.
172
+
163
173
  **Other harnesses**: Pass the resolved prompt to whatever "give this prompt to an agent" mechanism the runtime provides. Results flow back through pipeline_manifest (via `cleo manifest append`) — the universal handoff medium.
164
174
 
165
175
  ### Valid Return Messages
@@ -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.3
4
+ version: 2.7.5
5
5
  protocol: implementation
6
6
  adrRefs:
7
7
  - ADR-070
@@ -17,16 +17,18 @@ compatibility:
17
17
  - gemini-cli
18
18
  license: MIT
19
19
  metadata:
20
- version: 2.7.3
20
+ version: 2.7.5
21
21
  tier: core
22
22
  install: harness
23
23
  covers:
24
24
  - packages/cleo/src/cli/commands/verify.ts
25
25
  - packages/cleo/src/cli/commands/complete.ts
26
+ - packages/cleo/src/cli/commands/start.ts
27
+ - packages/cleo/src/cli/commands/claim.ts
26
28
  - packages/core/src/validation/protocols/cant/implementation.cant
27
29
  - packages/core/src/validation/protocols/protocols-markdown/implementation.md
28
30
  loomStage: implementation
29
- lastReviewed: 2026-09-28
31
+ lastReviewed: 2026-09-29
30
32
  stability: stable
31
33
  ---
32
34
 
@@ -281,6 +283,41 @@ If deliverables don't pass acceptance criteria:
281
283
  4. Complete task only if failure is documented and understood
282
284
  5. Return appropriate status message
283
285
 
286
+ ### Concurrent Edits (`E_CONFLICT`, exit 23)
287
+
288
+ Another agent may edit the same task while you work. `cleo update` and
289
+ `cleo complete` refuse a write based on a stale read with `E_CONFLICT`; nothing
290
+ was written. `error.details` carries `currentVersion`, `changedFields`,
291
+ per-field `changes` (`was`/`now`) and the stored `current` values. Re-read the
292
+ task, merge your change onto it, then retry. To guard a write explicitly, pass
293
+ the version you read:
294
+
295
+ ```bash
296
+ cleo show T1234 --field /data/task/updatedAt # the version you read
297
+ cleo update T1234 --title "New title" --if-match <updatedAt>
298
+ cleo complete T1234 --if-match <updatedAt>
299
+ ```
300
+
301
+ `--add-labels`, `--add-depends` and `--add-files` merge with concurrent writers and never need a retry.
302
+
303
+ ### Claimed Tasks (`E_TASK_CLAIMED`, exit 35)
304
+
305
+ `cleo start` (and spawn) takes your session's time-limited claim lease on the
306
+ task. If another session holds it, the start is refused with `E_TASK_CLAIMED`
307
+ and nothing is written; `error.details` names the `holder` (session, agent,
308
+ `leaseExpiresAt`), whether the lease has `expired`, and the `override` flag.
309
+ Your mutations renew your leases; `cleo stop`, `cleo complete` and ending your
310
+ session release them. The human `assignee` is a separate field.
311
+
312
+ ```bash
313
+ cleo claim T1234 --renew # extend your lease during a long step
314
+ cleo start T1234 --take-over # holder's lease EXPIRED (audited)
315
+ cleo start T1234 --force-claim # holder is LIVE: only with a clear reason (audited)
316
+ ```
317
+
318
+ Never force a live claim to get unblocked: pick another task (`cleo next`) or
319
+ report the conflict to your orchestrator.
320
+
284
321
  ---
285
322
 
286
323
  ## Session Management
@@ -226,7 +226,7 @@
226
226
  },
227
227
  {
228
228
  "name": "ct-cleo",
229
- "version": "2.22.2",
229
+ "version": "2.24.1",
230
230
  "description": "CLEO task management protocol - session, task, and workflow guidance. Use when managing tasks, sessions, or multi-agent workflows with the CLEO CLI protocol.",
231
231
  "path": "skills/ct-cleo",
232
232
  "tier": 0,
@@ -302,7 +302,7 @@
302
302
  },
303
303
  {
304
304
  "name": "ct-codebase-mapper",
305
- "version": "2.0.1",
305
+ "version": "2.1.0",
306
306
  "description": "Orient in an unfamiliar or large codebase with CLEO's code-intelligence graph (cleo nexus) and project map (cleo map). Use before planning or editing unfamiliar code, for brownfield onboarding, to find what a change would break, or to map a project's structure, communities and execution flows. Triggers on \"map the codebase\", \"understand this project\", \"what calls X\", \"what would break\", \"brownfield analysis\", \"project structure\".",
307
307
  "path": "skills/ct-codebase-mapper",
308
308
  "tier": 1,
@@ -566,7 +566,7 @@
566
566
  },
567
567
  {
568
568
  "name": "ct-dev-workflow",
569
- "version": "3.1.3",
569
+ "version": "3.1.4",
570
570
  "description": "Development workflow orchestration for task-driven development with atomic commits, conventional commit messages, and systematic release processes. Enforces task traceability, branch discipline, smart test scope selection, and GitHub Actions integration. Use when committing code, creating releases, managing branches, or following contribution protocols. Triggers on commit operations, release preparation, or workflow compliance needs.",
571
571
  "path": "skills/ct-dev-workflow",
572
572
  "tier": 0,
@@ -965,7 +965,7 @@
965
965
  },
966
966
  {
967
967
  "name": "ct-lead",
968
- "version": "1.0.5",
968
+ "version": "1.0.7",
969
969
  "description": "Phase Lead orchestration playbook for spawning and supervising a parallel worker swarm in one wave. Use when spawned by ct-orchestrator with role=orchestrator to fan out N leaf workers via delegate_task, drain the epic-{TID}.wave-{n} conduit topic plus pipeline_manifest, await rollupWaveStatus convergence, and return ONE rolled-up contract string to the parent Orchestrator. Triggers: 'phase lead', 'wave lead', 'supervise wave', 'fan out workers', 'aggregate worker results', 'rollup wave', any task with role=orchestrator that is itself a child of another orchestrator. Implements ADR-070 hierarchical orchestration.",
970
970
  "path": "skills/ct-lead",
971
971
  "tier": 0,
@@ -983,7 +983,7 @@
983
983
  },
984
984
  {
985
985
  "name": "ct-orchestrator",
986
- "version": "4.0.4",
986
+ "version": "4.0.5",
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.3",
1475
+ "version": "2.7.5",
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,