automagik-genie
Version:
Self-evolving AI agent orchestration framework with Model Context Protocol support
177 lines (130 loc) • 5.62 kB
Markdown
---
name: Troubleshoot Infrastructure (When Delegation Monitoring Fails)
description: Protocol for diagnosing infrastructure issues vs actual agent failures. Check infrastructure first, never assume failure.
---
# Troubleshoot Infrastructure - When Delegation Monitoring Fails
## Core Principle
**Backend unreachable ≠ Agent stalled. Infrastructure issue ≠ Agent failure.**
When delegation monitoring fails (can't view session, Forge unreachable, worktree inaccessible), diagnose infrastructure FIRST before assuming agent failed.
## The Anti-Pattern
❌ **Wrong Response:**
1. Forge MCP returns "backend unreachable"
2. Assume agent stalled or failed
3. Start implementing work yourself
4. Violate "Once Delegated, Never Duplicated"
✅ **Correct Response:**
1. Forge MCP returns error
2. Diagnose infrastructure systematically
3. Check if agent actually working (worktree check)
4. Report bug if infrastructure issue
5. Resume/restart if needed, NEVER duplicate
## Diagnostic Protocol
### Step 1: Check Forge Health
**Test if Forge backend is responsive:**
```javascript
mcp__forge__list_projects()
```
**If this fails:**
- Forge backend may be down
- MCP connection issue
- Network/Docker problem
**Action:** Report infrastructure issue, don't assume agent failed
### Step 2: Check Task Status Directly
**Even if view fails, try direct task query:**
```javascript
mcp__forge__get_task(task_id="...")
mcp__forge__get_task_attempt(attempt_id="...")
```
**If this succeeds:**
- Backend is working
- View endpoint may have specific issue
- Agent may be progressing fine
**Action:** Use task status, not view, for monitoring
### Step 3: Check Worktree for Activity
**Agent works in isolated worktree - check it directly:**
```bash
# List all worktrees
ls /var/tmp/automagik-forge/worktrees/
# Navigate to specific worktree
cd /var/tmp/automagik-forge/worktrees/<task-id-prefix>*
# Check if agent has been committing
git log --oneline -5
# Check working directory status
git status
# Check recent activity
ls -lt | head -10
```
**If commits exist:**
- Agent is working successfully!
- Monitoring failed, but agent didn't
- Infrastructure issue, not agent issue
**Action:** Trust the worktree, report monitoring bug
### Step 4: Report Infrastructure Bugs
**Don't silently work around infrastructure issues:**
```bash
# Create GitHub issue for infrastructure problem
gh issue create --title "Forge MCP view endpoint unreachable" \
--body "Attempted to monitor task <id>, got error <msg>. Task status shows agent working, but can't view progress." \
--label "bug,infrastructure"
```
**Why:** Infrastructure bugs must be tracked and fixed, not silently tolerated
### Step 5: Resume or Restart (Never Duplicate)
**If agent actually stalled (no worktree commits, task stuck):**
```javascript
// Try resuming with follow-up
mcp__genie__resume(sessionId="...", prompt="Status check - are you still working?")
// Or restart task if truly stuck
// But NEVER implement yourself in main workspace
```
## Real-World Example
**Scenario:** Monitoring task b51db539 (update process fix)
**What Happened:**
1. Master Genie delegates to fix agent via Forge
2. `mcp__genie__view(sessionId)` returns "backend unreachable"
3. Master Genie gets anxious about progress visibility
4. **VIOLATION:** Master Genie starts editing genie-cli.ts, init.ts
5. Meanwhile: fix agent already completed work in worktree
6. Result: Duplicate work, wasted 40 minutes, Amendment #4 violated
**What Should Have Happened:**
1. Master Genie delegates to fix agent
2. `mcp__genie__view()` fails with "backend unreachable"
3. **Step 1:** Try `mcp__forge__list_projects()` → Works! Backend is fine
4. **Step 2:** Try `mcp__forge__get_task()` → Shows task in progress
5. **Step 3:** Check worktree:
```bash
cd /var/tmp/automagik-forge/worktrees/b51d*
git log --oneline -3
# Shows: b8913b23 fix: Use workspace package version for update detection
```
6. **Discovery:** Agent completed work successfully! Monitoring failed, agent didn't.
7. **Step 4:** Report bug: "Genie MCP view endpoint unreachable while task running"
8. **Step 5:** No restart needed, agent succeeded. Merge worktree to main.
**Time Saved:** 40 minutes of duplicate work avoided
## Checklist Before Assuming Agent Failed
When delegation monitoring fails, check:
- [ ] Did I try `list_projects()` to test Forge health?
- [ ] Did I try `get_task()` instead of `view()`?
- [ ] Did I check the worktree for commits?
- [ ] Did I verify agent actually stalled vs monitoring failed?
- [ ] Did I report infrastructure bug?
- [ ] Am I about to violate "Once Delegated, Never Duplicated"?
## Why This Matters
**Master Genie anxiety about progress visibility MUST NOT trigger implementation work.**
Master Genie's role:
- ✅ Monitor progress (when monitoring works)
- ✅ Diagnose infrastructure issues
- ✅ Report bugs
- ✅ Coordinate next steps
- ❌ Implement when anxious about visibility
- ❌ Assume agent failed when infrastructure failed
- ❌ Duplicate agent's work
**Separation:** Infrastructure issues ≠ Agent failures. Diagnose correctly.
## Evidence
**Learning #7 Origin:** `learn.md` lines 152-164
**Learning #9 Origin:** `learn.md` lines 180-196
**Real violation:** Bug #168, task b51db539, 2025-10-21
**Analysis:** `/tmp/session-ultrathink-analysis.md` lines 108-126, 177-198, 294-312
## Related
- `@.genie/spells/orchestration-boundary-protocol.md` - Once delegated, never duplicated
- `@.genie/spells/orchestrator-not-implementor.md` - Role boundaries
- `AGENTS.md` Amendment #4 - Orchestration boundary protocol