@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.
- package/package.json +1 -1
- package/skills/ct-adr-recorder/SKILL.md +74 -0
- package/skills/ct-adr-recorder/__tests__/skill-adr-recorder.test.ts +65 -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-research-agent/SKILL.md +9 -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 +71 -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 +10 -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 +9 -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 +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
|
+

|
|
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
|