@cleocode/skills 2026.5.110 → 2026.5.112
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
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ct-documentor
|
|
3
3
|
description: Documentation coordinator with CLEO style guide compliance. Routes every canonical-doc write (spec, adr, research, handoff, note, llm-readme) through the docs SSoT via `cleo docs add` / `cleo docs publish` / `cleo docs fetch` — never raw filesystem writes. Coordinates ct-docs-lookup, ct-docs-write, ct-docs-review, ct-spec-writer, and ct-adr-recorder. Use when creating or updating documentation files, consolidating scattered documentation, or validating documentation against style standards. Triggers on documentation tasks, doc update requests, or style guide compliance checks.
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.6.0
|
|
5
5
|
tier: 3
|
|
6
6
|
core: false
|
|
7
7
|
category: specialist
|
|
@@ -241,6 +241,58 @@ T10366 establishes the registry contract; T10367 (docs add) and T10368
|
|
|
241
241
|
allocator — callers should continue invoking the existing writers
|
|
242
242
|
(`cleo docs add` dispatch handler, `writeChangesetEntry`) directly.
|
|
243
243
|
|
|
244
|
+
**T10367 LIVE — `cleo docs add --type changeset` delegates to
|
|
245
|
+
`writeChangesetEntry`.** The dispatch handler in
|
|
246
|
+
`packages/cleo/src/dispatch/domains/docs.ts` now branches on
|
|
247
|
+
`payload.type === 'changeset'` and routes the call through the
|
|
248
|
+
canonical dual-write transaction. This eliminates the second writer
|
|
249
|
+
for the `changeset` DocKind (the SG-DOCS-INTEGRITY invariant) — the
|
|
250
|
+
bytes that land on `.changeset/<slug>.md` AND the SSoT blob are
|
|
251
|
+
byte-identical regardless of which verb the operator invoked. The
|
|
252
|
+
`cleo changeset add` CLI remains the friendlier authoring surface
|
|
253
|
+
(it prompts for every required frontmatter field) while
|
|
254
|
+
`cleo docs add --type changeset --file <path>` works for agents that
|
|
255
|
+
already have a fully-formed changeset markdown blob in hand.
|
|
256
|
+
|
|
257
|
+
Contract for the docs-add path:
|
|
258
|
+
- The input file MUST carry valid changeset frontmatter
|
|
259
|
+
(`id`, `tasks`, `kind`, `summary`). Missing → `E_REQUIRES_CHANGESET_VERB`
|
|
260
|
+
with a fix hint pointing at `cleo changeset add` for guided authoring.
|
|
261
|
+
- When `--slug` is also passed it MUST match the frontmatter `id`
|
|
262
|
+
(the frontmatter is canonical) — divergence → `E_SLUG_MISMATCH`.
|
|
263
|
+
- The LAFS envelope on success carries `data.type === 'changeset'`,
|
|
264
|
+
`data.slug`, `data.attachmentId`, and `data.sha256` — round-trip
|
|
265
|
+
identical to what `cleo changeset add` emits.
|
|
266
|
+
|
|
267
|
+
#### CI gate — DocKind Writer Uniqueness (T10369)
|
|
268
|
+
|
|
269
|
+
`scripts/lint-dockind-writer-uniqueness.mjs` (CI job:
|
|
270
|
+
`DocKind Writer Uniqueness (T10369)`) enforces the
|
|
271
|
+
WriterRegistry invariants at PR-time. It refuses to merge a PR that:
|
|
272
|
+
|
|
273
|
+
1. Adds a new entry to `BUILTIN_DOC_KINDS` (in
|
|
274
|
+
`packages/contracts/src/docs-taxonomy.ts`) without a matching
|
|
275
|
+
descriptor in `writer-registry.ts` (`dockind-coverage-missing`).
|
|
276
|
+
2. Declares more than one descriptor for the same DocKind
|
|
277
|
+
(`dockind-coverage-collision` — the registry itself throws at module
|
|
278
|
+
load too, this gate surfaces it earlier in CI).
|
|
279
|
+
3. Has a `mode: 'ssot-first'` descriptor that does NOT match
|
|
280
|
+
`.cleo/canon.yml`'s `canonicalHome` for the same kind, or vice versa
|
|
281
|
+
(`canon-yml-ssot-first-drift`).
|
|
282
|
+
4. Adds a NEW raw `writeFileSync(path.md, …)` / `writeFile(path.md, …)`
|
|
283
|
+
call inside `packages/core/src/**` that is not in
|
|
284
|
+
`.lint-dockind-writer-baseline.json` (`unregistered-md-write`).
|
|
285
|
+
|
|
286
|
+
Schema-parity rules (#1-#3) are ALWAYS strict — there is no baseline.
|
|
287
|
+
The unregistered-md-write rule runs in baseline mode by default; count
|
|
288
|
+
decreases always pass, count increases fail. The two legitimate
|
|
289
|
+
non-DocKind `.md` writers (`packages/core/src/sessions/handoff-markdown.ts`
|
|
290
|
+
for session snapshots and `packages/core/src/changesets/writer.ts` for
|
|
291
|
+
the canonical `changeset` DocKind) are allowlisted in the script.
|
|
292
|
+
|
|
293
|
+
Per-line opt-out (use sparingly): append
|
|
294
|
+
`// dockind-writer-allowed: <reason>` on the writeFile line.
|
|
295
|
+
|
|
244
296
|
### Slug similarity warn (T10361 · closes T10167)
|
|
245
297
|
|
|
246
298
|
`cleo docs add` runs a fuzzy-match check against existing slugs for the
|