You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Run a configurable prompt or skill when settling a thread
#19004
The Settle thread action only flips thread state. Many of us end a thread with a wrap-up routine (link/unwatch PRs, clean worktrees and temp files, update the tracker, write a hand-off) that we currently trigger by typing a slash command such as /my-settle-skill, which then settles the thread itself. Clicking Settle in the UI skips that routine entirely, so the button and the "real" way to finish a thread diverge.
What exists today, and why it is not enough
runOnSettle project action (feat(server): run a project action when a worktree thread settles #16290, shipped). A project action with "runOnSettle": true runs a shell script in the thread's worktree when the thread settles. It runs a terminal command, not a prompt or skill, so it cannot invoke a skill inside the thread's own agent session. The only workaround is a script that starts a separate headless agent (for example claude -p "/my-settle-skill"), which has none of the thread's context.
Per project, not global. It is configured in each project's t3.json; there is no global setting, so "run this on every project" means editing every project.
Worktree threads only. Threads in a project's main checkout are skipped.
This proposal is the prompt/skill counterpart of runOnSettle, run in the thread itself.
Proposal
An optional settle prompt: a prompt or skill invocation (e.g. /t3-settle) that T3 sends to the agent as a final turn when the user clicks Settle, then settles the thread once that turn completes.
Configurable globally, with an optional per-project override (the per-project runOnSettle setting already shows where a project-level hook lives).
Off by default; Settle stays instant when unset.
The skill should not need to call settle itself: T3 settles the thread after the turn, so a wrap-up skill is not circular.
Open questions
Running thread: queue the wrap-up turn, or refuse/ask?
Settle timing: settle immediately and run the wrap-up in the background, or only after the turn finishes (and what if it fails)?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Problem
The Settle thread action only flips thread state. Many of us end a thread with a wrap-up routine (link/unwatch PRs, clean worktrees and temp files, update the tracker, write a hand-off) that we currently trigger by typing a slash command such as
/my-settle-skill, which then settles the thread itself. Clicking Settle in the UI skips that routine entirely, so the button and the "real" way to finish a thread diverge.What exists today, and why it is not enough
runOnSettleproject action (feat(server): run a project action when a worktree thread settles #16290, shipped). A project action with"runOnSettle": trueruns a shell script in the thread's worktree when the thread settles. It runs a terminal command, not a prompt or skill, so it cannot invoke a skill inside the thread's own agent session. The only workaround is a script that starts a separate headless agent (for exampleclaude -p "/my-settle-skill"), which has none of the thread's context.t3.json; there is no global setting, so "run this on every project" means editing every project.runOnSettle. feat(scheduled-tasks): optionally settle threads on completion #15167 is the reverse direction: settle a thread when a scheduled task finishes.This proposal is the prompt/skill counterpart of
runOnSettle, run in the thread itself.Proposal
An optional settle prompt: a prompt or skill invocation (e.g.
/t3-settle) that T3 sends to the agent as a final turn when the user clicks Settle, then settles the thread once that turn completes.runOnSettlesetting already shows where a project-level hook lives).Open questions
runOnSettle: which runs first when both are set, the prompt turn or the script?All reactions