writing-skills · git:20260920.8265b5c · 2026-09-20 · sha256 9e74b7e83faacbd2

writing-skills git:20260920.8265b5cA

Immutable. This exact content is served forever at /api/v1/blob/9e74b7e83faacbd2.

---
name: writing-skills
description: "Use when creating new skills, editing existing skills, or verifying skills work before deployment"
---

# Writing Skills

## Purpose

Create the smallest reusable skill that changes decisions or improves task
execution without constraining unrelated work. Skill changes use behavior
validation, not a code TDD route. This validation does not require loading `aegis:test-driven-development`.

## Default Path

### 1. Establish Need And Ownership

- Name the reusable behavior gap, intended users/hosts, and non-goals.
- Check whether an existing skill, project rule, host adapter, or automated
  check already owns it. Prefer the smallest existing owner.
- For an existing skill, inspect its references, manifests or generated copies,
  discovery tests, and bundled resources before changing or retiring them.
- Create a skill only for reusable, non-obvious guidance. Keep one-off project
  conventions in the project owner and automate mechanical constraints when
  practical.

### 2. Record Behavior Before Editing

Use representative tasks, not questions that merely ask the agent to recite
instructions.

- New skill: run a no-skill control.
- For an existing skill, run the current version first; add a no-skill ablation
  only when testing whether the skill itself needs to exist.
- Cover positive triggers, negative near-misses, and a pressure or application
  case appropriate to the skill type.
- Record decisions, missed or extra invocations, unsafe workarounds, evidence
  references, and unknowns. Do not treat line or byte counts as behavior proof.

If meaningful behavior cannot be evaluated, stop at `needs-verification`; do
not claim that the skill is deployment-ready or capability-preserving.

### 3. Design The Minimum Instruction Surface

- Assume the agent is capable. Include only non-obvious context, decision
  criteria, safety boundaries, and steps whose omission caused an observed gap.
- Match specificity to risk: allow judgment for open work; use exact sequences
  only for fragile, permission-sensitive, or safety-critical operations.
- Keep the description concise, third-person, and discriminating. State the
  capability and when it applies; add an exclusion only when it prevents likely
  misrouting. Do not turn the description into a procedural shortcut.
- Keep the executable default path and non-omittable constraints in `SKILL.md`.
  Move substantial conditional detail to a direct reference and state the
  evidence trigger for reading it.
- Keep references one level deep where practical. Do not load every reference
  by default or duplicate its content in the main body.
- Add an example only when it materially stabilizes a decision or output. One
  representative example is normally enough.
- Keep portable method instructions host-neutral. Put host tool names, install
  paths, and UI choreography in their host-owned documentation.

The canonical repository shape is `skills/<skill-name>/SKILL.md` with only the
supporting references, scripts, or assets the workflow actually uses. Use the
repository's host docs or the target host's live specification for optional
metadata instead of copying a vendor manual into the skill.

### 4. Make The Smallest Change

Address observed gaps and remove superseded duplication in the same slice.
Preserve public attribution and any externally supported contract. When
retiring an internal owner, fallback, or resource, compose
`aegis:anti-entropy-governance`; do not leave a compatibility copy without
dependency evidence.

Do not convert one model's phrasing, one historical incident, or a hypothetical
edge case into a universal rule.

### 5. Validate The Candidate

Re-run the same positive, negative, and pressure/application scenarios under a
comparable model, tool, and host configuration. Compare outcomes, not wording.

Also verify:

- frontmatter, name, and description parse on supported hosts;
- intended requests still discover the skill and near-misses do not;
- every conditional reference is reachable from an explicit trigger;
- changed scripts run successfully;
- retired files and instructions have no live references;
- repository workflow, boundary, packaging, and host checks relevant to the
  touched surface pass.

If behavior regresses, restore the missing obligation or narrow the change;
do not add a second owner or fallback to mask it.

## Scenario Selection

| Skill type | Representative evidence |
| --- | --- |
| Discipline or safety | realistic pressure and authorization boundaries |
| Technique | application, variation, and missing-information cases |
| Pattern | recognition, application, and counter-example cases |
| Reference | retrieval, correct use, and common-gap cases |

For a complex or high-risk skill where an independent evaluator adds confidence,
read `testing-skills-with-subagents.md`.

## Completion Record

Keep the result compact and auditable in natural prose or equivalent fields:

- behavior gap and canonical owner;
- baseline and candidate scenario results;
- retained and retired obligations/resources;
- trigger and reference checks;
- verification commands and uncovered hosts/models;
- status: `verified`, `needs-verification`, or `blocked`.

This is method-pack evidence, not authoritative completion or deployment
approval.