@cleocode/skills 2.0.0

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 (171) hide show
  1. package/dispatch-config.json +404 -0
  2. package/index.d.ts +178 -0
  3. package/index.js +405 -0
  4. package/package.json +14 -0
  5. package/profiles/core.json +7 -0
  6. package/profiles/full.json +10 -0
  7. package/profiles/minimal.json +7 -0
  8. package/profiles/recommended.json +7 -0
  9. package/provider-skills-map.json +97 -0
  10. package/skills/_shared/cleo-style-guide.md +84 -0
  11. package/skills/_shared/manifest-operations.md +810 -0
  12. package/skills/_shared/placeholders.json +433 -0
  13. package/skills/_shared/skill-chaining-patterns.md +237 -0
  14. package/skills/_shared/subagent-protocol-base.md +223 -0
  15. package/skills/_shared/task-system-integration.md +232 -0
  16. package/skills/_shared/testing-framework-config.md +110 -0
  17. package/skills/ct-cleo/SKILL.md +490 -0
  18. package/skills/ct-cleo/references/anti-patterns.md +19 -0
  19. package/skills/ct-cleo/references/loom-lifecycle.md +136 -0
  20. package/skills/ct-cleo/references/orchestrator-constraints.md +55 -0
  21. package/skills/ct-cleo/references/session-protocol.md +162 -0
  22. package/skills/ct-codebase-mapper/SKILL.md +82 -0
  23. package/skills/ct-contribution/SKILL.md +521 -0
  24. package/skills/ct-contribution/templates/contribution-init.json +21 -0
  25. package/skills/ct-dev-workflow/SKILL.md +423 -0
  26. package/skills/ct-docs-lookup/SKILL.md +66 -0
  27. package/skills/ct-docs-review/SKILL.md +175 -0
  28. package/skills/ct-docs-write/SKILL.md +108 -0
  29. package/skills/ct-documentor/SKILL.md +231 -0
  30. package/skills/ct-epic-architect/SKILL.md +305 -0
  31. package/skills/ct-epic-architect/references/bug-epic-example.md +172 -0
  32. package/skills/ct-epic-architect/references/commands.md +201 -0
  33. package/skills/ct-epic-architect/references/feature-epic-example.md +210 -0
  34. package/skills/ct-epic-architect/references/migration-epic-example.md +244 -0
  35. package/skills/ct-epic-architect/references/output-format.md +92 -0
  36. package/skills/ct-epic-architect/references/patterns.md +284 -0
  37. package/skills/ct-epic-architect/references/refactor-epic-example.md +412 -0
  38. package/skills/ct-epic-architect/references/research-epic-example.md +226 -0
  39. package/skills/ct-epic-architect/references/shell-escaping.md +86 -0
  40. package/skills/ct-epic-architect/references/skill-aware-execution.md +195 -0
  41. package/skills/ct-grade/SKILL.md +230 -0
  42. package/skills/ct-grade/agents/analysis-reporter.md +203 -0
  43. package/skills/ct-grade/agents/blind-comparator.md +157 -0
  44. package/skills/ct-grade/agents/scenario-runner.md +134 -0
  45. package/skills/ct-grade/eval-viewer/__pycache__/generate_grade_review.cpython-314.pyc +0 -0
  46. package/skills/ct-grade/eval-viewer/generate_grade_review.py +1138 -0
  47. package/skills/ct-grade/eval-viewer/generate_grade_viewer.py +544 -0
  48. package/skills/ct-grade/eval-viewer/generate_review.py +283 -0
  49. package/skills/ct-grade/eval-viewer/grade-review.html +1574 -0
  50. package/skills/ct-grade/eval-viewer/viewer.html +219 -0
  51. package/skills/ct-grade/evals/evals.json +94 -0
  52. package/skills/ct-grade/references/ab-test-methodology.md +150 -0
  53. package/skills/ct-grade/references/domains.md +137 -0
  54. package/skills/ct-grade/references/grade-spec.md +236 -0
  55. package/skills/ct-grade/references/scenario-playbook.md +234 -0
  56. package/skills/ct-grade/references/token-tracking.md +120 -0
  57. package/skills/ct-grade/scripts/__pycache__/audit_analyzer.cpython-314.pyc +0 -0
  58. package/skills/ct-grade/scripts/__pycache__/run_ab_test.cpython-314.pyc +0 -0
  59. package/skills/ct-grade/scripts/__pycache__/run_all.cpython-314.pyc +0 -0
  60. package/skills/ct-grade/scripts/__pycache__/token_tracker.cpython-314.pyc +0 -0
  61. package/skills/ct-grade/scripts/audit_analyzer.py +279 -0
  62. package/skills/ct-grade/scripts/generate_report.py +283 -0
  63. package/skills/ct-grade/scripts/run_ab_test.py +504 -0
  64. package/skills/ct-grade/scripts/run_all.py +287 -0
  65. package/skills/ct-grade/scripts/setup_run.py +183 -0
  66. package/skills/ct-grade/scripts/token_tracker.py +630 -0
  67. package/skills/ct-grade-v2-1/SKILL.md +237 -0
  68. package/skills/ct-grade-v2-1/agents/analysis-reporter.md +203 -0
  69. package/skills/ct-grade-v2-1/agents/blind-comparator.md +157 -0
  70. package/skills/ct-grade-v2-1/agents/scenario-runner.md +179 -0
  71. package/skills/ct-grade-v2-1/evals/evals.json +74 -0
  72. package/skills/ct-grade-v2-1/grade-viewer/__pycache__/build_op_stats.cpython-314.pyc +0 -0
  73. package/skills/ct-grade-v2-1/grade-viewer/__pycache__/generate_grade_review.cpython-314.pyc +0 -0
  74. package/skills/ct-grade-v2-1/grade-viewer/build_op_stats.py +174 -0
  75. package/skills/ct-grade-v2-1/grade-viewer/eval-analysis.json +41 -0
  76. package/skills/ct-grade-v2-1/grade-viewer/eval-report.md +34 -0
  77. package/skills/ct-grade-v2-1/grade-viewer/generate_grade_review.py +1023 -0
  78. package/skills/ct-grade-v2-1/grade-viewer/generate_grade_viewer.py +548 -0
  79. package/skills/ct-grade-v2-1/grade-viewer/grade-review-eval.html +613 -0
  80. package/skills/ct-grade-v2-1/grade-viewer/grade-review.html +1532 -0
  81. package/skills/ct-grade-v2-1/grade-viewer/viewer.html +620 -0
  82. package/skills/ct-grade-v2-1/manifest-entry.json +31 -0
  83. package/skills/ct-grade-v2-1/references/ab-testing.md +233 -0
  84. package/skills/ct-grade-v2-1/references/domains-ssot.md +156 -0
  85. package/skills/ct-grade-v2-1/references/grade-spec-v2.md +167 -0
  86. package/skills/ct-grade-v2-1/references/playbook-v2.md +393 -0
  87. package/skills/ct-grade-v2-1/references/token-tracking.md +202 -0
  88. package/skills/ct-grade-v2-1/scripts/generate_report.py +419 -0
  89. package/skills/ct-grade-v2-1/scripts/run_ab_test.py +493 -0
  90. package/skills/ct-grade-v2-1/scripts/run_scenario.py +396 -0
  91. package/skills/ct-grade-v2-1/scripts/setup_run.py +207 -0
  92. package/skills/ct-grade-v2-1/scripts/token_tracker.py +175 -0
  93. package/skills/ct-memory/SKILL.md +84 -0
  94. package/skills/ct-orchestrator/INSTALL.md +61 -0
  95. package/skills/ct-orchestrator/README.md +69 -0
  96. package/skills/ct-orchestrator/SKILL.md +380 -0
  97. package/skills/ct-orchestrator/manifest-entry.json +19 -0
  98. package/skills/ct-orchestrator/orchestrator-prompt.txt +17 -0
  99. package/skills/ct-orchestrator/references/SUBAGENT-PROTOCOL-BLOCK.md +66 -0
  100. package/skills/ct-orchestrator/references/autonomous-operation.md +167 -0
  101. package/skills/ct-orchestrator/references/lifecycle-gates.md +98 -0
  102. package/skills/ct-orchestrator/references/orchestrator-compliance.md +271 -0
  103. package/skills/ct-orchestrator/references/orchestrator-handoffs.md +85 -0
  104. package/skills/ct-orchestrator/references/orchestrator-patterns.md +164 -0
  105. package/skills/ct-orchestrator/references/orchestrator-recovery.md +113 -0
  106. package/skills/ct-orchestrator/references/orchestrator-spawning.md +271 -0
  107. package/skills/ct-orchestrator/references/orchestrator-tokens.md +180 -0
  108. package/skills/ct-research-agent/SKILL.md +226 -0
  109. package/skills/ct-skill-creator/.cleo/.context-state.json +13 -0
  110. package/skills/ct-skill-creator/.cleo/logs/cleo.2026-03-07.1.log +24 -0
  111. package/skills/ct-skill-creator/.cleo/tasks.db +0 -0
  112. package/skills/ct-skill-creator/SKILL.md +356 -0
  113. package/skills/ct-skill-creator/agents/analyzer.md +276 -0
  114. package/skills/ct-skill-creator/agents/comparator.md +204 -0
  115. package/skills/ct-skill-creator/agents/grader.md +225 -0
  116. package/skills/ct-skill-creator/assets/eval_review.html +146 -0
  117. package/skills/ct-skill-creator/eval-viewer/__pycache__/generate_review.cpython-314.pyc +0 -0
  118. package/skills/ct-skill-creator/eval-viewer/generate_review.py +471 -0
  119. package/skills/ct-skill-creator/eval-viewer/viewer.html +1325 -0
  120. package/skills/ct-skill-creator/manifest-entry.json +17 -0
  121. package/skills/ct-skill-creator/references/dynamic-context.md +228 -0
  122. package/skills/ct-skill-creator/references/frontmatter.md +83 -0
  123. package/skills/ct-skill-creator/references/invocation-control.md +165 -0
  124. package/skills/ct-skill-creator/references/output-patterns.md +86 -0
  125. package/skills/ct-skill-creator/references/provider-deployment.md +175 -0
  126. package/skills/ct-skill-creator/references/schemas.md +430 -0
  127. package/skills/ct-skill-creator/references/workflows.md +28 -0
  128. package/skills/ct-skill-creator/scripts/__init__.py +1 -0
  129. package/skills/ct-skill-creator/scripts/__pycache__/__init__.cpython-314.pyc +0 -0
  130. package/skills/ct-skill-creator/scripts/__pycache__/aggregate_benchmark.cpython-314.pyc +0 -0
  131. package/skills/ct-skill-creator/scripts/__pycache__/generate_report.cpython-314.pyc +0 -0
  132. package/skills/ct-skill-creator/scripts/__pycache__/improve_description.cpython-314.pyc +0 -0
  133. package/skills/ct-skill-creator/scripts/__pycache__/init_skill.cpython-314.pyc +0 -0
  134. package/skills/ct-skill-creator/scripts/__pycache__/quick_validate.cpython-314.pyc +0 -0
  135. package/skills/ct-skill-creator/scripts/__pycache__/run_eval.cpython-314.pyc +0 -0
  136. package/skills/ct-skill-creator/scripts/__pycache__/run_loop.cpython-314.pyc +0 -0
  137. package/skills/ct-skill-creator/scripts/__pycache__/utils.cpython-314.pyc +0 -0
  138. package/skills/ct-skill-creator/scripts/aggregate_benchmark.py +401 -0
  139. package/skills/ct-skill-creator/scripts/generate_report.py +326 -0
  140. package/skills/ct-skill-creator/scripts/improve_description.py +247 -0
  141. package/skills/ct-skill-creator/scripts/init_skill.py +306 -0
  142. package/skills/ct-skill-creator/scripts/package_skill.py +110 -0
  143. package/skills/ct-skill-creator/scripts/quick_validate.py +97 -0
  144. package/skills/ct-skill-creator/scripts/run_eval.py +310 -0
  145. package/skills/ct-skill-creator/scripts/run_loop.py +328 -0
  146. package/skills/ct-skill-creator/scripts/utils.py +47 -0
  147. package/skills/ct-skill-validator/SKILL.md +178 -0
  148. package/skills/ct-skill-validator/agents/ecosystem-checker.md +151 -0
  149. package/skills/ct-skill-validator/assets/valid-skill-example.md +13 -0
  150. package/skills/ct-skill-validator/evals/eval_set.json +14 -0
  151. package/skills/ct-skill-validator/evals/evals.json +52 -0
  152. package/skills/ct-skill-validator/manifest-entry.json +20 -0
  153. package/skills/ct-skill-validator/references/cleo-ecosystem-rules.md +163 -0
  154. package/skills/ct-skill-validator/references/validation-rules.md +168 -0
  155. package/skills/ct-skill-validator/scripts/__init__.py +0 -0
  156. package/skills/ct-skill-validator/scripts/__pycache__/audit_body.cpython-314.pyc +0 -0
  157. package/skills/ct-skill-validator/scripts/__pycache__/check_ecosystem.cpython-314.pyc +0 -0
  158. package/skills/ct-skill-validator/scripts/__pycache__/generate_validation_report.cpython-314.pyc +0 -0
  159. package/skills/ct-skill-validator/scripts/__pycache__/validate.cpython-314.pyc +0 -0
  160. package/skills/ct-skill-validator/scripts/audit_body.py +242 -0
  161. package/skills/ct-skill-validator/scripts/check_ecosystem.py +169 -0
  162. package/skills/ct-skill-validator/scripts/check_manifest.py +172 -0
  163. package/skills/ct-skill-validator/scripts/generate_validation_report.py +442 -0
  164. package/skills/ct-skill-validator/scripts/validate.py +422 -0
  165. package/skills/ct-spec-writer/SKILL.md +189 -0
  166. package/skills/ct-stickynote/README.md +14 -0
  167. package/skills/ct-stickynote/SKILL.md +46 -0
  168. package/skills/ct-task-executor/SKILL.md +296 -0
  169. package/skills/ct-validator/SKILL.md +216 -0
  170. package/skills/manifest.json +469 -0
  171. package/skills.json +281 -0
