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 ...
StateDoneNext ActionClosedOwnerLucienneRuntimeClosedAge18d ago
Ticket is done; runtime is closed.·profile claude_opus_1m_high
Description
MC-4208
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: `mc_pickup.py` imports `runnable_policy` module that was never committed alongside MC-4141 commit ab3fb4f8, causing ModuleNotFoundError on every scheduler tick for ~26 minutes (05:46-06:12).
EVIDENCE: 2026-05-25 06:30 session MC-4153: "mc_pickup MC-4141 commit ab3fb4f8 referenced module but file never committed → ModuleNotFoundError each tick"
PROPOSED ACTION: Add to `~/.claude/rules/coding-discipline.md` under section 7 "Commit Atomically": "When adding a new module imported by another file, BOTH files must land in same commit. Before committing changes that add `from <newmodule> import`, verify `git status` shows newmodule.py staged. Use `git diff --cached --name-only | xargs grep -l 'import <newmodule>'` to detect cross-file import without source."
CONFIDENCE: high
FINDING: `mc-auto-review` task has been failing daily for 7+ days due to oversize diff cap (5000 lines), with diffs growing 7k→46k lines unchecked.
EVIDENCE: 2026-05-25 06:30 session MC-4152: "7-day oversize streak — diff grew from 7k→46k lines. Real remediation belongs in MC-4150 (trim noise repos / raise cap / auto-commit cadence)"
PROPOSED ACTION: Add to `~/workspace/CLAUDE.md` under "Key Rules" as rule 11: "Oversize incidents that recur across days are real architectural problems, not transient noise. If mc-auto-review or similar diff-bounded task creates >2 oversize-incident tickets in a week, treat as Tier 2 ticket immediately (trim noise dirs / raise cap / increase auto-commit cadence) rather than closing each watchdog mirror as duplicate."
CONFIDENCE: high
FINDING: `followup_ledger.minutes_overdue()` crashed on naive datetimes because `expected_check_in_at` column has mixed tz-aware and tz-naive values written by different code paths.
EVIDENCE: 2026-05-25 12:31 session: "The expected_check_in_at column in mc.db contains mixed datetime formats — some are timezone-aware (e.g. +02:00), others are timezone-naive (bare ISO strings without any offset)"
PROPOSED ACTION: Add to `~/.claude/rules/coding-discipline.md` new section "Datetime Storage Discipline": "If a SQLite column stores datetimes, ALL writers must produce same tz format (recommend UTC ISO with +00:00 suffix). When reading via fromisoformat, defensively attach tzinfo=UTC if dt.tzinfo is None — naive vs aware mix raises TypeError on subtraction. Audit all writers before adding new ones."
CONFIDENCE: high
FINDING: Orchestrator inbox accumulated 150 stale `delivered` items + 50K `processed` items missing `acted_at` because stale sweep logic was designed but never implemented.
EVIDENCE: 2026-05-25 06:57 session: "The stale sweep for delivered items was designed but never implemented... 150 stale delivered items cleared... 50K processed items missing acted_at"
PROPOSED ACTION: Create MC ticket "Implement orchestrator_inbox stale sweep + acted_at backfill in luci_followup_sweep.py or new scheduler task. Run every tick to prevent backlog accumulation. 150 delivered items + 50K processed items were manually cleared 2026-05-25 — automate so next pickup-outage doesn't repeat."
CONFIDENCE: high
FINDING: Mac dispatch SSH unreliable — Mac asleep means SSH fails silently, no escalation path documented for time-sensitive dispatches.
EVIDENCE: CLAUDE.md "Mac Remote Dispatch" rules: "If SSH fails, Mac is asleep — skip and retry later, don't escalate" — but no retry mechanism exists.
PROPOSED ACTION: Add scheduler task `mac-availability-probe` running every 15 min that pings Mac via Tailscale and writes status to `state/mac_availability.json`. Tasks needing Mac check this file before dispatching; if stale >1h, escalate via Telegram instead of silently skipping.
CONFIDENCE: low
FINDING: Worktree backlog (mc-4198-durable 5.6GB, 4 named worktrees 436MB) recurring problem — auto-reaper can't clean because criteria too restrictive (uncommitted/ticket-open/commits-ahead).
EVIDENCE: 2026-05-25 21:44 session MC-4204: "mc-4198-durable: branch fully in origin/master, 0 uncommitted. Safe to reap. Other 4 worktree-shaped dirs (mc-4122/4124/4125/4185) are orphaned (not in git worktree list) — separate concern, ~436M total"
PROPOSED ACTION: Extend safe-reaper to detect "branch fully merged to origin/master + 0 uncommitted" as reapable even when ticket reference present (ticket may be done). Also detect orphan worktree dirs (not in `git worktree list`) and add to reap candidates with operator review. Update `~/workspace/scripts/worktree_reaper.py` or equivalent.
CONFIDENCE: low
FINDING: Life-manager scan runs claim VERBOSE mode but produce massive tables consuming context — most have identical structure (WhatsApp summary groups + email triage).
EVIDENCE: Sessions 05:04, 06:02, 07:10, 08:05, 09:08, 11:07, 12:08, 13:03, 14:05, 15:07, 16:07, 18:03, 19:01, 20:02, 21:01 — all run same template with verbose tables.
PROPOSED ACTION: Add to life-manager task prompt: "VERBOSE mode: emit only DELTAs from prior hour (new tickets created, new skip rules triggered, source errors). Do NOT re-list emails that were already_processed or auto_skipped under existing rules — they consume context without adding signal."
CONFIDENCE: low
Activity
done
INTERACTIVE
Luci is working...
Details —
Done
· Medium
· Lucienne
▼
SState
Done
Closed
PPeople
TTiming / Details▼
api (human)
Mission Control
18d ago
14d 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.