~ / rigs / paruff / uFawkesAI

paruff/uFawkesAI

Template for AI-native development: Claude Code, OpenCode, Codex and Gemini CLI from one config, intent→spec→plan in CI, eval-gated merges, and the shared fawkes-space devcontainer

↗ GitHub ★ 2 mit updated 6d ago project Claude CodeCodexCursorGemini CLICopilot Claude plugin
share on X
ARCHETYPE
Skill Collector
Ten-plus skills loaded on demand. A procedural-knowledge library.
CONTEXT TAX · EVERY TURN
~41.2k tokens
Context hog · median rig: 2.3k · breakdown
GUARDRAILS
2/5
Pre-tool screening hook · No YOLO mode · details

Copy this rig

# review before running: this installs third-party code
$ claude mcp add playwright -- npx -y @playwright/mcp
$ claude mcp add serena -- uvx --from serena-agent serena start-mcp-server --project-from-cwd --context agent --open-web-dashboard False
$ claude mcp add --transport http context7 https://mcp.context7.com/mcp -H 'Authorization: YOUR_VALUE'
$ claude mcp add github -e GITHUB_PERSONAL_ACCESS_<redacted> -- npx -y @modelcontextprotocol/server-github
$ claude mcp add --transport http sentry https://mcp.sentry.dev/mcp -H 'Authorization: YOUR_VALUE'
$ npx degit paruff/uFawkesAI/.claude ./rig-ufawkesai  # 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.

$ claude mcp add playwright -- npx -y @playwright/mcp
$ claude mcp add serena -- uvx --from serena-agent serena start-mcp-server --project-from-cwd --context agent --open-web-dashboard False
$ claude mcp add --transport http context7 https://mcp.context7.com/mcp -H 'Authorization: YOUR_VALUE'
$ claude mcp add github -e GITHUB_PERSONAL_ACCESS_<redacted> -- npx -y @modelcontextprotocol/server-github
$ claude mcp add --transport http sentry https://mcp.sentry.dev/mcp -H 'Authorization: YOUR_VALUE'
$ npx degit paruff/uFawkesAI/.agents/skills/ai-stance .claude/skills/ai-stance
$ npx degit paruff/uFawkesAI/.agents/skills/context-engineering .claude/skills/context-engineering
$ npx degit paruff/uFawkesAI/.agents/skills/continuous-evals .claude/skills/continuous-evals
$ npx degit paruff/uFawkesAI/.agents/skills/dev-experience .claude/skills/dev-experience
$ npx degit paruff/uFawkesAI/.agents/skills/discovery .claude/skills/discovery
$ npx degit paruff/uFawkesAI/.agents/skills/documentation .claude/skills/documentation
$ npx degit paruff/uFawkesAI/.agents/skills/dojo-navigator .claude/skills/dojo-navigator
$ npx degit paruff/uFawkesAI/.agents/skills/dora-measurement .claude/skills/dora-measurement
$ npx degit paruff/uFawkesAI/.agents/skills/integration-testing .claude/skills/integration-testing
$ npx degit paruff/uFawkesAI/.agents/skills/lang .claude/skills/lang
$ npx degit paruff/uFawkesAI/.agents/skills/learn .claude/skills/learn
$ npx degit paruff/uFawkesAI/.agents/skills/ufawkes-knowledge .claude/skills/ufawkes-knowledge

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": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "node -e \"const input=JSON.parse(require('fs').readFileSync(0,'utf-8')||'{}'); const p=(input.tool_input&&input.tool_input.file_path)||''; const path=require('path'); const cfg=require(path.join(process.env.CLAUDE_PROJECT_DIR||process.cwd(),"
          }
        ]
      },
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "node \"$CLAUDE_PROJECT_DIR/scripts/hooks/claude-pretooluse-secret-scan.js\""
          }
        ]
      }
    ]
  }
}

MCP servers (5)

serversourceest. tokens
Playwright MCP · "playwright" npm 7.5k
Serena pypi 8.0k
Context7 remote · remote 1.2k
GitHub MCP · "github"
env: GITHUB_PERSONAL_ACCESS_TOKEN
npm 18.0k
Sentry remote · remote 4.5k

Skills (12)

Hooks (6)

eventmatcherruns
PreToolUseEdit|Writenode -e "const input=JSON.parse(require('fs').readFileSync(0,'utf-8')||'{}'); const p=(input.tool_input&&input.tool_input.file_path)||''; const path=require('path'); const cfg=require(path.join(process.env.CLAUDE_PROJECT_DIR||process.cwd(),
PreToolUseBashnode "$CLAUDE_PROJECT_DIR/scripts/hooks/claude-pretooluse-secret-scan.js"
PostToolUseEdit|Writenode -e "const input=JSON.parse(require('fs').readFileSync(0,'utf-8')||'{}'); const p=(input.tool_input&&input.tool_input.file_path)||''; const {spawnSync}=require('child_process'); const path=require('path'); if(!p) process.exit(0); const
SessionStartcompactecho "Use the project's package manager. Run /verify before claiming completion. Never edit protected files."
SessionStart*bash "$CLAUDE_PROJECT_DIR/scripts/shift-left.sh" doctor --quiet || true
Stop*bash "$CLAUDE_PROJECT_DIR/scripts/shift-left.sh" agent-gate

Cursor rules (1)

AGENTS

Similar rigs

copied ✓