fix: Remove escalation — planner routes through vault instead (#721)
Remove ESCALATED signal and escalation handling from planner, supervisor, and gardener. When blocked on external resources or human decisions, these agents now file vault procurement items (vault/pending/*.md) instead of escalating directly to the human. Changes: - Planner formula: ESCALATED signal replaced with HUMAN_BLOCKED; files vault items and marks prerequisites as blocked-on-vault - Supervisor formula/prompt: escalation sections replaced with vault item filing; preflight now reports pending vault items instead of escalation replies - Gardener formula: ESCALATE action replaced with VAULT action; files vault/pending/*.md for human decisions - Groom-backlog formula: same ESCALATE→VAULT replacement - Gardener shell: PHASE:escalate replaced with PHASE:failed for merge blocks and CI exhaustion; escalation reply consumption removed - Supervisor shell: escalation reply consumption removed from both supervisor-run.sh and legacy supervisor-poll.sh - Prerequisite tree: #466 updated from "escalated" to "blocked-on-vault" The vault is the factory's only interface to the human for resources and approvals. Dev/action agents retain PHASE:escalate for operational session issues (CI timeouts, merge blocks) which are a different mechanism. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
850a8d743f
commit
f2064ba67c
11 changed files with 117 additions and 113 deletions
|
|
@ -123,8 +123,9 @@ Update the tree:
|
|||
Bounce/stuck detection — for issues in the tree, fetch recent comments:
|
||||
curl -sf -H "Authorization: token $FORGE_TOKEN" \
|
||||
"$FORGE_API/issues/<number>/comments?limit=10"
|
||||
Signals: BOUNCED (too_large, underspecified), ESCALATED (needs human decision),
|
||||
Signals: BOUNCED (too_large, underspecified),
|
||||
LABEL_CHURN (3+ relabels between backlog/underspecified).
|
||||
If an issue needs a human decision or external resource, it is HUMAN_BLOCKED.
|
||||
Track as stuck_issues[] for constraint filing below.
|
||||
|
||||
Hold the updated tree in memory — written to disk in journal-and-commit.
|
||||
|
|
@ -148,7 +149,17 @@ Graph bottlenecks (high betweenness centrality) and thin objectives inform ranki
|
|||
Stuck issue handling:
|
||||
- BOUNCED/LABEL_CHURN: do NOT re-promote. Dispatch groom-backlog formula instead:
|
||||
tea_file_issue "chore: break down #<N> — bounced <count>x" "<body>" "action"
|
||||
- ESCALATED: skip, mark in tree as "escalated — awaiting human decision"
|
||||
- HUMAN_BLOCKED (needs human decision or external resource): file a vault
|
||||
procurement item instead of skipping. Write vault/pending/<resource-id>.md:
|
||||
# <What is needed>
|
||||
## What
|
||||
<description of the resource or decision needed>
|
||||
## Why
|
||||
<which objective/issue this unblocks>
|
||||
## Unblocks
|
||||
- #<issue> — <title>
|
||||
Then mark the prerequisite in the tree as "blocked-on-vault (vault/pending/<id>.md)".
|
||||
Do NOT skip or mark as "awaiting human decision" — the vault owns the human interface.
|
||||
|
||||
Filing gate (for non-stuck constraints):
|
||||
1. Check if issue already exists (match by #number in tree or title search)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue