@cleocode/skills 2026.5.84 → 2026.5.87

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 (47) hide show
  1. package/package.json +1 -1
  2. package/skills/ct-adr-recorder/SKILL.md +74 -0
  3. package/skills/ct-adr-recorder/__tests__/skill-adr-recorder.test.ts +65 -0
  4. package/skills/ct-docs-lookup/SKILL.md +116 -1
  5. package/skills/ct-docs-lookup/references/ctx7-workflow.md +198 -0
  6. package/skills/ct-docs-lookup/references/library-id-resolution.md +217 -0
  7. package/skills/ct-docs-lookup/references/version-specific-docs.md +220 -0
  8. package/skills/ct-docs-review/SKILL.md +133 -1
  9. package/skills/ct-docs-review/__tests__/skill-docs-review.test.ts +53 -0
  10. package/skills/ct-docs-review/references/inline-comment-patterns.md +268 -0
  11. package/skills/ct-docs-review/references/pr-review-mode.md +270 -0
  12. package/skills/ct-docs-review/references/style-violations.md +341 -0
  13. package/skills/ct-docs-write/SKILL.md +157 -1
  14. package/skills/ct-docs-write/__tests__/skill-docs-write.test.ts +55 -0
  15. package/skills/ct-docs-write/references/audience-targeting.md +305 -0
  16. package/skills/ct-docs-write/references/cleo-style-guide.md +234 -0
  17. package/skills/ct-docs-write/references/markdown-patterns.md +329 -0
  18. package/skills/ct-documentor/SKILL.md +11 -0
  19. package/skills/ct-documentor/references/anti-patterns.md +216 -0
  20. package/skills/ct-documentor/references/chain-orchestration.md +194 -0
  21. package/skills/ct-documentor/references/doc-types-and-templates.md +301 -0
  22. package/skills/ct-documentor/references/style-coordination.md +195 -0
  23. package/skills/ct-research-agent/SKILL.md +9 -0
  24. package/skills/ct-research-agent/references/anti-patterns.md +154 -0
  25. package/skills/ct-research-agent/references/citation-and-evidence.md +140 -0
  26. package/skills/ct-research-agent/references/source-strategy.md +116 -0
  27. package/skills/ct-research-agent/references/triggers-and-routing.md +93 -0
  28. package/skills/ct-skill-validator/SKILL.md +19 -0
  29. package/skills/ct-skill-validator/scripts/check_depth.py +306 -0
  30. package/skills/ct-spec-writer/SKILL.md +71 -1
  31. package/skills/ct-spec-writer/__tests__/skill-spec-writer.test.ts +60 -0
  32. package/skills/ct-spec-writer/references/anti-patterns.md +176 -0
  33. package/skills/ct-spec-writer/references/rfc2119-language.md +138 -0
  34. package/skills/ct-spec-writer/references/spec-templates.md +233 -0
  35. package/skills/ct-spec-writer/references/traceability-matrix.md +145 -0
  36. package/skills/ct-task-executor/SKILL.md +10 -0
  37. package/skills/ct-task-executor/references/acceptance-criteria-mapping.md +163 -0
  38. package/skills/ct-task-executor/references/anti-patterns.md +201 -0
  39. package/skills/ct-task-executor/references/common-failures.md +193 -0
  40. package/skills/ct-task-executor/references/evidence-and-gates.md +179 -0
  41. package/skills/ct-task-executor/references/implementation-patterns.md +160 -0
  42. package/skills/ct-validator/SKILL.md +9 -0
  43. package/skills/ct-validator/references/anti-patterns.md +194 -0
  44. package/skills/ct-validator/references/compliance-reports.md +199 -0
  45. package/skills/ct-validator/references/schema-checking.md +191 -0
  46. package/skills/ct-validator/references/validation-modes.md +185 -0
  47. package/skills/manifest.json +46 -8
