Claude-skill-registry Coordinator Helper
Manage coordinator daemon tasks, approve/reject work, monitor autonomous agents. Use when user asks to delegate tasks, check task status, review agent work, manage the coordinator, or use GitHub-driven approval workflow.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/coordinator-helper" ~/.claude/skills/majiayu000-claude-skill-registry-coordinator-helper && rm -rf "$T"
skills/data/coordinator-helper/SKILL.mdCoordinator Helper
Manage the coordinator daemon for autonomous task delegation, approval workflows, and monitoring agent work.
Quick Start
Most common usage:
# User says: "Delegate this bug fix to an agent" # This skill will: # 1. Check if coordinator daemon is running # 2. Send the task via ailang messages # 3. Monitor the task status # 4. Guide you through approval when complete # User says: "What tasks are pending?" # This skill will: # 1. Run ailang coordinator list --pending # 2. Show interactive task explorer # 3. Let you review diffs, logs, and approve/reject
When to Use This Skill
Invoke this skill when:
- User asks to "delegate a task" or "send to coordinator"
- User wants to "check task status" or "see what's running"
- User asks to "review agent work" or "approve/reject tasks"
- User says "start the coordinator" or "stop the daemon"
- User wants to "clean up worktrees" or manage coordinator state
Available Scripts
scripts/check_daemon.sh
scripts/check_daemon.shCheck if the coordinator daemon is running and show status.
scripts/delegate_task.sh <type> <title> <description>
scripts/delegate_task.sh <type> <title> <description>Send a task to the coordinator for autonomous execution.
scripts/quick_status.sh
scripts/quick_status.shShow a quick summary of pending, running, and completed tasks.
Core Commands
Starting/Stopping the Daemon
# Start coordinator + server (recommended) make services-start # Or just coordinator ailang coordinator start # Check status ailang coordinator status # Stop all make services-stop
Delegating Tasks
# Send a task ailang messages send coordinator "Fix the null pointer bug in parser.go" \ --title "Bug: Parser NPE" --from "claude-code" --type bug
Monitoring & Approving
# Interactive task list ailang coordinator list # Filter by status ailang coordinator list --pending ailang coordinator list --running # Approve from list: select task, press [a] # Or directly: ailang coordinator approve <task-id>
Task Lifecycle
pending → queued → running → pending_approval → completed ↘ failed ↘ rejected → [feedback] → pending (iteration 2) → running → ...
Feedback Loop (v0.6.4+): When rejecting, the task can be re-triggered with feedback up to 3 iterations. Claude uses
--resume to continue with full conversation context.
Unified Approvals (v0.6.5+)
When an agent has
trigger_on_complete configured with auto_approve_handoffs: false, approvals are combined:
| Approval Type | Description | On Approve |
|---|---|---|
| Simple merge only | Merges code to dev branch |
| Combined merge + handoff | Merges code AND triggers next agent |
CLI display shows:
⏳ [1] [merge+handoff] → sprint-planner task-12345678 Title: Agent completed work on: Fix parser bug
What happens on approve:
- Code is merged to dev branch
- Handoff message is sent to next agent's inbox with
for continuitysession_id - Worktree is cleaned up
What happens on reject:
- Worktree is preserved
- Feedback is sent to same agent's inbox
- Agent resumes with
(same context, same worktree)--resume <sessionId> - Iteration counter increments (max 3 attempts)
GitHub-Driven Workflow (v0.6.2+)
For tasks linked to GitHub issues, the coordinator supports a fully GitHub-native approval workflow.
How It Works
GitHub Issue ↓ (import) DESIGN STAGE → posts design doc to GitHub → needs-design-approval label ↓ (human adds: design-approved) SPRINT STAGE → posts sprint plan to GitHub → needs-sprint-approval label ↓ (human adds: sprint-approved) IMPLEMENTATION → posts file changes → needs-merge-approval label ↓ (human adds: merge-approved) Changes merged, issue auto-closed
GitHub Labels Reference
| You Add This Label | What Happens |
|---|---|
| Advances to sprint planning |
| Advances to implementation |
| Merges changes, closes issue |
| Pauses pipeline for changes |
Quick Commands for GitHub Workflow
# Import GitHub issues as tasks ailang messages import-github # Check which issues are being watched tail -100 ~/.ailang/logs/coordinator.log | grep -i "watching issue" # Fallback: approve locally if labels aren't detected ailang coordinator approve <task-id> # Check pending approvals ailang coordinator pending
Why Use GitHub Workflow?
- Review in GitHub UI - See design docs and diffs alongside issue discussion
- Mobile-friendly - Approve from GitHub mobile app
- Team collaboration - Multiple reviewers can discuss in comments
- Audit trail - All approvals tracked in issue history
Workflow
1. Delegate a Task
- Describe clearly - Be specific about what needs to be done
- Choose type - bug, feature, docs, research, refactor, test
- Send message -
ailang messages send coordinator "..." --type bug
2. Review Completed Work
- Open explorer -
ailang coordinator list - Select task - Enter task number
- Review:
View chat history (turn-by-turn conversation with tool calls)[c]
View diff[d]
Browse files[f]
View logs[l]
- Decide:
Approve - merge changes to dev branch[a]
Reject - prompt for feedback, re-trigger task with context[r]
3. Task Routing
| Type | Executor | Use Case |
|---|---|---|
| bug-fix | Claude Code | Code fixes |
| feature | Claude Code | New functionality |
| docs | Gemini | Documentation |
| research | Gemini | Investigation |
| script | Shell | Deterministic workflows (v0.6.4+) |
4. Script Agents (v0.6.4+)
For deterministic tasks that don't need AI inference:
# In ~/.ailang/config.yaml coordinator: agents: - id: echo-demo inbox: echo-demo invoke: type: script command: "./scripts/coordinator/echo_payload.sh" env_from_payload: true timeout: "1m" output_markers: - "ECHO_COMPLETE:"
Test the demo:
ailang messages send echo-demo '{"model": "gpt5", "benchmark": "fizzbuzz"}' \ --title "Echo test" --from "user"
What happens:
- JSON
→ env var{"model": "gpt5"}MODEL=gpt5 - Nested JSON
→ env var{"db": {"host": "x"}}DB_HOST=x - Auto-injected:
,AILANG_TASK_ID
,AILANG_MESSAGE_IDAILANG_WORKSPACE - Cost: $0.00 (no AI inference)
Auditing Agent Work
After a task completes, audit what the agent actually did before approving:
# View conversation per turn (shows agent reasoning + tool calls) ailang coordinator logs <task-id> --limit 1000 --json | python3 -c " import json, sys data = json.load(sys.stdin) events = data.get('events', []) turns = {}; tools = {} for evt in events: tn = evt.get('turn_num', 0); st = evt.get('stream_type', '') if st == 'text': turns.setdefault(tn, []).append(evt.get('text', '')) elif st == 'tool_use': tools.setdefault(tn, []).append(evt.get('tool_name', '?')) for tn in sorted(turns.keys()): text = ''.join(turns[tn]).strip() if len(text) > 20: print(f'=== Turn {tn} (tools: {\", \".join(tools.get(tn, []))}) ===') print(text[:600]); print() " # View tool timeline with spans ailang dashboard spans --task-id <task-id> --limit 200 # View git changes ailang coordinator diff <task-id>
Audit checklist:
- Did the agent modify
code or just create examples/docs?internal/ - What model was used? (Check
in spans - Haiku may be too weak)executor.model - Did it run
(runtime test) or justailang run
(compile test)?ailang check - Did it mark tasks as "already working" without verifying the specific bug scenario?
Per-agent model config (v0.8.0+): Set
model: opus in agent config for complex coding tasks:
agents: - id: sprint-executor model: opus
Troubleshooting
Daemon won't start: Check
ailang coordinator status, then make services-stop && make services-start
Task stuck: View logs with
[l] in task explorer
Worktree limit:
git worktree list then git worktree remove <path> --force
GitHub labels not detected: The ApprovalWatcher may not be detecting labels. Use CLI fallback:
ailang coordinator pending # List tasks waiting for approval ailang coordinator approve <task-id> # Approve locally (syncs label to GitHub)
No logs from ApprovalWatcher: Check coordinator logs for "GitHub approval watcher started". If missing, verify
~/.ailang/config.yaml has github_sync.enabled: true.
Resources
See resources/reference.md for complete CLI reference and advanced options.
Notes
- Coordinator uses isolated git worktrees per task
- Worktrees auto-cleanup after approval
- Events stream to dashboard at http://localhost:1957
- State stored in
~/.ailang/state/coordinator.db