Add chain-stall escalation to Themis orchestrator #53

Open
opened 2026-05-30 11:04:50 +02:00 by product-owner · 1 comment

WIG: WIG-3 (Complete agent orchestration and MCP integration)
Compound-RICE: reach=20 impact=4 confidence=0.95 synergy=2.0 effort=3 maintenance=1 -> score=50.7

Problem

The F1.2 dependency chain (#35->#50->#44->#49->#51) has had zero PR activity for at least 6 consecutive Themis cycles. Themis currently raises an "escalation flag" in its comment but has no formal protocol to force a human decision or decompose the blocking issue. The result is that agents keep iterating the same RICE ranking with no new information, burning cycle budget without progress.

Proposed Solution

  • In the Themis cycle script, after computing RICE rankings, count consecutive cycles where the top-N vital issues have had no PR created or closed (read from Gitea PR API, no new field needed)
  • When count >= 3, auto-create a labelled issue: type/stall-review, body = chain summary + blocking reasons + "human decision required: decompose, deprioritise, or assign directly"
  • Post a comment on the head blocking issue linking the new stall-review issue
  • Label the head issue status/stalled to signal agents to skip pickup
  • Gate: do not create a second stall-review if one is already open for the same chain

Acceptance Criteria (mini-UAT)

  Given the Themis orchestrator is run and the top-3 vital issues have no PR activity in the last 3 cycle records
  When Themis completes its ranking pass
  Then a new issue is created with label `type/stall-review` containing the chain summary, cycle count, and blocking reasons
  And a comment linking to the new issue is posted on the head blocking issue (#35)
  And the head issue receives label `status/stalled`
  And if a `type/stall-review` issue is already open, no duplicate is created
  And Themis cycle output includes "STALL_ESCALATED #NNN" in its summary line

Marketing hint: Turns a silent infinite loop into a human decision point -- agents stop spinning, humans get a clean escalation ticket.

Suggested agent: @adf:themis-orchestrator


Created by @adf:product-owner (Themis) -- Compound-RICE + Essentialism + UAT cycle 2026-05-30

**WIG**: WIG-3 (Complete agent orchestration and MCP integration) **Compound-RICE**: reach=20 impact=4 confidence=0.95 synergy=2.0 effort=3 maintenance=1 -> score=50.7 ## Problem The F1.2 dependency chain (#35->#50->#44->#49->#51) has had zero PR activity for at least 6 consecutive Themis cycles. Themis currently raises an "escalation flag" in its comment but has no formal protocol to force a human decision or decompose the blocking issue. The result is that agents keep iterating the same RICE ranking with no new information, burning cycle budget without progress. ## Proposed Solution - In the Themis cycle script, after computing RICE rankings, count consecutive cycles where the top-N vital issues have had no PR created or closed (read from Gitea PR API, no new field needed) - When count >= 3, auto-create a labelled issue: `type/stall-review`, body = chain summary + blocking reasons + "human decision required: decompose, deprioritise, or assign directly" - Post a comment on the head blocking issue linking the new stall-review issue - Label the head issue `status/stalled` to signal agents to skip pickup - Gate: do not create a second stall-review if one is already open for the same chain ## Acceptance Criteria (mini-UAT) ```gherkin Given the Themis orchestrator is run and the top-3 vital issues have no PR activity in the last 3 cycle records When Themis completes its ranking pass Then a new issue is created with label `type/stall-review` containing the chain summary, cycle count, and blocking reasons And a comment linking to the new issue is posted on the head blocking issue (#35) And the head issue receives label `status/stalled` And if a `type/stall-review` issue is already open, no duplicate is created And Themis cycle output includes "STALL_ESCALATED #NNN" in its summary line ``` **Marketing hint**: Turns a silent infinite loop into a human decision point -- agents stop spinning, humans get a clean escalation ticket. **Suggested agent**: @adf:themis-orchestrator --- *Created by @adf:product-owner (Themis) -- Compound-RICE + Essentialism + UAT cycle 2026-05-30*
Author

Themis cycle 2026-06-01 02:55Z -- #53 protocol manually executed (cycle 8)

This issue (#53) proposed: "when stall count >= 3, auto-create a stall-review issue forcing a human decision." The feature is not yet implemented, so I have executed the protocol manually: see #55 (stall-review).

Why now, and why not another RICE comment: the F1.2 chain (#35->#50->#44->#49->#47/#51) has been the vital few for 8 consecutive cycles. New, decisive evidence this cycle: agent-tasks has had zero PRs, ever -- the backlog has no execution arm. The bottleneck is confirmed to be execution-pickup, not prioritisation, so re-ranking confidence has collapsed (~0.1). Doing the 9th scoring ritual means not forcing the decision; I chose to force it.

This validates #53's own value: a passive escalation flag in a comment changed nothing across 6+ cycles. The protocol needs to (a) create a tracked, labelled artifact and (b) name a concrete decision with an owner above the product-owner mandate. #55 demonstrates the target behaviour for the eventual implementation.

Compound-RICE (unchanged, still critical): #53 = 50.7. Recommend #53 itself be picked up next so this escalation is automated rather than hand-run each cycle.

Refs #55 #54 #35

## Themis cycle 2026-06-01 02:55Z -- #53 protocol manually executed (cycle 8) This issue (#53) proposed: "when stall count >= 3, auto-create a stall-review issue forcing a human decision." The feature is not yet implemented, so I have **executed the protocol manually**: see **#55** (stall-review). **Why now, and why not another RICE comment:** the F1.2 chain (#35->#50->#44->#49->#47/#51) has been the vital few for 8 consecutive cycles. New, decisive evidence this cycle: `agent-tasks` has had **zero PRs, ever** -- the backlog has no execution arm. The bottleneck is confirmed to be **execution-pickup, not prioritisation**, so re-ranking confidence has collapsed (~0.1). Doing the 9th scoring ritual means not forcing the decision; I chose to force it. **This validates #53's own value**: a passive escalation flag in a comment changed nothing across 6+ cycles. The protocol needs to (a) create a tracked, labelled artifact and (b) name a concrete decision with an owner above the product-owner mandate. #55 demonstrates the target behaviour for the eventual implementation. **Compound-RICE (unchanged, still critical)**: #53 = 50.7. Recommend #53 itself be picked up next so this escalation is automated rather than hand-run each cycle. Refs #55 #54 #35
Sign in to join this conversation.