@cleocode/skills 2026.5.83 → 2026.5.86
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/skills/_shared/__tests__/lifecycle-protocol-reconcile.test.ts +112 -0
- package/skills/_shared/__tests__/loom-adr-links.test.ts +163 -0
- package/skills/_shared/__tests__/loom-stage-coverage.test.ts +167 -0
- package/skills/ct-adr-recorder/SKILL.md +92 -0
- package/skills/ct-adr-recorder/__tests__/skill-adr-recorder.test.ts +65 -0
- package/skills/ct-consensus-voter/SKILL.md +14 -0
- package/skills/ct-contribution/SKILL.md +80 -0
- package/skills/ct-docs-lookup/SKILL.md +116 -1
- package/skills/ct-docs-lookup/references/ctx7-workflow.md +198 -0
- package/skills/ct-docs-lookup/references/library-id-resolution.md +217 -0
- package/skills/ct-docs-lookup/references/version-specific-docs.md +220 -0
- package/skills/ct-docs-review/SKILL.md +133 -1
- package/skills/ct-docs-review/__tests__/skill-docs-review.test.ts +53 -0
- package/skills/ct-docs-review/references/inline-comment-patterns.md +268 -0
- package/skills/ct-docs-review/references/pr-review-mode.md +270 -0
- package/skills/ct-docs-review/references/style-violations.md +341 -0
- package/skills/ct-docs-write/SKILL.md +157 -1
- package/skills/ct-docs-write/__tests__/skill-docs-write.test.ts +55 -0
- package/skills/ct-docs-write/references/audience-targeting.md +305 -0
- package/skills/ct-docs-write/references/cleo-style-guide.md +234 -0
- package/skills/ct-docs-write/references/markdown-patterns.md +329 -0
- package/skills/ct-documentor/SKILL.md +11 -0
- package/skills/ct-documentor/references/anti-patterns.md +216 -0
- package/skills/ct-documentor/references/chain-orchestration.md +194 -0
- package/skills/ct-documentor/references/doc-types-and-templates.md +301 -0
- package/skills/ct-documentor/references/style-coordination.md +195 -0
- package/skills/ct-epic-architect/SKILL.md +15 -0
- package/skills/ct-ivt-looper/SKILL.md +32 -0
- package/skills/ct-release-orchestrator/SKILL.md +16 -0
- package/skills/ct-research-agent/SKILL.md +24 -0
- package/skills/ct-research-agent/references/anti-patterns.md +154 -0
- package/skills/ct-research-agent/references/citation-and-evidence.md +140 -0
- package/skills/ct-research-agent/references/source-strategy.md +116 -0
- package/skills/ct-research-agent/references/triggers-and-routing.md +93 -0
- package/skills/ct-skill-validator/SKILL.md +19 -0
- package/skills/ct-skill-validator/scripts/check_depth.py +306 -0
- package/skills/ct-spec-writer/SKILL.md +86 -1
- package/skills/ct-spec-writer/__tests__/skill-spec-writer.test.ts +60 -0
- package/skills/ct-spec-writer/references/anti-patterns.md +176 -0
- package/skills/ct-spec-writer/references/rfc2119-language.md +138 -0
- package/skills/ct-spec-writer/references/spec-templates.md +233 -0
- package/skills/ct-spec-writer/references/traceability-matrix.md +145 -0
- package/skills/ct-task-executor/SKILL.md +25 -0
- package/skills/ct-task-executor/references/acceptance-criteria-mapping.md +163 -0
- package/skills/ct-task-executor/references/anti-patterns.md +201 -0
- package/skills/ct-task-executor/references/common-failures.md +193 -0
- package/skills/ct-task-executor/references/evidence-and-gates.md +179 -0
- package/skills/ct-task-executor/references/implementation-patterns.md +160 -0
- package/skills/ct-validator/SKILL.md +44 -0
- package/skills/ct-validator/references/anti-patterns.md +194 -0
- package/skills/ct-validator/references/compliance-reports.md +199 -0
- package/skills/ct-validator/references/schema-checking.md +191 -0
- package/skills/ct-validator/references/validation-modes.md +185 -0
- package/skills/manifest.json +82 -16
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
# Validation Modes
|
|
2
|
+
|
|
3
|
+
`ct-validator` operates in four distinct modes. Each has different inputs,
|
|
4
|
+
different verification mechanics, and different report shape. The mode is
|
|
5
|
+
determined by the target type — the spawn prompt or task body MUST make
|
|
6
|
+
the mode explicit.
|
|
7
|
+
|
|
8
|
+
## Mode 1: Schema Validation
|
|
9
|
+
|
|
10
|
+
**Target.** A data instance (JSON, YAML, TOML, etc.) checked against a
|
|
11
|
+
schema (JSON Schema, Zod, drizzle/zod, ajv, JSON-LD).
|
|
12
|
+
|
|
13
|
+
**Inputs.**
|
|
14
|
+
- One or more data files (or stdin)
|
|
15
|
+
- A schema (file path or inline)
|
|
16
|
+
- Optional: schema dialect (draft-07, draft-2020-12, etc.)
|
|
17
|
+
|
|
18
|
+
**Mechanics.** Run the schema engine; collect every violation; classify
|
|
19
|
+
by JSON Path. Do not short-circuit on first failure — exhaustive
|
|
20
|
+
reporting is the whole value-add.
|
|
21
|
+
|
|
22
|
+
**Tool examples.**
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
# AJV (Node)
|
|
26
|
+
npx ajv validate -s schema.json -d data.json --spec=draft7
|
|
27
|
+
|
|
28
|
+
# Zod (Node, via project's contracts)
|
|
29
|
+
node -e "
|
|
30
|
+
import { Schema } from '@cleocode/contracts';
|
|
31
|
+
const result = Schema.safeParse(JSON.parse(input));
|
|
32
|
+
if (!result.success) console.log(JSON.stringify(result.error.format()));
|
|
33
|
+
"
|
|
34
|
+
|
|
35
|
+
# jsonschema (Python)
|
|
36
|
+
python -m jsonschema -i data.json schema.json
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**Report shape.** Each violation gets file + JSON Path + violated keyword
|
|
40
|
+
+ actual value + expected. Group by file when validating many instances.
|
|
41
|
+
|
|
42
|
+
## Mode 2: Code Compliance
|
|
43
|
+
|
|
44
|
+
**Target.** A code change (PR, diff, or working-tree state) checked
|
|
45
|
+
against project standards — lint rules, style guide, naming conventions,
|
|
46
|
+
import boundaries, type discipline.
|
|
47
|
+
|
|
48
|
+
**Inputs.**
|
|
49
|
+
- A diff (or branch comparison)
|
|
50
|
+
- The project's lint/format configs (biome.json, .eslintrc, clippy.toml)
|
|
51
|
+
- The relevant AGENTS.md / ADR rules
|
|
52
|
+
|
|
53
|
+
**Mechanics.** Run each tool; collect findings; classify by severity.
|
|
54
|
+
Aggregate the toolchain (biome + tsc + project-specific rules) into a
|
|
55
|
+
single report.
|
|
56
|
+
|
|
57
|
+
**Tool examples.**
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# Biome (lint + format in one)
|
|
61
|
+
pnpm biome check . --reporter=json
|
|
62
|
+
|
|
63
|
+
# TypeScript strict
|
|
64
|
+
pnpm exec tsc -b --pretty false
|
|
65
|
+
|
|
66
|
+
# Custom AGENTS.md rule checks
|
|
67
|
+
grep -rn "catch (err: unknown)" packages/ --include='*.ts'
|
|
68
|
+
grep -rn ": any\b" packages/ --include='*.ts'
|
|
69
|
+
|
|
70
|
+
# Package-boundary check
|
|
71
|
+
find packages -name "*.ts" -exec grep -l "../../../" {} \;
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Report shape.** Each finding gets file + line + rule + severity + fix
|
|
75
|
+
suggestion. The AGENTS.md "INSTANT REJECTION" anti-patterns get
|
|
76
|
+
`critical` severity; biome warnings get `warning` severity.
|
|
77
|
+
|
|
78
|
+
## Mode 3: Document Validation
|
|
79
|
+
|
|
80
|
+
**Target.** A markdown document (spec, ADR, agent-output, skill) checked
|
|
81
|
+
against a structural standard — required sections, frontmatter, link
|
|
82
|
+
validity, style guide.
|
|
83
|
+
|
|
84
|
+
**Inputs.**
|
|
85
|
+
- The document(s) under validation
|
|
86
|
+
- The structural standard (e.g., "every spec MUST have RFC 2119
|
|
87
|
+
boilerplate, REQ-NNN numbered requirements, and a Compliance section")
|
|
88
|
+
- The CLEO style guide (`packages/skills/skills/_shared/cleo-style-guide.md`)
|
|
89
|
+
|
|
90
|
+
**Mechanics.** Parse the document; check section presence; validate
|
|
91
|
+
links; scan for placeholder text; verify formatting.
|
|
92
|
+
|
|
93
|
+
**Tool examples.**
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
# Use the ct-skill-validator scripts as a model
|
|
97
|
+
python packages/skills/skills/ct-skill-validator/scripts/validate.py <skill-dir>
|
|
98
|
+
python packages/skills/skills/ct-skill-validator/scripts/audit_body.py <skill-dir>
|
|
99
|
+
|
|
100
|
+
# Generic markdown link check
|
|
101
|
+
markdown-link-check docs/specs/*.md
|
|
102
|
+
|
|
103
|
+
# Section presence check (ad-hoc)
|
|
104
|
+
for f in docs/specs/*.md; do
|
|
105
|
+
grep -q "^## Compliance" "$f" || echo "FAIL: $f missing Compliance"
|
|
106
|
+
grep -q "RFC 2119" "$f" || echo "FAIL: $f missing RFC 2119 boilerplate"
|
|
107
|
+
done
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Report shape.** Each finding gets file + section/line + violated rule
|
|
111
|
+
+ fix suggestion. Document-mode reports are the most useful when paired
|
|
112
|
+
with traceability — see Mode 4.
|
|
113
|
+
|
|
114
|
+
## Mode 4: Protocol Compliance
|
|
115
|
+
|
|
116
|
+
**Target.** An implementation checked against its specification — the
|
|
117
|
+
spec defines REQ-NNN, the implementation MUST satisfy each.
|
|
118
|
+
|
|
119
|
+
**Inputs.**
|
|
120
|
+
- The specification document (with traceability matrix)
|
|
121
|
+
- The implementation source
|
|
122
|
+
- The test suite (each REQ should have a verifying test)
|
|
123
|
+
|
|
124
|
+
**Mechanics.** For each REQ in the matrix, run the verifying test;
|
|
125
|
+
record pass/fail; record any REQs that lack a verifying test. Compute
|
|
126
|
+
compliance percentage.
|
|
127
|
+
|
|
128
|
+
**Tool examples.**
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
# Run the specific test for each REQ
|
|
132
|
+
pnpm vitest run --testNamePattern="REQ-001|REQ-002|REQ-003"
|
|
133
|
+
|
|
134
|
+
# Extract REQ→test map from the spec's traceability matrix
|
|
135
|
+
grep -E "^\| REQ-" docs/specs/foo-spec.md | awk -F'|' '{print $2, "->", $4}'
|
|
136
|
+
|
|
137
|
+
# Detect REQs without verification
|
|
138
|
+
grep -E "^\| REQ-.*\| \(TODO" docs/specs/foo-spec.md
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**Report shape.** Compliance percentage + per-REQ pass/fail + list of
|
|
142
|
+
unverified REQs. This is the input to release-gate decisions.
|
|
143
|
+
|
|
144
|
+
## Mode Selection Cheat Sheet
|
|
145
|
+
|
|
146
|
+
| Signal in task description | Mode |
|
|
147
|
+
|----------------------------|------|
|
|
148
|
+
| "validate this JSON against schema X" | Schema |
|
|
149
|
+
| "check the PR for style violations" | Code |
|
|
150
|
+
| "review this spec for completeness" | Document |
|
|
151
|
+
| "verify the implementation satisfies the spec" | Protocol |
|
|
152
|
+
| "audit the release pipeline against ADR-065" | Protocol |
|
|
153
|
+
| "lint the changes" | Code |
|
|
154
|
+
| "validate the LAFS envelope" | Schema |
|
|
155
|
+
| "review the agent-output for style guide compliance" | Document |
|
|
156
|
+
|
|
157
|
+
## Mode Composition
|
|
158
|
+
|
|
159
|
+
A single task may chain modes. Example: "validate the new release-plan
|
|
160
|
+
implementation."
|
|
161
|
+
|
|
162
|
+
1. Mode 3 (Document) — does `docs/specs/release-plan-spec.md` have
|
|
163
|
+
RFC 2119 boilerplate, numbered REQs, traceability matrix, compliance
|
|
164
|
+
section?
|
|
165
|
+
2. Mode 4 (Protocol) — does the implementation pass each REQ's test?
|
|
166
|
+
3. Mode 2 (Code) — does the implementation's diff pass lint + typecheck?
|
|
167
|
+
4. Mode 1 (Schema) — do the LAFS envelopes the new code emits validate
|
|
168
|
+
against the contract schema?
|
|
169
|
+
|
|
170
|
+
When composing, run the modes in this order — document → protocol →
|
|
171
|
+
code → schema. Each later mode assumes the earlier modes have passed,
|
|
172
|
+
so they bail early on irrelevant failures.
|
|
173
|
+
|
|
174
|
+
## Output Per Mode
|
|
175
|
+
|
|
176
|
+
| Mode | Status fields | Key metric |
|
|
177
|
+
|------|---------------|------------|
|
|
178
|
+
| Schema | `status: PASS|FAIL`, `violations: [...]` | violation count |
|
|
179
|
+
| Code | `status: PASS|FAIL`, `findings: [...]` | finding count by severity |
|
|
180
|
+
| Document | `status: PASS|FAIL`, `sections_missing: [...]` | missing-section count |
|
|
181
|
+
| Protocol | `status: PASS|PARTIAL|FAIL`, `compliance: X%`, `unverified: [...]` | compliance percentage |
|
|
182
|
+
|
|
183
|
+
All modes share the canonical report scaffold in SKILL.md — `## Summary`,
|
|
184
|
+
`## Checklist Results`, `## Issues Found`, `## Remediation`. Only the
|
|
185
|
+
content differs.
|
package/skills/manifest.json
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://cleo-dev.com/schemas/v1/skills-manifest.schema.json",
|
|
3
3
|
"_meta": {
|
|
4
|
-
"schemaVersion": "2.
|
|
5
|
-
"lastUpdated": "2026-
|
|
4
|
+
"schemaVersion": "2.7.0",
|
|
5
|
+
"lastUpdated": "2026-05-19",
|
|
6
6
|
"totalSkills": 22,
|
|
7
|
-
"generatedFrom": "T260 — lifecycle pipeline rework: dedicated skills for ADR, IVT loop, consensus, release, artifact-publish, provenance",
|
|
8
|
-
"architectureNote": "Universal Subagent Architecture: All spawns use provider-neutral delegation with skill/protocol injection. Pipeline stages and cross-cutting protocols each have a dedicated skill — no overloading."
|
|
7
|
+
"generatedFrom": "T260 — lifecycle pipeline rework: dedicated skills for ADR, IVT loop, consensus, release, artifact-publish, provenance. T9664/T9665/T9672 (epic T9568) — adds loomStage + adrRefs fields on every LOOM-stage skill entry (underscored canonical form matching `cleo lifecycle` stage names; ADR refs point at .cleo/adrs/). T9672 reconciled dispatch_matrix.by_protocol key 'architecture-decision' → 'architecture_decision' matching the lifecycle CLI source of truth; the dashed form is retained as a keyword alias.",
|
|
8
|
+
"architectureNote": "Universal Subagent Architecture: All spawns use provider-neutral delegation with skill/protocol injection. Pipeline stages and cross-cutting protocols each have a dedicated skill — no overloading.",
|
|
9
|
+
"loomStageContract": "Each of the 10 LOOM lifecycle stages (research, consensus, architecture_decision, specification, decomposition, implementation, validation, testing, release, contribution) MUST have a bound skill whose manifest entry declares loomStage matching the lifecycle CLI stage name. The legacy `protocol` field is retained as an alias; dispatch_matrix.by_protocol is the authoritative routing table. See docs/skills/loom-coverage-matrix.md.",
|
|
10
|
+
"adrRefsContract": "Each LOOM-stage skill MUST declare an adrRefs[] array naming the ADR file(s) that govern the stage. Every referenced ADR-NNN MUST resolve to a file under .cleo/adrs/. The Vitest gate at packages/skills/skills/_shared/__tests__/loom-adr-links.test.ts enforces both conditions."
|
|
9
11
|
},
|
|
10
12
|
"dispatch_matrix": {
|
|
11
13
|
"_comment": "Maps task types/keywords to skill NAMES. Provider adapter decides HOW to execute.",
|
|
@@ -33,7 +35,7 @@
|
|
|
33
35
|
"spec|rfc|protocol|contract": "ct-spec-writer",
|
|
34
36
|
"validate|verify|audit|compliance": "ct-validator",
|
|
35
37
|
"consensus|vote|verdict|resolve the debate": "ct-consensus-voter",
|
|
36
|
-
"adr|architecture decision|formalize|lock in the choice": "ct-adr-recorder",
|
|
38
|
+
"adr|architecture decision|architecture-decision|formalize|lock in the choice": "ct-adr-recorder",
|
|
37
39
|
"release|version|ship|changelog|cut release": "ct-release-orchestrator",
|
|
38
40
|
"artifact|publish|registry|npm publish|docker push": "ct-artifact-publisher",
|
|
39
41
|
"provenance|attestation|sbom|sigstore|slsa": "ct-provenance-keeper"
|
|
@@ -41,7 +43,7 @@
|
|
|
41
43
|
"by_protocol": {
|
|
42
44
|
"research": "ct-research-agent",
|
|
43
45
|
"consensus": "ct-consensus-voter",
|
|
44
|
-
"
|
|
46
|
+
"architecture_decision": "ct-adr-recorder",
|
|
45
47
|
"specification": "ct-spec-writer",
|
|
46
48
|
"decomposition": "ct-epic-architect",
|
|
47
49
|
"implementation": "ct-task-executor",
|
|
@@ -120,7 +122,16 @@
|
|
|
120
122
|
"status": "active",
|
|
121
123
|
"tier": 0,
|
|
122
124
|
"token_budget": 8000,
|
|
123
|
-
"
|
|
125
|
+
"protocol": "implementation",
|
|
126
|
+
"loomStage": "implementation",
|
|
127
|
+
"adrRefs": ["ADR-070", "ADR-062"],
|
|
128
|
+
"references": [
|
|
129
|
+
"skills/ct-task-executor/references/implementation-patterns.md",
|
|
130
|
+
"skills/ct-task-executor/references/acceptance-criteria-mapping.md",
|
|
131
|
+
"skills/ct-task-executor/references/evidence-and-gates.md",
|
|
132
|
+
"skills/ct-task-executor/references/common-failures.md",
|
|
133
|
+
"skills/ct-task-executor/references/anti-patterns.md"
|
|
134
|
+
],
|
|
124
135
|
"capabilities": {
|
|
125
136
|
"inputs": ["TASK_ID", "TASK_NAME", "TASK_INSTRUCTIONS", "DELIVERABLES_LIST", "ACCEPTANCE_CRITERIA"],
|
|
126
137
|
"outputs": ["deliverables", "manifest-entry"],
|
|
@@ -148,6 +159,9 @@
|
|
|
148
159
|
"status": "active",
|
|
149
160
|
"tier": 1,
|
|
150
161
|
"token_budget": 8000,
|
|
162
|
+
"protocol": "decomposition",
|
|
163
|
+
"loomStage": "decomposition",
|
|
164
|
+
"adrRefs": ["ADR-066", "ADR-073"],
|
|
151
165
|
"references": ["skills/ct-epic-architect/references/bug-epic-example.md", "skills/ct-epic-architect/references/commands.md", "skills/ct-epic-architect/references/feature-epic-example.md"],
|
|
152
166
|
"capabilities": {
|
|
153
167
|
"inputs": ["TASK_ID", "FEATURE_NAME", "EPIC_ID", "SESSION_ID"],
|
|
@@ -176,7 +190,15 @@
|
|
|
176
190
|
"status": "active",
|
|
177
191
|
"tier": 1,
|
|
178
192
|
"token_budget": 8000,
|
|
179
|
-
"
|
|
193
|
+
"protocol": "research",
|
|
194
|
+
"loomStage": "research",
|
|
195
|
+
"adrRefs": ["ADR-023", "ADR-070"],
|
|
196
|
+
"references": [
|
|
197
|
+
"skills/ct-research-agent/references/triggers-and-routing.md",
|
|
198
|
+
"skills/ct-research-agent/references/source-strategy.md",
|
|
199
|
+
"skills/ct-research-agent/references/citation-and-evidence.md",
|
|
200
|
+
"skills/ct-research-agent/references/anti-patterns.md"
|
|
201
|
+
],
|
|
180
202
|
"capabilities": {
|
|
181
203
|
"inputs": ["TASK_ID", "TOPIC", "RESEARCH_QUESTIONS"],
|
|
182
204
|
"outputs": ["research-file", "manifest-entry"],
|
|
@@ -204,7 +226,15 @@
|
|
|
204
226
|
"status": "active",
|
|
205
227
|
"tier": 1,
|
|
206
228
|
"token_budget": 8000,
|
|
207
|
-
"
|
|
229
|
+
"protocol": "specification",
|
|
230
|
+
"loomStage": "specification",
|
|
231
|
+
"adrRefs": ["ADR-014", "ADR-023"],
|
|
232
|
+
"references": [
|
|
233
|
+
"skills/ct-spec-writer/references/rfc2119-language.md",
|
|
234
|
+
"skills/ct-spec-writer/references/spec-templates.md",
|
|
235
|
+
"skills/ct-spec-writer/references/traceability-matrix.md",
|
|
236
|
+
"skills/ct-spec-writer/references/anti-patterns.md"
|
|
237
|
+
],
|
|
208
238
|
"capabilities": {
|
|
209
239
|
"inputs": ["TASK_ID", "SPEC_NAME", "spec_topic"],
|
|
210
240
|
"outputs": ["specification-file", "manifest-entry"],
|
|
@@ -232,14 +262,22 @@
|
|
|
232
262
|
"status": "active",
|
|
233
263
|
"tier": 1,
|
|
234
264
|
"token_budget": 6000,
|
|
235
|
-
"
|
|
265
|
+
"protocol": "validation",
|
|
266
|
+
"loomStage": "validation",
|
|
267
|
+
"adrRefs": ["ADR-051", "ADR-023"],
|
|
268
|
+
"references": [
|
|
269
|
+
"skills/ct-validator/references/validation-modes.md",
|
|
270
|
+
"skills/ct-validator/references/schema-checking.md",
|
|
271
|
+
"skills/ct-validator/references/compliance-reports.md",
|
|
272
|
+
"skills/ct-validator/references/anti-patterns.md"
|
|
273
|
+
],
|
|
236
274
|
"capabilities": {
|
|
237
275
|
"inputs": ["TASK_ID", "VALIDATION_TARGET", "VALIDATION_CRITERIA"],
|
|
238
276
|
"outputs": ["validation-report", "manifest-entry"],
|
|
239
277
|
"dependencies": [],
|
|
240
278
|
"dispatch_triggers": ["validate", "verify", "check compliance", "audit"],
|
|
241
279
|
"compatible_subagent_types": ["general-purpose"],
|
|
242
|
-
"chains_to": [],
|
|
280
|
+
"chains_to": ["ct-ivt-looper"],
|
|
243
281
|
"dispatch_keywords": {
|
|
244
282
|
"primary": ["validate", "verify", "audit", "compliance"],
|
|
245
283
|
"secondary": ["check", "conformance", "standards", "requirements"]
|
|
@@ -288,7 +326,12 @@
|
|
|
288
326
|
"status": "active",
|
|
289
327
|
"tier": 2,
|
|
290
328
|
"token_budget": 8000,
|
|
291
|
-
"references": [
|
|
329
|
+
"references": [
|
|
330
|
+
"skills/ct-documentor/references/chain-orchestration.md",
|
|
331
|
+
"skills/ct-documentor/references/doc-types-and-templates.md",
|
|
332
|
+
"skills/ct-documentor/references/style-coordination.md",
|
|
333
|
+
"skills/ct-documentor/references/anti-patterns.md"
|
|
334
|
+
],
|
|
292
335
|
"capabilities": {
|
|
293
336
|
"inputs": ["TASK_ID", "documentation_topic"],
|
|
294
337
|
"outputs": ["documentation-file", "manifest-entry", "review-report"],
|
|
@@ -316,7 +359,11 @@
|
|
|
316
359
|
"status": "active",
|
|
317
360
|
"tier": 2,
|
|
318
361
|
"token_budget": 6000,
|
|
319
|
-
"references": [
|
|
362
|
+
"references": [
|
|
363
|
+
"skills/ct-docs-lookup/references/ctx7-workflow.md",
|
|
364
|
+
"skills/ct-docs-lookup/references/library-id-resolution.md",
|
|
365
|
+
"skills/ct-docs-lookup/references/version-specific-docs.md"
|
|
366
|
+
],
|
|
320
367
|
"capabilities": {
|
|
321
368
|
"inputs": ["library_name", "query", "version"],
|
|
322
369
|
"outputs": ["documentation-content", "code-examples"],
|
|
@@ -344,7 +391,11 @@
|
|
|
344
391
|
"status": "active",
|
|
345
392
|
"tier": 2,
|
|
346
393
|
"token_budget": 6000,
|
|
347
|
-
"references": [
|
|
394
|
+
"references": [
|
|
395
|
+
"skills/ct-docs-write/references/cleo-style-guide.md",
|
|
396
|
+
"skills/ct-docs-write/references/markdown-patterns.md",
|
|
397
|
+
"skills/ct-docs-write/references/audience-targeting.md"
|
|
398
|
+
],
|
|
348
399
|
"capabilities": {
|
|
349
400
|
"inputs": ["file_path", "content_topic", "audience"],
|
|
350
401
|
"outputs": ["documentation-file", "markdown-content"],
|
|
@@ -372,7 +423,11 @@
|
|
|
372
423
|
"status": "active",
|
|
373
424
|
"tier": 2,
|
|
374
425
|
"token_budget": 6000,
|
|
375
|
-
"references": [
|
|
426
|
+
"references": [
|
|
427
|
+
"skills/ct-docs-review/references/style-violations.md",
|
|
428
|
+
"skills/ct-docs-review/references/pr-review-mode.md",
|
|
429
|
+
"skills/ct-docs-review/references/inline-comment-patterns.md"
|
|
430
|
+
],
|
|
376
431
|
"capabilities": {
|
|
377
432
|
"inputs": ["file_path", "pr_url", "diff_content"],
|
|
378
433
|
"outputs": ["review-comments", "style-violations"],
|
|
@@ -400,6 +455,9 @@
|
|
|
400
455
|
"status": "active",
|
|
401
456
|
"tier": 2,
|
|
402
457
|
"token_budget": 6000,
|
|
458
|
+
"protocol": "contribution",
|
|
459
|
+
"loomStage": "contribution",
|
|
460
|
+
"adrRefs": ["ADR-015", "ADR-053"],
|
|
403
461
|
"references": [],
|
|
404
462
|
"capabilities": {
|
|
405
463
|
"inputs": ["TASK_ID", "contribution_type", "context"],
|
|
@@ -484,7 +542,9 @@
|
|
|
484
542
|
"status": "active",
|
|
485
543
|
"tier": 2,
|
|
486
544
|
"token_budget": 8000,
|
|
487
|
-
"protocol": "
|
|
545
|
+
"protocol": "architecture_decision",
|
|
546
|
+
"loomStage": "architecture_decision",
|
|
547
|
+
"adrRefs": ["ADR-053", "ADR-070"],
|
|
488
548
|
"references": [
|
|
489
549
|
"skills/ct-adr-recorder/references/cascade.md",
|
|
490
550
|
"skills/ct-adr-recorder/references/examples.md"
|
|
@@ -523,6 +583,8 @@
|
|
|
523
583
|
"tier": 2,
|
|
524
584
|
"token_budget": 10000,
|
|
525
585
|
"protocol": "testing",
|
|
586
|
+
"loomStage": "testing",
|
|
587
|
+
"adrRefs": ["ADR-051", "ADR-061"],
|
|
526
588
|
"references": [
|
|
527
589
|
"skills/ct-ivt-looper/references/escalation.md",
|
|
528
590
|
"skills/ct-ivt-looper/references/frameworks.md",
|
|
@@ -562,6 +624,8 @@
|
|
|
562
624
|
"tier": 2,
|
|
563
625
|
"token_budget": 6000,
|
|
564
626
|
"protocol": "consensus",
|
|
627
|
+
"loomStage": "consensus",
|
|
628
|
+
"adrRefs": ["ADR-015", "ADR-023"],
|
|
565
629
|
"references": ["skills/ct-consensus-voter/references/matrix-examples.md"],
|
|
566
630
|
"capabilities": {
|
|
567
631
|
"inputs": ["task-id", "question", "candidate-options"],
|
|
@@ -597,6 +661,8 @@
|
|
|
597
661
|
"tier": 2,
|
|
598
662
|
"token_budget": 8000,
|
|
599
663
|
"protocol": "release",
|
|
664
|
+
"loomStage": "release",
|
|
665
|
+
"adrRefs": ["ADR-053", "ADR-063", "ADR-065"],
|
|
600
666
|
"references": [
|
|
601
667
|
"skills/ct-release-orchestrator/references/composition.md",
|
|
602
668
|
"skills/ct-release-orchestrator/references/release-types.md"
|