gstack now judges tests by the regressions they catch

1 week ago

What changed in gstack 1.91.4.0 to 1.91.9.0: a test value bar across /ship, /review, /qa and plan reviews, the new /test-audit command, /qa for APIs, CLIs, jobs and webhooks without a browser, and Windows cookie import from Opera and Opera GX. https://github.com/garrytan/gstack/blob/main/CHANGELOG.md https://github.com/garrytan/gstack/blob/main/docs/test-value-bar.md https://github.com/garrytan/gstack/blob/main/BROWSER.md

Ask

Ask about this presentation

Answers are generated from this presentation.

Chapters

  1. 0:00gstack judges tests by the regressions they catch
  2. 0:11Coverage shows two numbers
  3. 0:22At most five tests per pass
  4. 0:32Regression tests must fail first
  5. 0:40New: /test-audit
  6. 0:52Audit waits for your approval
  7. 1:02The bar across workflows
  8. 1:1102: QA beyond the browser
  9. 1:13QA without a browser
  10. 1:22What functional QA checks
  11. 1:38Exploratory QA
  12. 1:49Review and ship check more
  13. 2:0303: Cookie import on Windows
  14. 2:05Opera and Opera GX on Windows
  15. 2:16Signed-out imports fixed
  16. 2:28Failed imports name the next step
  17. 2:38Still waiting, and where to read more
Show transcript

gstack judges tests by the regressions they catch

gstack logo

gstack now judges tests by the regressions they catch

A test earns its place by protecting behavior a real regression would break. Test count is not a goal.

01 Test value02 Functional QA03 Windows cookies
gstack 1.91.9.0 · CHANGELOG

In gstack, every workflow that plans, writes, reviews or ships tests now applies one bar. A test earns its place by protecting behavior a real regression would break.

Coverage shows two numbers

/ship's coverage gate now shows two numbers

BEFORE
Coverage gate: 81%

A path covered only by a smoke test counted in full

NOW
Coverage: 58% value-weighted
(81% including 4 weakly covered paths)
No action required · the gate still only asks
01 Test value02 Functional QA03 Windows cookies
gstack 1.91.9.0 · CHANGELOG

Your coverage number in /ship can drop for unchanged code. A path covered only by a smoke test no longer counts. The gate shows both numbers, and it still only asks.

At most five tests per pass

/ship writes at most 5 tests per pass, down from 20

1Extend existing tests
→
2Write up to 5 new ones
→
3Remove any without a complete value card
01 Test value02 Functional QA03 Windows cookies
gstack 1.91.9.0 · CHANGELOG

/ship now extends existing tests first and writes at most five new ones per pass, down from twenty. A test with an incomplete value card is removed.

Regression tests must fail first

A /ship regression test has to fail before the fix

1Fails at HEAD before the repair
→
2Passes on the base branch, in a temporary worktree
Node and Bun projects · other stacks record “base control unavailable”
01 Test value02 Functional QA03 Windows cookies
gstack 1.91.9.0 · CHANGELOG

A regression test from /ship must now fail before the repair and pass on the base branch. That check covers Node and Bun projects.

New: /test-audit

New /test-audit finds tests that cost more than they protect

low-valueimplementation-coupledduplicatetest-only exports
01 Test value02 Functional QA03 Windows cookies
gstack 1.91.9.0 · CHANGELOG

The new /test-audit command sweeps the tests you already have. It finds low-value, implementation-coupled and duplicate tests, along with the test-only exports those tests keep alive.

Audit waits for your approval

/test-audit changes nothing until you approve a batch

every candidatea retirement card with its evidence
contract testskept, including SKILL.md goldens
headless sessionsreport only
01 Test value02 Functional QA03 Windows cookies
gstack 1.91.9.0 · CHANGELOG

Each candidate carries a retirement card with its evidence. Your tests stay untouched until you approve a batch, and headless sessions only write a report.

The bar across workflows

Plan reviews, /review and /qa apply the same bar

/plan-eng-review · /plan-ceo-reviewTest plans list tests to retire
/reviewFlags low-value tests as informational, never deletes them
/qa · /qa-onlyA value card before any regression test
01 Test value02 Functional QA03 Windows cookies
gstack 1.91.9.0 · CHANGELOG

