~ / rigs / xhulz / nina

xhulz/nina

Harness orchestration for Claude Code: composes a gated multi-agent pipeline into projects from versioned layers, holds its loop caps with hooks, measures it from transcripts, and turns recurring mistakes into rules.

↗ GitHub ★ 1 NOASSERTION updated today project Claude Code
share on X
ARCHETYPE
Orchestrator
A bench of specialised subagents. The main agent mostly delegates.
CONTEXT TAX · EVERY TURN
~9.3k tokens
Heavy · median rig: 2.3k · breakdown
GUARDRAILS
1/5
No YOLO mode · details

Copy this rig

# review before running: this installs third-party code
$ npx degit xhulz/nina/.claude ./rig-nina  # 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.

$ curl -fsSL --create-dirs -o .claude/agents/architect.md https://raw.githubusercontent.com/xhulz/nina/main/core/defaults/tree/.claude/agents/architect.md
$ curl -fsSL --create-dirs -o .claude/agents/dba.md https://raw.githubusercontent.com/xhulz/nina/main/core/defaults/tree/.claude/agents/dba.md
$ curl -fsSL --create-dirs -o .claude/agents/devops.md https://raw.githubusercontent.com/xhulz/nina/main/core/defaults/tree/.claude/agents/devops.md
$ curl -fsSL --create-dirs -o .claude/agents/implementer.md https://raw.githubusercontent.com/xhulz/nina/main/core/defaults/tree/.claude/agents/implementer.md
$ curl -fsSL --create-dirs -o .claude/agents/integration-tester.md https://raw.githubusercontent.com/xhulz/nina/main/core/defaults/tree/.claude/agents/integration-tester.md
$ curl -fsSL --create-dirs -o .claude/agents/qa.md https://raw.githubusercontent.com/xhulz/nina/main/core/defaults/tree/.claude/agents/qa.md
$ curl -fsSL --create-dirs -o .claude/agents/reviewer.md https://raw.githubusercontent.com/xhulz/nina/main/core/defaults/tree/.claude/agents/reviewer.md
$ curl -fsSL --create-dirs -o .claude/agents/secops.md https://raw.githubusercontent.com/xhulz/nina/main/core/defaults/tree/.claude/agents/secops.md
$ curl -fsSL --create-dirs -o .claude/agents/solidity-auditor.md https://raw.githubusercontent.com/xhulz/nina/main/core/defaults/tree/.claude/agents/solidity-auditor.md
$ curl -fsSL --create-dirs -o .claude/agents/solidity-dev.md https://raw.githubusercontent.com/xhulz/nina/main/core/defaults/tree/.claude/agents/solidity-dev.md
$ curl -fsSL --create-dirs -o .claude/agents/architect.md https://raw.githubusercontent.com/xhulz/nina/main/core/tree/.claude/agents/architect.md
$ curl -fsSL --create-dirs -o .claude/agents/dba.md https://raw.githubusercontent.com/xhulz/nina/main/core/tree/.claude/agents/dba.md
$ curl -fsSL --create-dirs -o .claude/agents/devops.md https://raw.githubusercontent.com/xhulz/nina/main/core/tree/.claude/agents/devops.md
$ curl -fsSL --create-dirs -o .claude/agents/implementer.md https://raw.githubusercontent.com/xhulz/nina/main/core/tree/.claude/agents/implementer.md
$ curl -fsSL --create-dirs -o .claude/agents/integration-tester.md https://raw.githubusercontent.com/xhulz/nina/main/core/tree/.claude/agents/integration-tester.md
$ curl -fsSL --create-dirs -o .claude/agents/planner.md https://raw.githubusercontent.com/xhulz/nina/main/core/tree/.claude/agents/planner.md
$ curl -fsSL --create-dirs -o .claude/agents/qa.md https://raw.githubusercontent.com/xhulz/nina/main/core/tree/.claude/agents/qa.md
$ curl -fsSL --create-dirs -o .claude/agents/reviewer.md https://raw.githubusercontent.com/xhulz/nina/main/core/tree/.claude/agents/reviewer.md
$ curl -fsSL --create-dirs -o .claude/agents/secops.md https://raw.githubusercontent.com/xhulz/nina/main/core/tree/.claude/agents/secops.md
$ curl -fsSL --create-dirs -o .claude/agents/solidity-auditor.md https://raw.githubusercontent.com/xhulz/nina/main/core/tree/.claude/agents/solidity-auditor.md
$ curl -fsSL --create-dirs -o .claude/agents/solidity-dev.md https://raw.githubusercontent.com/xhulz/nina/main/core/tree/.claude/agents/solidity-dev.md
$ curl -fsSL --create-dirs -o .claude/agents/architect.md https://raw.githubusercontent.com/xhulz/nina/main/releases/0.1.0/core/tree/.claude/agents/architect.md
$ curl -fsSL --create-dirs -o .claude/agents/dba.md https://raw.githubusercontent.com/xhulz/nina/main/releases/0.1.0/core/tree/.claude/agents/dba.md
$ curl -fsSL --create-dirs -o .claude/agents/devops.md https://raw.githubusercontent.com/xhulz/nina/main/releases/0.1.0/core/tree/.claude/agents/devops.md
$ curl -fsSL --create-dirs -o .claude/agents/implementer.md https://raw.githubusercontent.com/xhulz/nina/main/releases/0.1.0/core/tree/.claude/agents/implementer.md
$ curl -fsSL --create-dirs -o .claude/agents/integration-tester.md https://raw.githubusercontent.com/xhulz/nina/main/releases/0.1.0/core/tree/.claude/agents/integration-tester.md
$ curl -fsSL --create-dirs -o .claude/agents/planner.md https://raw.githubusercontent.com/xhulz/nina/main/releases/0.1.0/core/tree/.claude/agents/planner.md
$ curl -fsSL --create-dirs -o .claude/agents/qa.md https://raw.githubusercontent.com/xhulz/nina/main/releases/0.1.0/core/tree/.claude/agents/qa.md
$ curl -fsSL --create-dirs -o .claude/agents/reviewer.md https://raw.githubusercontent.com/xhulz/nina/main/releases/0.1.0/core/tree/.claude/agents/reviewer.md
$ curl -fsSL --create-dirs -o .claude/agents/secops.md https://raw.githubusercontent.com/xhulz/nina/main/releases/0.1.0/core/tree/.claude/agents/secops.md
$ curl -fsSL --create-dirs -o .claude/agents/architect.md https://raw.githubusercontent.com/xhulz/nina/main/releases/0.1.0/surfaces/db/tree/.claude/agents/architect.md
$ curl -fsSL --create-dirs -o .claude/agents/dba.md https://raw.githubusercontent.com/xhulz/nina/main/releases/0.1.0/surfaces/db/tree/.claude/agents/dba.md
$ curl -fsSL --create-dirs -o .claude/agents/devops.md https://raw.githubusercontent.com/xhulz/nina/main/releases/0.1.0/surfaces/db/tree/.claude/agents/devops.md
$ curl -fsSL --create-dirs -o .claude/agents/implementer.md https://raw.githubusercontent.com/xhulz/nina/main/releases/0.1.0/surfaces/db/tree/.claude/agents/implementer.md
$ curl -fsSL --create-dirs -o .claude/agents/integration-tester.md https://raw.githubusercontent.com/xhulz/nina/main/releases/0.1.0/surfaces/db/tree/.claude/agents/integration-tester.md
$ curl -fsSL --create-dirs -o .claude/agents/planner.md https://raw.githubusercontent.com/xhulz/nina/main/releases/0.1.0/surfaces/db/tree/.claude/agents/planner.md
$ curl -fsSL --create-dirs -o .claude/agents/reviewer.md https://raw.githubusercontent.com/xhulz/nina/main/releases/0.1.0/surfaces/db/tree/.claude/agents/reviewer.md
$ curl -fsSL --create-dirs -o .claude/agents/secops.md https://raw.githubusercontent.com/xhulz/nina/main/releases/0.1.0/surfaces/db/tree/.claude/agents/secops.md
$ curl -fsSL --create-dirs -o .claude/agents/architect.md https://raw.githubusercontent.com/xhulz/nina/main/releases/0.1.0/surfaces/edge-cf/tree/.claude/agents/architect.md
$ curl -fsSL --create-dirs -o .claude/agents/dba.md https://raw.githubusercontent.com/xhulz/nina/main/releases/0.1.0/surfaces/edge-cf/tree/.claude/agents/dba.md

