Repository navigation
Publish an Issue-branch Process through Delivery and remove the Claim - #1426
Merged
Merged
Conversation
…#1388) A Process can name one issue-branch worktree and a delivery Step. The run creates the Issue branch, holds the Claim, and leaves a ready-for-review pull request. A missing issue or a missing delivery is refused before any session.
The test job rejected needless borrows, a redundant closure, and functions past clippy's argument limit. Delivery's envelope and publish steps, a Process's worktree source, and a Step prompt now carry those arguments in the types that already name them.
# Conflicts: # README.md # docs/guide.md # site/docs/index.html # site/how-it-works/index.html # site/index.html # src/processes.rs
This was referenced Oct 27, 2026
Merged
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.
Summary
A Custom process can declare one Issue-branch worktree and a
deliveryStep. The run selects the Issue branch the way a Ticket run does, holds the Claim, and Delivery publishes a pull request and leaves it ready for review. The Claim is then removed. A failure before Delivery keeps the branch, as a Failed ticket run does.thirdshift process check <name> [issue <issue>]prints that plan and starts no session. A file that would lose work is refused before any session, naming the rule and the line: no issue, nodeliveryafter the last Step that uses the Issue branch, a second Issue-branch worktree, a catalogue value other thandelivery, or adeliveryStep that is optional, parallel, or on another worktree.Continuation Steps in that checkout are told to build on the branch's commits, the same sentence a Ticket run uses (ADR-0002).
Tests talk to the
thirdshiftbinary throughtests/supportScenario.Closes #1388
Evidence
After:
cargo test --test process --offline— 73 passed, 1 ignored. The acceptance runs arean_issue_branch_process_ends_ready_for_review_and_removes_the_claim,an_issue_branch_process_needs_an_issue,an_issue_branch_without_a_delivery_after_its_editing_steps_is_refused,a_step_that_fails_before_delivery_keeps_the_issue_branch_work,a_delivery_repair_uses_the_commands_harness_model_and_effort, anda_continuation_prompt_differs_from_a_fresh_start.scripts/affected-tests origin/issue-877: sitenpm test50 passed;cargo nextest run3171 passed, 70 skipped.CI notes
testfailedpartial_muse_and_opencode_messages_are_not_successonly for the opencode fixture (could not write the prompt to opencode: Broken pipe); the same run's muse fixture passed.tests/skill.rs,src/skill.rs,src/process.rs, andsrc/harnessmatchorigin/issue-877(dc48889d), whose CI passed. The test passed 21 local runs.Merge Danger
Door: two-way
The change is a new Process shape plus a shared Delivery envelope. Reverting the branch removes both. No data migration.
Blast Radius: Delivery
Delivery::publishandDelivery::deliversharerun_checked. A mistake there would affect Ticket-run Delivery as well as an Issue-branch Process. A Process with no Issue-branch worktree still runs as before. This does not Self-merge.Unaddressed findings
None. The review raised 3 Standards findings and 1 Spec finding. Each was addressed, and none was skipped.
deliverandpublishboth callrun_checked.preserve_step_failuretakes theContinuationfromcontinuation, andrecovery::preservation_ofreports a failed push.names_issue_worktreeis shared bystep_dirandresolve_dir.c35eeb81(injection, access control, resource/file handling, business logic, chained trust boundaries; the repo has no SECURITY.md or threat model). New untrusted-data flows checked in source and covered by passing tests: the issue title reachesgh pr create --titleonly as an argv element (Command::new("gh").args, no shell); Issue branch names round-trip strictly asissue-N[-branch-K]inbranch_number;number_from_urlvalidates owner/repo/pull/N; process-file refusals happen before any session. No proof-of-concept failed, so no fix and no new commits.a_continuation_prompt_differs_from_a_fresh_startfailed on that sentence, then passed afterprompt::process_stepuses the ADR-0002 continuation sentence. The test is kept. After the rebase it passed again insidecargo test --test process.Security review outcome
No unaddressed introduced findings.
Review coverage
The review's fixed point was local
issue-877before this branch was rebased ontoorigin/issue-877, which includes #1387. Both axes reported no unread changed file against that list.Generated output, excluded and not read:
site/docs/index.html, generated fromdocs/guide.md.cd site && npm run docs:checkpassed in this session, insidenpm test(50 passed).site/prompts/index.html,prompts/README.md,prompts/process-step.md,prompts/process-step-later.md,prompts/process-step-issue.md. Sources aresrc/prompt.rsandsrc/prompts_page.rs.cargo test --bin thirdshift prompts_pagewas 12 passed. Those paths are unchanged againstorigin/issue-877.After the review, rebasing onto
origin/issue-877resolved conflicts. The review did not re-read these files in their merged form:README.mddocs/guide.mdsite/docs/index.html(also the generated exclusion above)site/how-it-works/index.htmlsite/index.htmlsrc/args.rssrc/main.rssrc/processes.rstests/process.rsThe merge keeps #1387's Run notification, status, and Console naming, and this issue's Issue branch and Delivery.
parse_processacceptsprocess check <name> [issue <issue>]and still refuses email flags oncheck.Built with grok grok 1.0.70 (f50904eaee6c) [stable] · default model · default effort