- GSTACK_SESSION_KIND=spawned environment variable to mark subagents as spawned
- decisions array in the doc-sync contract to report auto-chosen gate decisions
- Proactive spawned rule to handle gates in spawned sessions
- Gate-tier E2E test coverage
- bin/gstack-skill-start to support spawned session classification
- AUQ hooks to auto-choose recommended options for gates in spawned sessions
- Ship Step 18 dispatch prompt
- Conductor-hosted /ship runs no longer lose their Documentation section when document-release subagent encounters interactive gates
From gstack
Ship's doc-sync now survives Conductor. Spawned subagents finally know they're spawned. Every Conductor-hosted /ship used to lose its PR ## Documentation section the moment the document-release subagent hit an interactive gate: the subagent inherited the parent's environment, classified itself as a session a human was watching, rendered a decision brief nobody could answer, and stopped. The JSON contract broke, every time a gate fired (#2733). This release makes the spawned classification reachable: /ship marks its subagent with GSTACK_SESSION_KIND=spawned, and the whole stack (preamble, AskUserQuestion rules, both AUQ hooks) now resolves gates by auto-choosing the recommended option instead of writing prose to nobody. Destructive options are never auto-chosen, on any surface: the conservative choice wins and gets recorded. Auto-chosen decisions come back in a decisions array the parent prints to your console, so nothing is decided invisibly. Added: GSTACK_SESSION_KIND=spawned, decisions in the doc-sync contract, Proactive spawned rule, Gate-tier E2E. Changed: bin/gstack-skill-start, AUQ hooks, Ship Step 18 dispatch prompt. Fixed: #2733 - Conductor-hosted /ship runs no longer lose their Documentation section. For contributors: New test files and measurements.