This rig commits no guardrails. Here is the community baseline instead — the deny/ask rules most often found across all 7,204 rigs:

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(**/.env)",
      "Read(~/.ssh/**)",
      "Bash(rm -rf *)",
      "Read(**/*.pem)",
      "Bash(rm -rf /)",
      "Bash(git push --force:*)",
      "Bash(sudo *)",
      "Read(.env)",
      "Bash(rm -rf /*)",
      "Read(./.env.*)",
      "Read(~/.aws/**)",
      "Bash(git push --force*)",
      "Bash(rm -rf:*)",
      "Read(**/*.key)",
      "Read(**/.env.*)",
      "Bash(sudo:*)",
      "Bash(git reset --hard*)",
      "Bash(git reset --hard:*)",
      "Read(.env.*)"
    ],
    "ask": [
      "Bash(git push:*)",
      "Bash(git push *)",
      "Bash(git commit:*)",
      "Bash(rm *)",
      "Bash(rm:*)",
      "Bash(git rebase *)",
      "Bash(wget *)",
      "Bash(npm publish:*)",
      "Bash(git commit *)",
      "Bash(gh pr merge *)"
    ]
  }
}

Subagents (80)

architect—
dba—
devops—
implementer—
integration-tester—
qa—
reviewer—
secops—
solidity-auditor—
solidity-dev—
architect
model: {{DEEP_MODEL}}
Use after the planner, or directly for a well-scoped single-component change. Designs the technical approach and produces a written spec (files, signatures, data flow, tests) that the implementer can
dba—
devops
model: {{DEEP_MODEL}}
Owns everything between "qa passed" and "it is running where someone can use it". Runs after qa PASS on any step that changes a deployed surface. Executes the preview-first invariant (Hard Rule #14) —
implementer
model: {{WORK_MODEL}}
Use after the architect has produced a spec. Writes code strictly to spec, INCLUDING test files. Verifies typecheck/lint/build pass locally before handing off to reviewer. DOES NOT run vitest — QA sta
integration-tester—
planner
model: {{WORK_MODEL}}
Use when a task is ambiguous, multi-step, or crosses multiple files/packages. Decomposes the user request into an ordered list of concrete subtasks. The first stage of the chains CLAUDE.md's task-shap
qa
model: {{WORK_MODEL}}
—
reviewer
model: {{DEEP_MODEL}}
—
secops
model: {{DEEP_MODEL}}
—
solidity-auditor—
solidity-dev—
architect
model: opus
Use after the planner, or directly for a well-scoped single-component change. Designs the technical approach and produces a written spec (files, signatures, data flow, tests) that the implementer can
dba—
devops
model: opus
Owns everything between "qa passed" and "it is running where someone can use it". Runs after qa PASS on any step that changes a deployed surface. Executes the preview-first invariant (Hard Rule #14) —
implementer
model: sonnet
Use after the architect has produced a spec. Writes code strictly to spec, INCLUDING test files. Verifies typecheck/lint/build pass locally before handing off to reviewer. DOES NOT run vitest — QA sta
integration-tester—
planner
model: sonnet
Use when a task is ambiguous, multi-step, or crosses multiple files/packages. Decomposes the user request into an ordered list of concrete subtasks. MUST be the first stage for any new feature or mult
qa
model: sonnet
—
reviewer
model: opus
—
secops
model: opus
—
architect—
dba—
devops—
implementer—
integration-tester—
planner—
reviewer—
secops—
architect—
dba—

Hooks (1)

eventmatcherruns
Stop*f="${CLAUDE_PROJECT_DIR:-.}/scripts/harness-check.mjs"; [ -f "$f" ] && node "$f" --hook || true

Permissions

deny (0)
—
ask (0)
—
allow (12)
Read(/~/.claude/projects/**)
Read(//private/tmp/**)
Read(//tmp/**)
Bash(node bin/nina.mjs *)
Bash(node scripts/*.mjs)
Bash(node scripts/*.mjs *)
Bash(nina *)
Bash(pnpm snapshot *)
Bash(pnpm stats *)
Bash(pnpm harness:check)
Bash(pnpm agent-tools:check)
Bash(echo "EXIT=$?")

Similar rigs

copied ✓