thirdshift skill runs one skill. thirdshift process is experimental: it runs skill, command or catalogue Steps from ~/.thirdshift/processes, including Steps that run together in throwaway worktrees the file names. The catalogue Step run-published-issue starts a Ticket run or a Spec run on the issue the session Step before it published. Its optional process = "<name>" setting selects the child Ticket Process, defaulting to ticket-run; it must exist and declare an Issue-branch worktree. An issue with Tickets still starts a Spec run. An optional Step can fail without stopping the process. Pass issue to give the process an issue, so each session Step works from that issue. A file can name one Issue-branch worktree and a delivery Step: the run holds the Claim, and Delivery leaves a ready-for-review pull request and then removes the Claim. A self-merge Step directly after it merges when merge or the User config asks, and a file can only tighten limits. With no issue, and neither an Issue-branch nor a Spec-branch worktree, it is a Pass: it skips, exiting 0 with no Run notification, while the repository is at its Command limit, and it does not take an Architect run's Ready-issue or Architect-idea gates. With an issue, it is not a Pass. Status, the Console and the Activity log list it as Process <name>, and a failed one is in Needs you. It sends a Run notification under the same email rules as a Ticket run, except a skipped Process sends none. Custom processes.
A Step may name its own Harness, Model and Effort. Each omitted setting inherits the Command's resolved value, including --harness and User config choices. process check prints each choice, its origin and whether the Harness starts. thirdshift process list lists Processes and marks Built-in processes; process show <name> prints a Process file exactly, ready to save under a new Custom process name. The compiled-in ticket-run file runs implement → security-review → delivery → self-merge. Ticket runs execute it by default, including those started by Spec, Architect and Security runs, inheriting the Command's Harness, Model and Effort, Child asks and Limits. The Security review and Self-merge still run only when asked. Inspect it with process show ticket-run, or use process check ticket-run with an issue <issue> argument.
Spec runs execute the compiled-in spec-run file: land-tickets → spec-review → security-review → delivery → self-merge, on a spec-branch worktree. Every starter uses it: an Issue URL, Pickup, Architect and Security runs, and run-published-issue. Dispatch, the Claim, Child asks and Limits stay in front of the file. The run keeps its sessions, progress lines and Spec run name, and records the compiled file's hash. Inspect it with thirdshift process show spec-run or validate it with thirdshift process check spec-run issue <spec>; its name is reserved against Custom processes.
Security runs execute the compiled-in security-run file: security-audit → reproduce-findings → fix-findings → close-findings. The Command limit, the lock of its kind and Ready-issue, failed-fix and unchanged-Base skip gates stay before the file. An earlier reproduced finding awaiting an allowed fix makes the first two Steps skip. The run fixes at most one finding and closes only that finding after its fix merges and its proof passes. Sessions, progress, logs, Run notifications and the Security run name stay the same, with the compiled file's hash recorded. Inspect it with thirdshift process show security-run or validate it with thirdshift process check security-run; its name is reserved against Custom processes. A copy under a new name follows the Command limit without a lock of a kind and can fix several findings.
Pickup has no Built-in process file. It selects and reserves a Ready issue, then dispatches ticket-run or spec-run.
A Custom process can instead declare a spec-branch worktree and use land-tickets to gather Tickets in dependency order into a draft Spec PR and its checklist, up to spec.parallel at once. Its process setting selects every child Ticket's Process. A file can declare one Issue-branch or one Spec-branch worktree, never both; the former refuses Specs, the latter requires one, and both require an issue and make the Claim before the worktree. The draft Spec PR keeps its Claim while it waits.
Follow land-tickets with spec-review → security-review → delivery → self-merge on the Spec-branch worktree to deliver the Spec PR. The Spec review reviews the whole Spec with its usual report contract. Delivery restores the Tickets checklist, runs the Repair loop and leaves the PR ready for review, removing its Claim. Security review and Self-merge run only when asked; a refused or incomplete Security review holds the merge.
The implement catalogue Step runs the Ticket run's implementation session on an Issue-branch worktree, starting fresh or continuing existing work. On an ordinary bug issue it diagnoses first; Flaky-test Tickets use recorded evidence directly; if the bug is not reproduced, the Process ends successfully with triage notes and needs-info, skips later Steps and cleans up its Claim and worktree.
The security-review catalogue Step reviews the Issue branch after editing and before delivery, when the command or User config asks. It keeps the Ticket run's Harness fallback, and a refused or incomplete review holds a following Self-merge.
The architecture-review catalogue Step reviews the Base branch in its own throwaway worktree. Follow it with run-published-issue to build a Strong Architect plan. An Architect idea, or thirdshift process <name> --plan-only, ends the Process successfully and skips later Steps, with the reason recorded.
security-audit → reproduce-findings audits the Base branch, records findings privately and reproduces each at its audited commit. Each Step takes its own Harness, Model and Effort and keeps completed reproductions. Both skip when a recorded finding awaits an allowed fix; Security runs keep their existing skip gates.
Every session Step gets one Resume when background work was killed as its turn ended. If the Resume leaves work running too, the Process names it and carries on; a later failure names that killed work first. A Resume does not spend a Repair.
The compiled-in architect-run file runs architecture-review → run-published-issue. Architect runs execute it after the Command limit, the lock of their kind and the open-plan, waiting-idea and Ready-or-settling-issue gates. The review Step ends successfully on an idea or with --plan-only; otherwise the next Step runs the plan. Read it with thirdshift process show architect-run or validate it with thirdshift process check architect-run. A copy under a new Custom process name follows the Command limit without a lock of a kind. Architect runs keep their name, progress, logs and Run notification.
Command records and Session traces keep each run's Process name, whether it is Built-in or Custom, and the SHA-256 hash of its file. Architect runs record the compiled architect-run file. Child Ticket runs record their selected Process independently of their parent, defaulting to ticket-run. Runs awaiting a Built-in file keep their run-type name without a hash; the displayed run names stay the same.
A Custom process can use fix-findings → close-findings to fix reproduced Security findings and close only merged fixes whose proof-of-concept passes against the merged Base branch. The Steps keep private records and the Security run’s fixing and closing permissions. fix-findings can select a child Ticket Process with process; it defaults to ticket-run. Failed fixes and failed rechecks stay with the Day shift. Their sessions and the Ticket runs they start stay off any configured OTLP endpoint, as a Security run's do. The Built-in Security run still fixes at most one finding per invocation.