@cleocode/skills 2026.9.20 → 2026.9.22

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 (154) hide show
  1. package/README.md +46 -63
  2. package/frontmatter.d.mts +60 -0
  3. package/frontmatter.mjs +277 -0
  4. package/index.d.ts +3 -3
  5. package/index.js +34 -9
  6. package/package.json +4 -2
  7. package/profiles/core.json +10 -3
  8. package/profiles/full.json +10 -6
  9. package/profiles/recommended.json +29 -3
  10. package/skills/_shared/manifest-operations.md +19 -40
  11. package/skills/_shared/skill-chaining-patterns.md +5 -9
  12. package/skills/_shared/subagent-protocol-base.md +6 -6
  13. package/skills/_shared/task-system-integration.md +6 -6
  14. package/skills/ct-adr-recorder/SKILL.md +22 -16
  15. package/skills/ct-artifact-publisher/SKILL.md +14 -6
  16. package/skills/ct-cleo/SKILL.md +97 -16
  17. package/skills/ct-cleo/__tests__/injection-content.test.ts +62 -13
  18. package/skills/ct-cleo/references/loom-lifecycle.md +1 -1
  19. package/skills/{ct-memory/SKILL.md → ct-cleo/references/memory.md} +10 -18
  20. package/skills/ct-cleo/references/orchestrator-constraints.md +5 -5
  21. package/skills/ct-cleo/references/session-protocol.md +17 -9
  22. package/skills/{ct-stickynote/SKILL.md → ct-cleo/references/sticky-notes.md} +7 -25
  23. package/skills/ct-codebase-mapper/SKILL.md +66 -38
  24. package/skills/ct-consensus-voter/SKILL.md +14 -6
  25. package/skills/ct-contribution/SKILL.md +11 -5
  26. package/skills/ct-council/SKILL.md +5 -0
  27. package/skills/ct-dev-workflow/SKILL.md +9 -8
  28. package/skills/ct-documentor/SKILL.md +37 -34
  29. package/skills/{ct-docs-review/__tests__/skill-docs-review.test.ts → ct-documentor/__tests__/reviewing-reference.test.ts} +4 -3
  30. package/skills/{ct-docs-write/__tests__/skill-docs-write.test.ts → ct-documentor/__tests__/writing-reference.test.ts} +4 -3
  31. package/skills/ct-documentor/references/anti-patterns.md +8 -8
  32. package/skills/{ct-docs-write → ct-documentor}/references/audience-targeting.md +5 -5
  33. package/skills/ct-documentor/references/chain-orchestration.md +19 -19
  34. package/skills/{ct-docs-write → ct-documentor}/references/cleo-style-guide.md +1 -1
  35. package/skills/ct-documentor/references/doc-types-and-templates.md +1 -1
  36. package/skills/{ct-docs-review → ct-documentor}/references/pr-review-mode.md +1 -1
  37. package/skills/{ct-docs-review/SKILL.md → ct-documentor/references/reviewing.md} +6 -22
  38. package/skills/ct-documentor/references/style-coordination.md +5 -5
  39. package/skills/{ct-docs-review → ct-documentor}/references/style-violations.md +1 -1
  40. package/skills/{ct-docs-write/SKILL.md → ct-documentor/references/writing.md} +5 -21
  41. package/skills/ct-epic-architect/SKILL.md +16 -9
  42. package/skills/ct-epic-architect/references/commands.md +5 -5
  43. package/skills/ct-epic-architect/references/output-format.md +2 -2
  44. package/skills/ct-epic-architect/references/patterns.md +2 -2
  45. package/skills/ct-epic-architect/references/skill-aware-execution.md +3 -3
  46. package/skills/ct-grade/SKILL.md +7 -4
  47. package/skills/ct-grade/agents/scenario-runner.md +1 -1
  48. package/skills/ct-ivt-looper/SKILL.md +27 -21
  49. package/skills/ct-lead/SKILL.md +49 -12
  50. package/skills/ct-lead/references/aggregation-protocol.md +44 -21
  51. package/skills/ct-lead/references/spawn-pattern.md +12 -11
  52. package/skills/ct-orchestrator/README.md +2 -2
  53. package/skills/ct-orchestrator/SKILL.md +34 -11
  54. package/skills/ct-orchestrator/references/SUBAGENT-PROTOCOL-BLOCK.md +4 -4
  55. package/skills/ct-orchestrator/references/autonomous-operation.md +4 -4
  56. package/skills/ct-orchestrator/references/orchestrator-compliance.md +3 -3
  57. package/skills/ct-orchestrator/references/orchestrator-patterns.md +20 -19
  58. package/skills/ct-orchestrator/references/orchestrator-recovery.md +13 -23
  59. package/skills/ct-orchestrator/references/orchestrator-spawning.md +9 -10
  60. package/skills/ct-orchestrator/references/orchestrator-tokens.md +9 -9
  61. package/skills/ct-provenance-keeper/SKILL.md +14 -6
  62. package/skills/ct-release-orchestrator/SKILL.md +23 -13
  63. package/skills/ct-release-orchestrator/references/composition.md +1 -1
  64. package/skills/ct-release-orchestrator/references/release-types.md +33 -15
  65. package/skills/ct-research-agent/SKILL.md +18 -12
  66. package/skills/ct-research-agent/references/triggers-and-routing.md +4 -4
  67. package/skills/{ct-skill-creator → ct-skill-author}/SKILL.md +12 -4
  68. package/skills/{ct-skill-validator → ct-skill-author}/agents/ecosystem-checker.md +1 -1
  69. package/skills/{ct-skill-validator → ct-skill-author}/evals/quality_evals.json +10 -10
  70. package/skills/{ct-skill-validator → ct-skill-author}/evals/trigger_queries.json +1 -1
  71. package/skills/{ct-skill-validator → ct-skill-author}/references/cleo-ecosystem-rules.md +8 -4
  72. package/skills/{ct-skill-creator → ct-skill-author}/references/provider-deployment.md +10 -6
  73. package/skills/{ct-skill-validator/SKILL.md → ct-skill-author/references/validating.md} +14 -16
  74. package/skills/{ct-skill-validator → ct-skill-author}/references/validation-rules.md +2 -2
  75. package/skills/{ct-skill-validator → ct-skill-author}/scripts/_skill_finder.py +2 -2
  76. package/skills/{ct-skill-validator → ct-skill-author}/scripts/check_depth.py +2 -5
  77. package/skills/{ct-skill-validator → ct-skill-author}/scripts/generate_validation_report.py +1 -1
  78. package/skills/{ct-skill-validator → ct-skill-author}/scripts/run_quality_eval.py +2 -2
  79. package/skills/ct-spec-writer/SKILL.md +13 -7
  80. package/skills/ct-task-executor/SKILL.md +21 -21
  81. package/skills/ct-task-executor/references/common-failures.md +3 -3
  82. package/skills/ct-task-executor/references/evidence-and-gates.md +1 -0
  83. package/skills/ct-validator/SKILL.md +15 -9
  84. package/skills/ct-validator/references/compliance-reports.md +1 -1
  85. package/skills/ct-validator/references/validation-modes.md +3 -3
  86. package/skills/manifest.json +1313 -481
  87. package/dispatch-config.json +0 -983
  88. package/provider-skills-map.json +0 -97
  89. package/skills/ct-docs-lookup/SKILL.md +0 -181
  90. package/skills/ct-docs-lookup/references/ctx7-workflow.md +0 -198
  91. package/skills/ct-docs-lookup/references/library-id-resolution.md +0 -217
  92. package/skills/ct-docs-lookup/references/version-specific-docs.md +0 -220
  93. package/skills/ct-master-tac/SKILL.md +0 -116
  94. package/skills/ct-master-tac/__tests__/install.test.ts +0 -283
  95. package/skills/ct-master-tac/bundled/README.md +0 -40
  96. package/skills/ct-master-tac/bundled/protocols/architecture-decision.cant +0 -90
  97. package/skills/ct-master-tac/bundled/protocols/artifact-publish.cant +0 -105
  98. package/skills/ct-master-tac/bundled/protocols/consensus.cant +0 -85
  99. package/skills/ct-master-tac/bundled/protocols/contribution.cant +0 -92
  100. package/skills/ct-master-tac/bundled/protocols/decomposition.cant +0 -102
  101. package/skills/ct-master-tac/bundled/protocols/implementation.cant +0 -77
  102. package/skills/ct-master-tac/bundled/protocols/provenance.cant +0 -100
  103. package/skills/ct-master-tac/bundled/protocols/release.cant +0 -107
  104. package/skills/ct-master-tac/bundled/protocols/research.cant +0 -77
  105. package/skills/ct-master-tac/bundled/protocols/specification.cant +0 -77
  106. package/skills/ct-master-tac/bundled/protocols/testing.cant +0 -99
  107. package/skills/ct-master-tac/bundled/protocols/validation.cant +0 -75
  108. package/skills/ct-master-tac/bundled/teams/platform.cant +0 -115
  109. package/skills/ct-master-tac/manifest.json +0 -55
  110. package/skills/ct-skill-creator/eval-viewer/__pycache__/generate_review.cpython-314.pyc +0 -0
  111. package/skills/ct-skill-creator/manifest-entry.json +0 -17
  112. package/skills/ct-skill-creator/scripts/__pycache__/__init__.cpython-314.pyc +0 -0
  113. package/skills/ct-skill-creator/scripts/__pycache__/aggregate_benchmark.cpython-314.pyc +0 -0
  114. package/skills/ct-skill-creator/scripts/__pycache__/generate_report.cpython-314.pyc +0 -0
  115. package/skills/ct-skill-creator/scripts/__pycache__/improve_description.cpython-314.pyc +0 -0
  116. package/skills/ct-skill-creator/scripts/__pycache__/init_skill.cpython-314.pyc +0 -0
  117. package/skills/ct-skill-creator/scripts/__pycache__/quick_validate.cpython-314.pyc +0 -0
  118. package/skills/ct-skill-creator/scripts/__pycache__/run_eval.cpython-314.pyc +0 -0
  119. package/skills/ct-skill-creator/scripts/__pycache__/run_loop.cpython-314.pyc +0 -0
  120. package/skills/ct-skill-creator/scripts/__pycache__/utils.cpython-314.pyc +0 -0
  121. package/skills/ct-skill-validator/manifest-entry.json +0 -20
  122. package/skills/ct-stickynote/README.md +0 -14
  123. package/skills/signaldock-connect/SKILL.md +0 -132
  124. package/skills/signaldock-connect/assets/agent-card.json +0 -48
  125. package/skills/signaldock-connect/references/api-endpoints.md +0 -131
  126. package/skills.json +0 -495
  127. /package/skills/{ct-docs-review → ct-documentor}/references/inline-comment-patterns.md +0 -0
  128. /package/skills/{ct-docs-write → ct-documentor}/references/markdown-patterns.md +0 -0
  129. /package/skills/{ct-skill-creator → ct-skill-author}/agents/analyzer.md +0 -0
  130. /package/skills/{ct-skill-creator → ct-skill-author}/agents/comparator.md +0 -0
  131. /package/skills/{ct-skill-creator → ct-skill-author}/agents/grader.md +0 -0
  132. /package/skills/{ct-skill-creator → ct-skill-author}/assets/eval_review.html +0 -0
  133. /package/skills/{ct-skill-validator → ct-skill-author}/assets/valid-skill-example.md +0 -0
  134. /package/skills/{ct-skill-creator → ct-skill-author}/eval-viewer/generate_review.py +0 -0
  135. /package/skills/{ct-skill-creator → ct-skill-author}/eval-viewer/viewer.html +0 -0
  136. /package/skills/{ct-skill-creator → ct-skill-author}/references/dynamic-context.md +0 -0
  137. /package/skills/{ct-skill-creator → ct-skill-author}/references/frontmatter.md +0 -0
  138. /package/skills/{ct-skill-creator → ct-skill-author}/references/invocation-control.md +0 -0
  139. /package/skills/{ct-skill-creator → ct-skill-author}/references/output-patterns.md +0 -0
  140. /package/skills/{ct-skill-creator → ct-skill-author}/references/schemas.md +0 -0
  141. /package/skills/{ct-skill-creator → ct-skill-author}/references/workflows.md +0 -0
  142. /package/skills/{ct-skill-creator → ct-skill-author}/scripts/__init__.py +0 -0
  143. /package/skills/{ct-skill-creator → ct-skill-author}/scripts/aggregate_benchmark.py +0 -0
  144. /package/skills/{ct-skill-validator → ct-skill-author}/scripts/audit_body.py +0 -0
  145. /package/skills/{ct-skill-validator → ct-skill-author}/scripts/check_ecosystem.py +0 -0
  146. /package/skills/{ct-skill-creator → ct-skill-author}/scripts/generate_report.py +0 -0
  147. /package/skills/{ct-skill-creator → ct-skill-author}/scripts/improve_description.py +0 -0
  148. /package/skills/{ct-skill-creator → ct-skill-author}/scripts/init_skill.py +0 -0
  149. /package/skills/{ct-skill-creator → ct-skill-author}/scripts/package_skill.py +0 -0
  150. /package/skills/{ct-skill-creator → ct-skill-author}/scripts/quick_validate.py +0 -0
  151. /package/skills/{ct-skill-creator → ct-skill-author}/scripts/run_eval.py +0 -0
  152. /package/skills/{ct-skill-creator → ct-skill-author}/scripts/run_loop.py +0 -0
  153. /package/skills/{ct-skill-creator → ct-skill-author}/scripts/utils.py +0 -0
  154. /package/skills/{ct-skill-validator → ct-skill-author}/scripts/validate.py +0 -0
