Chain-wide question budget keyed to build scale (v1.63.1.0)#30
Conversation
…an#886) Rounds were capped per specialist but questions still accumulated across chained invocations (15+ on a hackathon plan). The scale now fixes a total question budget for the whole chain: 5 at session, 8 at hobby, 12 at project, uncapped at product/venture. Handoffs carry questions spent; exhausted budget means infer-and-state, not ask. Approval STOP gates are outside the budget. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
There was a problem hiding this comment.
3 issues found across 20 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="scripts/gstack2/bug-fix-overlays.ts">
<violation number="1" location="scripts/gstack2/bug-fix-overlays.ts:615">
P2: The new regression does not exercise the chain-wide behavior it claims to protect: `budget_spans_chain` is always returned as `true`, with no prior-spend input or remaining-budget calculation. A handoff case should model questions already spent and verify deduction/exhaustion so a future counter reset fails the regression.</violation>
</file>
<file name="CHANGELOG.md">
<violation number="1" location="CHANGELOG.md:13">
P2: Startup plans with a one-sitting or day-or-two constraint are capped at session/hobby, so “Startups still get the full interrogation” and “planning a startup, nothing changed” overstate the behavior. Describe uncapped questioning as product/venture-scale instead.</violation>
<violation number="2" location="CHANGELOG.md:21">
P3: The release table omits the required Δ column and mixes rounds with questions in its first comparison. Using one unit and adding explicit deltas keeps the before/after numbers comparable and follows the changelog contract.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Fix all with cubic | Re-trigger cubic
| questions_batched: rank <= 2, | ||
| question_rounds_max: small ? rank + 1 : null, | ||
| chain_question_budget: [5, 8, 12, null, null][rank], | ||
| budget_spans_chain: true, |
There was a problem hiding this comment.
P2: The new regression does not exercise the chain-wide behavior it claims to protect: budget_spans_chain is always returned as true, with no prior-spend input or remaining-budget calculation. A handoff case should model questions already spent and verify deduction/exhaustion so a future counter reset fails the regression.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At scripts/gstack2/bug-fix-overlays.ts, line 615:
<comment>The new regression does not exercise the chain-wide behavior it claims to protect: `budget_spans_chain` is always returned as `true`, with no prior-spend input or remaining-budget calculation. A handoff case should model questions already spent and verify deduction/exhaustion so a future counter reset fails the regression.</comment>
<file context>
@@ -609,6 +611,8 @@ export function evaluateBugFixRegression(pr: number, rawInput: unknown): Record<
questions_batched: rank <= 2,
question_rounds_max: small ? rank + 1 : null,
+ chain_question_budget: [5, 8, 12, null, null][rank],
+ budget_spans_chain: true,
web_search: small ? 'on-request' : 'privacy-gated-offer',
outside_voices: small ? 'on-request' : 'offer',
</file context>
| @@ -7,6 +7,41 @@ | |||
| > completion state and remaining P0 gates. No version bump or release claim is | |||
There was a problem hiding this comment.
P2: Startup plans with a one-sitting or day-or-two constraint are capped at session/hobby, so “Startups still get the full interrogation” and “planning a startup, nothing changed” overstate the behavior. Describe uncapped questioning as product/venture-scale instead.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At CHANGELOG.md, line 13:
<comment>Startup plans with a one-sitting or day-or-two constraint are capped at session/hobby, so “Startups still get the full interrogation” and “planning a startup, nothing changed” overstate the behavior. Describe uncapped questioning as product/venture-scale instead.</comment>
<file context>
@@ -7,6 +7,41 @@
+## [1.63.1.0] - 2026-07-23
+
+## **A hackathon plan now gets five questions, total.**
+## **Startups still get the full interrogation.**
+
+/plan already classified every request on a build scale (session, hobby, project, product, venture) and sized each specialist's machinery to it. What it did not do was count. Each specialist obeyed its own round cap, then handed off to the next one, and a one-sitting build could still collect 15+ questions across the full chain of planning and reviews. The scale now fixes one question budget for the entire chain: 5 at session, 8 at hobby, 12 at project, uncapped at product and venture. Every handoff carries the questions already spent, so a chained review deducts from what is left instead of starting fresh. When the budget runs out, the specialist states its inferred default in one line and keeps moving. Plan approvals and mutation authorizations never count against it.
</file context>
| | Metric | Before | After | | ||
| |---|---|---| | ||
| | Question ceiling across a full session-scale chain | none (18 rounds observed) | 5 questions | | ||
| | Ceiling at hobby / project scale | none | 8 / 12 | | ||
| | Ceiling at product / venture scale | none | none, on purpose | | ||
| | Budget resets at each chained review | yes | never | |
There was a problem hiding this comment.
P3: The release table omits the required Δ column and mixes rounds with questions in its first comparison. Using one unit and adding explicit deltas keeps the before/after numbers comparable and follows the changelog contract.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At CHANGELOG.md, line 21:
<comment>The release table omits the required Δ column and mixes rounds with questions in its first comparison. Using one unit and adding explicit deltas keeps the before/after numbers comparable and follows the changelog contract.</comment>
<file context>
@@ -7,6 +7,41 @@
+
+Source: the overlay contract in `scripts/gstack2/bug-fix-overlays.ts` (issue #886), verified by `bun run test:gstack2`, against an observed hackathon planning chain from 2026-07-23.
+
+| Metric | Before | After |
+|---|---|---|
+| Question ceiling across a full session-scale chain | none (18 rounds observed) | 5 questions |
</file context>
| | Metric | Before | After | | |
| |---|---|---| | |
| | Question ceiling across a full session-scale chain | none (18 rounds observed) | 5 questions | | |
| | Ceiling at hobby / project scale | none | 8 / 12 | | |
| | Ceiling at product / venture scale | none | none, on purpose | | |
| | Budget resets at each chained review | yes | never | | |
| | Metric | Before | After | Δ | | |
| |---|---|---|---| | |
| | Chain-wide question budget at session scale | none (15+ questions observed) | 5 questions | New 5-question ceiling | | |
| | Chain-wide question budget at hobby / project scale | none | 8 / 12 questions | New ceilings | | |
| | Chain-wide question budget at product / venture scale | none | none, on purpose | Unchanged | | |
| | Budget resets at each chained review | yes | never | Resets eliminated | |
Main's package.json edit (9053324) landed without a lockfile regen, so every frozen-lockfile CI job fails on main and any PR including it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
# Conflicts: # CHANGELOG.md # VERSION
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
What
The
Scale:header from garrytan#886 capped question rounds per specialist, but rounds accumulated across chained invocations, so a hackathon-scale /plan chain still collected 15+ questions. The scale now fixes one question budget for the whole chain: 5 at session, 8 at hobby, 12 at project, uncapped at product/venture.How
scripts/gstack2/bug-fix-overlays.ts): chain-wide budget counted in individual questions; handoffs carry questions-spent; exhausted budget means infer-and-state the default, not ask; approval STOP gates excluded; spend on hardest-to-reverse decisions first./plandispatcher Build scale section (generate-skill-tree.ts): prints the budget with the scale, handoffs carry it.chain_question_budget+budget_spans_chainfields added to the GENERAL: Reduce Token Overhead garrytan/gstack#886 fixture and evaluator.No pinned parity-count changes (body edit rides existing
includes()checks). Regen committed separately.Testing
bun run test:gstack2— all 26 files passbun test— passes (exit 0)bun run eval:select— 0/178 E2E, 0/28 LLM-judge tests affected by this diff🤖 Generated with Claude Code
Summary by cubic
Sets a chain-wide question budget for
/planchains keyed to build scale to stop question creep across specialists (5/8/12, uncapped at product/venture). Handoffs carry spend, approvals don’t count, and exhausted budget means infer-and-state; release 1.64.1.0.New Features
/planprints the budget with the scale; handoffs carry scale, time box, and questions spent; addedchain_question_budget/budget_spans_chainto thepr-886regression and evaluator; docs updated.Dependencies
package.jsonafter design/PDF runtime removal, droppinghtml-to-docxand related@oozcitak/*to fix frozen-lockfile CI.Written for commit 1e21b5a. Summary will update on new commits.