Skip to content

fix: credit operator-decided items in report tally + footer (#5) - #7

Merged
windaddict merged 1 commit into
mainfrom
fix/report-operator-decided-credit
Aug 9, 2026
Merged

fix: credit operator-decided items in report tally + footer (#5)#7
windaddict merged 1 commit into
mainfrom
fix/report-operator-decided-credit

Conversation

@windaddict

Copy link
Copy Markdown
Owner

Closes #5.

impasse_report.py show printed "Nothing needed you — the models settled all N between themselves" even for runs where the operator personally decided a finding, because the tally and footer keyed off state == "deadlocked" rather than the presence of an escalation object — exactly what SKILL.md's "operator rulings count as escalations regardless of channel" rule warns against.

Fix (render() only)

Credit operator-decided items (state resolved carrying an escalation object) separately:

  • Tally: a 🧑‍⚖️ N decided by you segment; the ⚖️ … escalated to you deadlock count is preserved unchanged.
  • Footer: an operator-decided-only run reports the models settled the rest and you decided N; the mixed case (a pending deadlock and an operator-decided item) credits both instead of implying the ruling was model-settled; the genuinely-autonomous case is unchanged.

The issue's "not in scope" behaviors (_open_escalations, running stats) are untouched.

Tests

  • report: operator-decided (resolved + escalation) item is credited, not counted as autonomous
  • report: genuinely-autonomous run still says 'Nothing needed you' (regression guard)
  • report: a deadlock still takes footer precedence over an operator-decided item (asserts the mixed footer credits "you decided N")

The mixed-case footer fix was surfaced by a cross-provider Impasse review of the branch. Three gates green.

🤖 Generated with Claude Code

`impasse_report.py show` reported "Nothing needed you — the models settled
all N between themselves" even for runs where the operator personally
decided a finding, because the tally and footer keyed off state ==
"deadlocked" rather than the presence of an escalation object. That
violates SKILL.md's rule that operator rulings count as escalations
regardless of channel.

render() now credits operator-decided items (state "resolved" carrying an
"escalation" object) separately:
- tally: a "🧑‍⚖️ N decided by you" segment (the "escalated to you" deadlock
  count is preserved unchanged);
- footer: an operator-decided-only run says the models settled the rest and
  you decided N (not "nothing needed you"); the mixed case (a pending
  deadlock AND an operator-decided item) credits both instead of implying
  the operator's ruling was model-settled; the genuinely-autonomous case is
  unchanged.

The "not in scope" behaviors from the issue (_open_escalations, running
stats) are untouched.

Closes #5.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X8XaW2bqgYnp7oRVgfHXid
@windaddict
windaddict merged commit 0138543 into main Aug 9, 2026
2 checks passed
@windaddict
windaddict deleted the fix/report-operator-decided-credit branch August 9, 2026 18:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

report: show renders "Nothing needed you" for runs the operator actually decided

1 participant