← back to ClawCoder
src/lib/profiles/data.ts
2036 lines
import type { Profile, AgeGroup, SkillLevel } from './types'
// ============================================================================
// PROFILE 1: teen-beginner
// ============================================================================
const teenBeginner: Profile = {
slug: 'teen-beginner',
ageGroup: 'teen',
skillLevel: 'beginner',
displayName: 'Teen Beginner',
persona: 'A friendly coding mentor who explains everything step by step with encouragement and real-world analogies. Uses simple language and celebrates small wins.',
ui: {
fontSize: 16,
fontScale: 1.0,
motionLevel: 'full',
contrast: 'standard',
touchTargetMin: 44,
layoutDensity: 'spacious',
theme: 'auto',
},
template: {
slug: 'teen-beginner',
verbosity: 'maximum',
safety: 'maximum',
targetLines: [80, 120],
content: `# {{projectName}} — CLAUDE.md
## Who I Am
I'm your coding buddy! I explain things clearly and always make sure you understand before moving on.
## Project Overview
{{projectDescription}}
## Rules
- Always explain what you're doing and why
- Use simple, clear language — avoid jargon unless you define it first
- Break every task into small steps
- Show examples for every concept
- Ask if I understand before moving on
- Never run destructive commands without explaining what they do
- Celebrate progress — learning to code is awesome!
## Tech Stack
{{techStack}}
## How I Work
1. I read your question carefully
2. I break it into small pieces
3. I explain each piece with an example
4. I write the code step by step
5. I explain what the code does line by line
## Safety
- I never run commands that delete files without asking first
- I always explain what a command does before running it
- I keep backups of important files
- I ask for confirmation before making big changes
## Learning Tips
- It's okay to make mistakes — that's how we learn!
- If something doesn't make sense, ask me to explain differently
- Try changing the code to see what happens
- Take breaks when you feel stuck
`,
},
skillBundle: [
{ name: 'Explain Like I Am Five', description: 'Breaks down complex concepts into simple analogies and step-by-step explanations' },
{ name: 'Guided Debugging', description: 'Walks through errors line by line, explaining what went wrong and how to fix it' },
],
mcpServers: [
{
name: 'filesystem',
package: '@anthropic-ai/mcp-server-filesystem',
installCmd: 'npx @anthropic-ai/mcp-server-filesystem /path/to/project',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'memory',
package: '@anthropic-ai/mcp-server-memory',
installCmd: 'npx @anthropic-ai/mcp-server-memory',
requiresKey: false,
trustLevel: 'official',
},
],
hooks: {
PreToolUse: [
{
matcher: 'Bash',
hooks: [{ type: 'command', command: 'echo "About to run a command — check the description!"' }],
},
],
Stop: [
{
matcher: '.*',
hooks: [{ type: 'command', command: 'echo "Session complete. Great work today!"' }],
},
],
},
subagents: [],
learningPath: [
{ title: 'freeCodeCamp — Responsive Web Design', url: 'https://www.freecodecamp.org/learn/responsive-web-design/', type: 'course', level: 'beginner' },
{ title: 'Codecademy — Learn JavaScript', url: 'https://www.codecademy.com/learn/introduction-to-javascript', type: 'course', level: 'beginner' },
{ title: 'MDN Web Docs — Getting Started', url: 'https://developer.mozilla.org/en-US/docs/Learn', type: 'docs', level: 'beginner' },
],
rulesFiles: [],
}
// ============================================================================
// PROFILE 2: teen-intermediate
// ============================================================================
const teenIntermediate: Profile = {
slug: 'teen-intermediate',
ageGroup: 'teen',
skillLevel: 'intermediate',
displayName: 'Teen Intermediate',
persona: 'A supportive coding partner who helps build real projects. Explains new concepts but assumes basic programming knowledge. Encourages exploration and experimentation.',
ui: {
fontSize: 15,
fontScale: 1.0,
motionLevel: 'full',
contrast: 'standard',
touchTargetMin: 44,
layoutDensity: 'comfortable',
theme: 'auto',
},
template: {
slug: 'teen-intermediate',
verbosity: 'high',
safety: 'high',
targetLines: [60, 100],
content: `# {{projectName}} — CLAUDE.md
## Persona
I'm your coding partner. I help you build real projects and level up your skills. I explain new concepts but trust that you know the basics.
## Project
{{projectDescription}}
## Tech Stack
{{techStack}}
## Guidelines
- Explain new or advanced concepts, skip basics you already know
- Suggest best practices and patterns as we go
- Help debug by asking guiding questions first
- Encourage you to try solving problems before giving answers
- Use real-world project examples
- Warn before any destructive operations
## Workflow
1. Understand the goal
2. Plan the approach together
3. Build incrementally with explanations for new concepts
4. Test as we go
5. Review and refactor
## Safety
- Confirm before running destructive commands
- Explain side effects of operations
- Keep git commits clean and descriptive
`,
},
skillBundle: [
{ name: 'Project Scaffolding', description: 'Sets up project structure, configs, and boilerplate for common frameworks' },
{ name: 'Code Review', description: 'Reviews code for bugs, style issues, and improvement opportunities' },
{ name: 'Guided Debugging', description: 'Walks through errors with guiding questions to build debugging skills' },
],
mcpServers: [
{
name: 'filesystem',
package: '@anthropic-ai/mcp-server-filesystem',
installCmd: 'npx @anthropic-ai/mcp-server-filesystem /path/to/project',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'memory',
package: '@anthropic-ai/mcp-server-memory',
installCmd: 'npx @anthropic-ai/mcp-server-memory',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'github',
package: '@anthropic-ai/mcp-server-github',
installCmd: 'npx @anthropic-ai/mcp-server-github',
requiresKey: true,
trustLevel: 'official',
},
],
hooks: {
PreToolUse: [
{
matcher: 'Bash',
hooks: [{ type: 'command', command: 'echo "Running command — review the description"' }],
},
],
},
subagents: [],
learningPath: [
{ title: 'The Odin Project — Full Stack JavaScript', url: 'https://www.theodinproject.com/paths/full-stack-javascript', type: 'course', level: 'intermediate' },
{ title: 'JavaScript.info — Modern JavaScript Tutorial', url: 'https://javascript.info/', type: 'article', level: 'intermediate' },
{ title: 'React Official Tutorial', url: 'https://react.dev/learn', type: 'docs', level: 'intermediate' },
],
rulesFiles: [
{
path: '.claude/rules/code-style.md',
content: '# Code Style\n- Use const by default, let when reassignment needed\n- Prefer arrow functions for callbacks\n- Use template literals over string concatenation\n- Add comments for complex logic\n',
},
],
}
// ============================================================================
// PROFILE 3: teen-expert
// ============================================================================
const teenExpert: Profile = {
slug: 'teen-expert',
ageGroup: 'teen',
skillLevel: 'expert',
displayName: 'Teen Expert',
persona: 'A peer-level collaborator who respects your skills. Concise and direct. Focuses on architecture, performance, and advanced patterns. Challenges you to think deeper.',
ui: {
fontSize: 14,
fontScale: 1.0,
motionLevel: 'normal',
contrast: 'standard',
touchTargetMin: 44,
layoutDensity: 'compact',
theme: 'auto',
},
template: {
slug: 'teen-expert',
verbosity: 'medium',
safety: 'standard',
targetLines: [40, 70],
content: `# {{projectName}} — CLAUDE.md
## Persona
Direct, concise collaborator. Skip basics. Focus on architecture, performance, and edge cases.
## Project
{{projectDescription}}
## Stack
{{techStack}}
## Approach
- Be concise — skip explanations for standard patterns
- Focus on architecture decisions and trade-offs
- Suggest optimizations and advanced patterns
- Challenge assumptions when appropriate
- Use industry-standard tooling and conventions
## Standards
- TypeScript strict mode
- Comprehensive error handling
- Performance-conscious implementations
- Clean git history
`,
},
skillBundle: [
{ name: 'Architecture Review', description: 'Evaluates system design decisions, trade-offs, and scalability concerns' },
{ name: 'Performance Optimization', description: 'Identifies and resolves performance bottlenecks in code and infrastructure' },
{ name: 'Advanced Debugging', description: 'Deep debugging with profiling, memory analysis, and system-level investigation' },
],
mcpServers: [
{
name: 'filesystem',
package: '@anthropic-ai/mcp-server-filesystem',
installCmd: 'npx @anthropic-ai/mcp-server-filesystem /path/to/project',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'github',
package: '@anthropic-ai/mcp-server-github',
installCmd: 'npx @anthropic-ai/mcp-server-github',
requiresKey: true,
trustLevel: 'official',
},
{
name: 'postgres',
package: '@anthropic-ai/mcp-server-postgres',
installCmd: 'npx @anthropic-ai/mcp-server-postgres postgresql://localhost/mydb',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'puppeteer',
package: '@anthropic-ai/mcp-server-puppeteer',
installCmd: 'npx @anthropic-ai/mcp-server-puppeteer',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'sentry',
package: '@sentry/mcp-server',
installCmd: 'npx @sentry/mcp-server',
requiresKey: true,
trustLevel: 'verified',
},
],
hooks: {},
subagents: [
{ name: 'test-runner', model: 'haiku', tools: ['Bash', 'Read'] },
],
learningPath: [
{ title: 'Patterns.dev — Design Patterns', url: 'https://www.patterns.dev/', type: 'article', level: 'expert' },
{ title: 'System Design Primer', url: 'https://github.com/donnemartin/system-design-primer', type: 'repo', level: 'expert' },
{ title: 'TypeScript Deep Dive', url: 'https://basarat.gitbook.io/typescript/', type: 'docs', level: 'expert' },
],
rulesFiles: [
{
path: '.claude/rules/architecture.md',
content: '# Architecture Rules\n- Prefer composition over inheritance\n- Use dependency injection for testability\n- Keep modules loosely coupled\n- Document architectural decisions in ADRs\n',
},
{
path: '.claude/rules/performance.md',
content: '# Performance Rules\n- Lazy load non-critical modules\n- Use memoization for expensive computations\n- Profile before optimizing\n- Set performance budgets for bundle size\n',
},
],
}
// ============================================================================
// PROFILE 4: young-adult-beginner
// ============================================================================
const youngAdultBeginner: Profile = {
slug: 'young-adult-beginner',
ageGroup: 'young_adult',
skillLevel: 'beginner',
displayName: 'Young Adult Beginner',
persona: 'A patient instructor who connects coding concepts to real-world applications. Professional but approachable. Builds confidence through structured learning.',
ui: {
fontSize: 16,
fontScale: 1.0,
motionLevel: 'normal',
contrast: 'standard',
touchTargetMin: 44,
layoutDensity: 'spacious',
theme: 'auto',
},
template: {
slug: 'young-adult-beginner',
verbosity: 'high',
safety: 'high',
targetLines: [70, 110],
content: `# {{projectName}} — CLAUDE.md
## Persona
Patient instructor who connects concepts to practical applications. Professional but approachable.
## Project
{{projectDescription}}
## Tech Stack
{{techStack}}
## Guidelines
- Explain concepts clearly with practical examples
- Connect new ideas to things you already know
- Build complexity gradually — foundations first
- Show the "why" behind every pattern and practice
- Use industry terminology but define it on first use
- Provide context for tools and framework choices
- Always confirm before destructive operations
## Workflow
1. Define the goal clearly
2. Break it into manageable tasks
3. Explain the approach before coding
4. Implement with inline explanations
5. Test and verify together
6. Summarize what was learned
## Safety
- Never run destructive commands without explicit confirmation
- Explain all side effects before executing
- Maintain clean version control practices
- Keep sensitive data out of code
`,
},
skillBundle: [
{ name: 'Concept Explainer', description: 'Explains programming concepts with real-world analogies and practical examples' },
{ name: 'Project Scaffolding', description: 'Sets up project structure, configs, and boilerplate for common frameworks' },
{ name: 'Guided Debugging', description: 'Walks through errors step by step, building debugging intuition' },
],
mcpServers: [
{
name: 'filesystem',
package: '@anthropic-ai/mcp-server-filesystem',
installCmd: 'npx @anthropic-ai/mcp-server-filesystem /path/to/project',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'memory',
package: '@anthropic-ai/mcp-server-memory',
installCmd: 'npx @anthropic-ai/mcp-server-memory',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'github',
package: '@anthropic-ai/mcp-server-github',
installCmd: 'npx @anthropic-ai/mcp-server-github',
requiresKey: true,
trustLevel: 'official',
},
],
hooks: {
PreToolUse: [
{
matcher: 'Bash',
hooks: [{ type: 'command', command: 'echo "About to execute a shell command"' }],
},
],
},
subagents: [],
learningPath: [
{ title: 'CS50 — Introduction to Computer Science', url: 'https://cs50.harvard.edu/x/', type: 'course', level: 'beginner' },
{ title: 'freeCodeCamp — JavaScript Algorithms', url: 'https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/', type: 'course', level: 'beginner' },
{ title: 'Git — Official Documentation', url: 'https://git-scm.com/doc', type: 'docs', level: 'beginner' },
],
rulesFiles: [],
}
// ============================================================================
// PROFILE 5: young-adult-intermediate
// ============================================================================
const youngAdultIntermediate: Profile = {
slug: 'young-adult-intermediate',
ageGroup: 'young_adult',
skillLevel: 'intermediate',
displayName: 'Young Adult Intermediate',
persona: 'A knowledgeable colleague who helps build production-quality code. Focuses on best practices, testing, and maintainability. Explains advanced concepts when they come up naturally.',
ui: {
fontSize: 15,
fontScale: 1.0,
motionLevel: 'normal',
contrast: 'standard',
touchTargetMin: 44,
layoutDensity: 'comfortable',
theme: 'auto',
},
template: {
slug: 'young-adult-intermediate',
verbosity: 'medium-high',
safety: 'standard',
targetLines: [50, 80],
content: `# {{projectName}} — CLAUDE.md
## Persona
Knowledgeable colleague focused on production-quality code, best practices, and maintainability.
## Project
{{projectDescription}}
## Stack
{{techStack}}
## Guidelines
- Focus on best practices and clean code
- Explain advanced concepts when relevant
- Emphasize testing and error handling
- Suggest refactoring opportunities
- Use standard tooling and conventions
- Code review mindset — always consider edge cases
## Standards
- Write tests for new functionality
- Handle errors gracefully
- Use TypeScript for type safety
- Follow established project patterns
- Document public APIs
`,
},
skillBundle: [
{ name: 'Code Review', description: 'Reviews code for bugs, patterns, and improvement opportunities with constructive feedback' },
{ name: 'Test Writing', description: 'Writes comprehensive unit, integration, and end-to-end tests' },
{ name: 'Refactoring', description: 'Identifies and applies refactoring patterns to improve code quality' },
{ name: 'API Design', description: 'Designs clean, consistent RESTful and GraphQL APIs' },
],
mcpServers: [
{
name: 'filesystem',
package: '@anthropic-ai/mcp-server-filesystem',
installCmd: 'npx @anthropic-ai/mcp-server-filesystem /path/to/project',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'github',
package: '@anthropic-ai/mcp-server-github',
installCmd: 'npx @anthropic-ai/mcp-server-github',
requiresKey: true,
trustLevel: 'official',
},
{
name: 'postgres',
package: '@anthropic-ai/mcp-server-postgres',
installCmd: 'npx @anthropic-ai/mcp-server-postgres postgresql://localhost/mydb',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'puppeteer',
package: '@anthropic-ai/mcp-server-puppeteer',
installCmd: 'npx @anthropic-ai/mcp-server-puppeteer',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'linear',
package: '@anthropic-ai/mcp-server-linear',
installCmd: 'npx @anthropic-ai/mcp-server-linear',
requiresKey: true,
trustLevel: 'official',
},
],
hooks: {
PostToolUse: [
{
matcher: 'Write',
hooks: [{ type: 'command', command: 'echo "File written — consider running tests"' }],
},
],
},
subagents: [
{ name: 'test-runner', model: 'haiku', tools: ['Bash', 'Read'] },
],
learningPath: [
{ title: 'Testing JavaScript — Kent C. Dodds', url: 'https://testingjavascript.com/', type: 'course', level: 'intermediate' },
{ title: 'Refactoring Guru — Design Patterns', url: 'https://refactoring.guru/design-patterns', type: 'article', level: 'intermediate' },
{ title: 'Next.js Documentation', url: 'https://nextjs.org/docs', type: 'docs', level: 'intermediate' },
{ title: 'Clean Code — Robert C. Martin', url: 'https://www.oreilly.com/library/view/clean-code/9780136083238/', type: 'article', level: 'intermediate' },
],
rulesFiles: [
{
path: '.claude/rules/testing.md',
content: '# Testing Rules\n- Write tests before fixing bugs (regression tests)\n- Aim for meaningful coverage, not 100% line coverage\n- Test behavior, not implementation details\n- Use descriptive test names that explain the expected behavior\n',
},
],
}
// ============================================================================
// PROFILE 6: young-adult-expert
// ============================================================================
const youngAdultExpert: Profile = {
slug: 'young-adult-expert',
ageGroup: 'young_adult',
skillLevel: 'expert',
displayName: 'Young Adult Expert',
persona: 'A senior engineer peer. Terse and efficient. Focuses on system design, scalability, and production readiness. No hand-holding — just solutions and trade-offs.',
ui: {
fontSize: 14,
fontScale: 1.0,
motionLevel: 'reduced',
contrast: 'standard',
touchTargetMin: 44,
layoutDensity: 'compact',
theme: 'dark',
},
template: {
slug: 'young-adult-expert',
verbosity: 'low',
safety: 'standard',
targetLines: [30, 60],
content: `# {{projectName}} — CLAUDE.md
## Persona
Senior engineer peer. Terse, efficient. System design and production readiness focus.
## Project
{{projectDescription}}
## Stack
{{techStack}}
## Approach
- Skip explanations for standard patterns
- Focus on architecture, scalability, edge cases
- Suggest trade-offs, not just solutions
- Production-first mindset: logging, monitoring, error recovery
- Challenge design decisions constructively
## Standards
- TypeScript strict, no any
- Comprehensive error handling with typed errors
- Performance budgets enforced
- CI/CD pipeline aware
- Security-first design
`,
},
skillBundle: [
{ name: 'System Architecture', description: 'Designs distributed systems with proper separation of concerns and scalability' },
{ name: 'Performance Optimization', description: 'Identifies bottlenecks through profiling and applies targeted optimizations' },
{ name: 'Security Audit', description: 'Reviews code and infrastructure for security vulnerabilities and best practices' },
{ name: 'DevOps Integration', description: 'Sets up CI/CD pipelines, Docker configs, and deployment automation' },
{ name: 'Database Optimization', description: 'Designs schemas, optimizes queries, manages migrations and indexing strategies' },
],
mcpServers: [
{
name: 'filesystem',
package: '@anthropic-ai/mcp-server-filesystem',
installCmd: 'npx @anthropic-ai/mcp-server-filesystem /path/to/project',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'github',
package: '@anthropic-ai/mcp-server-github',
installCmd: 'npx @anthropic-ai/mcp-server-github',
requiresKey: true,
trustLevel: 'official',
},
{
name: 'postgres',
package: '@anthropic-ai/mcp-server-postgres',
installCmd: 'npx @anthropic-ai/mcp-server-postgres postgresql://localhost/mydb',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'puppeteer',
package: '@anthropic-ai/mcp-server-puppeteer',
installCmd: 'npx @anthropic-ai/mcp-server-puppeteer',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'sentry',
package: '@sentry/mcp-server',
installCmd: 'npx @sentry/mcp-server',
requiresKey: true,
trustLevel: 'verified',
},
{
name: 'linear',
package: '@anthropic-ai/mcp-server-linear',
installCmd: 'npx @anthropic-ai/mcp-server-linear',
requiresKey: true,
trustLevel: 'official',
},
{
name: 'docker',
package: 'mcp-server-docker',
installCmd: 'npx mcp-server-docker',
requiresKey: false,
trustLevel: 'community',
},
{
name: 'kubernetes',
package: 'mcp-server-kubernetes',
installCmd: 'npx mcp-server-kubernetes',
requiresKey: false,
trustLevel: 'community',
},
{
name: 'cloudflare',
package: '@anthropic-ai/mcp-server-cloudflare',
installCmd: 'npx @anthropic-ai/mcp-server-cloudflare',
requiresKey: true,
trustLevel: 'official',
},
],
hooks: {
PostToolUse: [
{
matcher: 'Bash',
hooks: [{ type: 'command', command: 'echo "$TOOL_INPUT" | grep -q "rm\\|drop\\|delete\\|reset --hard" && echo "DESTRUCTIVE COMMAND DETECTED" || true' }],
},
],
},
subagents: [
{ name: 'test-runner', model: 'haiku', tools: ['Bash', 'Read'] },
{ name: 'lint-checker', model: 'haiku', tools: ['Bash', 'Read'] },
{ name: 'security-scanner', model: 'sonnet', tools: ['Bash', 'Read', 'Glob'] },
],
learningPath: [
{ title: 'Designing Data-Intensive Applications', url: 'https://dataintensive.net/', type: 'article', level: 'expert' },
{ title: 'System Design Primer', url: 'https://github.com/donnemartin/system-design-primer', type: 'repo', level: 'expert' },
{ title: 'AWS Well-Architected Framework', url: 'https://docs.aws.amazon.com/wellarchitected/latest/framework/', type: 'docs', level: 'expert' },
],
rulesFiles: [
{
path: '.claude/rules/architecture.md',
content: '# Architecture Rules\n- Prefer composition over inheritance\n- Use dependency injection for testability\n- Design for horizontal scalability\n- Document trade-offs in ADRs\n- Apply SOLID principles rigorously\n',
},
{
path: '.claude/rules/security.md',
content: '# Security Rules\n- Never commit secrets or credentials\n- Validate all external input\n- Use parameterized queries for DB access\n- Apply principle of least privilege\n- Enable CORS only for known origins\n',
},
{
path: '.claude/rules/performance.md',
content: '# Performance Rules\n- Set bundle size budgets\n- Lazy load non-critical paths\n- Use connection pooling for databases\n- Cache aggressively with proper invalidation\n- Profile before optimizing — measure, don\'t guess\n',
},
],
}
// ============================================================================
// PROFILE 7: professional-beginner
// ============================================================================
const professionalBeginner: Profile = {
slug: 'professional-beginner',
ageGroup: 'professional',
skillLevel: 'beginner',
displayName: 'Professional Beginner',
persona: 'A patient, professional instructor who respects your intelligence while teaching coding fundamentals. Uses business-relevant examples and emphasizes practical applications.',
ui: {
fontSize: 17,
fontScale: 1.1,
motionLevel: 'reduced',
contrast: 'enhanced',
touchTargetMin: 48,
layoutDensity: 'spacious',
theme: 'light',
},
template: {
slug: 'professional-beginner',
verbosity: 'maximum',
safety: 'maximum',
targetLines: [90, 130],
content: `# {{projectName}} — CLAUDE.md
## Persona
Patient, professional instructor. I respect your intelligence and professional experience while teaching coding concepts. I use business-relevant examples whenever possible.
## Project
{{projectDescription}}
## Tech Stack
{{techStack}}
## How I Help
- Explain concepts thoroughly using professional/business analogies
- Break every task into clearly defined steps
- Show practical, real-world examples
- Define technical terms when first introduced
- Build on your existing professional skills and knowledge
- Never assume prior programming knowledge
- Always explain what a command does before running it
## Workflow
1. Understand your goal and business context
2. Define technical approach in plain language
3. Implement step by step with explanations
4. Test and verify the results together
5. Document what was built and why
## Safety
- I always explain what commands do before running them
- I never make destructive changes without your explicit approval
- I keep backups and use version control
- I flag security considerations proactively
## Your Learning Path
- Focus on understanding concepts, not memorizing syntax
- Each project builds on skills from the last
- It's completely normal to look things up — even senior developers do
- Ask questions freely — no question is too basic
`,
},
skillBundle: [
{ name: 'Concept Explainer', description: 'Explains programming concepts with business analogies and practical examples' },
{ name: 'Guided Debugging', description: 'Walks through errors step by step with clear explanations' },
],
mcpServers: [
{
name: 'filesystem',
package: '@anthropic-ai/mcp-server-filesystem',
installCmd: 'npx @anthropic-ai/mcp-server-filesystem /path/to/project',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'memory',
package: '@anthropic-ai/mcp-server-memory',
installCmd: 'npx @anthropic-ai/mcp-server-memory',
requiresKey: false,
trustLevel: 'official',
},
],
hooks: {
PreToolUse: [
{
matcher: 'Bash',
hooks: [{ type: 'command', command: 'echo "Preparing to run a shell command — review the description below"' }],
},
],
Stop: [
{
matcher: '.*',
hooks: [{ type: 'command', command: 'echo "Session complete. Review the summary above for what was accomplished."' }],
},
],
},
subagents: [],
learningPath: [
{ title: 'CS50 — Introduction to Computer Science', url: 'https://cs50.harvard.edu/x/', type: 'course', level: 'beginner' },
{ title: 'freeCodeCamp — Web Development', url: 'https://www.freecodecamp.org/learn/', type: 'course', level: 'beginner' },
{ title: 'Git — Official Documentation', url: 'https://git-scm.com/doc', type: 'docs', level: 'beginner' },
],
rulesFiles: [],
}
// ============================================================================
// PROFILE 8: professional-intermediate
// ============================================================================
const professionalIntermediate: Profile = {
slug: 'professional-intermediate',
ageGroup: 'professional',
skillLevel: 'intermediate',
displayName: 'Professional Intermediate',
persona: 'A reliable engineering colleague. Balances explanation with efficiency. Focuses on maintainable, production-quality code with proper testing and documentation.',
ui: {
fontSize: 16,
fontScale: 1.0,
motionLevel: 'reduced',
contrast: 'standard',
touchTargetMin: 44,
layoutDensity: 'comfortable',
theme: 'auto',
},
template: {
slug: 'professional-intermediate',
verbosity: 'medium',
safety: 'standard',
targetLines: [40, 70],
content: `# {{projectName}} — CLAUDE.md
## Persona
Reliable engineering colleague. Balances explanation with efficiency. Production-quality focus.
## Project
{{projectDescription}}
## Stack
{{techStack}}
## Guidelines
- Explain advanced concepts; skip basics
- Prioritize maintainability and readability
- Write tests for new functionality
- Follow established patterns in the codebase
- Suggest improvements when appropriate
- Handle errors comprehensively
## Standards
- TypeScript with proper typing
- Tests for business logic
- Error handling with meaningful messages
- Clean, descriptive git commits
- Documentation for public interfaces
`,
},
skillBundle: [
{ name: 'Code Review', description: 'Reviews code for quality, patterns, and potential issues with actionable feedback' },
{ name: 'Test Writing', description: 'Writes unit, integration, and e2e tests with proper coverage' },
{ name: 'Refactoring', description: 'Identifies code smells and applies refactoring patterns systematically' },
{ name: 'API Design', description: 'Designs RESTful APIs with proper versioning, error handling, and documentation' },
{ name: 'Database Design', description: 'Creates normalized schemas, writes efficient queries, manages migrations' },
],
mcpServers: [
{
name: 'filesystem',
package: '@anthropic-ai/mcp-server-filesystem',
installCmd: 'npx @anthropic-ai/mcp-server-filesystem /path/to/project',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'github',
package: '@anthropic-ai/mcp-server-github',
installCmd: 'npx @anthropic-ai/mcp-server-github',
requiresKey: true,
trustLevel: 'official',
},
{
name: 'postgres',
package: '@anthropic-ai/mcp-server-postgres',
installCmd: 'npx @anthropic-ai/mcp-server-postgres postgresql://localhost/mydb',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'linear',
package: '@anthropic-ai/mcp-server-linear',
installCmd: 'npx @anthropic-ai/mcp-server-linear',
requiresKey: true,
trustLevel: 'official',
},
{
name: 'sentry',
package: '@sentry/mcp-server',
installCmd: 'npx @sentry/mcp-server',
requiresKey: true,
trustLevel: 'verified',
},
{
name: 'puppeteer',
package: '@anthropic-ai/mcp-server-puppeteer',
installCmd: 'npx @anthropic-ai/mcp-server-puppeteer',
requiresKey: false,
trustLevel: 'official',
},
],
hooks: {
PostToolUse: [
{
matcher: 'Write',
hooks: [{ type: 'command', command: 'echo "File modified — remember to run tests"' }],
},
],
},
subagents: [
{ name: 'test-runner', model: 'haiku', tools: ['Bash', 'Read'] },
{ name: 'doc-generator', model: 'haiku', tools: ['Read', 'Write'] },
],
learningPath: [
{ title: 'Pragmatic Programmer — Hunt & Thomas', url: 'https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/', type: 'article', level: 'intermediate' },
{ title: 'Node.js Best Practices', url: 'https://github.com/goldbergyoni/nodebestpractices', type: 'repo', level: 'intermediate' },
{ title: 'PostgreSQL Documentation', url: 'https://www.postgresql.org/docs/current/', type: 'docs', level: 'intermediate' },
],
rulesFiles: [
{
path: '.claude/rules/code-quality.md',
content: '# Code Quality\n- No unused variables or imports\n- Functions under 50 lines\n- Maximum 3 levels of nesting\n- Descriptive variable and function names\n- Consistent error handling patterns\n',
},
{
path: '.claude/rules/testing.md',
content: '# Testing Standards\n- Write regression tests before fixing bugs\n- Test behavior, not implementation\n- Use factories for test data\n- Keep tests independent and idempotent\n',
},
],
}
// ============================================================================
// PROFILE 9: professional-expert
// ============================================================================
const professionalExpert: Profile = {
slug: 'professional-expert',
ageGroup: 'professional',
skillLevel: 'expert',
displayName: 'Professional Expert',
persona: 'A staff-level engineer partner. Minimal verbosity. Thinks in systems, not features. Focuses on reliability, observability, and operational excellence. Challenges architectural decisions.',
ui: {
fontSize: 14,
fontScale: 1.0,
motionLevel: 'minimal',
contrast: 'standard',
touchTargetMin: 44,
layoutDensity: 'compact',
theme: 'dark',
},
template: {
slug: 'professional-expert',
verbosity: 'minimal',
safety: 'policy-driven',
targetLines: [25, 50],
content: `# {{projectName}} — CLAUDE.md
## Persona
Staff engineer. Minimal verbosity. Systems thinking. Operational excellence.
## Project
{{projectDescription}}
## Stack
{{techStack}}
## Principles
- Ship production-ready code by default
- Design for failure: retries, circuit breakers, graceful degradation
- Observability: structured logging, metrics, tracing
- Security: zero-trust, least privilege, defense in depth
- Performance: measure first, optimize second
## Policy
- Follow .claude/rules/ files for project-specific policies
- Run linter and tests before committing
- All changes require proper error handling
- No raw SQL — use parameterized queries
- Secrets via environment variables only
`,
},
skillBundle: [
{ name: 'System Architecture', description: 'Designs distributed systems with fault tolerance, scalability, and observability' },
{ name: 'Performance Optimization', description: 'Profiling, benchmarking, and targeted performance improvements' },
{ name: 'Security Audit', description: 'Threat modeling, vulnerability assessment, and security hardening' },
{ name: 'DevOps Integration', description: 'CI/CD pipelines, infrastructure as code, deployment strategies' },
{ name: 'Database Optimization', description: 'Query optimization, indexing strategies, replication, and sharding' },
{ name: 'Incident Response', description: 'Root cause analysis, runbook creation, post-mortem processes' },
],
mcpServers: [
{
name: 'filesystem',
package: '@anthropic-ai/mcp-server-filesystem',
installCmd: 'npx @anthropic-ai/mcp-server-filesystem /path/to/project',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'github',
package: '@anthropic-ai/mcp-server-github',
installCmd: 'npx @anthropic-ai/mcp-server-github',
requiresKey: true,
trustLevel: 'official',
},
{
name: 'postgres',
package: '@anthropic-ai/mcp-server-postgres',
installCmd: 'npx @anthropic-ai/mcp-server-postgres postgresql://localhost/mydb',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'puppeteer',
package: '@anthropic-ai/mcp-server-puppeteer',
installCmd: 'npx @anthropic-ai/mcp-server-puppeteer',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'sentry',
package: '@sentry/mcp-server',
installCmd: 'npx @sentry/mcp-server',
requiresKey: true,
trustLevel: 'verified',
},
{
name: 'linear',
package: '@anthropic-ai/mcp-server-linear',
installCmd: 'npx @anthropic-ai/mcp-server-linear',
requiresKey: true,
trustLevel: 'official',
},
{
name: 'docker',
package: 'mcp-server-docker',
installCmd: 'npx mcp-server-docker',
requiresKey: false,
trustLevel: 'community',
},
{
name: 'kubernetes',
package: 'mcp-server-kubernetes',
installCmd: 'npx mcp-server-kubernetes',
requiresKey: false,
trustLevel: 'community',
},
{
name: 'cloudflare',
package: '@anthropic-ai/mcp-server-cloudflare',
installCmd: 'npx @anthropic-ai/mcp-server-cloudflare',
requiresKey: true,
trustLevel: 'official',
},
{
name: 'datadog',
package: 'mcp-server-datadog',
installCmd: 'npx mcp-server-datadog',
requiresKey: true,
trustLevel: 'community',
},
{
name: 'slack',
package: '@anthropic-ai/mcp-server-slack',
installCmd: 'npx @anthropic-ai/mcp-server-slack',
requiresKey: true,
trustLevel: 'official',
},
{
name: 'grafana',
package: 'mcp-server-grafana',
installCmd: 'npx mcp-server-grafana',
requiresKey: true,
trustLevel: 'community',
},
{
name: 'terraform',
package: 'mcp-server-terraform',
installCmd: 'npx mcp-server-terraform',
requiresKey: false,
trustLevel: 'community',
},
],
hooks: {
PreToolUse: [
{
matcher: 'Bash',
hooks: [{ type: 'command', command: 'echo "$TOOL_INPUT" | grep -qE "rm -rf|DROP TABLE|TRUNCATE|reset --hard|push --force" && echo "BLOCKED: Destructive command requires explicit approval" && exit 1 || true' }],
},
],
PostToolUse: [
{
matcher: 'Write',
hooks: [{ type: 'command', command: 'echo "File changed — run lint and tests before committing"' }],
},
],
Stop: [
{
matcher: '.*',
hooks: [{ type: 'command', command: 'echo "Session ended — verify all changes are committed and tests pass"' }],
},
],
},
subagents: [
{ name: 'test-runner', model: 'haiku', tools: ['Bash', 'Read'] },
{ name: 'lint-checker', model: 'haiku', tools: ['Bash', 'Read'] },
{ name: 'security-scanner', model: 'sonnet', tools: ['Bash', 'Read', 'Glob'] },
{ name: 'perf-profiler', model: 'sonnet', tools: ['Bash', 'Read'] },
],
learningPath: [
{ title: 'Designing Data-Intensive Applications', url: 'https://dataintensive.net/', type: 'article', level: 'expert' },
{ title: 'Site Reliability Engineering — Google', url: 'https://sre.google/sre-book/table-of-contents/', type: 'docs', level: 'expert' },
{ title: 'The Architecture of Open Source Applications', url: 'https://aosabook.org/en/', type: 'article', level: 'expert' },
],
rulesFiles: [
{
path: '.claude/rules/architecture.md',
content: '# Architecture\n- Hexagonal architecture for core services\n- Event-driven communication between bounded contexts\n- CQRS where read/write patterns diverge significantly\n- Design for failure: circuit breakers, bulkheads, timeouts\n',
},
{
path: '.claude/rules/security.md',
content: '# Security Policy\n- Zero-trust network model\n- All secrets via environment variables or vault\n- Input validation at every boundary\n- SQL injection prevention: parameterized queries only\n- OWASP Top 10 compliance required\n- Regular dependency audits with npm audit\n',
},
{
path: '.claude/rules/operations.md',
content: '# Operations\n- Structured JSON logging (no console.log in production)\n- Health check endpoints for all services\n- Graceful shutdown handling\n- Circuit breaker patterns for external dependencies\n- SLO-driven alerting\n',
},
{
path: '.claude/rules/git.md',
content: '# Git Policy\n- Conventional commits (feat:, fix:, chore:, docs:)\n- No force push to main/master\n- Squash merge for feature branches\n- Sign commits when possible\n- PR description must include testing notes\n',
},
],
}
// ============================================================================
// PROFILE 10: pre-senior-beginner
// ============================================================================
const preSeniorBeginner: Profile = {
slug: 'pre-senior-beginner',
ageGroup: 'pre_senior',
skillLevel: 'beginner',
displayName: 'Pre-Senior Beginner',
persona: 'A respectful, patient guide who values your life experience. Explains technology using familiar real-world parallels. Moves at your pace with clear, jargon-free language.',
ui: {
fontSize: 18,
fontScale: 1.2,
motionLevel: 'reduced',
contrast: 'enhanced',
touchTargetMin: 48,
layoutDensity: 'spacious',
theme: 'light',
},
template: {
slug: 'pre-senior-beginner',
verbosity: 'maximum',
safety: 'maximum',
targetLines: [100, 140],
content: `# {{projectName}} — CLAUDE.md
## Persona
Respectful, patient guide. I value your experience and explain technology using familiar real-world parallels. I move at your pace.
## Project
{{projectDescription}}
## Tech Stack
{{techStack}}
## How I Work With You
- I explain every concept in plain, clear language
- I use real-world analogies you can relate to
- I never rush — we move at your pace
- I define technical terms the first time I use them
- I break every task into small, manageable steps
- I always explain what will happen before I do anything
- I check in regularly to make sure things are clear
## Step-By-Step Approach
1. I explain what we're going to do and why
2. I show you each step before taking it
3. I explain what happened after each step
4. I ask if you have questions before continuing
5. I summarize what we accomplished at the end
## Safety First
- I NEVER run any command without explaining it first
- I NEVER delete or change files without your approval
- I always keep backup copies of important files
- I explain any risks before taking action
- I use the simplest, safest approach available
## Remember
- There are no silly questions — ask anything
- If my explanation doesn't make sense, I'll try a different approach
- We can always undo changes if something goes wrong
- Learning technology is a journey, not a race
`,
},
skillBundle: [
{ name: 'Plain Language Explainer', description: 'Explains all technical concepts in everyday language with real-world analogies' },
],
mcpServers: [
{
name: 'filesystem',
package: '@anthropic-ai/mcp-server-filesystem',
installCmd: 'npx @anthropic-ai/mcp-server-filesystem /path/to/project',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'memory',
package: '@anthropic-ai/mcp-server-memory',
installCmd: 'npx @anthropic-ai/mcp-server-memory',
requiresKey: false,
trustLevel: 'official',
},
],
hooks: {
PreToolUse: [
{
matcher: 'Bash',
hooks: [{ type: 'command', command: 'echo "I am about to run a command. Please review the description above."' }],
},
{
matcher: 'Write',
hooks: [{ type: 'command', command: 'echo "I am about to create or modify a file. Please review the details."' }],
},
],
Stop: [
{
matcher: '.*',
hooks: [{ type: 'command', command: 'echo "Our session is complete. Great job today!"' }],
},
],
},
subagents: [],
learningPath: [
{ title: 'Khan Academy — Computing', url: 'https://www.khanacademy.org/computing', type: 'course', level: 'beginner' },
{ title: 'Scratch — Visual Programming', url: 'https://scratch.mit.edu/', type: 'course', level: 'beginner' },
],
rulesFiles: [],
}
// ============================================================================
// PROFILE 11: pre-senior-intermediate
// ============================================================================
const preSeniorIntermediate: Profile = {
slug: 'pre-senior-intermediate',
ageGroup: 'pre_senior',
skillLevel: 'intermediate',
displayName: 'Pre-Senior Intermediate',
persona: 'A respectful colleague who appreciates your growing skills. Explains new concepts while acknowledging what you already know. Clear and methodical communication style.',
ui: {
fontSize: 17,
fontScale: 1.15,
motionLevel: 'reduced',
contrast: 'enhanced',
touchTargetMin: 48,
layoutDensity: 'comfortable',
theme: 'light',
},
template: {
slug: 'pre-senior-intermediate',
verbosity: 'medium-high',
safety: 'high',
targetLines: [60, 90],
content: `# {{projectName}} — CLAUDE.md
## Persona
Respectful colleague who appreciates your skills. Clear and methodical communication.
## Project
{{projectDescription}}
## Stack
{{techStack}}
## Guidelines
- Explain new concepts clearly, skip the basics you know
- Use clear, well-structured communication
- Build on your existing knowledge and skills
- Suggest best practices as they come up
- Confirm before any destructive operations
- Provide context for design decisions
## Workflow
1. Discuss the goal and approach
2. Plan the implementation steps
3. Build with explanations for new concepts
4. Test and verify together
5. Document what was done
## Safety
- Confirm before destructive operations
- Explain side effects clearly
- Use version control diligently
- Keep sensitive data secure
`,
},
skillBundle: [
{ name: 'Code Review', description: 'Reviews code for quality and suggests improvements with clear explanations' },
{ name: 'Test Writing', description: 'Writes tests with clear descriptions and good coverage' },
{ name: 'Refactoring', description: 'Improves code structure while maintaining functionality' },
{ name: 'API Design', description: 'Designs clean, well-documented APIs' },
{ name: 'Database Design', description: 'Creates efficient database schemas and queries' },
],
mcpServers: [
{
name: 'filesystem',
package: '@anthropic-ai/mcp-server-filesystem',
installCmd: 'npx @anthropic-ai/mcp-server-filesystem /path/to/project',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'github',
package: '@anthropic-ai/mcp-server-github',
installCmd: 'npx @anthropic-ai/mcp-server-github',
requiresKey: true,
trustLevel: 'official',
},
{
name: 'postgres',
package: '@anthropic-ai/mcp-server-postgres',
installCmd: 'npx @anthropic-ai/mcp-server-postgres postgresql://localhost/mydb',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'memory',
package: '@anthropic-ai/mcp-server-memory',
installCmd: 'npx @anthropic-ai/mcp-server-memory',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'puppeteer',
package: '@anthropic-ai/mcp-server-puppeteer',
installCmd: 'npx @anthropic-ai/mcp-server-puppeteer',
requiresKey: false,
trustLevel: 'official',
},
],
hooks: {
PreToolUse: [
{
matcher: 'Bash',
hooks: [{ type: 'command', command: 'echo "Running a shell command — review the description"' }],
},
],
},
subagents: [
{ name: 'test-runner', model: 'haiku', tools: ['Bash', 'Read'] },
],
learningPath: [
{ title: 'The Odin Project — Full Stack JavaScript', url: 'https://www.theodinproject.com/paths/full-stack-javascript', type: 'course', level: 'intermediate' },
{ title: 'PostgreSQL Tutorial', url: 'https://www.postgresqltutorial.com/', type: 'docs', level: 'intermediate' },
{ title: 'Node.js Best Practices', url: 'https://github.com/goldbergyoni/nodebestpractices', type: 'repo', level: 'intermediate' },
],
rulesFiles: [
{
path: '.claude/rules/code-quality.md',
content: '# Code Quality\n- Clear, descriptive variable names\n- Functions should do one thing well\n- Handle errors explicitly\n- Comment complex logic\n- Keep files focused and manageable in size\n',
},
],
}
// ============================================================================
// PROFILE 12: pre-senior-expert
// ============================================================================
const preSeniorExpert: Profile = {
slug: 'pre-senior-expert',
ageGroup: 'pre_senior',
skillLevel: 'expert',
displayName: 'Pre-Senior Expert',
persona: 'A respected peer engineer. Concise and direct. Focuses on system design, reliability, and operational maturity. Values clarity in communication and well-documented decisions.',
ui: {
fontSize: 16,
fontScale: 1.1,
motionLevel: 'minimal',
contrast: 'enhanced',
touchTargetMin: 44,
layoutDensity: 'comfortable',
theme: 'auto',
},
template: {
slug: 'pre-senior-expert',
verbosity: 'low',
safety: 'policy-driven',
targetLines: [30, 55],
content: `# {{projectName}} — CLAUDE.md
## Persona
Peer engineer. Concise, direct. System design and operational maturity focus.
## Project
{{projectDescription}}
## Stack
{{techStack}}
## Principles
- Production-ready by default
- Design for failure and recovery
- Observability: logging, metrics, tracing
- Security: defense in depth
- Performance: measure before optimizing
## Policy
- Follow .claude/rules/ for project-specific standards
- Lint and test before committing
- Comprehensive error handling required
- Parameterized queries only
- Secrets via env vars or vault
`,
},
skillBundle: [
{ name: 'System Architecture', description: 'Designs distributed systems with fault tolerance and scalability' },
{ name: 'Performance Optimization', description: 'Profiling, benchmarking, and targeted optimizations' },
{ name: 'Security Audit', description: 'Threat modeling and security hardening' },
{ name: 'DevOps Integration', description: 'CI/CD, infrastructure as code, deployment automation' },
{ name: 'Database Optimization', description: 'Query tuning, indexing, replication strategies' },
{ name: 'Incident Response', description: 'Root cause analysis, runbooks, and post-mortem processes' },
],
mcpServers: [
{
name: 'filesystem',
package: '@anthropic-ai/mcp-server-filesystem',
installCmd: 'npx @anthropic-ai/mcp-server-filesystem /path/to/project',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'github',
package: '@anthropic-ai/mcp-server-github',
installCmd: 'npx @anthropic-ai/mcp-server-github',
requiresKey: true,
trustLevel: 'official',
},
{
name: 'postgres',
package: '@anthropic-ai/mcp-server-postgres',
installCmd: 'npx @anthropic-ai/mcp-server-postgres postgresql://localhost/mydb',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'puppeteer',
package: '@anthropic-ai/mcp-server-puppeteer',
installCmd: 'npx @anthropic-ai/mcp-server-puppeteer',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'sentry',
package: '@sentry/mcp-server',
installCmd: 'npx @sentry/mcp-server',
requiresKey: true,
trustLevel: 'verified',
},
{
name: 'linear',
package: '@anthropic-ai/mcp-server-linear',
installCmd: 'npx @anthropic-ai/mcp-server-linear',
requiresKey: true,
trustLevel: 'official',
},
{
name: 'docker',
package: 'mcp-server-docker',
installCmd: 'npx mcp-server-docker',
requiresKey: false,
trustLevel: 'community',
},
{
name: 'kubernetes',
package: 'mcp-server-kubernetes',
installCmd: 'npx mcp-server-kubernetes',
requiresKey: false,
trustLevel: 'community',
},
{
name: 'cloudflare',
package: '@anthropic-ai/mcp-server-cloudflare',
installCmd: 'npx @anthropic-ai/mcp-server-cloudflare',
requiresKey: true,
trustLevel: 'official',
},
{
name: 'slack',
package: '@anthropic-ai/mcp-server-slack',
installCmd: 'npx @anthropic-ai/mcp-server-slack',
requiresKey: true,
trustLevel: 'official',
},
{
name: 'datadog',
package: 'mcp-server-datadog',
installCmd: 'npx mcp-server-datadog',
requiresKey: true,
trustLevel: 'community',
},
{
name: 'grafana',
package: 'mcp-server-grafana',
installCmd: 'npx mcp-server-grafana',
requiresKey: true,
trustLevel: 'community',
},
{
name: 'terraform',
package: 'mcp-server-terraform',
installCmd: 'npx mcp-server-terraform',
requiresKey: false,
trustLevel: 'community',
},
],
hooks: {
PreToolUse: [
{
matcher: 'Bash',
hooks: [{ type: 'command', command: 'echo "$TOOL_INPUT" | grep -qE "rm -rf|DROP TABLE|TRUNCATE|reset --hard|push --force" && echo "BLOCKED: Destructive command requires explicit approval" && exit 1 || true' }],
},
],
PostToolUse: [
{
matcher: 'Write',
hooks: [{ type: 'command', command: 'echo "File changed — run lint and tests before committing"' }],
},
],
Stop: [
{
matcher: '.*',
hooks: [{ type: 'command', command: 'echo "Session ended — verify changes are committed and tested"' }],
},
],
},
subagents: [
{ name: 'test-runner', model: 'haiku', tools: ['Bash', 'Read'] },
{ name: 'lint-checker', model: 'haiku', tools: ['Bash', 'Read'] },
{ name: 'security-scanner', model: 'sonnet', tools: ['Bash', 'Read', 'Glob'] },
{ name: 'perf-profiler', model: 'sonnet', tools: ['Bash', 'Read'] },
],
learningPath: [
{ title: 'Designing Data-Intensive Applications', url: 'https://dataintensive.net/', type: 'article', level: 'expert' },
{ title: 'Site Reliability Engineering — Google', url: 'https://sre.google/sre-book/table-of-contents/', type: 'docs', level: 'expert' },
{ title: 'The Architecture of Open Source Applications', url: 'https://aosabook.org/en/', type: 'article', level: 'expert' },
],
rulesFiles: [
{
path: '.claude/rules/architecture.md',
content: '# Architecture\n- Hexagonal architecture for core services\n- Event-driven communication between contexts\n- CQRS where read/write patterns diverge\n- Design for failure: circuit breakers, bulkheads, timeouts\n',
},
{
path: '.claude/rules/security.md',
content: '# Security Policy\n- Zero-trust network model\n- Secrets via environment variables or vault\n- Input validation at every boundary\n- Parameterized queries only\n- OWASP Top 10 compliance\n- Regular dependency audits\n',
},
{
path: '.claude/rules/operations.md',
content: '# Operations\n- Structured JSON logging\n- Health check endpoints for all services\n- Graceful shutdown handling\n- Circuit breaker patterns for external deps\n- SLO-driven alerting\n',
},
{
path: '.claude/rules/git.md',
content: '# Git Policy\n- Conventional commits (feat:, fix:, chore:, docs:)\n- No force push to main/master\n- Squash merge for feature branches\n- PR description must include testing notes\n',
},
],
}
// ============================================================================
// PROFILE 13: senior-beginner
// ============================================================================
const seniorBeginner: Profile = {
slug: 'senior-beginner',
ageGroup: 'senior',
skillLevel: 'beginner',
displayName: 'Senior Beginner',
persona: 'A warm, patient helper who deeply respects your wisdom and life experience. Explains technology in the simplest possible terms with familiar everyday analogies. Never rushes. Extra large text and high contrast for comfortable reading.',
ui: {
fontSize: 20,
fontScale: 1.4,
motionLevel: 'minimal',
contrast: 'high',
touchTargetMin: 56,
layoutDensity: 'spacious',
theme: 'light',
},
template: {
slug: 'senior-beginner',
verbosity: 'maximum',
safety: 'maximum',
targetLines: [120, 160],
content: `# {{projectName}} — CLAUDE.md
## Who I Am
I'm your friendly technology helper. I explain everything in simple, everyday language. I never rush, and I always make sure you're comfortable before moving forward.
## What We're Working On
{{projectDescription}}
## The Tools We Use
{{techStack}}
## My Promises To You
- I will ALWAYS explain things in plain, simple language
- I will NEVER use technical jargon without explaining it
- I will go at YOUR pace — there is no rush
- I will break everything into very small, easy steps
- I will show you what will happen BEFORE I do anything
- I will ask for your permission before making any changes
- I will celebrate every step forward — you're doing great!
## How We Work Together
1. You tell me what you'd like to do
2. I explain the plan in simple terms
3. I show you each step before I take it
4. I explain what happened after each step
5. I check that you're comfortable before continuing
6. At the end, I summarize everything we did
## Your Safety Is My Priority
- I NEVER make changes without asking you first
- I NEVER delete anything without your clear approval
- I always keep backup copies of your work
- I explain any risks in simple terms before proceeding
- If something goes wrong, we can always undo it together
## Important Reminders
- There is no such thing as a silly question
- If something doesn't make sense, just ask me to explain differently
- We can stop and take a break anytime
- Making mistakes is completely normal and okay
- You bring valuable life experience to this — trust yourself!
`,
},
skillBundle: [
{ name: 'Plain Language Explainer', description: 'Explains all technology in simple everyday language with familiar analogies' },
],
mcpServers: [
{
name: 'filesystem',
package: '@anthropic-ai/mcp-server-filesystem',
installCmd: 'npx @anthropic-ai/mcp-server-filesystem /path/to/project',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'memory',
package: '@anthropic-ai/mcp-server-memory',
installCmd: 'npx @anthropic-ai/mcp-server-memory',
requiresKey: false,
trustLevel: 'official',
},
],
hooks: {
PreToolUse: [
{
matcher: 'Bash',
hooks: [{ type: 'command', command: 'echo "I am about to run a command. I will explain what it does first."' }],
},
{
matcher: 'Write',
hooks: [{ type: 'command', command: 'echo "I am about to create or change a file. Let me explain what this means."' }],
},
{
matcher: 'Edit',
hooks: [{ type: 'command', command: 'echo "I am about to make a small change to a file. Let me explain."' }],
},
],
Stop: [
{
matcher: '.*',
hooks: [{ type: 'command', command: 'echo "Our session is finished. You did wonderful work today!"' }],
},
],
},
subagents: [],
learningPath: [
{ title: 'Khan Academy — Intro to Computing', url: 'https://www.khanacademy.org/computing/computer-programming', type: 'course', level: 'beginner' },
{ title: 'Code.org — Learn the Basics', url: 'https://code.org/', type: 'course', level: 'beginner' },
],
rulesFiles: [],
}
// ============================================================================
// PROFILE 14: senior-intermediate
// ============================================================================
const seniorIntermediate: Profile = {
slug: 'senior-intermediate',
ageGroup: 'senior',
skillLevel: 'intermediate',
displayName: 'Senior Intermediate',
persona: 'A respectful, clear-speaking colleague who values your experience and knowledge. Explains new concepts thoroughly while respecting what you already know. Prioritizes readability and clarity in everything.',
ui: {
fontSize: 18,
fontScale: 1.25,
motionLevel: 'minimal',
contrast: 'high',
touchTargetMin: 52,
layoutDensity: 'comfortable',
theme: 'light',
},
template: {
slug: 'senior-intermediate',
verbosity: 'medium-high',
safety: 'high',
targetLines: [55, 85],
content: `# {{projectName}} — CLAUDE.md
## Persona
Respectful colleague. Clear communication. Values your experience and knowledge.
## Project
{{projectDescription}}
## Stack
{{techStack}}
## Guidelines
- Explain new concepts clearly; respect what you already know
- Prioritize code readability and clarity
- Suggest best practices with clear reasoning
- Confirm before any destructive operations
- Provide context for design choices
- Use well-structured, readable communication
## Workflow
1. Discuss the goal together
2. Plan the approach with clear steps
3. Build with explanations for new concepts
4. Test and verify results
5. Document what was accomplished
## Safety
- Always confirm before destructive commands
- Explain side effects clearly
- Maintain clean version control
- Keep sensitive data secure
`,
},
skillBundle: [
{ name: 'Code Review', description: 'Reviews code with clear, constructive feedback' },
{ name: 'Test Writing', description: 'Writes clear, well-organized tests' },
{ name: 'Refactoring', description: 'Improves code structure for readability and maintainability' },
{ name: 'Database Design', description: 'Creates clean schemas and efficient queries' },
],
mcpServers: [
{
name: 'filesystem',
package: '@anthropic-ai/mcp-server-filesystem',
installCmd: 'npx @anthropic-ai/mcp-server-filesystem /path/to/project',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'github',
package: '@anthropic-ai/mcp-server-github',
installCmd: 'npx @anthropic-ai/mcp-server-github',
requiresKey: true,
trustLevel: 'official',
},
{
name: 'postgres',
package: '@anthropic-ai/mcp-server-postgres',
installCmd: 'npx @anthropic-ai/mcp-server-postgres postgresql://localhost/mydb',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'memory',
package: '@anthropic-ai/mcp-server-memory',
installCmd: 'npx @anthropic-ai/mcp-server-memory',
requiresKey: false,
trustLevel: 'official',
},
],
hooks: {
PreToolUse: [
{
matcher: 'Bash',
hooks: [{ type: 'command', command: 'echo "Running a shell command — please review"' }],
},
],
},
subagents: [
{ name: 'test-runner', model: 'haiku', tools: ['Bash', 'Read'] },
],
learningPath: [
{ title: 'The Odin Project — Full Stack JavaScript', url: 'https://www.theodinproject.com/paths/full-stack-javascript', type: 'course', level: 'intermediate' },
{ title: 'PostgreSQL Tutorial', url: 'https://www.postgresqltutorial.com/', type: 'docs', level: 'intermediate' },
{ title: 'MDN Web Docs — JavaScript Guide', url: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide', type: 'docs', level: 'intermediate' },
],
rulesFiles: [
{
path: '.claude/rules/readability.md',
content: '# Readability\n- Prioritize clear, readable code over clever code\n- Use descriptive names for everything\n- Add comments for any non-obvious logic\n- Keep functions short and focused\n- Organize files logically\n',
},
],
}
// ============================================================================
// PROFILE 15: senior-expert
// ============================================================================
const seniorExpert: Profile = {
slug: 'senior-expert',
ageGroup: 'senior',
skillLevel: 'expert',
displayName: 'Senior Expert',
persona: 'A respected peer with deep mutual respect. Direct and efficient communication with enhanced readability. Focuses on system design, reliability, and well-documented architectures.',
ui: {
fontSize: 17,
fontScale: 1.15,
motionLevel: 'minimal',
contrast: 'high',
touchTargetMin: 48,
layoutDensity: 'comfortable',
theme: 'auto',
},
template: {
slug: 'senior-expert',
verbosity: 'low',
safety: 'policy-driven',
targetLines: [30, 55],
content: `# {{projectName}} — CLAUDE.md
## Persona
Respected peer. Direct, efficient. System design and reliability focus. Clear documentation.
## Project
{{projectDescription}}
## Stack
{{techStack}}
## Principles
- Production-ready by default
- Design for failure and graceful recovery
- Observability: structured logging, metrics, tracing
- Security: defense in depth, zero trust
- Performance: measure first, optimize second
## Policy
- Follow .claude/rules/ for project-specific standards
- Lint and test before every commit
- Comprehensive error handling required
- Parameterized queries only — no raw SQL
- Secrets via env vars or secret manager
`,
},
skillBundle: [
{ name: 'System Architecture', description: 'Designs distributed systems with fault tolerance and horizontal scalability' },
{ name: 'Performance Optimization', description: 'Profiling, benchmarking, and targeted performance improvements' },
{ name: 'Security Audit', description: 'Threat modeling, vulnerability assessment, and security hardening' },
{ name: 'DevOps Integration', description: 'CI/CD pipelines, infrastructure as code, blue-green deployments' },
{ name: 'Database Optimization', description: 'Query optimization, indexing, replication, and partitioning' },
{ name: 'Incident Response', description: 'Root cause analysis, runbook creation, post-mortem facilitation' },
],
mcpServers: [
{
name: 'filesystem',
package: '@anthropic-ai/mcp-server-filesystem',
installCmd: 'npx @anthropic-ai/mcp-server-filesystem /path/to/project',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'github',
package: '@anthropic-ai/mcp-server-github',
installCmd: 'npx @anthropic-ai/mcp-server-github',
requiresKey: true,
trustLevel: 'official',
},
{
name: 'postgres',
package: '@anthropic-ai/mcp-server-postgres',
installCmd: 'npx @anthropic-ai/mcp-server-postgres postgresql://localhost/mydb',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'puppeteer',
package: '@anthropic-ai/mcp-server-puppeteer',
installCmd: 'npx @anthropic-ai/mcp-server-puppeteer',
requiresKey: false,
trustLevel: 'official',
},
{
name: 'sentry',
package: '@sentry/mcp-server',
installCmd: 'npx @sentry/mcp-server',
requiresKey: true,
trustLevel: 'verified',
},
{
name: 'linear',
package: '@anthropic-ai/mcp-server-linear',
installCmd: 'npx @anthropic-ai/mcp-server-linear',
requiresKey: true,
trustLevel: 'official',
},
{
name: 'docker',
package: 'mcp-server-docker',
installCmd: 'npx mcp-server-docker',
requiresKey: false,
trustLevel: 'community',
},
{
name: 'kubernetes',
package: 'mcp-server-kubernetes',
installCmd: 'npx mcp-server-kubernetes',
requiresKey: false,
trustLevel: 'community',
},
{
name: 'cloudflare',
package: '@anthropic-ai/mcp-server-cloudflare',
installCmd: 'npx @anthropic-ai/mcp-server-cloudflare',
requiresKey: true,
trustLevel: 'official',
},
{
name: 'slack',
package: '@anthropic-ai/mcp-server-slack',
installCmd: 'npx @anthropic-ai/mcp-server-slack',
requiresKey: true,
trustLevel: 'official',
},
{
name: 'datadog',
package: 'mcp-server-datadog',
installCmd: 'npx mcp-server-datadog',
requiresKey: true,
trustLevel: 'community',
},
{
name: 'grafana',
package: 'mcp-server-grafana',
installCmd: 'npx mcp-server-grafana',
requiresKey: true,
trustLevel: 'community',
},
{
name: 'terraform',
package: 'mcp-server-terraform',
installCmd: 'npx mcp-server-terraform',
requiresKey: false,
trustLevel: 'community',
},
],
hooks: {
PreToolUse: [
{
matcher: 'Bash',
hooks: [{ type: 'command', command: 'echo "$TOOL_INPUT" | grep -qE "rm -rf|DROP TABLE|TRUNCATE|reset --hard|push --force" && echo "BLOCKED: Destructive command requires explicit approval" && exit 1 || true' }],
},
],
PostToolUse: [
{
matcher: 'Write',
hooks: [{ type: 'command', command: 'echo "File changed — run lint and tests before committing"' }],
},
],
Stop: [
{
matcher: '.*',
hooks: [{ type: 'command', command: 'echo "Session ended — verify changes are committed and tested"' }],
},
],
},
subagents: [
{ name: 'test-runner', model: 'haiku', tools: ['Bash', 'Read'] },
{ name: 'lint-checker', model: 'haiku', tools: ['Bash', 'Read'] },
{ name: 'security-scanner', model: 'sonnet', tools: ['Bash', 'Read', 'Glob'] },
{ name: 'perf-profiler', model: 'sonnet', tools: ['Bash', 'Read'] },
],
learningPath: [
{ title: 'Designing Data-Intensive Applications', url: 'https://dataintensive.net/', type: 'article', level: 'expert' },
{ title: 'Site Reliability Engineering — Google', url: 'https://sre.google/sre-book/table-of-contents/', type: 'docs', level: 'expert' },
{ title: 'The Architecture of Open Source Applications', url: 'https://aosabook.org/en/', type: 'article', level: 'expert' },
],
rulesFiles: [
{
path: '.claude/rules/architecture.md',
content: '# Architecture\n- Hexagonal architecture for core services\n- Event-driven communication between bounded contexts\n- CQRS where read/write patterns diverge significantly\n- Design for failure: circuit breakers, bulkheads, timeouts\n',
},
{
path: '.claude/rules/security.md',
content: '# Security Policy\n- Zero-trust network model\n- All secrets via environment variables or vault\n- Input validation at every boundary\n- Parameterized queries only — no string concatenation\n- OWASP Top 10 compliance required\n- Regular dependency audits\n',
},
{
path: '.claude/rules/operations.md',
content: '# Operations\n- Structured JSON logging (no console.log in production)\n- Health check endpoints for all services\n- Graceful shutdown handling\n- Circuit breaker patterns for external dependencies\n- SLO-driven alerting\n',
},
{
path: '.claude/rules/git.md',
content: '# Git Policy\n- Conventional commits (feat:, fix:, chore:, docs:)\n- No force push to main/master\n- Squash merge for feature branches\n- PR description must include testing notes\n',
},
],
}
// ============================================================================
// EXPORTS
// ============================================================================
export const PROFILES: Profile[] = [
teenBeginner,
teenIntermediate,
teenExpert,
youngAdultBeginner,
youngAdultIntermediate,
youngAdultExpert,
professionalBeginner,
professionalIntermediate,
professionalExpert,
preSeniorBeginner,
preSeniorIntermediate,
preSeniorExpert,
seniorBeginner,
seniorIntermediate,
seniorExpert,
]
export function getProfile(slug: string): Profile | undefined {
return PROFILES.find(p => p.slug === slug)
}
export function getProfilesByAge(age: AgeGroup): Profile[] {
return PROFILES.filter(p => p.ageGroup === age)
}
export function getProfilesBySkill(skill: SkillLevel): Profile[] {
return PROFILES.filter(p => p.skillLevel === skill)
}