agentleFS
jerseycheesejerseycheese/agent-skills/skills/ship-issue/SKILL.md

ship-issue

Skill4 starsChanged 16 days agoMITView on GitHub

Drives one GitHub issue from cold start to merged PR: sync, analyze, minimal fix with a test, PR, CI green, merge, post-merge cleanup, wrap-up. Trigger on: "ship issue #X", "ship #123", "take #N to merge", "do issue #X end to end".

6 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

3 rules. 0 are common, 0 are distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 6 edited versions we read keep these.

  • 0

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Analyze: Run the analyze-issue skill: fetch the issue, discover existing patterns in the codebase, set scope boundaries, and produce an …

    line 23
  2. Very specific:

    Post-merge cleanup: Run the post-merge skill: it syncs the base branch, deletes the merged branch and its worktree, closes the linked issue …

    line 33
  3. Very specific:

    Wrap up: Run wrap-it-up to close the chat with a tight summary and a sweep of durable context (memory, plans, status), so the next session …

    line 35

“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Ship Issue

Drive a single issue from a cold start to a merged PR and a clean handoff. This is a conductor: each step leans on an existing skill or native control rather than re-implementing it. Apply a minimal, root-cause fix — don't patch a symptom or pad the change past the issue's scope.

Take the issue number from the user (e.g. "ship issue #326"). If they named an issue instead of numbering it, find it:

gh issue list --search "[keywords]" --json number,title | head -5

The loop

  1. Pre-flight — sync and locate. Run git fetch && git status. Get onto the right base branch (develop if it exists, else main) and up to date. If you're working in a worktree, confirm it's the right one and that its dev server points at it. Never build or test against a stale checkout — that's where most rework comes from.
  2. Analyze. Run the analyze-issue skill: fetch the issue, discover existing patterns in the codebase, set scope boundaries, and produce an implementation plan with MVP-level tests. Diagnose the root cause before writing any code.
  3. Implement. Apply the smallest fix that resolves the root cause. Reuse existing patterns before introducing new ones. Add or update one MVP-level test that actually covers the change — use tdd-implement for the test-first loop. Run the test suite and linter locally; never rig a test to pass.
  4. Open the PR. Push the branch and open a PR that links the issue (Closes #N). Fill the repo's PR template (.github/PULL_REQUEST_TEMPLATE.md) rather than writing a free-form body. Keep the title and description tight: lead with context, say what changed and why, skip the fluff. If the fix has a visible before/after (a UI or visual bug), embed it per the github-screenshot skill's convention rather than describing it in prose alone.
  5. Drive CI to green. Watch the checks. When something fails, use ci-fix-with-memory so you don't repeat a fix that already failed. Re-push until green. If the same failure resists three or more different fixes, stop and summarize — ask whether to skip, defer, or rethink the approach.
  6. Confirm the merge. Once CI is green and the PR is approved and merged, take "merged" as ground truth — don't re-verify without a concrete reason.
  7. Post-merge cleanup. Run the post-merge skill: it syncs the base branch, deletes the merged branch and its worktree, closes the linked issue (completion comment and acceptance criteria checked), and scores the best next issue to pick up.
  8. Wrap up. Run wrap-it-up to close the chat with a tight summary and a sweep of durable context (memory, plans, status), so the next session — or a parallel agent — can pick up cleanly.

Notes

  • Pin a concrete, evaluator-checkable success criterion up front (e.g. a goal like "issue #N acceptance criteria met, PR open, CI green") and let the evaluator decide done, not self-judgment.
  • Each step is a thin pointer to a dedicated skill. If a step needs more depth, open that skill directly rather than duplicating its logic here.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.