write-a-skill
by alirezarezvaniwrite-a-skill helps agents author reusable skills with clear triggers, concise SKILL.md files, progressive disclosure, references, and Python validation scripts for review.
This skill scores 84/100, making it a solid listing candidate for directory users who want agents to author new skills with less guesswork than a generic prompt. It provides a clear activation description, a usable authoring workflow, progressive-disclosure references, and deterministic validation scripts, though installation guidance and one referenced companion asset are incomplete in the provided evidence.
- Strong triggerability: the description states the capability and includes an explicit “Use when user wants to create, write, build, or author a new skill” activation cue.
- Operational workflow is clear: SKILL.md lays out a three-phase process for gathering requirements, drafting files, and reviewing the result with the user.
- Good agent leverage beyond prompting: bundled stdlib Python validators check description quality, folder structure, and a six-item review checklist with JSON-capable output.
- No install command or README is present in the skill directory, so users must infer installation from the broader repository convention.
- The companion tooling reference mentions a `../agents/cs-skill-author.md` persona that is not shown in this skill tree, which may be unavailable to installers of only this skill.
Overview of write-a-skill skill
What write-a-skill does
The write-a-skill skill helps an agent create new agent skills with a usable SKILL.md, clear activation triggers, progressive disclosure, and optional bundled scripts or references. It is not just a naming/template helper: it guides the author through requirements, drafting, and review so the resulting skill can be selected correctly by an agent later.
Best fit for Skill Authoring teams
Use write-a-skill for Skill Authoring when you are building a reusable capability for a skill library, not when you only need a one-off prompt. It fits maintainers who care about routing accuracy, concise instructions, validation before merge, and keeping long background material out of the main skill file.
What makes this version useful
This repository version adds practical support around Matt Pocock’s original workflow: description design guidance, progressive disclosure rules, quality gates, and stdlib Python validators. The most important differentiator is its emphasis on the skill description as an activation signal: the agent may decide whether to load a skill based mostly on that description, so vague marketing copy is treated as a functional bug.
Adoption considerations
The skill is opinionated. It expects short SKILL.md files, one-level reference files, concrete examples, and explicit “Use when ...” triggers. That is valuable for library quality, but it may feel restrictive if your team prefers long embedded documentation or deeply nested knowledge bases.
How to Use write-a-skill skill
write-a-skill install and file path
Install from the repository path used by this skill directory:
npx skills add alirezarezvani/claude-skills --skill write-a-skill
The upstream skill lives at engineering/write-a-skill/skills/write-a-skill. After install, read SKILL.md first, then inspect references/description_design_patterns.md, references/progressive_disclosure_principles.md, references/quality_gates_for_skills.md, and references/companion_tooling.md. The scripts in scripts/ are useful when you want deterministic checks instead of relying on review memory.
Inputs the skill needs
A strong write-a-skill usage prompt should provide the task domain, activation trigger, expected user requests, output format, and whether the skill needs scripts or reference files. Weak input is “make a skill for reports.” Stronger input is:
“Create a skill for converting messy meeting notes into an executive summary. Use when the user asks to summarize meeting notes, decisions, risks, or action items. It should output sections for decisions, owners, deadlines, open questions, and risks. Include examples, but no executable scripts.”
This gives the agent enough routing language, scope boundaries, and structure to draft a usable skill rather than a generic assistant behavior.
Recommended authoring workflow
Start by asking the skill to gather requirements before drafting. Then request a first-pass SKILL.md with a concise description and a “Use when ...” trigger. If the draft grows long, ask the agent to split deep material into REFERENCE.md, EXAMPLES.md, or references/*.md rather than expanding the main file. Finally, review the skill against the included gates: trigger quality, line count, stale claims, terminology consistency, concrete examples, and shallow references.
Validation scripts to run
This version includes three stdlib Python tools. Use scripts/skill_description_validator.py to check the frontmatter description, scripts/skill_structure_validator.py to check folder shape and reference depth, and scripts/skill_review_checklist_runner.py as the final pre-commit gate. Typical usage is python scripts/skill_review_checklist_runner.py path/to/skill-folder/ --output json. These checks are heuristic, but they catch common defects before human review.
write-a-skill skill FAQ
Is write-a-skill better than a normal prompt?
Yes, when the output needs to become a reusable skill that another agent can load reliably. A normal prompt can draft instructions, but the write-a-skill skill adds conventions for descriptions, triggers, file layout, progressive disclosure, and review. If you only need a temporary instruction set for one chat, a normal prompt is usually enough.
Can beginners use this skill?
Yes, but beginners should follow the process rather than starting with file structure. First define the capability and when it should activate. Then let write-a-skill draft the minimal SKILL.md. Only add references or scripts when the skill has distinct advanced material or deterministic operations that should not be handled by the language model.
When should I not use write-a-skill?
Do not use it for broad assistant personas, large documentation imports, or skills whose trigger cannot be stated clearly. If you cannot finish the sentence “Use when the user asks to ...”, the scope is probably too vague. Also avoid it when the desired behavior depends on frequently changing product facts unless you have a maintenance plan for updates.
Does it fit existing skill libraries?
It fits libraries that value predictable activation and reviewable structure. The included guidance works especially well for repositories that enforce SKILL.md at the skill root, keep references shallow, and run scripts during CI or pre-commit. If your ecosystem uses a different manifest format, the workflow still helps, but you may need to adapt the validators.
How to Improve write-a-skill skill
Improve write-a-skill inputs before drafting
The fastest way to improve write-a-skill output is to provide routing language, not just topic language. Include the exact phrases users are likely to say, adjacent skills it should not replace, required outputs, and failure cases. For example, say “Use when the user asks to normalize CSV exports from CRM systems” instead of “data cleanup skill.”
Fix common failure modes
Common problems include descriptions that sound promotional, oversized SKILL.md files, examples that do not match real user requests, and reference files that become a dumping ground. Fix these by making the first sentence action-oriented, moving rare details into references, adding one realistic input/output example, and deleting instructions that do not change agent behavior.
Iterate after the first output
After the first draft, ask three review questions: “Would an agent know when to load this?”, “Can the skill execute without reading unrelated material?”, and “What user request would falsely trigger it?” Then revise the description and examples. Run the validators after revision, not before, so the checks confirm the intended design instead of shaping an unfinished idea too early.
Extend the skill for your team
For a mature library, add team-specific templates, CI commands, naming rules, and examples of accepted and rejected skills. Keep those additions in references unless every new skill needs them. The improvement goal is not more documentation; it is faster authoring, fewer routing mistakes, and more consistent review outcomes for write-a-skill users.
