@cleocode/skills 2026.9.21 → 2026.9.23

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 (151) 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 +5 -5
  14. package/skills/ct-adr-recorder/SKILL.md +18 -17
  15. package/skills/ct-artifact-publisher/SKILL.md +10 -7
  16. package/skills/ct-cleo/SKILL.md +26 -9
  17. package/skills/ct-cleo/references/loom-lifecycle.md +1 -1
  18. package/skills/{ct-memory/SKILL.md → ct-cleo/references/memory.md} +10 -23
  19. package/skills/ct-cleo/references/orchestrator-constraints.md +5 -5
  20. package/skills/ct-cleo/references/session-protocol.md +11 -8
  21. package/skills/{ct-stickynote/SKILL.md → ct-cleo/references/sticky-notes.md} +7 -29
  22. package/skills/ct-codebase-mapper/SKILL.md +62 -38
  23. package/skills/ct-consensus-voter/SKILL.md +10 -7
  24. package/skills/ct-contribution/SKILL.md +7 -5
  25. package/skills/ct-dev-workflow/SKILL.md +7 -7
  26. package/skills/ct-documentor/SKILL.md +29 -29
  27. package/skills/{ct-docs-review/__tests__/skill-docs-review.test.ts → ct-documentor/__tests__/reviewing-reference.test.ts} +4 -3
  28. package/skills/{ct-docs-write/__tests__/skill-docs-write.test.ts → ct-documentor/__tests__/writing-reference.test.ts} +4 -3
  29. package/skills/ct-documentor/references/anti-patterns.md +8 -8
  30. package/skills/{ct-docs-write → ct-documentor}/references/audience-targeting.md +5 -5
  31. package/skills/ct-documentor/references/chain-orchestration.md +19 -19
  32. package/skills/{ct-docs-write → ct-documentor}/references/cleo-style-guide.md +1 -1
  33. package/skills/ct-documentor/references/doc-types-and-templates.md +1 -1
  34. package/skills/{ct-docs-review → ct-documentor}/references/pr-review-mode.md +1 -1
  35. package/skills/{ct-docs-review/SKILL.md → ct-documentor/references/reviewing.md} +6 -26
  36. package/skills/ct-documentor/references/style-coordination.md +5 -5
  37. package/skills/{ct-docs-review → ct-documentor}/references/style-violations.md +1 -1
  38. package/skills/{ct-docs-write/SKILL.md → ct-documentor/references/writing.md} +5 -25
  39. package/skills/ct-epic-architect/SKILL.md +12 -9
  40. package/skills/ct-epic-architect/references/commands.md +5 -5
  41. package/skills/ct-epic-architect/references/output-format.md +2 -2
  42. package/skills/ct-epic-architect/references/patterns.md +2 -2
  43. package/skills/ct-epic-architect/references/skill-aware-execution.md +3 -3
  44. package/skills/ct-grade/SKILL.md +3 -4
  45. package/skills/ct-grade/agents/scenario-runner.md +1 -1
  46. package/skills/ct-ivt-looper/SKILL.md +23 -22
  47. package/skills/ct-lead/SKILL.md +52 -13
  48. package/skills/ct-lead/references/aggregation-protocol.md +44 -21
  49. package/skills/ct-lead/references/spawn-pattern.md +12 -11
  50. package/skills/ct-orchestrator/README.md +2 -2
  51. package/skills/ct-orchestrator/SKILL.md +14 -10
  52. package/skills/ct-orchestrator/references/SUBAGENT-PROTOCOL-BLOCK.md +4 -4
  53. package/skills/ct-orchestrator/references/autonomous-operation.md +4 -4
  54. package/skills/ct-orchestrator/references/orchestrator-compliance.md +3 -3
  55. package/skills/ct-orchestrator/references/orchestrator-patterns.md +20 -19
  56. package/skills/ct-orchestrator/references/orchestrator-recovery.md +13 -23
  57. package/skills/ct-orchestrator/references/orchestrator-spawning.md +9 -10
  58. package/skills/ct-orchestrator/references/orchestrator-tokens.md +9 -9
  59. package/skills/ct-provenance-keeper/SKILL.md +10 -7
  60. package/skills/ct-release-orchestrator/SKILL.md +21 -13
  61. package/skills/ct-release-orchestrator/references/composition.md +1 -1
  62. package/skills/ct-release-orchestrator/references/release-types.md +33 -15
  63. package/skills/ct-research-agent/SKILL.md +14 -12
  64. package/skills/ct-research-agent/references/triggers-and-routing.md +4 -4
  65. package/skills/{ct-skill-creator → ct-skill-author}/SKILL.md +9 -6
  66. package/skills/{ct-skill-validator → ct-skill-author}/agents/ecosystem-checker.md +1 -1
  67. package/skills/{ct-skill-validator → ct-skill-author}/evals/quality_evals.json +10 -10
  68. package/skills/{ct-skill-validator → ct-skill-author}/evals/trigger_queries.json +1 -1
  69. package/skills/{ct-skill-validator → ct-skill-author}/references/cleo-ecosystem-rules.md +8 -4
  70. package/skills/{ct-skill-creator → ct-skill-author}/references/provider-deployment.md +10 -6
  71. package/skills/{ct-skill-validator/SKILL.md → ct-skill-author/references/validating.md} +14 -21
  72. package/skills/{ct-skill-validator → ct-skill-author}/references/validation-rules.md +2 -2
  73. package/skills/{ct-skill-validator → ct-skill-author}/scripts/_skill_finder.py +2 -2
  74. package/skills/{ct-skill-validator → ct-skill-author}/scripts/check_depth.py +2 -5
  75. package/skills/{ct-skill-validator → ct-skill-author}/scripts/generate_validation_report.py +1 -1
  76. package/skills/{ct-skill-validator → ct-skill-author}/scripts/run_quality_eval.py +2 -2
  77. package/skills/ct-spec-writer/SKILL.md +9 -7
  78. package/skills/ct-task-executor/SKILL.md +19 -16
  79. package/skills/ct-task-executor/references/common-failures.md +1 -1
  80. package/skills/ct-validator/SKILL.md +11 -9
  81. package/skills/ct-validator/references/compliance-reports.md +1 -1
  82. package/skills/ct-validator/references/validation-modes.md +3 -3
  83. package/skills/manifest.json +381 -365
  84. package/dispatch-config.json +0 -983
  85. package/provider-skills-map.json +0 -97
  86. package/skills/ct-docs-lookup/SKILL.md +0 -185
  87. package/skills/ct-docs-lookup/references/ctx7-workflow.md +0 -198
  88. package/skills/ct-docs-lookup/references/library-id-resolution.md +0 -217
  89. package/skills/ct-docs-lookup/references/version-specific-docs.md +0 -220
  90. package/skills/ct-master-tac/SKILL.md +0 -120
  91. package/skills/ct-master-tac/__tests__/install.test.ts +0 -304
  92. package/skills/ct-master-tac/bundled/README.md +0 -40
  93. package/skills/ct-master-tac/bundled/protocols/architecture-decision.cant +0 -90
  94. package/skills/ct-master-tac/bundled/protocols/artifact-publish.cant +0 -105
  95. package/skills/ct-master-tac/bundled/protocols/consensus.cant +0 -85
  96. package/skills/ct-master-tac/bundled/protocols/contribution.cant +0 -92
  97. package/skills/ct-master-tac/bundled/protocols/decomposition.cant +0 -102
  98. package/skills/ct-master-tac/bundled/protocols/implementation.cant +0 -77
  99. package/skills/ct-master-tac/bundled/protocols/provenance.cant +0 -100
  100. package/skills/ct-master-tac/bundled/protocols/release.cant +0 -107
  101. package/skills/ct-master-tac/bundled/protocols/research.cant +0 -77
  102. package/skills/ct-master-tac/bundled/protocols/specification.cant +0 -77
  103. package/skills/ct-master-tac/bundled/protocols/testing.cant +0 -99
  104. package/skills/ct-master-tac/bundled/protocols/validation.cant +0 -75
  105. package/skills/ct-master-tac/bundled/teams/platform.cant +0 -115
  106. package/skills/ct-master-tac/manifest.json +0 -55
  107. package/skills/ct-skill-creator/eval-viewer/__pycache__/generate_review.cpython-314.pyc +0 -0
  108. package/skills/ct-skill-creator/manifest-entry.json +0 -17
  109. package/skills/ct-skill-creator/scripts/__pycache__/__init__.cpython-314.pyc +0 -0
  110. package/skills/ct-skill-creator/scripts/__pycache__/aggregate_benchmark.cpython-314.pyc +0 -0
  111. package/skills/ct-skill-creator/scripts/__pycache__/generate_report.cpython-314.pyc +0 -0
  112. package/skills/ct-skill-creator/scripts/__pycache__/improve_description.cpython-314.pyc +0 -0
  113. package/skills/ct-skill-creator/scripts/__pycache__/init_skill.cpython-314.pyc +0 -0
  114. package/skills/ct-skill-creator/scripts/__pycache__/quick_validate.cpython-314.pyc +0 -0
  115. package/skills/ct-skill-creator/scripts/__pycache__/run_eval.cpython-314.pyc +0 -0
  116. package/skills/ct-skill-creator/scripts/__pycache__/run_loop.cpython-314.pyc +0 -0
  117. package/skills/ct-skill-creator/scripts/__pycache__/utils.cpython-314.pyc +0 -0
  118. package/skills/ct-skill-validator/manifest-entry.json +0 -20
  119. package/skills/ct-stickynote/README.md +0 -14
  120. package/skills/signaldock-connect/SKILL.md +0 -137
  121. package/skills/signaldock-connect/assets/agent-card.json +0 -48
  122. package/skills/signaldock-connect/references/api-endpoints.md +0 -131
  123. package/skills.json +0 -495
  124. /package/skills/{ct-docs-review → ct-documentor}/references/inline-comment-patterns.md +0 -0
  125. /package/skills/{ct-docs-write → ct-documentor}/references/markdown-patterns.md +0 -0
  126. /package/skills/{ct-skill-creator → ct-skill-author}/agents/analyzer.md +0 -0
  127. /package/skills/{ct-skill-creator → ct-skill-author}/agents/comparator.md +0 -0
  128. /package/skills/{ct-skill-creator → ct-skill-author}/agents/grader.md +0 -0
  129. /package/skills/{ct-skill-creator → ct-skill-author}/assets/eval_review.html +0 -0
  130. /package/skills/{ct-skill-validator → ct-skill-author}/assets/valid-skill-example.md +0 -0
  131. /package/skills/{ct-skill-creator → ct-skill-author}/eval-viewer/generate_review.py +0 -0
  132. /package/skills/{ct-skill-creator → ct-skill-author}/eval-viewer/viewer.html +0 -0
  133. /package/skills/{ct-skill-creator → ct-skill-author}/references/dynamic-context.md +0 -0
  134. /package/skills/{ct-skill-creator → ct-skill-author}/references/frontmatter.md +0 -0
  135. /package/skills/{ct-skill-creator → ct-skill-author}/references/invocation-control.md +0 -0
  136. /package/skills/{ct-skill-creator → ct-skill-author}/references/output-patterns.md +0 -0
  137. /package/skills/{ct-skill-creator → ct-skill-author}/references/schemas.md +0 -0
  138. /package/skills/{ct-skill-creator → ct-skill-author}/references/workflows.md +0 -0
  139. /package/skills/{ct-skill-creator → ct-skill-author}/scripts/__init__.py +0 -0
  140. /package/skills/{ct-skill-creator → ct-skill-author}/scripts/aggregate_benchmark.py +0 -0
  141. /package/skills/{ct-skill-validator → ct-skill-author}/scripts/audit_body.py +0 -0
  142. /package/skills/{ct-skill-validator → ct-skill-author}/scripts/check_ecosystem.py +0 -0
  143. /package/skills/{ct-skill-creator → ct-skill-author}/scripts/generate_report.py +0 -0
  144. /package/skills/{ct-skill-creator → ct-skill-author}/scripts/improve_description.py +0 -0
  145. /package/skills/{ct-skill-creator → ct-skill-author}/scripts/init_skill.py +0 -0
  146. /package/skills/{ct-skill-creator → ct-skill-author}/scripts/package_skill.py +0 -0
  147. /package/skills/{ct-skill-creator → ct-skill-author}/scripts/quick_validate.py +0 -0
  148. /package/skills/{ct-skill-creator → ct-skill-author}/scripts/run_eval.py +0 -0
  149. /package/skills/{ct-skill-creator → ct-skill-author}/scripts/run_loop.py +0 -0
  150. /package/skills/{ct-skill-creator → ct-skill-author}/scripts/utils.py +0 -0
  151. /package/skills/{ct-skill-validator → ct-skill-author}/scripts/validate.py +0 -0
