I'm working on my first project with Claude Code and GSD. I needed a script to auto-archive a file during
/gsd:complete-milestone. I put it in ~/.claude/get-shit-done/bin/, modified the workflow to call it, and it worked perfectly.
Then I ran /gsd:update. Script gone. Workflow modification gone.
I moved the script to ~/.claude/skills/ (safe from updates) and used /gsd:reapply-patches for the workflow change. That fixed it, but I realized I'd probably make the same mistake again next time I wanted to automate something.
So I built /gsd-wrapper, a skill that handles this pattern:
What it does:
- Keeps a manifest (~/.claude/gsd-wrappers/manifest.json) tracking what custom automation runs, when, and against which workflow
- Places scripts in a safe directory that GSD updates don't touch
- Patches workflows with a generic block that reads the manifest at runtime — so adding new wrappers never requires new
patches
- Skill-based wrappers (ones that need Claude's reasoning) run as Task agents so they can't derail the parent workflow if they fail
Commands:
/gsd-wrapper create — walks through creating a new wrapper
/gsd-wrapper list — shows what's registered
/gsd-wrapper remove — cleans up manifest, scripts, and dead patches
/gsd-wrapper reapply — restores patches after GSD updates
What I learned:
- Claude will put files wherever makes sense to it. I had to add explicit rules to CLAUDE.md saying "never put custom files in get-shit-done/" or it happens again. - Hooks (~/.claude/hooks/) and wrappers are different things. Mixing up the terminology caused confusion during development.
- One generic patch per lifecycle point beats one patch per wrapper. The manifest handles the rest.
I've tested create, list, and remove. It's working for my use case but I'm new to all of this.
Questions for the community:
1. Is there a built-in GSD mechanism for this that I missed?
2. Does the manifest approach make sense, or is there a simpler pattern?
3. Anyone else running into the same update-wipes-my-stuff problem?
Happy to share the skill files if anyone wants to try it.