Skip to content

poteto-mode: an Autopilot-full owner's brief says it is not a leaf (2.2.7) - #69

Merged
chhoumann merged 2 commits into
mainfrom
fix/autopilot-owner-delegates
Nov 7, 2026
Merged

chhoumann merged 2 commits into
mainfrom
fix/autopilot-owner-delegates

Conversation

@chhoumann

@chhoumann chhoumann commented Nov 7, 2026 •

Copy link
Copy Markdown
Owner

Why

An Autopilot-full PR owner should run the reviewers its playbooks name, such as /no-comments's Comment Sicko and show-me-your-work's cross-model review of the trail. 2.2.6 made each owner a delegate_task child and made every such child a leaf, which starts no subagent unless its brief names one. Step 2 said only that the owner's brief "lets the owner delegate as the playbooks say", which names no subagent. In a run of 2.2.6 on T3, the root wrote "You are a leaf. Do all the work yourself and start no subagents." into the owner's brief, so the owner ran Comment Sicko's pass in its own thread and skipped the trail review, each time because "I start no subagents".

What changes

  • Autopilot-full step 2. The owner's brief now tells it that it is not a leaf and starts the subagents its playbooks name, with Comment Sicko and the trail review as examples, because Dispatch on T3 makes a child a leaf unless its brief names its subagents. Autopilot-stack runs this step too.
  • Orchestrate. Two of its children start children of their own. An owner's kickoff now says what Autopilot-full's owner brief says. A sub-coordinator's kickoff says that it is not a leaf and starts its area's workers with delegate_task.
  • Release 2.2.7. VERSION, the CHANGES.md entry, the stamped manifests, and the README's tag example.

All of it is substitutions in tools/substitutions.json. The leaf rule itself, in Dispatch on T3 and the session-start routing text, does not change, and neither hooks file changes. All three components stay pinned at cursor/plugins c742dd6.

Evidence

Both runs were on this Mac's T3 0.1.8-nightly.20261106. The root threads ran on claudeAgent/claude-opus-5-5 at effort=xhigh, and they read poteto-mode and its playbooks from this branch's plugins/pstack tree, not from the installed 2.2.6 plugin. The throwaway repositories and threads are deleted since. I read each verdict from the threads' tool calls in T3's store, not from the agents' reports.

Owner delegates. This repeats 2.2.6's run: Autopilot-full with a queue of one, in a repository whose origin is a local bare repository with no forge, with the operator allowing step 2 only.

  • The root's delegate_task for the owner (isolation: "worktree", claudeAgent/claude-opus-5-5 effort=high) had this paragraph in its brief: "You are not a leaf. Start the subagents your playbooks name, such as the /no-comments Comment Sicko and the show-me-your-work cross-model review of your trail."
  • The owner built the change, pushed feat/reverse-words at 39e42ba, and then made two delegate_task calls. The first was {"clientRequestId":"textkit-reverse-comment-sicko-1","role":"review","isolation":"shared","target":{"providerInstanceId":"claudeAgent","model":"claude-opus-5-5"}}, whose brief opens "Read <plugin root>/agents/comment-sicko.md in full and act as it says." The second was {"clientRequestId":"textkit-reverse-trail-review-1","role":"review","target":{"providerInstanceId":"codex","model":"gpt-6-astra"}}, which reviewed the trail from another model family per show-me-your-work.
  • Both of those briefs said "You are a leaf: start no subagent". Neither grandchild called delegate_task, and neither has a child thread.
  • The root's final reply carried the trail reviewer's Attention section, reviewed by gpt-6-astra.

Leaf check. This repeats 2.2.6's run. A root gave one delegate_task child on the how explorer entry (claude-opus-5-5 effort=medium) this brief: "Investigate thoroughly why slugify ... produces bad slugs for real-world titles ... Find every class of failure, explain the root cause of each, and recommend a fix." The child read the how skill, which fans out explorers. It ran six shell commands, made no tool call besides them, and has no child thread.

Checks

  • bun install --frozen-lockfile passes. bun tools/generate.mjs --check passes, with 17 generated files current.
  • GIT_CONFIG_GLOBAL=/dev/null bun test tests/ --timeout 30000 gives 554 pass, 56 skip, and 0 fail.
  • bun tools/sync.mjs <pstack|cursor-team-kit|thermos> c742dd6 --dry-run exits 0 for each component, and each report matches main's line for line. So no fork's changed-line count moves, no fork is undeclared, and every substitution matches.
  • npx markdownlint-cli2@0.18.1 reports 0 errors on the changed Markdown files.

Note

Low Risk
Playbook and substitution text only; no runtime code or hook changes, with behavior limited to how delegation briefs are worded.

Overview
2.2.7 fixes a regression where Autopilot-full and Orchestrate PR owners were treated as leaf delegate_task children and skipped playbook-mandated reviewers (Comment Sicko, cross-model trail review).

Owner and sub-coordinator kickoffs now explicitly say they are not a leaf and must start named subagents, matching T3’s rule that children only delegate when their brief names those subagents. Autopilot-full step 2, Orchestrate owner/sub-coordinator topology, and matching entries in tools/substitutions.json were updated; Dispatch’s leaf rule and hooks are unchanged.

Release metadata (VERSION, CHANGES.md, plugin manifests, README tag examples) is bumped to 2.2.7.

Reviewed by Cursor Bugbot for commit a8f7ef8. Bugbot is set up for automated code reviews on this repo. Configure here.

@chhoumann
chhoumann marked this pull request as ready for review November 7, 2026 12:19
@chhoumann
chhoumann merged commit 7bda51b into main Nov 7, 2026
12 checks passed
@chhoumann
chhoumann deleted the fix/autopilot-owner-delegates branch November 7, 2026 13:10
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