@@ -1,8 +1,7 @@
1
1
  ---
2
2
  name: ct-codebase-mapper
3
- version: 1.0.0
4
- description: Codebase analysis and mapping for autonomous agent understanding. Builds structured maps of project stack, architecture, conventions, testing, integrations, and concerns.
5
- category: recommended
3
+ version: 2.0.1
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".
6
5
  protocol: null
7
6
  dependencies: []
8
7
  compatibility:
@@ -16,71 +15,96 @@ triggers:
16
15
  - understand project
17
16
  - brownfield analysis
18
17
  - project structure
18
+ - blast radius
19
19
  metadata:
20
- version: 1.0.0
20
+ version: 2.0.1
21
21
  tier: on-demand
22
22
  install: harness
23
+ covers:
24
+ - packages/cleo/src/cli/commands/nexus.ts
25
+ - packages/cleo/src/cli/commands/map.ts
26
+ lastReviewed: 2026-09-28
23
27
  stability: stable
24
28
  ---
25
29
 
26
30
  # Codebase Mapper
27
31
 
28
- Structured codebase analysis for autonomous agent understanding.
32
+ Two instruments, used together:
29
33
 
30
- ## Quick Start
34
+ - **`cleo nexus`** is the symbol graph: callers, callees, blast radius,
35
+ communities and execution flows, parsed from source. Use it for any question
36
+ about how code connects.
37
+ - **`cleo map`** is the project survey: stack, architecture, structure,
38
+ conventions, testing, integrations and concerns. Use it for the one-page
39
+ overview, and `--store` to keep the findings in BRAIN.
31
40
 
