~ / rigs / Gruci / agent-harness

Gruci/agent-harness

Harness engineering for Claude Code & Codex: hooks and gates that mechanically enforce your project rules, instead of trusting the agent to remember them.

↗ GitHub ★ 1 no license updated 8d ago personal setup Claude CodeCodex Claude plugin
share on X
ARCHETYPE
YOLO Cowboy
Permissions? Never heard of 'em. Ships at the speed of `--dangerously-skip-permissions`.
CONTEXT TAX · EVERY TURN
~4.6k tokens
Moderate · median rig: 2.3k · breakdown
GUARDRAILS
2/5
Blocks destructive commands · Pre-tool screening hook · details

Copy this rig

# review before running: this installs third-party code
$ npx degit Gruci/agent-harness/.claude ./rig-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 Gruci/agent-harness/.agents/skills/code-audit-cdx .claude/skills/code-audit-cdx
$ npx degit Gruci/agent-harness/.agents/skills/code-debt-cdx .claude/skills/code-debt-cdx
$ npx degit Gruci/agent-harness/.agents/skills/code-trim-cdx .claude/skills/code-trim-cdx
$ npx degit Gruci/agent-harness/.agents/skills/feature-workflow-cdx .claude/skills/feature-workflow-cdx
$ npx degit Gruci/agent-harness/.agents/skills/full-feature-cdx .claude/skills/full-feature-cdx
$ npx degit Gruci/agent-harness/.agents/skills/harness-assembly-cdx .claude/skills/harness-assembly-cdx
$ npx degit Gruci/agent-harness/.agents/skills/md-audit-cdx .claude/skills/md-audit-cdx
$ npx degit Gruci/agent-harness/.agents/skills/review-loop-cdx .claude/skills/review-loop-cdx
$ npx degit Gruci/agent-harness/.agents/skills/test-cdx .claude/skills/test-cdx
$ npx degit Gruci/agent-harness/.claude/skills/code-audit .claude/skills/code-audit
$ npx degit Gruci/agent-harness/.claude/skills/code-debt .claude/skills/code-debt
$ npx degit Gruci/agent-harness/.claude/skills/code-trim .claude/skills/code-trim
$ npx degit Gruci/agent-harness/.claude/skills/feature-workflow .claude/skills/feature-workflow
$ npx degit Gruci/agent-harness/.claude/skills/full-feature .claude/skills/full-feature
$ npx degit Gruci/agent-harness/.claude/skills/harness-init .claude/skills/harness-init
$ npx degit Gruci/agent-harness/.claude/skills/harness-retro .claude/skills/harness-retro
$ npx degit Gruci/agent-harness/.claude/skills/md-audit .claude/skills/md-audit
$ npx degit Gruci/agent-harness/.claude/skills/review-loop .claude/skills/review-loop
$ curl -fsSL --create-dirs -o .claude/agents/backend.md https://raw.githubusercontent.com/Gruci/agent-harness/master/.claude/agents/backend.md
$ curl -fsSL --create-dirs -o .claude/agents/executor.md https://raw.githubusercontent.com/Gruci/agent-harness/master/.claude/agents/executor.md
$ curl -fsSL --create-dirs -o .claude/agents/frontend.md https://raw.githubusercontent.com/Gruci/agent-harness/master/.claude/agents/frontend.md
$ curl -fsSL --create-dirs -o .claude/agents/orchestrator.md https://raw.githubusercontent.com/Gruci/agent-harness/master/.claude/agents/orchestrator.md
$ curl -fsSL --create-dirs -o .claude/agents/product-reviewer.md https://raw.githubusercontent.com/Gruci/agent-harness/master/.claude/agents/product-reviewer.md
$ curl -fsSL --create-dirs -o .claude/agents/qa.md https://raw.githubusercontent.com/Gruci/agent-harness/master/.claude/agents/qa.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": "Read",
        "hooks": [
          {
            "type": "command",
            "command": "python -X utf8 \"$(git rev-parse --show-toplevel)/.claude/hooks/check_context_diet.py\""
          }
        ]
      },
      {
        "matcher": "Bash|PowerShell",
        "hooks": [
          {
            "type": "command",
            "command": "python -X utf8 \"$(git rev-parse --show-toplevel)/.claude/hooks/check_bash_write.py\""
          }
        ]
      },
      {
        "matcher": "Edit|Write|MultiEdit|NotebookEdit",
        "hooks": [
          {
            "type": "command",
            "command": "python -X utf8 \"$(git rev-parse --show-toplevel)/.claude/hooks/check_workboard_overlap.py\""
          }
        ]
      },
      {
        "matcher": "Edit|Write|MultiEdit|NotebookEdit|EnterWorktree|Bash|PowerShell",
        "hooks": [
          {
            "type": "command",
            "command": "python -X utf8 \"$(git rev-parse --show-toplevel)/.claude/hooks/check_pretool.py\""
          }
        ]
      },
      {
        "matcher": "Workflow",
        "hooks": [
          {
            "type": "command",
            "command": "python -X utf8 \"$(git rev-parse --show-toplevel)/.claude/hooks/check_workflow_script.py\""
          }
        ]
      }
    ]
  }
}

Skills (18)

Subagents (6)

