gstack judges tests by the regressions they catch
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.
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
Coverage gate: 81%A path covered only by a smoke test counted in full
Coverage: 58% value-weighted
(81% including 4 weakly covered paths)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
/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
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
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 evidencecontract testskept, including SKILL.md goldensheadless sessionsreport onlyEach 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 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
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.
/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
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
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
/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
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.
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
import: success
site: signed out32 bytes of hash in front of each value
prefix removedChrome, Chromium, Edge, Brave and Opera
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, resumemissing browserwhat was checked, what to run nextpartial importwarns the session may not be restoredWhen 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, overridesBROWSER.mdthe Windows Opera walkthroughThe 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.




























