MCPInstall

best-practices

Transforms vague prompts into optimized Claude Code prompts. Adds verification, specific context, constraints, and proper phasing. Invoke with /best-practices.

Installs
528
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/moizibnyousaf/ai-agent-skills --skill best-practices
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads best-practices automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Best Practices — Prompt Transformer

Transform prompts by adding what Claude needs to succeed.

Start Here

Based on user's request:

User provides a prompt to transform: → Ask using AskUserQuestion:

  • Question: "How should I improve this prompt?"
  • Header: "Mode"
  • Options:
    1. Transform directly — "I'll apply best practices and output an improved version"
    2. Build context first — "I'll gather codebase context and intent analysis first"

User asks to learn/understand: → Show the 5 Transformation Principles section

User asks for examples: → Link to references/before-after-examples.md

User asks to evaluate a prompt: → Use the Success Criteria eval rubric at the end of this document


If "Transform directly"

Apply the 5 principles below and output the improved prompt immediately.

If "Build context first"

Launch 3 parallel agents to gather context:

Run these agents IN PARALLEL using the Task tool:

- Task task-intent-analyzer("[user's prompt]")
- Task best-practices-referencer("[user's prompt]")
- Task codebase-context-builder("[user's prompt]")

What Each Agent Returns

AgentMissionReturns
task-intent-analyzerUnderstand what user is trying to doTask type, gaps, edge cases, transformation guidance
best-practices-referencerFind relevant patterns from references/Matching examples, anti-patterns to avoid, transformation rules
codebase-context-builderExplore THIS codebaseSpecific file paths, similar implementations, conventions

After Agents Return

  1. Synthesize findings — Combine intent + best practices + codebase context
  2. Apply matching patterns — Use examples from best-practices-referencer as templates
  3. Ground in codebase — Add specific file paths from codebase-context-builder
  4. Transform the prompt — Apply the 5 principles with all gathered context
  5. Output — Show improved prompt with before/after comparison

Agent Definitions

The agents are defined in agents/:

  • agents/task-intent-analyzer.md — Analyzes intent, gaps, and edge cases
  • agents/best-practices-referencer.md — Finds relevant examples and patterns from references/
  • agents/codebase-context-builder.md — Explores codebase for files and conventions

Transformation Workflow

When transforming (after mode selection):

  1. Identify what's missing — Check against the 5 principles below
  2. Add missing elements — Verification, context, constraints, phases, rich content
  3. Output the improved prompt — In a code block, ready to copy-paste
  4. Show what changed — Brief comparison of before/after

The 5 Transformation Principles

Apply these in order of priority:

1. Add Verification (Highest Priority)

The single highest-leverage improvement. Claude performs dramatically better when it can verify its own work.

MissingAdd
No success criteriaTest cases with expected inputs/outputs
UI changes"take screenshot and compare to design"
Bug fixes"write a failing test, then fix it"
Build issues"verify the build succeeds after fixing"
Refactoring"run the test suite after each change"
No root cause enforcement"address root cause, don't suppress error"
No verification report"summarize what you ran and what passed"
BEFORE: "implement email validation"
AFTER:  "write a validateEmail function. test cases: user@example.com → true,
         invalid → false, user@.com → false. run the tests after implementing"
BEFORE: "fix the API error"
AFTER:  "the /api/orders endpoint returns 500 for large orders. check
         OrderService.ts for the error. address the root cause, don't suppress
         the error. after fixing, run the test suite and summarize what passed
         and what you verified."

2. Provide Specific Context

Replace vague references with precise locations and details.

VagueSpecific
"the code"src/auth/login.ts
"the bug""users report X happens when Y"
"the API""the /api/users endpoint in routes.ts"
"that function"processPayment() on line 142

Four ways to add context:

StrategyExample
Scope the task"write a test for foo.py covering the edge case where user is logged out. avoid mocks."
Point to sources"look through ExecutionFactory's git history and summarize how its API evolved"
Reference patterns"look at HotDogWidget.php and follow that pattern for the calendar widget"
Describe symptoms"users report login fails after session timeout. check src/auth/, especially token refresh"

