diff --git a/.agents/writing-docs.md b/.agents/writing-docs.md new file mode 100644 index 0000000..433c6bf --- /dev/null +++ b/.agents/writing-docs.md @@ -0,0 +1,57 @@ +# Writing docs pages + +Every promoted skill (`engineering/`, `productivity/`, `misc/`) has a human-facing **docs page** at `docs/.md`, published at `https://aihero.dev/skills-`. The page is not the skill and not a copy of `SKILL.md` — it is the explainer a human reads to decide whether to reach for the skill. Skills in `personal/`, `in-progress/`, and `deprecated/` get no page, mirroring the README rule. + +Act whenever a promoted skill is added, renamed, or has its behaviour changed: create or re-sync its docs page. A rename moves the file too (`docs/.md` → `docs/.md`), because the published URL tracks the name. + +Because these pages are published on `aihero.dev`, **every link is absolute** — never a repo-relative path. A link to another skill points at `https://aihero.dev/skills-`; a link into the repo points at its full `https://github.com/mattpocock/skills/...` URL. A relative link that works in the repo breaks once published. + +## Page structure + +Fill the template below. The **fixed frame** (install block, source link, `## What it does`) appears on every page. The **adaptable middle** carries only the sections this particular skill earns — delete the ones it doesn't. + + + +```bash +npx skills add mattpocock/skills --skill= +``` + +[Source](https://github.com/mattpocock/skills/tree/main/skills//) + +## What it does + +One or two plain-language paragraphs. Lead with the skill's one-sentence job, then state the **load-bearing constraint** — the single fact that makes this skill behave differently from the obvious default (for `to-prd`: it does not interview the user again, it synthesises what is already known). This line is the most valuable on the page; never omit it. + +## + +Unpack what the skill produces or how it moves — e.g. a list of the artifact's parts, or a description of the loop it runs. Use as many of these sections as the skill needs; omit if it needs none. + +## + +Name the one idea worth calling out, in the skill's own vocabulary, and say why it matters (`to-prd`'s `## Deep modules` explains what a deep module is and why it helps agentic testing). Omit if there is none. + +## How it fits the workflow + +```txt +grill-with-docs → to-prd → to-issues → tdd +``` + +A sentence on where in that chain to reach for the skill. Include only when the skill belongs to a chain. + +## Pairs well with + +- [](https://aihero.dev/skills-), because-clause saying what the pairing buys + + + +## Conventions + +- Explain the **why**, not the process. The page sells and situates the skill; it never reproduces the `SKILL.md` steps or template dumps — a human choosing a tool does not need the runbook. +- Use the skill's **leading words** (_seam_, _deep module_, _tracer bullet_) so the page and the skill speak one language. + +## Done when + +- The page exists at `docs/.md`, and no stale page survives a rename. +- The install command and source link name the correct bucket and skill. +- The load-bearing constraint is stated in `## What it does`. +- Every link is absolute, and every one resolves. diff --git a/CLAUDE.md b/CLAUDE.md index 0746965..b164ee0 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -13,6 +13,8 @@ Each skill entry in the top-level `README.md` must link the skill name to its `S Each bucket folder has a `README.md` that lists every skill in the bucket with a one-line description, with the skill name linked to its `SKILL.md`. Bucket `README.md`s and the top-level `README.md` group entries into **User-invoked** and **Model-invoked**. -Every `SKILL.md` is either user-invoked (`disable-model-invocation: true`, reachable only by the human) or model-invoked (model- or user-reachable). For the full definitions, description conventions, and why a user-invoked skill can invoke model-invoked skills but never another user-invoked one, see [.agents/invocation.md](./.agents/invocation.md). +Every promoted skill also has a human-facing docs page at `docs/.md`. When you add, rename, or change the behaviour of a skill in `engineering/`, `productivity/`, or `misc/`, create or re-sync its docs page following [.agents/writing-docs.md](./.agents/writing-docs.md). + +Every `SKILL.md` is either user-invoked (`disable-model-invocation: true`, reachable only by the human) or model-invoked (model- or user-reachable). See [.agents/invocation.md](./.agents/invocation.md). To (re)link every skill into the local harness skill directories (`~/.claude/skills`, `~/.agents/skills`), run `scripts/link-skills.sh`. Each entry is a symlink into this repo, so a `git pull` keeps installed skills current; re-run the script after adding, removing, or renaming a skill.