Skip to content

Give a Custom process an issue for its session Steps - #1414

Merged
JacobStephens2 merged 2 commits into
issue-877from
issue-1385
Oct 26, 2026
Merged

JacobStephens2 merged 2 commits into
issue-877from
issue-1385

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Oct 26, 2026 •

Copy link
Copy Markdown
Owner

Summary

thirdshift process <name> issue <issue>
  resolve number or Issue URL, as thirdshift skill does
  origin mismatch → stop before any worktree
  for each session Step, and again before its one Resume
    untrusted edit since the Process started → fail the Step
    write .thirdshift-issue.md
    start the session
  command Step
    THIRDSHIFT_ISSUE_URL set to that URL, or unset when there is no issue

Seams: the CLI thirdshift process <name> issue <issue>; the session worktree's .thirdshift-issue.md and the prompt that names the issue; the untrusted-edit check before a session Step and before its Resume; THIRDSHIFT_ISSUE_URL on a command Step.

Evidence

  • Before: cargo test --test process an_issue_number_and_an_issue_url_hand_the_issue_to_the_session failed. thirdshift process notes issue 7 exited 2 with usage: thirdshift process [check <name> | <name>], and no session started.
    After: cargo test --test process — 37 passed, 1 ignored. cargo test --test command_surface — 20 passed, 1 ignored. UPDATE_PROMPTS=1 cargo test --bin thirdshift prompts_page — 12 passed. cargo clippy --all-targets -- -D warnings is clean. cd site && npm ci && npm run docs exited 0.

Merge Danger

Door: two-way

The command is experimental. Dropping the issue argument restores the previous process command. A process file that does not pass issue behaves as before.

Blast Radius: narrow

Only thirdshift process <name> issue <issue> gains the issue file, the trust check and the command environment variable. thirdshift process <name> and thirdshift process check <name> are unchanged.

Unaddressed findings

Standards

  1. Duplicated Resume-once policy in src/processes.rs run_skill_on_issue (the ended.killed branch around the “resuming it once” progress line, and the later carry-on that returns Ok(message) only when final_message is non-empty). Judgement, Duplicated Code. Declined. Process Steps stay outside Session logs and StageName: Sessions::run_to_end in src/session.rs writes a session log and returns the ending even when the final message is empty. This path checks the issue again between the session and its Resume, and a Step’s result is that final message, so a killed ending with no message still fails the Step. Sharing Sessions would record a stage and a trace this ticket does not add. Parallel Steps cannot share one Logs value.

  2. Duplicated origin match in resolve_process_issue (src/processes.rs, the matches_origin bail) and duplicated pre-session gate in prepare_for_session (the trust::untrusted_edit match that bails with “since the Process started”). Judgement, Duplicated Code. Declined. The origin message matches skill::run in src/skill.rs and must run before prepare creates worktrees. The failure text says “Process”, not “Ticket run”: delivery.rs UntrustedEdit hard-codes the Ticket run sentence, and the Command log must not claim a Ticket run. STARTED_MARGIN in src/run.rs is the shared five-minute margin; the call site subtracts that constant once when the Process starts. hand_over_issue is already shared. Neither finding says the behaviour is wrong, so no separate test was required.

Spec

None.

Security

None. Security review of the issue-1385 diff against 93d6f8e found no introduced finding: the origin-mismatch gate stops before any worktree, each session Step and its Resume fail closed on an untrusted edit via the shared trust::untrusted_edit, the issue file carries only Trusted-account comments via the shared issue_for_session, and command Steps receive only the URL in THIRDSHIFT_ISSUE_URL.

Security review outcome

No unaddressed introduced findings.

Review coverage

No changed file was left unread.

Generated and not read, after the sources were reviewed: prompts/process-step-issue.md, prompts/README.md, site/prompts/index.html (UPDATE_PROMPTS=1 cargo test --bin thirdshift prompts_page, 12 passed), and site/docs/index.html (cd site && npm ci && npm run docs, exit 0).

Closes #1385

Built with grok grok 1.0.70 (f50904eaee6c) [stable] · default model · default effort

`thirdshift process <name> issue <issue>` resolves a number or an Issue URL the way `thirdshift skill` does. Each session Step gets `.thirdshift-issue.md` and names the issue. An untrusted edit since the Process started fails the next session, a Resume included, before it starts. A command Step receives THIRDSHIFT_ISSUE_URL.
@JacobStephens2
JacobStephens2 merged commit 29fded4 into issue-877 Oct 26, 2026
18 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-1385 branch October 26, 2026 23:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant