PASS with CAUTION. Proceed, but phase it and do not remove unique coverage until references/monitors are updated.
needs-input-pickup is still referenced as core by luci_operator.py, scheduler_watchdog.py, and Hermes external watchdog. Disable only after those references are updated or made disabled-aware.triage-untriaged has unique Gemini/deterministic assignment behavior. Slow first; fold later only after porting behavior.persistent-luci-branch-guard can merge into persistent-luci-watchdog, but must preserve default-branch detection and transition-only alerts.cron-watchdog has unique direct Telegram overdue alerts for non-core scheduled tasks. Demote before retirement unless hourly MC tickets are enough.orchestrator-board-sweep has unique blocker-release and recovered-watchdog-ticket auto-close behavior. Do not retire until ported to luci-operator.reap-zombie-workers is independent cleanup when pickup is stuck; reduce before retiring.luci-operator-tuner is safe to reduce to weekly/anomaly-triggered.mc-orchestrator-inbox-cleanup is safe to retire/demote if stale pending low scheduler rows remain zero.triage-untriaged to every 5 minutes.luci-operator-tuner weekly or anomaly-triggered, Luci-owned unless genuinely human policy/product review is needed.reap-zombie-workers to hourly.mc-orchestrator-inbox-cleanup after confirming stale pending low scheduler rows are still zero.needs-input-pickup only after updating references in operator/watchdogs.Leave for phase 2:
cron-watchdog retirement/demotion.orchestrator-board-sweep fold.persistent-luci-branch-guard merge.Watch for 24–48h after each phase:
ticket-pickup freshness and warning count.todo/needs_input backlog.orchestrator_inbox pending/delivered growth.in_review/waiting tickets.Rollback by restoring old task schedule/enabled state if backlogs, missed alerts, stale tickets, or orphaned tmux sessions grow.