Skip to content

Commit 24f5859

Browse files
UnbreakableMJclaude
andcommitted
docs(construct): hard-cap SKILL.md description at 1000 chars in tracked guidance
Promote the description limit from a soft "target <=1000" to a hard 1000-char cap (the loader's absolute limit is 1024; we cap at 1000 for margin) in the two tracked docs: AGENTS.md (the committed digest) and CONTRIBUTING.md (the full workflow). The maintainer-local CLAUDE.md overlay already carries it. Also note in CONTRIBUTING.md that microsoft-rust-guidelines is intentionally user-invocable: false (mandatory auto-load Rust base) so it isn't "fixed" by removing the field. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent f8b0a20 commit 24f5859

2 files changed

Lines changed: 17 additions & 11 deletions

File tree

AGENTS.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ rules that bite. (A maintainer-local `CLAUDE.md` overlay adds host-specific note
88

99
## Hard rules
1010

11-
- **`SKILL.md` frontmatter `description` ≤ 1024 characters.** The loader rejects
12-
any skill over the limit (`field 'description' in SKILL.md must be at most
13-
1024 characters`). Folded `description: >` blocks render by joining lines with
14-
spaces (blank lines → newlines, plus a trailing newline); that *rendered*
15-
length is what counts, not the raw line count. Keep a margin — target ≤ 1000.
16-
Some descriptions already run close, so re-check after any description edit.
11+
- **`SKILL.md` frontmatter `description` — hard cap 1000 characters.** The loader's
12+
absolute limit is 1024 (`field 'description' in SKILL.md must be at most 1024
13+
characters`), but this repo caps the *rendered* description at **1000** — it
14+
MUST NOT exceed 1000 chars. Folded `description: >` blocks render by joining
15+
lines with spaces (blank lines → newlines, plus a trailing newline); that
16+
rendered length is what counts, not the raw line count. Re-check after any edit.
1717
- **Rebuild BOTH bundles after any skill-dir edit**, in the same commit:
1818
`<name>.zip` (`zip -qr`, keeps dir entries) and `<name>.skill` (`zip -qrD`,
1919
drops them). A bundle that lags its `SKILL.md`/`references/` ships broken

CONTRIBUTING.md

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -135,11 +135,12 @@ in sync with the subdirectory listing.
135135

136136
## Editing rules
137137

138-
- **`SKILL.md` frontmatter `description` ≤ 1024 characters (hard limit).** The
139-
loader rejects anything longer. YAML folded scalars (`description: >`) join lines
140-
with spaces and add a trailing newline, so the **rendered** length is what
141-
counts. Keep a margin — **target ≤ 1000** — and re-check after any description
142-
edit:
138+
- **`SKILL.md` frontmatter `description` — hard cap 1000 characters.** The loader's
139+
absolute limit is 1024 (it rejects anything longer), but this repo caps the
140+
*rendered* description at **1000** — a description MUST NOT exceed 1000 chars.
141+
YAML folded scalars (`description: >`) join lines with spaces and add a trailing
142+
newline, so the **rendered** length is what counts. Re-check after any
143+
description edit:
143144
```sh
144145
python3 - "$skill/SKILL.md" <<'PY'
145146
import sys
@@ -153,6 +154,11 @@ in sync with the subdirectory listing.
153154
print(len('\n'.join(out))+1)
154155
PY
155156
```
157+
- **`microsoft-rust-guidelines` is intentionally `user-invocable: false`.** It is
158+
the mandatory auto-load Rust base — `spacecraft-standard` mandates loading it
159+
before any Rust and `spacecraft-rust-guidelines` defers to it as "load first," so
160+
it fires automatically and is hidden from the `/` menu on purpose. Do **not**
161+
remove the field to "fix" a perceived load failure — that is by design.
156162
- **`README.md` §2 catalogue is load-bearing.** Adding a skill directory means
157163
adding a matching **alphabetical** row to the table; removing one means deleting
158164
the row. The README catalogue and the directory list must always agree.

0 commit comments

Comments
 (0)