~ / rigs / aaronsb / claude-code-config

aaronsb/claude-code-config

Event-driven policy, process, and governance for Claude Code. Ways encode how we do things — prescriptive rules triggered by context, not requested by intent.

↗ GitHub ★ 18 MIT updated 6mo ago personal setup Claude Code
share on X
ARCHETYPE
Orchestrator
A bench of specialised subagents. The main agent mostly delegates.
CONTEXT TAX · EVERY TURN
~1.3k tokens
Featherweight · median rig: 2.3k · breakdown
GUARDRAILS
3/5
Blocks destructive commands · Pre-tool screening hook · No YOLO mode · details

Copy this rig

# review before running: this installs third-party code
$ npx degit aaronsb/claude-code-config/agents ./rig-claude-code-config/agents
$ npx degit aaronsb/claude-code-config/commands ./rig-claude-code-config/commands
$ npx degit aaronsb/claude-code-config/skills ./rig-claude-code-config/skills
$ npx degit aaronsb/claude-code-config/hooks ./rig-claude-code-config/hooks

MCP servers are added to Claude Code at local scope; env vars are shown as YOUR_… placeholders — we never store values. Files are fetched with degit into a separate folder so you can review before merging.

$ npx degit aaronsb/claude-code-config/skills/adr .claude/skills/adr
$ npx degit aaronsb/claude-code-config/skills/context-status .claude/skills/context-status
$ npx degit aaronsb/claude-code-config/skills/direnv .claude/skills/direnv
$ npx degit aaronsb/claude-code-config/skills/governance-cite .claude/skills/governance-cite
$ npx degit aaronsb/claude-code-config/skills/project-pulse .claude/skills/project-pulse
$ npx degit aaronsb/claude-code-config/skills/ship .claude/skills/ship
$ npx degit aaronsb/claude-code-config/skills/think-consistency .claude/skills/think-consistency
$ npx degit aaronsb/claude-code-config/skills/think-react .claude/skills/think-react
$ npx degit aaronsb/claude-code-config/skills/think-stepback .claude/skills/think-stepback
$ npx degit aaronsb/claude-code-config/skills/think-tree .claude/skills/think-tree
$ npx degit aaronsb/claude-code-config/skills/think-trilemma .claude/skills/think-trilemma
$ npx degit aaronsb/claude-code-config/skills/think .claude/skills/think
$ npx degit aaronsb/claude-code-config/skills/ways-tests .claude/skills/ways-tests
$ npx degit aaronsb/claude-code-config/skills/wormhole .claude/skills/wormhole
$ curl -fsSL --create-dirs -o .claude/agents/code-reviewer.md https://raw.githubusercontent.com/aaronsb/claude-code-config/main/agents/code-reviewer.md
$ curl -fsSL --create-dirs -o .claude/agents/requirements-analyst.md https://raw.githubusercontent.com/aaronsb/claude-code-config/main/agents/requirements-analyst.md
$ curl -fsSL --create-dirs -o .claude/agents/system-architect.md https://raw.githubusercontent.com/aaronsb/claude-code-config/main/agents/system-architect.md
$ curl -fsSL --create-dirs -o .claude/agents/task-planner.md https://raw.githubusercontent.com/aaronsb/claude-code-config/main/agents/task-planner.md
$ curl -fsSL --create-dirs -o .claude/agents/workflow-orchestrator.md https://raw.githubusercontent.com/aaronsb/claude-code-config/main/agents/workflow-orchestrator.md
$ curl -fsSL --create-dirs -o .claude/agents/workspace-curator.md https://raw.githubusercontent.com/aaronsb/claude-code-config/main/agents/workspace-curator.md

Merge into .claude/settings.json (project) or ~/.claude/settings.json (user). Hook commands reference scripts in the source repo — copy those too.

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "${HOME}/.claude/hooks/ways/check-file-pre.sh"
          }
        ]
      },
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "${HOME}/.claude/hooks/ways/check-bash-pre.sh"
          }
        ]
      },
      {
        "matcher": "TaskCreate",
        "hooks": [
          {
            "type": "command",
            "command": "${HOME}/.claude/hooks/ways/mark-tasks-active.sh"
          }
        ]
      },
      {
        "matcher": "Task",
        "hooks": [
          {
            "type": "command",
            "command": "${HOME}/.claude/hooks/ways/check-task-pre.sh"
          }
        ]
      }
    ]
  }
}

