@cleocode/skills 2026.9.21 → 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.
- package/README.md +46 -63
- package/frontmatter.d.mts +60 -0
- package/frontmatter.mjs +277 -0
- package/index.d.ts +3 -3
- package/index.js +34 -9
- package/package.json +4 -2
- package/profiles/core.json +10 -3
- package/profiles/full.json +10 -6
- package/profiles/recommended.json +29 -3
- package/skills/_shared/manifest-operations.md +19 -40
- package/skills/_shared/skill-chaining-patterns.md +5 -9
- package/skills/_shared/subagent-protocol-base.md +6 -6
- package/skills/_shared/task-system-integration.md +5 -5
- package/skills/ct-adr-recorder/SKILL.md +18 -17
- package/skills/ct-artifact-publisher/SKILL.md +10 -7
- package/skills/ct-cleo/SKILL.md +25 -8
- package/skills/ct-cleo/references/loom-lifecycle.md +1 -1
- package/skills/{ct-memory/SKILL.md → ct-cleo/references/memory.md} +10 -23
- package/skills/ct-cleo/references/orchestrator-constraints.md +5 -5
- package/skills/ct-cleo/references/session-protocol.md +11 -8
- package/skills/{ct-stickynote/SKILL.md → ct-cleo/references/sticky-notes.md} +7 -29
- package/skills/ct-codebase-mapper/SKILL.md +62 -38
- package/skills/ct-consensus-voter/SKILL.md +10 -7
- package/skills/ct-contribution/SKILL.md +7 -5
- package/skills/ct-dev-workflow/SKILL.md +7 -7
- package/skills/ct-documentor/SKILL.md +29 -29
- package/skills/{ct-docs-review/__tests__/skill-docs-review.test.ts → ct-documentor/__tests__/reviewing-reference.test.ts} +4 -3
- package/skills/{ct-docs-write/__tests__/skill-docs-write.test.ts → ct-documentor/__tests__/writing-reference.test.ts} +4 -3
- package/skills/ct-documentor/references/anti-patterns.md +8 -8
- package/skills/{ct-docs-write → ct-documentor}/references/audience-targeting.md +5 -5
- package/skills/ct-documentor/references/chain-orchestration.md +19 -19
- package/skills/{ct-docs-write → ct-documentor}/references/cleo-style-guide.md +1 -1
- package/skills/ct-documentor/references/doc-types-and-templates.md +1 -1
- package/skills/{ct-docs-review → ct-documentor}/references/pr-review-mode.md +1 -1
- package/skills/{ct-docs-review/SKILL.md → ct-documentor/references/reviewing.md} +6 -26
- package/skills/ct-documentor/references/style-coordination.md +5 -5
- package/skills/{ct-docs-review → ct-documentor}/references/style-violations.md +1 -1
- package/skills/{ct-docs-write/SKILL.md → ct-documentor/references/writing.md} +5 -25
- package/skills/ct-epic-architect/SKILL.md +12 -9
- package/skills/ct-epic-architect/references/commands.md +5 -5
- package/skills/ct-epic-architect/references/output-format.md +2 -2
- package/skills/ct-epic-architect/references/patterns.md +2 -2
- package/skills/ct-epic-architect/references/skill-aware-execution.md +3 -3
- package/skills/ct-grade/SKILL.md +3 -4
- package/skills/ct-grade/agents/scenario-runner.md +1 -1
- package/skills/ct-ivt-looper/SKILL.md +23 -22
- package/skills/ct-lead/SKILL.md +45 -13
- package/skills/ct-lead/references/aggregation-protocol.md +44 -21
- package/skills/ct-lead/references/spawn-pattern.md +12 -11
- package/skills/ct-orchestrator/README.md +2 -2
- package/skills/ct-orchestrator/SKILL.md +14 -10
- package/skills/ct-orchestrator/references/SUBAGENT-PROTOCOL-BLOCK.md +4 -4
- package/skills/ct-orchestrator/references/autonomous-operation.md +4 -4
- package/skills/ct-orchestrator/references/orchestrator-compliance.md +3 -3
- package/skills/ct-orchestrator/references/orchestrator-patterns.md +20 -19
- package/skills/ct-orchestrator/references/orchestrator-recovery.md +13 -23
- package/skills/ct-orchestrator/references/orchestrator-spawning.md +9 -10
- package/skills/ct-orchestrator/references/orchestrator-tokens.md +9 -9
- package/skills/ct-provenance-keeper/SKILL.md +10 -7
- package/skills/ct-release-orchestrator/SKILL.md +21 -13
- package/skills/ct-release-orchestrator/references/composition.md +1 -1
- package/skills/ct-release-orchestrator/references/release-types.md +33 -15
- package/skills/ct-research-agent/SKILL.md +14 -12
- package/skills/ct-research-agent/references/triggers-and-routing.md +4 -4
- package/skills/{ct-skill-creator → ct-skill-author}/SKILL.md +9 -6
- package/skills/{ct-skill-validator → ct-skill-author}/agents/ecosystem-checker.md +1 -1
- package/skills/{ct-skill-validator → ct-skill-author}/evals/quality_evals.json +10 -10
- package/skills/{ct-skill-validator → ct-skill-author}/evals/trigger_queries.json +1 -1
- package/skills/{ct-skill-validator → ct-skill-author}/references/cleo-ecosystem-rules.md +8 -4
- package/skills/{ct-skill-creator → ct-skill-author}/references/provider-deployment.md +10 -6
- package/skills/{ct-skill-validator/SKILL.md → ct-skill-author/references/validating.md} +14 -21
- package/skills/{ct-skill-validator → ct-skill-author}/references/validation-rules.md +2 -2
- package/skills/{ct-skill-validator → ct-skill-author}/scripts/_skill_finder.py +2 -2
- package/skills/{ct-skill-validator → ct-skill-author}/scripts/check_depth.py +2 -5
- package/skills/{ct-skill-validator → ct-skill-author}/scripts/generate_validation_report.py +1 -1
- package/skills/{ct-skill-validator → ct-skill-author}/scripts/run_quality_eval.py +2 -2
- package/skills/ct-spec-writer/SKILL.md +9 -7
- package/skills/ct-task-executor/SKILL.md +19 -16
- package/skills/ct-task-executor/references/common-failures.md +1 -1
- package/skills/ct-validator/SKILL.md +11 -9
- package/skills/ct-validator/references/compliance-reports.md +1 -1
- package/skills/ct-validator/references/validation-modes.md +3 -3
- package/skills/manifest.json +381 -365
- package/dispatch-config.json +0 -983
- package/provider-skills-map.json +0 -97
- package/skills/ct-docs-lookup/SKILL.md +0 -185
- package/skills/ct-docs-lookup/references/ctx7-workflow.md +0 -198
- package/skills/ct-docs-lookup/references/library-id-resolution.md +0 -217
- package/skills/ct-docs-lookup/references/version-specific-docs.md +0 -220
- package/skills/ct-master-tac/SKILL.md +0 -120
- package/skills/ct-master-tac/__tests__/install.test.ts +0 -304
- package/skills/ct-master-tac/bundled/README.md +0 -40
- package/skills/ct-master-tac/bundled/protocols/architecture-decision.cant +0 -90
- package/skills/ct-master-tac/bundled/protocols/artifact-publish.cant +0 -105
- package/skills/ct-master-tac/bundled/protocols/consensus.cant +0 -85
- package/skills/ct-master-tac/bundled/protocols/contribution.cant +0 -92
- package/skills/ct-master-tac/bundled/protocols/decomposition.cant +0 -102
- package/skills/ct-master-tac/bundled/protocols/implementation.cant +0 -77
- package/skills/ct-master-tac/bundled/protocols/provenance.cant +0 -100
- package/skills/ct-master-tac/bundled/protocols/release.cant +0 -107
- package/skills/ct-master-tac/bundled/protocols/research.cant +0 -77
- package/skills/ct-master-tac/bundled/protocols/specification.cant +0 -77
- package/skills/ct-master-tac/bundled/protocols/testing.cant +0 -99
- package/skills/ct-master-tac/bundled/protocols/validation.cant +0 -75
- package/skills/ct-master-tac/bundled/teams/platform.cant +0 -115
- package/skills/ct-master-tac/manifest.json +0 -55
- package/skills/ct-skill-creator/eval-viewer/__pycache__/generate_review.cpython-314.pyc +0 -0
- package/skills/ct-skill-creator/manifest-entry.json +0 -17
- package/skills/ct-skill-creator/scripts/__pycache__/__init__.cpython-314.pyc +0 -0
- package/skills/ct-skill-creator/scripts/__pycache__/aggregate_benchmark.cpython-314.pyc +0 -0
- package/skills/ct-skill-creator/scripts/__pycache__/generate_report.cpython-314.pyc +0 -0
- package/skills/ct-skill-creator/scripts/__pycache__/improve_description.cpython-314.pyc +0 -0
- package/skills/ct-skill-creator/scripts/__pycache__/init_skill.cpython-314.pyc +0 -0
- package/skills/ct-skill-creator/scripts/__pycache__/quick_validate.cpython-314.pyc +0 -0
- package/skills/ct-skill-creator/scripts/__pycache__/run_eval.cpython-314.pyc +0 -0
- package/skills/ct-skill-creator/scripts/__pycache__/run_loop.cpython-314.pyc +0 -0
- package/skills/ct-skill-creator/scripts/__pycache__/utils.cpython-314.pyc +0 -0
- package/skills/ct-skill-validator/manifest-entry.json +0 -20
- package/skills/ct-stickynote/README.md +0 -14
- package/skills/signaldock-connect/SKILL.md +0 -137
- package/skills/signaldock-connect/assets/agent-card.json +0 -48
- package/skills/signaldock-connect/references/api-endpoints.md +0 -131
- package/skills.json +0 -495
- /package/skills/{ct-docs-review → ct-documentor}/references/inline-comment-patterns.md +0 -0
- /package/skills/{ct-docs-write → ct-documentor}/references/markdown-patterns.md +0 -0
- /package/skills/{ct-skill-creator → ct-skill-author}/agents/analyzer.md +0 -0
- /package/skills/{ct-skill-creator → ct-skill-author}/agents/comparator.md +0 -0
- /package/skills/{ct-skill-creator → ct-skill-author}/agents/grader.md +0 -0
- /package/skills/{ct-skill-creator → ct-skill-author}/assets/eval_review.html +0 -0
- /package/skills/{ct-skill-validator → ct-skill-author}/assets/valid-skill-example.md +0 -0
- /package/skills/{ct-skill-creator → ct-skill-author}/eval-viewer/generate_review.py +0 -0
- /package/skills/{ct-skill-creator → ct-skill-author}/eval-viewer/viewer.html +0 -0
- /package/skills/{ct-skill-creator → ct-skill-author}/references/dynamic-context.md +0 -0
- /package/skills/{ct-skill-creator → ct-skill-author}/references/frontmatter.md +0 -0
- /package/skills/{ct-skill-creator → ct-skill-author}/references/invocation-control.md +0 -0
- /package/skills/{ct-skill-creator → ct-skill-author}/references/output-patterns.md +0 -0
- /package/skills/{ct-skill-creator → ct-skill-author}/references/schemas.md +0 -0
- /package/skills/{ct-skill-creator → ct-skill-author}/references/workflows.md +0 -0
- /package/skills/{ct-skill-creator → ct-skill-author}/scripts/__init__.py +0 -0
- /package/skills/{ct-skill-creator → ct-skill-author}/scripts/aggregate_benchmark.py +0 -0
- /package/skills/{ct-skill-validator → ct-skill-author}/scripts/audit_body.py +0 -0
- /package/skills/{ct-skill-validator → ct-skill-author}/scripts/check_ecosystem.py +0 -0
- /package/skills/{ct-skill-creator → ct-skill-author}/scripts/generate_report.py +0 -0
- /package/skills/{ct-skill-creator → ct-skill-author}/scripts/improve_description.py +0 -0
- /package/skills/{ct-skill-creator → ct-skill-author}/scripts/init_skill.py +0 -0
- /package/skills/{ct-skill-creator → ct-skill-author}/scripts/package_skill.py +0 -0
- /package/skills/{ct-skill-creator → ct-skill-author}/scripts/quick_validate.py +0 -0
- /package/skills/{ct-skill-creator → ct-skill-author}/scripts/run_eval.py +0 -0
- /package/skills/{ct-skill-creator → ct-skill-author}/scripts/run_loop.py +0 -0
- /package/skills/{ct-skill-creator → ct-skill-author}/scripts/utils.py +0 -0
- /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:
|
|
4
|
-
description:
|
|
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:
|
|
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
|
-
|
|
32
|
+
Two instruments, used together:
|
|
29
33
|
|
|
30
|
-
|
|
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
|
-
|
|
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
|
|
44
|
+
cleo nexus status
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
|
|
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
|
-
|
|
53
|
+
## 2. Survey the project
|
|
50
54
|
|
|
51
55
|
```bash
|
|
52
|
-
cleo map
|
|
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
|
-
|
|
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
|
-
|
|
71
|
+
## 4. Before editing a symbol
|
|
58
72
|
|
|
59
73
|
```bash
|
|
60
|
-
cleo
|
|
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
|
-
|
|
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
|
|
86
|
+
## When to use
|
|
66
87
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
##
|
|
96
|
+
## `cleo map` output
|
|
73
97
|
|
|
74
98
|
```typescript
|
|
75
99
|
{
|
|
76
|
-
projectContext: ProjectContext,
|
|
77
|
-
stack: StackAnalysis,
|
|
78
|
-
architecture: ArchAnalysis,
|
|
79
|
-
structure: StructureAnalysis,
|
|
80
|
-
conventions: ConventionAnalysis
|
|
81
|
-
testing: TestingAnalysis,
|
|
82
|
-
integrations: IntegrationAnalysis,
|
|
83
|
-
concerns: ConcernAnalysis,
|
|
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.
|
|
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
|
-
--
|
|
139
|
-
--
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
17
|
+
version: 3.1.3
|
|
20
18
|
tier: core
|
|
21
19
|
install: harness
|
|
22
|
-
|
|
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
|
|
342
|
-
2. MUST
|
|
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.
|
|
4
|
-
version: 3.
|
|
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.
|
|
19
|
+
version: 3.17.3
|
|
25
20
|
tier: core
|
|
26
21
|
install: harness
|
|
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
|
-
| `
|
|
96
|
-
| `ct-docs-write
|
|
97
|
-
| `ct-docs-review
|
|
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-
|
|
119
|
-
| `llm-readme` (agent-facing) | `ct-
|
|
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.
|
|
581
|
-
|
|
582
|
-
|
|
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
|
|
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
|
-
**
|
|
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
|
-
**
|
|
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
|
-
**
|
|
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
|
|
875
|
-
2. MUST
|
|
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
|
-
|
|
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
|
|
910
|
+
- [ ] Style guide compliance verified via `references/reviewing.md`
|
|
911
911
|
```
|
|
912
912
|
|
|
913
913
|
### Manifest Entry
|
|
914
914
|
|
|
915
|
-
|
|
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
|
-
- [ ]
|
|
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
|
-
- [ ]
|
|
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/
|
|
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
|
-
|
|
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
|
|
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/
|
|
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
|
-
|
|
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
|
|
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.**
|
|
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
|
|
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-
|
|
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-
|
|
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
|
|
175
|
+
cleo manifest append --entry "$(cat <<'JSON'
|
|
176
176
|
{"id":"docs-<topic>-<date>", "file":"<path>", "title":"...", ...}
|
|
177
|
-
|
|
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 `
|
|
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
|
|
32
|
-
Just kidding — never use "just". Run it with `cleo release
|
|
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
|
|
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
|
|
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
|
|
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...)
|