Skill Writing
Acknowledgement: Shared by Peter Bamuhigire, techguypeter.com, +256 784 464178.
Use When
- Use when creating or upgrading reusable skills, specialist-role instructions, or vendor adapters. Covers agent-versus-skill boundaries, model-neutral canonical sources, triggers, capability and output contracts, progressive disclosure, validation, and repository quality gates.
Do Not Use When
- A narrower neighbouring skill owns the task or this workflow would not change the result.
Required Inputs
- Use the task-specific inputs declared in the core workflow below; identify missing required inputs before acting.
Workflow
- Follow the ordered core workflow below and load only the references needed for the current branch.
Quality Standards
- Apply the domain gates, evidence requirements, and acceptance criteria defined below.
Anti-Patterns
- Do not replace the domain-specific rules below with generic advice or load unrelated references.
Outputs
- Produce the named artefacts and evidence specified by the core output contract below.
References
- Use the
references/ directory for deep detail after reading the core workflow below.
- Use the
scripts/ directory for repository-native automation before inventing new tooling.
Use this skill for repository-native skill authoring. A Markdown file is an instruction artefact, not an autonomous agent: it becomes part of an agent only when a runner loads it into a model context, grants capabilities, and executes work. Encode reusable operational knowledge independently from any one runner, then add thin vendor adapters only where needed.
Core Model
| Concept |
Meaning |
Canonical content |
| Agent |
A specialised worker instantiated by a runner with context, tools, permissions, and an execution lifecycle |
Role, responsibility boundary, capability policy, handoff contract |
| Skill |
A reusable procedure or standard an agent can apply |
Trigger, workflow, decision rules, checks, output contract |
| Tool |
Equipment exposed by the runner |
Capability requirements and safety constraints, not vendor command syntax |
| Workflow |
An assignment that sequences one or more agents and skills |
Routing, dependencies, reconciliation, stop conditions |
Do not label every role Markdown file an agent. State whether the artefact is a role definition, skill, project instruction file, workflow, standard, or vendor adapter.
Repository Rules
- Keep
SKILL.md under 500 lines. Keep deeper markdown references lean and split them when they become hard to load or maintain.
- Use only validator-approved frontmatter keys:
name, description, license, allowed-tools, metadata.
- Make
description the trigger: what the skill does and when to use it.
- Keep the discovery description concise: at most 350 characters under this repository's catalogue policy, with only the user goal, trigger conditions, and a neighbour boundary.
- Put deep detail in
references/; keep SKILL.md focused on execution logic.
- Do not add meta-docs inside skills such as
README.md or CHANGELOG.md.
- Keep shared expertise in one canonical, model-neutral source. Adapters may point to it but must not copy its full content.
- Keep project-wide instruction files short: project rules, routing, safety, and links belong there; specialist bodies do not.
The boolean metadata.portable and list-valued metadata.compatible_with are
this repository's local authoring contract. They do not establish conformance
to another interchange schema or prove that a host has loaded the skill.
Require unique runtime names including claude-code and codex; preserve
additional declared runtimes. Before export, inspect the destination schema
and test a representative adapter and task. Report unavailable host checks as
NOT ASSESSED. See the current audit's metadata finding.
Five-Part Instruction Contract
Every reusable specialist instruction must define:
- Role or procedure — the specialised responsibility or repeatable job.
- Trigger — positive and negative activation conditions, including neighbouring routes.
- Instructions — ordered workflow, decision rules, failure handling, and stop conditions.
- Capabilities and permissions — what must or may be read, edited, executed, accessed, or delegated.
- Output contract — named artefacts, required sections, evidence, acceptance criteria, and handoff target.
For capability-based wording, write "when repository search is available, inspect the code before answering" rather than naming a vendor command. Put runner-specific tool names, model selection, directories, and delegation syntax only in adapters.
Authoring Workflow
1. Define the Reusable Problem
Create or update a skill only if it captures:
- A repeatable workflow.
- A stable architectural or domain pattern.
- A high-risk area where guardrails materially improve outcomes.
Do not create skills for generic programming knowledge or one-off tasks.
Runtime metadata budget
Skill names and descriptions are discovery metadata exposed before the model
chooses which full instruction body to load. Treat this metadata as a shared
runtime budget across local engines and plugins:
- Keep each description at or below the repository's 350-character limit; prefer one or two direct sentences. A host's separate runtime budget does not relax this limit.
- Put procedures, output contracts, examples, policy detail, and long trigger lists in the body or
references/.
- Keep one canonical
SKILL.md entrypoint per capability. Use ALIAS.md and the routing index for absorbed or renamed topics.
- Do not expose ignored, archived, or reference-only trees as runtime skill roots.
- Run the aggregate runtime validator against the exact roots a host exposes; a repository-local pass is not sufficient.
2. Choose the Skill Shape
Use one of these structures:
- Workflow skill: step-by-step execution for fragile or sequential work.
- Standards skill: decision rules, checklists, and gates for quality-sensitive domains.
- Domain skill: business concepts, invariants, and recurring implementation patterns.
If the request is primarily for a specialised worker rather than a procedure, create or update a role definition and keep its reusable procedures as separate skills. One role may use several skills; one skill may be used by several roles.
2A. Choose the Source and Adapter Boundary
Use the hierarchy appropriate to the target project:
AGENTS.md / CLAUDE.md project-wide operating and routing rules
.ai/standards/ shared model-neutral standards
.ai/agents/ model-neutral specialist roles
.ai/workflows/ model-neutral multi-step assignments
.ai/procedures/ model-neutral reusable procedures, when used
.claude/agents/ Claude-specific adapters
.agents/<skill>/SKILL.md Codex/open-agent skill adapters
.github/ Copilot-specific adapters
This repository's active skill-root SKILL.md files remain canonical unless a project explicitly adopts .ai/ as its canonical library. Never create parallel copies without naming which location owns the source of truth.
3. Keep the Core Lean
SKILL.md should contain:
- Scope and activation clues.
- Ordered workflow or decision logic.
- Non-negotiable standards.
- Short checklists.
- References to deeper files.
Move these to references/:
- Large examples
- Review templates
- Detailed schemas
- Long checklists
- Topic-specific deep dives
4. Encode Judgment, Not Boilerplate
Good skills tell Codex:
- What to prioritize
- What to avoid
- What tradeoffs matter
- What "done" means
Bad skills just restate obvious framework syntax or dump long tutorials.
5. Design for Graceful Capability Degradation
- If search or file access exists, require inspection before advice.
- If execution exists, require relevant checks and inspection of their results.
- If editing is unavailable, return a patch or implementation plan.
- If web access is unavailable, identify facts that remain unverified.
- If parallel workers exist, delegate only independent, bounded work and reconcile their findings.
- Never assume a tool, edit, command, or delegated task succeeded without evidence.
- Preserve a read-only default for analysis/review roles; grant write or destructive capabilities only when the task requires them.
6. Test the Routing and Contract
Test at least:
- A clear positive trigger.
- A near-neighbour prompt that must route elsewhere.
- An ambiguous prompt that should request or gather context.
- A limited-capability run.
- A failure or stop-condition case.
- The required output shape and evidence fields.
Quality Standard
Every skill in this repo should help Codex produce outputs that are:
- Production-ready
- Secure by default
- Performance-conscious
- Testable and maintainable
- User-centered
- Explicit about failure handling and operational risk
Use world-class-engineering as the baseline when writing engineering skills.
Frontmatter Standard
Use this template:
---
name: skill-name
description: Use when ...
---
Guidelines:
name must match the directory name exactly.
- Keep the description direct and specific.
- Front-load the main trigger phrase.
- Avoid filler and marketing language.
Reference Strategy
If a skill covers multiple subdomains, split references by topic so each file
has a single clear purpose (for example, one file for security gates, one for a
schema checklist, and one for a review template). Name each file after the topic
it owns, keep it loadable on its own, and link it directly from SKILL.md.
Do not reinvent common templates. The skill-composition-standards skill already
ships a reusable template library under its references/ directory, including a
threat-model-template.md for security gates, an entity-model-template.md and
normalisation-playbook.md for schema work, and a test-plan-template.md for
review and verification. Reuse those before creating a new local reference.
Do not bury important files several levels deep. Link them directly from SKILL.md.
Load universal agent and skill architecture when designing a canonical role library, vendor adapters, capability policies, or multi-agent workflows.
Book and Source-File Distillation Rule
When the user provides books, EPUBs, PDFs, course notes, long articles, or other
source files while creating or upgrading a skill:
Load and follow source distillation and copyright gate.
Never commit the source, a whole-work conversion, OCR output, page images, or
a chapter-sequential substitute. Process raw material only in a temporary
directory outside the repository and delete temporary conversions after use.
Treat the source files as temporary inputs. The finished skill must remain
useful after those files are deleted, moved, or renamed.
Do not merely link to the source file path. Distill the practical knowledge
into self-contained references/*.md files.
Preserve operational knowledge: workflows, decision tables, checklists,
failure modes, examples, quality gates, and output requirements.
Keep SKILL.md concise. Put durable depth in directly linked reference files.
Avoid copying long passages. Summarize, synthesize, and convert book knowledge
into reusable execution rules.
Record bibliographic attribution, not local download paths or piracy-site
metadata. Lawful access does not imply republication rights.
Add a short note in the reference file saying it is self-contained and was
prepared from provided source material, so future agents do not depend on the
original file.
If the source material is broad, split the result by practical topic rather
than by book chapter.
Validate that every new reference is linked from SKILL.md with clear
conditions for when to load it.
Upgrade Checklist
When improving an existing skill:
- Remove vague or generic advice.
- Add decision rules and release gates.
- Add real failure cases and anti-patterns.
- If book/source files were provided, make the upgraded skill self-contained and
do not depend on those files continuing to exist.
- Tighten the activation description.
- Link to other skills only when the dependency is genuinely useful.
- Re-check line counts after editing.
- Separate worker identity from reusable procedure.
- Replace vendor-specific commands in canonical content with capability-based instructions.
- Define permissions, read-only/write boundaries, stop conditions, output schema, and handoff target.
- Ensure adapters reference the canonical source and contain only runner-specific metadata or commands.
- Add positive, negative, collision, limited-capability, and failure-path test prompts.
Validation
After creating or updating a skill:
- Run
python -X utf8 skill-writing/scripts/quick_validate.py <skill-dir> (frontmatter, required sections, dual-compat markers, line limits).
- Run
python -X utf8 skill-writing/scripts/contract_gate.py --skill <skill-dir> (Evidence Produced contract from validation-contract). Use --all to scan the whole repo, --bundle <path> to validate a Release Evidence Bundle, and --strict to treat warnings as errors.
- Run
python -X utf8 scripts/skill_catalog_guardrails.py; any raw-source or
likely full-text finding blocks release.
- Run the coordination engine's aggregate runtime metadata validator against
the assembled local and plugin roots.
- Fix any frontmatter, structure, contract, source-ingestion, or runtime-budget issues.
- Sanity-check the skill against a realistic prompt.
- Ensure the skill still reads cleanly when loaded on its own.
Anti-Patterns
- Huge
SKILL.md files that act like textbooks.
- Trigger descriptions that are too broad to be useful.
- Long discovery descriptions that repeat the workflow or claim broad auto-loading. Fix: keep the trigger concise and move detail into references.
- Skills that duplicate existing skills without raising the quality bar.
- Example-heavy files with little operational guidance.
- Raw books, ebook conversions, OCR dumps, or chapter-by-chapter paraphrases in
a skill repository.
- Instructions that ignore security, performance, testing, or maintainability.
- Calling a Markdown file an autonomous agent without naming the runner, capabilities, and execution lifecycle.
- Copying full specialist instructions into
AGENTS.md, Claude adapters, Codex adapters, and Copilot files.
- Hard-coding model names without a measured cost, latency, or reasoning requirement.
- Granting broad write, shell, network, or production access to a role that only analyses or reviews.
- Multi-agent workflows that split dependent tasks, omit reconciliation, or allow workers to make conflicting edits.
Companion Skills
- Load
world-class-engineering when authoring engineering skills.
- Load
skill-safety-audit before sharing high-impact or security-sensitive skills.
Inputs
| Artefact |
Required? |
Why |
| Reusable problem and trigger examples |
yes |
Establish scope and routing |
| Neighbouring skill descriptions |
yes |
Prevent collisions |
| Runner capabilities and permission boundary |
yes |
Define safe execution |
Decision rules
| Condition |
Authoring choice |
Failure avoided |
| Repeatable procedure used by multiple roles |
Create or update a skill |
Persona-procedure coupling |
| Specialist identity with distinct permissions and handoff |
Create a role definition |
Treating Markdown as an autonomous agent |
| Runner-specific metadata or commands only |
Create a thin adapter |
Canonical-source drift |
Domain anti-patterns
- Copying canonical expertise into every adapter. Fix: link to one source and keep only runner metadata.
- Giving review roles write access. Fix: default analysis and review to read-only.
- Naming tools in model-neutral instructions. Fix: specify capabilities and put command names in adapters.
- Testing only positive triggers. Fix: add neighbour, collision, degraded-mode, and failure prompts.
- Declaring success without evidence. Fix: inspect tool results, diffs, and contract artefacts.
1---2name: skill-writing3description: Use when creating or upgrading reusable skills, specialist-role instructions, or vendor adapters. Covers agent-versus-skill boundaries, model-neutral canonical sources, triggers, capability and output contracts, progressive disclosure, validation, and repository quality gates.4---56# Skill Writing7Acknowledgement: Shared by Peter Bamuhigire, techguypeter.com, +256 784 464178.89<!-- dual-compat-start -->10## Use When1112- Use when creating or upgrading reusable skills, specialist-role instructions, or vendor adapters. Covers agent-versus-skill boundaries, model-neutral canonical sources, triggers, capability and output contracts, progressive disclosure, validation, and repository quality gates.1314## Do Not Use When1516- A narrower neighbouring skill owns the task or this workflow would not change the result.1718## Required Inputs1920- Use the task-specific inputs declared in the core workflow below; identify missing required inputs before acting.2122## Workflow2324- Follow the ordered core workflow below and load only the references needed for the current branch.2526## Quality Standards2728- Apply the domain gates, evidence requirements, and acceptance criteria defined below.2930## Anti-Patterns3132- Do not replace the domain-specific rules below with generic advice or load unrelated references.3334## Outputs3536- Produce the named artefacts and evidence specified by the core output contract below.3738## References3940- Use the `references/` directory for deep detail after reading the core workflow below.41- Use the `scripts/` directory for repository-native automation before inventing new tooling.42<!-- dual-compat-end -->43Use this skill for repository-native skill authoring. A Markdown file is an instruction artefact, not an autonomous agent: it becomes part of an agent only when a runner loads it into a model context, grants capabilities, and executes work. Encode reusable operational knowledge independently from any one runner, then add thin vendor adapters only where needed.4445## Core Model4647| Concept | Meaning | Canonical content |48|---|---|---|49| Agent | A specialised worker instantiated by a runner with context, tools, permissions, and an execution lifecycle | Role, responsibility boundary, capability policy, handoff contract |50| Skill | A reusable procedure or standard an agent can apply | Trigger, workflow, decision rules, checks, output contract |51| Tool | Equipment exposed by the runner | Capability requirements and safety constraints, not vendor command syntax |52| Workflow | An assignment that sequences one or more agents and skills | Routing, dependencies, reconciliation, stop conditions |5354Do not label every role Markdown file an agent. State whether the artefact is a role definition, skill, project instruction file, workflow, standard, or vendor adapter.5556## Repository Rules5758- Keep `SKILL.md` under 500 lines. Keep deeper markdown references lean and split them when they become hard to load or maintain.59- Use only validator-approved frontmatter keys: `name`, `description`, `license`, `allowed-tools`, `metadata`.60- Make `description` the trigger: what the skill does and when to use it.61- Keep the discovery description concise: at most 350 characters under this repository's catalogue policy, with only the user goal, trigger conditions, and a neighbour boundary.62- Put deep detail in `references/`; keep `SKILL.md` focused on execution logic.63- Do not add meta-docs inside skills such as `README.md` or `CHANGELOG.md`.64- Keep shared expertise in one canonical, model-neutral source. Adapters may point to it but must not copy its full content.65- Keep project-wide instruction files short: project rules, routing, safety, and links belong there; specialist bodies do not.6667The boolean `metadata.portable` and list-valued `metadata.compatible_with` are68this repository's local authoring contract. They do not establish conformance69to another interchange schema or prove that a host has loaded the skill.70Require unique runtime names including `claude-code` and `codex`; preserve71additional declared runtimes. Before export, inspect the destination schema72and test a representative adapter and task. Report unavailable host checks as73NOT ASSESSED. See the [current audit's metadata finding](../../../docs/audits/2026-09-06-kaizen/06-standards-benchmark.md).7475## Five-Part Instruction Contract7677Every reusable specialist instruction must define:78791. **Role or procedure** — the specialised responsibility or repeatable job.802. **Trigger** — positive and negative activation conditions, including neighbouring routes.813. **Instructions** — ordered workflow, decision rules, failure handling, and stop conditions.824. **Capabilities and permissions** — what must or may be read, edited, executed, accessed, or delegated.835. **Output contract** — named artefacts, required sections, evidence, acceptance criteria, and handoff target.8485For capability-based wording, write "when repository search is available, inspect the code before answering" rather than naming a vendor command. Put runner-specific tool names, model selection, directories, and delegation syntax only in adapters.8687## Authoring Workflow8889### 1. Define the Reusable Problem9091Create or update a skill only if it captures:9293- A repeatable workflow.94- A stable architectural or domain pattern.95- A high-risk area where guardrails materially improve outcomes.9697Do not create skills for generic programming knowledge or one-off tasks.9899### Runtime metadata budget100101Skill names and descriptions are discovery metadata exposed before the model102chooses which full instruction body to load. Treat this metadata as a shared103runtime budget across local engines and plugins:104105- Keep each description at or below the repository's 350-character limit; prefer one or two direct sentences. A host's separate runtime budget does not relax this limit.106- Put procedures, output contracts, examples, policy detail, and long trigger lists in the body or `references/`.107- Keep one canonical `SKILL.md` entrypoint per capability. Use `ALIAS.md` and the routing index for absorbed or renamed topics.108- Do not expose ignored, archived, or reference-only trees as runtime skill roots.109- Run the aggregate runtime validator against the exact roots a host exposes; a repository-local pass is not sufficient.110111### 2. Choose the Skill Shape112113Use one of these structures:114115- Workflow skill: step-by-step execution for fragile or sequential work.116- Standards skill: decision rules, checklists, and gates for quality-sensitive domains.117- Domain skill: business concepts, invariants, and recurring implementation patterns.118119If the request is primarily for a specialised worker rather than a procedure, create or update a role definition and keep its reusable procedures as separate skills. One role may use several skills; one skill may be used by several roles.120121### 2A. Choose the Source and Adapter Boundary122123Use the hierarchy appropriate to the target project:124125```text126AGENTS.md / CLAUDE.md project-wide operating and routing rules127.ai/standards/ shared model-neutral standards128.ai/agents/ model-neutral specialist roles129.ai/workflows/ model-neutral multi-step assignments130.ai/procedures/ model-neutral reusable procedures, when used131.claude/agents/ Claude-specific adapters132.agents/<skill>/SKILL.md Codex/open-agent skill adapters133.github/ Copilot-specific adapters134```135136This repository's active skill-root `SKILL.md` files remain canonical unless a project explicitly adopts `.ai/` as its canonical library. Never create parallel copies without naming which location owns the source of truth.137138### 3. Keep the Core Lean139140`SKILL.md` should contain:141142- Scope and activation clues.143- Ordered workflow or decision logic.144- Non-negotiable standards.145- Short checklists.146- References to deeper files.147148Move these to `references/`:149150- Large examples151- Review templates152- Detailed schemas153- Long checklists154- Topic-specific deep dives155156### 4. Encode Judgment, Not Boilerplate157158Good skills tell Codex:159160- What to prioritize161- What to avoid162- What tradeoffs matter163- What "done" means164165Bad skills just restate obvious framework syntax or dump long tutorials.166167### 5. Design for Graceful Capability Degradation168169- If search or file access exists, require inspection before advice.170- If execution exists, require relevant checks and inspection of their results.171- If editing is unavailable, return a patch or implementation plan.172- If web access is unavailable, identify facts that remain unverified.173- If parallel workers exist, delegate only independent, bounded work and reconcile their findings.174- Never assume a tool, edit, command, or delegated task succeeded without evidence.175- Preserve a read-only default for analysis/review roles; grant write or destructive capabilities only when the task requires them.176177### 6. Test the Routing and Contract178179Test at least:180181- A clear positive trigger.182- A near-neighbour prompt that must route elsewhere.183- An ambiguous prompt that should request or gather context.184- A limited-capability run.185- A failure or stop-condition case.186- The required output shape and evidence fields.187188## Quality Standard189190Every skill in this repo should help Codex produce outputs that are:191192- Production-ready193- Secure by default194- Performance-conscious195- Testable and maintainable196- User-centered197- Explicit about failure handling and operational risk198199Use `world-class-engineering` as the baseline when writing engineering skills.200201## Frontmatter Standard202203Use this template:204205```yaml206---207name: skill-name208description: Use when ...209---210```211212Guidelines:213214- `name` must match the directory name exactly.215- Keep the description direct and specific.216- Front-load the main trigger phrase.217- Avoid filler and marketing language.218219## Reference Strategy220221If a skill covers multiple subdomains, split references by topic so each file222has a single clear purpose (for example, one file for security gates, one for a223schema checklist, and one for a review template). Name each file after the topic224it owns, keep it loadable on its own, and link it directly from `SKILL.md`.225226Do not reinvent common templates. The `skill-composition-standards` skill already227ships a reusable template library under its `references/` directory, including a228`threat-model-template.md` for security gates, an `entity-model-template.md` and229`normalisation-playbook.md` for schema work, and a `test-plan-template.md` for230review and verification. Reuse those before creating a new local reference.231232Do not bury important files several levels deep. Link them directly from `SKILL.md`.233234Load [universal agent and skill architecture](references/universal-agent-skill-architecture.md) when designing a canonical role library, vendor adapters, capability policies, or multi-agent workflows.235236### Book and Source-File Distillation Rule237238When the user provides books, EPUBs, PDFs, course notes, long articles, or other239source files while creating or upgrading a skill:240241- Load and follow [source distillation and copyright gate](references/source-distillation-and-copyright.md).242- Never commit the source, a whole-work conversion, OCR output, page images, or243 a chapter-sequential substitute. Process raw material only in a temporary244 directory outside the repository and delete temporary conversions after use.245246- Treat the source files as temporary inputs. The finished skill must remain247 useful after those files are deleted, moved, or renamed.248- Do not merely link to the source file path. Distill the practical knowledge249 into self-contained `references/*.md` files.250- Preserve operational knowledge: workflows, decision tables, checklists,251 failure modes, examples, quality gates, and output requirements.252- Keep `SKILL.md` concise. Put durable depth in directly linked reference files.253- Avoid copying long passages. Summarize, synthesize, and convert book knowledge254 into reusable execution rules.255- Record bibliographic attribution, not local download paths or piracy-site256 metadata. Lawful access does not imply republication rights.257- Add a short note in the reference file saying it is self-contained and was258 prepared from provided source material, so future agents do not depend on the259 original file.260- If the source material is broad, split the result by practical topic rather261 than by book chapter.262- Validate that every new reference is linked from `SKILL.md` with clear263 conditions for when to load it.264265## Upgrade Checklist266267When improving an existing skill:268269- Remove vague or generic advice.270- Add decision rules and release gates.271- Add real failure cases and anti-patterns.272- If book/source files were provided, make the upgraded skill self-contained and273 do not depend on those files continuing to exist.274- Tighten the activation description.275- Link to other skills only when the dependency is genuinely useful.276- Re-check line counts after editing.277- Separate worker identity from reusable procedure.278- Replace vendor-specific commands in canonical content with capability-based instructions.279- Define permissions, read-only/write boundaries, stop conditions, output schema, and handoff target.280- Ensure adapters reference the canonical source and contain only runner-specific metadata or commands.281- Add positive, negative, collision, limited-capability, and failure-path test prompts.282283## Validation284285After creating or updating a skill:2862871. Run `python -X utf8 skill-writing/scripts/quick_validate.py <skill-dir>` (frontmatter, required sections, dual-compat markers, line limits).2882. Run `python -X utf8 skill-writing/scripts/contract_gate.py --skill <skill-dir>` (Evidence Produced contract from `validation-contract`). Use `--all` to scan the whole repo, `--bundle <path>` to validate a Release Evidence Bundle, and `--strict` to treat warnings as errors.2893. Run `python -X utf8 scripts/skill_catalog_guardrails.py`; any raw-source or290 likely full-text finding blocks release.2914. Run the coordination engine's aggregate runtime metadata validator against292 the assembled local and plugin roots.2935. Fix any frontmatter, structure, contract, source-ingestion, or runtime-budget issues.2946. Sanity-check the skill against a realistic prompt.2957. Ensure the skill still reads cleanly when loaded on its own.296297## Anti-Patterns298299- Huge `SKILL.md` files that act like textbooks.300- Trigger descriptions that are too broad to be useful.301- Long discovery descriptions that repeat the workflow or claim broad auto-loading. Fix: keep the trigger concise and move detail into references.302- Skills that duplicate existing skills without raising the quality bar.303- Example-heavy files with little operational guidance.304- Raw books, ebook conversions, OCR dumps, or chapter-by-chapter paraphrases in305 a skill repository.306- Instructions that ignore security, performance, testing, or maintainability.307- Calling a Markdown file an autonomous agent without naming the runner, capabilities, and execution lifecycle.308- Copying full specialist instructions into `AGENTS.md`, Claude adapters, Codex adapters, and Copilot files.309- Hard-coding model names without a measured cost, latency, or reasoning requirement.310- Granting broad write, shell, network, or production access to a role that only analyses or reviews.311- Multi-agent workflows that split dependent tasks, omit reconciliation, or allow workers to make conflicting edits.312313## Companion Skills314315- Load `world-class-engineering` when authoring engineering skills.316- Load `skill-safety-audit` before sharing high-impact or security-sensitive skills.317318## Inputs319320| Artefact | Required? | Why |321|---|---|---|322| Reusable problem and trigger examples | yes | Establish scope and routing |323| Neighbouring skill descriptions | yes | Prevent collisions |324| Runner capabilities and permission boundary | yes | Define safe execution |325326## Decision rules327328| Condition | Authoring choice | Failure avoided |329|---|---|---|330| Repeatable procedure used by multiple roles | Create or update a skill | Persona-procedure coupling |331| Specialist identity with distinct permissions and handoff | Create a role definition | Treating Markdown as an autonomous agent |332| Runner-specific metadata or commands only | Create a thin adapter | Canonical-source drift |333334## Domain anti-patterns335336- Copying canonical expertise into every adapter. Fix: link to one source and keep only runner metadata.337- Giving review roles write access. Fix: default analysis and review to read-only.338- Naming tools in model-neutral instructions. Fix: specify capabilities and put command names in adapters.339- Testing only positive triggers. Fix: add neighbour, collision, degraded-mode, and failure prompts.340- Declaring success without evidence. Fix: inspect tool results, diffs, and contract artefacts.