Skip to content
Back to skills

Writing Skills

ASecurity

/writing-skills — the house discipline for authoring SKILL.md skills that behave predictably. Loads the rules; the skill_writer subagent applies them.

  • 11 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 2, 2026
ai-agentsgo

Security analysis

A100/100

Scanned October 2, 2026

npx -y skills add protoLabsAI/protoAgent --skill writing-skills --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Writing Skills?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Writing Skills
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/protolabsai-writing-skills/badge)](https://www.skillsdirectory.com/skills/protolabsai-writing-skills)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: writing-skills
description: >-
  /writing-skills — the house discipline for authoring SKILL.md skills that
  behave predictably. Loads the rules; the skill_writer subagent applies them.
user_only: true
slash: writing-skills
---

# Writing Skills

A skill exists to wrangle determinism out of a stochastic system.
**Predictability** — the agent taking the same *process* every run, not
producing the same output — is the root virtue; every rule below serves it.

A protoAgent skill is a folder holding one `SKILL.md`: YAML frontmatter
(`name` + `description` required, description ≤ 1024 chars) over a markdown
body that becomes the agent's working instructions when the skill loads.
Deep docs: `docs/guides/skills.md`, `docs/guides/add-a-skill.md` (ADR 0052,
ADR 0060).

## Invocation classes — choose deliberately

- **Retrievable (default)** — indexed in the always-on `<available_skills>`
  list; the agent loads it with `load_skill`. Its description is scanned
  every turn, so the description is a real cost: write it as **triggers, not
  identity** — "Use when the user …, mentions …", one trigger per genuinely
  distinct branch, synonyms collapsed.
- **`user_facing: true` + `slash: <token>`** — additionally invokable as
  `/<token>` in chat.
- **`user_only: true`** — withheld from agent retrieval entirely; the slash
  is the only way in. Zero context cost; the *user* becomes the index that
  must remember it exists. The description turns human-facing: one plain
  sentence for the palette. Use this for rituals only ever fired by hand.

**Token collision check, every time:** slash precedence is goal > plugin
command > workflow > subagent > skill — a same-token workflow or subagent
silently shadows the skill (this is why `web-research` isn't `/research`).

## Body discipline

- **Steps end on a checkable completion criterion** — the agent must be able
  to tell done from not-done ("every modified surface accounted for", not
  "produce a list"). A fuzzy criterion invites premature completion.
- **Prefer a leading word** — a compact concept the model already holds
  (*tracer bullet*, *tight*, *red*) — over a restated triad; it anchors a
  region of behavior in one token, in the body (execution) and the
  description (invocation) alike.
- **Reference the docs, don't inline them.** Material only some runs need
  belongs in repo docs the body points at; the body carries what every run
  needs.

## Failure modes (diagnose with these)

- **Premature completion** — a step ends before it's done; sharpen the
  criterion first, split the sequence only if that fails.
- **Duplication** — one meaning in two places; costs tokens and maintenance.
- **Sediment** — stale layers that settle because adding feels safe and
  removing feels risky; the default fate of an unpruned skill.
- **Sprawl** — too long even when every line is live; push reference out.
- **No-op** — a line the model already obeys ("be thorough"); delete the
  sentence, don't trim it — or replace the weak word with a stronger one
  (*relentless*).

## Placement & workflow

Operator-authored skills live at `~/.protoagent/skills/<slug>/SKILL.md`
(create/edit via the console Skills surface — it round-trips the same
loader). Plugin-bundled skills live in the plugin's `skills/` dir; repo
examples in `config/skills/`. To draft or tighten one, delegate to the
**skill_writer** subagent — it returns the complete SKILL.md, its placement,
and the token to collision-check.

*(Discipline adapted from mattpocock/skills `writing-great-skills`, MIT.)*

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.