From 2ef311fa6f7febb5abb49a4bf50b4ffc31d09d3c Mon Sep 17 00:00:00 2001 From: Lily Shen <115414357+lilyshen0722@users.noreply.github.com> Date: Fri, 23 Oct 2026 15:41:15 -0700 Subject: [PATCH 1/8] docs: add working-in-turns fleet skill Co-authored-by: quire Agent-Model: codex/gpt-5.6-luna/xhigh --- fleet-skills/working-in-turns/SKILL.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 fleet-skills/working-in-turns/SKILL.md diff --git a/fleet-skills/working-in-turns/SKILL.md b/fleet-skills/working-in-turns/SKILL.md new file mode 100644 index 0000000000..b682a15491 --- /dev/null +++ b/fleet-skills/working-in-turns/SKILL.md @@ -0,0 +1,14 @@ +--- +name: working-in-turns +description: Keep each turn bounded, checkpointed, and reviewable. +user-invocable: false +last_updated: 2026-10-23 +--- + +# Working in Turns + +- Size each turn to finish well inside 45 minutes. If the work is larger, split it and say how in the row. +- Push a checkpoint commit before minute 40. A draft PR is enough. +- Put every gate ask on the PR with the exact head and in the pod. +- Ask reviewers in a pod they actually belong to. +- After a HOLD, fix it, push the new head, and re-ask on the PR. From 103779f1aa7437241c84bb3466dcdf42b8386e91 Mon Sep 17 00:00:00 2001 From: Lily Shen <115414357+lilyshen0722@users.noreply.github.com> Date: Fri, 23 Oct 2026 17:00:40 -0700 Subject: [PATCH 2/8] docs: require PR review verdicts Co-authored-by: quire Agent-Model: codex/gpt-5.6-luna/xhigh --- fleet-skills/working-in-turns/SKILL.md | 1 + 1 file changed, 1 insertion(+) diff --git a/fleet-skills/working-in-turns/SKILL.md b/fleet-skills/working-in-turns/SKILL.md index b682a15491..1a00a0cd7f 100644 --- a/fleet-skills/working-in-turns/SKILL.md +++ b/fleet-skills/working-in-turns/SKILL.md @@ -12,3 +12,4 @@ last_updated: 2026-10-23 - Put every gate ask on the PR with the exact head and in the pod. - Ask reviewers in a pod they actually belong to. - After a HOLD, fix it, push the new head, and re-ask on the PR. +- File every verdict with `gh pr review --comment --body-file `. End it with `GATE: PASS` or `GATE: HOLD`; do not use API writes or pod chat alone. From 1acd1451fea4d2fd4d3b30d1de8b0bff223efb57 Mon Sep 17 00:00:00 2001 From: Lily Shen <115414357+lilyshen0722@users.noreply.github.com> Date: Fri, 23 Oct 2026 17:01:36 -0700 Subject: [PATCH 3/8] docs: link review verdict guidance Co-authored-by: quire Agent-Model: codex/gpt-5.6-luna/xhigh --- docs/agents/skills/commonly/SKILL.md | 5 +++-- fleet-skills/working-in-turns/SKILL.md | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/agents/skills/commonly/SKILL.md b/docs/agents/skills/commonly/SKILL.md index aae7e0ac2b..b08b397b95 100644 --- a/docs/agents/skills/commonly/SKILL.md +++ b/docs/agents/skills/commonly/SKILL.md @@ -174,7 +174,7 @@ live. | what you produced | where it belongs | |---|---| -| a review of a pull request | `gh pr review` — approve, or request changes | +| a review of a pull request | [review checklist rule 44](../../../development/review-checklist.md#what-a-clearance-can-bind) — `gh pr review --comment --body-file `; end with `GATE: PASS` or `GATE: HOLD` | | a decision with a lasting consequence | an ADR in `docs/adr/` | | an idea nobody is building yet | the idea register | | a bug or a piece of work | a GitHub issue | @@ -184,7 +184,8 @@ This matters most for reviews. Excellent review reasoning posted as a pod message does not gate anything and cannot be acted on by someone reading the pull request — the merge button does not know the conversation happened. If you reviewed something and it is not ready, **say so on the pull request** with -`gh pr review --request-changes`, not only in chat. +`gh pr review --comment --body-file ` and end with `GATE: HOLD`, per the +[review checklist rule 44](../../../development/review-checklist.md#what-a-clearance-can-bind), not only in chat. When you approve, say what you verified AND what you could not. An unqualified approval on something you did not check is worse than a partial one, because it diff --git a/fleet-skills/working-in-turns/SKILL.md b/fleet-skills/working-in-turns/SKILL.md index 1a00a0cd7f..d50d361e05 100644 --- a/fleet-skills/working-in-turns/SKILL.md +++ b/fleet-skills/working-in-turns/SKILL.md @@ -12,4 +12,4 @@ last_updated: 2026-10-23 - Put every gate ask on the PR with the exact head and in the pod. - Ask reviewers in a pod they actually belong to. - After a HOLD, fix it, push the new head, and re-ask on the PR. -- File every verdict with `gh pr review --comment --body-file `. End it with `GATE: PASS` or `GATE: HOLD`; do not use API writes or pod chat alone. +- File every verdict as described in the [review checklist rule 44](../../docs/development/review-checklist.md#what-a-clearance-can-bind). From ccc763753b01772d4c5a8ae06bd2538fde759872 Mon Sep 17 00:00:00 2001 From: Lily Shen <115414357+lilyshen0722@users.noreply.github.com> Date: Fri, 23 Oct 2026 20:50:06 -0700 Subject: [PATCH 4/8] docs: clean reviewer gate checkouts Co-authored-by: quire Agent-Model: codex/gpt-5.6-luna/xhigh --- docs/agents/skills/commonly/SKILL.md | 5 +++++ fleet-skills/working-in-turns/SKILL.md | 16 +++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/docs/agents/skills/commonly/SKILL.md b/docs/agents/skills/commonly/SKILL.md index b08b397b95..833e1e6228 100644 --- a/docs/agents/skills/commonly/SKILL.md +++ b/docs/agents/skills/commonly/SKILL.md @@ -187,6 +187,11 @@ reviewed something and it is not ready, **say so on the pull request** with `gh pr review --comment --body-file ` and end with `GATE: HOLD`, per the [review checklist rule 44](../../../development/review-checklist.md#what-a-clearance-can-bind), not only in chat. +After filing the verdict, remove the PR checkout or worktree you used +(`git worktree remove --force ` or remove the clone, then `git worktree +prune`). Prefer one reusable checkout per seat and fetch each PR into it rather +than creating a fresh directory per review. + When you approve, say what you verified AND what you could not. An unqualified approval on something you did not check is worse than a partial one, because it spends trust you have not earned. diff --git a/fleet-skills/working-in-turns/SKILL.md b/fleet-skills/working-in-turns/SKILL.md index d50d361e05..5e2df255a5 100644 --- a/fleet-skills/working-in-turns/SKILL.md +++ b/fleet-skills/working-in-turns/SKILL.md @@ -2,7 +2,7 @@ name: working-in-turns description: Keep each turn bounded, checkpointed, and reviewable. user-invocable: false -last_updated: 2026-10-23 +last_updated: 2026-10-24 --- # Working in Turns @@ -13,3 +13,17 @@ last_updated: 2026-10-23 - Ask reviewers in a pod they actually belong to. - After a HOLD, fix it, push the new head, and re-ask on the PR. - File every verdict as described in the [review checklist rule 44](../../docs/development/review-checklist.md#what-a-clearance-can-bind). +- After filing a verdict, remove the PR checkout or worktree with `git worktree remove --force ` (or remove the clone), then run `git worktree prune`. +- Reuse one checkout per seat and fetch each PR into it; do not create a fresh directory per review. + +## Gate ask template + +Address the reviewer in a pod they belong to and include the PR number, exact +head SHA, files or properties to check, and the required verdict form: + +> Please review PR # at ``. Check ``. +> File the verdict as a PR review, ending with exactly `GATE: PASS` or +> `GATE: HOLD`. After filing it, remove this checkout/worktree and run +> `git worktree prune`; reuse one checkout per seat for the next review. + +Never create a fresh checkout per PR when a reusable seat checkout is available. From 94a37002f2275cb3e63f2d4c51c65e6b0ffee779 Mon Sep 17 00:00:00 2001 From: Lily Shen <115414357+lilyshen0722@users.noreply.github.com> Date: Fri, 23 Oct 2026 20:51:16 -0700 Subject: [PATCH 5/8] docs: make gate verdict format explicit Co-authored-by: quire Agent-Model: codex/gpt-5.6-luna/xhigh --- docs/agents/skills/commonly/SKILL.md | 9 ++++++--- fleet-skills/working-in-turns/SKILL.md | 10 ++++++---- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/docs/agents/skills/commonly/SKILL.md b/docs/agents/skills/commonly/SKILL.md index 833e1e6228..144b00efdc 100644 --- a/docs/agents/skills/commonly/SKILL.md +++ b/docs/agents/skills/commonly/SKILL.md @@ -174,7 +174,7 @@ live. | what you produced | where it belongs | |---|---| -| a review of a pull request | [review checklist rule 44](../../../development/review-checklist.md#what-a-clearance-can-bind) — `gh pr review --comment --body-file `; end with `GATE: PASS` or `GATE: HOLD` | +| a review of a pull request | [review checklist rule 44](../../../development/review-checklist.md#what-a-clearance-can-bind) and [51](../../../development/review-checklist.md#where-a-verdict-is-readable) — `gh pr review --comment --body-file `; the first line names the exact head and verdict, and the final non-blank line is exactly `GATE: PASS` or `GATE: HOLD` | | a decision with a lasting consequence | an ADR in `docs/adr/` | | an idea nobody is building yet | the idea register | | a bug or a piece of work | a GitHub issue | @@ -184,8 +184,11 @@ This matters most for reviews. Excellent review reasoning posted as a pod message does not gate anything and cannot be acted on by someone reading the pull request — the merge button does not know the conversation happened. If you reviewed something and it is not ready, **say so on the pull request** with -`gh pr review --comment --body-file ` and end with `GATE: HOLD`, per the -[review checklist rule 44](../../../development/review-checklist.md#what-a-clearance-can-bind), not only in chat. +`gh pr review --comment --body-file `; put the exact head and `GATE: HOLD` +verdict on the first line and make `GATE: HOLD` the final non-blank line, per +[review checklist rule 44](../../../development/review-checklist.md#what-a-clearance-can-bind) +and [51](../../../development/review-checklist.md#where-a-verdict-is-readable), +not only in chat. After filing the verdict, remove the PR checkout or worktree you used (`git worktree remove --force ` or remove the clone, then `git worktree diff --git a/fleet-skills/working-in-turns/SKILL.md b/fleet-skills/working-in-turns/SKILL.md index 5e2df255a5..b910d9e543 100644 --- a/fleet-skills/working-in-turns/SKILL.md +++ b/fleet-skills/working-in-turns/SKILL.md @@ -12,7 +12,7 @@ last_updated: 2026-10-24 - Put every gate ask on the PR with the exact head and in the pod. - Ask reviewers in a pod they actually belong to. - After a HOLD, fix it, push the new head, and re-ask on the PR. -- File every verdict as described in the [review checklist rule 44](../../docs/development/review-checklist.md#what-a-clearance-can-bind). +- File every verdict as described in [review checklist rule 44](../../docs/development/review-checklist.md#what-a-clearance-can-bind) and [rule 51](../../docs/development/review-checklist.md#where-a-verdict-is-readable): the first line must name the exact head and verdict, and the final non-blank line must be the bare `GATE: PASS` or `GATE: HOLD` sentinel. - After filing a verdict, remove the PR checkout or worktree with `git worktree remove --force ` (or remove the clone), then run `git worktree prune`. - Reuse one checkout per seat and fetch each PR into it; do not create a fresh directory per review. @@ -22,8 +22,10 @@ Address the reviewer in a pod they belong to and include the PR number, exact head SHA, files or properties to check, and the required verdict form: > Please review PR # at ``. Check ``. -> File the verdict as a PR review, ending with exactly `GATE: PASS` or -> `GATE: HOLD`. After filing it, remove this checkout/worktree and run -> `git worktree prune`; reuse one checkout per seat for the next review. +> File the verdict as a PR review. Its first line must be `HEAD: +> — GATE: PASS` or `HEAD: — GATE: HOLD`, and its final +> non-blank line must be exactly `GATE: PASS` or `GATE: HOLD`, per review +> checklist rules 44 and 51. After filing it, remove this checkout/worktree and +> run `git worktree prune`; reuse one checkout per seat for the next review. Never create a fresh checkout per PR when a reusable seat checkout is available. From d825123c8757c962fc8f7f66b3a5789d75039345 Mon Sep 17 00:00:00 2001 From: Lily Shen <115414357+lilyshen0722@users.noreply.github.com> Date: Fri, 23 Oct 2026 20:55:30 -0700 Subject: [PATCH 6/8] chore: sync packaged Commonly skill Co-authored-by: quire Agent-Model: codex/gpt-5.6-luna/xhigh --- cli/skills/commonly/SKILL.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/cli/skills/commonly/SKILL.md b/cli/skills/commonly/SKILL.md index aae7e0ac2b..144b00efdc 100644 --- a/cli/skills/commonly/SKILL.md +++ b/cli/skills/commonly/SKILL.md @@ -174,7 +174,7 @@ live. | what you produced | where it belongs | |---|---| -| a review of a pull request | `gh pr review` — approve, or request changes | +| a review of a pull request | [review checklist rule 44](../../../development/review-checklist.md#what-a-clearance-can-bind) and [51](../../../development/review-checklist.md#where-a-verdict-is-readable) — `gh pr review --comment --body-file `; the first line names the exact head and verdict, and the final non-blank line is exactly `GATE: PASS` or `GATE: HOLD` | | a decision with a lasting consequence | an ADR in `docs/adr/` | | an idea nobody is building yet | the idea register | | a bug or a piece of work | a GitHub issue | @@ -184,7 +184,16 @@ This matters most for reviews. Excellent review reasoning posted as a pod message does not gate anything and cannot be acted on by someone reading the pull request — the merge button does not know the conversation happened. If you reviewed something and it is not ready, **say so on the pull request** with -`gh pr review --request-changes`, not only in chat. +`gh pr review --comment --body-file `; put the exact head and `GATE: HOLD` +verdict on the first line and make `GATE: HOLD` the final non-blank line, per +[review checklist rule 44](../../../development/review-checklist.md#what-a-clearance-can-bind) +and [51](../../../development/review-checklist.md#where-a-verdict-is-readable), +not only in chat. + +After filing the verdict, remove the PR checkout or worktree you used +(`git worktree remove --force ` or remove the clone, then `git worktree +prune`). Prefer one reusable checkout per seat and fetch each PR into it rather +than creating a fresh directory per review. When you approve, say what you verified AND what you could not. An unqualified approval on something you did not check is worse than a partial one, because it From d6f96aa42bb8f6ecf087cbd3c8faaabbca45cd0a Mon Sep 17 00:00:00 2001 From: Lily Shen <115414357+lilyshen0722@users.noreply.github.com> Date: Sat, 24 Oct 2026 00:27:12 -0700 Subject: [PATCH 7/8] docs: clarify reviewer checkout guidance Co-authored-by: quire Agent-Model: codex/gpt-5.6-luna/xhigh --- cli/skills/commonly/SKILL.md | 14 +++++++------- docs/agents/skills/commonly/SKILL.md | 8 ++++---- fleet-skills/working-in-turns/SKILL.md | 11 ++++++----- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/cli/skills/commonly/SKILL.md b/cli/skills/commonly/SKILL.md index 144b00efdc..7f945e0067 100644 --- a/cli/skills/commonly/SKILL.md +++ b/cli/skills/commonly/SKILL.md @@ -174,7 +174,7 @@ live. | what you produced | where it belongs | |---|---| -| a review of a pull request | [review checklist rule 44](../../../development/review-checklist.md#what-a-clearance-can-bind) and [51](../../../development/review-checklist.md#where-a-verdict-is-readable) — `gh pr review --comment --body-file `; the first line names the exact head and verdict, and the final non-blank line is exactly `GATE: PASS` or `GATE: HOLD` | +| a review of a pull request | [review checklist rule 44](../../../docs/development/review-checklist.md#what-a-clearance-can-bind) and [51](../../../docs/development/review-checklist.md#where-a-verdict-is-readable) — `gh pr review --comment --body-file `; the first line names the exact head and verdict, and the final non-blank line is exactly `GATE: PASS` or `GATE: HOLD` | | a decision with a lasting consequence | an ADR in `docs/adr/` | | an idea nobody is building yet | the idea register | | a bug or a piece of work | a GitHub issue | @@ -186,14 +186,14 @@ pull request — the merge button does not know the conversation happened. If yo reviewed something and it is not ready, **say so on the pull request** with `gh pr review --comment --body-file `; put the exact head and `GATE: HOLD` verdict on the first line and make `GATE: HOLD` the final non-blank line, per -[review checklist rule 44](../../../development/review-checklist.md#what-a-clearance-can-bind) -and [51](../../../development/review-checklist.md#where-a-verdict-is-readable), +[review checklist rule 44](../../../docs/development/review-checklist.md#what-a-clearance-can-bind) +and [51](../../../docs/development/review-checklist.md#where-a-verdict-is-readable), not only in chat. -After filing the verdict, remove the PR checkout or worktree you used -(`git worktree remove --force ` or remove the clone, then `git worktree -prune`). Prefer one reusable checkout per seat and fetch each PR into it rather -than creating a fresh directory per review. +After filing the verdict, choose a checkout strategy: inspect and remove or prune +a temporary PR checkout only after checking for uncommitted work, or keep one +reusable checkout and clean or refetch it for the next review. Never use +`git worktree remove --force` before checking for uncommitted work. When you approve, say what you verified AND what you could not. An unqualified approval on something you did not check is worse than a partial one, because it diff --git a/docs/agents/skills/commonly/SKILL.md b/docs/agents/skills/commonly/SKILL.md index 144b00efdc..a74680dc64 100644 --- a/docs/agents/skills/commonly/SKILL.md +++ b/docs/agents/skills/commonly/SKILL.md @@ -190,10 +190,10 @@ verdict on the first line and make `GATE: HOLD` the final non-blank line, per and [51](../../../development/review-checklist.md#where-a-verdict-is-readable), not only in chat. -After filing the verdict, remove the PR checkout or worktree you used -(`git worktree remove --force ` or remove the clone, then `git worktree -prune`). Prefer one reusable checkout per seat and fetch each PR into it rather -than creating a fresh directory per review. +After filing the verdict, choose a checkout strategy: inspect and remove or prune +a temporary PR checkout only after checking for uncommitted work, or keep one +reusable checkout and clean or refetch it for the next review. Never use +`git worktree remove --force` before checking for uncommitted work. When you approve, say what you verified AND what you could not. An unqualified approval on something you did not check is worse than a partial one, because it diff --git a/fleet-skills/working-in-turns/SKILL.md b/fleet-skills/working-in-turns/SKILL.md index b910d9e543..5c19130a45 100644 --- a/fleet-skills/working-in-turns/SKILL.md +++ b/fleet-skills/working-in-turns/SKILL.md @@ -13,8 +13,8 @@ last_updated: 2026-10-24 - Ask reviewers in a pod they actually belong to. - After a HOLD, fix it, push the new head, and re-ask on the PR. - File every verdict as described in [review checklist rule 44](../../docs/development/review-checklist.md#what-a-clearance-can-bind) and [rule 51](../../docs/development/review-checklist.md#where-a-verdict-is-readable): the first line must name the exact head and verdict, and the final non-blank line must be the bare `GATE: PASS` or `GATE: HOLD` sentinel. -- After filing a verdict, remove the PR checkout or worktree with `git worktree remove --force ` (or remove the clone), then run `git worktree prune`. -- Reuse one checkout per seat and fetch each PR into it; do not create a fresh directory per review. +- After filing a verdict, choose a checkout strategy: inspect and remove/prune a temporary PR checkout only after checking for uncommitted work, or keep one reusable checkout and clean/refetch it for the next review. +- Never use `git worktree remove --force` before checking for uncommitted work. ## Gate ask template @@ -25,7 +25,8 @@ head SHA, files or properties to check, and the required verdict form: > File the verdict as a PR review. Its first line must be `HEAD: > — GATE: PASS` or `HEAD: — GATE: HOLD`, and its final > non-blank line must be exactly `GATE: PASS` or `GATE: HOLD`, per review -> checklist rules 44 and 51. After filing it, remove this checkout/worktree and -> run `git worktree prune`; reuse one checkout per seat for the next review. +> checklist rules 44 and 51. After filing it, inspect a temporary checkout for +> uncommitted work before removing it and pruning; otherwise clean and refetch +> the reusable checkout for the next review. -Never create a fresh checkout per PR when a reusable seat checkout is available. +Use one reusable checkout per seat when appropriate; inspect temporary checkouts before removing them. From 8084325b0f708cbd0331d915d1a8662da33b4e6b Mon Sep 17 00:00:00 2001 From: Lily Shen <115414357+lilyshen0722@users.noreply.github.com> Date: Sat, 24 Oct 2026 01:22:12 -0700 Subject: [PATCH 8/8] docs: keep public skill generic Co-authored-by: quire Agent-Model: codex/gpt-5.6-luna/xhigh --- cli/skills/commonly/SKILL.md | 14 ++------------ docs/agents/skills/commonly/SKILL.md | 14 ++------------ fleet-skills/working-in-turns/SKILL.md | 4 ++-- 3 files changed, 6 insertions(+), 26 deletions(-) diff --git a/cli/skills/commonly/SKILL.md b/cli/skills/commonly/SKILL.md index 7f945e0067..e18e874aa1 100644 --- a/cli/skills/commonly/SKILL.md +++ b/cli/skills/commonly/SKILL.md @@ -174,7 +174,7 @@ live. | what you produced | where it belongs | |---|---| -| a review of a pull request | [review checklist rule 44](../../../docs/development/review-checklist.md#what-a-clearance-can-bind) and [51](../../../docs/development/review-checklist.md#where-a-verdict-is-readable) — `gh pr review --comment --body-file `; the first line names the exact head and verdict, and the final non-blank line is exactly `GATE: PASS` or `GATE: HOLD` | +| a review of a pull request | review on the pull request, not only in chat | | a decision with a lasting consequence | an ADR in `docs/adr/` | | an idea nobody is building yet | the idea register | | a bug or a piece of work | a GitHub issue | @@ -183,17 +183,7 @@ live. This matters most for reviews. Excellent review reasoning posted as a pod message does not gate anything and cannot be acted on by someone reading the pull request — the merge button does not know the conversation happened. If you -reviewed something and it is not ready, **say so on the pull request** with -`gh pr review --comment --body-file `; put the exact head and `GATE: HOLD` -verdict on the first line and make `GATE: HOLD` the final non-blank line, per -[review checklist rule 44](../../../docs/development/review-checklist.md#what-a-clearance-can-bind) -and [51](../../../docs/development/review-checklist.md#where-a-verdict-is-readable), -not only in chat. - -After filing the verdict, choose a checkout strategy: inspect and remove or prune -a temporary PR checkout only after checking for uncommitted work, or keep one -reusable checkout and clean or refetch it for the next review. Never use -`git worktree remove --force` before checking for uncommitted work. +reviewed something, say so on the pull request, not only in chat. When you approve, say what you verified AND what you could not. An unqualified approval on something you did not check is worse than a partial one, because it diff --git a/docs/agents/skills/commonly/SKILL.md b/docs/agents/skills/commonly/SKILL.md index a74680dc64..e18e874aa1 100644 --- a/docs/agents/skills/commonly/SKILL.md +++ b/docs/agents/skills/commonly/SKILL.md @@ -174,7 +174,7 @@ live. | what you produced | where it belongs | |---|---| -| a review of a pull request | [review checklist rule 44](../../../development/review-checklist.md#what-a-clearance-can-bind) and [51](../../../development/review-checklist.md#where-a-verdict-is-readable) — `gh pr review --comment --body-file `; the first line names the exact head and verdict, and the final non-blank line is exactly `GATE: PASS` or `GATE: HOLD` | +| a review of a pull request | review on the pull request, not only in chat | | a decision with a lasting consequence | an ADR in `docs/adr/` | | an idea nobody is building yet | the idea register | | a bug or a piece of work | a GitHub issue | @@ -183,17 +183,7 @@ live. This matters most for reviews. Excellent review reasoning posted as a pod message does not gate anything and cannot be acted on by someone reading the pull request — the merge button does not know the conversation happened. If you -reviewed something and it is not ready, **say so on the pull request** with -`gh pr review --comment --body-file `; put the exact head and `GATE: HOLD` -verdict on the first line and make `GATE: HOLD` the final non-blank line, per -[review checklist rule 44](../../../development/review-checklist.md#what-a-clearance-can-bind) -and [51](../../../development/review-checklist.md#where-a-verdict-is-readable), -not only in chat. - -After filing the verdict, choose a checkout strategy: inspect and remove or prune -a temporary PR checkout only after checking for uncommitted work, or keep one -reusable checkout and clean or refetch it for the next review. Never use -`git worktree remove --force` before checking for uncommitted work. +reviewed something, say so on the pull request, not only in chat. When you approve, say what you verified AND what you could not. An unqualified approval on something you did not check is worse than a partial one, because it diff --git a/fleet-skills/working-in-turns/SKILL.md b/fleet-skills/working-in-turns/SKILL.md index 5c19130a45..2feba4efc5 100644 --- a/fleet-skills/working-in-turns/SKILL.md +++ b/fleet-skills/working-in-turns/SKILL.md @@ -7,8 +7,8 @@ last_updated: 2026-10-24 # Working in Turns -- Size each turn to finish well inside 45 minutes. If the work is larger, split it and say how in the row. -- Push a checkpoint commit before minute 40. A draft PR is enough. +- Size each turn to finish well inside its run timeout. The default is 15 minutes; only adapters that honor `COMMONLY_AGENT_RUN_TIMEOUT_MS` can use a longer value such as `2700000` (45 minutes). If the work is larger, split it and say how in the row. +- Push a checkpoint commit before the final five minutes of the run timeout. A draft PR is enough; a timeout sends SIGTERM and loses uncommitted work. - Put every gate ask on the PR with the exact head and in the pod. - Ask reviewers in a pod they actually belong to. - After a HOLD, fix it, push the new head, and re-ask on the PR.