Reference-First Skill Template
Why this exists
This package is the default starting point for new or refactored skills in this repo.
It demonstrates the intended split of responsibilities:
SKILL.md routes the workflow
references/ holds method, judgment, and exemplars
assets/ holds machine-readable contracts
scripts/ handles deterministic execution only
Use it as a shape to copy and customize, not as a domain-specific skill.
Inputs
- the job the skill should encode
- the expected inputs and outputs for that job
- acceptance criteria and failure conditions
- any domain packs, schemas, or existing artifacts that must be reused
Outputs
- a lean
SKILL.md
references/overview.md
references/examples_good.md
references/examples_bad.md
assets/schema.json
scripts/run.py
Workflow
- Define the job and its boundary
- write down the trigger, intended outcome, and explicit non-goals
- separate reusable behavior from one-off project context
- Write
SKILL.md as a router
- keep only the activation rule, inputs, outputs, workflow, block conditions, and resource routing
- do not copy large judgment rules, domain essays, or sentence banks into this file
- Move reusable thinking into
references/
- put domain knowledge, decision rubrics, and method notes in
references/overview.md
- if the skill can emit reader-facing text, include both
references/examples_good.md and references/examples_bad.md
- keep reference files one hop away from
SKILL.md; avoid deep reference chains
- Put contracts into
assets/
- store machine-readable schemas, templates, or static resource packs in
assets/
- use
assets/schema.json for the structured artifact that the skill validates or emits
- Keep
scripts/run.py deterministic
- allow file discovery, normalization, validation, manifest generation, and external tool calls
- keep prose templates, domain defaults, and reader-facing judgment out of Python
- Validate hygiene before reuse
- make sure the package has no unresolved placeholders in reader-facing examples
- make sure
SKILL.md explicitly tells the agent when to read each reference file
When to read references/
- Always read
references/overview.md before customizing or applying this template.
- Read
references/examples_good.md when the skill writes reader-facing text or shapes another writer skill.
- Read
references/examples_bad.md when cleaning up generator voice, pipeline jargon, or weak deliverable framing.
- If the skill has domain variants, add explicit domain-pack references and mention the selection rule here.
Assets to reuse
assets/schema.json: a generic contract for a reference-first skill manifest; adapt it to the concrete skill you are building.
Script role
scripts/run.py is a minimal validator and manifest builder.
- Read or patch the script only when you need deterministic behavior.
- Do not rely on the script to supply the skill's method, voice, domain taxonomy, or reader-facing examples.
Block conditions
Stop and fix the package before reuse if any of these are true:
SKILL.md duplicates long reference content instead of routing to references/
run.py contains domain defaults, sentence libraries, or filler prose
- reader-facing examples contain unresolved placeholders or internal pipeline jargon
- the schema does not match the artifact the skill is supposed to validate or emit
Done checklist
SKILL.md stays lean and references other files explicitly
references/ contains the actual method and exemplars
assets/ contains machine-readable contracts only
scripts/run.py stays deterministic and small
- the package can be understood by reading
SKILL.md and the referenced files without reading all Python first
1---2name: template-reference-first3description: Internal template for creating or refactoring a skill into the repository's reference-first shape. **Trigger**: reference-first template, blueprint skill, create a reusable skill, refactor a script-heavy skill. **Use when**: you need a lean `SKILL.md`, explicit `references/`, machine-readable `assets/`, and a minimal deterministic `run.py`.4---56# Reference-First Skill Template78## Why this exists910This package is the default starting point for new or refactored skills in this repo.1112It demonstrates the intended split of responsibilities:13- `SKILL.md` routes the workflow14- `references/` holds method, judgment, and exemplars15- `assets/` holds machine-readable contracts16- `scripts/` handles deterministic execution only1718Use it as a shape to copy and customize, not as a domain-specific skill.1920## Inputs2122- the job the skill should encode23- the expected inputs and outputs for that job24- acceptance criteria and failure conditions25- any domain packs, schemas, or existing artifacts that must be reused2627## Outputs2829- a lean `SKILL.md`30- `references/overview.md`31- `references/examples_good.md`32- `references/examples_bad.md`33- `assets/schema.json`34- `scripts/run.py`3536## Workflow37381. Define the job and its boundary39- write down the trigger, intended outcome, and explicit non-goals40- separate reusable behavior from one-off project context41422. Write `SKILL.md` as a router43- keep only the activation rule, inputs, outputs, workflow, block conditions, and resource routing44- do not copy large judgment rules, domain essays, or sentence banks into this file45463. Move reusable thinking into `references/`47- put domain knowledge, decision rubrics, and method notes in `references/overview.md`48- if the skill can emit reader-facing text, include both `references/examples_good.md` and `references/examples_bad.md`49- keep reference files one hop away from `SKILL.md`; avoid deep reference chains50514. Put contracts into `assets/`52- store machine-readable schemas, templates, or static resource packs in `assets/`53- use `assets/schema.json` for the structured artifact that the skill validates or emits54555. Keep `scripts/run.py` deterministic56- allow file discovery, normalization, validation, manifest generation, and external tool calls57- keep prose templates, domain defaults, and reader-facing judgment out of Python58596. Validate hygiene before reuse60- make sure the package has no unresolved placeholders in reader-facing examples61- make sure `SKILL.md` explicitly tells the agent when to read each reference file6263## When to read `references/`6465- Always read `references/overview.md` before customizing or applying this template.66- Read `references/examples_good.md` when the skill writes reader-facing text or shapes another writer skill.67- Read `references/examples_bad.md` when cleaning up generator voice, pipeline jargon, or weak deliverable framing.68- If the skill has domain variants, add explicit domain-pack references and mention the selection rule here.6970## Assets to reuse7172- `assets/schema.json`: a generic contract for a reference-first skill manifest; adapt it to the concrete skill you are building.7374## Script role7576- `scripts/run.py` is a minimal validator and manifest builder.77- Read or patch the script only when you need deterministic behavior.78- Do not rely on the script to supply the skill's method, voice, domain taxonomy, or reader-facing examples.7980## Block conditions8182Stop and fix the package before reuse if any of these are true:83- `SKILL.md` duplicates long reference content instead of routing to `references/`84- `run.py` contains domain defaults, sentence libraries, or filler prose85- reader-facing examples contain unresolved placeholders or internal pipeline jargon86- the schema does not match the artifact the skill is supposed to validate or emit8788## Done checklist8990- `SKILL.md` stays lean and references other files explicitly91- `references/` contains the actual method and exemplars92- `assets/` contains machine-readable contracts only93- `scripts/run.py` stays deterministic and small94- the package can be understood by reading `SKILL.md` and the referenced files without reading all Python first