writing-great-skills

Provides vocabulary and principles for writing predictable, well-structured AI agent skills.

Updated May 11, 2026
One-click install
npx skills add https://github.com/mmnavarr/harness --skill writing-great-skills-mmnavarr
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: writing-great-skills
Source: https://github.com/mmnavarr/harness/tree/main/skills/writing-great-skills
Command: npx skills add https://github.com/mmnavarr/harness --skill writing-great-skills-mmnavarr

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Writing skills for AI agents often produces bloated, unreliable instructions that fire inconsistently or steer the agent unpredictably. This Skill supplies a shared vocabulary and decision framework for structuring, invoking, and pruning skills so the agent behaves the same way on every run. ## Core Features & Use Cases - Invocation Design: Decide between model-invoked and user-invoked skills by weighing context load against cognitive load, and write trigger-rich descriptions. - Information Hierarchy: Organize content into steps, in-file reference, and disclosed reference behind context pointers, using progressive disclosure and co-location. - Failure-Mode Diagnosis: Identify and fix premature completion, duplication, sediment, sprawl, no-ops, and negation in existing skills. - Use Case: When a skill you wrote fires unreliably or has grown to hundreds of lines, invoke this Skill to diagnose the failure mode and restructure it using the glossary's levers. ## Quick Start Ask the agent to review your SKILL.md using the writing-great-skills reference and suggest improvements to its description and structure.

Frequently Asked Questions about writing-great-skills

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write a good skill description for an AI agent?▼

Front-load the skill's leading word, list one trigger per distinct branch, and cut identity statements already in the body. Every word adds context load, so prune descriptions harder than body content and collapse synonym triggers that rename a single branch.

When should a skill be model-invoked vs user-invoked?▼

Choose model-invocation only when the agent or another skill must reach it autonomously, since the always-loaded description costs context load. If it only ever fires by hand, set disable-model-invocation and make it user-invoked, paying cognitive load instead.

How do I stop an AI agent from rushing through skill steps?▼

Premature completion is fixed first by sharpening the step's completion criterion so done is checkable. Only if the criterion is irreducibly fuzzy and you observe the rush, hide post-completion steps by splitting the sequence across a real context boundary.

What is progressive disclosure in skill writing?▼

Progressive disclosure moves reference material out of SKILL.md into a linked file reached by a context pointer, keeping the top of the file legible. Inline what every branch needs and disclose what only some branches reach; sharpen pointer wording if it fires unreliably.

Why should I avoid negative instructions in prompts?▼

Prohibitions name the forbidden behaviour into context, making it more available rather than less. Prompt the positive target behaviour instead, reserving prohibitions for hard guardrails you cannot phrase positively, paired with what to do instead.