@@ -45,10 +45,14 @@ Or the domain.operation shorthand when describing operations abstractly: `tasks.
45
45
  - `cleo add`, `cleo update`, `cleo complete`
46
46
  - `cleo session status`, `cleo session start`, `cleo session end`
47
47
  - `cleo memory find`, `cleo memory timeline`, `cleo memory fetch`, `cleo memory observe`
48
- - `cleo dash`, `cleo health`, `cleo help`
49
- - `cleo pipeline stage.status`, `cleo manifest append`
50
- - `cleo skill list`, `cleo skill show`
51
- - `cleo orchestrator status`, `cleo orchestrator spawn`
48
+ - `cleo dash`, `cleo doctor`, `cleo <command> --help` (there is no `help` verb)
49
+ - `cleo manifest append`
50
+ - `cleo skills list`, `cleo skills info`
51
+ - `cleo orchestrate status`, `cleo orchestrate spawn`
52
+
53
+ Gate 31 (`scripts/lint-skill-commands.mjs`) checks every `cleo` invocation in a
54
+ canonical skill against the live command manifest; run it rather than relying
55
+ on this list.
52
56
 
53
57
  **Fail condition**: Skill references a domain.operation that does not exist in the constitution.
54
58
 
@@ -10,7 +10,7 @@ Skills follow a single-source-of-truth model:
10
10
  packages/skills/skills/ <-- canonical location
11
11
  ct-cleo/SKILL.md
12
12
  ct-orchestrator/SKILL.md
13
- ct-skill-creator/SKILL.md
13
+ ct-skill-author/SKILL.md
14
14
  ...
15
15
  manifest.json <-- CLEO-only metadata
16
16
  ```