32
- | Goal | Command | Cost |
33
- |------|---------|------|
34
- | Quick analysis | `query admin map` | ~500 tokens |
35
- | Deep analysis + store | `mutate admin map` | ~800 tokens |
36
- | Focus on one area | `query admin map {focus: "concerns"}` | ~300 tokens |
37
- | CLI | `cleo map` / `cleo map --store` | — |
38
-
39
- ## Progressive Disclosure
40
-
41
- ### Tier 0: Quick Analysis
41
+ ## 1. Check the index before trusting it
42
42
 
43
43
  ```bash
44
- cleo map
44
+ cleo nexus status
45
45
  ```
46
46
 
47
- Returns structured `CodebaseMapResult` with stack, architecture, structure, conventions, testing, integrations, and concerns.
47
+ Read `nodeCount`, `lastIndexedAt` and `staleFileCount` against `fileCount`.
48
+ Queries auto-refresh up to 25 stale files; beyond that they warn
49
+ `W_NEXUS_INDEX_STALE`. Refresh with `cleo nexus analyze` (incremental; `--full`
50
+ rebuilds). An empty or stale index gives confident-looking but incomplete
51
+ answers — say which you relied on.
48
52
 
49
- ### Tier 1: Store to Brain
53
+ ## 2. Survey the project
50
54
 
51
55
  ```bash
52
- cleo map --store
56
+ cleo map # full survey
57
+ cleo map --focus concerns # one area: stack | architecture | structure |
58
+ # conventions | testing | integrations | concerns
59
+ cleo map --store # same survey, findings stored to BRAIN
60
+ # (tagged source: 'codebase-map')
53
61
  ```
54
62
 
55
- Same analysis, but stores patterns, learnings, and observations to brain.db. Tagged with `source: 'codebase-map'` for filtering.
63
+ ## 3. Find the structure
64
+
65
+ ```bash
66
+ cleo nexus clusters # detected communities (modules that change together)
67
+ cleo nexus flows # detected execution flows (entry point → callees)
68
+ cleo nexus search-code "<text>" # locate a symbol by name, file pattern or keyword
69
+ ```
56
70
 
57
- ### Tier 2: Focused Analysis
71
+ ## 4. Before editing a symbol
58
72
 
59
73
  ```bash
60
- cleo map --focus concerns
74
+ cleo nexus impact <symbol> # blast radius: direct, indirect, transitive callers
75
+ cleo nexus context <symbol> # callers, callees, community, flows
76
+ cleo nexus full-context <symbol> # plus BRAIN memories, tasks and conduit threads
61
77
  ```
62
78
 
