Run: 019__skills-sync-architecture · Date: 2026-05-07 · Phase 1 author
The current skills-distribution architecture has three independent failure modes that compound: (1) a pull-only model masquerading as push (UserPromptSubmit hook firing git pull) which doesn't fire in Claude Desktop at all and only fires per-prompt in Claude Code terminal; (2) clone-path drift across operators — Ewing's MacBook uses ~/Github/next-chapter-os, Mac mini and interns use ~/repos/next-chapter-os, and at least one Desktop clone at ~/Desktop/next-chapter-os shows up in this MacBook's settings.local.json allowlist; (3) the setup-skills.sh post-commit auto-push hook is NOT installed on Ewing's primary MacBook (no .git/hooks/post-commit exists at /Users/ewinggillaspy/Github/next-chapter-os/.git/hooks/). Recommended substrate: GitHub repo + GitHub Actions webhook fan-out via Tailscale-reachable per-machine listener (or LaunchAgent poll on a 10s interval as fallback). Anthropic's hosted Skills API is API-only and explicitly does not sync to Claude Code, so it is not a substrate option.
I cannot verify what hooks Charlie's and Bear's machines actually have installed without SSH access to those laptops — I can only confirm what their setup script should install, not what currently lives in their ~/.claude/settings.json. I also did not measure actual git-pull latency in real session-boot conditions (cold cache, slow Wi-Fi, gh auth refresh path), so my "near-real-time" claims for the GitHub-as-substrate path are theoretical bounds, not measured. Finally, I did not inspect Cowork's hook surface — Anthropic's docs explicitly say Claude Desktop has no hooks, but Cowork is a separate product and I assumed by analogy that it likewise has no SessionStart hook; that should be confirmed by listener or quarterback who use Cowork directly.
This run resembles run #007 (repo-consolidation-one-repo) and run #013 (os-tab-audit) — both surfaced the same root cause: capability that lives in the right place architecturally but doesn't reach the right operator surface (audit found /caller, /deals, /review built but missing from nav; here the skills exist in the canonical repo but don't auto-arrive on every machine). The pattern is "the repo is right, the distribution is broken." Also resembles run #010 (dash-scrubber-deployment-debrief) where the LaunchAgent was the missing link between a written-and-committed asset and a running service.
When asked to recommend a sync substrate, my old response was to default to GitHub + Actions because it's already wired. Now I will first verify the hook surface available on every consumer (Claude Code terminal vs Claude Desktop vs Cowork) and only recommend a substrate that has a fanout path to the surface with the weakest hook support — because a substrate that pushes flawlessly to Claude Code but cannot reach Claude Desktop is a 50% solution, not a 100% solution.
Generated from 019__architect.md — do not edit this HTML directly.