@@ -57,7 +57,7 @@ CLEO-aware providers read both SKILL.md and manifest.json. The manifest provides
57
57
 
58
58
  ### CLEO Package Skills
59
59
 
60
- Skills in `packages/skills/skills/` are managed by CLEO infrastructure. They are deployed via the CLEO skill system and do not need manual symlink setup. The manifest.json, dispatch-config.json, and provider-skills-map.json coordinate deployment automatically.
60
+ Skills in `packages/skills/skills/` are managed by CLEO infrastructure. They are deployed via the CLEO skill system and do not need manual symlink setup. `manifest.json` (generated from SKILL.md frontmatter) drives installation: every skill with `metadata.install: harness` is installed.
61
61
 
62
62
  ### User Global Skills
63
63
 
@@ -164,12 +164,16 @@ To add a new skill to the CLEO package (`packages/skills/`):
164
164
  }
165
165
  ```
166
166
 
167
- 4. **Add entry to dispatch-config.json** (`packages/skills/dispatch-config.json`):
168
- Add the skill to relevant `by_task_type`, `by_keyword`, and/or `by_protocol` mappings if it should participate in dispatch routing.
167
+ 4. **Add dispatch routing** if the skill should participate: add it to the
168
+ `dispatch_matrix` (`by_task_type`, `by_keyword`, `by_protocol`) in
169
+ `packages/skills/skills/manifest.json`. (`dispatch-config.json` was removed
170
+ in T12649; nothing read it.)
169
171
 
170
- 5. **Update totalSkills** in manifest.json `_meta.totalSkills` to reflect the new count.
172
+ 5. **Regenerate the manifest**: `node scripts/skills/generate-manifest.mjs`.
173
+ It writes the identity fields and `_meta.totalSkills` from SKILL.md
174
+ frontmatter; gate 29 fails if you hand-edit them.
171
175
 
172
176
  6. **Validate**: Run the skill validator to confirm the new skill passes all checks:
173
177
  ```bash