Respect Project CLAUDE.md:

If the project has a CLAUDE.md, the transformed prompt should:

  • Not contradict project conventions
  • Reference project-specific patterns when relevant
  • Note any project constraints that apply
BEFORE: "add a new API endpoint"
AFTER:  "add a GET /api/products endpoint. check CLAUDE.md for API conventions
         in this project. follow the pattern in routes/users.ts. run the API
         tests after implementing."
BEFORE: "fix the login bug"
AFTER:  "users report login fails after session timeout. check the auth flow
         in src/auth/, especially token refresh. write a failing test that
         reproduces the issue, then fix it"

3. Add Constraints

Tell Claude what NOT to do. Prevents over-engineering and unwanted changes.

Constraint TypeExamples
Dependencies"no new libraries", "only use existing deps"
Testing"avoid mocks", "use real database in tests"
Scope"don't refactor unrelated code", "only touch auth module"
Approach"address root cause, don't suppress error", "keep backward compat"
Patterns"follow existing codebase conventions", "match the style in utils.ts"
BEFORE: "add a calendar widget"
AFTER:  "implement a calendar widget with month selection and year pagination.
         follow the pattern in HotDogWidget.php. build from scratch without
         libraries other than the ones already used in the codebase"

4. Structure Complex Tasks in Phases

For larger tasks, separate exploration from implementation.

The 4-Phase Pattern:

Phase 1: EXPLORE
"read src/auth/ and understand how we handle sessions and login.
 also look at how we manage environment variables for secrets."

Phase 2: PLAN
"I want to add Google OAuth. What files need to change?
 What's the session flow? Create a plan."

Phase 3: IMPLEMENT
"implement the OAuth flow from your plan. write tests for the
 callback handler, run the test suite and fix any failures."

Phase 4: COMMIT
"commit with a descriptive message and open a PR"

When to use phases:

  • Uncertain about the approach
  • Change modifies multiple files
  • Unfamiliar with the code being modified

Skip phases when:

  • Could describe the diff in one sentence
  • Fixing a typo, adding a log line, renaming a variable
BEFORE: "add OAuth"
AFTER:  "read src/auth/ and understand current session handling. create a plan
         for adding OAuth. then implement following the plan. write tests and
         verify they pass"

5. Include Rich Content

Provide supporting materials that Claude can use directly.

Content TypeHow to Provide
FilesUse @filename to reference files
ImagesPaste screenshots directly
ErrorsPaste actual error messages, not descriptions
LogsPipe with cat error.log | claude
URLsLink to relevant documentation
BEFORE: "make the dashboard look better"
AFTER:  "[paste screenshot] implement this design for the dashboard.
         take a screenshot of the result and compare it to the original.
         list any differences and fix them. ensure responsive behavior
         at 768px and 1024px breakpoints"
BEFORE: "the build is failing"
AFTER:  "the build fails with this error: [paste actual error]. fix it
         and verify the build succeeds. address the root cause, don't
         suppress the error"

Output Format

When transforming a prompt, output:

**Original:** [their prompt]

**Improved:**

[transformed prompt in code block]


**Added:**
- [what was missing and added]
- [another improvement]
- [etc.]

Quick Transformation Examples

Bug Fix

BEFORE: "fix the login bug"

AFTER: "users report login fails after session timeout. check the auth flow
in src/auth/, especially token refresh. write a failing test that reproduces
the issue, then fix it. verify by running the auth test suite."

ADDED: symptom, location, verification (failing test), success criteria

Feature Implementation

BEFORE: "add a search feature"

AFTER: "implement search for the products page. look at how filtering works
in ProductList.tsx for the pattern. search should filter by name and category.
add tests for: empty query returns all, partial match works, no results shows
message. no external search libraries."

ADDED: location, reference pattern, specific behavior, test cases, constraint

