git clone https://github.com/ComeOnOliver/skillshub
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/michaelboeding/skills/style-guide" ~/.claude/skills/comeonoliver-skillshub-style-guide && rm -rf "$T"
skills/michaelboeding/skills/style-guide/SKILL.mdStyle Guide: Multi-Agent Convention Analyzer
Spawns specialized analyzer agents to discover and document a codebase's conventions, patterns, and style. Each agent focuses on one aspect and explores independently.
Use this when:
- Starting work on an unfamiliar codebase
- You want AI to match existing patterns exactly
- Making implicit conventions explicit
- Before running feature-council on a new project
Output
Generates
.claude/codebase-style.md - a comprehensive style guide that can be referenced by other skills and agents.
CRITICAL: Language-Agnostic Design
Each analyzer:
- Discovers the language/framework first - Don't assume anything
- Finds relevant files itself - Uses Glob, Grep, LS to explore
- Extracts patterns from what exists - Not what "should" exist
- Reports findings in structured format - For synthesis
This works for: Python, JavaScript, TypeScript, Go, Rust, Java, C#, Ruby, PHP, Swift, Kotlin, or any other language.
Workflow
Step 0: Check for Existing Style Guide
Before starting, check if
already exists..claude/codebase-style.md
If it exists, ask the user:
A style guide already exists for this codebase (.claude/codebase-style.md). Options: 1. View the existing style guide 2. Regenerate it (will overwrite) 3. Cancel What would you like to do?
Only proceed with analysis if the user chooses to regenerate.
Step 1: Quick Language/Framework Detection
Before spawning analyzers, do a quick check:
# Check for common indicators ls -la # Look for package.json, requirements.txt, go.mod, Cargo.toml, etc.
Note the primary language(s) and framework(s) detected. Pass this context to analyzers.
Step 2: Spawn Analyzer Agents IN PARALLEL
Spawn ALL analyzers simultaneously with the same context:
CONTEXT: [Primary language/framework detected in Step 1] TASK: Analyze the codebase for [YOUR SPECIALTY] conventions and patterns. Return a structured report of what you find.
Task(agent: "style-structure", prompt: "CONTEXT: [lang/framework]. Analyze folder structure, file organization, and module patterns.") Task(agent: "style-naming", prompt: "CONTEXT: [lang/framework]. Analyze naming conventions for files, variables, functions, classes, constants.") Task(agent: "style-patterns", prompt: "CONTEXT: [lang/framework]. Analyze code patterns: error handling, data access, configuration, logging.") Task(agent: "style-testing", prompt: "CONTEXT: [lang/framework]. Analyze testing patterns: file locations, naming, structure, assertions.") Task(agent: "style-frontend", prompt: "CONTEXT: [lang/framework]. Analyze frontend/UI patterns if applicable: components, styling, state. If not a frontend project, report 'N/A'.")
ALL agents spawn in the SAME batch - parallel execution.
Step 3: Track Progress
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ANALYZER PROGRESS ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ☐ Structure Analyzer - Working... ☐ Naming Analyzer - Working... ☐ Patterns Analyzer - Working... ☐ Testing Analyzer - Working... ☐ Frontend Analyzer - Working... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Update as each completes.
Step 4: Collect and Synthesize
Each analyzer returns structured findings. Merge into a unified style guide.
Handle conflicts: If analyzers disagree (rare), note both patterns.
Step 5: Generate Style Guide
Create
.claude/codebase-style.md:
# Codebase Style Guide > Auto-generated by codebase-style skill on [DATE] > Primary: [Language] | Framework: [Framework] | [X] files analyzed --- ## Project Structure [From style-structure analyzer] ### Directory Layout - `src/` - Source code - `tests/` - Test files - ... ### File Organization Pattern [Description with examples] --- ## Naming Conventions [From style-naming analyzer] | Element | Convention | Example | |---------|------------|---------| | Files | [pattern] | `user_service.py` | | Classes | [pattern] | `UserService` | | Functions | [pattern] | `get_user_by_id` | | Variables | [pattern] | `user_count` | | Constants | [pattern] | `MAX_RETRIES` | --- ## Code Patterns [From style-patterns analyzer] ### Error Handling ```[language] [Actual example from codebase]
Data Access Pattern
[Actual example from codebase]
Logging Pattern
[Actual example from codebase]
Configuration Pattern
[Description]
Testing Patterns
[From style-testing analyzer]
Test Location
[Where tests live relative to source]
Test Naming
[Convention for test files and functions]
Test Structure
[Actual example from codebase]
Assertion Style
[What assertion library/style is used]
Frontend Patterns (if applicable)
[From style-frontend analyzer, or "N/A - Not a frontend project"]
Component Structure
[Pattern]
Styling Approach
[CSS-in-JS, Tailwind, CSS Modules, etc.]
State Management
[Pattern]
Quick Reference
| Category | Convention |
|---|---|
| File naming | [pattern] |
| Function naming | [pattern] |
| Error handling | [pattern name] |
| Test files | [location pattern] |
| Imports | [order/style] |
Examples to Follow
Good Example (matches codebase style)
[Real example from codebase that exemplifies the patterns]
Anti-pattern (avoid this)
[What NOT to do based on codebase conventions]
### Step 6: Save and Report 1. Create `.claude/` directory if needed 2. Write `.claude/codebase-style.md` 3. Report summary to user
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ CODEBASE STYLE ANALYSIS COMPLETE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 Analysis Summary
| Analyzer | Files Checked | Patterns Found |
|---|---|---|
| Structure | [N] | [N] |
| Naming | [N] | [N] |
| Patterns | [N] | [N] |
| Testing | [N] | [N] |
| Frontend | [N or N/A] | [N or N/A] |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📁 Generated: .claude/codebase-style.md
Key Findings:
- Language: [Primary language]
- Framework: [If detected]
- Naming: [Quick summary, e.g., "snake_case for files, PascalCase for classes"]
- Structure: [Quick summary, e.g., "Feature-based organization"]
- Testing: [Quick summary, e.g., "pytest, tests/ directory"]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💡 This style guide will be referenced by other skills to ensure consistent code that matches your codebase conventions.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
--- ## Agents 5 specialized analyzer agents in `agents/` directory: | Agent | Focus | What It Looks For | |-------|-------|-------------------| | `style-structure` | Organization | Folders, modules, file grouping, imports | | `style-naming` | Naming | Files, variables, functions, classes, constants | | `style-patterns` | Code patterns | Error handling, data access, logging, config | | `style-testing` | Testing | Location, naming, structure, assertions | | `style-frontend` | Frontend/UI | Components, styling, state (if applicable) | All analyzers: - Explore the codebase independently - Language-agnostic (detect, don't assume) - Return structured findings - Use Read, Grep, Glob, LS tools --- ## Integration with Other Skills The generated `.claude/codebase-style.md` can be referenced by: - **feature-council** - Agents can check style guide before implementing - **debug-council** - Ensure fixes match codebase patterns - **parallel-builder** - Each builder follows the style guide To explicitly include:
Before implementing, read .claude/codebase-style.md to understand codebase conventions.
--- ## When to Re-run Run `codebase-style` again when: - Major refactoring has occurred - New patterns have been introduced - Moving to a new framework/library - Style guide feels outdated --- ## Triggers
"style guide" "generate style guide" "analyze codebase style" "what are the conventions in this codebase" "codebase conventions" "analyze this codebase" "extract code style" "document coding patterns"