63
- Focus areas: `stack`, `architecture`, `structure`, `conventions`, `testing`, `integrations`, `concerns`.
79
+ `HIGH`/`CRITICAL` impact means review the affected callers before editing.
80
+ `UNKNOWN` means the assessment is incomplete, and `NONE` means nothing was
81
+ detected in the assessed graph — static analysis cannot prove every runtime
82
+ caller, so an empty footprint alone never establishes that a change is safe.
83
+ When a symbol name is ambiguous, pass the qualified candidate the command
84
+ returns and confirm against the source.
64
85
 
65
- ## When to Use
86
+ ## When to use
66
87
 
67
- - **New project onboarding**: Run `cleo map --store` to build brain.db context
68
- - **Brownfield init**: `cleo init --map-codebase` runs analysis during initialization
69
- - **Before epic planning**: Understand project structure before decomposing work
70
- - **Tech debt assessment**: `query admin map {focus: "concerns"}` for TODOs and large files
88
+ | Situation | Start with |
89
+ |-----------|------------|
90
+ | New or brownfield project | `cleo nexus status`, then `cleo map --store` |
91
+ | Planning an epic in unfamiliar code | `cleo map --focus architecture`, `cleo nexus clusters` |
92
+ | About to change a function or type | `cleo nexus impact <symbol>` |
93
+ | "Who calls this / what does this call?" | `cleo nexus context <symbol>` |
94
+ | Tech-debt review | `cleo map --focus concerns` |
71
95
 
72
- ## Output Structure
96
+ ## `cleo map` output
73
97
 
74
98
  ```typescript
75
99
  {
76
- projectContext: ProjectContext, // From detectProjectType()
77
- stack: StackAnalysis, // Languages, frameworks, deps
78
- architecture: ArchAnalysis, // Layers, entry points, patterns
79
- structure: StructureAnalysis, // Directory tree with annotations
80
- conventions: ConventionAnalysis,// Naming, linting, formatting
81
- testing: TestingAnalysis, // Framework, patterns, coverage
82
- integrations: IntegrationAnalysis, // APIs, DBs, CI/CD
83
- concerns: ConcernAnalysis, // TODOs, large files, complexity
100
+ projectContext: ProjectContext, // From detectProjectType()
101
+ stack: StackAnalysis, // Languages, frameworks, deps
102
+ architecture: ArchAnalysis, // Layers, entry points, patterns
103
+ structure: StructureAnalysis, // Directory tree with annotations
104
+ conventions: ConventionAnalysis, // Naming, linting, formatting
105
+ testing: TestingAnalysis, // Framework, patterns, coverage
106
+ integrations: IntegrationAnalysis, // APIs, DBs, CI/CD
107
+ concerns: ConcernAnalysis, // TODOs, large files, complexity
84
108
  analyzedAt: string
85
109
  }
86
110
  ```
@@ -2,14 +2,18 @@
2
2
  name: ct-consensus-voter
3
3
  description: "Runs structured multi-agent voting for decision tasks with confidence scores, conflict detection, and HITL escalation when the threshold is not met. Use when two or more agents must vote on options: architecture choices, tool selection, policy decisions, when a task carries agent_type:analysis, or on phrases like 'reach consensus', 'vote on options', 'resolve the debate', 'pick the best approach'. Produces a voting matrix JSON, enforces the 0.5 threshold, flags ties within 0.1 confidence as contested and escalates to human tiebreak."
4
4
  protocol: consensus
5
- loomStage: consensus
6
5
  adrRefs:
7
6
  - ADR-015
8
7
  - ADR-023
9
8
  metadata:
10
- version: 1.0.0
9
+ version: 1.0.2
11
10
  tier: on-demand
12
11
  install: harness
12
+ covers:
13
+ - packages/core/src/validation/protocols/cant/consensus.cant
14
+ - packages/core/src/validation/protocols/protocols-markdown/consensus.md
15
+ loomStage: consensus
16
+ lastReviewed: 2026-09-28
13
17
  stability: stable
14
18
  ---
15
19
 
@@ -134,10 +138,9 @@ On escalation:
134
138
  Validate the matrix through `cleo check protocol`:
135
139
 
136
140
  ```bash
137
- cleo check protocol \
138
- --protocolType consensus \
139
- --votingMatrixFile ./.cleo/rcasd/T4797/consensus/T4797-consensus.json \
140
- --taskId T4797
141
+ cleo check protocol consensus \
142
+ --voting-matrix-file ./.cleo/rcasd/T4797/consensus/T4797-consensus.json \
143
+ --task-id T4797
141
144
  ```
142
145
 
143
146
  Exit code 0 = matrix is valid and verdict is `PROVEN` or `REFUTED`. Exit code 65 = `HANDOFF_REQUIRED` (contested or insufficient evidence). Exit code 61 = `E_PROTOCOL_CONSENSUS` (matrix shape is invalid).
@@ -165,7 +168,7 @@ This skill typically hands off to ct-adr-recorder on a `PROVEN` verdict so the d
165
168
  5. Critical-severity conflicts always escalate, regardless of top-option confidence.
166
169
  6. Manifest entry MUST set `agent_type: "analysis"` and include the verdict.
167
170
  7. On PROVEN, hand off to ct-adr-recorder; on CONTESTED or INSUFFICIENT_EVIDENCE, hand off to HITL.
168
- 8. Always validate via `cleo check protocol --protocolType consensus`.
171
+ 8. Always validate via `cleo check protocol consensus`.
169
172
 
170
173
  ## See also / References
171
174
 
@@ -6,11 +6,8 @@ description: >-
6
6
  "consensus workflow", "multi-agent decision", "create contribution",
7
7
  "contribution start", "contribution submit", "detect conflicts",
8
8
  "weighted consensus", "decision tracking", "conflict resolution".
