~ / rigs / arunpaul-H / coding-agent-harness

arunpaul-H/coding-agent-harness

Your coding agent's rules, enforced by code instead of prompts. Hooks block bad actions before they run; a committed baseline turns a deleted or skipped test into a red build. Zero dependencies. Hooks for Claude Code, gates for any CI.

↗ GitHub ★ 0 MIT updated today personal setup Claude CodeCodex
share on X
ARCHETYPE
Automator
Hooks on every lifecycle event: format, lint, notify, log.
CONTEXT TAX · EVERY TURN
~3.1k tokens
Moderate · median rig: 2.3k · breakdown
GUARDRAILS
3/5
Protects secrets · Pre-tool screening hook · No YOLO mode · details

Copy this rig

# review before running: this installs third-party code
$ npx degit arunpaul-H/coding-agent-harness/.claude ./rig-coding-agent-harness  # inspect, then merge into .claude/

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 arunpaul-H/coding-agent-harness/.claude/skills/guide .claude/skills/guide
$ npx degit arunpaul-H/coding-agent-harness/.claude/skills/implement .claude/skills/implement
$ npx degit arunpaul-H/coding-agent-harness/.claude/skills/plan .claude/skills/plan
$ npx degit arunpaul-H/coding-agent-harness/.claude/skills/research .claude/skills/research
$ curl -fsSL --create-dirs -o .claude/agents/explore.md https://raw.githubusercontent.com/arunpaul-H/coding-agent-harness/main/.claude/agents/explore.md
$ curl -fsSL --create-dirs -o .claude/agents/implement.md https://raw.githubusercontent.com/arunpaul-H/coding-agent-harness/main/.claude/agents/implement.md
$ curl -fsSL --create-dirs -o .claude/agents/research.md https://raw.githubusercontent.com/arunpaul-H/coding-agent-harness/main/.claude/agents/research.md
$ curl -fsSL --create-dirs -o .claude/agents/review.md https://raw.githubusercontent.com/arunpaul-H/coding-agent-harness/main/.claude/agents/review.md

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

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(//**/.env)",
      "Bash(node -e*)",
      "Bash(node --eval*)"
    ]
  },
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash|PowerShell|Read|Grep|Glob|Edit|Write|Agent|mcp__.*",
        "hooks": [
          {
            "type": "command",
            "command": "node \"${CLAUDE_PROJECT_DIR}/scripts/harness/hook.js\" --tool claude-code --event pre-tool"
          }
        ]
      }
    ]
  }
}

Skills (4)

Subagents (4)

explore
model: haiku
Read-only search across many files or naming conventions when only the conclusion is wanted, not the file dumps. Locates code; does not judge it.
implement
model: opus
Does ONE task from a handoff block inside a named READ-SET and ends by running the gate. Spawns nothing and commits nothing.
research
model: opus
Answers ONE question from the repo and the web and leaves a dated frozen research file behind. Writes that one file and nothing else.
review
model: inherit
Read-only review of a change already in the tree; returns ranked file:line findings and fixes nothing. Inherits the lead model because reviewing is judgement.

Hooks (4)

eventmatcherruns
PreToolUseBash|PowerShell|Read|Grep|Glob|Edit|Write|Agent|mcp__.*node "${CLAUDE_PROJECT_DIR}/scripts/harness/hook.js" --tool claude-code --event pre-tool
SessionStart*node "${CLAUDE_PROJECT_DIR}/scripts/harness/hook.js" --tool claude-code --event session-start
Stop*node "${CLAUDE_PROJECT_DIR}/scripts/harness/hook.js" --tool claude-code --event stop
WorktreeCreate*node "${CLAUDE_PROJECT_DIR}/scripts/harness/hook.js" --tool claude-code --event worktree-create

Permissions

deny (4)
Read(./.env)
Read(//**/.env)
Bash(node -e*)
Bash(node --eval*)
ask (0)
—
allow (2)
Bash(node .claude/*)
Bash(node scripts/harness/*)

Similar rigs

copied ✓