Created
Jun 25, 16:15
Started
Jun 25, 16:18
Completed
Jun 25, 20:28
DevOps handoff
Type
Feature
Shape
backend
Worktree Slug
install-agent-skills-locally
Repositories
mcritchie-studio
Release Train
—
Branch
feat/install-agent-skills-locally
Acceptance Criteria
Expected Test Plan
Checks Run
Agent Context
Goal: McRitchie Studio becomes the canonical, version-controlled home for the operator's USER-GLOBAL Claude Code skills so they survive a wiped machine and travel with the platform — exactly like the generated AGENTS.md/CLAUDE.md do today. EXTEND the existing proven mechanism, don't invent one: bin/install-agent-docs already cp's docs/agents/{index,claude}.md to $PROJECTS_DIR and already manages $HOME/.claude (settings.json), with an install/check (drift-detection) idiom. The repo ALSO already has .claude/skills/{nfl-refresh,nfl-rebuild} but those are PROJECT-scoped (only load when CWD=studio). This feature is for USER-GLOBAL skills that load in every session. Design: (1) a tracked canonical source dir for user-global skills, e.g. docs/agents/skills/<name>/SKILL.md; (2) extend bin/install-agent-docs (preferred — one 'match my machine to the platform' command) OR a sibling bin/install-agent-skills to cp those into ~/.claude/skills/<name>/ with a matching check mode (copy+check, NOT symlink, to mirror the existing idiom + drift detection); (3) wire the skills install into the recovery/bootstrap flow (docs/agents/system/house-burn-down.md + bootstrap.md + bin/ecosystem-build/bin/setup as appropriate) so a fresh machine restores skills. SEED with /wrap: the canonical SKILL.md currently lives standalone at ~/.claude/skills/wrap/SKILL.md (read it from there) — move the canonical copy into the repo source dir and let the installer own ~/.claude/skills/wrap. IMPORTANT: /wrap step 2 references a personal trimmer at ~/.claude/projects/-Users-alex-projects/memory/bin/trim-index — make /wrap degrade gracefully if that path is absent (describe the action, don't hard-fail), since the personal memory tooling is NOT platform-owned yet. Tests (backend shape, unit+integration): cover the installer copy/check logic — idempotent install, check detects drift, a skill lands in ~/.claude/skills — following the existing bin/ script test pattern (see test/lib/release_cli_test.rb and test/commands/agent_worktree_test.rb for how CLI scripts are exercised from Ruby; sandbox HOME to a temp dir so tests don't clobber the real ~/.claude). FOLLOW-UP (out of scope, note in PR): make the memory-hygiene tooling (trim-index) + memory system portable too; docs/agents/system/memory.md already exists as a hook.
Stage Timeline
Who handled each stage, the time it took (measured), and the model / tokens / cost reported (best-effort) — plus who's on it right now. — means the agent didn't report that metric.
Conversation
QA review feedback, agent handoffs, and follow-up notes for this task.
Review pair APPROVED + READY-TO-UNDRAFT (both): carl (heavy) + shannon (light). All 5 acceptance bullets verified — canonical docs/agents/skills/<name>/ tracked; bin/install-agent-docs mirrors skills into ~/.claude/skills with check/drift (cp+cmp, find -mindepth 2 keeps README out); recovery wired (ecosystem-build Phase 5b + house-burn-down/bootstrap/ecosystem-build docs); /wrap migrated. Carl diffed standalone vs repo SKILL.md: ONLY change is the REQUIRED trim-index graceful-degrade (Step 2 guard+else), rest byte-identical. Test sandboxes HOME/PROJECTS_DIR to tmpdir (9 runs/26 assertions, 0 fail); bash 3.2 set -u empty-array guarded. CI green (4/4). Un-drafted. Portable memory/trim-index tooling correctly scoped as follow-up.
Sealed-bid sizing
Edit →Alex (PM)
—
Avi (PO)
—
Dev
—
Actual
—
We emailed a one-tap sign-in link to . It expires shortly and can only be used once.
No email? Check spam, or close this and try again.