Refactoring

BEFORE: "make the code better"

AFTER: "refactor utils.js to use ES2024 features while maintaining the same
behavior. specifically: convert callbacks to async/await, use optional
chaining, add proper TypeScript types. run the existing test suite after
each change to ensure nothing breaks."

ADDED: specific changes, constraint (same behavior), verification after each step

Testing

BEFORE: "add tests for foo.py"

AFTER: "write tests for foo.py covering the edge case where the user is
logged out. avoid mocks. use the existing test patterns in tests/. test
cases: logged_out_user returns 401, expired_session redirects to login,
invalid_token raises AuthError."

ADDED: specific edge case, constraint (no mocks), pattern reference, test cases

Debugging

BEFORE: "the API is slow"

AFTER: "the /api/orders endpoint takes 3+ seconds. profile the database
queries in OrderService.ts. look for N+1 queries or missing indexes.
fix the performance issue and verify response time is under 500ms."

ADDED: specific endpoint, location, what to look for, measurable success criteria

UI Changes

BEFORE: "fix the button styling"

AFTER: "[paste screenshot of design] update the primary button to match this
design. check Button.tsx and the theme in tailwind.config.js. take a
screenshot after changes and compare to the design. list any differences."

ADDED: design reference, file locations, visual verification

Exploration

BEFORE: "how does auth work?"

AFTER: "read src/auth/ and explain how authentication works in this codebase.
cover: how sessions are created, how tokens are refreshed, where secrets
are stored. summarize in a markdown doc."

ADDED: specific files, specific questions to answer, output format

Migration

BEFORE: "upgrade to React 18"

AFTER: "migrate from React 17 to React 18. first, read the migration guide
at [URL]. then identify all components using deprecated APIs. update one
component at a time, running tests after each. don't change unrelated code."

ADDED: phased approach, reference docs, incremental verification, scope constraint

With Verification Report

BEFORE: "fix the API error"

AFTER: "the /api/orders endpoint returns 500 for large orders. check
OrderService.ts for the error. address the root cause, don't suppress
the error. after fixing, run the test suite and summarize what passed
and what you verified."

ADDED: symptom, location, root cause enforcement, verification report

Transformation Checklist

Before outputting, verify the improved prompt has:

  • Verification — How to know it worked (tests, screenshot, output)
  • Location — Specific files, functions, or areas
  • Constraints — What NOT to do
  • Single task — Not compound (split if needed)
  • Phases — If complex, structured as explore → plan → implement
  • Root cause — For bugs: "address root cause, don't suppress"
  • CLAUDE.md — Respect project conventions if they exist

Quick Prompt Quality Check

Rate the prompt against these dimensions:

Dimension0 (Missing)1 (Partial)2 (Complete)
VerificationNone"test it"Specific test cases + report
Location"the code""auth module"src/auth/login.ts:42
ConstraintsNoneImplied"avoid X, no Y, root cause only"
ScopeVaguePartialSingle clear task

Quick assessment:

  • 0-3: Needs significant work
  • 4-5: Needs some improvements
  • 6-8: Good, minor tweaks

Fallback: If Still Too Vague

If user chose "Transform directly" but the prompt lacks enough context, ask one natural question:

"What would Claude need to know to do this well?"

Don't interrogate — one question is enough. Transform with what you learn.


Common Anti-Patterns to Fix

Anti-PatternProblemFix
"fix the bug"No symptom, no locationAdd what users report + where to look
"add tests"No scope, no casesSpecify edge cases + test patterns
"make it better"No criteria for "better"Define specific improvements
"implement X"No verificationAdd test cases or success criteria
"update the code"No constraintsAdd what to preserve, what to avoid

Success Criteria — Prompt Quality Eval

A well-transformed prompt passes these checks:

Principle 1: Verification ✅

CheckPassFail
Has success criteria"run tests", "screenshot matches"Nothing
Measurable outcome"response < 500ms""make it faster"
Self-verifiableClaude can check its own workRequires human judgment
Root cause enforced"don't suppress error"Silent about approach

