Audit and normalize scheduled-task runtime profiles
Follow-up from MC-5006/MC-5015 scheduled-task provider discussion. Goal: make the live scheduled-task configuration match the task-class routing policy without waiting on a bro...
StateDoneNext ActionClosedOwnerLuciRuntimeClosedAge22h ago
Ticket is done; runtime is closed.·profile claude_opus_1m_high
Description
MC-5019
Follow-up from MC-5006/MC-5015 scheduled-task provider discussion.
Goal: make the live scheduled-task configuration match the task-class routing policy without waiting on a broad scheduler default.
Findings to act on:
- Watchdog/health tasks should be deterministic/direct; AI may phrase messages but must not decide alert vs silence/severity.
- Life Manager digest can stay off Claude on GLM/MiniMax/Kimi-class providers.
- Life Manager scan/triage should not be blindly locked to GLM long-term; MiniMax-M3 scored best on triage in MC-5006, but do a safe shadow/A-B comparison before production switch.
- Memory extractor can keep current agy/direct path operationally, but official agy routing waits for MC-5015.
- Several pure-Python watchdog/health tasks are labelled `direct_anthropic_sdk` even their task docs say no Claude/LLM; audit whether this is just a lint sentinel or misleading cost/routing metadata, then normalize if safe.
Scope:
1. Audit enabled `~/workspace/tasks/*.md` profiles against actual commands/scripts.
2. For pure deterministic scripts, set accurate `runtime_profile` such as `direct_python`, `direct_shell`, or `direct_no_llm` if scheduler semantics allow.
3. Do not change F1 prediction/provider-sensitive tasks during the active F1 safety window unless the change is metadata-only and verified not to affect execution.
4. Design/enable a non-mutating Life Manager scan shadow eval comparing current GLM vs MiniMax-M3 on recent fixtures or safe captured samples; do not create duplicate live tickets/alerts.
5. Leave ops/watchdog alert decisions deterministic; if any LLM summarizer is found gating alerts, replace with deterministic severity logic or open a separate fix ticket.
6. Record exact resolved model names where any scheduled task invokes a provider-switched Claude CLI.
Acceptance:
- Report lists each changed task and why.
- Focused scheduler/task lint or dry-run passes.
- No live production routing changes to Codex/agy until MC-5015 is complete.
- No duplicate Life Manager alerts/tickets are generated by the shadow eval.
Activity
done
INTERACTIVE
Luci is working...
Details —
Done
· High
· Luci
▼
SState
Done
Closed
PPeople
TTiming / Details▼
telegram (human)
Mission Control
22h ago
19h ago
Advanced / Operator evidence
RRouting owner
ROperator console
Ticket is done; runtime is closed.MC is visibility-only. Hermes Luci launches and gates work outside MC, then mirrors evidence/status here.
WWorkflow
Start Dev Review + QA ▾
Select phases to include:
Agents
Review Gates
Decision
WAT routing: choose an agent, review gate, or decision. Buttons use the live runtime when one is attached.
Created from Telegram follow-up: Elmar asked whether scheduled tasks need updates after MC-5006 provider results. This is the implementation/audit ticket; MC-5015 remains the Codex/agy benchmark ticket.
luci21h ago
Elmar direction update: optimize scheduled tasks to save Claude/Codex premium usage. Concrete routing policy from corrected MC-5015: use MiniMax-M3 where it passed and cheaper/provider-switched Claude can execute the task; reserve Codex/Claude for quality-sensitive second pass or high-stakes review only. Candidate changes to verify/implement: (1) life-manager-scan runtime_profile claude_glm -> claude_minimax, with shadow/rollback evidence; (2) life-manager-digest can move claude_glm -> claude_minimax if cost/reliability is better, but not mandatory; (3) life-manager-task-cleanup and legalmind-support-intake appear script/direct, not LLM-gated, so normalize to direct_python/direct_mixed if verified rather than MiniMax; (4) keep ops/watchdog deterministic/direct; do not route alert severity/silence to any LLM. Do not change F1/prediction/wiki premium jobs without separate task-class evidence.
api20h ago
Post-MC-5025 orchestration recovery check:
- mc-internal DB integrity remains OK.
- Gateway/dispatcher can spawn workers against the repaired DB.
- Closed stale/superseded MC-5020 internal card t_05eb9565 with no_code_rationale because MC-5020 was already landed.
- Old MC-5019 card t_164b2ade had completed only a read-only audit and was held by the one-hour recent-success respawn guard, so I blocked it as superseded.
- Created and started continuation card t_06f02592 for the actual MC-5019 implementation. It is running under codexbuilder with pid 3011459 / run_id 342 in workspace /home/lucienne/workspace/_mc_internal_worktrees/MC-5019-scheduled-runtime-profiles.
Net: orchestration is working; only MC-5019 needed explicit continuation to avoid waiting on the respawn guard.
codexbuilder19h ago
MC-5019 gate review blocked landing. Evidence: origin/kb/MC-5019-scheduled-runtime-profiles resolves to 1b92489b5da9c153e725a05426f98d7fac3fc6f2; origin/master is 1e24dd31cc2575c113871dfc51ad0ed0075069e9; claimed SHA is not an ancestor of origin/master. Required validations pass on the branch: git diff --check; python3 scripts/audit_task_runtime_profiles.py --lint (Runtime-profile lint OK); focused scheduler pytest: 3 passed, 31 deselected, 18 subtests.
Blocker: tasks/padel-daily-check.md changes runtime_profile from claude_glm to direct_python with a no-LLM rationale, but /home/lucienne/workspace/projects/padel-tournament/daily_check.py imports google.genai, requires GEMINI_API_KEY, and calls client.models.generate_content(...). Also the branch changes graphify-out/GRAPH_REPORT.md from 37,259 lines/2.06MB to 744 lines/45KB, which appears unrelated/noisy. I did not land or update live checkout; MC-5019 should not close until padel classification is corrected and graph report noise is dropped or justified.
codexbuilder19h ago
MC-5019 landing evidence: landed c6b1e25930e9d675a5c0b26520d258d4845d7f40 to origin/master and updated origin/kb/MC-5019-scheduled-runtime-profiles. Ancestor proof: 1b92489b5da9c153e725a05426f98d7fac3fc6f2 and c6b1e259 both pass git merge-base --is-ancestor against origin/master. Validation: git diff --check origin/master...HEAD passed; python3 scripts/audit_task_runtime_profiles.py --lint => Runtime-profile lint OK; focused pytest tests/test_scheduler_regressions.py -k runtime_profile-or-deterministic-or-quality_sensitive-or-no_llm -q => 6 passed, 29 deselected, 41 subtests passed. Full tests/test_scheduler_regressions.py still has the known unrelated control-room-pickup expectation failure (1 failed, 34 passed). Live /home/lucienne/workspace fast-forwarded to c6b1e259 with unrelated dashboard/state dirt preserved and no overlap. Graphify update was attempted but local graphify CLI is broken (ModuleNotFoundError: No module named graphify; uvx has no graphify package). MC-5019 can be closed from git/live evidence.
luci-board-manager22h ago
[visibility-only board-manager] Routed this Luci-owned scheduled-task runtime-profile audit outside MC via internal Kanban card t_164b2ade. Isolated workspace: /home/lucienne/workspace/_mc_internal_worktrees/MC-5019-scheduled-runtime-profiles. Card status=ready, run_id=None, pid=None, cwd=None. If queued, it is waiting behind the current codexbuilder lane; no duplicate MC runtime/pickup/send/harvest endpoint was used.
luci-board-manager22h ago
[visibility-only board-manager] Verification update: internal Kanban card t_164b2ade is now running (run_id=332, pid=2920635, cwd=/home/lucienne/workspace/_mc_internal_worktrees/MC-5019-scheduled-runtime-profiles). MC-5019 now points at the active external worker; no MC runtime/pickup/send/harvest endpoint was used.
luci-board-manager20h ago
[visibility-only board-manager] Repaired internal Kanban routing for MC-5019: parent card t_164b2ade had a zero-commit/read-only false stop and was blocked as consumed; continuation card t_06f02592 is now running in the same isolated worktree. Verified worker pid=3011459 cwd=/home/lucienne/workspace/_mc_internal_worktrees/MC-5019-scheduled-runtime-profiles. MC remains visibility-only; no MC runtime/pickup/send/harvest endpoint was used.
luci-board-manager20h ago
[visibility-only board-manager] Kanban watchdog triage for MC-5019: internal card t_06f02592 is now blocked after another read-only/no-implementation handoff despite implementation acceptance criteria. Per the controller circuit-breaker I did not re-dispatch the same root cause again in this tick. MC-5019 is mirrored as kanban_blocked:t_06f02592; next controller action is to choose a different bounded implementation lane or split a deterministic patch card, then gate commit/test evidence before closing. No MC runtime/pickup/send/harvest endpoint was used.
luci-board-manager20h ago
[visibility-only board-manager] Consumed blocked Kanban parent t_06f02592 after discovering a later real DONE handoff. Controller verified commit 1b92489b exists on origin/kb/MC-5019-scheduled-runtime-profiles but is not yet on origin/master, so MC-5019 is now routed to child card t_35b126f6 for independent review, safe landing, push/ancestor proof, and live/effective scheduler verification. Verified child is running under codexbuilder pid=3029609 cwd=/home/lucienne/workspace/_mc_internal_worktrees/MC-5019-scheduled-runtime-profiles. No MC runtime/pickup/send/harvest endpoint was used.
luci-board-manager19h ago
[visibility-only] Controller requeued internal Kanban card t_35b126f6 after review blocker (padel-daily-check runtime classification + graphify noise). Verified replacement worker running as codexbuilder pid 3048600 in isolated cwd /home/lucienne/workspace/_mc_internal_worktrees/MC-5019-scheduled-runtime-profiles. MC remains waiting on kanban_active:t_35b126f6; no MC runtime/pickup used.
luci-board-manager19h ago
[visibility-only gate] Closed MC-5019 from controller-verified evidence. origin/master is c6b1e25930e9d675a5c0b26520d258d4845d7f40 and contains the scheduled-task runtime-profile normalization; c6b1e259 is an ancestor of origin/master, live /home/lucienne/workspace HEAD matches c6b1e259, and worker comment 24631 recorded lint/focused scheduler regression evidence. No MC runtime/pickup/send/harvest endpoint was used.