OVERRIDES runtime profile: uses direct_shell (plain shell, no model) because the command chain never invokes the claude CLI or any LLM API — pure-infra task; scheduler provider env injection is a no-op (MC-4942 U12 sweep).
One-way mirror from GitHub → Luci, non-destructive. Phase 2 (MC-698): ~/.claude/ IS now the git checkout — no rsync bridge. Mac is the only authoritative writer to conrelma/claude. Luci consumes (pulls master) and authors via autopush on Stop hook.
Every 15 min (7,22,37,52 offset to stagger from git-sync / cowork-sync):
flock prevents concurrent runs.cd ~/.claude && git fetch origin — refresh remote refs.skills/ rules/ vault/ agents/ hooks/. Other tracked paths (.mcp.json, env/, google/) may differ per-machine and are not considered "dirty" for sync purposes.master AND the tracked-config paths are clean → git merge --ff-only origin/master. Fast-forwards Mac's commits in. Luci-specific modifications outside tracked paths survive (ff-merge doesn't touch them unless incoming commits explicitly modify those files).After MC-698 Phase 2, Luci's ~/.claude/ has legitimate local-only state in tracked paths: her .mcp.json (different MCPs), env/api_keys.env (systemd variants), google/ (Luci's own OAuth or empty). These show as M or D in git status but are NOT supposed to propagate to master — they're per-machine differences that haven't been untracked yet (follow-up work).
Autopush is the authority on what flows to master. It stages ONLY skills/ agents/ hooks/ rules/. The sync's dirty check matches that scope — if nothing in those paths is modified, a fast-forward is safe even though other noise exists.
She edits in ~/.claude/skills/, agents/, etc. directly. On Stop hook, luci_autopush.sh commits + pushes to master. Mac pulls via session-start hook.
.mcp.json, google/, Luci-only env/ files) to reduce git-status noise.( flock -n 200 || exit 0; cd /home/lucienne/.claude && git fetch --quiet origin && BRANCH=$(git rev-parse --abbrev-ref HEAD) && DIRTY=$(git status --porcelain -- skills/ rules/ vault/ agents/ hooks/); if [ "$BRANCH" = "master" ] && [ -z "$DIRTY" ]; then git merge --ff-only --quiet origin/master; else echo "$(date -u +%FT%TZ) SKIP-FF: branch=$BRANCH dirty_lines=$(echo -n "$DIRTY" | wc -l)"; fi; echo "$(date -u +%FT%TZ) synced: $(ls /home/lucienne/.claude/skills/ | wc -l) skills, $(ls /home/lucienne/.claude/agents/ 2>/dev/null | wc -l) agents, $(ls /home/lucienne/.claude/hooks/ 2>/dev/null | wc -l) hooks (branch=$BRANCH)" ) 200>/tmp/claude-sync.lock >> /home/lucienne/workspace/logs/claude-sync.log 2>&1
claude directly. If the scheduler profile is GLM, Kimi, or MiniMax, prefer ~/workspace/PKA/scripts/claude-provider-run.sh so backup providers run in API-key-only mode with explicit settings/MCP context.
Format: minute hour day month weekday
| Started | Status | Duration | Log |
|---|---|---|---|
| 2m ago | completed | 2s | View log |
| 17m ago | completed | 2s | View log |
| 32m ago | completed | 2s | View log |
| 47m ago | completed | 2s | View log |
| 1h ago | completed | 2s | View log |
| 1h ago | completed | 2s | View log |
| 2h ago | completed | 2s | View log |
| 2h ago | completed | 2s | View log |
| 2h ago | completed | 2s | View log |
| 2h ago | completed | 2s | View log |
| 3h ago | completed | 2s | View log |
| 3h ago | completed | 2s | View log |
| 3h ago | completed | 2s | View log |
| 3h ago | completed | 2s | View log |
| 4h ago | completed | 2s | View log |
| 4h ago | completed | 2s | View log |
| 4h ago | completed | 2s | View log |
| 4h ago | completed | 2s | View log |
| 5h ago | completed | 2s | View log |
| 5h ago | completed | 2s | View log |
| 5h ago | completed | 2s | View log |
| 5h ago | completed | 2s | View log |
| 6h ago | completed | 2s | View log |
| 6h ago | completed | 2s | View log |
| 6h ago | completed | 2s | View log |
| 6h ago | completed | 2s | View log |
| 7h ago | completed | 2s | View log |
| 7h ago | completed | 2s | View log |
| 7h ago | completed | 2s | View log |
| 7h ago | completed | 2s | View log |
| 8h ago | completed | 2s | View log |
| 8h ago | completed | 2s | View log |
| 8h ago | completed | 2s | View log |
| 8h ago | completed | 2s | View log |
| 9h ago | completed | 2s | View log |
| 9h ago | completed | 2s | View log |
| 9h ago | completed | 2s | View log |
| 9h ago | completed | 2s | View log |
| 10h ago | completed | 2s | View log |
| 10h ago | completed | 2s | View log |
| 10h ago | completed | 2s | View log |
| 10h ago | completed | 2s | View log |
| 11h ago | completed | 2s | View log |
| 11h ago | completed | 2s | View log |
| 11h ago | completed | 2s | View log |
| 11h ago | completed | 2s | View log |
| 12h ago | completed | 2s | View log |
| 12h ago | completed | 2s | View log |
| 12h ago | completed | 2s | View log |
| 12h ago | completed | 2s | View log |
Mission Control is the board for your delegated work: requests come in, Luci coordinates the next step, and evidence stays visible for review.
Luci is your always-on assistant for routing, status updates, and follow-through. Operators can still open deeper evidence when needed.