174
- python3 packages/skills/skills/ct-skill-creator/scripts/quick_validate.py packages/skills/skills/my-new-skill
178
+ python3 packages/skills/skills/ct-skill-author/scripts/quick_validate.py packages/skills/skills/my-new-skill
175
179
  ```
@@ -1,9 +1,4 @@
1
- ---
2
- name: ct-skill-validator
3
- description: Validates an existing skill folder against the full CLEO standard and ecosystem. Use when auditing skills for structural compliance, verifying a skill fits into the CLEO ecosystem and constitution, running quality A/B evals, or preparing a skill for distribution. Runs a 3-phase validation loop — structural, ecosystem fit, and quality eval — then presents all findings as an HTML report opened in the user's browser. Iterates until all required phases pass.
4
- disable-model-invocation: true
5
- allowed-tools: Bash(python *)
6
- ---
1
+ <!-- Merged from the ct-skill-validator skill into ct-skill-author (T12649, D11157). -->
7
2
 
8
3
  # CLEO Skill Validator
9
4
 
@@ -26,7 +21,7 @@ python ${CLAUDE_SKILL_DIR}/scripts/validate.py <skill-dir>
26
21
 
27
22
  # With manifest checks (Tier 4):
28
23
  python ${CLAUDE_SKILL_DIR}/scripts/validate.py <skill-dir> \
29
- --manifest <manifest.json> --dispatch-config <dispatch-config.json>
24
+ --manifest packages/skills/skills/manifest.json
30
25
 
31
26
  # JSON output (for scripting):
32
27
  python ${CLAUDE_SKILL_DIR}/scripts/validate.py <skill-dir> --json
@@ -35,7 +30,10 @@ python ${CLAUDE_SKILL_DIR}/scripts/validate.py <skill-dir> --json
35
30
  python ${CLAUDE_SKILL_DIR}/scripts/audit_body.py <skill-dir>
36
31
 
37
32
  # Manifest alignment check: bundled into validate.py Tier 4. Use:
38
- # python validate.py <skill-dir> --manifest <manifest.json> --dispatch-config <dispatch-config.json>
33
+ # python validate.py <skill-dir> --manifest packages/skills/skills/manifest.json
34
+ # (CLEO's own package ships no dispatch-config.json or provider-skills-map.json
35
+ # since T12649/T12679; --dispatch-config/--provider-map only apply to external
36
+ # libraries that still ship them. For CLEO skills, gates 29-32 are authoritative.)
39
37
 
40
38
  # Progressive-disclosure depth check (T9684 — CI gate):
41
39
  python ${CLAUDE_SKILL_DIR}/scripts/check_depth.py <skill-dir>
@@ -56,7 +54,7 @@ python ${CLAUDE_SKILL_DIR}/scripts/check_depth.py <skill-dir> --audit-allowlist
56
54
 
57
55
  Pre-existing stubs are allowlisted with follow-up task IDs in
58
56
  `scripts/check_depth.py::ALLOWLIST`. Gold-standard skills:
59
- `ct-orchestrator` (9 refs) and `ct-skill-creator` (7 refs).
57
+ `ct-orchestrator` (9 refs) and `ct-skill-author` (7 refs).
60
58
 
61
59
  **Allowlist hygiene:** every entry carries `last_reviewed: YYYY-MM-DD HH:MM:SS`.
62
60
  `check_depth.py` runs a silent background audit on every invocation and emits
@@ -75,8 +73,8 @@ Repeat until errors = 0. Do not proceed to Phase 2 while errors remain.
75
73
  - Tier 1 — Structure: SKILL.md exists, frontmatter parseable, no CLEO-only fields
76
74
  - Tier 2 — Frontmatter Quality: name matches dir, description has trigger indicators
77
75
  - Tier 3 — Body Quality: length, no placeholder text, file references exist on disk
78
- - Tier 4 — CLEO Integration: manifest and dispatch-config alignment (optional)
79
- - Tier 5 — Provider Compatibility: provider-skills-map check (optional)
76
+ - Tier 4 — CLEO Integration: manifest alignment (dispatch-config only for external libraries that ship one)
77
+ - Tier 5 — Provider Compatibility: provider-skills-map check (external libraries only; CLEO removed its map in T12679)
80
78
 
81
79
  See [references/validation-rules.md](references/validation-rules.md) for full rule set.
82
80
 
@@ -130,11 +128,11 @@ Repeat until verdict is `PASS` or `PASS_WITH_WARNINGS`. WARN is acceptable; ERRO
130
128
  ## Phase 3: Quality A/B Eval
131
129
 
132
130
  Tests whether the skill actually improves agent output quality vs. no skill context.
133
- Phase 3 is **delegated** — `ct-skill-validator` does static analysis; runtime
131
+ Phase 3 is **delegated** — `ct-skill-author` does static analysis; runtime
134
132
  quality evals live in a dedicated skill (`skill-evaluator` preferred,
135
- `ct-skill-creator` as legacy fallback).
133
+ `ct-skill-author` as legacy fallback).
136
134
 
137
- > **Scope boundary:** `ct-skill-validator` is *static* — it checks structure,
135
+ > **Scope boundary:** `ct-skill-author` is *static* — it checks structure,
138
136
  > frontmatter, body, manifest, depth, ecosystem fit. For deep runtime A/B
139
137
  > benchmarking, regression detection, and auto-improvement, the dispatcher
140
138
  > below routes to `skill-evaluator`, which owns that workflow end-to-end.
@@ -177,7 +175,7 @@ loop: generate → run → grade → aggregate → analyze → detect-regression
177
175
  propose. See `skill-evaluator/SKILL.md` for the workflow it actually
178
176
  executes.
179
177
 
180
- When `ct-skill-creator` is the resolved fallback, the wrapper invokes its
178
+ When `ct-skill-author` is the resolved fallback, the wrapper invokes its
181
179
  `run_eval.py` with the same arguments translated to its CLI shape.
182
180
 
183
181
  ### Manual A/B (if you want to drive runs yourself)
@@ -228,7 +226,7 @@ Open the report in the browser: omit `--no-open` (default behaviour opens browse
228
226
 
229
227
  ## Self-Validation
230
228
 
231
- This skill validates itself. To validate ct-skill-validator:
229
+ This skill validates itself. To validate ct-skill-author:
232
230
 
233
231
  ```bash
