@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
|
@@ -16,7 +16,7 @@ The `spawn` command handles token injection automatically. For manual injection,
|
|
|
16
16
|
# 3. Gets task context from CLEO
|
|
17
17
|
# 4. Extracts manifest summaries
|
|
18
18
|
# 5. Injects all tokens
|
|
19
|
-
cleo orchestrate spawn T1586 --
|
|
19
|
+
cleo orchestrate spawn T1586 --protocol research
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
### Manual Token Injection
|
|
@@ -33,7 +33,7 @@ export TI_TOPIC_SLUG="my-research-topic"
|
|
|
33
33
|
ti_set_defaults
|
|
34
34
|
|
|
35
35
|
# 3. Optional: Get task context from CLEO
|
|
36
|
-
task_json=$(cleo show T1234
|
|
36
|
+
task_json=$(cleo show T1234)
|
|
37
37
|
ti_set_task_context "$task_json"
|
|
38
38
|
|
|
39
39
|
# 4. Load and inject skill template
|
|
@@ -70,7 +70,7 @@ template=$(ti_load_template "skills/ct-research-agent/SKILL.md")
|
|
|
70
70
|
|
|
71
71
|
| Token | Default Value |
|
|
72
72
|
|-------|---------------|
|
|
73
|
-
| `{{OUTPUT_DIR}}` | `.cleo/agent-outputs` |
|
|
73
|
+
| `{{OUTPUT_DIR}}` | `.cleo/agent-outputs` (legacy token — do not write there; record output with `cleo docs add`) |
|
|
74
74
|
|
|
75
75
|
|
|
76
76
|
### Task Context Tokens (populated from CLEO task data)
|
|
@@ -113,7 +113,7 @@ For fine-grained control over token injection, use `lib/token-inject.sh` directl
|
|
|
113
113
|
|----------|--------|--------|
|
|
114
114
|
| **Required** | `{{TASK_ID}}`, `{{DATE}}`, `{{TOPIC_SLUG}}` | Must be set before injection |
|
|
115
115
|
| **Task Commands** | `{{TASK_SHOW_CMD}}`, `{{TASK_START_CMD}}`, `{{TASK_COMPLETE_CMD}}`, etc. | CLEO defaults |
|
|
116
|
-
| **Output Paths** | `{{OUTPUT_DIR}}
|
|
116
|
+
| **Output Paths** | `{{OUTPUT_DIR}}` | Legacy CLEO default — record output with `cleo docs add` and manifest entries with `cleo manifest append` |
|
|
117
117
|
| **Task Context** | `{{TASK_TITLE}}`, `{{TASK_DESCRIPTION}}`, `{{DEPENDS_LIST}}`, etc. | From CLEO task data |
|
|
118
118
|
| **Manifest Context** | `{{MANIFEST_SUMMARIES}}` | From recent pipeline_manifest entries |
|
|
119
119
|
|
|
@@ -129,7 +129,7 @@ ti_set_context "T1234" "2026-01-20" "auth-research"
|
|
|
129
129
|
ti_set_defaults
|
|
130
130
|
|
|
131
131
|
# 3. Get task context from CLEO
|
|
132
|
-
task_json=$(cleo show T1234
|
|
132
|
+
task_json=$(cleo show T1234)
|
|
133
133
|
ti_set_task_context "$task_json"
|
|
134
134
|
|
|
135
135
|
# 4. Load and inject skill template
|
|
@@ -155,8 +155,8 @@ echo "$template" | grep -c '{{' && echo "WARNING: Uninjected tokens remain"
|
|
|
155
155
|
## Subagent Protocol Tokens
|
|
156
156
|
|
|
157
157
|
Token defaults (from `skills/_shared/placeholders.json`):
|
|
158
|
-
- `{{OUTPUT_DIR}}` -> `.cleo/agent-outputs`
|
|
159
|
-
-
|
|
158
|
+
- `{{OUTPUT_DIR}}` -> `.cleo/agent-outputs` (legacy token — record output with `cleo docs add`, never raw writes there)
|
|
159
|
+
- The flat manifest path token is retired (ADR-027) — use `cleo manifest append`
|
|
160
160
|
|
|
161
161
|
### Inline Protocol Block (when CLI unavailable)
|
|
162
162
|
|
|
@@ -164,8 +164,8 @@ Token defaults (from `skills/_shared/placeholders.json`):
|
|
|
164
164
|
## SUBAGENT PROTOCOL (RFC 2119 - MANDATORY)
|
|
165
165
|
|
|
166
166
|
OUTPUT REQUIREMENTS:
|
|
167
|
-
1. MUST
|
|
168
|
-
2. MUST append ONE entry via `cleo manifest append <json
|
|
167
|
+
1. MUST record findings with `cleo docs add {{TASK_ID}} --content - --type <kind> --slug {{TOPIC_SLUG}}` (never a raw file under `.cleo/agent-outputs/`)
|
|
168
|
+
2. MUST append ONE entry via `cleo manifest append --entry '<json>'` (writes to pipeline_manifest table per ADR-027/T1093)
|
|
169
169
|
3. MUST return ONLY: "Research complete. Manifest appended to pipeline_manifest."
|
|
170
170
|
4. MUST NOT return research content in response.
|
|
171
171
|
|
|
@@ -2,9 +2,13 @@
|
|
|
2
2
|
name: ct-provenance-keeper
|
|
3
3
|
description: "Generates in-toto v1 attestations, SLSA-level provenance records, SBOMs (CycloneDX or SPDX), and sigstore/cosign signatures for published artifacts. Invoked by ct-artifact-publisher as a delegation for signing and attestation. Records the full commit, then build, then artifact, then attestation, then registry chain in .cleo/releases.json and rejects publishes whose digest does not match the attestation. Triggers when artifact-publish reaches the provenance step or when a release needs SLSA L2+ attestation."
|
|
4
4
|
metadata:
|
|
5
|
-
version: 1.0.
|
|
5
|
+
version: 1.0.2
|
|
6
6
|
tier: on-demand
|
|
7
7
|
install: harness
|
|
8
|
+
covers:
|
|
9
|
+
- packages/core/src/validation/protocols/cant/provenance.cant
|
|
10
|
+
- packages/core/src/validation/protocols/protocols-markdown/provenance.md
|
|
11
|
+
lastReviewed: 2026-09-28
|
|
8
12
|
stability: stable
|
|
9
13
|
---
|
|
10
14
|
|
|
@@ -132,11 +136,10 @@ Each release appends a record in the following shape. The skill MUST populate ev
|
|
|
132
136
|
Validate the provenance entry through `cleo check protocol`:
|
|
133
137
|
|
|
134
138
|
```bash
|
|
135
|
-
cleo check protocol \
|
|
136
|
-
--
|
|
137
|
-
--
|
|
138
|
-
--
|
|
139
|
-
--hasSbom true
|
|
139
|
+
cleo check protocol provenance \
|
|
140
|
+
--task-id T4902 \
|
|
141
|
+
--has-attestation true \
|
|
142
|
+
--has-sbom true
|
|
140
143
|
```
|
|
141
144
|
|
|
142
145
|
Exit code 0 = provenance record is complete and verified. Exit code 90 = invalid config. Exit code 91 = signing key missing. Exit code 92 = signature invalid. Exit code 93 = digest mismatch (refuse to bind attestation). Exit code 94 = attestation format or subject is invalid.
|
|
@@ -163,4 +166,4 @@ Exit code 0 = provenance record is complete and verified. Exit code 90 = invalid
|
|
|
163
166
|
5. Default to sigstore keyless signing via OIDC in CI; fall back to gpg only when configured.
|
|
164
167
|
6. Generate CycloneDX SBOMs for every artifact with runtime dependencies.
|
|
165
168
|
7. `.cleo/releases.json` is append-only; never mutate past entries.
|
|
166
|
-
8. Validate every run via `cleo check protocol
|
|
169
|
+
8. Validate every run via `cleo check protocol provenance`.
|
|
@@ -2,16 +2,20 @@
|
|
|
2
2
|
name: ct-release-orchestrator
|
|
3
3
|
description: "Orchestrates the canonical 4-verb release pipeline introduced by SPEC-T9345: cleo release plan, then cleo release open, then PR + GHA tag workflow, then cleo release reconcile. The deprecated cleo release ship monolith was deleted in T10103 — do not invoke it. Use ship-e2e-smoke to validate the full pipeline end-to-end (dry-run by default). The full verb-to-state map is in docs/release/verb-matrix.md. Use when shipping a new version, validating the release pipeline end-to-end, or promoting a completed epic to released status."
|
|
4
4
|
protocol: release
|
|
5
|
-
loomStage: release
|
|
6
5
|
adrRefs:
|
|
7
6
|
- ADR-053
|
|
8
7
|
- ADR-063
|
|
9
8
|
- ADR-065
|
|
10
9
|
metadata:
|
|
11
|
-
version: 3.0.
|
|
10
|
+
version: 3.0.2
|
|
12
11
|
tier: on-demand
|
|
13
12
|
install: harness
|
|
14
|
-
|
|
13
|
+
covers:
|
|
14
|
+
- packages/core/src/validation/protocols/cant/release.cant
|
|
15
|
+
- packages/core/src/validation/protocols/protocols-markdown/release.md
|
|
16
|
+
- packages/cleo/src/cli/commands/release.ts
|
|
17
|
+
loomStage: release
|
|
18
|
+
lastReviewed: 2026-09-28
|
|
15
19
|
stability: stable
|
|
16
20
|
---
|
|
17
21
|
|
|
@@ -32,7 +36,7 @@ Owns the canonical 4-verb release pipeline established by SPEC-T9345 and finalis
|
|
|
32
36
|
| 1 | `cleo release plan <ver> --epic <id>` | _(none)_ → `planned` | Builds the Release Plan envelope; auto-writes `CHANGELOG.md` (T10105 closes the silent-skip gap) |
|
|
33
37
|
| 2 | `cleo release open <ver>` | `planned` → `pr-opened` | Dispatches `release-prepare.yml`; the workflow cuts the branch + opens the PR |
|
|
34
38
|
| 3 | _(GHA)_ `release-prepare.yml` → PR merge | `pr-opened` → `pr-merged` | Owned by CI; verify via `cleo release pr-status <ver>` |
|
|
35
|
-
| 4 |
|
|
39
|
+
| 4 | `git tag -a v<ver> -m "Release v<ver>" && git push origin v<ver>` | `pr-merged` → `tag-pushed` | Explicit tag after the release PR merges — `auto-tag-on-release-merge.yml` is retired (T10434, ADR-087); the tag push triggers `release.yml` |
|
|
36
40
|
| 5 | `cleo release reconcile <ver>` | `tag-pushed` → `published` | Backfills 11 provenance tables; idempotent |
|
|
37
41
|
|
|
38
42
|
Optional validators (read-only / dry-run):
|
|
@@ -49,15 +53,15 @@ Optional validators (read-only / dry-run):
|
|
|
49
53
|
|----|------|-------------|
|
|
50
54
|
| RLSE-001 | Version MUST be CalVer (`YYYY.MM.patch`) per ADR-065 — never SemVer. | `cleo release plan` rejects non-CalVer; exit 53. |
|
|
51
55
|
| RLSE-002 | `CHANGELOG.md` MUST be updated before the tag — always-write is the default behaviour of `cleo release plan` (T9784 deleted the manual changelog verb). | Plan envelope refuses to advance to `pr-opened` if the changeset directory is unparseable (T10105). |
|
|
52
|
-
| RLSE-003 | All per-task evidence gates MUST be recorded via `cleo verify <task> --gate <g> --evidence …` BEFORE `cleo complete`. The legacy `cleo release verify` batch verb was deleted in T9540. | ADR-051 per-task evidence ritual. |
|
|
53
|
-
| RLSE-004 | The release MUST be tagged
|
|
56
|
+
| RLSE-003 | All per-task evidence gates MUST be recorded via `cleo verify <task> --gate <g> --evidence …` BEFORE `cleo complete`. The legacy `cleo release verify` batch verb was deleted in T9540. | ADR-051 per-task evidence ritual. | <!-- cleo-cmd: negative-example: release verify -->
|
|
57
|
+
| RLSE-004 | The release MUST be tagged explicitly (`git tag -a v<ver>` + `git push origin v<ver>`) after the release PR merges. | Auto-tag was retired in T10434 / ADR-087: `GITHUB_TOKEN` tag pushes did not reliably trigger `release.yml`. |
|
|
54
58
|
| RLSE-005 | Direct pushes to `main` are prohibited. Every release ships via a PR cut by `release-prepare.yml`. | ADR-065 + branch protection (see `docs/release/branch-protection-setup.md`). |
|
|
55
59
|
| RLSE-006 | Version MUST be consistent across all workspace targets resolved by `resolveVersionBumpTargets` (root package.json + every workspace package + Cargo workspace). | Version-bump preflight in `release-prepare.yml`. |
|
|
56
60
|
| RLSE-007 | Provenance reconcile MUST run within the release-publish workflow — never as a manual followup. | Invoked by `release-publish.yml`. |
|
|
57
61
|
|
|
58
62
|
## Integration
|
|
59
63
|
|
|
60
|
-
Use the explicit
|
|
64
|
+
Use the explicit verbs. **Do not** invoke `cleo release ship` — it was deleted in T10103. <!-- cleo-cmd: negative-example: release ship -->
|
|
61
65
|
|
|
62
66
|
```bash
|
|
63
67
|
# 1. Plan — build the canonical Release Plan envelope.
|
|
@@ -69,7 +73,11 @@ cleo release open v2026.6.0
|
|
|
69
73
|
# 3. (Optional) Poll PR + CI status while the workflow runs.
|
|
70
74
|
cleo release pr-status v2026.6.0
|
|
71
75
|
|
|
72
|
-
# 4.
|
|
76
|
+
# 4. After the release PR merges, tag explicitly (auto-tag is retired).
|
|
77
|
+
git tag -a v2026.6.0 -m "Release v2026.6.0"
|
|
78
|
+
git push origin v2026.6.0
|
|
79
|
+
|
|
80
|
+
# 5. Reconcile — runs automatically inside release-publish.yml.
|
|
73
81
|
# Run manually only if backfilling a historical release.
|
|
74
82
|
cleo release reconcile v2026.6.0
|
|
75
83
|
```
|
|
@@ -90,7 +98,7 @@ Exit codes (canonical):
|
|
|
90
98
|
- `0` — success.
|
|
91
99
|
- `53` — version validation failed (e.g. not CalVer).
|
|
92
100
|
- `54` — release-prepare workflow gate failed.
|
|
93
|
-
- `56` — tag creation failed
|
|
101
|
+
- `56` — tag creation failed.
|
|
94
102
|
- `82` — `E_PLAN_NOT_FOUND` (plan envelope missing for the requested version).
|
|
95
103
|
- `83` — `E_IVTR_INCOMPLETE` (per-task IVTR loops not released).
|
|
96
104
|
- `88` — artifact publish failed.
|
|
@@ -99,9 +107,9 @@ Exit codes (canonical):
|
|
|
99
107
|
|
|
100
108
|
| Pattern | Problem | Solution |
|
|
101
109
|
|---------|---------|----------|
|
|
102
|
-
| Running `cleo release ship` | The verb was deleted in T10103 — the command will exit with `Unknown command`. | Use `cleo release plan` + `cleo release open`. |
|
|
110
|
+
| Running `cleo release ship` | The verb was deleted in T10103 — the command will exit with `Unknown command`. | Use `cleo release plan` + `cleo release open`. | <!-- cleo-cmd: negative-example: release ship -->
|
|
103
111
|
| Manually invoking `gh workflow run release-prepare.yml` | Bypasses the plan envelope; `releases.status` stays at `planned`. | Always go through `cleo release open <ver>` — it tracks state in the `releases` table. |
|
|
104
|
-
|
|
|
112
|
+
| Tagging before the release PR merges, or `git push --tags` | Tags an unmerged commit, or pushes every local tag. | Tag the merged release commit and push that one tag: `git push origin v<ver>`. |
|
|
105
113
|
| Hand-editing `CHANGELOG.md` for the new version | Drift between the changeset directory and the changelog. | `cleo release plan` always auto-writes the section (T10105). Use `cleo changeset add` to author entries. |
|
|
106
114
|
| Pasting one verb into another's workflow file | Multi-step orchestration belongs in `ship-e2e-smoke`. | Use `cleo release ship-e2e-smoke … --execute` for end-to-end validation. |
|
|
107
115
|
| Running the pipeline on a dirty worktree | Release commit scoops up unrelated changes. | The clean-tree gate refuses to advance. |
|
|
@@ -110,10 +118,10 @@ Exit codes (canonical):
|
|
|
110
118
|
## Critical Rules Summary
|
|
111
119
|
|
|
112
120
|
1. The 4-verb pipeline — `plan`, `open`, `reconcile`, `rollback` — is the ONLY way to ship.
|
|
113
|
-
2. The deprecated `cleo release ship` shim was DELETED in T10103. Do not invoke it.
|
|
121
|
+
2. The deprecated `cleo release ship` shim was DELETED in T10103. Do not invoke it. <!-- cleo-cmd: negative-example: release ship -->
|
|
114
122
|
3. CalVer (`YYYY.MM.patch`) is the only valid version scheme.
|
|
115
123
|
4. `cleo release plan` always writes the CHANGELOG section unless `--no-changelog`.
|
|
116
|
-
5. The tag is created
|
|
124
|
+
5. The tag is created explicitly after the release PR merges; `auto-tag-on-release-merge.yml` is retired (T10434, ADR-087).
|
|
117
125
|
6. Provenance reconcile is invoked by `release-publish.yml`, not manually (unless backfilling).
|
|
118
126
|
7. Per-task evidence gates use `cleo verify --gate --evidence` per ADR-051 — not the deleted batch verb.
|
|
119
127
|
8. Use `cleo release ship-e2e-smoke` to validate the full pipeline before a real ship.
|
|
@@ -31,7 +31,7 @@ release → artifact-publish → provenance
|
|
|
31
31
|
| 93 | provenance | `E_DIGEST_MISMATCH` |
|
|
32
32
|
| 94 | provenance | `E_ATTESTATION_INVALID` |
|
|
33
33
|
|
|
34
|
-
The parent MUST NOT remap sub-protocol exit codes. A caller reading `cleo release
|
|
34
|
+
The parent MUST NOT remap sub-protocol exit codes. A caller reading `cleo release open` / `cleo release pr-status` output needs to know exactly which step failed.
|
|
35
35
|
|
|
36
36
|
## Rollback Semantics
|
|
37
37
|
|
|
@@ -18,8 +18,11 @@ No package is produced. Used for docs, spec updates, and internal code changes t
|
|
|
18
18
|
### Commands
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
cleo release
|
|
22
|
-
cleo
|
|
21
|
+
cleo release plan v2026.4.5 --epic T####
|
|
22
|
+
cleo release open v2026.4.5
|
|
23
|
+
# after the release PR merges:
|
|
24
|
+
git tag -a v2026.4.5 -m "Release v2026.4.5" && git push origin v2026.4.5
|
|
25
|
+
cleo check protocol release --version v2026.4.5 --has-changelog true
|
|
23
26
|
```
|
|
24
27
|
|
|
25
28
|
## npm-Package Release
|
|
@@ -38,11 +41,14 @@ Publishes one or more npm packages from the monorepo. Uses `npm publish --proven
|
|
|
38
41
|
### Commands
|
|
39
42
|
|
|
40
43
|
```bash
|
|
41
|
-
cleo release
|
|
44
|
+
cleo release plan v2026.4.5 --epic T####
|
|
45
|
+
cleo release open v2026.4.5
|
|
46
|
+
# after the release PR merges:
|
|
47
|
+
git tag -a v2026.4.5 -m "Release v2026.4.5" && git push origin v2026.4.5
|
|
42
48
|
# CI handles the publish + attestation; the skill records the result.
|
|
43
|
-
cleo check protocol
|
|
44
|
-
cleo check protocol
|
|
45
|
-
cleo check protocol
|
|
49
|
+
cleo check protocol release --version v2026.4.5 --has-changelog true
|
|
50
|
+
cleo check protocol artifact-publish --artifact-type npm-package --build-passed true
|
|
51
|
+
cleo check protocol provenance --has-attestation true --has-sbom true
|
|
46
52
|
```
|
|
47
53
|
|
|
48
54
|
## docker-image Release
|
|
@@ -61,10 +67,13 @@ Builds and pushes a container image to GHCR or another OCI registry, signs with
|
|
|
61
67
|
### Commands
|
|
62
68
|
|
|
63
69
|
```bash
|
|
64
|
-
cleo release
|
|
70
|
+
cleo release plan v2026.4.5 --epic T####
|
|
71
|
+
cleo release open v2026.4.5
|
|
72
|
+
# after the release PR merges:
|
|
73
|
+
git tag -a v2026.4.5 -m "Release v2026.4.5" && git push origin v2026.4.5
|
|
65
74
|
# CI runs: docker build → cosign sign → cosign attest → syft sbom → push
|
|
66
|
-
cleo check protocol
|
|
67
|
-
cleo check protocol
|
|
75
|
+
cleo check protocol artifact-publish --artifact-type docker-image --build-passed true
|
|
76
|
+
cleo check protocol provenance --has-attestation true --has-sbom true
|
|
68
77
|
```
|
|
69
78
|
|
|
70
79
|
## cargo-crate Release
|
|
@@ -82,9 +91,12 @@ Publishes one or more crates from the Rust workspace to crates.io.
|
|
|
82
91
|
### Commands
|
|
83
92
|
|
|
84
93
|
```bash
|
|
85
|
-
cleo release
|
|
94
|
+
cleo release plan v2026.4.5 --epic T####
|
|
95
|
+
cleo release open v2026.4.5
|
|
96
|
+
# after the release PR merges:
|
|
97
|
+
git tag -a v2026.4.5 -m "Release v2026.4.5" && git push origin v2026.4.5
|
|
86
98
|
# CI runs: cargo test → cargo publish --dry-run → cargo publish
|
|
87
|
-
cleo check protocol
|
|
99
|
+
cleo check protocol artifact-publish --artifact-type cargo-crate --build-passed true
|
|
88
100
|
```
|
|
89
101
|
|
|
90
102
|
## github-tarball Release
|
|
@@ -101,9 +113,12 @@ Creates a source tarball and attaches it to a GitHub Release. Optional cosign si
|
|
|
101
113
|
### Commands
|
|
102
114
|
|
|
103
115
|
```bash
|
|
104
|
-
cleo release
|
|
116
|
+
cleo release plan v2026.4.5 --epic T####
|
|
117
|
+
cleo release open v2026.4.5
|
|
118
|
+
# after the release PR merges:
|
|
119
|
+
git tag -a v2026.4.5 -m "Release v2026.4.5" && git push origin v2026.4.5
|
|
105
120
|
# gh release create runs in CI with the tarball attached
|
|
106
|
-
cleo check protocol
|
|
121
|
+
cleo check protocol artifact-publish --artifact-type github-release --build-passed true
|
|
107
122
|
```
|
|
108
123
|
|
|
109
124
|
## Multi-Artifact Release
|
|
@@ -120,9 +135,12 @@ A release with more than one artifact type — typical for a major version that
|
|
|
120
135
|
### Commands
|
|
121
136
|
|
|
122
137
|
```bash
|
|
123
|
-
cleo release
|
|
138
|
+
cleo release plan v2026.4.5 --epic T####
|
|
139
|
+
cleo release open v2026.4.5
|
|
140
|
+
# after the release PR merges:
|
|
141
|
+
git tag -a v2026.4.5 -m "Release v2026.4.5" && git push origin v2026.4.5
|
|
124
142
|
# CI orchestrates all publishes; skill records the unified chain
|
|
125
|
-
cleo check protocol
|
|
143
|
+
cleo check protocol release --version v2026.4.5 --has-changelog true
|
|
126
144
|
```
|
|
127
145
|
|
|
128
146
|
## Which Checklist Wins?
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ct-research-agent
|
|
3
3
|
description: Multi-source research and investigation combining web search, documentation lookup via Context7, and codebase analysis. Synthesizes findings into actionable recommendations with proper citation and task traceability. Use when conducting research, investigating best practices, gathering technical information, or analyzing existing implementations. Triggers on research tasks, investigation needs, or information discovery requests.
|
|
4
|
-
version: 2.0.
|
|
5
|
-
core: false
|
|
6
|
-
category: recommended
|
|
4
|
+
version: 2.0.4
|
|
7
5
|
protocol: research
|
|
8
|
-
loomStage: research
|
|
9
6
|
adrRefs:
|
|
10
7
|
- ADR-023
|
|
11
8
|
- ADR-070
|
|
@@ -20,9 +17,14 @@ compatibility:
|
|
|
20
17
|
- gemini-cli
|
|
21
18
|
license: MIT
|
|
22
19
|
metadata:
|
|
23
|
-
version: 2.0.
|
|
20
|
+
version: 2.0.4
|
|
24
21
|
tier: on-demand
|
|
25
22
|
install: harness
|
|
23
|
+
covers:
|
|
24
|
+
- packages/core/src/validation/protocols/cant/research.cant
|
|
25
|
+
- packages/core/src/validation/protocols/protocols-markdown/research.md
|
|
26
|
+
loomStage: research
|
|
27
|
+
lastReviewed: 2026-09-28
|
|
26
28
|
stability: stable
|
|
27
29
|
---
|
|
28
30
|
|
|
@@ -74,8 +76,8 @@ Context injection for research and investigation tasks spawned via cleo-subagent
|
|
|
74
76
|
1. Read task: `{{TASK_SHOW_CMD}} {{TASK_ID}}`
|
|
75
77
|
2. Focus already set by orchestrator (skip if working standalone, set if needed)
|
|
76
78
|
3. Conduct research (see Methodology below)
|
|
77
|
-
4.
|
|
78
|
-
5.
|
|
79
|
+
4. Record output: `cleo docs add {{TASK_ID}} --content - --type research --slug {{TOPIC_SLUG}}`
|
|
80
|
+
5. Record the manifest entry: `cleo manifest append --task {{TASK_ID}} --type research --content "<one-paragraph summary>"`
|
|
79
81
|
6. Complete task: `{{TASK_COMPLETE_CMD}} {{TASK_ID}}`
|
|
80
82
|
7. Return summary message
|
|
81
83
|
|
|
@@ -113,8 +115,8 @@ Context injection for research and investigation tasks spawned via cleo-subagent
|
|
|
113
115
|
|
|
114
116
|
### Output Requirements
|
|
115
117
|
|
|
116
|
-
1. MUST
|
|
117
|
-
2. MUST
|
|
118
|
+
1. MUST record findings with `cleo docs add {{TASK_ID}} --content - --type research --slug {{TOPIC_SLUG}}` (never a raw file under `.cleo/agent-outputs/`)
|
|
119
|
+
2. MUST record ONE manifest entry: `cleo manifest append --entry '<entry JSON>'` (the flat manifest file is retired, ADR-027)
|
|
118
120
|
3. MUST return ONLY: "Research complete. Manifest appended to pipeline_manifest."
|
|
119
121
|
4. MUST NOT return research content in response
|
|
120
122
|
|
|
@@ -122,7 +124,7 @@ Context injection for research and investigation tasks spawned via cleo-subagent
|
|
|
122
124
|
|
|
123
125
|
## Output File Format
|
|
124
126
|
|
|
125
|
-
|
|
127
|
+
Record it with `cleo docs add {{TASK_ID}} --content - --type research --slug {{TOPIC_SLUG}}`, using this body:
|
|
126
128
|
|
|
127
129
|
```markdown
|
|
128
130
|
# {{RESEARCH_TITLE}}
|
|
@@ -163,7 +165,7 @@ Write to `{{OUTPUT_DIR}}/{{DATE}}_{{TOPIC_SLUG}}.md`:
|
|
|
163
165
|
|
|
164
166
|
## Manifest Entry Format
|
|
165
167
|
|
|
166
|
-
Append ONE entry via `cleo manifest append <json
|
|
168
|
+
Append ONE entry via `cleo manifest append --entry '<json>'` (writes to pipeline_manifest table per ADR-027):
|
|
167
169
|
|
|
168
170
|
```json
|
|
169
171
|
{"id":"{{TOPIC_SLUG}}-{{DATE}}","file":"{{DATE}}_{{TOPIC_SLUG}}.md","title":"{{RESEARCH_TITLE}}","date":"{{DATE}}","status":"complete","agent_type":"research","topics":{{TOPICS_JSON}},"key_findings":["Finding 1","Finding 2","Finding 3"],"actionable":true,"needs_followup":[],"linked_tasks":["{{EPIC_ID}}","{{TASK_ID}}"]}
|
|
@@ -185,7 +187,7 @@ Append ONE entry via `cleo manifest append <json>` (writes to pipeline_manifest
|
|
|
185
187
|
- [ ] Task details read via `{{TASK_SHOW_CMD}}`
|
|
186
188
|
- [ ] Research conducted across multiple sources
|
|
187
189
|
- [ ] Findings synthesized with recommendations
|
|
188
|
-
- [ ] Output
|
|
190
|
+
- [ ] Output recorded with `cleo docs add` (slug in the return message)
|
|
189
191
|
- [ ] Manifest entry appended (single line, valid JSON)
|
|
190
192
|
- [ ] Task completed via `{{TASK_COMPLETE_CMD}}`
|
|
191
193
|
- [ ] Response is ONLY the summary message
|
|
@@ -38,12 +38,12 @@ to sibling skills that have narrower context budgets and stricter contracts.
|
|
|
38
38
|
| "write the spec for X" | `ct-spec-writer` |
|
|
39
39
|
| "validate this implementation against the spec" | `ct-validator` |
|
|
40
40
|
| "decompose this epic into tasks" | `ct-epic-architect` |
|
|
41
|
-
| "look up Next.js 15 middleware API" |
|
|
41
|
+
| "look up Next.js 15 middleware API" | the Context7 MCP (single-library fetch) |
|
|
42
42
|
| "decide between A and B" (no investigation needed) | `ct-consensus-voter` |
|
|
43
43
|
| "explain this function" | (no skill — direct read suffices) |
|
|
44
44
|
|
|
45
45
|
A useful heuristic: if the user already knows the answer and just wants it
|
|
46
|
-
written down, route to `ct-spec-writer` or `ct-
|
|
46
|
+
written down, route to `ct-spec-writer` or `ct-documentor` (`references/writing.md`). Research is for
|
|
47
47
|
when the answer is not yet known.
|
|
48
48
|
|
|
49
49
|
## Routing to Downstream Skills
|
|
@@ -68,11 +68,11 @@ Research outputs typically feed one of these next stages. The manifest
|
|
|
68
68
|
|
|
69
69
|
```
|
|
70
70
|
Is the answer already known and just needs documentation?
|
|
71
|
-
├── YES → ct-
|
|
71
|
+
├── YES → the writing guide (`ct-documentor/references/writing.md`)
|
|
72
72
|
└── NO → continue
|
|
73
73
|
│
|
|
74
74
|
Is this a single-library API question?
|
|
75
|
-
├── YES →
|
|
75
|
+
├── YES → the Context7 MCP
|
|
76
76
|
└── NO → ct-research-agent (this skill)
|
|
77
77
|
│
|
|
78
78
|
After research, do findings produce requirements?
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: ct-skill-
|
|
3
|
-
description:
|
|
2
|
+
name: ct-skill-author
|
|
3
|
+
description: Create, improve and validate CLEO skills. Use when writing a new skill or updating an existing one (structure, frontmatter, progressive disclosure, trigger descriptions, evals), and when auditing a skill folder against the CLEO standard before it ships (structural, ecosystem-fit and quality validation with an HTML report). Internal to CLEO development — not installed to harnesses.
|
|
4
4
|
license: MIT
|
|
5
5
|
metadata:
|
|
6
|
-
version:
|
|
6
|
+
version: 2.0.1
|
|
7
7
|
tier: internal
|
|
8
8
|
install: internal
|
|
9
|
-
|
|
9
|
+
lastReviewed: 2026-09-28
|
|
10
|
+
stability: stable
|
|
10
11
|
---
|
|
11
12
|
|
|
12
|
-
# Skill
|
|
13
|
+
# Skill Author
|
|
13
14
|
|
|
14
|
-
|
|
15
|
+
Guidance for creating effective skills, and the validation loop that checks them.
|
|
16
|
+
This skill merges the former ct-skill-creator and ct-skill-validator (T12649, D11157).
|
|
17
|
+
For validation, load `references/validating.md`; its scripts live in `scripts/`.
|
|
15
18
|
|
|
16
19
|
## About Skills
|
|
17
20
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
-
"skill_name": "ct-skill-
|
|
2
|
+
"skill_name": "ct-skill-author",
|
|
3
3
|
"evals": [
|
|
4
4
|
{
|
|
5
5
|
"id": 1,
|
|
6
|
-
"prompt": "Validate the ct-skill-
|
|
7
|
-
"expected_output": "A complete tier-by-tier validation report showing pass/fail/warn status for ct-skill-
|
|
6
|
+
"prompt": "Validate the ct-skill-author skill against the v2 standard and show me a full report",
|
|
7
|
+
"expected_output": "A complete tier-by-tier validation report showing pass/fail/warn status for ct-skill-author, with an HTML report opened in the browser",
|
|
8
8
|
"expectations": [
|
|
9
|
-
"Claude runs validate.py against ct-skill-
|
|
9
|
+
"Claude runs validate.py against ct-skill-author",
|
|
10
10
|
"The output shows results for all 5 tiers",
|
|
11
11
|
"Claude runs generate_validation_report.py to produce an HTML report",
|
|
12
12
|
"Claude tells the user the report path or opens it in the browser",
|
|
@@ -27,20 +27,20 @@
|
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
"id": 3,
|
|
30
|
-
"prompt": "Audit the ct-skill-
|
|
31
|
-
"expected_output": "Full self-audit of ct-skill-
|
|
30
|
+
"prompt": "Audit the ct-skill-author skill itself — run all checks and give me a full findings report",
|
|
31
|
+
"expected_output": "Full self-audit of ct-skill-author including validate gauntlet and audit_body, with HTML report",
|
|
32
32
|
"expectations": [
|
|
33
|
-
"Claude runs validate.py against ct-skill-
|
|
33
|
+
"Claude runs validate.py against ct-skill-author",
|
|
34
34
|
"Claude runs audit_body.py for the deep body quality audit",
|
|
35
35
|
"An HTML report combining all findings is generated",
|
|
36
36
|
"Claude opens or links the HTML report for the user",
|
|
37
|
-
"The result correctly reflects ct-skill-
|
|
37
|
+
"The result correctly reflects ct-skill-author's actual compliance status"
|
|
38
38
|
]
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
"id": 4,
|
|
42
|
-
"prompt": "Run the manifest alignment check for ct-skill-
|
|
43
|
-
"expected_output": "Manifest alignment results showing whether ct-skill-
|
|
42
|
+
"prompt": "Run the manifest alignment check for ct-skill-author against the CLEO manifest",
|
|
43
|
+
"expected_output": "Manifest alignment results showing whether ct-skill-author is registered correctly in manifest.json",
|
|
44
44
|
"expectations": [
|
|
45
45
|
"Claude passes --manifest to validate.py (Tier 4 check)",
|
|
46
46
|
"The manifest.json path is correctly resolved",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
{"query": "validate my skill against v2 standard", "should_trigger": true},
|
|
3
3
|
{"query": "check if this skill folder is v2 compliant", "should_trigger": true},
|
|
4
4
|
{"query": "audit the skill structure and frontmatter", "should_trigger": true},
|
|
5
|
-
{"query": "run v2 compliance check on ct-skill-
|
|
5
|
+
{"query": "run v2 compliance check on ct-skill-author", "should_trigger": true},
|
|
6
6
|
{"query": "is my SKILL.md missing required fields", "should_trigger": true},
|
|
7
7
|
{"query": "verify skill passes all CLEO validation tiers", "should_trigger": true},
|
|
8
8
|
{"query": "prepare skill for distribution, check for issues", "should_trigger": true},
|
|
@@ -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
|
|
49
|
-
- `cleo
|
|
50
|
-
- `cleo
|
|
51
|
-
- `cleo
|
|
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-
|
|
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.
|
|
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
|
|
168
|
-
|
|
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. **
|
|
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-
|
|
178
|
+
python3 packages/skills/skills/ct-skill-author/scripts/quick_validate.py packages/skills/skills/my-new-skill
|
|
175
179
|
```
|