Best for
- Use when creating or editing a SKILL.
reddb-io/red-skills/plugins/dev/skills/productivity/writing-for-agents/SKILL.md
Designs and revises documents that agents read, including skills, always-loaded instructions, and disclosed references. Use when creating or editing a SKILL.md, AGENTS.md, CLAUDE.md, agent-facing instructions, or documentation reached through a context pointer.
Decision brief
Designs and revises documents that agents read, including skills, always-loaded instructions, and disclosed references. md, AGENTS.
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/reddb-io/red-skills --skill "plugins/dev/skills/productivity/writing-for-agents"Inspect the Agent Skill "writing-for-agents" from https://github.com/reddb-io/red-skills/blob/3be29878d67493a7546c3492b77155990b3decc6/plugins/dev/skills/productivity/writing-for-agents/SKILL.md at commit 3be29878d67493a7546c3492b77155990b3decc6. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
1. Name the behaviour and reader — state what the agent must do differently after reading and which agent-read surface owns that behaviour. For a skill, gather its task, use cases, executable needs, and reference material. For an AGENTS.md or CLAUDE.md, identify why the rule mus…
When an early gather or interview phase is repeatedly rushed because the final artifact is visible in the same skill, split that phase into its own skill. The separate load boundary hides the payoff until the gather phase meets its own completion criterion.
[ ] The description's second sentence begins with "Use when …".
A context pointer names material outside the current context and states the condition for reaching it. Its wording is the routing decision: a perfect target behind a vague condition stays unread, while a precise “if X, read Y” loads at the moment it can change behaviour.
A context pointer names material outside the current context and states the condition for reaching it. Its wording is the routing decision: a perfect target behind a vague condition stays unread, while a precise “if X, read Y” loads at the moment it can change behaviour.
Permission review
The documentation asks the agent to read local files, directories, or repositories.
one-line pointer: `if X, read Y`. In-repo exemplars include `afk`'s Actions-laneThe documentation asks the agent to read local files, directories, or repositories.
[ ] The description names every trigger branch, including agent-read fileEvidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 91/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 16 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Name the behaviour and reader — state what the agent must do differently
after reading and which agent-read surface owns that behaviour. For a skill,
gather its task, use cases, executable needs, and reference material. For an
AGENTS.md or CLAUDE.md, identify why the rule must load in every matching
session instead of behind a context pointer.
Set completion criteria — bind the document and each procedural step to a checkable finish. Assess both clarity (can the agent distinguish done from not-done?) and demand (how much work the bound actually requires). Sharpen a fuzzy bound before splitting the sequence.
Design the information hierarchy — place each instruction at the lowest rung that still loads when needed: an in-file step, an in-file reference, or a disclosed reference. Co-locate material used by the same branch and write every context pointer around the condition that should activate it.
Draft in agent-operable language — make the positive target imperative,
use one term per concept, and include concrete before → after or input →
output examples. For a RedSkills SKILL.md, keep the
<what-to-do>/<supporting-info> split and apply
WRITING-STYLE.md at sentence level.
Prune against sources of truth — remove duplicated rules, environment caches, irrelevant detail, sediment, and paragraphs that fail the no-op test: “Would deleting this change the agent's behaviour?”
Review with the user — present the draft and ask whether it covers the intended cases, what is missing or unclear, and which section needs more or less detail. Finish only when the completion criteria and load placement are agreed.
A context pointer names material outside the current context and states the condition for reaching it. Its wording is the routing decision: a perfect target behind a vague condition stays unread, while a precise “if X, read Y” loads at the moment it can change behaviour.
AGENTS.md and CLAUDE.md rules are standing
context load; a model-invocable skill description is a smaller standing load.Move load deliberately. A context pointer trades standing context load for the risk or cognitive load of reaching the disclosed material.
Three rungs determine what sits beside what:
Progressive disclosure is the move down this ladder. Co-location is the inverse question: material used together should load together, so splitting a sequence that always travels as one merely adds a missed-pointer failure mode.
Every bound has two properties:
A fuzzy bound invites premature completion because later work pulls the agent forward. Sharpen the bound first; split a phase only when its criterion remains irreducibly fuzzy and the visible next phase keeps causing the rush.
Leading words are pretrained concepts the agent can think with, such as “tracer bullet” or “frontier.” Repeat the compact token where it recruits the same prior; repeat its explanation only at the single source of truth.
Negation is a steering failure mode: a prohibition activates the forbidden behaviour in context. State the positive target. When a hard ban carries unique safety value, pair it inline with the correct alternative. The sentence-level patterns and before → after examples remain in WRITING-STYLE.md; they complement this information hierarchy and do not replace it.
Prune with five tests:
skill-name/
├── SKILL.md # Main instructions (required)
├── REFERENCE.md # Detailed docs (only if needed)
├── EXAMPLES.md # Usage examples (only if needed)
└── scripts/ # Utility scripts (only if needed)
└── helper.js
---
name: skill-name
working-mode: interactive
description: Brief description of capability. Use when [specific triggers].
---
# Skill Name
<what-to-do>
[The primary directive — imperative, non-negotiable steps the agent executes.]
</what-to-do>
<supporting-info>
[Reference material consulted on demand. Link one level deep: if X, read
[REFERENCE.md](REFERENCE.md).]
</supporting-info>
Every SKILL.md header names the Working mode the skill serves — one
working-mode: key carrying exactly one of interactive, spec-driven,
ad-hoc, ADR-editing (ADR 0150 §2). The mode says how the work the skill
belongs to ENTERS RedSkills, which is what tells a reader where it runs:
interactive and ADR-editing work stays in the human's checkout, spec-driven and
ad-hoc work is coordinated by redskilled in daemon-placed storage.
/start → /to-spec → /to-tickets → /afk chain and
the skills whose whole subject is the Ticket queue that chain feeds./go, which mints one Ticket and hands it to redskilled at once./adr-editor, which lands ADR changes from a fresh worktree.Declaring none, two, or an unknown value fails the doc-contract guard
(apps/plugin-dev/tests/working-mode-guard.test.ts); leave the mode to be inferred and
every reader infers a different one.
The description is the context pointer the skill picker sees before loading — write it for the picker, not the reader. Give the agent enough to know what the capability is and when to trigger it, including keywords, contexts, and file types that distinguish it from neighbouring skills.
"Use when" so the trigger is
matchable verbatim.Good — distinguishes itself from every other document skill:
Extracts text and tables from PDFs, fills forms, and merges documents. Use when working with PDF files or document extraction.
Weak — gives the picker no usable condition:
Helps with documents.
Decide before writing the description. Set disable-model-invocation: true to
make a skill human-invoked; leave it absent when the model should follow the
description's context pointer on its own.
Deliberate operational commands default to human-invoked. Setup wizards, reports, and dispatch or maintenance verbs are operator decisions. Skills the model should proactively reach stay model-invocable, and their descriptions must earn the standing context load by distinguishing themselves from every other line.
Human invocation also makes the load decision reliable: the operator supplies the pointer explicitly. Model invocation depends on the agent recognizing that the description's condition matches the current task.
Add a utility script when an operation is deterministic, the same code would be generated repeatedly, or failures need explicit handling. Scripts save context and make repeated operations reliable.
Split when SKILL.md exceeds roughly 100 lines, content spans distinct domains,
or advanced material serves a rare branch. Keep references one level deep so a
context pointer never starts a chain.
For branch-gated material, move the branch to a sibling file and leave a
one-line pointer: if X, read Y. In-repo exemplars include afk's Actions-lane
reference, tdd's topic references, and prototype's LOGIC.md versus UI.md.
When an early gather or interview phase is repeatedly rushed because the final artifact is visible in the same skill, split that phase into its own skill. The separate load boundary hides the payoff until the gather phase meets its own completion criterion.
In-repo exemplars: /start hands off to /to-spec, and writing-fragments is
separate from writing-shape and writing-beats.
Operational TROUBLESHOOTING.md references use one fixed playbook entry format:
Symptom -> Confirm -> Recover -> Root fix. Define that convention here and have
each reference link back to writing-for-agents instead of re-explaining it.
Docs-contract tests for TROUBLESHOOTING references assert file existence, the SKILL.md link, and stable load-bearing headings. They do not assert prose wording; pinning prose turns a documentation contract into a stale-doc test.
"Use when …".Frequently asked questions
Designs and revises documents that agents read, including skills, always-loaded instructions, and disclosed references. md, AGENTS.
The source record exposes this install command: npx skills add https://github.com/reddb-io/red-skills --skill "plugins/dev/skills/productivity/writing-for-agents". Inspect the command and pinned source before running it.
Static rules flagged read-files in the source; the page lists the matching lines and excerpts.
Alternatives
oaustegard/claude-skills
Generate hierarchical _FEATURES.md files that describe what a codebase DOES from a user/consumer perspective, anchored to source symbols via tree-sitting. Supports large complex codebases through feature-driven decomposition into sub-feature files. Uses a multi-pass synthesis: orientation → detail → overview rewrite. Use when someone says "what does this do", "document features", "feature inventory", "_FEATURES.md", or needs to understand a codebase's purpose before modifying it. Complements tre
Postpartum-genushyacinthus29/dotnet-skills
Build long-running .NET background services with `BackgroundService`, Generic Host, graceful shutdown, configuration, logging, and deployment patterns suited to workers and daemons.
enuno/unifi-mcp-server
Specialized guide for adding new MCP tools to the UniFi MCP Server following project standards, UniFi API patterns, and test-driven development practices. Use when implementing new UniFi Network Controller features as MCP tools.
PaulRBerg/agent-skills
Create/scaffold/init a project-local agent skill under `.agents/skills` in an ordinary repository; defer to repository instructions that define a source catalog and lifecycle.