234
232
  python ${CLAUDE_SKILL_DIR}/scripts/validate.py ${CLAUDE_SKILL_DIR}
@@ -9,8 +9,8 @@ The CLEO Skill Validator enforces compliance across five tiers of increasing dep
9
9
  1. **Structure** — Does the skill have the required files and valid frontmatter?
10
10
  2. **Frontmatter Quality** — Are all frontmatter fields correct, well-formed, and non-contradictory?
11
11
  3. **Body Quality** — Is the body content complete, concise, and free of placeholders?
12
- 4. **CLEO Integration** — Does the skill align with manifest.json and dispatch-config.json?
13
- 5. **Provider Compatibility** — Is the skill referenced in the provider-skills-map?
12
+ 4. **CLEO Integration** — Does the skill align with manifest.json (and dispatch-config.json, for external libraries that ship one)?
13
+ 5. **Provider Compatibility** — Is the skill referenced in the provider-skills-map (external libraries only; CLEO's was removed in T12679)?
14
14
 
15
15
  Tiers 1-3 run on every validation. Tiers 4-5 are opt-in via CLI flags.
16
16
 
@@ -109,7 +109,7 @@ def _candidates(name: str, caller_skill_dir: Path) -> Iterator[Path]:
109
109
  # - <child>/skills/<name>
110
110
  # - <child>/packages/skills/skills/<name>
111
111
  # This finds skills under sibling project roots — e.g. when the
112
- # caller is in /mnt/projects/cleocode/.../ct-skill-validator/ and
112
+ # caller is in /mnt/projects/cleocode/.../ct-skill-author/ and
113
113
  # the target is in /mnt/projects/proxmox/skills/<name>/. The walk
114
114
  # eventually reaches the common ancestor /mnt/projects/ where both
115
115
  # cleocode and proxmox are children. Bounded by MAX_SIBLINGS per
@@ -176,7 +176,7 @@ def find_skill(name: str, *, caller: Path | None = None) -> Path | None:
176
176
  def find_first(names: list[str], *, caller: Path | None = None) -> tuple[str, Path] | None:
177
177
  """Return the (name, path) of the first found skill from a preference list.
178
178
 
179
- Lets callers say "prefer skill-evaluator, fall back to ct-skill-creator"
179
+ Lets callers say "prefer skill-evaluator, fall back to ct-skill-author"
180
180
  without hardcoding either path.
181
181
  """
182
182
  for n in names:
@@ -5,7 +5,7 @@ CLEO Skill Depth Check — progressive-disclosure-depth rule (T9684).
5
5
  Fails when a skill's SKILL.md is below the depth threshold AND it has
6
6
  no references/ subdir with at least the manifest-declared reference
7
7
  files. The gold standard is ct-orchestrator (9 references) and
8
- ct-skill-creator (7 references); the rule is calibrated to flag
8
+ ct-skill-author (7 references); the rule is calibrated to flag
9
9
  stubs without forcing every skill to that depth.
10
10
 
11
11
  Rule logic:
@@ -41,7 +41,7 @@ from pathlib import Path
41
41
  # Adjust here, then re-run the audit to verify all 19 active skills pass.
42
42
  MIN_BODY_LINES = 100
43
43
  MIN_REF_FILES = 3
44
- GOLD_STANDARDS = ("ct-orchestrator", "ct-skill-creator")
44
+ GOLD_STANDARDS = ("ct-orchestrator", "ct-skill-author")
45
45
 
46
46
  # Cadence for the allowlist audit — entries older than this are flagged stale.
47
47
  ALLOWLIST_STALE_DAYS = 30
@@ -62,9 +62,6 @@ LAST_REVIEWED_RE = re.compile(r"last_reviewed:\s*(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:
62
62
  # Format: skill-name -> "task-id: rationale | last_reviewed: YYYY-MM-DD HH:MM:SS"
63
63
  ALLOWLIST: dict[str, str] = {
64
64
  "ct-codebase-mapper": "T9567-followup: pre-existing; depth-backfill deferred | last_reviewed: 2026-05-21 14:00:18",
65
- "ct-master-tac": "T9567-followup: pre-existing; depth-backfill deferred | last_reviewed: 2026-05-21 14:00:18",
66
- "ct-memory": "T9567-followup: pre-existing; depth-backfill deferred | last_reviewed: 2026-05-21 14:00:18",
67
- "ct-stickynote": "T9567-followup: ephemeral note skill; minimal-by-design | last_reviewed: 2026-05-21 14:00:18",
68
65
  }
69
66
 
70
67
 
@@ -344,7 +344,7 @@ def generate_html(
344
344
  {grading_html}
345
345
  {comparison_html}
346
346
 
347
- <div class="footer">Generated by ct-skill-validator &mdash; CLEO Full Validation Report</div>
347
+ <div class="footer">Generated by ct-skill-author &mdash; CLEO Full Validation Report</div>
348
348
  </body>
349
349
  </html>
350
350
  """
@@ -31,7 +31,7 @@ from _skill_finder import find_first # noqa: E402
31
31
 
32
32
  # Preference order — first found wins. Lets the user opt-in to a different
33
33
  # eval skill via $SKILL_FINDER_PATH without code changes.
34
- PREFERENCE = ["skill-evaluator", "ct-skill-creator"]
34
+ PREFERENCE = ["skill-evaluator", "ct-skill-author", "ct-skill-creator"]
35
35
 
36
36
 
37
37
  def main() -> int:
@@ -83,7 +83,7 @@ def main() -> int:
83
83
  if args.executor:
84
84
  cmd += ["--executor", args.executor]
85
85
  else:
86
- # ct-skill-creator legacy paths
86
+ # ct-skill-author (formerly ct-skill-creator) eval paths
87
87
  if args.trigger:
88
88
  script = eval_skill_path / "scripts" / "run_eval.py"
89
89
  cmd = ["python3", str(script), "--skill-path", str(target_skill)]
@@ -1,12 +1,8 @@
1
1
  ---
2
2
  name: ct-spec-writer
3
3
  description: Technical specification writing using RFC 2119 language for clear, unambiguous requirements. Creates protocol specifications, technical requirements, API specifications, and architecture documents with testable requirements and compliance criteria. Use when writing specifications, defining protocols, documenting requirements, or creating API contracts. Triggers on specification tasks, protocol definition needs, or requirement documentation.
4
- version: 2.1.0
5
- tier: 2
6
- core: false
7
- category: recommended
4
+ version: 2.1.2
8
5
  protocol: specification
9
- loomStage: specification
10
6
  adrRefs:
11
7
  - ADR-014
12
8
  - ADR-023
@@ -20,6 +16,16 @@ compatibility:
20
16
  - windsurf
21
17
  - gemini-cli
22
18
  license: MIT
19
+ metadata:
20
+ version: 2.1.2
21
+ tier: on-demand
22
+ install: harness
23
+ covers:
24
+ - packages/core/src/validation/protocols/cant/specification.cant
25
+ - packages/core/src/validation/protocols/protocols-markdown/specification.md
26
+ loomStage: specification
27
+ lastReviewed: 2026-09-28
28
+ stability: stable
23
29
  ---
24
30
 
25
31
  # Specification Writer Context Injection
@@ -225,7 +231,7 @@ Spec blobs live in the docs SSoT; published copies on disk go in
225
231
  1. Read task: `{{TASK_SHOW_CMD}} {{TASK_ID}}`
226
232
  2. Start task: `{{TASK_START_CMD}} {{TASK_ID}}` (if not already started by orchestrator)
227
233
  3. Write specification to `docs/specs/{{SPEC_NAME}}.md`
228
- 4. Append manifest entry to `{{MANIFEST_PATH}}`
234
+ 4. Record the manifest entry: `cleo manifest append --task {{TASK_ID}} --type specification --content "<one-paragraph summary>"`
229
235
  5. Complete task: `{{TASK_COMPLETE_CMD}} {{TASK_ID}}`
230
236
  6. Return summary message
231
237
 
@@ -238,7 +244,7 @@ Spec blobs live in the docs SSoT; published copies on disk go in
238
244
  ### Output Requirements
239
245
 
240
246
  1. MUST write specification to: `docs/specs/{{SPEC_NAME}}.md`
241
- 2. MUST append ONE line to: `{{MANIFEST_PATH}}`
247
+ 2. MUST record ONE manifest entry: `cleo manifest append --entry '<entry JSON>'` (the flat manifest file is retired, ADR-027)
242
248
  3. MUST return ONLY: "Specification complete. Manifest appended to pipeline_manifest."
243
249
  4. MUST NOT return specification content in response
244
250
 
@@ -1,16 +1,8 @@
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.2.0
5
- metadata:
6
- version: 2.2.0
7
- lastReviewed: 2026-09-19
8
- stability: stable
9
- tier: 2
10
- core: true
11
- category: core
4
+ version: 2.7.3
12
5
  protocol: implementation
13
- loomStage: implementation
14
6
  adrRefs:
15
7
  - ADR-070
16
8
  - ADR-062
@@ -25,8 +17,16 @@ compatibility:
25
17
  - gemini-cli
26
18
  license: MIT
27
19
  metadata:
28
- version: 2.7.0
29
- lastReviewed: 2026-09-18
20
+ version: 2.7.3
21
+ tier: core
22
+ install: harness
23
+ covers:
24
+ - packages/cleo/src/cli/commands/verify.ts
25
+ - packages/cleo/src/cli/commands/complete.ts
26
+ - packages/core/src/validation/protocols/cant/implementation.cant
27
+ - packages/core/src/validation/protocols/protocols-markdown/implementation.md
28
+ loomStage: implementation
29
+ lastReviewed: 2026-09-28
30
30
  stability: stable
31
31
  ---
32
32
 
@@ -99,8 +99,8 @@ Context injection for implementation tasks spawned via cleo-subagent. Provides d
99
99
  2. Focus already set by orchestrator (set if working standalone)
100
100
  3. Execute instructions (see Methodology below)
101
101
  4. Verify deliverables against acceptance criteria
102
- 5. Write output: `{{OUTPUT_DIR}}/{{DATE}}_{{TOPIC_SLUG}}.md`
103
- 6. Append manifest: `{{MANIFEST_PATH}}`
102
+ 5. Record output: `cleo docs add {{TASK_ID}} --content - --type note --slug {{TOPIC_SLUG}}`
103
+ 6. Record the manifest entry: `cleo manifest append --task {{TASK_ID}} --type implementation --content "<one-paragraph summary>"`
104
104
  7. Complete task: `{{TASK_COMPLETE_CMD}} {{TASK_ID}}`
105
105
  8. Return summary message
106
106
 
@@ -159,8 +159,8 @@ The routing prints a one-line info message to stderr (suppress with
159
159
 
160
160
  ### Output Requirements
161
161
 
162
- 1. MUST write findings to: `{{OUTPUT_DIR}}/{{DATE}}_{{TOPIC_SLUG}}.md`
163
- 2. MUST append ONE line to: `{{MANIFEST_PATH}}`
162
+ 1. MUST record findings with `cleo docs add {{TASK_ID}} --content - --type note --slug {{TOPIC_SLUG}}` (never a raw file under `.cleo/agent-outputs/`)
163
+ 2. MUST record ONE manifest entry: `cleo manifest append --entry '<entry JSON>'` (the flat manifest file is retired, ADR-027)
164
164
  3. MUST return ONLY: "Implementation complete. Manifest appended to pipeline_manifest."
165
165
  4. MUST NOT return implementation details in response
166
166
 
@@ -168,7 +168,7 @@ The routing prints a one-line info message to stderr (suppress with
168
168
 
169
169
  ## Output File Format
170
170
 
171
- Write to `{{OUTPUT_DIR}}/{{DATE}}_{{TOPIC_SLUG}}.md`:
171
+ Record it with `cleo docs add {{TASK_ID}} --content - --type note --slug {{TOPIC_SLUG}}`, using this body:
172
172
 
173
173
  ```markdown
174
174
  # {{TASK_NAME}}
@@ -193,7 +193,7 @@ Write to `{{OUTPUT_DIR}}/{{DATE}}_{{TOPIC_SLUG}}.md`:
193
193
 
194
194
  ## Acceptance Criteria Verification
195
195
 
196
- Record each criterion's changed artifacts and actual verification results. A merged PR with green CI provides provenance; it cannot automatically satisfy implementation, testing and review. Use `pr:<number>;files:<changed-path>` for implementation and actual result atoms for test/review gates, with explicit `satisfies:T1234#AC1` links for canonical criteria. The PR must relate to the task; documentation-only changes cannot prove a code fix. Research and documentation tasks may use appropriately scoped documentary evidence. Fetch the merge commit before claiming its artifact bytes were inspected. Criterion edits require fresh evidence. A completed child does not establish that its parent's independent criteria were met.
196
+ Record each criterion's changed artifacts and actual verification results. A merged PR with green CI provides provenance; it cannot automatically satisfy implementation, testing and review. Use `pr:<number>;files:<changed-path>` for implementation (`pr:<component>@<integration>` when your PR merged into an integration branch) and actual result atoms for test/review gates, with explicit `satisfies:T1234#AC1` links for canonical criteria. The PR must relate to the task; documentation-only changes cannot prove a code fix. Research and documentation tasks may use appropriately scoped documentary evidence. Fetch the merge commit before claiming its artifact bytes were inspected. Criterion edits require fresh evidence. A completed child does not establish that its parent's independent criteria were met.
197
197
 
198
198
 
199
199
  | Criterion | Status | Notes |
@@ -216,7 +216,7 @@ Record each criterion's changed artifacts and actual verification results. A mer
216
216
 
217
217
  ## Manifest Entry Format
218
218
 
219
- Append ONE entry via `cleo manifest append <json>` (writes to pipeline_manifest table per ADR-027):
219
+ Append ONE entry via `cleo manifest append --entry '<json>'` (writes to pipeline_manifest table per ADR-027):
220
220
 
221
221
  ```json
222
222
  {"id":"{{TOPIC_SLUG}}-{{DATE}}","file":"{{DATE}}_{{TOPIC_SLUG}}.md","title":"{{TASK_NAME}}","date":"{{DATE}}","status":"complete","agent_type":"implementation","topics":{{TOPICS_JSON}},"key_findings":["Completed: deliverable 1","Completed: deliverable 2","All acceptance criteria passed"],"actionable":false,"needs_followup":[],"linked_tasks":["{{EPIC_ID}}","{{TASK_ID}}"]}
@@ -240,7 +240,7 @@ Append ONE entry via `cleo manifest append <json>` (writes to pipeline_manifest
240
240
  - [ ] All instructions executed
241
241
  - [ ] All deliverables produced
242
242
  - [ ] Acceptance criteria verified
243
- - [ ] Output file written to `{{OUTPUT_DIR}}/`
243
+ - [ ] Output recorded with `cleo docs add` (slug in the return message)
244
244
  - [ ] Manifest entry appended (single line, valid JSON)
245
245
  - [ ] Task completed via `{{TASK_COMPLETE_CMD}}`
246
246
  - [ ] Session ended with summary note (if executor owns session)
@@ -307,8 +307,8 @@ cleo session list --all
307
307
  # Clean up stale sessions (72h+ inactive)
308
308
  cleo session gc
309
309
 
310
- # Force cleanup including active sessions (use cautiously)
311
- cleo session gc --include-active
310
+ # Also end active sessions idle longer than N days (use cautiously)
311
+ cleo session gc --max-age 1
312
312
  ```
313
313
 
314
314
  ### Best Practices
@@ -43,8 +43,8 @@ not in the worktree's branch.
43
43
  (persistent shell state was not reset between tool calls), or
44
44
  deliberately followed an absolute path from a prior session's notes.
45
45
 
46
- **Fix.** The spawn prompt's `FIRST ACTION: cd <path>` MUST be the first
47
- command. All subsequent paths SHOULD be absolute within the worktree.
46
+ **Fix.** The spawn prompt's FIRST ACTION guard, `cd '<path>' || exit 1`
47
+ (single-quoted, so it survives spaces), MUST start every Bash call. All subsequent paths SHOULD be absolute within the worktree.
48
48
  If unsure, prefix with `git rev-parse --show-toplevel` first.
49
49
 
50
50
  ## Cherry-Pick Instead of Merge
@@ -61,7 +61,7 @@ relate commits to the task.
61
61
  without reading ADR-062. The CLEO contract is that workers commit on
62
62
  their task branch; the integrator MUST use `git merge --no-ff
63
63
  task/<id>` to preserve SHAs, author identity, and the
64
- `cleo find <task-id> --commits` trace.
64
+ `git log --grep <task-id>` trace.
65
65
 
66
66
  **Fix.** Always `git merge --no-ff task/<TID>` for integration. See
67
67
  `feedback_cherry_pick_worktrees.md` for the full pattern.
@@ -140,6 +140,7 @@ cleo memory observe "..." --title "..."
140
140
  | — | `E_EVIDENCE_INSUFFICIENT` | Gate atom kind doesn't match required | See gate-atom table above |
141
141
  | — | `E_EVIDENCE_TESTS_FAILED` | `tool:test` exit non-zero | Fix failing tests first |
142
142
  | — | `E_EVIDENCE_TOOL_FAILED` | Lint/typecheck/etc exit non-zero | Fix source and re-run |
143
+ | — | `E_EVIDENCE_TOOL_VACUOUS` | Tool exited 0 but provably checked nothing (`tsc` without `-b` on a references-only tsconfig) | Add a covering `typecheck` script (e.g. `tsc -b`) or set `typecheck.command` in `.cleo/project-context.json` |
143
144
  | — | `E_EVIDENCE_STALE` | Files or commit changed after verify | Re-verify before complete |
144
145
  | — | `E_EVIDENCE_INVALID_DECISION` | Decision ID not found in BRAIN | Use `cleo memory decision-find` |
145
146
  | — | `E_FLAG_REMOVED` | Tried `cleo complete --force` | `--force` removed per ADR-051 |
@@ -1,12 +1,8 @@
1
1
  ---
2
2
  name: ct-validator
3
3
  description: Compliance validation for verifying systems, documents, or code against requirements, schemas, or standards. Performs schema validation, code compliance checks, document validation, and protocol compliance verification with detailed pass/fail reporting. Use when validating compliance, checking schemas, verifying code standards, or auditing protocol implementations. Triggers on validation tasks, compliance checks, or quality verification needs.
4
- version: 2.0.0
5
- tier: 2
6
- core: false
7
- category: recommended
4
+ version: 2.0.4
8
5
  protocol: validation
9
- loomStage: validation
10
6
  adrRefs:
11
7
  - ADR-051
12
8
  - ADR-023
@@ -20,6 +16,16 @@ compatibility:
20
16
  - windsurf
21
17
  - gemini-cli
22
18
  license: MIT
19
+ metadata:
20
+ version: 2.0.4
21
+ tier: on-demand
22
+ install: harness
23
+ covers:
24
+ - packages/core/src/validation/protocols/cant/validation.cant
25
+ - packages/core/src/validation/protocols/protocols-markdown/validation.md
26
+ loomStage: validation
27
+ lastReviewed: 2026-09-28
28
+ stability: stable
23
29
  ---
24
30
 
25
31
  # Validator Context Injection
@@ -190,8 +196,8 @@ the Validate-phase Lead prompt, listing the touched packages and the exact
190
196
  1. Read task: `{{TASK_SHOW_CMD}} {{TASK_ID}}`
191
197
  2. Start task: `{{TASK_START_CMD}} {{TASK_ID}}` (if not already started by orchestrator)
192
198
  3. Execute validation checks
193
- 4. Write validation report to `{{OUTPUT_DIR}}/{{DATE}}_{{TOPIC_SLUG}}.md`
194
- 5. Append manifest entry to `{{MANIFEST_PATH}}`
199
+ 4. Record validation report with `cleo docs add {{TASK_ID}} --content - --type note --slug {{TOPIC_SLUG}}`
200
+ 5. Record the manifest entry: `cleo manifest append --task {{TASK_ID}} --type validation --content "<one-paragraph summary>"`
195
201
  6. Complete task: `{{TASK_COMPLETE_CMD}} {{TASK_ID}}`
196
202
  7. Return summary message
197
203
 
@@ -203,8 +209,8 @@ the Validate-phase Lead prompt, listing the touched packages and the exact
203
209
 
204
210
  ### Output Requirements
205
211
 
206
- 1. MUST write validation report to: `{{OUTPUT_DIR}}/{{DATE}}_{{TOPIC_SLUG}}.md`
207
- 2. MUST append ONE line to: `{{MANIFEST_PATH}}`
212
+ 1. MUST record validation report with `cleo docs add {{TASK_ID}} --content - --type note --slug {{TOPIC_SLUG}}` (never a raw file under `.cleo/agent-outputs/`)
213
+ 2. MUST record ONE manifest entry: `cleo manifest append --entry '<entry JSON>'` (the flat manifest file is retired, ADR-027)
208
214
  3. MUST return ONLY: "Validation complete. Manifest appended to pipeline_manifest."
209
215
  4. MUST NOT return validation content in response
210
216
 
@@ -106,7 +106,7 @@ unactionable — the consumer cannot prioritize.
106
106
  ### Warnings
107
107
 
108
108
  **W-001**: `packages/cleo/src/dispatch.ts` is 487 lines (warn at 400).
109
- - Rule: ct-skill-validator audit_body §body-length
109
+ - Rule: ct-skill-author audit_body §body-length
110
110
  - Fix: Extract sub-handlers into sibling files.
111
111
  - Verification: re-run audit_body.py.
112
112
 
@@ -93,9 +93,9 @@ links; scan for placeholder text; verify formatting.
93
93
  **Tool examples.**
94
94
 
95
95
  ```bash
96
- # Use the ct-skill-validator scripts as a model
97
- python packages/skills/skills/ct-skill-validator/scripts/validate.py <skill-dir>
98
- python packages/skills/skills/ct-skill-validator/scripts/audit_body.py <skill-dir>
96
+ # Use the ct-skill-author scripts as a model
97
+ python packages/skills/skills/ct-skill-author/scripts/validate.py <skill-dir>
98
+ python packages/skills/skills/ct-skill-author/scripts/audit_body.py <skill-dir>
99
99
 
100
100
  # Generic markdown link check
101
101
  markdown-link-check docs/specs/*.md