@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.
Files changed (55) hide show
  1. package/package.json +1 -1
  2. package/skills/_shared/__tests__/lifecycle-protocol-reconcile.test.ts +112 -0
  3. package/skills/_shared/__tests__/loom-adr-links.test.ts +163 -0
  4. package/skills/_shared/__tests__/loom-stage-coverage.test.ts +167 -0
  5. package/skills/ct-adr-recorder/SKILL.md +92 -0
  6. package/skills/ct-adr-recorder/__tests__/skill-adr-recorder.test.ts +65 -0
  7. package/skills/ct-consensus-voter/SKILL.md +14 -0
  8. package/skills/ct-contribution/SKILL.md +80 -0
  9. package/skills/ct-docs-lookup/SKILL.md +116 -1
  10. package/skills/ct-docs-lookup/references/ctx7-workflow.md +198 -0
  11. package/skills/ct-docs-lookup/references/library-id-resolution.md +217 -0
  12. package/skills/ct-docs-lookup/references/version-specific-docs.md +220 -0
  13. package/skills/ct-docs-review/SKILL.md +133 -1
  14. package/skills/ct-docs-review/__tests__/skill-docs-review.test.ts +53 -0
  15. package/skills/ct-docs-review/references/inline-comment-patterns.md +268 -0
  16. package/skills/ct-docs-review/references/pr-review-mode.md +270 -0
  17. package/skills/ct-docs-review/references/style-violations.md +341 -0
  18. package/skills/ct-docs-write/SKILL.md +157 -1
  19. package/skills/ct-docs-write/__tests__/skill-docs-write.test.ts +55 -0
  20. package/skills/ct-docs-write/references/audience-targeting.md +305 -0
  21. package/skills/ct-docs-write/references/cleo-style-guide.md +234 -0
  22. package/skills/ct-docs-write/references/markdown-patterns.md +329 -0
  23. package/skills/ct-documentor/SKILL.md +11 -0
  24. package/skills/ct-documentor/references/anti-patterns.md +216 -0
  25. package/skills/ct-documentor/references/chain-orchestration.md +194 -0
  26. package/skills/ct-documentor/references/doc-types-and-templates.md +301 -0
  27. package/skills/ct-documentor/references/style-coordination.md +195 -0
  28. package/skills/ct-epic-architect/SKILL.md +15 -0
  29. package/skills/ct-ivt-looper/SKILL.md +32 -0
  30. package/skills/ct-release-orchestrator/SKILL.md +16 -0
  31. package/skills/ct-research-agent/SKILL.md +24 -0
  32. package/skills/ct-research-agent/references/anti-patterns.md +154 -0
  33. package/skills/ct-research-agent/references/citation-and-evidence.md +140 -0
  34. package/skills/ct-research-agent/references/source-strategy.md +116 -0
  35. package/skills/ct-research-agent/references/triggers-and-routing.md +93 -0
  36. package/skills/ct-skill-validator/SKILL.md +19 -0
  37. package/skills/ct-skill-validator/scripts/check_depth.py +306 -0
  38. package/skills/ct-spec-writer/SKILL.md +86 -1
  39. package/skills/ct-spec-writer/__tests__/skill-spec-writer.test.ts +60 -0
  40. package/skills/ct-spec-writer/references/anti-patterns.md +176 -0
  41. package/skills/ct-spec-writer/references/rfc2119-language.md +138 -0
  42. package/skills/ct-spec-writer/references/spec-templates.md +233 -0
  43. package/skills/ct-spec-writer/references/traceability-matrix.md +145 -0
  44. package/skills/ct-task-executor/SKILL.md +25 -0
  45. package/skills/ct-task-executor/references/acceptance-criteria-mapping.md +163 -0
  46. package/skills/ct-task-executor/references/anti-patterns.md +201 -0
  47. package/skills/ct-task-executor/references/common-failures.md +193 -0
  48. package/skills/ct-task-executor/references/evidence-and-gates.md +179 -0
  49. package/skills/ct-task-executor/references/implementation-patterns.md +160 -0
  50. package/skills/ct-validator/SKILL.md +44 -0
  51. package/skills/ct-validator/references/anti-patterns.md +194 -0
  52. package/skills/ct-validator/references/compliance-reports.md +199 -0
  53. package/skills/ct-validator/references/schema-checking.md +191 -0
  54. package/skills/ct-validator/references/validation-modes.md +185 -0
  55. 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.
@@ -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.4.0",
5
- "lastUpdated": "2026-04-07",
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
- "architecture-decision": "ct-adr-recorder",
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
- "references": [],
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
- "references": [],
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
- "references": [],
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
- "references": [],
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": "architecture-decision",
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"