Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,17 @@ bin/* text eol=lf
# the content-addressed staged filename.
lib/diagram-render/dist/*.html text eol=lf whitespace=-trailing-space
lib/diagram-render/dist/*.json text eol=lf

# GStack 2 generator output (scripts/gstack2/, `bun run gen:gstack2`).
# Marked linguist-generated so PR reviews collapse these by default and
# reviewers see only the hand-edited generator inputs. check:gstack2-generated
# enforces that these always match a clean regeneration, so their diffs are
# reproducible rather than reviewable.
skills/** linguist-generated=true
compat/** linguist-generated=true
evals/parity/** linguist-generated=true

@cubic-dev-ai cubic-dev-ai Bot Jul 22, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: Supplemental paid live-eval evidence will now be collapsed as generated even though gen:gstack2 neither regenerates nor clean-checks it. Excluding evals/parity/transcripts/live/** keeps these non-deterministic results reviewable while retaining collapse behavior for deterministic parity output.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .gitattributes, line 62:

<comment>Supplemental paid live-eval evidence will now be collapsed as generated even though `gen:gstack2` neither regenerates nor clean-checks it. Excluding `evals/parity/transcripts/live/**` keeps these non-deterministic results reviewable while retaining collapse behavior for deterministic parity output.</comment>

<file context>
@@ -51,3 +51,17 @@ bin/*        text eol=lf
+# reproducible rather than reviewable.
+skills/** linguist-generated=true
+compat/** linguist-generated=true
+evals/parity/** linguist-generated=true
+docs/gstack-2/JUDGMENT-PARITY.md linguist-generated=true
+docs/gstack-2/JUDGMENT-PROVENANCE.json linguist-generated=true
</file context>
Suggested change
evals/parity/** linguist-generated=true
evals/parity/** linguist-generated=true
evals/parity/transcripts/live/** linguist-generated=false
Fix with cubic

docs/gstack-2/JUDGMENT-PARITY.md linguist-generated=true
docs/gstack-2/JUDGMENT-PROVENANCE.json linguist-generated=true
docs/gstack-2/SCENARIOS.md linguist-generated=true
docs/gstack-2/SKILL-MIGRATION.md linguist-generated=true
docs/gstack-2/BACKLOG-MAP.json linguist-generated=true
8 changes: 8 additions & 0 deletions .github/workflows/gstack2-gate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ jobs:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4

@cubic-dev-ai cubic-dev-ai Bot Jul 22, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: Three jobs already fetch all branch history via fetch-depth: 0, so this extra fetch only adds redundant network requests (five CI executions including the OS matrix). Consider retaining it only for installed-first-use, whose checkout is shallow.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .github/workflows/gstack2-gate.yml, line 28:

<comment>Three jobs already fetch all branch history via `fetch-depth: 0`, so this extra fetch only adds redundant network requests (five CI executions including the OS matrix). Consider retaining it only for `installed-first-use`, whose checkout is shallow.</comment>

<file context>
@@ -25,6 +25,8 @@ jobs:
       - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
         with:
           fetch-depth: 0
+      - name: Fetch the pinned GStack 2 base commit (not reachable from PR refs)
+        run: git fetch --no-tags --depth=1 origin bb57306d98c97011b0919c6132705a15b1579781
       - uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2
</file context>
Fix with cubic

with:
fetch-depth: 0
- name: Fetch the pinned GStack 2 base commit (not reachable from PR refs)
run: git fetch --no-tags --depth=1 origin bb57306d98c97011b0919c6132705a15b1579781
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2
with:
bun-version: 1.3.14
Expand All @@ -51,6 +53,8 @@ jobs:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
fetch-depth: 0
- name: Fetch the pinned GStack 2 base commit (not reachable from PR refs)
run: git fetch --no-tags --depth=1 origin bb57306d98c97011b0919c6132705a15b1579781
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2
with:
bun-version: 1.3.14
Expand All @@ -66,6 +70,8 @@ jobs:
timeout-minutes: 15
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Fetch the pinned GStack 2 base commit (not reachable from PR refs)
run: git fetch --no-tags --depth=1 origin bb57306d98c97011b0919c6132705a15b1579781
- uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2
with:
bun-version: 1.3.14
Expand All @@ -84,6 +90,8 @@ jobs:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
fetch-depth: 0
- name: Fetch the pinned GStack 2 base commit (not reachable from PR refs)
run: git fetch --no-tags --depth=1 origin bb57306d98c97011b0919c6132705a15b1579781
- name: Build the declared development container
run: docker build --file .devcontainer/Dockerfile --tag gstack2-devcontainer .
- name: Run the GStack 2 gate inside the container
Expand Down
40 changes: 40 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,46 @@
> completion state and remaining P0 gates. No version bump or release claim is
> made here while that status holds.

## [1.61.0.0] - 2026-07-22

@cubic-dev-ai cubic-dev-ai Bot Jul 22, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1: The changelog now simultaneously says GStack 2 is blocked with no release/version claim and publishes 1.61.0.0 as a release. Resolve the authoritative blocked status before adding this entry, or keep the entry/version bump out until the gate clears.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At CHANGELOG.md, line 10:

<comment>The changelog now simultaneously says GStack 2 is blocked with no release/version claim and publishes 1.61.0.0 as a release. Resolve the authoritative blocked status before adding this entry, or keep the entry/version bump out until the gate clears.</comment>

<file context>
@@ -7,6 +7,45 @@
 > completion state and remaining P0 gates. No version bump or release claim is
 > made here while that status holds.
 
+## [1.61.0.0] - 2026-07-22
+
+## **/plan now sizes its machinery to your ask.**
</file context>
Fix with cubic


