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.
ARCHETYPE
Automator
Hooks on every lifecycle event: format, lint, notify, log.
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)
| event | matcher | runs |
|---|---|---|
| PreToolUse | Bash|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
defendend/Claude-ast-index-search
Cli allows AST search, ~40-50% economy tokens. Claude/Codex/Cursor searches (suitable for any AI agent that can use Bash)
Minimalist 1.5k tok ·
rajgurung/claude-dotfiles
—
Minimalist 391 tok ·
pruthvidarji1993/ai-automation-jira
AI-assisted dev workflow: Jira ticket in, reviewed PR out. Claude Code plugin + GitHub Copilot prompts with human approval gates (plan, diff).
Pragmatist 2.0k tok ·
azamkhanuk/context-central
One central place for all the context behind your work in Claude Code: a map that routes each task to the right notes and keeps work in flight in small state files.
Pragmatist 1.5k tok ·