Importance: Medium. Infrastructure hygiene, not client-facing or revenue-facing. No live system was modified.

Done vs pending: The rewrite itself is DONE and delivered as a file. Deployment of the rewrite into the live scheduled-task path is PENDING Sam approval (overwriting a running scheduled task is destructive-on-live). A few skill/policy follow-ups are also pending and listed below.

What was done

Sam pasted the current skills-scheduled-mirror-sync scheduled task (carrying a task-resilience-auditor overlay) and asked for a rewrite and improvement. Verified the live SAIL KB schema via notion-fetch before writing, so the tag logic is grounded rather than guessed.

Update after Sam feedback: the first pass was too heavy (version labels, changelog, prior-version backstory, a hard-abort, local device paths, and over-specified steps). Replaced it with a lean goal-first rewrite, about 410 words, no version label. It states the goal, points the agent at the source of truth (SAIL KB config page plus the sail-skills repo) instead of hardcoded local paths since Sam runs three devices, keeps only the constraints that prevent real damage, drops the hard-abort, and leaves the how to the agent. The earlier v2.0.0 notes below are retained for reference but superseded.

Key changes (superseded detail):

  1. Removed the load /session-bootstrapper line. That skill is retired as of May 2026; the task was still loading it.
  2. Removed the QA: Clean tag from the clean-run path. The option still exists in the live Notion pool, but firm policy forbids using it, so the original tag logic violated a standing rule. Clean runs now use completion-log; drift runs use QA: Open. Confirmed skills-sync, drift-prevention, and daily are valid live tags, so the rest of the set was kept.
  3. Moved config (path roots, mirror map, preload list, tag policy) to a Notion-first resolution model with local spec and inline defaults as fallback. This matches the skills-hygiene doctrine: do not hardcode local paths as definitive truth.
  4. Replaced literal /Users/samaguiar/... roots with $SAIL_DOCS (falling back to $HOME/Documents), which removes the cross-platform brittleness between Mac, the Linux sandbox, and the Windows/Codex mirror.
  5. Folded resilience in natively (degrade, never block the deliverable, tool-name drift handling, user-absent handling) so the bolt-on overlay is no longer required.
  6. Added an explicit mandatory scheduled-run self-audit step (what was beneficial outside scope, missing tools/skills/permissions, what was unnecessary), per Sam's standing rule for recurring tasks.
  7. Rewrote in plain English with no em dashes.

Preserved the proven safety mechanisms unchanged: the explicit git add -- of only the three mirror-map destinations (never git add -A), the preload-header-preservation merge algorithm, the Skills_Library deprecation handling, the read-only dirty-tree heads-up, and the cross-tool skill surface check.

Why the session is ending

The rewrite is complete and the decision points that remain are Sam's to make (deployment, whether to create the Notion config page, whether to exempt the task from the resilience overlay). Holding execution on those rather than acting on a live scheduled task without approval.

Recommended next actions (none are blocking)

  1. Deploy the v2.0.0 body into the canonical task location and let the next nightly run pick it up. Recommended, with a one-commit rollback. This is the only step that touches a live task.
  2. Create the Notion config page "Scheduled Task Config: skills-scheduled-mirror-sync" holding the mirror map, path roots, and tag policy, then point the task at it. This realizes the Notion-as-source-of-truth design so future partials can be added without editing the task body.
  3. Decide how task-resilience-auditor should treat this task now that resilience is native, so the overlay does not get re-stacked as redundant noise.