Skill craft
A skill is a reusable, triggerable procedure, not a solved-task narrative
and not a place to park static reference. Every skill earns its slot on four
pillars: Trigger (fires on the right requests, stays silent on adjacent
ones), Structure (frontmatter contract, progressive disclosure, soft
length budgets), Steering (leading words and bright-line rules over
repeated emphasis), and Pruning (cutting sediment, duplication, sprawl
and no-ops before they ship).
This skill has two branches and defaults to the safer one.
- New or materially revised skill → references/author.md.
- Assessment of an existing skill, read-only → references/audit.md.
- Default with no explicit authoring request: audit. Do not cross
audit → edit without an authority envelope naming
implement as
action-owner; surface that requirement instead of silently fixing what an
audit finds.
Shared doctrine
Both branches follow this without restating it in two voices:
- Three-mode invocation: direct audit; direct authoring under authority;
or composed, where audit is a companion to a primary lifecycle owner (for
example
implement) that stays the action-owner.
- Budgets: soft ~500-word body per branch file; the standing
catalogue-description lever is governed in
MAINTAINING.md; link it,
don't restate the number here.
- Token model, three-tier: always-loaded frontmatter, triggered branch
body, and entrypoint references loaded at one hop. Reference documents may
link to sibling references, but that depth is not recursively enforced by
check_harness.py.
- Reuse boundary: global skills express cross-project triggers, procedures
and gates. Convert contextual values into parameters, keep examples
synthetic and leave project policy local. Global promotion requires a
reusable trigger, artifact, fixture and ownership boundary. When evidence is
limited, keep it opt-in and provisional. Follow the repository gate in
MAINTAINING.md.
- Trigger fixtures: positive, negative, boundary and composition cases.
A keyword match is a candidate, not ground truth. Changes to routing text
re-run the held-out set.
- Contract-test boundary: a contract test protects a machine-enforced
invariant, never the prose that describes it. If the invariant has no
enforcing script, the correct output is either an enforcing script or
nothing, not an assertion about wording.
- Failure taxonomy: name the failure, don't just gesture at quality:
premature-completion, duplication, sediment, sprawl, no-op, negation-only.
- Description contract: front-load the first 250 characters with trigger
words and the nearest exclusion; keep boundary-routing negation explicit
(name the skill to use instead); never drop it for brevity.
- Provenance: any adaptation from a third-party source records source
URL, version/commit, retrieval date and licence in the repository
THIRD_PARTY_NOTICES.md index, with the full licence text under LICENSES/.
See THIRD_PARTY_NOTICES.md for this skill's
own Skill Optimizer lineage.
1---2name: skill-craft3description: Use to create, revise, or audit Agent Skills: SKILL.md, triggers, progressive disclosure, fixtures, overlap, token cost. Defaults to read-only audit; edits need authority. Not for plugin packaging (use plugin-creator) or delivery (use implement).4---56# Skill craft78A skill is a reusable, triggerable procedure, not a solved-task narrative9and not a place to park static reference. Every skill earns its slot on four10pillars: **Trigger** (fires on the right requests, stays silent on adjacent11ones), **Structure** (frontmatter contract, progressive disclosure, soft12length budgets), **Steering** (leading words and bright-line rules over13repeated emphasis), and **Pruning** (cutting sediment, duplication, sprawl14and no-ops before they ship).1516This skill has two branches and defaults to the safer one.1718- New or materially revised skill → [references/author.md](references/author.md).19- Assessment of an existing skill, read-only → [references/audit.md](references/audit.md).20- **Default with no explicit authoring request: audit.** Do not cross21 audit → edit without an authority envelope naming `implement` as22 action-owner; surface that requirement instead of silently fixing what an23 audit finds.2425## Shared doctrine2627Both branches follow this without restating it in two voices:2829- **Three-mode invocation:** direct audit; direct authoring under authority;30 or composed, where audit is a companion to a primary lifecycle owner (for31 example `implement`) that stays the action-owner.32- **Budgets:** soft ~500-word body per branch file; the standing33 catalogue-description lever is governed in `MAINTAINING.md`; link it,34 don't restate the number here.35- **Token model, three-tier:** always-loaded frontmatter, triggered branch36 body, and entrypoint references loaded at one hop. Reference documents may37 link to sibling references, but that depth is not recursively enforced by38 `check_harness.py`.39- **Reuse boundary:** global skills express cross-project triggers, procedures40 and gates. Convert contextual values into parameters, keep examples41 synthetic and leave project policy local. Global promotion requires a42 reusable trigger, artifact, fixture and ownership boundary. When evidence is43 limited, keep it opt-in and provisional. Follow the repository gate in44 [MAINTAINING.md](../../MAINTAINING.md).45- **Trigger fixtures:** positive, negative, boundary and composition cases.46 A keyword match is a candidate, not ground truth. Changes to routing text47 re-run the held-out set.48- **Contract-test boundary:** a contract test protects a machine-enforced49 invariant, never the prose that describes it. If the invariant has no50 enforcing script, the correct output is either an enforcing script or51 nothing, not an assertion about wording.52- **Failure taxonomy:** name the failure, don't just gesture at quality:53 premature-completion, duplication, sediment, sprawl, no-op, negation-only.54- **Description contract:** front-load the first 250 characters with trigger55 words and the nearest exclusion; keep boundary-routing negation explicit56 (name the skill to use instead); never drop it for brevity.57- **Provenance:** any adaptation from a third-party source records source58 URL, version/commit, retrieval date and licence in the repository59 `THIRD_PARTY_NOTICES.md` index, with the full licence text under `LICENSES/`.60 See [THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md) for this skill's61 own Skill Optimizer lineage.