Start with one item:
/devstride:build-item
build-item selects the next unblocked leaf, marks it In Progress, creates a branch, builds and reviews it, merges it through the configured path, updates the DevStride item, and stops after that iteration. Once you trust one pass, /loop /devstride:build-item repeats the process across the plan.
| Situation | Working base | Item pull request? | Later release |
|---|---|---|---|
| Planned leaf under a release unit; release-unit branches and fast merges enabled | The release unit’s integration branch | No. Local review, local checks, local merge. | One full-diff release pull request carries the completed unit to epicIntegrationBranches.releaseTarget. |
| Planned leaf under a release unit; fast merges disabled | The release unit’s integration branch | Yes, targeting that integration branch. | The completed unit still gets its release pull request. |
| Release-unit branches disabled, or no release-unit ancestor | baseBranch | Yes, targeting baseBranch. | No separate release-unit branch path for that item. |
| One-off created outside a sequenced plan | baseBranch, unconditionally | Yes, targeting baseBranch. | None. The item pull request is its full release gate. |
A one-off may be filed under a release unit, so the skill does not infer its path from ancestry. It detects the one-off from the leaf type, title numbering, and dependency relationships, then explicitly bypasses release-unit branch derivation.
Empty arguments mean “next.” You can also name a leaf, say next under I1234, or pass a parent item number by itself to scope selection under that plan.
The next item is the highest-priority open leaf whose blockers are Done, inside the earliest-dated open parent item. Relationships are fetched explicitly because normal summary projections omit them.
For planned work, the working-base precedence is:
integrationBranch;epicIntegrationBranches.enabled is true;baseBranch.The release-unit ancestor is found by walking the entire parent chain and fetching each ancestor’s work type. The integration branch is created from a fresh base branch on the unit’s first item and then reused; its date is the creation date, not the current date.
branch-feature stops on a dirty tree and branches from the resolved working base.ultracode-build understands the contract, implements in small green commits, and runs a mandatory maximum-effort Claude review whose breadth scales with risk.pr and review.epicIntegrationBranches.autoRelease is true. Setup writes it false, so a newly configured repository stops at release-ready for an owner.The skill renders its own numbered progress table as it moves. Its internal sequence is 0–8 with a 6.5; the list above is a reader-oriented summary, not those internal labels.
With epicIntegrationBranches.fastStoryMerges.enabled: true, a planned leaf on an integration branch receives:
review’s local-only mode;--no-ff merge onto the release-unit branch after all findings and checks settle.There is no item pull request, cloud reviewer, CI run, or review-thread bookkeeping. Those gates move to the completed release unit; they are not declared passed on the item.
Fast mode requires at least one local review engine. If no build-time Claude pass covered the diff and no local CLI is available, the item falls back to the pull-request path. Red local checks always stop the merge.
When the unit reaches zero open leaves and automatic release is enabled, the loop:
deleteBranchAfterRelease allows it;With autoRelease: false, none of those release mutations starts automatically; the unit is reported release-ready.
pr authors the configured body, requests every configured cloud reviewer when it opens the pull request, and delegates findings and CI settlement to review.
In a draft-held repository:
lessonsDoc before CI.preShipChecks run against the final reviewed diff while the pull request remains held.The draft hold is conditional on review.openPullRequestsAsDraft, review.readyForReviewReleasesCi, and review.ciHeldUntilReviewSettled. When all three are false, the pull request opens ready and CI runs alongside review. Mixed values take the strictest behavior and are reported.
opened, synchronize, reopened, and ready_for_review, and the relevant jobs must be gated while the pull request is a draft. Setup detects this but never edits it; doctor reports the exact gap./devstride:create-story add a one-time export
/devstride:create-defect retry creates duplicate records
The create skills ask for a parent, board, and assignee, create the item without plan numbering or dependency edges, and invoke build-item <new-item> once. The one-off ships through its own base-branch pull request and terminates instead of selecting another item.
Use insert-story or insert-defect when the new work belongs in an existing plan and should be reached by the dependency walk.
/devstride:branch-hotfix fix-login-crash
This creates a branch from a fresh hotfixBaseBranch, so the fix does not carry unreleased development work. It does not open a pull request; build the fix, then use /devstride:pr targeting the production branch.
/devstride:release
This is separate from a release-unit pull request. It promotes release.releaseSource to release.productionBranch:
release.autoDeployOnMerge consequence;Passing no docs or skip docs suppresses the docs phase. docs only updates documentation for an already-shipped delta without cutting a production release.