--- name: engineer-skill-creator description: Transform extracted engineer expertise into an actionable skill with progressive disclosure, allowing agents to find and apply relevant patterns for specific tasks. --- # Engineer Skill Creator Transform extracted engineer profiles into ready-to-use skills with progressive disclosure, enabling AI agents to efficiently find and apply the right expertise for any coding task. ## What This Skill Does Takes the output from **engineer-expertise-extractor** and creates a structured, queryable skill that: - **Organizes expertise by task type** - Find relevant patterns quickly - **Uses progressive disclosure** - Show only what's needed for current task - **Provides contextual examples** - Real code samples for specific scenarios - **Guides agents intelligently** - Help find the right expertise at the right time - **Enables task-specific queries** - "How would they handle authentication?" ## The Two-Step Process ### Step 1: Extract (engineer-expertise-extractor) ```bash ./extract_engineer.sh senior_dev # Output: engineer_profiles/senior_dev/ ``` ### Step 2: Create Skill (THIS SKILL) ```bash ./create_expert_skill.sh senior_dev # Output: expert-skills/senior-dev-mentor/ ``` **Result:** A ready-to-use skill that agents can query for specific guidance. ## Why Progressive Disclosure Matters **Without progressive disclosure:** - Agent gets all expertise at once (overwhelming) - Hard to find relevant information - Context limits reached quickly - Inefficient and slow **With progressive disclosure:** - Agent asks specific question - Gets only relevant expertise - Focused, actionable guidance - Efficient use of context - Faster, better results ## Output Structure When you create a skill from an engineer profile, you get: ``` expert-skills/ └── [engineer-name]-mentor/ ├── SKILL.md (skill documentation) ├── query_expertise.sh (interactive query tool) ├── expertise/ │ ├── by_task/ │ │ ├── authentication.md │ │ ├── api_design.md │ │ ├── database_design.md │ │ ├── error_handling.md │ │ └── testing.md │ ├── by_language/ │ │ ├── typescript.md │ │ ├── python.md │ │ └── go.md │ ├── by_pattern/ │ │ ├── dependency_injection.md │ │ ├── repository_pattern.md │ │ └── factory_pattern.md │ └── quick_reference/ │ ├── coding_style.md │ ├── naming_conventions.md │ └── best_practices.md └── examples/ ├── authentication_service.ts ├── api_controller.ts └── test_example.spec.ts ``` ## Progressive Disclosure System ### Query by Task **Agent asks:** "How would they implement user authentication?" **Skill provides:** 1. Relevant patterns from `by_task/authentication.md` 2. Code examples from their auth PRs 3. Their testing approach for auth 4. Security considerations they use 5. Related best practices **NOT provided (yet):** - Unrelated patterns - Database design details - Payment processing approach - Everything else ### Query by Language **Agent asks:** "Show me their TypeScript coding style" **Skill provides:** 1. TypeScript-specific conventions 2. Type usage patterns 3. Interface design approach 4. Error handling in TS 5. Real TS examples ### Query by Pattern **Agent asks:** "How do they implement dependency injection?" **Skill provides:** 1. DI pattern from their code 2. Constructor injection examples 3. IoC container setup 4. Testing with DI 5. When they use it vs when they don't ## Skill Usage by Agents ### Basic Query ``` "Using the skill expert-skills/senior-dev-mentor/, show me how to implement authentication" ``` **Skill responds with:** - Authentication patterns they use - Real code examples - Testing approach - Security practices - Step-by-step guidance ### Language-Specific Query ``` "Using expert-skills/senior-dev-mentor/, write a TypeScript service following their style" ``` **Skill provides:** - TypeScript coding conventions - Class structure patterns - Type definitions approach - Import organization - Testing patterns for services ### Pattern-Specific Query ``` "Using expert-skills/senior-dev-mentor/, implement the repository pattern as they would" ``` **Skill provides:** - Their repository pattern implementation - Interface definitions - Concrete implementation example - Testing approach - When to use this pattern ## Created Skill Features ### 1. Task-Based Navigation Expertise organized by common development tasks: - Authentication & Authorization - API Design - Database Design - Error Handling - Testing Strategies - Performance Optimization - Security Practices - Code Review Guidelines ### 2. Language-Specific Guidance Separate docs for each language they use: - Naming conventions per language - Language-specific patterns - Idiomatic code examples - Framework preferences ### 3. Pattern Library Design patterns they commonly use: - When to apply each pattern - Implementation examples - Testing approach - Common pitfalls to avoid ### 4. Quick Reference Fast access to essentials: - Coding style at a glance - Naming conventions cheat sheet - Common commands/snippets - Review checklist ### 5. Interactive Query Tool Script that helps find expertise: ```bash ./query_expertise.sh What are you working on? 1) Authentication 2) API Design 3) Database 4) Testing 5) Custom query Select: 1 === Authentication Expertise === [Shows relevant patterns, examples, best practices] ``` ## How Skills Are Created ### Input Engineer profile from extractor: ``` engineer_profiles/senior_dev/ ├── coding_style/ ├── patterns/ ├── best_practices/ ├── architecture/ ├── code_review/ └── examples/ ``` ### Process 1. **Analyze profile structure** 2. **Categorize by task** - Group related expertise 3. **Extract examples** - Pull relevant code samples 4. **Create navigation** - Build progressive disclosure system 5. **Generate queries** - Create query tool 6. **Package skill** - Ready-to-use skill structure ### Output Skill with progressive disclosure: ``` expert-skills/senior-dev-mentor/ ├── SKILL.md ├── query_expertise.sh ├── expertise/ │ ├── by_task/ │ ├── by_language/ │ ├── by_pattern/ │ └── quick_reference/ └── examples/ ``` ## Example Created Skill ### Authentication Task Doc **File:** `expertise/by_task/authentication.md` ```markdown # Authentication - Senior Dev's Approach ## Overview How senior_dev implements authentication based on 15 PRs analyzed. ## Preferred Approach - JWT-based authentication - Refresh token rotation - HttpOnly cookies for web - Token in headers for mobile/API ## Implementation Pattern ### Service Structure [Code example from their PR #1234] ### Token Generation [Code example from their PR #5678] ### Token Validation [Code example from their PR #9012] ## Testing Approach - Unit tests for token generation - Integration tests for auth flow - Security tests for token validation [Test examples from their code] ## Security Considerations From their code reviews: - Always validate token signature - Check expiration - Implement rate limiting - Use secure random for secrets ## Common Pitfalls They Avoid - Storing tokens in localStorage (XSS risk) - Not rotating refresh tokens - Weak secret keys - Missing token expiration ## Related Patterns - Error handling for auth failures - Middleware pattern for auth checks - Repository pattern for user lookup ## Examples See: examples/authentication_service.ts ``` ## Use Cases ### 1. Consistent Code Generation **Problem:** AI generates code that doesn't match team style **Solution:** ``` "Using expert-skills/senior-dev-mentor/, write a user service" ``` **Result:** Code matching senior dev's exact style and patterns ### 2. Task-Specific Guidance **Problem:** How would senior dev approach this specific problem? **Solution:** ``` "Using expert-skills/tech-lead-mentor/, how do I handle rate limiting?" ``` **Result:** Their specific approach, examples, and reasoning ### 3. Code Review Training **Problem:** Learn what experienced engineer looks for **Solution:** ``` "Using expert-skills/architect-mentor/, review this code" ``` **Result:** Review following their standards and priorities ### 4. Onboarding **Problem:** New engineer needs to learn team conventions **Solution:** Give them access to expert-skills **Result:** Learn from real examples, specific to their tasks ## Skill Query Examples ### Example 1: Authentication ```bash ./query_expertise.sh > Working on: Authentication > Language: TypeScript Output: === Authentication in TypeScript === Preferred approach: JWT with refresh tokens [Shows specific auth pattern] [Provides TS code example] [Testing strategy] [Security checklist] Related: error_handling.md, api_design.md ``` ### Example 2: Database Design ```bash ./query_expertise.sh > Working on: Database design > Database: PostgreSQL Output: === Database Design - PostgreSQL === Schema design approach: - Normalized tables - Foreign keys enforced - Indexes on lookups - Migrations for changes [Shows migration example] [Query optimization patterns] [Testing approach] ``` ### Example 3: Error Handling ```bash ./query_expertise.sh > Working on: Error handling > Language: Python Output: === Error Handling in Python === Pattern: Custom exception classes + global handler [Shows exception hierarchy] [Handler implementation] [Logging approach] [User-facing messages] ``` ## Creating a Skill ### Basic Usage ```bash cd engineer-skill-creator ./scripts/create_expert_skill.sh [engineer-username] ``` ### Advanced Usage ```bash ./scripts/create_expert_skill.sh [engineer-username] --focus api,testing ``` Limits skill to specific focus areas. ### What Gets Generated **Automatic categorization:** - Groups related patterns - Organizes by common tasks - Separates by language - Highlights best practices **Query system:** - Interactive CLI tool - Smart search - Related content linking - Example suggestions **Documentation:** - Task-specific guides - Language references - Pattern library - Quick reference cards ## Integration with Development Workflow ### In Claude Code ``` "Load the expert-skills/senior-dev-mentor/ skill and help me implement this feature following their approach" ``` ### In Code Review ``` "Using expert-skills/tech-lead-mentor/, review this PR for: - Code style compliance - Pattern usage - Best practices - Security considerations" ``` ### In Architecture Decisions ``` "Using expert-skills/architect-mentor/, how would they design this microservice?" ``` ## Skill Maintenance ### Updating Skills When engineer profile is updated: ```bash ./scripts/update_expert_skill.sh senior-dev ``` Re-generates skill with new expertise. ### Version Control Each skill generation includes: - Source profile version - Generation date - Expertise count - Last PR analyzed ## Best Practices ### When Creating Skills **DO:** - ✅ Create skills for different expertise areas - ✅ Update skills regularly (quarterly) - ✅ Test queries before deploying - ✅ Document what the skill covers **DON'T:** - ❌ Create skills from insufficient data (< 20 PRs) - ❌ Mix multiple engineers in one skill - ❌ Ignore profile updates - ❌ Over-categorize (keep it simple) ### When Using Skills **DO:** - ✅ Ask specific questions - ✅ Provide context (language, task) - ✅ Reference examples - ✅ Combine with your judgment **DON'T:** - ❌ Blindly copy patterns - ❌ Skip understanding reasoning - ❌ Ignore project context - ❌ Treat as inflexible rules ## Limitations **What Skills Can Do:** - ✅ Provide proven patterns - ✅ Show real examples - ✅ Guide implementation - ✅ Explain reasoning - ✅ Surface best practices **What Skills Cannot Do:** - ❌ Make decisions for you - ❌ Understand your specific context - ❌ Replace senior engineer judgment - ❌ Guarantee correctness - ❌ Adapt to new technologies automatically ## Summary The Engineer Skill Creator transforms extracted expertise into actionable, queryable skills: **Input:** Engineer profile (from extractor) **Process:** Categorize, organize, create query system **Output:** Progressive disclosure skill **Benefits:** - Find expertise fast - Get task-specific guidance - Learn from real examples - Maintain consistency - Scale knowledge **Use with agents:** ``` "Using expert-skills/[engineer]-mentor/, [task description]" ``` **The complete workflow:** 1. Extract expertise: `extract_engineer.sh username` 2. Create skill: `create_expert_skill.sh username` 3. Use with agents: Reference skill in prompts 4. Get consistent, expert-level results --- **"Progressive disclosure: Show only what's needed, when it's needed."**