Awesome-omni-skill claude-code-starter
Analyze a project's tech stack and generate comprehensive Claude Code configuration files (.claude/ directory with CLAUDE.md, skills, agents, rules, and commands). Use when setting up Claude Code for a new or existing repository.
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/claude-code-starter" ~/.claude/skills/diegosouzapw-awesome-omni-skill-claude-code-starter && rm -rf "$T"
skills/development/claude-code-starter/SKILL.mdClaude Code Starter
You are setting up Claude Code configuration for a project. Follow the flow below to analyze the project and generate all
.claude/ configuration files.
Step 1: Detect Project Type
Check if this is a new project (empty or <3 source files) or an existing project.
For new projects, ask the user these questions:
- What are you building? (project description)
- Primary language? (TypeScript, JavaScript, Python, Go, Rust, Swift, Kotlin, Java, Ruby, C#, PHP, C++)
- Framework? (filtered by language — e.g. Next.js/React/Vue for TS/JS, FastAPI/Django/Flask for Python)
- Package manager? (filtered by language)
- Testing framework? (filtered by language, or "None")
- Linter/Formatter? (filtered by language, or "None")
- Project type? (Web App, API/Backend, CLI Tool, Library/Package, Mobile App, Desktop App, Monorepo, Other)
For existing projects, analyze the codebase:
- Read
,package.json
,pyproject.toml
,Cargo.toml
,go.mod
, or equivalentGemfile - Detect languages, frameworks, package manager, testing, linting, formatting, bundler
- Identify architecture patterns, directory structure, code conventions
Step 2: Create .claude/settings.json
.claude/settings.jsonGenerate
settings.json with permissions based on detected stack. Example:
{ "$schema": "https://json.schemastore.org/claude-code-settings.json", "permissions": { "allow": [ "Read(**)", "Edit(**)", "Write(.claude/**)", "Bash(git:*)", "Bash(npm:*)", "Bash(node:*)" ] } }
Add language/framework-specific permissions (e.g.
Bash(cargo:*) for Rust, Bash(pytest:*) for Python).
Step 3: Generate CLAUDE.md
Perform deep codebase analysis and generate
.claude/CLAUDE.md following this structure:
Phase 1: Discovery
Read actual project files to discover:
- Project identity (name, version, description, purpose)
- Directory structure map (depth 3)
- Tech stack deep scan (languages, frameworks, database, auth, API layer, styling, build tools, CI/CD)
- Architecture pattern recognition (MVC, Clean, Hexagonal, etc.)
- Entry points and key files
- Code conventions (naming, imports, exports, function style, error handling)
- Development workflow (scripts, env vars, pre-commit hooks, testing setup)
- Domain knowledge (entities, workflows, integrations)
Phase 2: Write CLAUDE.md
Using ONLY discovered information, write
.claude/CLAUDE.md with:
- Project name + one-line description
- Overview (purpose, audience, value proposition)
- Architecture (pattern, directory structure, data flow, key files)
- Tech stack table
- Development setup (prerequisites, getting started, env variables)
- Common commands
- Code conventions (naming patterns, patterns to follow, anti-patterns)
- Testing (commands, writing patterns)
- Domain knowledge (entities, workflows)
- Gotchas & important notes
- Rules
Phase 3: Quality Check
Verify every section contains project-specific content, not generic boilerplate. Skip sections without real content.
Step 4: Generate Skills
Write each skill file to
.claude/skills/ with YAML frontmatter (name, description, globs).
Core Skills (ALWAYS generate all 8):
-
— Analyze codebase to discover and document patterns. Include project-specific search strategies based on the actual directory structure and file patterns found..claude/skills/pattern-discovery.md -
— 4-phase methodology: Reproduce, Locate, Diagnose, Fix. Tailor reproduction steps to the project's actual test runner and dev server commands..claude/skills/systematic-debugging.md -
— AAA pattern (Arrange, Act, Assert). Use the project's actual testing framework syntax (e.g.,.claude/skills/testing-methodology.md
/describe
for Jest/Vitest,it
for pytest). Include mocking patterns specific to the stack.def test_ -
— TDD workflow loop: write failing test → implement → verify → refactor. Use the project's actual test command and lint command..claude/skills/iterative-development.md -
— Atomic commits, conventional commit format, size thresholds (±300 lines), when-to-commit triggers..claude/skills/commit-hygiene.md -
— Check-before-write principle. Search existing code before writing new code. Include project-specific glob patterns for common file types..claude/skills/code-deduplication.md -
— Function length limits (≤40 lines), file limits (≤300 lines), cyclomatic complexity constraints. Decomposition patterns..claude/skills/simplicity-rules.md -
— .gitignore entries for the stack, environment variable handling patterns, OWASP checklist items relevant to the detected framework..claude/skills/security.md
Framework-Specific Skills (ONLY if detected):
Generate the appropriate skill based on detected frameworks:
| Framework | Skill File | Key Content |
|---|---|---|
| Next.js | | App Router, Server/Client Components, data fetching, middleware |
| React (no Next.js) | | Hooks, component patterns, state management, performance |
| FastAPI | | Router organization, dependency injection, Pydantic models, async |
| NestJS | | Modules, controllers, services, decorators, pipes, guards |
| SwiftUI | | Property wrappers, MVVM, navigation, previews |
| UIKit | | View controllers, Auto Layout, delegates, MVC |
| Vapor | | Routes, middleware, Fluent ORM, async controllers |
| Jetpack Compose | | @Composable, remember, ViewModel, navigation |
| Android Views | | Activities, Fragments, XML layouts, ViewBinding |
| Vue/Nuxt | | Composition API, composables, Pinia, routing |
| Django | | Models, views, serializers, middleware, admin |
| Rails | | MVC, ActiveRecord, concerns, service objects |
| Spring | | Beans, controllers, services, repositories, AOP |
Tailor ALL skill content to the specific project's patterns, file structure, and conventions discovered during analysis.
Step 5: Generate Agents
Write 2 agent files to
.claude/agents/:
.claude/agents/code-reviewer.md
.claude/agents/code-reviewer.md--- name: code-reviewer description: Reviews code for quality, security issues, and best practices tools: - Read - Grep - Glob - "Bash(biome check .)" # Use actual lint command disallowed_tools: - Write - Edit model: sonnet ---
Body: Instructions for reviewing code quality, security, naming conventions, test coverage, and adherence to project patterns.
.claude/agents/test-writer.md
.claude/agents/test-writer.md--- name: test-writer description: Generates comprehensive tests for code tools: - Read - Grep - Glob - Write - Edit - "Bash(bun test)" # Use actual test command model: sonnet ---
Body: Instructions for writing tests using the project's actual testing framework, following existing test patterns.
Step 6: Generate Rules
Write rule files to
.claude/rules/:
Always Generate:
— Formatting tool, comment style, error handling, git commit conventions..claude/rules/code-style.md
Conditional (by language):
| Language | File | YAML | Key Rules |
|---|---|---|---|
| TypeScript | | | Strict mode, type annotations, import style |
| Python | | | Type hints, docstrings, import ordering |
| Swift | | | Access control, optionals, protocol-oriented |
| Go | | | Error handling, interfaces, package naming |
| Rust | | | Ownership, error handling, trait patterns |
Each rule file needs YAML frontmatter with
paths for file matching.
Step 7: Generate Commands
Write 5 command files to
.claude/commands/:
.claude/commands/task.md
.claude/commands/task.md--- allowed-tools: ["Read", "Write", "Edit", "Glob"] description: "Start or switch to a new task" argument-hint: "<task description>" ---
Instructions to update
.claude/state/task.md with new task, set status to "In Progress".
.claude/commands/status.md
.claude/commands/status.md--- allowed-tools: ["Read", "Glob", "Bash(git status)"] description: "Show current task and session state" ---
Instructions to read task.md, show git status, summarize current state.
.claude/commands/done.md
.claude/commands/done.md--- allowed-tools: ["Read", "Write", "Edit", "Glob", "Bash(git:*)", "Bash(bun test)"] description: "Mark current task complete" ---
Instructions to run tests, lint, verify, update task.md status to "Done".
.claude/commands/analyze.md
.claude/commands/analyze.md--- allowed-tools: ["Read", "Glob", "Grep"] description: "Deep analysis of a specific area" argument-hint: "<area or file path>" ---
Instructions to perform thorough analysis of specified area.
.claude/commands/code-review.md
.claude/commands/code-review.md--- allowed-tools: ["Read", "Glob", "Grep", "Bash(git diff)"] description: "Review code changes for quality and security" ---
Instructions to review staged/unstaged changes.
Output Summary
After generating all files, output a brief summary:
- List of files created
- Any gaps found (missing config files, unclear patterns)
- Suggested next steps
Important Guidelines
- Be specific, not generic. Every file must contain project-specific content.
- Reference real files. Use
format.path/to/file.ts:lineNumber - Use actual commands. Reference the project's real test/lint/build commands.
- Skip what doesn't apply. Don't generate framework skills for frameworks not in use.
- Respect existing files. If
files exist, read and preserve manually-added content..claude/