What Are Skills?
Skills are markdown files (typicallySKILL.md) with YAML frontmatter containing:
- Workflow definitions - Step-by-step methodologies
- Best practices - Patterns and anti-patterns
- Code examples - Real implementations from the codebase
- Reference material - Framework-specific knowledge
Skill Structure
Here’s an example from the tdd-workflow skill:~/workspace/source/skills/tdd-workflow/SKILL.md
---
name: tdd-workflow
description: Use this skill when writing new features, fixing bugs, or refactoring code. Enforces test-driven development with 80%+ coverage.
origin: ECC
---
# Test-Driven Development Workflow
## When to Activate
- Writing new features or functionality
- Fixing bugs or issues
- Refactoring existing code
## Core Principles
### 1. Tests BEFORE Code
ALWAYS write tests first, then implement code to make tests pass.
### 2. Coverage Requirements
- Minimum 80% coverage (unit + integration + E2E)
- All edge cases covered
- Error scenarios tested
## TDD Workflow Steps
### Step 1: Write Failing Test (RED)
```typescript
describe('calculateLiquidityScore', () => {
it('should return high score for liquid market', () => {
const score = calculateLiquidityScore(liquidMarket)
expect(score).toBeGreaterThan(80)
})
})
Step 2: Run Test - Verify FAIL
Step 3: Implement Minimal Code (GREEN)
Step 4: Run Test - Verify PASS
Step 5: Refactor (IMPROVE)
Step 6: Verify Coverage
<Note>
Skills differ from **agents** (which execute tasks) and **rules** (which enforce standards). Skills are **reference material** that agents consult during execution.
</Note>
## Available Skills (50+)
ECC provides over 50 skills across multiple categories:
### Core Development Skills
<CardGroup cols={2}>
<Card title="tdd-workflow" icon="vial">
**Purpose:** Test-driven development methodology
**When to use:** Writing features, fixing bugs, refactoring
**Contents:**
- RED → GREEN → REFACTOR cycle
- Edge case testing strategies
- Mocking patterns for external dependencies
- Coverage verification
</Card>
<Card title="security-review" icon="shield">
**Purpose:** Comprehensive security checklist
**When to use:** Before commits, security-sensitive code
**Contents:**
- OWASP Top 10 checks
- Secret scanning patterns
- SQL injection prevention
- XSS and CSRF protection
</Card>
<Card title="coding-standards" icon="code">
**Purpose:** Universal coding standards
**When to use:** All development tasks
**Contents:**
- Immutability patterns
- File organization guidelines
- Error handling best practices
- Input validation strategies
</Card>
<Card title="verification-loop" icon="check-double">
**Purpose:** Continuous verification (build, test, lint, security)
**When to use:** CI/CD setup, quality gates
**Contents:**
- Multi-stage verification pipeline
- Checkpoint-based testing
- Automated quality gates
</Card>
</CardGroup>
### Backend Development
<CardGroup cols={2}>
<Card title="backend-patterns" icon="server">
**Purpose:** API design, database optimization, caching
**Real examples from source:**
- Repository pattern with Supabase
- Service layer architecture
- N+1 query prevention
- Redis caching strategies
</Card>
<Card title="api-design" icon="route">
**Purpose:** REST API design patterns
**Contents:**
- Resource-based URL structure
- Pagination and filtering
- Error response format
- Versioning strategies
</Card>
<Card title="database-migrations" icon="database">
**Purpose:** Migration patterns (Prisma, Drizzle, Django, Go)
**Contents:**
- Zero-downtime migrations
- Rollback strategies
- Data migration patterns
</Card>
<Card title="deployment-patterns" icon="rocket">
**Purpose:** CI/CD, Docker, health checks, rollbacks
**Contents:**
- Blue-green deployments
- Health check endpoints
- Automated rollbacks
</Card>
</CardGroup>
### Frontend Development
<CardGroup cols={2}>
<Card title="frontend-patterns" icon="react">
**Purpose:** React, Next.js patterns and best practices
**Real examples:**
- Server Components vs Client Components
- State management patterns
- Data fetching strategies
- Performance optimization
</Card>
<Card title="e2e-testing" icon="browser">
**Purpose:** Playwright E2E patterns and Page Object Model
**Contents:**
- Page object pattern
- Test isolation strategies
- Visual regression testing
- CI integration
</Card>
<Card title="frontend-slides" icon="presentation">
**Purpose:** HTML presentation builder with PPTX conversion
**Contents:**
- Zero-dependency slide decks
- PPTX conversion guidance
- Viewport-fit rules
</Card>
</CardGroup>
### Language-Specific Skills
<Tabs>
<Tab title="TypeScript">
- **coding-standards** - ESLint, Prettier, tsconfig best practices
- **frontend-patterns** - React, Next.js, Server Components
- **backend-patterns** - Express, Next.js API routes, tRPC
</Tab>
<Tab title="Python">
- **django-patterns** - Models, views, serializers, middleware
- **django-security** - Security best practices
- **django-tdd** - pytest, factory_boy, fixtures
- **django-verification** - Verification loops for Django
</Tab>
<Tab title="Go">
- **golang-patterns** - Idioms, error handling, concurrency
- **golang-testing** - Table-driven tests, benchmarks, coverage
</Tab>
<Tab title="C++">
- **cpp-coding-standards** - C++ Core Guidelines compliance
- **cpp-testing** - GoogleTest, CMake/CTest patterns
</Tab>
<Tab title="Java">
- **springboot-patterns** - Spring Boot, JPA, dependency injection
- **springboot-security** - Spring Security configuration
- **springboot-tdd** - JUnit, Mockito, test containers
</Tab>
</Tabs>
### Advanced Skills
<CardGroup cols={2}>
<Card title="continuous-learning-v2" icon="brain">
**Purpose:** Instinct-based learning with confidence scoring
**Features:**
- Auto-extract patterns from sessions
- Import/export instincts
- Evolution clustering
- Confidence-based filtering
</Card>
<Card title="strategic-compact" icon="compress">
**Purpose:** Manual compaction suggestions at logical intervals
**Features:**
- When to compact (after research, milestones)
- When NOT to compact (mid-implementation)
- Token optimization strategies
</Card>
<Card title="iterative-retrieval" icon="arrows-rotate">
**Purpose:** Progressive context refinement for subagents
**Features:**
- Multi-round context building
- Relevance scoring
- Context window optimization
</Card>
<Card title="security-scan" icon="shield-halved">
**Purpose:** AgentShield security auditor integration
**Features:**
- 102 static analysis rules
- Opus 4.6 adversarial reasoning
- Auto-fix safe issues
</Card>
</CardGroup>
## How Skills Work
### Skills vs. Agents vs. Rules
| Component | Purpose | When Used |
|-----------|---------|----------|
| **Skills** | Reference material and workflows | Consulted during task execution |
| **Agents** | Specialized executors | Perform delegated tasks |
| **Rules** | Standards and constraints | Always enforced |
### Example: TDD Workflow
<Steps>
<Step title="User Request">
User: "Add market liquidity scoring"
</Step>
<Step title="Command Execution">
`/tdd` command invokes the **tdd-guide** agent
</Step>
<Step title="Agent Consults Skill">
The **tdd-guide** agent references the **tdd-workflow** skill
</Step>
<Step title="Skill Provides Methodology">
Skill defines:
- Write failing test first (RED)
- Implement minimal code (GREEN)
- Refactor while keeping tests green (REFACTOR)
</Step>
<Step title="Agent Executes">
Agent follows the workflow defined in the skill
</Step>
</Steps>
## Real Code Examples from Skills
Skills include actual code examples extracted from the ECC codebase:
### Repository Pattern (from backend-patterns)
```typescript
// Abstract data access logic
interface MarketRepository {
findAll(filters?: MarketFilters): Promise<Market[]>
findById(id: string): Promise<Market | null>
create(data: CreateMarketDto): Promise<Market>
update(id: string, data: UpdateMarketDto): Promise<Market>
delete(id: string): Promise<void>
}
class SupabaseMarketRepository implements MarketRepository {
async findAll(filters?: MarketFilters): Promise<Market[]> {
let query = supabase.from('markets').select('*')
if (filters?.status) {
query = query.eq('status', filters.status)
}
const { data, error } = await query
if (error) throw new Error(error.message)
return data
}
}
Test Organization (from tdd-workflow)
describe('Semantic Search', () => {
it('returns relevant markets for query', async () => {
// Test implementation
})
it('handles empty query gracefully', async () => {
// Edge case
})
it('falls back to substring search when Redis unavailable', async () => {
// Fallback behavior
})
it('sorts results by similarity score', async () => {
// Sorting logic
})
})
Creating Custom Skills
You can create project-specific skills:~/.claude/skills/my-skill/SKILL.md
---
name: my-skill
description: When to use this skill and what problems it solves
origin: My Project
---
# Skill Title
## When to Activate
- Scenario 1
- Scenario 2
## Methodology
### Step 1: ...
### Step 2: ...
## Code Examples
```language
// Real code from your project
Anti-Patterns to Avoid
- ❌ Anti-pattern 1
- ❌ Anti-pattern 2
<Warning>
Skills should be **actionable** and **specific**. Avoid vague advice like "write good code." Include real code examples, concrete steps, and clear decision criteria.
</Warning>
## Skill Best Practices
<AccordionGroup>
<Accordion title="Include Real Examples">
Extract actual code from your codebase. Real examples are more valuable than pseudocode.
</Accordion>
<Accordion title="Define When to Use">
Clearly state the scenarios where this skill applies. This helps agents know when to reference it.
</Accordion>
<Accordion title="Provide Decision Criteria">
When multiple approaches exist, give specific criteria for choosing between them.
</Accordion>
<Accordion title="Link to Related Skills">
Reference other skills that complement this one (e.g., tdd-workflow → security-review).
</Accordion>
<Accordion title="Keep Skills Focused">
One skill, one domain. Don't create mega-skills that try to cover everything.
</Accordion>
</AccordionGroup>
## Next Steps
<CardGroup cols={2}>
<Card title="Explore Commands" icon="terminal" href="/concepts/commands">
Learn how commands invoke agents that use skills
</Card>
<Card title="Skills Reference" icon="list" href="/skills/overview">
Full catalog of all 50+ skills
</Card>
<Card title="TDD Workflow" icon="vial" href="/skills/tdd-workflow">
Deep dive into test-driven development
</Card>
<Card title="Backend Patterns" icon="server" href="/skills/backend-patterns">
API design and database optimization
</Card>
</CardGroup>