9
- version: 1.0.0
10
- core: false
11
- category: meta
9
+ version: 1.0.2
12
10
  protocol: contribution
13
- loomStage: contribution
14
11
  adrRefs:
15
12
  - ADR-015
16
13
  - ADR-053
@@ -24,9 +21,14 @@ compatibility:
24
21
  - gemini-cli
25
22
  license: MIT
26
23
  metadata:
27
- version: 1.0.0
24
+ version: 1.0.2
28
25
  tier: on-demand
29
26
  install: harness
27
+ covers:
28
+ - packages/core/src/validation/protocols/cant/contribution.cant
29
+ - packages/core/src/validation/protocols/protocols-markdown/contribution.md
30
+ loomStage: contribution
31
+ lastReviewed: 2026-09-28
30
32
  stability: stable
31
33
  ---
32
34
 
@@ -1,9 +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.0
5
- core: false
6
- category: specialist
4
+ version: 3.1.3
7
5
  protocol: contribution
8
6
  dependencies: []
9
7
  sharedResources:
@@ -16,10 +14,12 @@ compatibility:
16
14
  - gemini-cli
17
15
  license: MIT
18
16
  metadata:
19
- version: 3.1.0
17
+ version: 3.1.3
20
18
  tier: core
21
19
  install: harness
22
- lastReviewed: 2026-09-18
20
+ covers:
21
+ - .github/workflows/release-prepare.yml
22
+ lastReviewed: 2026-09-28
23
23
  stability: stable
24
24
  ---
25
25
 
@@ -338,8 +338,8 @@ cleo session end --note "Completed X, Y, Z"
338
338
 
339
339
  ### Output Requirements
340
340
 
341
- 1. MUST write workflow summary to: `{{OUTPUT_DIR}}/{{DATE}}_{{TOPIC_SLUG}}.md`
342
- 2. MUST append ONE line to: `{{MANIFEST_PATH}}`
341
+ 1. MUST record workflow summary with `cleo docs add {{TASK_ID}} --content - --type note --slug {{TOPIC_SLUG}}` (never a raw file under `.cleo/agent-outputs/`)
342
+ 2. MUST record ONE manifest entry: `cleo manifest append --entry '<entry JSON>'` (the flat manifest file is retired, ADR-027)
343
343
  3. MUST return ONLY: "Workflow complete. Manifest appended to pipeline_manifest."
344
344
  4. MUST NOT return full commit/release details in response
345
345
 
@@ -1,14 +1,9 @@
1
1
  ---
2
2
  name: ct-documentor
3
- description: Documentation coordinator with CLEO style guide compliance. Routes every canonical-doc write (spec, adr, research, handoff, note, llm-readme) through the docs SSoT via `cleo docs add` / `cleo docs publish` / `cleo docs fetch` — never raw filesystem writes. Coordinates ct-docs-lookup, ct-docs-write, ct-docs-review, ct-spec-writer, and ct-adr-recorder. Use when creating or updating documentation files, consolidating scattered documentation, or validating documentation against style standards. Triggers on documentation tasks, doc update requests, or style guide compliance checks.
4
- version: 3.16.1
5
- core: false
6
- category: specialist
3
+ description: Documentation coordinator with CLEO style guide compliance. Routes every canonical-doc write (spec, adr, research, handoff, note, llm-readme) through the docs SSoT via `cleo docs add` / `cleo docs publish` / `cleo docs fetch` — never raw filesystem writes. Carries the CLEO writing and review guides as references and coordinates ct-spec-writer and ct-adr-recorder. Use when creating or updating documentation files, consolidating scattered documentation, or validating documentation against style standards. Triggers on documentation tasks, doc update requests, or style guide compliance checks.
4
+ version: 3.17.3
7
5
  protocol: null
8
6
  dependencies:
9
- - ct-docs-lookup
10
- - ct-docs-write
11
- - ct-docs-review
12
7
  - ct-spec-writer
13
8
  - ct-adr-recorder
14
9
  sharedResources:
@@ -21,10 +16,13 @@ compatibility:
21
16
  - gemini-cli
22
17
  license: MIT
23
18
  metadata:
24
- version: 3.16.1
19
+ version: 3.17.3
25
20
  tier: core
26
21
  install: harness
27
- lastReviewed: 2026-09-27
22
+ covers:
23
+ - packages/cleo/src/cli/commands/docs.ts
24
+ - packages/contracts/src/docs-taxonomy.ts
25
+ lastReviewed: 2026-09-28
28
26
  stability: stable
29
27
  ---
30
28
 
@@ -92,9 +90,9 @@ Context injection for documentation tasks spawned via cleo-subagent. Orchestrate
92
90
 
93
91
  | Skill | Purpose | Invoke When |
94
92
  |-------|---------|-------------|
95
- | `ct-docs-lookup` | Query existing docs, find references via `cleo docs fetch`/`list` | Discovery phase, checking what exists |
96
- | `ct-docs-write` | Create/edit docs via `cleo docs add` with CLEO style | Writing or updating content |
97
- | `ct-docs-review` | Check compliance with style guide, read through `cleo docs fetch` | Quality validation before completion |
93
+ | `cleo docs find` / `list` / `fetch` (and the Context7 MCP for library APIs) | Query existing docs and current external docs | Discovery phase, checking what exists |
94
+ | `references/writing.md` (was ct-docs-write) | Create/edit docs via `cleo docs add` with CLEO style | Writing or updating content |
95
+ | `references/reviewing.md` (was ct-docs-review) | Check compliance with style guide, read through `cleo docs fetch`; PR mode | Quality validation before completion |
98
96
  | `ct-spec-writer` | Author specs (REQ-XXX requirements) via `cleo docs add --type spec` | Formal specification work |
