Objective

Nightly sync of canonical Skills/X/SKILL.md into the Claude/Scheduled/_X.md paths scheduled tasks load, preventing version drift.

What was accomplished

Decisions made

Improvement candidates (pending Sam, QA: Open)

  1. Surface-check root-detection bug. routines-build/scripts/skill_surface_check.py find_projects_root() stops at the first ancestor containing both CLAUDE.md and Skills/ — and routines-build/ itself matches, so it resolves root as routines-build and undercounts canonical skills (11 vs 129) and misses AGENT-TOOL-MANIFEST.md. Re-running with SAIL_PROJECTS_ROOT env var produced the correct result. Fix options: hardcode env in the task invocation, or tighten the sentinel to a root-only marker (e.g., FOLDER-INDEX.md + AGENT-TOOL-MANIFEST.md).
  2. Uncommitted-but-canonical build_report.py in Claude/Scheduled (a prior sync updated the working tree but never committed). Could be committed by the owning task to clear the dirty flag.

Pickup prompt for next run

Mirror map is in sync as of 2026-05-31. If build_report.py still shows M next run, a prior sync left it uncommitted — confirm it matches canonical, then decide whether to commit. Consider invoking skill_surface_check.py with SAIL_PROJECTS_ROOT=/Users/samaguiar/Documents/Projects (or fix root detection) so the surface report is accurate by default.

Evidence

QA status: Open (no drift, but two improvement candidates awaiting Sam's call).