Repository navigation
feat(deliver): baton deliver pushes a ready feature and opens its pull request - #45
Merged
Merged
Conversation
…l request baton deliver <slug> --title <title> takes a ready feature, whose work is the lead's final report, pushes its branch to origin as the branch's upstream, and opens its pull request with the user's gh: gh pr create with --head, --title and --body-file, so gh pushes nothing, asks nothing and applies no template. The feature becomes delivered, which the orchestrator still holds, keeps the pull request's link, and logs a deliver event with it. Once the user hands a delivered feature back to the lead and it's ready again, baton deliver <slug>, without a title, pushes the new commits and comments the new report on that pull request. A push or a gh that fails leaves the feature ready, for the user to deliver again. It runs in the orchestrator's pane, where the guard asks the user first, or in the user's shell, and refuses a role's pane. The orchestrator's prompt proposes a title when it reports a ready feature and gives the report's path. Decision 61, fact 43, risk 15 and the README's Pull requests section explain it. Decision 34 records the user's call on gh's exec.
|
Bakhomious
added a commit
that referenced
this pull request
Nov 4, 2026
#46) The user dropped Homebrew on 2026-11-04 and chose, through nudge, GitHub releases that mise's github: backend installs, as nudge's releases were before. Decision 5 records that call in place of the formula in codedogapp/homebrew-tap, and the homebrew step becomes release, whose archive still carries mvdan.cc/sh's BSD-3 notice (decision 50). The new pane-path step answers what puts baton on a pane's PATH without Homebrew: today nothing does. A pane gets the PATH of the baton that ran tmux, so a baton started by its path leaves the agents' baton commands without it, as in the guard-orchestrator live check (fact 37). deliver-github is done (#45). Merged under the user's standing OK of 2026-10-31.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



baton deliver <slug> --title <title>pushes a ready feature's branch tooriginand opens its pull request with the user's owngh. This is plan row 68,deliver-github.What
Flow: a new status,
delivered, which the orchestrator still holds.Flow.Delivertakes a ready feature only (its work is the lead's final report). The orchestrator can hand a delivered feature back to the lead, as from any status it holds.State:
feature.jsonkeeps the pull request's link (pullRequest), and the journal gets adeliverevent with the link as its text. The format stays 1: no baton was released without the new status.Push:
repo.Pushrunsgit push --set-upstream origin refs/heads/<branch>, with the user's git and credentials.gh: the new
internal/githubrunsgh pr create --head=<branch> --title=<title> --body-file=<report>and returns the URL that gh prints;gh pr comment --body-file=<report> -- <url>for a later delivery. baton's values always come after an=or a--.Command, in this order:
BATON_ROLEset to anything butorchestrator). The user's shell is fine.A push or a gh that fails leaves the feature ready, for the user to deliver again; a second push of the same commits changes nothing.
Guard: in the orchestrator's pane,
baton deliverasks the user first; in a role's pane it is denied ("isn't a role's command").Prompt: when it reports a ready feature, the orchestrator proposes a title and gives the report's path, since the delivery publishes the report as it is. It pushes and opens pull requests with
baton deliveralone.Docs:
ghin the requirements, and a new Pull requests section.jira-loginis Done (feat(jira): tell how to replace a token that Jira refuses #44). Decision 61, fact 43 (gh 2.103.2'spr createandpr comment, read in its source) and risk 15 are new. Decisions 34, 41 and 54 and the delivery, commands, state and config paragraphs are amended. Deliver ideas are added.Size
About 245 added lines outside the tests, comments included, above the step's usual 150: the push, the gh runner and the command only make sense together.
Flagged (decision 61, risk 15)
branch.<head>.gh-merge-baseis the way in, later.upstreamremote, gh takes it for the base repo and looks for the branch there.already existsand the link; the user closes it or carries on by hand.Suppression
There is one new
//nolint:gosec(G204) plus a// NOSONAR(go:S4036), each with its reason, at gh's one exec site, as at git's. It follows the user's answer of 2026-11-04 through nudge ("nolint + NOSONAR with reasons, as git's"), and decisions 34 and 61 record it.Checks
mise run check: green; coverage 99.5% in total, 100% forinternal/githubandinternal/flow, 99.9% forinternal/cli.-f /dev/null, its ownTMUX_TMPDIR), the stand-in copilot, a local bareoriginand a stand-inghthat logs its arguments and the body. It covered:baton wait;feature.json(delivered,pullRequest), the journal andbaton status;gh pr commentwith the new report;askin the orchestrator's pane,denyin the lead's;-h.