99
97
  | `ct-adr-recorder` | Author ADRs via `cleo docs add --type adr --slug adr-NNN-...` | Architecture decisions promoted from consensus |
100
98
 
@@ -115,8 +113,8 @@ and every owner writes through `cleo docs add` — not raw filesystem writes.
115
113
  | `adr` (architecture decisions) | `ct-adr-recorder` | `cleo docs add <ownerId> <path> --type adr --slug adr-<NNN>-<rest>` (TODO T10360 · E3.2 pending: `--title` + auto-`adr-NNN` allocation) |
116
114
  | `research` (multi-source investigation) | `ct-research-agent` | `cleo docs add <ownerId> <path> --type research --slug research-<topic>` |
117
115
  | `handoff` (session/agent transition) | `ct-documentor` (this skill) | `cleo docs add <ownerId> <path> --type handoff --slug handoff-<context>` |
118
- | `note` (conversational prose) | `ct-docs-write` | `cleo docs add <ownerId> <path> --type note --slug <kebab-topic>` |
119
- | `llm-readme` (agent-facing) | `ct-docs-write` | `cleo docs add <ownerId> <path> --type llm-readme --slug <kebab-topic>` |
116
+ | `note` (conversational prose) | `ct-documentor` (`references/writing.md`) | `cleo docs add <ownerId> <path> --type note --slug <kebab-topic>` |
117
+ | `llm-readme` (agent-facing) | `ct-documentor` (`references/writing.md`) | `cleo docs add <ownerId> <path> --type llm-readme --slug <kebab-topic>` |
120
118
 
121
119
  Hard rule: EVERY canonical-type write goes through the SSoT. The coordinator
122
120
  rejects any subagent return that wrote raw markdown into `.cleo/adrs/`,
@@ -159,6 +157,7 @@ Before adding a new doc, ALWAYS ask: is this **a new doc**, **a change to an exi
159
157
  ### Examples
160
158
 
161
159
  - **"Fix a typo in ADR-076 saga-first-class"** - `cleo docs update adr-076-saga-first-class --file /tmp/fixed.md --message "fix typo in §2"` (canonical - T10161). NOT a new doc. NOT a supersession. Just patch in place; T10161 squashes patches within a 5-minute window so consecutive typo fixes don't bloat the audit log.
160
+ - **"Accept a spec that review signed off"** - `cleo docs update <slug> --status accepted` (T12654). `--status` alone changes only the lifecycle status (draft, proposed, accepted, superseded, archived, deprecated); the stored bytes are kept, so there is no need to re-supply `--file` or `--content`. Any content edit without `--status` resets the doc to `draft`.
162
161
 
163
162
  - **"Replace the entire saga-orchestration model with v2" (ADVANCED)** - `cleo docs add T9999 v2.md --type adr --slug adr-080-saga-orchestration-v2` followed by `cleo docs supersede adr-073-above-epic-naming adr-080-saga-orchestration-v2 --reason "v2 canonicalizes the SG- prefix + 4-tier hierarchy"`. Both rows survive in the attachments table; readers see `lifecycle_status=superseded` on v1 and `supersedes=adr-073` on v2.
164
163
 
@@ -205,7 +204,7 @@ This closes the silent-absorption footgun where citty's underlying
205
204
 
206
205
  ```bash
207
206
  # Typo → E_UNKNOWN_FLAG with suggestion
208
- $ cleo docs add T123 file.md --titel "X"
207
+ $ cleo docs add T123 file.md --titel "X" # cleo-cmd: negative-example
209
208
  {
210
209
  "success": false,
211
210
  "error": {
@@ -577,9 +576,10 @@ not yet under test.
577
576
 
578
577
  **Anti-pattern**: do NOT write a `cleo memory observe` manually after a
579
578
  `cleo docs add` — the auto-emit already happened, and the duplicate
580
- observation pollutes the FTS index. Use `cleo memory backfill-docs` (AC4
581
- of T9976) only to repair attachments that pre-date the auto-emit feature
582
- or were written outside the SSoT.
579
+ observation pollutes the FTS index. No CLI command back-fills that
580
+ observation for attachments that pre-date the auto-emit feature: the
581
+ `memory backfill-docs` verb planned in T9976 AC4 never shipped. Leave such
582
+ attachments as they are rather than hand-writing a duplicate observation.
583
583
 
584
584
  #### System-managed exemptions (T10368)
585
585
 
@@ -696,7 +696,7 @@ the docs graph — never grep the filesystem for the file you just wrote.
696
696
  cleo docs list --type spec --project # canonical: every spec in this project
697
697
  cleo docs list --task T1234 # canonical: everything attached to a task
698
698
  cleo docs versions --for T1234 # ADVANCED: list every SHA version
699
- cleo docs sync --from docs/legacy.md --for T1234 --type note --slug legacy-doc # ADVANCED: back-fill on-disk file into SSoT
699
+ cleo docs sync --from docs/legacy.md --for T1234 # ADVANCED: back-fill on-disk file into SSoT (no --type/--slug; classify with docs add)
700
700
  ```
701
701
 
702
702
  ---
@@ -773,7 +773,7 @@ Grep: pattern="{TOPIC_KEYWORDS}" path="docs/"
773
773
  Grep: pattern="{RELATED_TERMS}" path="docs/" output_mode="files_with_matches"
