From 7e140a99d01b0298cb68db818a94205d75b9c127 Mon Sep 17 00:00:00 2001 From: garrytan Date: Sun, 1 Nov 2026 18:24:17 +0000 Subject: [PATCH] docs: name the unattended render in CONTRIBUTING and explain IF_SESSION guards Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com> --- CONTRIBUTING.md | 2 +- docs/unattended.md | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6132d56ac..146de6500 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -205,7 +205,7 @@ the new defaults. | Validate periodic cases on a branch in CI | `gh workflow run evals-periodic.yml --ref ` (periodic lane only) | CI runners + API spend | Pushed branch, `gh` with workflow rights | | Validate periodic cases plus the weekly gate census on a branch | `gh workflow run evals-periodic.yml --ref -f include_gate_census=true` | CI runners + API spend | Pushed branch, `gh` with workflow rights | | Run the opt-in ML, gitleaks and Swift checks | `gh workflow run platform-qualification.yml --ref ` | Free CI runners | Pushed branch, `gh` with workflow rights | -| Render one module loadout as an eval arm ([loadouts](docs/loadouts.md)) | `bin/gstack-modules render --host claude --modules full,-section:/ --out-dir ` (`--loadout full` for the control) | Free, about a second per host | Bun 1.4.2 | +| Render one module loadout as an eval arm ([loadouts](docs/loadouts.md)) | `bin/gstack-modules render --host claude --modules full,-section:/ --out-dir ` (`--loadout full` for the control; add `--session-kind unattended` for an [unattended render](docs/loadouts.md#unattended-renders)) | Free, about a second per host | Bun 1.4.2 | | Look at past local eval runs | `bun run eval:list` / `eval:compare` / `eval:summary` | Free | Local eval history | | See a case's pass rate across recent weekly runs | `bun run eval:pass-rates --case ` | Free | `gh` with repo read access | | Measure one red case alone against the ship bar (MEETS 9/10) | `bun run scripts/ship-measure.ts measure --case --round baseline` ([bar](docs/TESTING_INTERNALS.md#ship-measure)) | API spend for 10 trials (12 for behavior); asks above $2/trial, stops at $25/case | Same as paid coverage | diff --git a/docs/unattended.md b/docs/unattended.md index f6a0ce5d1..769c4a108 100644 --- a/docs/unattended.md +++ b/docs/unattended.md @@ -81,7 +81,10 @@ Terminal-Bench 2 exposure counts): later reviews reuse it), and every /ship step its receipt reads: review-log writes, Step 11.5, Step 20 and `gstack-ship-receipt write` and `result`. -The render's rules also name the interactive sections it leaves out, so a step +In a template, text only an interactive session uses sits inside +`{{IF_SESSION:interactive}}…{{/IF_SESSION}}` (`{{IF_SESSION:unattended}}` for +text only the unattended render keeps); an unpaired or nested guard fails +generation. The render's rules also name the interactive sections it leaves out, so a step that still mentions one ("run Telemetry") skips that part. With `--render unattended`, `gstack-skill-start` prints `RENDER_KIND: unattended`. The session kind still comes from the environment alone, because every later helper