Window: last 24h (extended 72h for recurrence). Runs: 49. Total actions: 392. Avg actions/run: 6.96.
49 run_start
49 disk_worktree_snapshot
49 blocked_lane_classification_summary
49 done_audit_summary
49 run_complete
31 memory_snapshot
21 create_operator_ticket
20 repo_dirty_observed
11 operator_dev_loop_finished
9 operator_dev_loop_throttled
8 recent_task_failure
6 promote_dead_zone_ticket
6 reopen_weak_done_ticket
5 needs_input_runtime_failure_reset
5 repo_dirty_all_known_generated
4 active_lane_snapshot
3 todo_backlog_observed
3 stale_runtime_observed
3 stale_runtime_marked
3 terminal_ticket_runtime_closed
2 stale_runtime_summary
2 blocked_lane_completed_marked_done
1 pickup_direct_run
1 worktree_reaper_ran
1 in_review_stale_failure_state_cleared
1 chrome_memory_pressure_remediated
1 operator_ticket_exists
_should_retry_misrouted_needs_input unconditionally returns True, making the failure-signal regex dead code.return True (line ~587); crash/failure regex at lines ~578–585.todo," but the code resets every needs_input ticket (without an unanswered QUESTION) to todo, whether or not a failure signal is present. The 5 needs_input_runtime_failure_reset actions in the window may include tickets that were legitimately paused without a QUESTION marker.return True → return False. This activates the existing crash/failure regex as the actual gate, matching the stated intent.Expected effect: fewer needs_input_runtime_failure_reset actions; only tickets with detectable failure/crash signals get reset.
todo_backlog_observed unconditionally sets severity="warning" and triggers the dev-loop critical bypass, even for trivial backlogs.
audit_ticket_flow recording (line ~380) and maybe_launch_operator_dev_loop critical check (line ~451).todo_backlog_observed with severity="warning"; the dev-loop launcher then treats this as a critical trigger, bypassing the 2-hour throttle. A backlog of 1 ticket that is 2 minutes old would force a dev-loop launch.severity="warning" when the threshold (TODO_BACKLOG_COUNT_TRIGGER / TODO_BACKLOG_MINUTES_TRIGGER) is actually exceeded, or (b) remove todo_backlog_observed from the dev-loop trigger_actions set and rely on the existing explicit _run_pickup_once() + _ensure_operator_ticket() that already fires at those thresholds.Expected effect: dev-loop throttle ratio drops; fewer throttled launches driven by normal board activity.
STRONG_EVIDENCE_PATTERNS includes overly generic words that mask genuinely weak completions.
(fixed|resolved|implemented|updated|created|delivered|sent) and (screenshot|artifact|report|document|dashboard|log)).updated, created, log, report, document appear in routine operational text (e.g. "updated the ticket description", "see the log"). Any match across 12 comments + title + description causes the ticket to pass the evidence check and never be considered for reopen. The 6 weak-done reopens may be an undercount because these broad patterns shield other weak completions.(screenshot|artifact|report|document|dashboard|log) pattern with a compound that requires an accompanying delivery verb, e.g. \b(produced|generated|wrote|attached)\s+(screenshot|artifact|report|document|dashboard)\b. For the verb pattern, demote updated and created to only count when paired with an artifact noun. Keep the higher-precision patterns (DONE:, verified, tests pass, ::git-commit) unchanged.Expected effect: slightly more reopen candidates in done_audit_summary; fewer false negatives where a weakly-completed ops ticket is shielded by a stray "updated" or "log" mention.
_GIT_KNOWN_GENERATED_PREFIXES too narrow — collapses the three btc-swing-trader subdirectory prefixes into one directory-level prefix.
_GIT_KNOWN_GENERATED_PREFIXES tuple (line ~108).dirty-repo:workspace recurs 29× in 72h, with 5 repo_dirty_all_known_generated noise events. New generated files in subdirectories not yet listed (e.g. projects/btc-swing-trader/trades/) bypass the filter, create a ticket, then get committed by the task cycle, then resolve — a flap loop.projects/btc-swing-trader/{charts,analysis,council_verdicts}/ entries with a single "projects/btc-swing-trader/" prefix. The entire project directory is task-generated; individual subdirectory enumeration is fragile.repo_dirty_observed count drops; repo_dirty_all_known_generated captures more noise; fewer dirty-repo:workspace operator-ticket recurrences.Skipped signals (too thin): Dev-loop throttle ratio 0.45 is healthy — the throttle is working as designed. Stale-runtime marks (54) are the operator doing its cleanup job; no threshold change warranted without session-creation data. Active-lane-backlog recurrences (6) align with a normally busy board.