Progressive disclosure framework for AI coding tools. Loads only relevant development rules based on project context and task type.
- MECE Framework - Mutually Exclusive, Collectively Exhaustive rule organization
- Progressive Disclosure - Load only relevant rules (project + task level)
- Multi-tool Support - Claude Code, Cursor, GitHub Copilot, Gemini
- 74.4% Token Savings - Validated in production testing
- Four-Dimensional Structure - Base, Language, Framework, Cloud rules
Installation (one command, idempotent):
curl -fsSL https://raw.githubusercontent.com/paulduvall/centralized-rules/main/install-hooks.sh | bashThis installs globally (all projects). Safe to run multiple times - it updates in place.
For project-specific installation:
curl -fsSL https://raw.githubusercontent.com/paulduvall/centralized-rules/main/install-hooks.sh | bash -s -- --localIdempotent behavior:
- Already installed? → Updates it in place
- Not installed? → Installs fresh
- Running it again? → Safely updates to latest version
No prompts, no conflicts, just works.
Advanced options:
# Install specific version
curl -fsSL https://raw.githubusercontent.com/paulduvall/centralized-rules/main/install-hooks.sh | bash -s -- --version v0.1.0
# Pin to specific commit SHA
curl -fsSL https://raw.githubusercontent.com/paulduvall/centralized-rules/main/install-hooks.sh | bash -s -- --commit abc1234
# Install from main branch (developers/testing)
curl -fsSL https://raw.githubusercontent.com/paulduvall/centralized-rules/main/install-hooks.sh | bash -s -- --edgeHook displays concise banner showing detected rules:
═══════════════════════════════════════════════════════
🎯 Centralized Rules Active | Source: paulduvall/centralized-rules@16c0aa5
🔍 Rules: base/code-quality
💡 Follow standards • Write tests • Ensure security • Refactor
═══════════════════════════════════════════════════════
For git operations, pre-commit quality gates trigger:
═══════════════════════════════════════════════════════
🎯 Centralized Rules Active | Source: paulduvall/centralized-rules@16c0aa5
⚠️ PRE-COMMIT: Tests → Security → Quality → Refactor
🔍 Rules: base/git-tagging, base/git-workflow
💡 Small commits, clear messages - your future self will thank you
═══════════════════════════════════════════════════════
Check hook is registered:
/hooksShould show:
UserPromptSubmit
2. $CLAUDE_PROJECT_DIR/.claude/hooks/activate-rules.sh
Test with code request - banner appears, Claude follows standards.
Hook script runs on every prompt:
- Detect context - Scans project for language markers (
package.json,pyproject.toml,go.mod) - Match keywords - Analyzes prompt for task-specific terms (test, security, refactor)
- Display banner - Shows which rules apply
- Claude applies - Follows detected coding standards
centralized-rules/
├── base/ # 23 universal rules (all projects)
├── languages/ # 6+ languages (Python, TypeScript, Go, Java, C#, Rust)
├── frameworks/ # 12+ frameworks (React, Django, FastAPI, Spring Boot, etc.)
└── cloud/ # Cloud providers (AWS, Vercel)
Languages: Detected via pyproject.toml, package.json, go.mod, pom.xml, Cargo.toml
Frameworks: Parsed from dependency files
Keywords:
- Testing:
test,pytest,jest,tdd - Security:
auth,encrypt,validate - Git:
commit,push,pull request - Refactoring:
refactor,optimize
Python + FastAPI project measurements:
| Task Type | Files Loaded | Token Savings |
|---|---|---|
| Code Review | 2 files | 86.4% |
| Write Tests | 2 files | 55.8% |
| FastAPI Endpoint | 3 files | 65.9% |
| Git Commit | 2 files | 89.6% |
| Average | 2.25 files | 74.4% |
Duplicate banner appearing (hook runs twice):
You've installed both globally AND locally. Remove one installation:
# Option 1: Remove global hook (keep local)
jq 'del(.hooks.UserPromptSubmit[] | select(.hooks[]?.command | contains("activate-rules.sh")))' \
~/.claude/settings.json > ~/.claude/settings.json.tmp && \
mv ~/.claude/settings.json.tmp ~/.claude/settings.json
# Option 2: Remove local hook (keep global)
jq 'del(.hooks.UserPromptSubmit[] | select(.hooks[]?.command | contains("activate-rules.sh")))' \
.claude/settings.json > .claude/settings.json.tmp && \
mv .claude/settings.json.tmp .claude/settings.jsonWithout jq:
# Manually edit the settings file and remove the UserPromptSubmit hook
vim ~/.claude/settings.json # For global
# OR
vim .claude/settings.json # For localHook not appearing:
/hooks # Check registered hooks
chmod +x .claude/hooks/activate-rules.sh # Fix permissionsWrong language detected:
Create appropriate marker file (package.json, pyproject.toml, go.mod)
No banner displayed: Include keywords in prompt: "Write a Python function with tests"
Customize rules for your project without forking:
# Create override directory
mkdir -p .claude/rules-local/base
# Add project-specific security requirements
cat > .claude/rules-local/base/security.md << 'EOF'
# Additional Security Requirements
- All API endpoints require authentication
- Rate limiting on public routes
EOF
# Sync with overrides applied
./sync-ai-rules.sh --tool claudeConfigure merge behavior in .claude/rules-config.local.json:
{
"merge_strategy": "extend",
"overrides": {
"base/security.md": "replace"
},
"exclude": ["base/chaos-engineering.md"]
}Merge strategies:
extend(default): Append local after centralreplace: Local completely replaces centralprepend: Local appears before central
Preview changes without applying: ./sync-ai-rules.sh --dry-run
See Local Override Documentation for full reference.
Edit .claude/skills/skill-rules.json to add keywords:
{
"keywordMappings": {
"languages": {
"python": {
"keywords": ["python", ".py", "your-keyword"],
"rules": ["languages/python"]
}
}
}
}Changes take effect immediately.
Fork repository:
export RULES_REPO="https://raw.githubusercontent.com/your-org/centralized-rules/main"
curl -fsSL $RULES_REPO/install-hooks.sh | bash -s -- --globalCommit to projects:
cp -r .claude/ your-project-template/
git add .claude/- Installation Guide - Setup instructions
- Hook System - Automatic rule loading and quality gates
- Local Overrides - Project-level rule customization
- Classification System - Prompt classification
- Bash Code Quality - Engineering analysis
Languages: Python, TypeScript, JavaScript, Go, Java, C#, Rust
Frameworks: React, Next.js, Django, FastAPI, Flask, Express, Spring Boot, NestJS, Vue
Cloud: AWS, Vercel
AI Tools: Claude Code, Cursor, GitHub Copilot, Gemini
Open issues or pull requests at github.com/paulduvall/centralized-rules.
MIT License - See LICENSE for details.