thientranhung/astragentic
Orchestration framework for running several AI coding agents on one real codebase — isolation, dispatch, review, provenance.
ARCHETYPE
Orchestrator
A bench of specialised subagents. The main agent mostly delegates.
Copy this rig
# review before running: this installs third-party code
$ npx degit thientranhung/astragentic/harness/.claude ./rig-astragentic # 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 thientranhung/astragentic/harness/.agents/skills/batch-triage .claude/skills/batch-triage $ npx degit thientranhung/astragentic/harness/.agents/skills/bmad-party .claude/skills/bmad-party $ npx degit thientranhung/astragentic/harness/.agents/skills/bmad-ux .claude/skills/bmad-ux $ npx degit thientranhung/astragentic/harness/.agents/skills/bootstrap-glossary .claude/skills/bootstrap-glossary $ npx degit thientranhung/astragentic/harness/.agents/skills/codex-arm .claude/skills/codex-arm $ npx degit thientranhung/astragentic/harness/.agents/skills/codex-claude-arm .claude/skills/codex-claude-arm $ npx degit thientranhung/astragentic/harness/.agents/skills/dispatch-qa-walk .claude/skills/dispatch-qa-walk $ npx degit thientranhung/astragentic/harness/.agents/skills/dispatch-ticket-claude .claude/skills/dispatch-ticket-claude $ npx degit thientranhung/astragentic/harness/.agents/skills/dispatch-ticket-codex .claude/skills/dispatch-ticket-codex $ npx degit thientranhung/astragentic/harness/.agents/skills/dispatch-ticket-opencode .claude/skills/dispatch-ticket-opencode $ npx degit thientranhung/astragentic/harness/.agents/skills/dispatch-ticket .claude/skills/dispatch-ticket $ npx degit thientranhung/astragentic/harness/.agents/skills/github-issue-tracker .claude/skills/github-issue-tracker $ npx degit thientranhung/astragentic/harness/.agents/skills/jira-issue-tracker .claude/skills/jira-issue-tracker $ npx degit thientranhung/astragentic/harness/.agents/skills/legacy-testing .claude/skills/legacy-testing $ npx degit thientranhung/astragentic/harness/.agents/skills/linear-issue-tracker .claude/skills/linear-issue-tracker $ npx degit thientranhung/astragentic/harness/.agents/skills/reconcile-tracker .claude/skills/reconcile-tracker $ npx degit thientranhung/astragentic/harness/.agents/skills/review-with-rin .claude/skills/review-with-rin $ npx degit thientranhung/astragentic/harness/.agents/skills/untangle .claude/skills/untangle
$ curl -fsSL --create-dirs -o .claude/agents/builder.md https://raw.githubusercontent.com/thientranhung/astragentic/main/harness/.claude/agents/builder.md $ curl -fsSL --create-dirs -o .claude/agents/qa.md https://raw.githubusercontent.com/thientranhung/astragentic/main/harness/.claude/agents/qa.md $ curl -fsSL --create-dirs -o .claude/agents/rin.md https://raw.githubusercontent.com/thientranhung/astragentic/main/harness/.claude/agents/rin.md $ curl -fsSL --create-dirs -o .claude/agents/shaper.md https://raw.githubusercontent.com/thientranhung/astragentic/main/harness/.claude/agents/shaper.md $ curl -fsSL --create-dirs -o .claude/agents/thomas.md https://raw.githubusercontent.com/thientranhung/astragentic/main/harness/.claude/agents/thomas.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": "Bash",
"hooks": [
{
"type": "command",
"command": "d=\"${CLAUDE_PROJECT_DIR:-$PWD}\"; s=\"$d/scripts/hook-git-guard.py\"; [ -f \"$s\" ] || s=\"$d/harness/scripts/hook-git-guard.py\"; if [ -f \"$s\" ]; then exec python3 \"$s\"; else cat >/dev/null; echo \"hook-git-guard: NOT FOUND under $d — the git guar"
}
]
}
]
}
} Skills (18)
batch-triagebmad-partybmad-uxbootstrap-glossarycodex-armcodex-claude-armdispatch-qa-walkdispatch-ticket-claudedispatch-ticket-codexdispatch-ticket-opencodedispatch-ticketgithub-issue-trackerjira-issue-trackerlegacy-testinglinear-issue-trackerreconcile-trackerreview-with-rinuntangle
Subagents (5)
| builder | Builds one ticket in its own worktree as the sole writer there. Drives implement, then code-review's two axes over the increment, then the simplify pass. |
| qa | Product-quality walker. Exercises the RUNNING product as a user — interface, journeys, API contracts and data as experienced — instead of reading the diff. Read-only by default; mutations require expl |
| rin | Milestone reviewer. Runs as a gate pane in a detached worktree at the reviewed SHA, writes one report file, and returns a second opinion plus verification that the process left its traces. |
| shaper | Shaping session. Drives grill-with-docs to to-spec to to-tickets in one unbroken context, deciding seams while the whole picture is in view. |
| thomas | Router. Resident session: owns the tracker, the frontier query, the claim protocol, dispatch and merge. Drives triage, wayfinder, to-questionnaire, ask-matt, and the three brownfield bootstrap phases. |
Hooks (5)
| event | matcher | runs |
|---|---|---|
| PreToolUse | Bash | d="${CLAUDE_PROJECT_DIR:-$PWD}"; s="$d/scripts/hook-git-guard.py"; [ -f "$s" ] || s="$d/harness/scripts/hook-git-guard.py"; if [ -f "$s" ]; then exec python3 "$s"; else cat >/dev/null; echo "hook-git-guard: NOT FOUND under $d — the git guar |
| WorktreeRemove | * | d="${CLAUDE_PROJECT_DIR:-$PWD}"; s="$d/scripts/release-worktree-resources.sh"; [ -f "$s" ] || s="$d/harness/scripts/release-worktree-resources.sh"; echo "HOOK: WorktreeRemove — path=${WORKTREE_PATH:-unset} at $(date -u +%FT%TZ)" >> /tmp/har |
| SessionStart | compact | d="${CLAUDE_PROJECT_DIR:-$PWD}"; s="$d/scripts/hook-contract-reload.py"; [ -f "$s" ] || s="$d/harness/scripts/hook-contract-reload.py"; if [ -f "$s" ]; then exec python3 "$s"; else cat >/dev/null; echo "hook-contract-reload: NOT FOUND under |
| SessionStart | * | d="${CLAUDE_PROJECT_DIR:-$PWD}"; s="$d/scripts/hook-tracker-status.py"; [ -f "$s" ] || s="$d/harness/scripts/hook-tracker-status.py"; if [ -f "$s" ]; then exec python3 "$s"; else cat >/dev/null; echo "hook-tracker-status: NOT FOUND under $d |
| SubagentStop | * | payload=$(cat); agent_type=$(echo "$payload" | grep -o '"agent_type":"[^"]*"' | head -1 | cut -d'"' -f4); agent_id=$(echo "$payload" | grep -o '"agent_id":"[^"]*"' | head -1 | cut -d'"' -f4); session_id=$(echo "$payload" | grep -o '"session |
Similar rigs
lvergro/claude_code_orquesta
Personal setup for orchestrating agents with Claude Code. An experimental framework to explore persistent memory, roles, and structured workflows.
Fort Knox 503 tok ·
PenguinAlleyApps/paco-framework
—
Orchestrator 2.6k tok ·
matthieurosset/claude-custom-workflow
Multi-agent orchestration workflow template for Claude Code — one lead agent, six specialist subagents, guardrails, hook-driven quality gates, and a self-improving process loop. Battle-tested on a production app, generic and ready to adopt.
Orchestrator 447 tok ·
eugeek/claude-config-tdd
Claude Code config with TDD workflow, plan -> tests -> red -> implementation -> green -> review -> shipment
Orchestrator 5.8k tok ·