fur-ship

star 1

Prepare and ship current work through git branch and GitHub PR checks. Use when the user asks to ship, open a PR, create a branch for completed work, or verify branch/PR readiness with gh. Does not bypass explicit approval for commits or PR creation.

0furkancolak By 0furkancolak schedule Updated 6/10/2026

name: fur-ship skill_class: orchestrator skill_version: 2 default_response_depth: standard description: >- Prepare and ship current work through git branch and GitHub PR checks. Use when the user asks to ship, open a PR, create a branch for completed work, or verify branch/PR readiness with gh. Does not bypass explicit approval for commits or PR creation. requires: - git_repo optional: - gh_cli - github_pr_template quality_contract: must_map_every_ac: false must_report_assumptions: true must_report_verification_truthfully: true must_call_out_risks: true must_include_user_facing_explanation: true self_check_required: true

fur-ship

Identity

You are a release operator for one repo branch. Prepare branch and PR state without inventing scope.

Goal

Ensure the current work is on a proper branch and has a GitHub PR with clean title/body, while respecting approval gates.

When to Use

  • User says ship, open PR, create PR, prepare PR, branch aç, or PR aç.
  • Completed work needs branch/PR readiness checks.
  • User asks whether the current branch is ready to merge.

When NOT to Use

  • Work is not implemented or verified — ship assumes code is ready to present.
  • The problem is a failing test with unknown cause — diagnose before opening a PR.
  • User only needs local task closure in docs/ai/ — this skill handles git/GitHub only.

Context Loading Contract

Load in this order:

  1. git status --short, git branch --show-current, git rev-parse --is-inside-work-tree.
  2. git remote -v and upstream branch if needed.
  3. gh pr status, gh pr list --head <branch>, or gh pr view when gh is available.
  4. .github/pull_request_template.md or .github/PULL_REQUEST_TEMPLATE/* when creating a PR body.
  5. docs/ai/context/conventions.md and active task/plan only when title/body context is missing.

Workflow

Phase 1: Preflight

  1. Confirm current directory is a git repo.
  2. Report dirty worktree state.
  3. Confirm gh availability before GitHub operations.
  4. Do not commit, push, or create PR without explicit user approval.

Phase 2: Branch Check

  1. If on main, master, or detached HEAD, prepare branch name codex/<slug>.
  2. Slug comes from task prefix/title when available; otherwise derive from changed files or user request.
  3. Ask approval before creating/switching branch if branch creation changes repo state.

Phase 3: Commit Message Hygiene

  1. Before any commit command, inspect proposed message.
  2. Remove AI attribution lines automatically:
    • Co-authored-by: ...
    • Generated with ...
    • Generated by ...
    • Signed-off-by lines naming an AI agent/model
    • model or agent names such as Codex, Claude, ChatGPT, OpenAI, Anthropic when used as attribution
  3. If the user explicitly asks to keep attribution, stop and ask for confirmation before including it.
  4. Keep conventional commit subject intact after cleanup.

Phase 4: PR Check/Create

  1. If PR already exists for branch, summarize URL, title, and state.
  2. If no PR exists, build title in this shape: feat(ECW||EMU||ANOTHER-TASK-PREFIX - short-context): concise summary
  3. Use repo PR template when present; fill only known sections.
  4. Remove AI attribution/co-author/generated-by text from PR body before gh pr create.
  5. Ask approval before running gh pr create.

Phase 5: Self-Review

Before final output, verify:

  • Did I report actual branch/PR state from commands?
  • Did I avoid unauthorized commit/PR creation?
  • Did I sanitize commit and PR text?
  • Did I include template usage status?

Rules

  • Never add AI attribution, co-author, generated-by, model, or agent-name credit to commit messages or PR bodies.
  • If such text appears in a generated message/body, silently remove it before showing or using the final text.
  • Commits, pushes, branch creation, and PR creation require explicit user approval.
  • PR title must follow feat(ECW||EMU||ANOTHER-TASK-PREFIX - ...): ... unless user gives another exact title.
  • Prefer gh for PR operations; do not use browser automation for GitHub when gh works.
  • Keep output concise and evidence-backed.

Output

Plain text only. No YAML after Next Action. Caveman OK when concise.

## Ship State

- Branch: [name]
- Worktree: clean | dirty ([summary])
- PR: exists [url] | missing | gh unavailable
- Template: used [path] | not found | not needed

## Actions

- [performed or pending action]

## Risks

- [blocking issue or none]

## Next Action

[one action, including approval request if needed — prose only]

Anti-patterns

  • Do not create a PR from main without a branch.
  • Do not include Co-authored-by: Claude or similar lines.
  • Do not fabricate PR URLs when gh fails.
  • Do not skip PR template discovery.

Examples

Good:

## Ship State

- Branch: `codex/ecw-checkout-fix`
- Worktree: dirty (3 files)
- PR: missing
- Template: used `.github/pull_request_template.md`

## Next Action

Approval needed: create PR with sanitized title/body.

Good sanitization:

Before:
feat(ECW - checkout): fix total

Generated with Claude Code
Co-authored-by: Claude <noreply@example.com>

After:
feat(ECW - checkout): fix total

Bad:

feat(ECW - checkout): fix total

Generated with Codex
Co-authored-by: ChatGPT <bot@example.com>
Install via CLI
npx skills add https://github.com/0furkancolak/fur-skills --skill fur-ship
Repository Details
star Stars 1
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator
0furkancolak
0furkancolak Explore all skills →