v1.91.82.0 fix(plan-reality): name the review input and the PLAN_REALITY line in the reality-rows prose (#3126)

Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
This commit is contained in:
Garry Tanandcapy-ai[bot] authored and GitHub committed 2026-10-11 05:52:27 +00:00
1 parent d2b4ca5d1a
commit 2865cfcb3f
10 files changed
+15 -11

No files matched your search

+4
View File
@@ -1,5 +1,9 @@
# Changelog
## [1.91.82.0] - 2026-10-11
**Plan-review reality rows name their inputs.** The `{{PLAN_REALITY_ROWS}}` prose in plan-eng-review, plan-ceo-review and the autoplan CEO/Eng phases wrote `gstack-plan-reality check --phase <p> <review>` without saying what `<review>` is, and the completion summary cited a `PLAN_REALITY` line no step produced. The check now reads `<review-file|->` (the review you wrote, or stdin) and says it prints the `PLAN_REALITY:` line the summary cites. Found by the plan-eng-review workflow judge on an unrelated PR (clarity 3 / actionability 3 median, both citing these two references).
## [1.91.80.0] - 2026-10-11
**`/eval-plan` prices its default arms out of the box.** `lib/pricing.ts` gains verified rows for `claude-opus-5-5` ($4 / $20 per MTok, cache reads $0.20; Anthropic list prices effective 2026-10-07) and `gpt-6.1-sol` ($2 / $10 per MTok, cached input $0.10; OpenAI model page, standard tier), the two models `gstack-models resolve --role eval-arms` returns under the default `smart` implementation tier. `gstack-eval-plan arms` previously exited `EVAL_PRICE_MISSING` for both; the fail-closed rule is unchanged, only the data was missing.
+1 -1
View File
@@ -1 +1 @@
1.91.80.0
1.91.82.0
+1 -1
View File
@@ -1,4 +1,4 @@
# gstack digest v1.91.80.0 — regenerate/re-copy after upgrading gstack
# gstack digest v1.91.82.0 — regenerate/re-copy after upgrading gstack
Behavioral rules from gstack (https://github.com/garrytan/gstack), compressed
for agent hosts without a full skill install. The full skills add workflows,
+1 -1
View File
@@ -875,7 +875,7 @@ Produce missing outputs before the gate; after at most 2 repair attempts, warn
there with each incomplete item.
Reality rows: each phase's `PLAN_REALITY: … verdict=complete` from
`~/.claude/skills/gstack/bin/gstack-plan-reality check --phase <ceo|eng> <review>`. A missing applicable row is `incomplete`
`~/.claude/skills/gstack/bin/gstack-plan-reality check --phase <ceo|eng> <review-file|->`. A missing applicable row is `incomplete`
in an unattended run, never a warning; interactive runs follow the repair rule above.
---
+1 -1
View File
@@ -176,7 +176,7 @@ Sections 1-11 — for EACH section, run the evaluation criteria from the loaded
**Mandatory outputs from Phase 1:**
- Reality rows: the loaded skill's `REALITY:` lines, one per applicable row;
`~/.claude/skills/gstack/bin/gstack-plan-reality check --phase ceo <review>` prints `verdict=complete` before the phase closes
`~/.claude/skills/gstack/bin/gstack-plan-reality check --phase ceo <review-file|->` prints `PLAN_REALITY: … verdict=complete` before the phase closes
(unattended: `incomplete` keeps it open).
- "NOT in scope" section with deferred items and rationale
- "What already exists" section mapping sub-problems to existing code
+1 -1
View File
@@ -105,7 +105,7 @@ Retain the historical review-log skill ID; add `"host":"claude","outside_provide
1. Step 0 (Scope Challenge): Read actual code referenced by the plan. Map each
sub-problem to existing code. Run the complexity check. Produce concrete findings.
Reality rows: the loaded skill's `REALITY:` lines, one per applicable row;
`~/.claude/skills/gstack/bin/gstack-plan-reality check --phase eng <review>` prints `verdict=complete` before the phase closes
`~/.claude/skills/gstack/bin/gstack-plan-reality check --phase eng <review-file|->` prints `PLAN_REALITY: … verdict=complete` before the phase closes
(unattended: `incomplete` keeps it open).
2. Step 0.5 (Dual Voices): Present the completed calls above under Codex SAYS
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "gstack",
"version": "1.91.80",
"version": "1.91.82",
"description": "Garry's Stack — Claude Code skills + fast headless browser. One repo, one install, entire AI engineering workflow.",
"license": "MIT",
"type": "module",
+1 -1
View File
@@ -847,7 +847,7 @@ the existing path is worse.
row it prints (tier 1 always: premise-table, already-done, surface-check, binding-decisions, numbers, deferred-asks, pr-count; tier 2 by detected scope, `--scope <csv>`).
Every row cites a file:line receipt; the premise table counts `unverified=<n>`. End with
one line per row, `REALITY: <row> pass|finding|n/a <summary> <file:line>`, then run
`~/.claude/skills/gstack/bin/gstack-plan-reality check --phase ceo <review>`: a missing applicable row is `incomplete`
`~/.claude/skills/gstack/bin/gstack-plan-reality check --phase ceo <review-file|->` (it prints the `PLAN_REALITY:` line): a missing row is `incomplete`
unattended; interactive runs repair twice, then warn at the gate.
### 0C. Dream State Mapping
+1 -1
View File
@@ -427,7 +427,7 @@ changes or write findings into the plan yet.
row it prints (tier 1 always: premise-table, already-done, surface-check, binding-decisions, numbers, deferred-asks, pr-count; tier 2 by detected scope, `--scope <csv>`).
Every row cites a file:line receipt; the premise table counts `unverified=<n>`. End with
one line per row, `REALITY: <row> pass|finding|n/a <summary> <file:line>`, then run
`~/.claude/skills/gstack/bin/gstack-plan-reality check --phase eng <review>`: a missing applicable row is `incomplete`
`~/.claude/skills/gstack/bin/gstack-plan-reality check --phase eng <review-file|->` (it prints the `PLAN_REALITY:` line): a missing row is `incomplete`
unattended; interactive runs repair twice, then warn at the gate.
### B. Resolve complexity selectors
+3 -3
View File
@@ -47,12 +47,12 @@ ${renderIncidentTable(REALITY_ROWS)}`;
if (mode === 'summary') return `- Reality rows: ___/___ applicable rows emitted (\`PLAN_REALITY\` line), ___ unverified premises`;
if (mode === 'pregate') {
return `Reality rows: each phase's \`PLAN_REALITY: … verdict=complete\` from
\`${BIN} check --phase <ceo|eng> <review>\`. A missing applicable row is \`incomplete\`
\`${BIN} check --phase <ceo|eng> <review-file|->\`. A missing applicable row is \`incomplete\`
in an unattended run, never a warning; interactive runs follow the repair rule above.`;
}
if (mode === 'autoplan') {
return `Reality rows: the loaded skill's \`REALITY:\` lines, one per applicable row;
\`${BIN} check --phase ${args?.[1] ?? 'ceo'} <review>\` prints \`verdict=complete\` before the phase closes
\`${BIN} check --phase ${args?.[1] ?? 'ceo'} <review-file|->\` prints \`PLAN_REALITY: … verdict=complete\` before the phase closes
(unattended: \`incomplete\` keeps it open).`;
}
const phase = phaseFor(ctx, mode);
@@ -60,6 +60,6 @@ in an unattended run, never a warning; interactive runs follow the repair rule a
row it prints (tier 1 always: ${TIER1_ROW_IDS.join(', ')}; tier 2 by detected scope, \`--scope <csv>\`).
Every row cites a file:line receipt; the premise table counts \`unverified=<n>\`. End with
one line per row, \`${REALITY_LINE_SHAPE}\`, then run
\`${BIN} check --phase ${phase} <review>\`: a missing applicable row is \`incomplete\`
\`${BIN} check --phase ${phase} <review-file|->\` (it prints the \`PLAN_REALITY:\` line): a missing row is \`incomplete\`
unattended; interactive runs repair twice, then warn at the gate.`;
}