Observed Behavior
Every agent file's escalation section instructs the agent to "stop and ask the human" when it encounters something it cannot resolve. There is no structured mechanism for agent-to-agent escalation. Escalation events:
- Produce no state file record (they are invisible to
teamwork status and teamwork history)
- Are not logged in metrics
- Have no routing table — a coder who discovers a design issue has no defined path to the architect
- Cannot be resumed — if the escalated-to agent resolves the issue, there is no way to return the workflow to its prior step cleanly
Common escalation patterns that should be agent-routed but currently default to human interruption:
- Coder discovers design conflict → should escalate to Architect
- Tester finds a defect → should route back to Coder
- Security Auditor finds a vulnerability → should route remediation to Coder
- Reviewer finds an architectural pattern question → should consult Architect
Why It Matters
Defaulting all escalations to human interruption defeats the purpose of multi-agent coordination. It means every ambiguity, every defect, every design question becomes a context switch for the human. As workflow complexity grows, so does the interruption rate.
Escalations that produce no state record are also invisible — there is no way to know how often they happen, which agents are most frequently escalated to, or whether an escalation loop is forming.
v2 Target
Escalation events should be first-class state transitions. A new teamwork escalate command (or equivalent engine event) should:
- Create a typed escalation record in the workflow state file with: source role, target role, reason, timestamp
- Route the workflow to the target role's step (not forward progression — a lateral or backward move)
- Log the escalation in metrics with its own event type for reporting
- Resume the original step after the target role completes its escalation response
A documented escalation matrix in docs/protocols.md (see also #128) defines valid escalation routes per role, reducing agent-to-agent routing to a lookup rather than a judgment call.
Observed Behavior
Every agent file's escalation section instructs the agent to "stop and ask the human" when it encounters something it cannot resolve. There is no structured mechanism for agent-to-agent escalation. Escalation events:
teamwork statusandteamwork history)Common escalation patterns that should be agent-routed but currently default to human interruption:
Why It Matters
Defaulting all escalations to human interruption defeats the purpose of multi-agent coordination. It means every ambiguity, every defect, every design question becomes a context switch for the human. As workflow complexity grows, so does the interruption rate.
Escalations that produce no state record are also invisible — there is no way to know how often they happen, which agents are most frequently escalated to, or whether an escalation loop is forming.
v2 Target
Escalation events should be first-class state transitions. A new
teamwork escalatecommand (or equivalent engine event) should:A documented escalation matrix in
docs/protocols.md(see also #128) defines valid escalation routes per role, reducing agent-to-agent routing to a lookup rather than a judgment call.