Plan reviews list tests to retire, /review flags low-value tests without deleting them, and /qa writes a value card for each regression test.

02: QA beyond the browser

02

QA beyond the browser

Functional QA, exploration, and stricter ships

QA beyond the browser.

QA without a browser

/qa now tests APIs, CLIs, jobs, workers and webhooks

It uses the project's own tools and never starts a browser. Browser and functional results stay separate.

01 Test value02 Functional QA03 Windows cookies
gstack 1.91.7.0 · CHANGELOG

/qa can now test APIs, CLIs, background jobs, workers and webhooks. It uses your project's own tools and never starts a browser.

What functional QA checks

Functional QA goes after the failure cases

invalid inputsauthorizationcancellationretriesduplicate deliveryconcurrencyrecovery
Reports split failures, blocked probes and untested contracts
01 Test value02 Functional QA03 Windows cookies
gstack 1.91.7.0 · CHANGELOG

It checks real outputs and lasting effects, including invalid inputs, authorization, cancellation, retries, duplicate delivery, concurrency and recovery. Reports keep real failures apart from blocked probes and untested contracts.

Exploratory QA

QA follows up what it sees with targeted probes

1Observation
→
2Targeted probe
→
3Proposed regression test
A repair needs a reproduced defect and a test that fails first
01 Test value02 Functional QA03 Windows cookies
gstack 1.91.7.0 · CHANGELOG

Exploratory QA turns each observation into a targeted probe and a proposed regression test. A repair first needs a reproduced defect and a regression test that fails.

Review and ship check more

/review and /ship check more before they finish

small diffsBounded exploration, even without a plan or a server
every shipA documentation audit before final checks and publication
one fix phaseAll review findings collected first, then fixed together
01 Test value02 Functional QA03 Windows cookies
gstack 1.91.7.0 · CHANGELOG

/review and /ship now explore even small changes with no browser, plan or server. Every ship audits the relevant documentation before it publishes, and review gathers all its findings before one fix phase.

03: Cookie import on Windows

03

Cookie import on Windows

Opera, Opera GX, and imports that stayed signed out

Cookie import on Windows.

Opera and Opera GX on Windows

On Windows, gstack imports cookies from Opera and Opera GX

Chrome, Edge and Brave increasingly use App-Bound Encryption, which gstack can't decrypt.

Not detected: legacy root layouts, Opera side profiles, portable installs
01 Test value02 Functional QA03 Windows cookies
gstack 1.91.4.0 · CHANGELOG

On Windows, you can now copy signed-in cookies from Opera and Opera GX. Chrome, Edge and Brave increasingly use App-Bound Encryption, which gstack can't decrypt.

Signed-out imports fixed

Imports that reported success but stayed signed out are fixed

BEFORE
import: success
site: signed out

32 bytes of hash in front of each value

NOW
prefix removed

Chrome, Chromium, Edge, Brave and Opera

01 Test value02 Functional QA03 Windows cookies
gstack 1.91.4.0 · CHANGELOG

On Windows, imports could report success while the site stayed signed out, because of a 32-byte hash in front of each value. gstack now strips it for Chrome, Edge, Brave and Opera.

Failed imports name the next step

A failed import now tells you what to do next

App-Bound cookieshandoff, sign in, resume
missing browserwhat was checked, what to run next
partial importwarns the session may not be restored
01 Test value02 Functional QA03 Windows cookies
gstack 1.91.4.0 · CHANGELOG

When cookies can't be copied, the receipt says what to do. App-Bound cookies point you to hand off, sign in and resume, and a missing browser says what to run next.

Still waiting, and where to read more

Opera import still awaits confirmation on a real Windows session

docs/test-value-bar.mdcoverage numbers, value cards, overrides
BROWSER.mdthe Windows Opera walkthrough
01 Test value02 Functional QA03 Windows cookies
gstack 1.91.4.0 · 1.91.9.0 · CHANGELOG

The issue reporter has yet to confirm Opera import on a real Windows session. The test value bar guide explains the new coverage numbers, and the browser guide walks through Opera on Windows.