~ / rigs / joshido / ai-template

joshido/ai-template

A project-agnostic four-agent AI development workflow template for Claude Code, Gemini CLI, and GitHub Copilot.

↗ GitHub ★ 0 MIT updated 9d ago project Claude CodeCodexGemini CLI
share on X
ARCHETYPE
Pragmatist
A balanced, no-drama setup: some rules, some tools, nothing extreme.
CONTEXT TAX · EVERY TURN
~1.3k tokens
Featherweight · 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 joshido/ai-template/.claude ./rig-ai-template  # 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/developer.md https://raw.githubusercontent.com/joshido/ai-template/main/.claude/agents/developer.md
$ curl -fsSL --create-dirs -o .claude/agents/reviewer.md https://raw.githubusercontent.com/joshido/ai-template/main/.claude/agents/reviewer.md
$ curl -fsSL --create-dirs -o .claude/agents/tester.md https://raw.githubusercontent.com/joshido/ai-template/main/.claude/agents/tester.md
$ curl -fsSL --create-dirs -o .claude/agents/tool-caller.md https://raw.githubusercontent.com/joshido/ai-template/main/.claude/agents/tool-caller.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 (4)

developer
model: sonnet
Implements one task until the Tester's approved tests pass. Use after tests are approved, or to fix Reviewer findings.
reviewer
model: sonnet
Reviews one task's implementation for spec compliance, correctness, quality and security, and reports findings without editing code.
tester
model: sonnet
Writes BDD tests (Given/When/Then) for one task before implementation. Use after a plan is approved, before the developer.
tool-caller
model: haiku
Runs well-defined, high-output mechanical tool calls (test, lint and security runs, wide searches, doc lookups) and returns a compact result. No decisions.

Hooks (1)

eventmatcherruns
SessionStart*"$CLAUDE_PROJECT_DIR"/scripts/install-hooks.sh

Similar rigs

copied ✓