backend
model: opus
서버(백엔드) 개발 전담 에이전트. 프로파일 LANG 의 서버 소스 편집, 라우트/DB 쿼리/배치 스크립트 작업 시 사용. 승인된 컴포넌트 그래프의 의존 방향과 workboard 과업 보드 프로토콜을 자동 준수한다.
executor
model: fable
승인된 plan 하나를 통째로 자율 실행하는 대규모 구현 에이전트. 파일 8개 이상이거나 레이어 3개 이상을 횡단하는 plan의 3단계 구현에 사용. 절차 지시 대신 목표·제약·완료 조건으로 구동한다.
frontend
model: opus
화면(UI) 개발 전담 에이전트. 프로파일 CHECK_PATHS 의 ui 경로 아래 화면 코드 편집, 컴포넌트·차트·색상·레이아웃 작업 시 사용. design/DESIGN_GUIDE.md 5원칙과 dev/CONVENTIONS.md 의 화면 관례·스택 관례(토큰 파일, 차트 래퍼, 공용 fetch 래퍼)를 자동 준수한다.
orchestrator
model: fable
대규모 병렬 구현 지휘 에이전트. 승인된 plan의 병렬 후보를 런타임에 확정하고 Opus 워커에게 배정해 병렬 구현을 지휘한다. 공유 파일을 단독 소유해 직렬 적용하며 직접 기능 코드를 쓰지 않는다.
product-reviewer
model: opus
서비스 오너 페르소나 검수 에이전트. 화면 구성·지표·문구·정보 위계를 "이 서비스를 실제로 쓰는 사람" 관점에서 검수하고 구조화된 피드백을 반환한다. 코드 품질이 아니라 비즈니스 의미·완결성·우선순위를 평가한다.
qa
model: opus
통합 정합성 검증(QA) 전담 에이전트. 백엔드·프론트엔드 모듈 완성 직후 경계면(API 응답 ↔ 프론트 소비)을 교차 비교 검증한다. 풀스택 기능 구현 후, 또는 "정합성 확인해줘"·"QA 돌려줘" 요청 시 사용.

Hooks (21)

eventmatcherruns
SessionStartstartup|resume|clear|compactcat "$(git rev-parse --show-toplevel)/.claude/hooks/code-master.md"
SessionStartstartup|resume|clear|compactgit rev-parse --is-inside-work-tree >/dev/null 2>&1 || echo '[GIT CHECK] Not a git repository. Gates collect their targets with git ls-files, so outside a repository there are 0 targets, every gate checks nothing, and the task board check d
SessionStartstartup|resume|clear|compacttest -f "$(git rev-parse --show-toplevel)/harness_profile.py" || echo '[HARNESS SETUP] harness_profile.py is missing. The kernel knows nothing about this project, so every gate that needs layer settings is switched off as [SKIP]. Before cod
SessionStartstartup|resume|clear|compactpython --version >/dev/null 2>&1 || echo '[PYTHON CHECK] python cannot run. Hooks block only on exit 2 and silently pass a launch failure, so none of the Stop and PostToolUse gates run. Fix the python PATH before coding.'; python -c 'import
SessionStartstartuppython -X utf8 "$(git rev-parse --show-toplevel)/.claude/hooks/git_staleness.py"
SessionStartstartuppython -X utf8 "$(git rev-parse --show-toplevel)/.claude/hooks/check_maintenance.py"
UserPromptSubmit*python -X utf8 "$(git rev-parse --show-toplevel)/.claude/hooks/check_context_growth.py"
PreToolUseReadpython -X utf8 "$(git rev-parse --show-toplevel)/.claude/hooks/check_context_diet.py"
PreToolUseBash|PowerShellpython -X utf8 "$(git rev-parse --show-toplevel)/.claude/hooks/check_bash_write.py"
PreToolUseEdit|Write|MultiEdit|NotebookEditpython -X utf8 "$(git rev-parse --show-toplevel)/.claude/hooks/check_workboard_overlap.py"
PreToolUseEdit|Write|MultiEdit|NotebookEdit|EnterWorktree|Bash|PowerShellpython -X utf8 "$(git rev-parse --show-toplevel)/.claude/hooks/check_pretool.py"
PreToolUseWorkflowpython -X utf8 "$(git rev-parse --show-toplevel)/.claude/hooks/check_workflow_script.py"
SubagentStop*python -X utf8 "$(git rev-parse --show-toplevel)/.claude/hooks/check_agent_return.py"
PostToolUseEdit|Write|MultiEditpython -X utf8 "$(git rev-parse --show-toplevel)/.claude/hooks/check_file_rules.py"
Stop*python -X utf8 "$(git rev-parse --show-toplevel)/.claude/hooks/check_editing_lock.py"
Stop*python -X utf8 "$(git rev-parse --show-toplevel)/.claude/hooks/check_coding_rules.py"
Stop*python -X utf8 "$(git rev-parse --show-toplevel)/.claude/hooks/check_git_remote.py"
Stop*python -X utf8 "$(git rev-parse --show-toplevel)/.claude/hooks/check_worktree_residue.py"
Stop*python -X utf8 "$(git rev-parse --show-toplevel)/.claude/hooks/check_mockup_residue.py"
Stop*python -X utf8 "$(git rev-parse --show-toplevel)/.claude/hooks/check_task_residue.py"
Stop*python -X utf8 "$(git rev-parse --show-toplevel)/.claude/hooks/check_ui_copy.py"

Permissions

deny (0)
—
ask (0)
—
allow (18)
Bash(*)
PowerShell(*)
Edit(*)
Write(*)
Read(*)
Glob(*)
Grep(*)
WebFetch(*)
WebSearch(*)
Agent(*)
Skill(*)
TaskCreate(*)
TaskUpdate(*)
TaskGet(*)
TaskList(*)
TaskStop(*)
TaskOutput(*)
NotebookEdit(*)

Similar rigs

copied ✓