crafting-instructions/SKILL.md
Generate optimized instructions for Claude (Project instructions, Skills, or standalone prompts). Use when users request creating project setups, writing effective prompts, building Skills, or need guidance on instruction types for Claude.ai.
npx skillsauth add oaustegard/claude-skills crafting-instructionsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate technically optimized instructions for Claude.ai across three formats: Project instructions, Skills, and standalone prompts.
Ask these questions to determine the right format:
Signals: "for this project", "all conversations about X", "team workspace", "project-specific"
Signals: "every time I", "whenever", "reusable", "across projects", "teach Claude how to"
Signals: "for this task", "right now", "just this once", "can you"
Project + Skill:
Skill + Prompt:
These apply to ALL instruction formats:
Frame as direct action commands, not suggestions:
State WHAT to do, not what NOT to do:
WHY: Negative instructions force inference. Positive instructions state desired behavior directly.
Explain WHY requirements exist:
WHY: Context helps Claude make better autonomous decisions in edge cases.
Provide goals and decision frameworks, not step-by-step procedures:
Model-aware calibration:
Claude's system prompt already covers:
ONLY specify project/domain-specific deviations.
See: references/project-instructions.md
Key points:
See: references/creating-skills.md
Key points:
See: references/standalone-prompts.md
Key points:
Read: references/skill-vs-project.md for detailed comparison
Quick reference:
Project = "Here's what you need to know"
Skill = "Here's how to do things"
Example:
Use both together for powerful combinations.
CRITICAL for Claude 4.x: Examples teach ALL patterns, including unintended ones.
When including examples:
Model-aware calibration:
Default to clear organization:
Use structured markup (XML/JSON) only when:
Extended thinking is UI toggle, not phrase-controlled.
In instructions, you CAN:
Pattern:
For tasks involving [specific complexity], suggest enabling Extended
thinking, explaining briefly why it would help for THIS task.
Match instruction complexity to task needs:
Simple task → Simple prompt or brief instructions Medium task → Structured guidance with decision frameworks Complex task → Comprehensive instructions + suggest extended thinking
Before adding complexity: Could simpler formulation work equally well?
When crafting instructions, consider which model will execute them:
For Sonnet-executed instructions:
For Opus-executed instructions:
Instruction density heuristic:
When uncertain: Instructions optimized for Opus will still work with Sonnet (just less perfectly). Instructions over-optimized for Sonnet may constrain Opus unnecessarily.
Before delivering instructions:
Strategic:
Technical:
Execution:
❌ System prompt duplication - "Use web_search for current info, cite sources" ✅ Omit unless project has SPECIFIC deviations
❌ Negative framing - "Don't use lists, never be verbose" ✅ "Present in natural prose paragraphs"
❌ Fake thinking triggers - "Use 'think carefully' for deep thinking" ✅ "Suggest Extended thinking toggle for [specific complexity]"
❌ Procedural micromanagement - "Step 1: X, Step 2: Y..." ✅ "Goal: X. Quality standard: Y. Approach: Z."
❌ Contextless requirements - "Always use formal tone" ✅ "Use formal tone for professional docs because recipients expect authoritative voice"
❌ Imperfect examples - Example uses bullets when you want prose ✅ Either create perfect examples or omit entirely
development
--- name: verifying-claims description: Check that a document's claims about code are actually true by reading the prose, the code, and the tests and reporting (or fixing) where they disagree. Use whenever the user wants to verify a README, guide, spec, or docstring still matches the code; whenever they mention documentation drift, doc-code sync, "is this still accurate", stale docs, or keeping docs/tests/code consistent; before publishing or merging a docs change; or as a periodic doc-accuracy
tools
Query, filter, and transform Markdown structurally with mq — a jq-like CLI for Markdown. Use to extract headings/sections/code-blocks/links from .md files, build a table of contents, pull code blocks of a given language, slice or reshape LLM prompt/output Markdown, or batch-transform docs. Triggers on "extract sections from this markdown", "get all the code blocks", "jq for markdown", "mq", or any structural query over Markdown that grep/Read can't do cleanly.
development
Composes single-file HTML artifacts (PR review writeups, status reports, incident postmortems, slide decks, design systems, prototypes, flowcharts, module maps, feature explainers, kanban boards, prompt tuners) from a small JSON spec instead of hand-written HTML/CSS/JS. Use when the user asks to "compare options side-by-side", requests an HTML version of a report or review or deck, asks for a flowchart, status update, postmortem, design system reference, interactive prototype, custom editor — or explicitly says "HTML artifact", "single HTML file", "self-contained HTML". Skip for ad-hoc HTML snippets (forms, emails, embedded widgets) where there's no template fit.
development
DAG workflow runner that encodes control flow in code, not prose. Use when a procedure has 3+ steps with branching, retries, or validation that must be enforced — gates as `when=`, edge contracts as `validate=`, predicate loops as `retry_until=`. The runner owns the graph; the LLM provides leaves. Also covers parallel execution, checkpoint resume, detached side-effects.