@@ -0,0 +1,810 @@
1
+ # Manifest Operations Reference
2
+
3
+ **Provenance**: T3154 (Epic: T3147) - Single-source reference for all manifest operations
4
+ **Status**: ACTIVE
5
+ **Version**: 1.0.0
6
+
7
+ This reference defines all CLI operations for managing the agent outputs manifest (`MANIFEST.jsonl`). Skills and protocols SHOULD reference this file instead of duplicating JSONL instructions.
8
+
9
+ ---
10
+
11
+ ## Overview
12
+
13
+ The manifest system provides O(1) append operations and race-condition-free concurrent writes through JSONL format. Each line is a complete JSON object representing one research/output entry.
14
+
15
+ **Default Paths**:
16
+ - Output directory: `claudedocs/agent-outputs/` (configurable via `agentOutputs.directory`)
17
+ - Manifest file: `MANIFEST.jsonl` (configurable via `agentOutputs.manifestFile`)
18
+ - Full path: `{{OUTPUT_DIR}}/{{MANIFEST_PATH}}`
19
+
20
+ **Design Principles**:
21
+ - Append-only writes preserve audit trail
22
+ - Single-line corruption doesn't corrupt entire file
23
+ - Concurrent writes are safe (atomic line appends)
24
+ - Orchestrators read manifest summaries, NOT full files
25
+
26
+ ---
27
+
28
+ ## CLI Commands
29
+
30
+ ### cleo research add
31
+
32
+ Create a new manifest entry for agent output.
33
+
34
+ **Usage**:
35
+ ```bash
36
+ cleo research add \
37
+ --title "Entry Title" \
38
+ --file "path/to/output.md" \
39
+ --topics "topic1,topic2,topic3" \
40
+ --findings "Finding 1,Finding 2,Finding 3" \
41
+ [--status STATUS] \
42
+ [--task T####] \
43
+ [--epic T####] \
44
+ [--actionable | --not-actionable] \
45
+ [--needs-followup T001,T002] \
46
+ [--agent-type TYPE]
47
+ ```
48
+
49
+ **Required Flags**:
50
+ | Flag | Description | Example |
51
+ |------|-------------|---------|
52
+ | `--title` | Human-readable title | `"Authentication Research"` |
53
+ | `--file` | Relative path to output file | `"2026-02-07_auth-research.md"` |
54
+ | `--topics` | Comma-separated topic tags | `"authentication,security,jwt"` |
55
+ | `--findings` | Comma-separated key findings (1-7 items) | `"JWT tokens expire after 1h,OAuth2 preferred,PKCE required"` |
56
+
57
+ **Optional Flags**:
58
+ | Flag | Default | Valid Values |
59
+ |------|---------|--------------|
60
+ | `--status` | `complete` | `complete`, `partial`, `blocked` |
61
+ | `--task` | none | Task ID (e.g., `T1234`) |
62
+ | `--epic` | none | Epic ID (e.g., `T1200`) |
63
+ | `--actionable` | `true` | Boolean flag |
64
+ | `--not-actionable` | - | Negates actionable |
65
+ | `--needs-followup` | `[]` | Comma-separated task IDs |
66
+ | `--agent-type` | `research` | See Agent Type Values below |
67
+
68
+ **Agent Type Values** (RCASD-IVTR+C protocol + workflow types):
69
+ - **Protocol types**: `research`, `consensus`, `specification`, `decomposition`, `implementation`, `contribution`, `release`
70
+ - **Workflow types**: `validation`, `documentation`, `analysis`, `testing`, `cleanup`, `design`, `architecture`, `report`
71
+ - **Extended types**: `synthesis`, `orchestrator`, `handoff`, `verification`, `review`
72
+ - **Skill types**: Any `ct-*` prefix (e.g., `ct-orchestrator`)
73
+
74
+ **Example**:
75
+ ```bash
76
+ cleo research add \
77
+ --title "JWT Authentication Best Practices" \
78
+ --file "2026-02-07_jwt-auth.md" \
79
+ --topics "authentication,jwt,security" \
80
+ --findings "Use RS256 for asymmetric signing,Tokens expire in 1h,Refresh tokens stored securely" \
81
+ --status complete \
82
+ --task T3154 \
83
+ --actionable \
84
+ --agent-type research
85
+ ```
86
+
87
+ **Output**: JSON with created entry ID
88
+ ```json
89
+ {
90
+ "success": true,
91
+ "entryId": "jwt-auth-2026-02-07",
92
+ "manifestPath": "claudedocs/agent-outputs/MANIFEST.jsonl"
93
+ }
94
+ ```
95
+
96
+ ---
97
+
98
+ ### cleo research update
99
+
100
+ Update an existing manifest entry.
101
+
102
+ **Usage**:
103
+ ```bash
104
+ cleo research update <entry-id> \
105
+ [--title "New Title"] \
106
+ [--status STATUS] \
107
+ [--findings "F1,F2,F3"] \
108
+ [--topics "T1,T2"] \
109
+ [--actionable | --not-actionable] \
110
+ [--needs-followup T001,T002]
111
+ ```
112
+
113
+ **Parameters**:
114
+ - `<entry-id>`: Entry ID from manifest (e.g., `jwt-auth-2026-02-07`)
115
+
116
+ **Flags**: Same as `add` command (all optional for update)
117
+
118
+ **Example**:
119
+ ```bash
120
+ cleo research update jwt-auth-2026-02-07 \
121
+ --status partial \
122
+ --needs-followup T3155,T3156
123
+ ```
124
+
125
+ ---
126
+
127
+ ### cleo research list
128
+
129
+ Query and filter manifest entries.
130
+
131
+ **Usage**:
132
+ ```bash
133
+ cleo research list \
134
+ [--status STATUS] \
135
+ [--type TYPE] \
136
+ [--topic TOPIC] \
137
+ [--since DATE] \
138
+ [--limit N] \
139
+ [--actionable]
140
+ ```
141
+
142
+ **Filter Options**:
143
+ | Flag | Description | Example |
144
+ |------|-------------|---------|
145
+ | `--status` | Filter by status | `complete`, `partial`, `blocked`, `archived` |
146
+ | `--type` | Filter by agent type | `research`, `implementation`, `validation` |
147
+ | `--topic` | Filter by topic tag | `authentication` |
148
+ | `--since` | Entries since date | `2026-02-01` (ISO 8601: YYYY-MM-DD) |
149
+ | `--limit` | Max results | `20` (default: 20) |
150
+ | `--actionable` | Only actionable entries | Boolean flag |
151
+
152
+ **Example**:
153
+ ```bash
154
+ # Recent research entries
155
+ cleo research list --type research --since 2026-02-01 --limit 10
156
+
157
+ # Actionable partial entries
158
+ cleo research list --status partial --actionable
159
+ ```
160
+
161
+ **Output**: JSON array with manifest entries
162
+ ```json
163
+ {
164
+ "success": true,
165
+ "count": 3,
166
+ "entries": [
167
+ {
168
+ "id": "jwt-auth-2026-02-07",
169
+ "title": "JWT Authentication Best Practices",
170
+ "status": "complete",
171
+ "topics": ["authentication", "jwt", "security"],
172
+ "key_findings": ["Use RS256...", "Tokens expire...", "Refresh tokens..."]
173
+ }
174
+ ]
175
+ }
176
+ ```
177
+
178
+ ---
179
+
180
+ ### cleo research show
181
+
182
+ Display details of a specific manifest entry.
183
+
184
+ **Usage**:
185
+ ```bash
186
+ cleo research show <entry-id> [--full | --findings-only]
187
+ ```
188
+
189
+ **Parameters**:
190
+ - `<entry-id>`: Entry ID from manifest
191
+
192
+ **Options**:
193
+ | Flag | Description | Default |
194
+ |------|-------------|---------|
195
+ | `--findings-only` | Only show key_findings array | ✓ |
196
+ | `--full` | Include full file content (WARNING: large context) | |
197
+
198
+ **Example**:
199
+ ```bash
200
+ # Minimal output (just key findings)
201
+ cleo research show jwt-auth-2026-02-07
202
+
203
+ # Full entry metadata
204
+ cleo research show jwt-auth-2026-02-07 --full
205
+ ```
206
+
207
+ **Output**: JSON with entry details
208
+ ```json
209
+ {
210
+ "success": true,
211
+ "entry": {
212
+ "id": "jwt-auth-2026-02-07",
213
+ "file": "2026-02-07_jwt-auth.md",
214
+ "title": "JWT Authentication Best Practices",
215
+ "date": "2026-02-07",
216
+ "status": "complete",
217
+ "topics": ["authentication", "jwt", "security"],
218
+ "key_findings": [
219
+ "Use RS256 for asymmetric signing",
220
+ "Tokens expire in 1h",
221
+ "Refresh tokens stored securely"
222
+ ],
223
+ "actionable": true,
224
+ "needs_followup": [],
225
+ "linked_tasks": ["T3154"]
226
+ }
227
+ }
228
+ ```
229
+
230
+ ---
231
+
232
+ ### cleo research link
233
+
234
+ Link a research entry to a task (bidirectional association).
235
+
236
+ **Usage**:
237
+ ```bash
238
+ cleo research link <task-id> <research-id> [--notes "Custom note"]
239
+ ```
240
+
241
+ **Parameters**:
242
+ - `<task-id>`: Task ID (e.g., `T3154`)
243
+ - `<research-id>`: Entry ID from manifest
244
+
245
+ **Options**:
246
+ | Flag | Description |
247
+ |------|-------------|
248
+ | `--notes` | Custom note text instead of default |
249
+
250
+ **Example**:
251
+ ```bash
252
+ cleo research link T3154 jwt-auth-2026-02-07
253
+ cleo research link T3154 jwt-auth-2026-02-07 --notes "Primary research source"
254
+ ```
255
+
256
+ **Effects**:
257
+ - Adds research ID to task's `.linkedResearch` array
258
+ - Adds task ID to manifest entry's `linked_tasks` array
259
+ - Creates bidirectional reference for discovery
260
+
261
+ **Verify Link**:
262
+ ```bash
263
+ cleo show T3154 # Check .linkedResearch array
264
+ cleo research show jwt-auth-2026-02-07 # Check linked_tasks
265
+ ```
266
+
267
+ ---
268
+
269
+ ### cleo research unlink
270
+
271
+ Remove link between research and task.
272
+
273
+ **Usage**:
274
+ ```bash
275
+ cleo research unlink <task-id> <research-id>
276
+ ```
277
+
278
+ **Example**:
279
+ ```bash
280
+ cleo research unlink T3154 jwt-auth-2026-02-07
281
+ ```
282
+
283
+ ---
284
+
285
+ ### cleo research links
286
+
287
+ Show all research linked to a specific task.
288
+
289
+ **Usage**:
290
+ ```bash
291
+ cleo research links <task-id>
292
+ ```
293
+
294
+ **Example**:
295
+ ```bash
296
+ cleo research links T3154
297
+ ```
298
+
299
+ **Output**: JSON array of linked research entries
300
+
301
+ ---
302
+
303
+ ### cleo research pending
304
+
305
+ Show entries with `needs_followup` (orchestrator handoffs).
306
+
307
+ **Usage**:
308
+ ```bash
309
+ cleo research pending [--brief]
310
+ ```
311
+
312
+ **Options**:
313
+ | Flag | Description |
314
+ |------|-------------|
315
+ | `--brief` | Minimal output (just IDs and followup tasks) |
316
+
317
+ **Example**:
318
+ ```bash
319
+ cleo research pending
320
+ cleo research pending --brief
321
+ ```
322
+
323
+ **Output**: JSON array of entries requiring followup
324
+ ```json
325
+ {
326
+ "success": true,
327
+ "count": 2,
328
+ "entries": [
329
+ {
330
+ "id": "partial-research-2026-02-06",
331
+ "title": "Incomplete Analysis",
332
+ "status": "partial",
333
+ "needs_followup": ["T3155", "T3156"]
334
+ }
335
+ ]
336
+ }
337
+ ```
338
+
339
+ ---
340
+
341
+ ### cleo research archive
342
+
343
+ Archive old manifest entries to maintain context efficiency.
344
+
345
+ **Usage**:
346
+ ```bash
347
+ cleo research archive \
348
+ [--threshold BYTES] \
349
+ [--percent N] \
350
+ [--dry-run]
351
+ ```
352
+
353
+ **Options**:
354
+ | Flag | Default | Description |
355
+ |------|---------|-------------|
356
+ | `--threshold` | `200000` | Archive threshold in bytes (~50K tokens) |
357
+ | `--percent` | `50` | Percentage of oldest entries to archive |
358
+ | `--dry-run` | - | Show what would be archived without changes |
359
+
360
+ **Example**:
361
+ ```bash
362
+ # Preview archival
363
+ cleo research archive --dry-run
364
+
365
+ # Archive oldest 50% when manifest exceeds 200KB
366
+ cleo research archive --threshold 200000 --percent 50
367
+ ```
368
+
369
+ **Effects**:
370
+ - Moves entries to `{{OUTPUT_DIR}}/archive/MANIFEST-archive.jsonl`
371
+ - Updates status to `archived` in archive file
372
+ - Removes from main manifest to reduce context size
373
+
374
+ ---
375
+
376
+ ### cleo research archive-list
377
+
378
+ List entries from the archive file.
379
+
380
+ **Usage**:
381
+ ```bash
382
+ cleo research archive-list \
383
+ [--limit N] \
384
+ [--since DATE]
385
+ ```
386
+
387
+ **Options**:
388
+ | Flag | Default | Description |
389
+ |------|---------|-------------|
390
+ | `--limit` | `50` | Max entries to return |
391
+ | `--since` | none | Filter archived since date (ISO 8601) |
392
+
393
+ **Example**:
394
+ ```bash
395
+ cleo research archive-list --limit 100 --since 2026-01-01
396
+ ```
397
+
398
+ ---
399
+
400
+ ### cleo research status
401
+
402
+ Show manifest size and archival status.
403
+
404
+ **Usage**:
405
+ ```bash
406
+ cleo research status
407
+ ```
408
+
409
+ **Output**: JSON with size metrics
410
+ ```json
411
+ {
412
+ "success": true,
413
+ "manifest": {
414
+ "path": "claudedocs/agent-outputs/MANIFEST.jsonl",
415
+ "size": 153420,
416
+ "entryCount": 42,
417
+ "threshold": 200000,
418
+ "needsArchival": false
419
+ }
420
+ }
421
+ ```
422
+
423
+ ---
424
+
425
+ ### cleo research stats
426
+
427
+ Show comprehensive manifest statistics.
428
+
429
+ **Usage**:
430
+ ```bash
431
+ cleo research stats
432
+ ```
433
+
434
+ **Output**: JSON with detailed statistics
435
+ ```json
436
+ {
437
+ "success": true,
438
+ "stats": {
439
+ "totalEntries": 42,
440
+ "byStatus": {
441
+ "complete": 35,
442
+ "partial": 5,
443
+ "blocked": 2
444
+ },
445
+ "byAgentType": {
446
+ "research": 20,
447
+ "implementation": 15,
448
+ "validation": 7
449
+ },
450
+ "actionableCount": 38,
451
+ "needsFollowupCount": 7
452
+ }
453
+ }
454
+ ```
455
+
456
+ ---
457
+
458
+ ### cleo research validate
459
+
460
+ Validate manifest file integrity and entry format.
461
+
462
+ **Usage**:
463
+ ```bash
464
+ cleo research validate [--fix] [--protocol] [--task T####]
465
+ ```
466
+
467
+ **Options**:
468
+ | Flag | Description |
469
+ |------|-------------|
470
+ | `--fix` | Remove invalid entries (destructive) |
471
+ | `--protocol` | Validate against protocol requirements |
472
+ | `--task` | Validate entries linked to specific task |
473
+
474
+ **Example**:
475
+ ```bash
476
+ # Check integrity
477
+ cleo research validate
478
+
479
+ # Fix invalid entries
480
+ cleo research validate --fix
481
+
482
+ # Validate protocol compliance for task outputs
483
+ cleo research validate --protocol --task T3154
484
+ ```
485
+
486
+ **Validation Checks**:
487
+ - Valid JSON syntax per line
488
+ - Required fields present: `id`, `file`, `title`, `date`, `status`, `topics`, `key_findings`, `actionable`
489
+ - Status enum: `complete`, `partial`, `blocked`, `archived`
490
+ - Date format: ISO 8601 (YYYY-MM-DD)
491
+ - Field types: `topics` array, `key_findings` array, `actionable` boolean
492
+ - Agent type validity (protocol + workflow types)
493
+
494
+ **Exit Codes**:
495
+ - `0`: Validation passed
496
+ - `6`: Validation errors found (`EXIT_VALIDATION_ERROR`)
497
+
498
+ ---
499
+
500
+ ### cleo research compact
501
+
502
+ Remove duplicate/obsolete entries from manifest.
503
+
504
+ **Usage**:
505
+ ```bash
506
+ cleo research compact
507
+ ```
508
+
509
+ **Effects**:
510
+ - Removes duplicate entries (same ID)
511
+ - Keeps most recent version of duplicates
512
+ - Atomic operation with backup
513
+
514
+ ---
515
+
516
+ ### cleo research get
517
+
518
+ Get single entry by ID (raw JSON object).
519
+
520
+ **Usage**:
521
+ ```bash
522
+ cleo research get <entry-id>
523
+ ```
524
+
525
+ **Example**:
526
+ ```bash
527
+ cleo research get jwt-auth-2026-02-07
528
+ ```
529
+
530
+ **Output**: Raw JSON object (no wrapper)
531
+
532
+ ---
533
+
534
+ ### cleo research inject
535
+
536
+ Output the subagent injection template for prompts.
537
+
538
+ **Usage**:
539
+ ```bash
540
+ cleo research inject [--raw] [--clipboard]
541
+ ```
542
+
543
+ **Options**:
544
+ | Flag | Description |
545
+ |------|-------------|
546
+ | `--raw` | Output template without variable substitution |
547
+ | `--clipboard` | Copy to clipboard (pbcopy/xclip) |
548
+
549
+ **Example**:
550
+ ```bash
551
+ # Output with current values
552
+ cleo research inject
553
+
554
+ # Raw template with {{TOKENS}}
555
+ cleo research inject --raw
556
+
557
+ # Copy to clipboard
558
+ cleo research inject --clipboard
559
+ ```
560
+
561
+ ---
562
+
563
+ ## Manifest Entry Schema
564
+
565
+ ### Required Fields
566
+
567
+ | Field | Type | Description | Constraints |
568
+ |-------|------|-------------|-------------|
569
+ | `id` | string | Unique identifier | Format: `{topic-slug}-{date}` or `T####-{slug}` |
570
+ | `file` | string | Output file path | Relative to manifest directory |
571
+ | `title` | string | Human-readable title | Non-empty |
572
+ | `date` | string | Entry creation date | ISO 8601: YYYY-MM-DD |
573
+ | `status` | enum | Entry status | `complete`, `partial`, `blocked`, `archived` |
574
+ | `topics` | array | Categorization tags | Array of strings |
575
+ | `key_findings` | array | Key findings (1-7 items) | Array of strings, 1-7 items, one sentence each |
576
+ | `actionable` | boolean | Requires action | `true` or `false` |
577
+
578
+ ### Optional Fields
579
+
580
+ | Field | Type | Description | Default |
581
+ |-------|------|-------------|---------|
582
+ | `agent_type` | string | Agent/protocol type | `research` |
583
+ | `needs_followup` | array | Task IDs requiring attention | `[]` |
584
+ | `linked_tasks` | array | Associated task IDs | `[]` |
585
+ | `audit` | object | Audit metadata (T2578) | See audit schema |
586
+
587
+ ### Audit Object Schema (v2.10.0+)
588
+
589
+ When present, the `audit` field provides operational metadata:
590
+
591
+ ```json
592
+ {
593
+ "audit": {
594
+ "created": {
595
+ "timestamp": "2026-02-07T05:00:00Z",
596
+ "agent": "cleo-subagent",
597
+ "taskId": "T3154"
598
+ },
599
+ "updated": {
600
+ "timestamp": "2026-02-07T06:00:00Z",
601
+ "agent": "ct-orchestrator",
602
+ "reason": "Status change to partial"
603
+ }
604
+ }
605
+ }
606
+ ```
607
+
608
+ ---
609
+
610
+ ## Token Placeholders
611
+
612
+ ### Standard Tokens (Pre-Resolved)
613
+
614
+ | Token | Description | Example |
615
+ |-------|-------------|---------|
616
+ | `{{TASK_ID}}` | Current task identifier | `T3154` |
617
+ | `{{EPIC_ID}}` | Parent epic identifier | `T3147` |
618
+ | `{{DATE}}` | Current date | `2026-02-07` |
619
+ | `{{TOPIC_SLUG}}` | URL-safe topic name | `jwt-authentication` |
620
+ | `{{OUTPUT_DIR}}` | Output directory | `claudedocs/agent-outputs` |
621
+ | `{{MANIFEST_PATH}}` | Manifest filename | `MANIFEST.jsonl` |
622
+
623
+ ### Command Tokens (CLEO Defaults)
624
+
625
+ | Token | Default Value |
626
+ |-------|---------------|
627
+ | `{{TASK_LINK_CMD}}` | `cleo research link` |
628
+ | `{{TASK_COMPLETE_CMD}}` | `cleo complete` |
629
+ | `{{TASK_START_CMD}}` | `cleo start` |
630
+ | `{{TASK_SHOW_CMD}}` | `cleo show` |
631
+
632
+ **Note**: Orchestrators MUST pre-resolve all tokens before spawning subagents. Subagents CANNOT resolve `@` references or `{{TOKEN}}` patterns.
633
+
634
+ ---
635
+
636
+ ## Usage in Protocols
637
+
638
+ ### Research Protocol Example
639
+
640
+ ```markdown
641
+ ## Output Requirements
642
+
643
+ 1. Write findings to `{{OUTPUT_DIR}}/{{DATE}}_{{TOPIC_SLUG}}.md`
644
+ 2. Create manifest entry:
645
+
646
+ ```bash
647
+ cleo research add \
648
+ --title "{{TITLE}}" \
649
+ --file "{{DATE}}_{{TOPIC_SLUG}}.md" \
650
+ --topics "{{TOPICS_CSV}}" \
651
+ --findings "{{FINDINGS_CSV}}" \
652
+ --status complete \
653
+ --task {{TASK_ID}} \
654
+ --agent-type research
655
+ ```
656
+
657
+ 3. Link to task: `{{TASK_LINK_CMD}} {{TASK_ID}} {{ENTRY_ID}}`
658
+ ```
659
+
660
+ ### Implementation Protocol Example
661
+
662
+ ```markdown
663
+ ## Completion Sequence
664
+
665
+ ```bash
666
+ # Write implementation file
667
+ # ...
668
+
669
+ # Record in manifest
670
+ cleo research add \
671
+ --title "{{TASK_TITLE}} Implementation" \
672
+ --file "{{OUTPUT_FILE}}" \
673
+ --topics "{{TASK_LABELS}}" \
674
+ --findings "Implemented X,Added Y,Modified Z" \
675
+ --status complete \
676
+ --task {{TASK_ID}} \
677
+ --agent-type implementation
678
+
679
+ # Complete task
680
+ {{TASK_COMPLETE_CMD}} {{TASK_ID}}
681
+ ```
682
+ ```
683
+
684
+ ---
685
+
686
+ ## Anti-Patterns
687
+
688
+ ### ❌ Pretty-Printed JSON
689
+
690
+ ```bash
691
+ # WRONG - Creates multiple lines
692
+ echo '{
693
+ "id": "test",
694
+ "title": "Test"
695
+ }' >> MANIFEST.jsonl
696
+ ```
697
+
698
+ **Problem**: Breaks JSONL format (one object per line)
699
+
700
+ **Solution**: Use `jq -c` for compact output
701
+ ```bash
702
+ jq -nc '{id: "test", title: "Test"}' >> MANIFEST.jsonl
703
+ ```
704
+
705
+ ---
706
+
707
+ ### ❌ Direct File Writes
708
+
709
+ ```bash
710
+ # WRONG - Bypasses validation
711
+ echo "$json" >> claudedocs/agent-outputs/MANIFEST.jsonl
712
+ ```
713
+
714
+ **Problem**: No validation, no atomic operation, no audit trail
715
+
716
+ **Solution**: Use CLI commands
717
+ ```bash
718
+ cleo research add --title "..." --file "..." --topics "..." --findings "..."
719
+ ```
720
+
721
+ ---
722
+
723
+ ### ❌ Missing Key Findings
724
+
725
+ ```bash
726
+ # WRONG - Empty findings array
727
+ cleo research add --findings ""
728
+ ```
729
+
730
+ **Problem**: Manifest is for discovery - empty findings defeat purpose
731
+
732
+ **Solution**: Always provide 1-7 concise findings
733
+ ```bash
734
+ cleo research add --findings "Finding 1,Finding 2,Finding 3"
735
+ ```
736
+
737
+ ---
738
+
739
+ ### ❌ Returning Full Content
740
+
741
+ ```markdown
742
+ **Subagent response:**
743
+
744
+ Here is my research:
745
+
746
+ # JWT Authentication
747
+
748
+ [5000 words of content...]
749
+ ```
750
+
751
+ **Problem**: Bloats orchestrator context window
752
+
753
+ **Solution**: Return ONLY summary message
754
+ ```markdown
755
+ Research complete. See MANIFEST.jsonl for summary.
756
+ ```
757
+
758
+ ---
759
+
760
+ ### ❌ Unresolved Tokens in Subagent
761
+
762
+ ```bash
763
+ # WRONG - Subagent cannot resolve @file references
764
+ cleo research add --findings "@findings.txt"
765
+ ```
766
+
767
+ **Problem**: Subagents cannot resolve `@` or `{{TOKEN}}` patterns
768
+
769
+ **Solution**: Orchestrator must pre-resolve
770
+ ```bash
771
+ # Orchestrator resolves before spawn
772
+ findings=$(cat findings.txt | tr '\n' ',' | sed 's/,$//')
773
+ # Then passes to subagent as plain text
774
+ ```
775
+
776
+ ---
777
+
778
+ ### ❌ Skipping Task Link
779
+
780
+ ```bash
781
+ # WRONG - No bidirectional association
782
+ cleo research add --title "..." --file "..." --topics "..." --findings "..."
783
+ # (missing --task flag)
784
+ ```
785
+
786
+ **Problem**: Research orphaned, cannot be discovered from task
787
+
788
+ **Solution**: Always link to task
789
+ ```bash
790
+ cleo research add \
791
+ --title "..." \
792
+ --file "..." \
793
+ --topics "..." \
794
+ --findings "..." \
795
+ --task {{TASK_ID}}
796
+
797
+ # Or link after creation
798
+ cleo research link {{TASK_ID}} {{ENTRY_ID}}
799
+ ```
800
+
801
+ ---
802
+
803
+ ## References
804
+
805
+ - **Task System Integration**: `@skills/_shared/task-system-integration.md`
806
+ - **Subagent Protocol Base**: `@skills/_shared/subagent-protocol-base.md`
807
+ - **Research Manifest Library**: `lib/research-manifest.sh`
808
+ - **Research CLI**: `scripts/research.sh`
809
+ - **Exit Codes**: `lib/exit-codes.sh` (EXIT_VALIDATION_ERROR = 6)
810
+ - **RCASD-IVTR+C Protocol**: `docs/specs/PROJECT-LIFECYCLE-SPEC.md`