774
774
  ```
775
775
 
776
- **Invoke `/ct-docs-lookup`** for deeper documentation research.
776
+ **Use the Context7 MCP** (`resolve-library-id` → `query-docs`) for current library and framework docs.
777
777
 
778
778
  ### Phase 2: Assess
779
779
 
@@ -786,7 +786,7 @@ Grep: pattern="{RELATED_TERMS}" path="docs/" output_mode="files_with_matches"
786
786
 
787
787
  ### Phase 3: Write/Update
788
788
 
789
- **Invoke `/ct-docs-write`** for content creation.
789
+ **Load `references/writing.md`** for content creation.
790
790
 
791
791
  **For EXISTING files:**
792
792
  1. Read the current content
@@ -811,7 +811,7 @@ Grep: pattern="{RELATED_TERMS}" path="docs/" output_mode="files_with_matches"
811
811
 
812
812
  ### Phase 4: Review
813
813
 
814
- **Invoke `/ct-docs-review`** for quality validation.
814
+ **Load `references/reviewing.md`** for quality validation.
815
815
 
816
816
  Checklist:
817
817
  - [ ] No formal language ("utilize", "offerings", "cannot")
@@ -871,14 +871,14 @@ cleo research link {TASK_ID} {RESEARCH_ID}
871
871
 
872
872
  ### Output Requirements
873
873
 
874
- 1. MUST write documentation output to: `{{OUTPUT_DIR}}/`
875
- 2. MUST append ONE line to: `{{MANIFEST_PATH}}`
874
+ 1. MUST record documentation output with `cleo docs add {{TASK_ID}} --content - --type <kind> --slug {{TOPIC_SLUG}}` (never a raw file under `.cleo/agent-outputs/`)
875
+ 2. MUST record ONE manifest entry: `cleo manifest append --entry '<entry JSON>'` (the flat manifest file is retired, ADR-027)
876
876
  3. MUST return ONLY: "Documentation complete. Manifest appended to pipeline_manifest."
877
877
  4. MUST NOT return documentation content in response
878
878
 
879
879
  ### Output File Format
880
880
 
881
- Write to `{{OUTPUT_DIR}}/`:
881
+ Record it with `cleo docs add {{TASK_ID}} --content - --type <kind> --slug {{TOPIC_SLUG}}`, using this body:
882
882
 
883
883
  ```markdown
884
884
  # Documentation Update: {TITLE}
@@ -907,12 +907,12 @@ Write to `{{OUTPUT_DIR}}/`:
907
907
  - [ ] Changes don't duplicate existing content
908
908
  - [ ] Cross-references updated
909
909
  - [ ] Examples tested
910
- - [ ] Style guide compliance verified via ct-docs-review
910
+ - [ ] Style guide compliance verified via `references/reviewing.md`
911
911
  ```
912
912
 
913
913
  ### Manifest Entry
914
914
 
915
- Append ONE line to `{{MANIFEST_PATH}}`:
915
+ Record it with `cleo manifest append --entry '<entry JSON>'` (the flat manifest file is retired, ADR-027):
916
916
 
917
917
  ```json
918
918
  {"id":"docs-{TOPIC}-{DATE}","file":"{DATE}_docs-{TOPIC}.md","title":"Documentation Update: {TITLE}","date":"{DATE}","status":"complete","agent_type":"documentation","topics":["documentation","{topic}"],"key_findings":["Updated {file} with {change}","Consolidated {topic} docs into {canonical-location}","Avoided duplication by updating existing {file}"],"actionable":false,"needs_followup":[],"linked_tasks":["{TASK_ID}"]}