## **/plan now sizes its machinery to your ask.**
## **A terminal toy gets one question round, not a startup diagnostic.**

Ask /plan for something small and it plans something small. The dispatcher now classifies every request on fifteen build-scale vectors (audience, users, commercial intent, deployment, time horizon, integration surface, extensibility, stakes, and so on) and prints the verdict as a `Scale:` line in the execution header: session, hobby, project, product, or venture. Every planning specialist keys its effort to that line. "A cool space animation in my terminal" is session-scale and gets one batched question round, no web research, no outside design voices, and a one-page doc with next steps in hours. "A startup with customizable APIs" is venture-scale and gets the full question pressure, exactly as before. Classification comes from your prompt and cheap repository evidence only; /plan never asks questions just to decide how many questions to ask.

@cubic-dev-ai cubic-dev-ai Bot Jul 22, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: This 7-sentence lead and 387-word summary exceed the required 3–5 sentences and roughly 250–350 words. Consolidating the examples and classification details would restore the standard release-note shape.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At CHANGELOG.md, line 15:

<comment>This 7-sentence lead and 387-word summary exceed the required 3–5 sentences and roughly 250–350 words. Consolidating the examples and classification details would restore the standard release-note shape.</comment>

<file context>
@@ -7,6 +7,45 @@
+## **/plan now sizes its machinery to your ask.**
+## **A terminal toy gets one question round, not a startup diagnostic.**
+
+Ask /plan for something small and it plans something small. The dispatcher now classifies every request on fifteen build-scale vectors (audience, users, commercial intent, deployment, time horizon, integration surface, extensibility, stakes, and so on) and prints the verdict as a `Scale:` line in the execution header: session, hobby, project, product, or venture. Every planning specialist keys its effort to that line. "A cool space animation in my terminal" is session-scale and gets one batched question round, no web research, no outside design voices, and a one-page doc with next steps in hours. "A startup with customizable APIs" is venture-scale and gets the full question pressure, exactly as before. Classification comes from your prompt and cheap repository evidence only; /plan never asks questions just to decide how many questions to ask.
+
+### The numbers that matter
</file context>
Fix with cubic


### The numbers that matter

Source: a real /plan Discovery session on 2026-07-22 for a zero-player terminal spaceship toy (transcript `~/.claude/projects/-Users-sinabina-spacegame/b01e246b-*.jsonl`). The After column is the enforced rule at session scale, pinned by the executable regression in `evals/parity/regressions/pr-886.json` (run: `bun run test:gstack2`).

| Metric (session-scale ask) | Before | After |
|---|---|---|
| AskUserQuestion rounds | 10, one at a time | 1, batched |
| Adversarial review iterations on the doc | 3 | 1 max |
| Web searches by default | 2 | 0, on request |
| Wireframe + outside-voice offers | 2 | 0, on request |
| Next-steps horizon | phased roadmap + distribution plan | hours |
| Output tokens for the session | 115,395 measured | no measurement yet |

Ten separate question rounds means ten full round-trips before a single line of design exists. For a toy built for fun, that was the whole session. One batched round answers the same questions in one pass.

### What this means for you

Small ideas stop costing big-idea tokens and big-idea patience. You can throw a one-liner at /plan and get a one-page plan the same sitting, and the moment your answers reveal real ambition (users, revenue, a platform) the scale upgrades mid-session and the full workflow comes back. Approval gates never shrink at any scale. Just describe what you want to build; the sizing is /plan's job now.

### Itemized changes

#### Added

- **Build-scale classification in /plan.** The dispatcher's execution header gains a `Scale:` line (session, hobby, project, product, venture) classified from fifteen scale vectors before any questioning begins. Highest vector wins; unknown vectors default low; explicit statements dominate inference.
- **Proportional-planning judgment port (#886)** across all six planning specialists (office-hours, plan-ceo-review, plan-eng-review, plan-devex-review, spec, autoplan): question batching, research and outside-voice gating, review-iteration caps, artifact size, and step units keyed to the printed Scale. product and venture scale change nothing; STOP and approval gates are unchanged everywhere.
- **Design docs land in your repo (#703).** When you plan inside a repository, the design doc is written to `docs/designs/<topic>.md` and approval questions name that path, not a hashed directory under `~/.gstack`. The cross-session copy in `~/.gstack/projects/` is still written so downstream skills and prior-design discovery keep working, and plan reviews now prefer the repo-local doc when both exist.

#### For contributors

- Overlay #886 anchors to the upstream issue "GENERAL: Reduce Token Overhead" and ships an executable vector-to-tier regression evaluated by `run-parity.ts` (check inventory 4,881 to 4,896).
- Generator output (`skills/**`, `compat/**`, `evals/parity/**`, generated `docs/gstack-2/` docs) is now marked `linguist-generated`, so PRs collapse it and reviewers see only hand-edited generator inputs. `check:gstack2-generated` keeps the collapsed files honest.
- Overlay headings now say "issue" instead of "PR" when the source URL is an issue.

## [1.60.1.0] - 2026-07-09

## **The /autoplan dual-voice eval is back on the board, catching real regressions.**
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.60.1.0
1.61.0.0
2 changes: 1 addition & 1 deletion docs/gstack-2/JUDGMENT-PARITY.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

50 changes: 44 additions & 6 deletions docs/gstack-2/JUDGMENT-PROVENANCE.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 7 additions & 7 deletions docs/gstack-2/SKILL-MIGRATION.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion evals/parity/contracts/autoplan.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion evals/parity/contracts/office-hours.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion evals/parity/contracts/plan-ceo-review.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion evals/parity/contracts/plan-devex-review.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion evals/parity/contracts/plan-eng-review.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion evals/parity/contracts/spec.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading