Every development team knows the feeling. You've spent hours or days writing great code, the feature works perfectly in your local environment, and the branch is ready to go. Then comes the boring part: syncing with main, rerunning tests, addressing review comments, updating changelogs, and navigating the pull request process. This is where the gstack AI shipping workflow steps in to transform how teams deliver software.
The /ship skill is gstack's answer to what we call "branch death" — the phenomenon where perfectly good work languishes unmerged because the mundane release engineering tasks sap developer momentum. As part of the broader gstack skills ecosystem, /ship acts as a dedicated release engineer that handles the final mile of getting your code from a ready branch to an open pull request.
Why the Final Mile Kills Developer Momentum
Software development has a dirty secret: the most creative, interesting work happens at the beginning and middle of a feature's lifecycle. Planning the architecture, writing the core logic, solving tricky edge cases — these are the tasks that energize developers. But the final mile of actually shipping that code? It's a gauntlet of repetitive, low-creativity tasks that consistently drains motivation.
Consider what a typical release process looks like without an AI shipping workflow. You need to pull the latest changes from main and resolve any conflicts that have cropped up while you were working. You need to rerun the entire test suite to make sure nothing broke. You need to go back through code review comments and address every single one. You might need to update version numbers, changelogs, or other metadata. Then you need to push the branch and either open a new pull request or update an existing one with a clear description of your changes.
Each of these steps is individually simple, but together they form a tedious sequence that takes anywhere from fifteen minutes to over an hour. Multiply that across every branch, every developer, every sprint — and the cumulative cost to engineering velocity is staggering. This is exactly the problem that the gstack AI shipping workflow was designed to solve.
How the /ship Skill Works
The /ship command is designed for a very specific moment in the development lifecycle: when your branch is ready. This is not a tool for deciding what to build or for writing code from scratch. It operates within the established gstack workflow of plan → code → review → ship, handling the final stage with precision and reliability.
When you've finished your implementation and your code review feedback has been addressed, you invoke /ship and it takes over the entire release engineering process. Here's exactly what happens behind the scenes:
Sync with Main Branch
The skill pulls the latest changes from main and handles the merge automatically. If there are conflicts, it resolves straightforward ones and flags anything that needs human judgment.
Branch State Check
Before proceeding, /ship examines your branch for any unusual state: uncommitted changes, stale checkpoints, or divergence issues that could cause problems downstream.
Rerun Tests
The full test suite runs again after the main sync to catch any regressions introduced by recent upstream changes. This pairs naturally with your automated QA testing setup.
Resolve Greptile Reviews
This is where /ship truly shines. It triages every Greptile review comment intelligently, categorizing each one and taking appropriate action.
Update Metadata
If your repository expects changelog entries, version bumps, or other release metadata, /ship updates them automatically based on your project's conventions.
Push & Open PR
Finally, the branch is pushed to the remote and a pull request is opened (or updated if one already exists) with a well-structured description of all changes.
Greptile-Aware Review Triage
One of the most time-consuming parts of the shipping process is dealing with automated code review feedback. The gstack AI shipping workflow includes a sophisticated triage system specifically designed to handle Greptile code review comments without wasting developer time on false positives or already-resolved issues.
When /ship encounters Greptile review comments, it classifies each one into three categories and takes the appropriate action:
| Category | Action Taken | Developer Impact |
|---|---|---|
| Valid | Applies the fix automatically | Zero — fix is applied and committed |
| Already Fixed | Posts an auto-reply explaining the fix is already in place | Zero — no human action needed |
| False Positive | Pushes back with a reasoned explanation | Zero — context is provided for reviewers |
This three-way triage dramatically reduces the back-and-forth that typically happens during code review. Instead of a developer spending twenty minutes reading through Greptile comments, figuring out which ones are valid, and crafting responses, the gstack AI shipping workflow handles the entire interaction automatically. Valid suggestions get fixed, stale comments get cleared, and false positives get a well-reasoned pushback.
The /ship skill works hand-in-hand with gstack's AI code review capabilities. While /review catches issues before you're done coding, /ship resolves any remaining review feedback as part of the release process. Together, they form a continuous quality pipeline.
Preventing Branch Death
Branch death is a silent productivity killer that affects teams of every size. A developer finishes an exciting feature, feels the satisfaction of solving a hard problem, and then faces forty-five minutes of tedious release work. The branch sits untouched for a day. Then two days. Then it falls behind main, conflicts accumulate, and the cost of merging grows. Eventually, someone either powers through the pain or — worse — the branch is abandoned entirely.
The gstack AI shipping workflow eliminates this pattern by collapsing the entire release process into a single command. There's no gap between "my code works" and "my PR is open." The momentum from finishing your implementation carries straight through to an open pull request, because /ship handles every tedious step in between.
Teams that have adopted /ship report a measurable decrease in the average time from "code complete" to "PR open." By removing the friction that causes branch death, the entire team delivers more consistently and with less cognitive overhead.
The Plan-Code-Review-Ship Workflow
The /ship skill doesn't operate in isolation. It's the final stage of a complete development workflow that gstack orchestrates end to end. Understanding where /ship fits helps explain why it's so effective.
The workflow begins with plan review, where you define what you're building and get AI-assisted feedback on your approach before writing a single line of code. Next comes the implementation phase, where you can leverage parallel coding to work on multiple aspects of the feature simultaneously. Once your code is written, the review phase catches bugs, style issues, and architectural concerns. Finally, /ship takes a branch that has passed through all these stages and delivers it to production readiness.
This pipeline means that by the time /ship runs, your code has already been planned, implemented, and reviewed. The skill isn't making judgment calls about code quality — that happened in earlier stages. It's purely focused on the mechanical work of preparing your branch for merge.
$ gstack /plan # Define and validate approach
$ gstack /code # Implement the feature
$ gstack /review # Catch issues before shipping
$ gstack /ship # Sync, test, resolve reviews, push, open PR
What /ship Checks Before Pushing
Reliability is paramount in a release automation tool. A bad push or a botched PR can create more work than it saves. That's why the gstack AI shipping workflow includes multiple safety checks before it takes any irreversible action.
Branch State Validation
Before anything else, /ship examines the current state of your branch for anomalies. Are there uncommitted changes that might be lost? Is the branch in a detached HEAD state? Has it diverged from the remote in unexpected ways? These checks catch the kind of subtle issues that can lead to data loss or confusing merge histories.
Test Suite Verification
Even if your tests passed an hour ago, /ship reruns them after syncing with main. This is critical because upstream changes can introduce regressions that only manifest when combined with your feature branch. The skill integrates with your existing QA testing framework to run the full suite and report results clearly.
Metadata and Convention Compliance
Different repositories have different expectations for release artifacts. Some expect CHANGELOG.md entries. Others use semantic versioning files. Some have specific commit message formats. The /ship skill reads your repository's conventions and updates the appropriate files, so your PR arrives conforming to whatever standards your team has established.
When to Use /ship (and When Not To)
The /ship skill is purpose-built for a specific scenario, and using it correctly is key to getting maximum value from the gstack AI shipping workflow.
Use /ship when:
- Your branch is code-complete and has passed review
- You want to open a PR or update an existing one
- Your branch needs to be synced with the latest main before merging
- There are Greptile review comments that need triage
- Your repo requires changelog or version updates before a PR can be merged
Don't use /ship when:
- You're still deciding what to build (use /plan instead)
- Your implementation isn't finished yet
- You haven't addressed fundamental code review feedback
- You need to make architectural changes to the branch
/ship is a release engineer, not a decision-maker. It handles logistics and mechanics brilliantly, but it trusts that the earlier stages of the workflow have already validated the substance of your changes.
Comparing Manual Shipping vs. /ship
| Task | Manual Process | With /ship |
|---|---|---|
| Sync with main | 3-10 min (more with conflicts) | Automatic |
| Rerun tests | 5-15 min (waiting + reviewing) | Automatic |
| Address review comments | 10-30 min | Triaged automatically |
| Update changelog/version | 5-10 min | Automatic |
| Push and open PR | 5-10 min | Automatic |
| Total | 28-75 min | Single command |
Across a team of five engineers, each shipping two to three branches per week, the time savings from adopting the gstack AI shipping workflow add up to multiple engineering-days per sprint. That's time reclaimed for the work that actually requires human creativity and judgment — exactly the kind of productivity gain that justifies adopting AI-powered development tools.
Integration with the gstack Ecosystem
The /ship skill becomes even more powerful in the context of the full gstack skill set. Because every skill in the ecosystem shares context about your project, /ship knows what /plan defined, what /code implemented, and what /review flagged. This shared understanding means the PR description is accurate, the changelog entries are meaningful, and the Greptile triage is informed by the actual intent behind your changes.
For teams using browser automation testing or cookie-based authenticated testing, /ship coordinates with these test suites as part of its verification step. If your end-to-end tests need to pass before a PR can be opened, /ship ensures they run and reports any failures before pushing.
The skill also ties into the retrospective process. Data about shipping velocity, time-to-PR, and branch age feeds into your team retrospectives, giving you measurable evidence of workflow improvements over time.
Getting Started with /ship
If you're ready to eliminate the tedious final mile from your workflow, getting started is straightforward. Once you've completed the gstack setup and installation, the /ship skill is available immediately. There's no additional configuration required for basic usage — it reads your repository's existing conventions and adapts automatically.
For the best experience, we recommend using /ship as part of the full plan-code-review-ship pipeline. Each stage builds context that makes the next stage more effective. But even as a standalone tool, /ship will save your team significant time on every release.
Start with the setup guide to install gstack, then try running /ship on your next ready branch. You'll wonder how you ever shipped without it.