![]() |
VOOZH | about |
Jun 28, 2026
The explainx.ai skills registry is the canonical source for Claude Code and Cursor SKILL.md files. This guide explains how npx skills install works, what skills actually do, how to write your own, and how teams can use lockfiles to stay consistent in production.
May 17, 2026
A deep dive into Agent Skills, the managed skill registry solving the security crisis in AI agent extensions. Learn how threat modeling, static analysis, and human curation make it safe to extend Antigravity, Claude Code, Cursor, and other professional coding agents with zero-trust workflows.
Jun 28, 2026
Most developers stuff everything into CLAUDE.md and wonder why their agent context feels bloated. There is a three-layer system β rules, skills, and live connectors β and most people only know one layer. This guide breaks down each layer, when to use it, and how to wire them together for a production-grade Claude Code setup.
In the early days of AI coding assistants (2023-2024), developers provided context to AI through chat messages. Every conversation started from scratch. You'd explain your project structure, coding standards, and architectural decisions over and over again.
By 2026, a new paradigm has emerged: configuration-as-markdown. Specialized .md files now serve as persistent instruction sets, skill definitions, and memory banks for AI agents. These files provide:
This guide covers 15+ types of markdown files used in modern AI agent development, their structure, use cases, and best practices.
SKILL.md is the cornerstone of the agentskills.io open standardβa specification for defining reusable AI agent capabilities.
my-skill/
βββ SKILL.md # Main skill definition
βββ templates/ # Code templates and scaffolds
β βββ component.tsx
β βββ test.spec.ts
βββ references/ # Context documents
βββ api-docs.md
βββ examples.md
---
name: "api-documentation-generator"
version: "1.0.0"
description: "Generate comprehensive API documentation from OpenAPI specs"
tags: ["documentation", "api", "openapi"]
author: Yash Thakker
license: "MIT"
---
# API Documentation Generator
This skill generates human-readable API documentation from OpenAPI/Swagger specifications.
## When to Use This Skill
- You have an OpenAPI 3.0+ specification file
- You need user-friendly documentation for your API
- You want to generate markdown or HTML docs
## Prerequisites
- OpenAPI spec file (JSON or YAML)
- Node.js environment (for HTML generation)
## Instructions
### Step 1: Validate the OpenAPI Spec
Load the OpenAPI spec and validate it against the OpenAPI 3.0 schema.
### Step 2: Parse Endpoints
Extract all endpoints, methods, parameters, request bodies, and responses.
### Step 3: Generate Documentation
Create structured markdown documentation with:
- API overview and base URLs
- Authentication methods
- Endpoint details with examples
- Schema definitions
- Error codes
### Step 4: Apply Templates
Use the templates in `templates/` to generate formatted output.
## Templates
See `templates/api-doc.md` for the markdown template and
`templates/api-doc.html` for the HTML version.
## References
- OpenAPI 3.0 Specification: [spec.openapis.org](https://spec.openapis.org)
- Examples: See `references/example-apis.md`
## Testing
Run `npm test` to validate against sample OpenAPI specs in `tests/fixtures/`.
## Known Limitations
- Does not support OpenAPI 2.0 (Swagger)
- Webhooks are not documented
- Custom vendor extensions are ignored
From dotnet/skills repository:
---
name: "dotnet-msbuild"
description: "Diagnose MSBuild failures and optimize build performance"
---
# MSBuild Diagnosis and Optimization
## When to Use
- Build fails with cryptic errors
- Builds are slow (>30s for small projects)
- Silent failures (builds succeed but produce wrong output)
## Instructions
1. Locate the binary log file (.binlog)
2. Use AITools.BinlogMcp to parse the log
3. Identify:
- Failed targets and their dependency chain
- Performance bottlenecks (targets >5s)
- Warning-as-errors that cause failures
4. Suggest fixes based on common patterns
Portability: Works in Claude Code, Cursor, GitHub Copilot, and custom agents Shareability: Publish skills to npm, GitHub, or internal registries Composability: Combine multiple skills in one agent Version control: Track skill evolution alongside code
AGENT.md defines an entire agent's behavior, personality, knowledge, and capabilities.
---
name: "senior-backend-engineer"
version: "2.0.0"
model: "claude-sonnet-4.5"
temperature: 0.2
---
# Senior Backend Engineer Agent
## Identity
You are a senior backend engineer with 10+ years of experience in:
- Distributed systems (microservices, event-driven architecture)
- Python (FastAPI, Django), Go, and Node.js
- PostgreSQL, Redis, Kafka, and Elasticsearch
- AWS (ECS, Lambda, RDS, S3)
## Communication Style
- Be concise but thorough
- Use technical terminology appropriately
- Provide code examples for complex concepts
- Ask clarifying questions about requirements
- Point out potential issues proactively
## Core Competencies
### 1. Architecture Design
- Design for scalability (10x current load)
- Consider failure modes and fallbacks
- Document trade-offs and decisions
### 2. Code Quality
- Follow PEP 8 (Python) and Go conventions
- Write comprehensive tests (unit, integration, E2E)
- Implement proper error handling and logging
- Use type hints (Python) or strong typing (Go)
### 3. Security
- Always validate and sanitize inputs
- Use parameterized queries (never string concatenation)
- Implement proper authentication and authorization
- Follow OWASP Top 10 guidelines
## Workflow
### When starting a task:
1. Understand requirements thoroughly (ask questions!)
2. Propose architectural approach
3. Identify dependencies and risks
4. Estimate complexity
### When writing code:
1. Start with interfaces/types
2. Implement core logic
3. Add error handling
4. Write tests
5. Add logging and observability
Check for security vulnerabilities
Verify error handling
Assess performance implications
Ensure test coverage
Verify documentation
Never commit secrets or credentials
Never disable security features "temporarily"
Never skip error handling for convenience
Never merge untested code
api-design
database-optimization
docker-compose-setup
kubernetes-deployment
CLAUDE.md (also called .clauderc) provides persistent instructions to Claude Code and Claude Desktop.
---
project: "ecommerce-platform"
updated: "2026-05-22"
---
# E-Commerce Platform - Claude Context
## Project Overview
A Next.js 15 e-commerce platform using:
- Frontend: React 19, TypeScript, Tailwind CSS, shadcn/ui
- Backend: Next.js API routes, Prisma ORM
- Database: PostgreSQL (Supabase)
- Auth: NextAuth.js v5
- Payments: Stripe
- Deployment: Vercel
## Architecture Decisions
### 1. Server Components First
Use React Server Components by default. Only use "use client" when:
- You need interactivity (onClick, onChange, etc.)
- You use hooks (useState, useEffect, etc.)
- You use browser-only APIs
### 2. Database Access
- Always use Prisma Client (imported from `@/lib/db`)
- Never expose database queries in client components
- Use Server Actions for mutations
- Cache queries with `unstable_cache` when appropriate
### 3. Error Handling
```typescript
// Always use this pattern
import { handleApiError } from '@/lib/errors';
try {
// operation
} catch (error) {
return handleApiError(error);
}
ProductCard.tsx)formatPrice.ts)create-order.ts)// 1. Imports
// 2. Types
// 3. Component
// 4. Sub-components (if any)
// 5. Exports
'use server';
import { auth } from '@/auth';
import { revalidatePath } from 'next/cache';
export async function createProduct(formData: FormData) {
const session = await auth();
if (!session) throw new Error('Unauthorized');
// validation
// database operation
// revalidation
return { success: true, productId };
}
import { NextRequest, NextResponse } from 'next/server';
import { auth } from '@/auth';
export async function POST(request: NextRequest) {
const session = await auth();
if (!session) {
return NextResponse.json({ error: 'Unauthorized' }, { status: 401 });
}
// logic
return NextResponse.json({ data });
}
users: NextAuth schemaproducts: Inventory and pricingorders: Order historycart_items: Shopping cart statenpm test before committingSee .env.example for required variables. Never commit .env.local.
main
#### When Claude Reads CLAUDE.md
Every time you interact with Claude Code in this project:
1. Claude loads `CLAUDE.md` first
2. Applies all rules and patterns automatically
3. Maintains consistency across conversations
4. Remembers architectural decisions
---
### MEMORY.md: Persistent Agent Memory
**MEMORY.md** stores information the agent should remember across sessions.
#### Use Cases
- Decisions made during development
- User preferences
- Debugging history
- Performance benchmarks
- Lessons learned
#### Structure
```markdown
# Project Memory
Last updated: 2026-05-22
## User Preferences
- Prefers TypeScript over JavaScript
- Likes functional programming style
- Uses Prettier with 2-space indents
- Prefers named exports over default exports
## Recent Decisions
### 2026-05-20: Switch from REST to tRPC
**Reason**: Type safety across client-server boundary
**Impact**: All new API routes use tRPC
**Location**: `src/server/api/`
### 2026-05-15: Add Redis caching layer
**Reason**: Database queries were slow (>500ms)
**Impact**: 10x speedup on product listing pages
**Configuration**: See `lib/redis.ts`
## Known Issues
### Issue: Prisma migrations fail in CI
**Status**: Investigating
**Workaround**: Run migrations manually before deployment
**Tracking**: Issue #234
### Issue: Image uploads timeout on large files
**Status**: Fixed (2026-05-18)
**Solution**: Implemented chunked uploads
**PR**: #245
## Performance Baselines
- Homepage load: ~1.2s (target: <1s)
- Product search: ~200ms (good)
- Checkout flow: ~3s (target: <2s)
## Debugging Notes
### Stripe webhook issues
- Must use raw body for signature verification
- Use `bodyParser: false` in Next.js config
- Test with Stripe CLI: `stripe listen --forward-to localhost:3000/api/webhooks/stripe`
### Database connection pool exhaustion
- Prisma default is 10 connections
- Increased to 20 in `schema.prisma`
- Monitor with `prisma.$metrics`
DESIGN.md defines UI/UX standards, component usage, and design principles.
# Design System
## Color Palette
### Brand Colors
- Primary: `#3B82F6` (blue-500)
- Secondary: `#8B5CF6` (violet-500)
- Accent: `#F59E0B` (amber-500)
### Semantic Colors
- Success: `#10B981` (green-500)
- Warning: `#F59E0B` (amber-500)
- Error: `#EF4444` (red-500)
- Info: `#3B82F6` (blue-500)
## Typography
### Fonts
- Headings: Inter (font-sans)
- Body: Inter (font-sans)
- Code: JetBrains Mono (font-mono)
### Scale
- xs: 0.75rem (12px)
- sm: 0.875rem (14px)
- base: 1rem (16px)
- lg: 1.125rem (18px)
- xl: 1.25rem (20px)
- 2xl: 1.5rem (24px)
- 3xl: 1.875rem (30px)
- 4xl: 2.25rem (36px)
## Spacing
Use Tailwind's spacing scale (4px increments):
- sm: 0.5rem (8px)
- md: 1rem (16px)
- lg: 1.5rem (24px)
- xl: 2rem (32px)
## Components
### Button
```tsx
// Primary
<Button variant="primary">Click me</Button>
// Secondary
<Button variant="secondary">Cancel</Button>
// Danger
<Button variant="danger">Delete</Button>
// States: default, hover, active, disabled
<Card>
<CardHeader>
<CardTitle>Title</CardTitle>
<CardDescription>Description</CardDescription>
</CardHeader>
<CardContent>
{/* content */}
</CardContent>
<CardFooter>
{/* actions */}
</CardFooter>
</Card>
const breakpoints = {
sm: '640px',
md: '768px',
lg: '1024px',
xl: '1280px',
'2xl': '1536px',
};
ease-outease-inease-in-out
---
## Tool and Workflow Files
### TOOLS.md: Tool Definitions
**TOOLS.md** documents available tools, CLI commands, and scripts.
```markdown
# Available Tools
## Development
### Start Dev Server
```bash
npm run dev
# Starts Next.js on http://localhost:3000
npm test # Run all tests
npm test:unit # Unit tests only
npm test:e2e # E2E tests only
npm test:watch # Watch mode
npx prisma studio # Open Prisma Studio
npx prisma db push # Push schema changes
npx prisma migrate dev # Create migration
npx prisma generate # Regenerate client
npm run lint # ESLint
npm run lint:fix # Auto-fix issues
npm run type-check # TypeScript check
npm run format # Format with Prettier
npm run build # Production build
npm run start # Start production server
git push origin main # Auto-deploys to Vercel
npm run generate:component ComponentName
# Creates:
# - components/ComponentName.tsx
# - components/ComponentName.test.tsx
# - components/ComponentName.stories.tsx
npm run db:seed # Populate with sample data
npm run db:reset # Reset and reseed
await mcp.tools.call('execute-sql', {
query: 'SELECT * FROM products WHERE price < 100'
});
await mcp.tools.call('github-search', {
query: 'repo:owner/repo is:open is:pr label:bug'
});
---
### PROMPTS.md: Prompt Templates
**PROMPTS.md** stores reusable prompt templates.
```markdown
# Prompt Templates
## Code Review
Review the following code for:
Provide:
## Bug Investigation
Investigate this bug:
Symptom: Expected: Actual: Steps to reproduce: Error logs:
Provide:
## Architecture Proposal
Design a system for:
Consider:
Provide:
WORKFLOW.md defines multi-step processes.
# Workflows
## Feature Development Workflow
### Phase 1: Planning
1. Create GitHub issue
2. Define acceptance criteria
3. Break down into subtasks
4. Estimate complexity
### Phase 2: Development
1. Create feature branch: `git checkout -b feature/description`
2. Write failing tests
3. Implement feature
4. Make tests pass
5. Refactor
### Phase 3: Review
1. Self-review checklist:
- [ ] Tests pass locally
- [ ] No console errors/warnings
- [ ] TypeScript has no errors
- [ ] Code follows style guide
2. Create pull request
3. Address review comments
### Phase 4: Deployment
1. Merge to main
2. Verify preview deployment
3. Monitor error tracking
4. Check performance metrics
## Bug Fix Workflow
### 1. Reproduce
- Get exact steps to reproduce
- Verify in local environment
- Capture error logs
### 2. Isolate
- Write a failing test that reproduces the bug
- Use debugger to step through
- Identify root cause
### 3. Fix
- Implement minimal fix
- Ensure test passes
- Check for similar issues elsewhere
### 4. Verify
- Run full test suite
- Manual testing
- Update documentation if needed
### 5. Deploy
- Create PR with "Fixes #<issue-number>"
- Get review
Merge and deploy
Notify affected users
Cursor IDE uses .cursorrules for project-specific instructions.
# Cursor Rules
## Project: Next.js E-Commerce
You are an expert Next.js developer working on an e-commerce platform.
### Tech Stack
- Next.js 15 (App Router)
- React 19
- TypeScript
- Tailwind CSS
- Prisma
- PostgreSQL
### Code Style
- Use functional components
- Prefer Server Components
- Use TypeScript strict mode
- Follow ESLint config
### File Structure
- Components: `components/`
- Utils: `lib/`
- API Routes: `app/api/`
- Types: `types/`
### When creating components:
1. Start with TypeScript interface for props
2. Use Tailwind for styling
3. Add proper TypeScript types
4. Include JSDoc comments for complex logic
### When writing API routes:
1. Validate inputs with Zod
2. Use proper error handling
3. Return typed responses
4. Add rate limiting where appropriate
Similar to .cursorrules but for Cline (VS Code extension).
You are a senior full-stack developer.
Project: Task Management SaaS
Stack: React, Node.js, MongoDB
Rules:
- Always use TypeScript
- Prefer functional components with hooks
- Use Tailwind CSS for styling
- Follow REST API conventions
- Write tests for all new features
When editing files:
1. Read the entire file first
2. Understand the context
3. Make minimal, focused changes
4. Update related tests
When debugging:
1. Check console for errors
2. Review recent changes
3. Add logging strategically
4. Test hypotheses systematically
Windsurf (by Codeium) uses .windsurfrules.
# Windsurf Rules
## Project Context
Python FastAPI backend with PostgreSQL
## Standards
- Follow PEP 8
- Use type hints everywhere
- Async/await for I/O operations
- Pydantic models for validation
## Database
- Use SQLAlchemy 2.0 async
- Alembic for migrations
- Connection pooling
## Testing
- pytest for unit tests
- pytest-asyncio for async tests
- >80% code coverage required
## Security
- Always validate inputs
- Use parameterized queries
- Hash passwords with bcrypt
- Implement rate limiting
GitHub Copilot Workspace reads INSTRUCTIONS.md or .github/copilot-instructions.md.
# GitHub Copilot Instructions
## Project Overview
Enterprise CRM built with Django and React
## Coding Standards
### Python
- Use Django 5.0 best practices
- Class-based views for CRUD
- Function-based views for custom logic
- Always use Django ORM (no raw SQL)
### JavaScript
- Modern ES6+ syntax
- React functional components
- Redux Toolkit for state management
- React Query for server state
### Testing
- pytest for backend
- Jest + React Testing Library for frontend
- Minimum 80% coverage
### Documentation
- Docstrings for all functions
- README for each app
- API documentation with drf-spectacular
## Common Patterns
### Django View Pattern
```python
from rest_framework import generics
from rest_framework.permissions import IsAuthenticated
class ContactListCreateView(generics.ListCreateAPIView):
permission_classes = [IsAuthenticated]
serializer_class = ContactSerializer
def get_queryset(self):
return Contact.objects.filter(user=self.request.user)
import { useQuery } from '@tanstack/react-query';
interface Props {
contactId: string;
}
export function ContactDetail({ contactId }: Props) {
const { data, isLoading } = useQuery({
queryKey: ['contact', contactId],
queryFn: () => fetchContact(contactId),
});
if (isLoading) return <LoadingSpinner />;
return <div>{/* render */}</div>;
}
---
## Specialized Files
### SCHEMA.md: Data Schema Documentation
```markdown
# Database Schema
## Users Table
```sql
CREATE TABLE users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email VARCHAR(255) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT NOW(),
updated_at TIMESTAMP DEFAULT NOW()
);
CREATE INDEX idx_users_email ON users(email);
CREATE INDEX idx_users_created_at ON users(created_at);
CREATE TABLE products (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
name VARCHAR(255) NOT NULL,
description TEXT,
price DECIMAL(10,2) NOT NULL,
stock_quantity INTEGER DEFAULT 0,
created_at TIMESTAMP DEFAULT NOW()
);
---
### CONTEXT.md: Background Context
```markdown
# Project Context
## Business Background
- Company: TechCorp Inc.
- Industry: B2B SaaS
- Users: Enterprise customers (Fortune 500)
- Scale: 50,000+ daily active users
## Problem Being Solved
Traditional CRM systems are:
- Too complex (30+ clicks to create a contact)
- Not mobile-friendly
- Expensive ($100+/user/month)
- Lack modern integrations
Our solution:
- Simple, focused workflows
- Mobile-first design
- Affordable ($15/user/month)
- Deep integrations with Slack, Gmail, Calendar
## Key Competitors
- Salesforce (too enterprise)
- HubSpot (too marketing-focused)
- Pipedrive (missing features we need)
## Technical Constraints
- Must support IE11 (enterprise requirement)
- Max page load: 2 seconds
- 99.9% uptime SLA
- SOC 2 compliant
- GDPR compliant
## Team
- 2 backend engineers (Python)
- 2 frontend engineers (React)
- 1 designer
- 1 product manager
## Timeline
- MVP: 3 months
- Beta launch: 6 months
- GA: 9 months
# MCP Servers Configuration
## Available Servers
### 1. Database Server
**Package**: `@modelcontextprotocol/server-postgres`
**Installation**:
```bash
npx @modelcontextprotocol/create-server postgres \
--connection-string $DATABASE_URL
Tools:
execute-sql: Run SQL queriesget-schema: Get table schemasexplain-query: Analyze query performancePackage: @modelcontextprotocol/server-github
Tools:
search-repositoriescreate-issuecreate-pull-requestlist-pull-requestsPackage: @modelcontextprotocol/server-filesystem
Configuration:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/directory"]
}
}
}
Location: mcp-servers/company-data/
Tools:
query-analytics: Get analytics datasend-notification: Send user notificationscreate-ticket: Create support ticket
---
## Best Practices: Organizing Your Markdown Files
### Project Structure
my-project/ βββ README.md # Project overview βββ CLAUDE.md # Claude Code instructions βββ MEMORY.md # Session memory βββ .cursorrules # Cursor-specific rules βββ docs/ β βββ ARCHITECTURE.md # System design β βββ DESIGN.md # Design system β βββ SCHEMA.md # Database schema β βββ WORKFLOW.md # Development workflows βββ .github/ β βββ copilot-instructions.md # GitHub Copilot βββ skills/ βββ api-testing/ β βββ SKILL.md βββ deployment/ β βββ SKILL.md βββ code-review/ βββ SKILL.md
### Writing Effective Agent Instructions
#### 1. Be Specific
β "Write good code"
β
"Use TypeScript strict mode, Prettier with 2-space indents, and named exports"
#### 2. Provide Examples
β "Follow our coding style"
β
Include code examples in your markdown files
#### 3. Explain Why
β "Never use `any` type"
β
"Never use `any` type because it defeats TypeScript's type safety and makes refactoring dangerous"
#### 4. Update Regularly
- Review markdown files monthly
- Update after major architectural changes
- Remove outdated instructions
- Keep examples current
#### 5. Test Your Instructions
- Ask your AI agent to perform tasks
- Verify it follows your guidelines
- Refine instructions based on results
---
## Cross-Platform Compatibility
### Universal Instructions (CLAUDE.md style)
Most agents can read markdown files. To support multiple IDEs:
```markdown
<!-- This file works in Claude Code, Cursor, Copilot, and Cline -->
# Universal Project Instructions
## Tech Stack
TypeScript, React, Next.js 15
## Rules
1. Use Server Components by default
2. TypeScript strict mode
3. Tailwind CSS for styling
4. Zod for validation
## Patterns
[Include your standard patterns here]
If you need different instructions per platform:
.claude/
βββ instructions.md # Claude Code
.cursor/
βββ rules # Cursor
.github/
βββ copilot-instructions.md # Copilot
.cline/
βββ instructions.md # Cline
1. Configuration Marketplaces
2. Auto-Generation
3. Cross-Agent Standards
4. Dynamic Configuration
For Every Project:
README.md - Project documentationCLAUDE.md or equivalent - Agent instructionsFor Agent Capabilities:
SKILL.md - Reusable skills (agentskills.io)TOOLS.md - Available tools and commandsFor Complex Projects:
MEMORY.md - Persistent agent memoryDESIGN.md - Design systemWORKFLOW.md - Development processesARCHITECTURE.md - System design| File | Purpose | Used By | Standard |
|---|---|---|---|
| SKILL.md | Define reusable agent skills | Claude Code, Cursor, Custom | agentskills.io |
| CLAUDE.md | Claude Code project instructions | Claude Code, Claude Desktop | Anthropic |
| AGENT.md | Full agent configuration | Custom agents | None (emerging) |
| MEMORY.md | Persistent context/memory | All agents | None |
| DESIGN.md | Design system docs | All agents | None |
| .cursorrules | Cursor IDE instructions | Cursor | Cursor |
| .clinerules | Cline agent instructions | Cline (VS Code) | Cline |
| .windsurfrules | Windsurf IDE instructions | Windsurf | Codeium |
| INSTRUCTIONS.md | GitHub Copilot instructions | GitHub Copilot | GitHub |
| TOOLS.md | Tool/command documentation | All agents | None |
| PROMPTS.md | Prompt templates | All agents | None |
| WORKFLOW.md | Process documentation | All agents | None |
| SCHEMA.md | Data schema docs | All agents | None |
| CONTEXT.md | Project background | All agents | None |
| MCP.md | MCP server docs | MCP-enabled agents | Anthropic |
Next Steps:
This guide reflects the state of agent configuration files as of May 2026. Standards and formats continue to evolve rapidly across the AI agent ecosystem.