park
Commit and push the session's work to a branch, then return to a clean main. Nothing merges and nothing deploys. Use when asked to park this, shelve this, or set an experiment aside for later.
SKILL.md.claude/skills/park/SKILL.md
GitHubpark
Save the session's work to a remote branch, then step off it and return to a clean main. Same safety net as checkpoint, different end state: the session ends back on main, with the experiment shelved under a named branch.
When invoked
Use this skill when asked to set the current work aside — phrases like "park this", "shelve this", "set this aside". To save and keep working on the branch, that's checkpoint; to make the work live, that's ship.
If asked to "merge and push": that's the retired ambiguous skill name, and it now maps onto more than one verb. Confirm the intended end state before doing anything: ship (merge into main, push, deploy), checkpoint (push the branch, keep working), or land (combine several pieces of pending work into a local main, pushing nothing).
Instructions
Get the work onto a branch:
git branch --show-current.- On
main: create a branch named for the work, not the date —git checkout -b wip/<short-topic>(uncommitted changes ride along). Never commit tomainfrom this skill. - On a work branch already: stay on it.
- On
Survey the tree: run
git status --shortand classify every entry as in scope (this session's work) or out of scope. Never rungit add -A,git add ., orgit addon a directory — always add explicit file paths. Note that out-of-scope untracked files are untouched by branch switches — they will still be sitting in the tree after the return tomain; name them in the report.Quick check, not the full verify: run
npm run lint(the root script covers the website workspace too). A failure does not block the park — a shelved experiment is allowed to be mid-mess — but it goes in the report so resuming starts with eyes open.Commit in the repo's conventional style (
feat(scope):,fix(scope):, with a short why) — a parked branch may later merge tomainviaship, so its commits are real history.Push the branch:
git push -u origin <branch>. Pushing a branch publishes nothing.Return to main:
git checkout main, then confirm withgit status --shortthat the tree is clean (out-of-scope untracked files excepted).Report:
- The branch name — this is the resume handle; say it plainly ("to pick this back up, ask to resume
wip/<topic>") - Each commit (hash + subject), lint status, files left out and why
- Confirmation the session is back on a clean
mainand nothing deployed
- The branch name — this is the resume handle; say it plainly ("to pick this back up, ask to resume
Guardrails
- Never touch
main: no commits to it, no merges into it, no pushes of it - Never force-push, never rewrite pushed history
- Never commit
ga-analysis/output/,ga-analysis/service-account.json,.env*, or anything credential-shaped — even if explicitly staged by mistake - If there is nothing in scope to commit, say so and stop — don't invent a branch
- Never delete the parked branch — it is the only copy of the shelved work