@@ -926,10 +926,10 @@ Append ONE line to `{{MANIFEST_PATH}}`:
926
926
  - [ ] Core principle followed (maintain, don't duplicate)
927
927
  - [ ] Coordinator pattern followed: every doc-type routed to its owning skill
928
928
  - [ ] Every canonical-type write went through `cleo docs add --type X --slug Y`
929
- - [ ] `/ct-docs-write` invoked for `note`/`llm-readme` content
929
+ - [ ] `references/writing.md` followed for `note`/`llm-readme` content
930
930
  - [ ] `/ct-spec-writer` invoked when writing specs (REQ-XXX requirements)
931
931
  - [ ] `/ct-adr-recorder` invoked when promoting consensus → ADR
932
- - [ ] `/ct-docs-review` invoked for quality validation
932
+ - [ ] `references/reviewing.md` applied for quality validation
933
933
  - [ ] Anti-duplication checklist verified
934
934
  - [ ] Output file written with "Files NOT Created" section
935
935
  - [ ] Manifest entry appended
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Regression test for ct-docs-review/SKILL.md (T9642 / Epic T9629 / Saga T9625).
2
+ * Regression test for the ct-docs-review content, now ct-documentor/references/reviewing.md (T9642 / Epic T9629 / Saga T9625).
3
3
  *
4
4
  * Pins the SDK-first review contract: reviewers MUST read docs through
5
5
  * `cleo docs fetch <slug>` rather than the working-tree file. Documents
@@ -19,10 +19,11 @@ import { describe, expect, it } from 'vitest';
19
19
 
20
20
  const thisFile = fileURLToPath(import.meta.url);
21
21
  const skillRoot = resolve(dirname(thisFile), '..');
22
- const skillPath = join(skillRoot, 'SKILL.md');
22
+ // T12649: ct-docs-review merged into ct-documentor/references/reviewing.md (D11157).
23
+ const skillPath = join(skillRoot, 'references', 'reviewing.md');
23
24
  const skillContent = readFileSync(skillPath, 'utf-8');
24
25
 
25
- describe('ct-docs-review SKILL.md — SDK-first contract (T9642)', () => {
26
+ describe('ct-documentor references/reviewing.md (was ct-docs-review) — SDK-first contract (T9642)', () => {
26
27
  it('teaches `cleo docs fetch` as the canonical read path', () => {
27
28
  expect(skillContent).toContain('cleo docs fetch');
28
29
  });
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Regression test for ct-docs-write/SKILL.md (T9641 / Epic T9629 / Saga T9625).
2
+ * Regression test for the ct-docs-write content, now ct-documentor/references/writing.md (T9641 / Epic T9629 / Saga T9625).
3
3
  *
4
4
  * Pins the SDK-first writing contract: every new doc MUST flow through
5
5
  * `cleo docs add --type X --slug Y` rather than direct filesystem writes.
@@ -18,10 +18,11 @@ import { describe, expect, it } from 'vitest';
18
18
 
19
19
  const thisFile = fileURLToPath(import.meta.url);
20
20
  const skillRoot = resolve(dirname(thisFile), '..');
21
- const skillPath = join(skillRoot, 'SKILL.md');
21
+ // T12649: ct-docs-write merged into ct-documentor/references/writing.md (D11157).
22
+ const skillPath = join(skillRoot, 'references', 'writing.md');
22
23
  const skillContent = readFileSync(skillPath, 'utf-8');
23
24
 
24
- describe('ct-docs-write SKILL.md — SDK-first contract (T9641)', () => {
25
+ describe('ct-documentor references/writing.md (was ct-docs-write) — SDK-first contract (T9641)', () => {
25
26
  it('teaches `cleo docs add` as the canonical write path', () => {
26
27
  expect(skillContent).toContain('cleo docs add');
27
28
  });
@@ -42,12 +42,12 @@ existing page; do not create a sibling.
42
42
  **Symptom.** A how-to or reference cites a library API that has been
43
43
  renamed, deprecated, or removed.
44
44
 
45
- **Detection cue.** `ct-docs-lookup` was NOT invoked for the topic.
45
+ **Detection cue.** the Context7 MCP was NOT invoked for the topic.
46
46
 
47
47
  **Root cause.** Documentor coordinator skipped lookup because "I know
48
48
  the API" or assumed training data was current.
49
49
 
50
- **Fix.** Always invoke `ct-docs-lookup` when documenting external
50
+ **Fix.** Always invoke the Context7 MCP when documenting external
51
51
  library behavior. Training data is stale by definition — Context7 is
52
52
  the current source.
53
53
 
@@ -118,7 +118,7 @@ was assembled from multiple sources without normalization.
118
118
 
119
119
  **Fix.** CLEO style is "you" (second person) for how-tos and tutorials;
120
120
  "CLEO" (third person) for explanations and references. Apply
121
- consistently. Pass the choice explicitly to ct-docs-write as input.
121
+ consistently. Pass the choice explicitly to the writing guide (`ct-documentor/references/writing.md`) as input.
122
122
 
123
123
  ## 8. The Forbidden Word Sneak-In
124
124
 
@@ -154,7 +154,7 @@ step bodies.
154
154
 
155
155
  **Fix.** Tutorials and how-tos use imperative voice — "Run the
156
156
  command", "Open the file", "Set the value". Pass that constraint
157
- explicitly to ct-docs-write.
157
+ explicitly to the writing guide (`ct-documentor/references/writing.md`).
158
158
 
159
159
  ## 10. The Lost Manifest
160
160
 
@@ -172,10 +172,10 @@ of the children appended in a wrong format).
172
172
  children — owns the entry. Run:
173
173
 
174
174
  ```bash
175
- cleo manifest append <(cat <<EOF
175
+ cleo manifest append --entry "$(cat <<'JSON'
176
176
  {"id":"docs-<topic>-<date>", "file":"<path>", "title":"...", ...}
177
- EOF
178
- )
177
+ JSON
178
+ )"
179
179
  ```
180
180
 
181
181
  After append, verify with:
@@ -211,6 +211,6 @@ violations the local review didn't catch.
211
211
  **Root cause.** Documentor ran review on the draft, but not on the
212
212
  PR diff. Integration introduced drift (rebase fixups, merge prose).
213
213
 
214
- **Fix.** Always run `ct-docs-review --mode=pr` on the PR's diff
214
+ **Fix.** Always run `references/reviewing.md` in PR mode on the PR's diff
215
215
  before requesting merge. Catches drift that slipped through during
216
216
  integration.
@@ -28,8 +28,8 @@ exploring.
28
28
  Conversational, practical, second-person.
29
29
 
30
30
  ```markdown
31
- You can run the release pipeline manually with `cleo release ship`.
32
- Just kidding — never use "just". Run it with `cleo release ship`,
31
+ You can run the release pipeline manually with `cleo release plan`.
32
+ Just kidding — never use "just". Run it with `cleo release plan`,
33
33
  and CLEO walks through the gates one by one.
34
34
  ```
35
35
 
@@ -40,7 +40,7 @@ Do not explain why unless the why directly affects behavior.
40
40
 
41
41
  ```markdown
42
42
  GOOD (end-user):
43
- Run `cleo release ship 2026.5.82 --epic T9567`.
43
+ Run `cleo release plan v2026.5.82 --epic T9567`.
44
44
 
45
45
  You see:
46
46
  - The 12 release steps run in order.
@@ -51,7 +51,7 @@ If a step fails, CLEO stops and prints the failing gate. Fix the issue
51
51
  and re-run.
52
52
 
53
53
  BAD (end-user, too deep):
54
- The `cleo release ship` command dispatches through `dispatch.ts`,
54
+ The `cleo release plan` command dispatches through `dispatch.ts`,
55
55
  loading the `release` handler from the registry built at module
56
56
  init. The handler then constructs a release plan using the 12-stage
57
57
  state machine defined in `packages/cleo/src/commands/release/...`
@@ -198,7 +198,7 @@ The most common style failure is mixing audiences within a single doc.
198
198
 
199
199
  ```markdown
200
200
  BAD:
201
- Run `cleo release ship`.
201
+ Run `cleo release plan`.
202
202
 
203
203
  (Internally, this dispatches through `dispatch.ts` to the release
204
204
  handler registered via the registry pattern...)