Skills (14)

Subagents (6)

code-reviewerReviews code for quality, SOLID principles compliance, and requirement traceability. Assumes PR context. Provides specific refactoring suggestions with clear rationale. Strictly a reviewer - never edi
requirements-analystCaptures user needs as GitHub issues or in ADR context. Creates simple requirement statements with acceptance criteria. Focuses on understanding the problem to solve, not prescribing solutions.
system-architectDrafts Architecture Decision Records (ADRs) documenting design choices. Evaluates against SOLID principles. Guides ADR workflow from draft to PR to merge. Never implements - only designs and documents
task-plannerPlans implementation work using branches and TodoWrite. Thinks in git workflow, not tracking files. Helps break down complex work into manageable pieces with clear dependencies.
workflow-orchestratorCoordinates ADR-driven development workflow. Ensures work has declared intent and proper tracking. Guides users through debate → ADR → branch → implement → PR pattern. Maintains process integrity with
workspace-curatorOrganizes docs/ directory and manages .claude/ structure. Recommends ADR numbering and file placement. Prevents documentation sprawl through simple, consistent organization.

Hooks (20)

eventmatcherruns
SessionStartstartup${HOME}/.claude/hooks/ways/check-setup.sh
SessionStartstartup${HOME}/.claude/hooks/ways/clear-markers.sh
SessionStartstartup${HOME}/.claude/hooks/check-config-updates.sh
SessionStartstartup${HOME}/.claude/hooks/ways/check-state.sh
SessionStartstartup${HOME}/.claude/bin/ways init
SessionStartstartup${HOME}/.claude/bin/ways corpus --if-stale --quiet
SessionStartcompact${HOME}/.claude/hooks/ways/clear-markers.sh
SessionStartcompact${HOME}/.claude/hooks/ways/check-state.sh
SessionStartresume${HOME}/.claude/hooks/ways/check-state.sh
SessionStartclear${HOME}/.claude/hooks/ways/clear-markers.sh
SessionStartclear${HOME}/.claude/hooks/ways/check-state.sh
SessionStartclear${HOME}/.claude/bin/ways init
PreToolUseEdit|Write${HOME}/.claude/hooks/ways/check-file-pre.sh
PreToolUseBash${HOME}/.claude/hooks/ways/check-bash-pre.sh
PreToolUseTaskCreate${HOME}/.claude/hooks/ways/mark-tasks-active.sh
PreToolUseTask${HOME}/.claude/hooks/ways/check-task-pre.sh
UserPromptSubmit*${HOME}/.claude/hooks/ways/check-prompt.sh
UserPromptSubmit*${HOME}/.claude/hooks/ways/check-state.sh
SubagentStart*${HOME}/.claude/hooks/ways/inject-subagent.sh
Stop*${HOME}/.claude/hooks/ways/check-response.sh

Slash commands (6)

/gemini/governance/project-audit/project-init/ways-tests/ways

Plugins (5)

clangd-lsp@claude-plugins-officialcode-simplifier@claude-plugins-officialrust-analyzer-lsp@claude-plugins-officialfrontend-design@claude-plugins-officialgopls-lsp@claude-plugins-official

Permissions

deny (0)
—
ask (0)
—
allow (38)
Edit(~/.claude/**)
Edit(~/.claude/**)
Read
Write(~/.claude/**)
Write(~/.claude/**)
Bash(~/.claude/hooks/ways/list-triggered.sh:*)
Bash(cat:*)
Bash(head:*)
Bash(tail:*)
Bash(less:*)
Bash(grep:*)
Bash(rg:*)
Bash(find:*)
Bash(ls:*)
Bash(tree:*)
Bash(du:*)
Bash(df:*)
Bash(wc:*)
Bash(file:*)
Bash(stat:*)
Bash(diff:*)
Bash(which:*)
Bash(type:*)
Bash(pwd:*)
Bash(echo:*)
Bash(awk:*)
Bash(sed:*)
Bash(sort:*)
Bash(uniq:*)
Bash(cut:*)
Bash(tr:*)
Bash(xargs:*)
Bash(tee:*)
Bash(uname:*)
Bash(realpath:*)
Bash(dirname:*)
Bash(basename:*)
Bash(test:*)

Similar rigs

copied ✓