gstack's /autoplan now runs end to end under a parent agent

1 day ago

gstack 1.91.71.0 to 1.91.72.0 (2026-10-10 to 2026-10-11): /autoplan now runs end to end under a parent agent through next and submit, the outside voice can be Codex, an API or another model's subagent, plan reviews load short checklists, gstack-doctor --check confirms an install in one line, and Chromium installs only when a browser skill first runs. https://github.com/garrytan/gstack/blob/main/CHANGELOG.md#191720---2026-10-11 https://github.com/garrytan/gstack/blob/main/CHANGELOG.md#191710---2026-10-10 https://github.com/garrytan/gstack/blob/main/docs/unattended.md https://github.com/garrytan/gstack/blob/main/docs/capy-install.md

Ask

Ask about this presentation

Answers are generated from this presentation.

Chapters

  1. 0:00Autoplan
  2. 0:15Outside voice
  3. 0:31Checklists
  4. 0:45Doctor
  5. 0:58Browser
  6. 1:13Limits
Show transcript

Autoplan

gstack logo

gstack's /autoplan now runs end to end under a parent agent

$ gstack-autoplan next → submit
After a crash, resume marks an unfinished attempt EXECUTION_UNKNOWN instead of dispatching it again.
AutoplanOutside voiceChecklistsDoctorBrowserLimits
garrytan/gstack · CHANGELOG.md 1.91.72.0

gstack's /autoplan now runs end to end without Claude Code. A parent agent calls next, dispatches the reviewer and submits each phase. After a crash, resume flags an unfinished attempt instead of running it again.

Outside voice

The outside voice can be Codex, an API, or another model's subagent

Codex CLIcodex-cli
An API callapi
A subagent on another model familyhost-subagent
No Codex CLI is not "degraded" when another runner reviewed. Skill prose still calls codex directly for now.
AutoplanOutside voiceChecklistsDoctorBrowserLimits
garrytan/gstack · CHANGELOG.md 1.91.72.0

The outside reviewer is now pluggable: the Codex CLI, an API, or a subagent on another model family. Missing Codex no longer counts as degraded when another runner reviewed. Skill text still calls Codex directly for now.

Checklists

Plan reviews load a short checklist instead of the whole methodology

sections/checklist.md · under 35 lines
Skipped sections: <ids> (scope: …)
Unclear scope loads the deep section. Interactive reviews are unchanged.
AutoplanOutside voiceChecklistsDoctorBrowserLimits
garrytan/gstack · CHANGELOG.md 1.91.72.0

Unattended and light runs now give each plan review a checklist under 35 lines. They print the skipped sections, load the full one when scope is unclear, and interactive reviews stay the same.

Doctor

gstack-doctor --check confirms an install with one grep

Capy installer --checkpassed empty machines
One row per component, a fix for every FAILreal exit code
gstack: ok … for=autoplan
AutoplanOutside voiceChecklistsDoctorBrowserLimits
garrytan/gstack · CHANGELOG.md 1.91.71.0

The old Capy check passed machines with nothing installed. Now gstack-doctor --check prints one row per component, a fix for every failure, and a single trailer line with a real exit code.

Browser

Chromium installs the first time a browser skill runs

Planning machines86 s for an unused browser
gstack-browser-ensureon first use
The new gstack-capy-install sets up a Capy machine without Chromium.
AutoplanOutside voiceChecklistsDoctorBrowserLimits
garrytan/gstack · CHANGELOG.md 1.91.71.0

Planning machines spent almost 90 seconds installing a browser they never opened. Now Chromium installs the first time a browser skill runs, and the new Capy installer sets a machine up without it.

Limits

Spend caps, runtimes and spec reviews report what they know

--spend-cap holds across a crash; subagent spend is unknown, not zero
The default Capy image's Bun 1.3.14 now fails the runtime row
Spec review stops at its cap with unconfirmed fixes, never a verdict
docs/unattended.mdthe parent loop
AutoplanOutside voiceChecklistsDoctorBrowserLimits
garrytan/gstack · CHANGELOG.md 1.91.71.0, 1.91.72.0

The spend cap is now kept in a shared ledger that survives a crash. The doctor now fails the Bun version on the default Capy image. And spec review stops at its cap without a verdict. The unattended guide covers the parent loop.