@@ -0,0 +1,234 @@
1
+ # CLEO Style Guide
2
+
3
+ The canonical style guide lives at
4
+ `packages/skills/skills/_shared/cleo-style-guide.md` and is consumed
5
+ by both ct-docs-write and ct-docs-review. This reference makes the
6
+ guide's most-violated rules concrete with positive/negative examples
7
+ and the rationale for each.
8
+
9
+ ## The Three Pillars
10
+
11
+ CLEO documentation is **conversational, clear, and user-focused**.
12
+ Every other rule supports one of these three. When in doubt, ask:
13
+ "would I say this to a colleague in a chat?"
14
+
15
+ ### Pillar 1: Conversational
16
+
17
+ Write the way you talk to a colleague — not the way a corporate press
18
+ release would. The contraction rule is the most distinctive marker.
19
+
20
+ CLEO USES contractions. Many style guides ban them; CLEO does the
21
+ opposite. "Don't" reads more like a colleague than "do not".
22
+
23
+ | Avoid | Prefer | Why |
24
+ |-------|--------|-----|
25
+ | utilize | use | "utilize" is just "use" wearing a suit |
26
+ | reference (verb) | see, look at | "reference" makes things sound bureaucratic |
27
+ | offerings | products, features | "offerings" sounds like a press release |
28
+ | we will use HTTPS | use HTTPS | imperative > first-person future |
29
+ | cannot, do not | can't, don't | contractions read more conversationally |
30
+ | it is recommended that | use | passive recommendation = no recommendation |
31
+
32
+ ### Pillar 2: Clear
33
+
34
+ Lead with what to do. Explain after. Bury nothing.
35
+
36
+ Headings state the point. Vague headings make the reader scan the body
37
+ to learn whether to read it.
38
+
39
+ | Vague heading | Clear heading |
40
+ |---------------|---------------|
41
+ | Configuration | Configure release pipeline before first ship |
42
+ | Authentication | Authenticate with API tokens |
43
+ | Performance | Set timeout to 30s on slow networks |
44
+ | Common issues | Solve E_VALIDATION errors |
45
+ | Setup | Install dependencies and run init |
46
+ | Notes | Use environment variables for secrets |
47
+
48
+ The pattern: action verb + object + (qualifier). Vague nouns alone
49
+ fail the test.
50
+
51
+ ### Pillar 3: User-Focused
52
+
53
+ CLEO docs say "people" and "companies", not "users". This is jarring
54
+ the first time you switch; once you do, the writing reads more
55
+ concrete.
56
+
57
+ | Avoid | Prefer |
58
+ |-------|--------|
59
+ | users can | people can |
60
+ | our users | our customers, or "the companies using CLEO" |
61
+ | user input | what people type |
62
+ | user experience | what people see |
63
+ | end-user | (the same — only when "user" is part of a compound) |
64
+
65
+ The exception: when "user" is part of a compound technical term
66
+ ("end-user", "user-agent", "user-space"), it stays. Only the standalone
67
+ "user" gets replaced.
68
+
69
+ ## Forbidden Phrases
70
+
71
+ These never appear in CLEO docs. The review skill rejects them on sight.
72
+
73
+ ### "easy" / "simple" / "just"
74
+
75
+ These words assume you know the reader's context — and you don't. What
76
+ is easy for you may be intimidating for them. Removing these words
77
+ costs nothing and makes the doc respectful.
78
+
79
+ | Bad | Good |
80
+ |-----|------|
81
+ | Setting up SAML is easy. Just follow these steps. | Set up SAML with these steps. |
82
+ | It's simple to configure the cache. | Configure the cache by setting `cacheTimeout`. |
83
+ | You can just import the helper. | Import the helper from `@cleocode/contracts`. |
84
+
85
+ ### "obviously" / "of course"
86
+
87
+ Same problem as "easy" — they patronize the reader. If something is
88
+ obvious, it doesn't need to be said. If it's not, calling it obvious
89
+ makes the reader feel stupid.
90
+
91
+ ### "click here" / "read more here"
92
+
93
+ Link text must describe the destination. The naked words "here" or
94
+ "this" tell the reader nothing about where the link goes.
95
+
96
+ | Bad | Good |
97
+ |-----|------|
98
+ | Click [here](url) to learn about SAML. | See the [SAML configuration guide](url). |
99
+ | For more info, [read this](url). | Read the [release pipeline ADR](url). |
100
+ | You can [download it here](url). | Download [the CLEO CLI binary](url). |
101
+
102
+ ### "etc." / "and so on"
103
+
104
+ Be specific or cut the sentence. Trailing-off phrases signal you
105
+ didn't finish thinking.
106
+
107
+ | Bad | Good |
108
+ |-----|------|
109
+ | Use environment variables, config files, etc. | Use environment variables or config files. |
110
+ | You can run tests, lint, format, and so on. | Run lint, format, build, then tests. |
111
+
112
+ ### "we" (when referring to CLEO)
113
+
114
+ When talking about CLEO features, say "CLEO" or "it" — not "we".
115
+ "We" is for the human team, not the system.
116
+
117
+ | Bad | Good |
118
+ |-----|------|
119
+ | We use a per-skill token budget. | CLEO uses a per-skill token budget. |
120
+ | We will deprecate this in 2026-Q3. | This feature is deprecated as of 2026-Q3. |
121
+ | Our orchestrator manages... | The orchestrator manages... |
122
+
123
+ ## Code Block Discipline
124
+
125
+ Code blocks always have a language tag.
126
+
127
+ ````markdown
128
+ GOOD:
129
+ ```bash
130
+ pnpm run test
131
+ ```
132
+
133
+ GOOD:
134
+ ```typescript
135
+ import { foo } from "@cleocode/contracts";
136
+ ```
137
+
138
+ BAD (no tag):
139
+ ```
140
+ pnpm run test
141
+ ```
142
+
143
+ BAD (abbreviated tag):
144
+ ```ts
145
+ import { foo } from "@cleocode/contracts";
146
+ ```
147
+ ````
148
+
149
+ Use full names: `bash`, `typescript`, `tsx`, `python`, `rust`, `json`,
150
+ `yaml`, `markdown`. Avoid `js`, `ts`, `py`, `rs`.
151
+
152
+ When the command depends on a working directory or other context, say
153
+ so in a comment within the block:
154
+
155
+ ````markdown
156
+ ```bash
157
+ # In the project root
158
+ pnpm run test
159
+ ```
160
+
161
+ ```typescript
162
+ // packages/cleo/src/foo.ts
163
+ import { bar } from "@cleocode/contracts";
164
+ ```
165
+ ````
166
+
167
+ ## Format Conventions
168
+
169
+ | Element | Convention |
170
+ |---------|-----------|
171
+ | **Bold** | UI element names: "Click the **Submit** button" |
172
+ | `Code` | Code symbols, variables, commands, filenames |
173
+ | _Italic_ | New terms (on first mention) only |
174
+ | `[link text](url)` | Descriptive link text always |
175
+ | Numbered list | When order matters |
176
+ | Bulleted list | When items are peers |
177
+ | Table | When items have parallel structure |
178
+ | Heading | State the point, not the topic |
179
+
180
+ ### Spelling and Punctuation
181
+
182
+ - **American spelling.** "color" not "colour", "behavior" not "behaviour".
183
+ - **Serial commas.** "a, b, and c" with the comma before "and".
184
+ - **One space after periods.** Not two.
185
+ - **Em dashes.** Use `—` (em dash) for parenthetical breaks. Not `--` or
186
+ ` - ` with surrounding spaces.
187
+ - **Quote marks.** Straight (`"`) in code; curly (`"`) in prose (your
188
+ editor handles this).
189
+
190
+ ## Audience-Matching
191
+
192
+ Match complexity to audience. The biggest stylistic failure is mismatch.
193
+
194
+ | Audience | Tone | Code examples | Conceptual depth |
195
+ |----------|------|---------------|------------------|
196
+ | End-user (using CLEO) | Conversational, practical | Realistic, copy-paste | Low — they want to ship |
197
+ | Agent (LLM consuming docs) | Dense, structured | Schemas, JSON | Medium — context-economical |
198
+ | Maintainer (contributing) | Technical, precise | Code with internals | High — internal architecture |
199
+
200
+ End-user docs say "Run `cleo show T123` to see the task." Maintainer
201
+ docs say "The `cleo show` handler dispatches via `dispatch.ts:107`
202
+ through the LAFS envelope wrapper at `packages/cleo/src/dispatch.ts`."
203
+
204
+ ## Headings: One Pattern
205
+
206
+ Use sentence case (only the first word and proper nouns capitalized).
207
+
208
+ | Bad | Good |
209
+ |-----|------|
210
+ | # How To Configure The Release Pipeline | # How to configure the release pipeline |
211
+ | ## Common Issues With Authentication | ## Common issues with authentication |
212
+ | ### Pre-Flight Checks | ### Pre-flight checks |
213
+
214
+ Exception: ADRs use title case for their title because they are formal
215
+ documents — but their internal headings use sentence case.
216
+
217
+ ## Hidden Drift
218
+
219
+ These violations sneak through review most often:
220
+
221
+ 1. "easy"/"simple" inside code comments (review may skip code blocks)
222
+ 2. "users" in alt text on images
223
+ 3. Title case headings in newly-added sections of an otherwise
224
+ sentence-case doc
225
+ 4. Trailing "etc." inside a longer list
226
+ 5. "we" in the description field of frontmatter
227
+
228
+ Run grep before declaring done:
229
+
230
+ ```bash
231
+ for word in easy simple just obviously "click here" "read more"; do
232
+ grep -in "$word" <new-file>
233
+ done
234
+ ```
@@ -0,0 +1,329 @@
1
+ # Markdown Patterns
2
+
3
+ Concrete patterns for the code blocks, tables, lists, and other
4
+ markdown constructs that appear most often in CLEO docs. The right
5
+ pattern in the right place compresses information; the wrong pattern
6
+ makes the doc feel cluttered.
7
+
8
+ ## Code Block Patterns
9
+
10
+ ### Pattern: Instructions in Sequence
11
+
12
+ When the reader runs commands in order, separate each by prose that
13
+ states the outcome — not interjections inside the block.
14
+
15
+ ````markdown
16
+ GOOD:
17
+ Run the migration:
18
+
19
+ ```bash
20
+ pnpm run migrate
21
+ ```
22
+
23
+ You should see "Migration complete" with no error output.
24
+
25
+ Then start the dev server:
26
+
27
+ ```bash
28
+ pnpm run dev
29
+ ```
30
+
31
+ It boots on port 3000 by default.
32
+
33
+ BAD (interjections buried in code):
34
+
35
+ ```bash
36
+ # (Remember to run migration before this)
37
+ pnpm run dev
38
+ ```
39
+
40
+ BAD (multiple commands smashed together):
41
+
42
+ ```bash
43
+ pnpm run migrate
44
+ # then
45
+ pnpm run dev
46
+ ```
47
+ ````
48
+
49
+ The good pattern lets the reader pause between steps and confirm
50
+ each one. The bad patterns force them to read the comments to learn
51
+ the structure.
52
+
53
+ ### Pattern: Annotated Output
54
+
55
+ When showing what command output looks like, use a separate code block
56
+ with the language `text` (or no language):
57
+
58
+ ````markdown
59
+ Run:
60
+
61
+ ```bash
62
+ cleo show T9567
63
+ ```
64
+
65
+ You see:
66
+
67
+ ```text
68
+ T9567 — E-SKILLS-DEPTH-BACKFILL
69
+ Status: pending
70
+ Acceptance:
71
+ 1. Each of 6+ stub skills gains references/ with min 3 docs each
72
+ ...
73
+ ```
74
+ ````
75
+
76
+ Do NOT mix command and output in one block — it confuses syntax
77
+ highlighters and makes copy-paste error-prone.
78
+
79
+ ### Pattern: TypeScript with Path Comment
80
+
81
+ When showing TypeScript that lives at a specific path, lead with a
82
+ path comment:
83
+
84
+ ````markdown
85
+ ```typescript
86
+ // packages/cleo/src/commands/release-plan.ts
87
+ import { defineCommand } from "citty";
88
+
89
+ export const releasePlan = defineCommand({
90
+ meta: { name: "plan", description: "..." },
91
+ // ...
92
+ });
93
+ ```
94
+ ````
95
+
96
+ The path comment gives the reader the "where" before the "what".
97
+
98
+ ## Table Patterns
99
+
100
+ ### Pattern: Comparison Table
101
+
102
+ Use when the reader is choosing between options.
103
+
104
+ ```markdown
105
+ | Approach | Pros | Cons | Use when |
106
+ |----------|------|------|----------|
107
+ | A | fast, simple | limited | quick scripts |
108
+ | B | flexible, typed | more setup | production code |
109
+ | C | minimal | runtime cost | very small projects |
110
+ ```
111
+
112
+ The "Use when" column is the punchline — readers scan the comparison
113
+ table to find their use case.
114
+
115
+ ### Pattern: Reference Table
116
+
117
+ Use when listing options, flags, or enum values.
118
+
119
+ ```markdown
120
+ | Flag | Default | Description |
121
+ |------|---------|-------------|
122
+ | `--verbose` | false | Print full execution trace |
123
+ | `--epic <id>` | (required) | Epic to release |
124
+ | `--no-tag` | false | Skip the tag step |
125
+ ```
126
+
127
+ Default column makes the reader's reading order clear: read row,
128
+ notice it has a sensible default, move on. Without the default
129
+ column, the reader has to mentally guess what happens when they
130
+ don't specify the flag.
131
+
132
+ ### Pattern: Status Table
133
+
134
+ Use for state machines or status codes.
135
+
136
+ ```markdown
137
+ | Status | Meaning | Next states |
138
+ |--------|---------|-------------|
139
+ | pending | Created, not yet started | active |
140
+ | active | In progress | done, blocked |
141
+ | blocked | Awaiting dependency | active, cancelled |
142
+ | done | Complete | — |
143
+ ```
144
+
145
+ The "Next states" column makes the state machine readable as a table.
146
+
147
+ ### Anti-pattern: Too Many Columns
148
+
149
+ Tables wider than 5 columns become illegible on mobile and look like
150
+ data dumps. If you have more dimensions, split into multiple tables.
151
+
152
+ ```markdown
153
+ BAD:
154
+ | Name | Status | Date | Owner | Priority | Estimate | Description | Notes |
155
+
156
+ GOOD (split):
157
+ | Name | Status | Date | Owner |
158
+ |------|--------|------|-------|
159
+ | ... | ... | ... | ... |
160
+
161
+ For details and estimates, see the [task tracker]...
162
+ ```
163
+
164
+ ## List Patterns
165
+
166
+ ### Pattern: Numbered for Sequence
167
+
168
+ Use when order matters and the reader will follow steps.
169
+
170
+ ```markdown
171
+ 1. Install the CLI: `pnpm i -g @cleocode/cleo`
172
+ 2. Initialize a project: `cleo init`
173
+ 3. Open the first task: `cleo next`
174
+ ```
175
+
176
+ ### Pattern: Bulleted for Peers
177
+
178
+ Use when items are independent.
179
+
180
+ ```markdown
181
+ The release pipeline runs these gates:
182
+
183
+ - Lint and format
184
+ - Build
185
+ - Type-check
186
+ - Unit tests
187
+ - Integration tests
188
+ - Security scan
189
+ ```
190
+
191
+ ### Pattern: Definition List
192
+
193
+ For term + definition pairs, use bold-prefixed bullets:
194
+
195
+ ```markdown
196
+ - **Orchestrator** — the agent that dispatches subagents.
197
+ - **Worker** — an agent spawned for a leaf task.
198
+ - **Lead** — a middle-tier agent supervising one wave.
199
+ ```
200
+
201
+ The em-dash separator reads cleanly. Don't use a colon (looks like
202
+ prose); don't use a hyphen alone (too thin).
203
+
204
+ ## Link Patterns
205
+
206
+ ### Pattern: Inline Reference
207
+
208
+ ```markdown
209
+ The release pipeline is defined in [ADR-065](../.cleo/adrs/ADR-065-release-pipeline.md).
210
+ ```
211
+
212
+ ### Pattern: Section Reference
213
+
214
+ ```markdown
215
+ See [§Worktree Discipline](#worktree-discipline) below for the full constraint.
216
+ ```
217
+
218
+ ### Pattern: External + Citation Comment
219
+
220
+ ```markdown
221
+ The default cache behavior changed in [Next.js 15](https://nextjs.org/blog/next-15)
222
+ — retrieved 2026-05-19.
223
+ ```
224
+
225
+ The retrieval date is essential when citing an external page that may
226
+ change. Without it, the reader can't tell whether the citation is
227
+ still accurate.
228
+
229
+ ## Callout Patterns
230
+
231
+ CLEO docs use bold-prefixed paragraphs rather than custom admonitions
232
+ (no special syntax).
233
+
234
+ ```markdown
235
+ **Note:** This feature requires CLEO v2026.5.81 or later.
236
+
237
+ **Warning:** Running this command on a dirty working tree will lose changes.
238
+
239
+ **Tip:** Use `cleo find` instead of `cleo list` for browsing.
240
+ ```
241
+
242
+ The three callout types: Note (informational), Warning (potential
243
+ foot-gun), Tip (efficiency improvement). Don't invent new ones.
244
+
245
+ ## Image Patterns
246
+
247
+ ### Pattern: Scoped UI Screenshot
248
+
249
+ ```markdown
250
+ ![The release pipeline dashboard showing three green checks](./images/release-dashboard.png)
251
+ ```
252
+
253
+ The alt text describes what the image conveys, not what it is. "Three
254
+ green checks" is meaningful; "Dashboard screenshot" is not.
255
+
256
+ ### Pattern: Diagram with Mermaid
257
+
258
+ ```markdown
259
+ ```mermaid
260
+ graph LR
261
+ A[Task created] --> B[Wave dispatched]
262
+ B --> C[Worker completes]
263
+ C --> D[Manifest appended]
264
+ D --> E[Task closed]
265
+ ```
266
+ ```
267
+
268
+ Mermaid renders inline in GitHub and most markdown viewers. Prefer
269
+ over PNG diagrams for anything textual — Mermaid is editable in
270
+ source control.
271
+
272
+ ## Frontmatter Patterns
273
+
274
+ YAML frontmatter goes at the very top, between `---` fences.
275
+
276
+ ```markdown
277
+ ---
278
+ title: How to configure the release pipeline
279
+ date: 2026-05-19
280
+ audience: maintainer
281
+ status: draft
282
+ ---
283
+
284
+ # How to configure the release pipeline
285
+ ...
286
+ ```
287
+
288
+ The first H1 in the body matches the title field. Keeping both in sync
289
+ is the writer's job.
290
+
291
+ ## Footnote and Aside Patterns
292
+
293
+ CLEO docs avoid markdown footnotes — they break in many renderers.
294
+ Use inline parenthetical references instead.
295
+
296
+ ```markdown
297
+ GOOD:
298
+ The orchestrator dispatches via `cleo orchestrate spawn` (see
299
+ `packages/cleo/src/commands/orchestrate/spawn.ts:107`).
300
+
301
+ BAD:
302
+ The orchestrator dispatches via `cleo orchestrate spawn`[^1].
303
+
304
+ [^1]: See `packages/cleo/src/commands/orchestrate/spawn.ts:107`.
305
+ ```
306
+
307
+ ## Whitespace and Structure
308
+
309
+ - One blank line between sections.
310
+ - Two blank lines around H1 headings (rare in CLEO docs — usually
311
+ only one H1 per file).
312
+ - No trailing whitespace.
313
+ - Final newline at end of file (POSIX requirement).
314
+ - Tables: align the `|` separators by eye in source; it makes diff
315
+ review easier.
316
+
317
+ ## Final-Pass Checklist
318
+
319
+ Before declaring a doc done, run through:
320
+
321
+ - [ ] All code blocks have language tags.
322
+ - [ ] All links have descriptive text (no "here", "this").
323
+ - [ ] All tables ≤ 5 columns.
324
+ - [ ] All headings state the point (not just the topic).
325
+ - [ ] All "users" replaced with "people" or "companies".
326
+ - [ ] All contractions present (don't, can't, won't).
327
+ - [ ] No "easy", "simple", "just", "obviously".
328
+ - [ ] Title and frontmatter title match.
329
+ - [ ] Final newline present.
@@ -229,3 +229,14 @@ Append ONE line to `{{MANIFEST_PATH}}`:
229
229
  - [ ] Output file written with "Files NOT Created" section
230
230
  - [ ] Manifest entry appended
231
231
  - [ ] Task completed via `cleo complete`
232
+
233
+ ---
234
+
235
+ ## See references/
236
+
237
+ Progressive disclosure — load on demand only:
238
+
239
+ - `references/chain-orchestration.md` — when to invoke lookup/write/review, input shapes, review loop budget
240
+ - `references/doc-types-and-templates.md` — Diátaxis grid plus CLEO-native (ADR, agent-output, skill) templates
241
+ - `references/style-coordination.md` — tone pillars, forbidden phrases, link/code/table discipline
242
+ - `references/anti-patterns.md` — twelve documentation coordination failure modes