ADR-driven workflow with specialized subagents, GitHub-first patterns, and hook-based instruction injection.
curl -fsSL https://raw.githubusercontent.com/aaronsb/claude-code-config/main/install.sh | bashOr with wget:
wget -qO- https://raw.githubusercontent.com/aaronsb/claude-code-config/main/install.sh | bash- Clones to temporary directory
- Copies everything (including .git) to
~/.claude/ - Sets up hooks, agents, and methodology files
- Enables future updates via
git pullfrom~/.claude/
git clone https://github.com/aaronsb/claude-code-config /tmp/claude-install
cd /tmp/claude-install
./install.shSince .git is installed to ~/.claude/, you can update anytime:
cd ~/.claude && git pull- ADR-driven workflow: Debate β Draft ADR β PR β Implement β Review β Merge
- Hook-based instruction injection: Fresh context on SessionStart and PreCompact
- GitHub-first patterns: Automatic
ghcommand usage for issues/PRs
- requirements-analyst - Capture complex requirements as GitHub issues
- system-architect - Draft ADRs, evaluate SOLID principles
- task-planner - Plan complex multi-branch implementations
- code-reviewer - Review large PRs, SOLID compliance checks
- workflow-orchestrator - Project status, phase coordination
- workspace-curator - Organize docs/, manage .claude/ directory
When you say "we have an issue about X", Claude will:
- Detect GitHub-related trigger words
- Run
gh issue list --search "X" - Fall back to file search only if GitHub isn't available
Trigger words: issue, PR, pull request, review, comments, checks
- Ask when stuck (you're a valuable resource)
- Verify context after compaction
- Push back when unclear (collaborative debate, not forced challenging)
- Acknowledge uncertainty directly
~/.claude/
βββ claude-hook.md # Full methodology instructions (injected via hooks)
βββ CLAUDE.md # Minimal marker (not auto-loaded)
βββ agents/ # 6 specialized subagents
β βββ code-reviewer.md
β βββ requirements-analyst.md
β βββ system-architect.md
β βββ task-planner.md
β βββ workflow-orchestrator.md
β βββ workspace-curator.md
βββ hooks/
β βββ hooks.json # SessionStart, PreCompact injection
β βββ check-config-updates.sh
βββ commands/ # Custom slash commands
βββ methodology/ # Documentation and guides
βββ scripts/ # Utility scripts
βββ statusline.sh # Status line with git branch info
Problem: CLAUDE.md instructions get ignored as context grows (reported issues)
Solution: Inject instructions via hooks at critical moments:
- SessionStart: Fresh context when sessions begin
- PreCompact: Fresh context after compaction events
Instructions arrive as active conversation content, not distant system prompts.
Enable status line in ~/.claude/settings.json:
{
"statusLine": {
"type": "command",
"command": "${HOME}/.claude/statusline.sh"
}
}Shows: π directory π branch | API usage
Hooks are auto-configured in ~/.claude/hooks/hooks.json:
{
"hooks": {
"SessionStart": [
{"type": "command", "command": "cat ${HOME}/.claude/claude-hook.md"}
],
"PreCompact": [
{"type": "command", "command": "cat ${HOME}/.claude/claude-hook.md"}
]
}
}- Restart Claude Code after installation
- Try
/agents- see your specialized team - Say "we have an issue about X" - watch it check GitHub first!
1. Debate/Research the problem
2. Draft ADR in docs/adr/ADR-NNN-title.md
3. Create PR for ADR review
4. Merge when accepted
5. Create branch referencing ADR
6. Use TodoWrite to track implementation
7. Create PR for code
8. Review and merge
# Find issues
"we have an issue about API security"
β Claude runs: gh issue list --search "API security"
# Check PR status
"what's the status of PR 42?"
β Claude runs: gh pr view 42
# Review PR
"show me comments on the auth PR"
β Claude runs: gh pr view --comments- Single Responsibility: One reason to change
- Open/Closed: Open for extension, closed for modification
- Liskov Substitution: Subtypes substitutable for base types
- Interface Segregation: Many specific > one general interface
- Dependency Inversion: Depend on abstractions, not concretions
- Files > 500 lines β consider splitting
- Functions > 3 nesting levels β extract methods
- Classes > 7 public methods β consider decomposition
- Functions > 30-50 lines β refactor for clarity
- Acknowledge uncertainty: "I don't know" over confident guesses
- Avoid absolutes: "comprehensive", "absolutely right"
- Present options with trade-offs, not just solutions
- Be direct about problems and limitations
The plugin marketplace is new (Oct 2025) and has significant issues:
- Git submodules not initialized on install
- CLAUDE.md instructions ignored
- Agents not registering properly
- Version updates unreliable
We abandoned plugins in favor of direct ~/.claude/ installation. Works better, simpler, no headaches.
This methodology evolves through practical use. Found a pattern that works? Open an issue or PR!
MIT License - Build better software with Claude Code.
Built with the hook-based instruction injection approach that actually works π―