Discovers project-specific conventions from configs like ESLint/Prettier, code patterns, naming, and structure. Guides matching styles when exploring codebases or implementing features.
npx claudepluginhub sequenzia/agent-alchemy --plugin agent-alchemy-core-toolsThis skill uses the workspace's default tool permissions.
This skill guides you in discovering and applying project-specific conventions. Every codebase has its own patterns and practices - your job is to find them and follow them.
Explores project structure, configurations, code patterns, conventions, tests, and dependencies before modifying existing code to understand context and avoid bugs.
Detects and enforces project-specific coding conventions by analyzing codebase patterns including naming, folder structure, test organization, and style. Uses MCP tools like get_public_api and get_project_graph.
Analyzes codebase to create or update .conventions/ directory with gold standards, anti-patterns, and checks for naming, imports, and patterns. Use for setting up coding standards or bootstrapping new projects.
Share bugs, ideas, or general feedback.
This skill guides you in discovering and applying project-specific conventions. Every codebase has its own patterns and practices - your job is to find them and follow them.
Check these files for explicit conventions:
Code Style:
.eslintrc*, eslint.config.* - JavaScript/TypeScript linting rules.prettierrc*, prettier.config.* - Formatting rulespyproject.toml, setup.cfg, .flake8 - Python config.editorconfig - Editor settingsruff.toml, .ruff.toml - Ruff linter configProject Structure:
tsconfig.json - TypeScript paths and settingspackage.json - Scripts, dependenciespyproject.toml - Python project configDocumentation:
CONTRIBUTING.md - Contribution guidelinesCLAUDE.md - AI coding guidelinesREADME.md - Project overviewdocs/ - Extended documentationStudy the codebase to find implicit conventions:
File Organization:
# Find how components are organized
ls -la src/components/
# Find test file patterns
find . -name "*.test.*" -o -name "*_test.*" -o -name "test_*"
# Find how utilities are organized
ls -la src/utils/ src/lib/ src/helpers/
Naming Patterns:
# Find function naming patterns
grep -r "^export function" src/ | head -20
grep -r "^def " src/ | head -20
# Find class naming patterns
grep -r "^export class" src/ | head -20
grep -r "^class " src/*.py | head -20
Import Patterns:
# Find import style (absolute vs relative)
grep -r "^import" src/ | head -30
grep -r "^from \." src/*.py | head -20
Find features similar to what you're building:
Search for similar functionality:
# If building a "user profile" feature
grep -r "profile" src/
find . -name "*profile*"
Study the implementation:
Note the patterns:
Discover by example:
# Function names
grep -E "^(export )?(async )?function " src/**/*.ts
# Variable names
grep -E "^(const|let|var) " src/**/*.ts
# Component names
grep -E "^(export )?function [A-Z]" src/**/*.tsx
Common patterns:
camelCase for functions/variablesPascalCase for components/classesUPPER_SNAKE for constantskebab-case for file names (some projects)snake_case for file names (Python)Discover the pattern:
# Component structure
ls -la src/components/Button/
# Module structure
ls -la src/features/auth/
Common patterns:
Flat structure:
components/
Button.tsx
Button.test.tsx
Button.styles.ts
Folder per component:
components/
Button/
index.ts
Button.tsx
Button.test.tsx
Button.module.css
Feature-based:
features/
auth/
components/
hooks/
api.ts
types.ts
Discover the pattern:
# Find try-catch patterns
grep -A5 "try {" src/**/*.ts
# Find error types
grep -r "extends Error" src/
# Find error handling in API
grep -r "catch" src/api/
Apply what you find:
Discover the pattern:
# Find test structure
head -50 src/**/*.test.ts
# Find test utilities
cat src/test/setup.ts
cat src/test/utils.ts
Match the patterns:
*.test.ts vs *.spec.ts)Discover the pattern:
# Find API call patterns
grep -r "fetch\|axios\|api\." src/
# Find API response handling
grep -A10 "async function fetch" src/api/
Match the patterns:
When implementing a feature, verify you're following conventions for:
Sometimes you'll find inconsistent patterns:
Watch for these signs that you might be breaking conventions:
When you notice these, stop and investigate the existing conventions more carefully.