Focus
Think. Build. Ship. A Claude Code plugin that combats your worst instincts and gets code out the door.
npx -y skills add withqwerty/ship --skill focusAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use this skill when the user is mid-build and drifting, scope is creeping, or focus is lost. Trigger on "ship focus", "scope check", "refocus", "what should I cut", "am I scope creeping", "this is getting bigger than expected", "I'm losing focus", "I keep finding things to improve", "should I stop and ship what I have", or "new requirements came in". Also trigger when the user expresses frustration about a task growing beyond its original intent, mentions touching many more files than expected, or asks whether to change direction mid-build. Do NOT trigger for pre-build gut checks (use ship-think) or post-build reviews (use ship-review).
SKILL.md
4.4 KB, 899 tokens by cl100k_base, as published. Nobody here has run it
Ship Focus
When the thing has grown beyond what you set out to do, this skill looks at what's actually changed, compares it to the original intent, and tells you what to cut and what to finish.
Process
1. Establish the original intent
Determine what the user originally set out to build, from one of these sources (in priority order):
- The user's argument to this command
- Recent conversation history (look for the initial task description or
/ship:thinkoutput) - Ask: "In one sentence, what did you sit down to build?"
Capture this as a single sentence. This is the anchor everything gets measured against.
2. Read the profile
Check .claude/ship.local.md for context. Read the product brief — the "What moves the needle" section is your reference for what matters. If the drift is toward something that serves a needle-mover, it might be worth keeping. If it's away from all of them, cut it.
3. Examine what's actually changed
Run git diff (staged + unstaged) and git diff --stat to understand the scope of changes. Also check git status for new untracked files.
Read the changed files to understand what work has been done. Categorise each change as:
- Core — directly serves the original intent
- Adjacent — related but wasn't part of the plan (refactors, improvements spotted along the way)
- Drift — new scope that crept in (new features, new patterns, "while I'm here" changes)
4. Deliver the verdict
Output a short, direct assessment. Format:
What you said you'd build: [one sentence from step 1]
What you've actually built: [one sentence summary of the diff]
Core (finish these):
- [file/change]: [why it matters]
Cut or defer (these aren't what you sat down to do):
- [file/change]: [what it is and why it can wait]
If there's drift, be specific about what to revert or stash:
src/utils/auth.ts— You started refactoring the auth helpers. This isn't what you're shipping.git stashthis or revert it.
If there's no drift, say so:
You're on track. Everything here serves the original goal. Keep going.
5. The nudge
End with one sentence of guidance calibrated to the situation:
- If they're deep in scope creep: "Stash the extras, finish [core thing], ship it."
- If they're mostly on track with minor drift: "You're close. Drop [specific thing] and you're done."
- If they're on track: "Ship it."
- If new requirements genuinely changed the scope: "The scope changed — that's fine, but name the new scope before continuing. What are you actually building now?"
Debrief nudge
Only if debrief-nudges: true in .claude/ship.local.md. Skip this section entirely if the flag is false or absent.
Check last-debrief. If it's been more than 7 days (or is never), add a single line at the end:
It's been [N days / a while] since your last debrief. Run
/ship:debriefwhen you have 10 minutes.
If debrief-deferred is set and it's been more than 2 days since deferral:
You deferred your debrief [N days] ago. Time to do it —
/ship:debrief.
Guidelines
- This is a mirror, not a judge. The tone is "here's what I see" not "you messed up."
- Be concrete. Name files, name changes. Don't say "some of your changes are out of scope" — say which ones.
- If the user has been working for a while and everything is core, acknowledge that. Not every session has scope creep.
- Never suggest adding more scope. The only valid directions are: finish, cut, or redefine.
- Keep the output scannable. The user is mid-flow — they need to read this in 30 seconds and get back to work.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most ship operate skills give in 899 tokens
Counted across 779 of the 1,178 authors here whose files we hold, read 2026-08-07
- Document a rollback plan before deploymentin 41 of 779, across 22 files
- Update the changelogin 21 of 779, across 19 files
- Run the test suitein 20 of 779
- Create an annotated git tagin 20 of 779
- Clean up feature flags after full rolloutin 18 of 779, across 10 files
- Verify deployment health after launchin 18 of 779, across 10 files
- Test both feature flag statesin 17 of 779, across 9 files
- Verify the working tree is cleanin 17 of 779
- Make database migrations backward-compatiblein 16 of 779, across 8 files
- Set up error monitoring before launchin 15 of 779, across 7 files
- Monitor metrics at each rollout stagein 14 of 779, across 5 files
- Create a GitHub releasein 14 of 779
Said here and by no other author read
- determine the original intent
- capture the original intent as one sentence
- read the product brief
- categorise each change as core adjacent or drift
- list core changes to finish
- list drift changes to cut
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.