--- name: project-skill-creator description: Use when setting up project-specific skills via /cc:setup-project or when user requests custom skills for their codebase - analyzes project to create specialized skills that capture architecture knowledge, coding conventions, testing patterns, and deployment workflows --- # Project Skill Creator ## Overview **Creating project-specific skills captures institutional knowledge and patterns that generic skills cannot provide.** This skill analyzes your project and creates specialized skills (e.g., `project-architecture`, `project-conventions`, `project-testing`) that document project-specific patterns, standards, and workflows that all agents and future developers should follow. **Core principle:** Project-specific skills transform tribal knowledge into discoverable documentation. **REQUIRED BACKGROUND:** Use `writing-skills` for skill creation methodology. This skill applies those principles to project-specific content. ## When to Use Use this skill when: - User runs `/cc:setup-project` command - User requests "create custom skills for my project" - Project has unique architecture or patterns to document - Team needs standardized conventions - Onboarding new developers or agents Do NOT use for: - Generic patterns already covered by existing skills - One-off projects without reusable patterns - Projects still in early prototyping phase ## Project-Specific Skills to Create ### 1. project-architecture **Purpose:** Document and explain the system architecture **When to create:** Always (if project has clear architecture) **Content:** - High-level architecture diagram/description - Component responsibilities - Data flow and interactions - Key design decisions and trade-offs - How to extend the architecture **Example trigger:** "Use when implementing features, adding components, or understanding system design - documents THIS project's architecture, component responsibilities, and design patterns" ### 2. project-conventions **Purpose:** Capture code style and naming conventions **When to create:** If project has specific conventions beyond standard linters **Content:** - Naming conventions (files, classes, functions) - Code organization patterns - Import/export conventions - Comment and documentation standards - File/directory structure rules **Example trigger:** "Use when writing new code in this project - enforces naming conventions, code organization, and style patterns specific to this codebase" ### 3. project-testing **Purpose:** Document testing approach and patterns **When to create:** If project has specific testing patterns **Content:** - Testing philosophy and requirements - Test organization (unit/integration/e2e) - Fixture patterns and test utilities - Mocking strategies - Coverage requirements - Example test patterns from project **Example trigger:** "Use when writing tests - follows THIS project's testing patterns, fixture conventions, and test organization structure" ### 4. project-deployment **Purpose:** Document build, release, and deployment process **When to create:** If project has specific deployment workflow **Content:** - Build process and commands - Environment setup - Deployment steps - Release checklist - CI/CD pipeline explanation - Rollback procedures **Example trigger:** "Use when deploying, releasing, or setting up environments - documents THIS project's build process, deployment steps, and release workflow" ### 5. project-domain **Purpose:** Capture domain-specific knowledge **When to create:** If project has unique business domain **Content:** - Domain terminology and glossary - Business rules and constraints - Domain models and relationships - Common workflows and use cases - Domain-specific patterns **Example trigger:** "Use when implementing business logic or understanding domain concepts - documents THIS project's business domain, terminology, and domain-specific rules" ## Project Analysis Workflow ### Phase 1: Project Understanding **1. Architecture Discovery** Analyze project structure: ```bash # Get overview of directory structure ls -R | head -100 # Look for architecture documentation find . -name "README*" -o -name "ARCHITECTURE*" -o -name "DESIGN*" # Analyze directory organization tree -d -L 3 ``` Identify architectural patterns: - Monolith vs microservices - Layered architecture (presentation/business/data) - Clean architecture (domain/application/infrastructure) - MVC, MVVM, or other patterns - Frontend architecture (components, state management) **2. Convention Discovery** Sample 10-15 files to find patterns: - File naming: kebab-case, snake_case, PascalCase? - Class naming conventions - Function naming patterns - Import organization - Comment styles **3. Testing Pattern Discovery** Examine test files: ```bash # Find test files find . -name "*test*" -o -name "*spec*" | head -20 # Read sample tests to understand patterns ``` Identify: - Test organization structure - Fixture patterns - Mocking approach - Assertion style - Test naming conventions **4. Deployment Process Discovery** Check for: - CI/CD configuration (`.github/workflows`, `.gitlab-ci.yml`) - Build scripts (`package.json scripts`, `Makefile`, `justfile`) - Docker setup (`Dockerfile`, `docker-compose.yml`) - Deployment documentation ### Phase 2: Interactive Planning **CRITICAL: Present findings and proposed skills to user.** Create summary: ```markdown ## Project Analysis Summary **Architecture Pattern:** {discovered pattern} **Key Components:** - {component 1} - {purpose} - {component 2} - {purpose} **Conventions Found:** - File naming: {pattern} - Class naming: {pattern} - Import organization: {pattern} **Testing Approach:** - Test organization: {structure} - Fixture patterns: {description} - Coverage: {requirements} **Deployment:** - Build process: {description} - CI/CD: {platform and approach} ## Recommended Skills I recommend creating these project-specific skills: 1. **project-architecture** - Document {architecture pattern} and component responsibilities 2. **project-conventions** - Capture {naming} and {organization} conventions 3. **project-testing** - Document {testing approach} and fixture patterns 4. **project-deployment** - Document {build process} and deployment steps Should I create these skills? ``` Get user approval before proceeding. ### Phase 3: Skill Generation For each approved skill, follow `writing-skills` methodology: **1. Create Skill Directory** ```bash mkdir -p .claude/skills/project-{skill-name} ``` **2. Generate SKILL.md** Use template: ```yaml --- name: project-{skill-name} description: Use when {specific triggers} - {what this skill provides specific to THIS project} --- # Project {Skill Name} ## Overview {One paragraph explaining what this skill provides for THIS project} **Core principle:** {Key principle from project} ## {Main Content Sections} {Content specific to this skill type - see templates below} ## When NOT to Use - {Situations where this skill doesn't apply} - {Edge cases or exceptions} ## Examples from This Project {2-3 concrete examples from actual project code} ## Common Mistakes {Project-specific anti-patterns to avoid} ``` **3. Populate with Project-Specific Content** **For project-architecture:** ```markdown ## Architecture Overview {High-level description} **Pattern:** {Architecture pattern name} ## Component Responsibilities ### {Component 1} **Location:** `{path}` **Purpose:** {what it does} **Dependencies:** {what it depends on} ### {Component 2} {...} ## Data Flow {How data moves through the system} ## Key Design Decisions ### Decision: {Decision name} **Rationale:** {why this decision was made} **Trade-offs:** {what we gave up} **Alternatives considered:** {what else was considered} ## Extending the Architecture When adding new features: 1. {Step 1 with specific guidance} 2. {Step 2} {Include actual examples from project} ``` **For project-conventions:** ```markdown ## File Naming **Pattern:** {discovered pattern} Examples from this project: - {actual file 1} - {actual file 2} ## Class/Component Naming **Pattern:** {discovered pattern} Examples: ```{language} {actual code example 1} {actual code example 2} ``` ## Import Organization **Pattern:** {discovered pattern} Standard import order: ```{language} {actual example from project} ``` ## Code Organization **Pattern:** One {unit} per file Example structure: ``` {actual directory tree from project} ``` ## Documentation Standards {How comments and docs should be written} Example: ```{language} {actual documented code from project} ``` ``` **For project-testing:** ```markdown ## Testing Philosophy {What project values in tests} ## Test Organization ``` {actual test directory structure} ``` **Unit tests:** `{location}` - {what they test} **Integration tests:** `{location}` - {what they test} **E2E tests:** `{location}` - {what they test} ## Fixture Patterns {Describe how project uses fixtures} Example from this project: ```{language} {actual fixture code} ``` ## Test Naming **Pattern:** {discovered pattern} Examples: - {actual test name 1} - {actual test name 2} ## Mocking Strategy {How project handles mocking} Example: ```{language} {actual mock code} ``` ## Coverage Requirements {Project coverage standards} ## Running Tests ```bash {actual commands from project} ``` ``` **For project-deployment:** ```markdown ## Build Process **Command:** `{actual command}` **Steps:** 1. {step 1 from actual build} 2. {step 2} ## Environment Setup {How to configure environments} ## Deployment Steps ### Development ```bash {actual deployment commands} ``` ### Production ```bash {actual production deployment} ``` ## CI/CD Pipeline {Describe actual CI/CD setup} **Stages:** 1. {stage 1} - {what happens} 2. {stage 2} - {what happens} ## Release Checklist - [ ] {actual checklist item 1} - [ ] {actual checklist item 2} ## Rollback Procedure {How to rollback in this project} ``` ## Implementation Steps **Use TodoWrite to create todos for each step:** 1. [ ] Analyze project architecture and structure 2. [ ] Discover naming and code conventions 3. [ ] Examine testing patterns and approach 4. [ ] Review deployment and build process 5. [ ] Identify domain-specific knowledge to capture 6. [ ] Create analysis summary 7. [ ] Present findings and proposed skills to user 8. [ ] Get user approval for skill creation 9. [ ] For each approved skill: - [ ] Create skill directory - [ ] Generate SKILL.md with frontmatter - [ ] Populate with project-specific examples - [ ] Include actual code from project 10. [ ] Confirm skills created with user ## Examples ### Example 1: FastAPI Project **Analysis:** - Clean Architecture (domain/application/infrastructure) - Repository pattern for data access - Dependency injection via FastAPI - pytest with async support **Skills Created:** 1. `project-architecture` - Documents Clean Architecture layers, repository pattern usage 2. `project-testing` - Documents pytest async patterns, fixture conventions 3. `project-deployment` - Documents Docker build, migrations, deployment to AWS ### Example 2: React Project **Analysis:** - Component-based architecture - Custom hooks in `src/hooks/` - Compound component patterns - Vitest for testing **Skills Created:** 1. `project-architecture` - Documents component structure, state management approach 2. `project-conventions` - Documents component naming, hook conventions, file organization 3. `project-testing` - Documents Vitest setup, testing-library patterns ## Quality Checklist Before considering skills complete: - [ ] All skills include actual code examples from project - [ ] Frontmatter description includes specific triggers - [ ] Content is project-specific (not generic advice) - [ ] File paths and commands are exact (not placeholders) - [ ] Examples are real code from the project - [ ] "When NOT to Use" section included - [ ] User has approved all skills - [ ] Skills saved to `.claude/skills/project-{name}/` ## Common Mistakes ### ❌ Generic Content Writing generic advice instead of project-specific patterns **Fix:** Include actual code examples and exact file paths ### ❌ Placeholder Examples Using generic placeholders like `{your-component}.tsx` **Fix:** Use actual filenames and code from project ### ❌ Missing Context Not explaining WHY patterns exist **Fix:** Document decisions, trade-offs, and rationale ### ❌ Too Verbose Creating encyclopedic documentation **Fix:** Keep skills focused and scannable (< 500 lines) ### ❌ Skipping Approval Generating skills without user review **Fix:** Always present findings and get approval ## Integration with writing-skills Follow these `writing-skills` principles: - **Test-driven:** Verify skills help agents solve real tasks - **Concise:** Target < 500 words for frequently-loaded skills - **Examples over explanation:** Show actual project code - **Cross-reference:** Reference other skills by name - **Claude Search Optimization:** Rich description with triggers ## Skill Naming Convention **CRITICAL:** Use `project-{name}` format: - ✅ `project-architecture` - ✅ `project-conventions` - ✅ `project-testing` - ✅ `project-deployment` - ✅ `project-domain` - ❌ `architecture-guide` (not discoverable as project-specific) - ❌ `my-testing-patterns` (unclear scope) The `project-` prefix ensures: - Clear distinction from generic skills - Consistent discovery pattern - No naming conflicts ## Updating Skills As project evolves, skills need updates: **Triggers for updates:** - Architecture changes - New conventions adopted - Testing approach evolves - Deployment process changes **Update workflow:** 1. Identify what changed 2. Update skill content 3. Add changelog note in skill 4. Test with real scenarios ## Storage Location **All project-specific skills:** `.claude/skills/project-{name}/SKILL.md` **Never store in:** - `cc/skills/` (that's for generic CrispyClaude skills) - Project source directories (not discoverable) - Documentation folder (wrong tool for the job)