Principle 2: Specificity ✅

CheckPassFail
File locationssrc/auth/login.ts"the auth code"
Function/class namesprocessPayment()"that function"
Line numbers (if relevant):42"somewhere in there"
CLAUDE.md respected"check project conventions"Ignores project rules

Principle 3: Constraints ✅

CheckPassFail
What NOT to do"avoid mocks", "no new deps"Open-ended
Scope boundaries"only touch auth module"Unlimited scope
Pattern to follow"match UserService.ts style"No reference

Principle 4: Structure ✅

CheckPassFail
Single taskOne clear objectiveMultiple goals
Phased (if complex)"explore → plan → implement"Jump straight to code
Appropriate depthMatches task complexityOver/under-specified

Principle 5: Rich Content ✅

CheckPassFail
Actual errorsPasted error message"it's broken"
Screenshots (UI)Image attached"the button looks wrong"
File references@filename or path"that file"

Overall Quality Score

ScoreMeaningPrinciples Passed
⭐⭐⭐⭐⭐ExcellentAll 5
⭐⭐⭐⭐Good4 of 5
⭐⭐⭐Acceptable3 of 5
⭐⭐Needs work2 of 5
⭐Poor1 or 0

Target: Every transformed prompt should score ⭐⭐⭐⭐ or ⭐⭐⭐⭐⭐


Reference Files

For more examples and patterns:

  • 50+ Examples: See references/before-after-examples.md
  • Prompt Templates: See references/prompt-patterns.md
  • Task Workflows: See references/common-workflows.md
  • What to Avoid: See references/anti-patterns.md
  • Official Guide: See references/best-practices-guide.md

Sources

FAQ

What does the best-practices skill do?

Transforms vague prompts into optimized Claude Code prompts. Adds verification, specific context, constraints, and proper phasing. Invoke with /best-practices.

How do I install best-practices?

Run npx skills add https://github.com/moizibnyousaf/ai-agent-skills --skill best-practices in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/best-practices/ (personal) or .claude/skills/best-practices/ (project).

Which AI agents can use best-practices?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is best-practices safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains best-practices?

It is published by moizibnyousaf in moizibnyousaf/ai-agent-skills. It has 528 recorded installs.

More from moizibnyousaf/ai-agent-skills

View all →

code-review

moizibnyousaf/ai-agent-skills

Automated code review for pull requests using specialized review patterns. Analyzes code for quality, security, performance, and best practices. Use when reviewing code changes, PRs, or doing code audits.

backend-development

moizibnyousaf/ai-agent-skills

Backend API design, database architecture, microservices patterns, and test-driven development. Use for designing APIs, database schemas, or backend system architecture.

Backend & APIs869 installs

database-design

moizibnyousaf/ai-agent-skills

Database schema design, optimization, and migration patterns for PostgreSQL, MySQL, and NoSQL databases. Use for designing schemas, writing migrations, or optimizing queries.

Data & Databases604 installs

code-refactoring

moizibnyousaf/ai-agent-skills

Code refactoring patterns and techniques for improving code quality without changing behavior. Use for cleaning up legacy code, reducing complexity, or improving maintainability.

code-documentation

moizibnyousaf/ai-agent-skills

Writing effective code documentation - API docs, README files, inline comments, and technical guides. Use for documenting codebases, APIs, or writing developer guides.

Docs & Writing563 installs

llm-application-dev

moizibnyousaf/ai-agent-skills

Open the skill to read its SKILL.md instructions.

AI & Agents463 installs

Popular code quality & workflow skills

View category →

grill-me

mattpocock/skills

A relentless interview to sharpen a plan or design.

Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

handoff

mattpocock/skills

Compact the current conversation into a handoff document for another agent to pick up.

domain-modeling

mattpocock/skills

Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.

codebase-design

mattpocock/skills

Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.

diagnosing-bugs

mattpocock/skills

Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.