You're offline — showing cached data

MC-4325

Self-improve digest [luci] 2026-W22
2026-06-13 08:54:55 SAST
Home Board MC-4325

Self-improve digest [luci] 2026-W22

Weekly self-improve proposals from luci (2026-W22). Window: last 7 days. Source: ~/.claude/skills/self-improve/ (Steps 2-3). Triage instructions: - Approve by number to apply ...
State Done Next Action Closed Owner Lucienne Runtime Closed Age 16d ago
MC-4325
Ticket is done; runtime is closed. · profile claude_opus_1m_medium

Description

MC-4325
Weekly self-improve proposals from luci (2026-W22). Window: last 7 days. Source: ~/.claude/skills/self-improve/ (Steps 2-3). Triage instructions: - Approve by number to apply (Step 4 of skill). - Skip = discard. - Reply "all" to apply all high-confidence items. --- PROPOSALS --- FINDING: HA automation edit discipline rule was created mid-session but not retroactively followed at scope-clarification step — wholesale revert happened before checking whether scope was lamps-only. EVIDENCE: 2026-05-27 20:49 session: "I only wanted that rule for the dining and lounge lamp, not for all the lights" — Claude had patched Lounge/Kitchen Off automations without first asking which entities were in scope. PROPOSED ACTION: Add concrete trigger phrase to `~/.claude/rules/ha-automation-edit-discipline.md` pre-flight checklist: `- [ ] Asked user "which specific entities (light/switch/scene) does this rule apply to?" when user describes desired behavior in terms of light TYPE (lamp, downlight, CFL) rather than entity_id`. Strengthens scope-identification step. CONFIDENCE: high FINDING: PKA git-sync task has recurring failure pattern (3 separate failure sessions same hour) from untracked-file collisions and stuck merge states; fix was reactive each time rather than once-and-for-all. EVIDENCE: 2026-05-27 sessions at 12:03, 12:05, 17:03, 17:05 all diagnosing git-sync failures: "Pulling is not possible because you have unmerged files" and "untracked working tree files would be overwritten by merge". PROPOSED ACTION: Add to `~/workspace/tasks/git-sync.md` command: prepend `git merge --abort 2>/dev/null; git rebase --abort 2>/dev/null; git stash push -u -m "git-sync-autostash-$(date +%s)" -- $(git ls-files --others --exclude-standard) 2>/dev/null;` before the pull. Captures BOTH stuck-merge AND untracked-collision failure modes in one command. (Stuck-merge fix already landed 17:03; untracked-collision still recurs.) CONFIDENCE: high FINDING: mc_pickup.py swallows dispatch 409 CONFLICT errors and exits 0 with `task_run.status=completed`, causing failed-run monitor to miss real dispatch failures — only the output-scraping watchdog catches them. EVIDENCE: 2026-05-27 16:06 session MC-4308: "task_runs row marked `completed` because `mc_pickup.py` swallows the dispatch error and exits 0 after reverting. Failed-run monitor never trips." Same pattern recurred MC-4311/4312/4286/4207/4215/4200. PROPOSED ACTION: Open MC ticket to (a) GC stale `runtime_sessions` rows for target session_key (status in {stale,terminal_state_reap,terminated}) before POST to ticket runtime in `mc_pickup.py`; (b) when dispatch 409s after revert, exit non-zero so `task_run.status='failed'` and native watchdog fires. Recommendations already drafted in MC-4308 REVIEW but no ticket opened to action them. CONFIDENCE: high FINDING: Watchdog `check_missed_fires` uses bare `_git_first_commit_ts` instead of `_task_added_ts` wrapper, causing false-positive alerts on untracked task files. EVIDENCE: 2026-05-27 16:08 session MC-4307: "Watchdog bug found. `_task_added_ts` wrapper exists with mtime fallback, but `check_missed_fires` calls the bare `_git_first_commit_ts` instead. Untracked task → None → false alarm." Fix landed on branch `fix/mc-4307-watchdog-untracked-task` but not yet merged at session end. PROPOSED ACTION: Verify branch `fix/mc-4307-watchdog-untracked-task` merged to master; if not, merge it. Pattern: other code paths in same file may have same bug — grep for `_git_first_commit_ts(` direct calls and replace with `_task_added_ts(`. CONFIDENCE: high FINDING: Chrome zombie processes (root-owned, 17GB RSS, default profile, 50h idle) accumulate and require sudo to clean — operator KILL POLICY doesn't cover this case explicitly. EVIDENCE: 2026-05-27 20:17 session: "172 procs, ~17 GB RSS… Chrome owned by root. I'm `lucienne`. Need sudo." Same situation 11:33 was skipped: "Skip kill — risk > benefit." Inconsistent handling between sessions. PROPOSED ACTION: Add to `~/workspace/CLAUDE.md` operator KILL POLICY: explicit rule that chrome processes on `~/.config/google-chrome` profile (NOT `google-chrome-wingman` or `hermes-chrome`) older than 24h with no OAuth marker can be reclaimed via `sudo kill -TERM` when swap >60%. Removes per-session judgement variance. CONFIDENCE: high FINDING: Operator detector re-fires same `[operator:ticket-backlog]` ticket repeatedly after DONE filed (≥5 retriggers on MC-4291), suggesting cooldown / dedup missing. EVIDENCE: 2026-05-27 13:32–14:33 sessions: MC-4291 received 5+ "Ticket moved to Todo" system messages after each DONE reply. "Operator detector re-firing — check current backlog state and trigger source." PROPOSED ACTION: Open MC ticket to add cooldown to operator detector — after a ticket gets `done` signal, suppress re-creation of same operator-flag ticket for N minutes (e.g. 15). File: likely `~/workspace/mission-control/luci_operator.py` or similar. CONFIDENCE: low FINDING: `mission-control/` directory has been losing `.py` source files (replaced by stale `__pycache__/`) while `mc-orchestrator-build-mc/` holds canonical copies — drift caused 2 separate task failures in same hour (shadow-review + persistent-luci-watchdog). EVIDENCE: 2026-05-27 21:47 + 21:48 sessions: `persistent_luci.py`, `mc_tmux.py`, `models.py`, `mc_shadow_review.py`, `mc_orchestrator_flags.py` all missing from `mission-control/`. "These files were never tracked in git — they were deployed directly and got lost (likely during a branch rotation or bad deploy)." PROPOSED ACTION: Open MC ticket to either (a) git-track the canonical source files in `mission-control/`, or (b) update all scripts that `sys.path.insert(0, '/home/lucienne/workspace/mission-control')` to point at `mc-orchestrator-build-mc/` instead, then deprecate `mission-control/` as Python-importable. Drift root-cause not yet fixed. CONFIDENCE: high FINDING: Caveman mode lite/full intensity preference unstated — many session outputs are full prose despite Luci context indicating preference for terse. EVIDENCE: This session: caveman mode auto-activated at startup. Multiple recent worker sessions (e.g. life manager VERBOSE reports) emit full-paragraph prose without explicit caveman invocation. PROPOSED ACTION: No action — caveman is on-demand; life manager VERBOSE mode is explicit instruction in task prompt. Not a real correction. CONFIDENCE: low

Activity

done
Luci is working...
Live
No activity yet
Help