mirror of
https://github.com/garrytan/gstack.git
synced 2026-11-06 00:44:07 +01:00
* feat(skills): absorb pstack's blast radius, transcript recall, vet-the-number and design-twice as lazy sections
/investigate gains sections/blast-radius.md (the one safety fact, the five-rung
evidence ladder, look where grep stops, confirmed and cleared risks apart) with a
Phase 4 pointer, and the shared-premise red flag before the 3-strike rule.
/context-restore is carved for the first time: on NO_CHECKPOINTS, sections/transcripts.md
mines this workspace's own transcripts (host stores declared in hosts/*.ts and rendered
by TRANSCRIPT_SOURCES / TRANSCRIPT_DISCOVERY), a fixed 7-day window, never another
project's folder, subagents return only findings, redaction before anything leaves,
git and gh verify every artifact, a status-tagged brief. /benchmark is carved for the
first time: sections/vet-the-number.md asks the seven questions before Phase 5 reports
a comparison. /plan-eng-review gains sections/design-twice.md (a second structurally
distinct shape compared on interface depth, the eight design red flags), bound by the
autoplan methodology snapshot alongside review-sections.md.
Ideas from pstack (Lauren Tan, MIT), rewritten in gstack's words; NOTICE.md. Garry,
2026-10-26: "Do it, send". Guards: carve-guards entries and measured lines, eleven
plan-eng-review pins re-measured, periodic carve-section-loading cases for the two new
carves, free tests with a fixture transcript.
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
* fix(pstack-c1): fold design-twice into Section 1 of the eng review section, per-host transcript table, fixture and slice-cap repairs
The remote free run reported nine failures in seven files, all from this
branch: four tests encode plan-eng-review's one companion section
(eng-scope-entry-ap, autoplan-methodology-names, plan-review-cases,
review-checklists), so the design-twice pass now lives inside Section 1 of
sections/review-sections.md with the skeleton, manifest and
bin/gstack-autoplan-snapshot.ts back at main; the Codex render of
context-restore named ~/.claude/ through the all-hosts transcript table, so
{{TRANSCRIPT_SOURCES}} renders this host's row only; the transcript fixture
is declared in FREE_FIXTURES; and the two new periodic cases took the census
to 39 slices, so evals-periodic.yml's eval-slices max-parallel goes 38 -> 40.
Pins: 11 plan-eng-review re-pins at +2,896; maxSizeRatio 1.2400 (measured
1.2389); Codex gpt-5.4 overlay 159,588 bytes.
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
* fix: pre-landing review fixes
The discovery block takes the none branch from hosts/*.ts's transcripts
declaration instead of a host-name fallthrough, and the resolver header says
where each half lives; the T2 subagent brief frames the transcript as data,
not instructions; the test asserts table/block agreement per host, imports
CAPY_NO_TRANSCRIPTS, and drops the fixture-shape case nothing reads.
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
* docs: ADDING_A_HOST.md lists the optional transcripts HostConfig field
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
---------
Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
44 lines
2.6 KiB
Cheetah
44 lines
2.6 KiB
Cheetah
<!-- Blast-radius discipline derived from pstack's blast-radius skill (Lauren Tan, MIT), rewritten for gstack. See NOTICE.md. -->
|
|
## Blast radius
|
|
|
|
What a change breaks is rarely inside the diff. Listing the callers is not
|
|
the job; a symbol search does that in a second. The job is the breakage the
|
|
search cannot show, and a writeup that sounds right proves nothing either
|
|
way, so the deliverable is a fact that was run, not a paragraph.
|
|
|
|
1. **Read the whole change.** The diff, every symbol it adds, changes or
|
|
removes, and what now happens differently, including what the diff does
|
|
not spell out: a default that moved, an order that changed, a call that
|
|
is now skipped.
|
|
2. **Name the one fact it is safe because of.** Most risky-looking changes
|
|
are safe for a single reason ("this path only ever sees entries that have
|
|
already expired"). Write that sentence down. If it holds, most of the
|
|
maybes clear at once, so spend the time here, not on a long list of them.
|
|
3. **Look where grep stops.** Read the source of the library you call, at
|
|
the pinned version plus any local patch. Work out when things run:
|
|
microtask against macrotask, unmount and teardown, an effect that fires
|
|
twice. Follow what a symbol search misses: the JSON an API returns, a
|
|
database column, a wire format, another language reading the same bytes,
|
|
a feature flag, code three hops downstream.
|
|
4. **Climb the evidence ladder for each safety fact**, as far as is cheap,
|
|
and say where you stopped:
|
|
1. You said so. Worth nothing on its own.
|
|
2. You pointed at it: a real `file:line`, or the library's own source.
|
|
3. You walked the failure step by step and it does not reach.
|
|
4. You ran it: a script or test that calls the real code and fails loud
|
|
if you are wrong. Usually one small file that imports the library the
|
|
app ships and calls the exact function in question.
|
|
5. You reproduced it in the running app.
|
|
5. **Keep confirmed risks and cleared risks apart.** A confirmed risk names
|
|
how it breaks, the `file:line`, how likely and how costly it is, and the
|
|
check that would catch it. Cleared risks go in their own list with what
|
|
you checked. A search that finds nothing is still an answer; never invent
|
|
a caller or an API.
|
|
|
|
Report, in this order: what the change does, including the part that is not
|
|
obvious; the one safety fact, its rung, and the proof or the word "unproven";
|
|
confirmed risks; cleared risks; and the cheapest test or reproduction that
|
|
would catch the real bug, including any script you wrote. Cite real code and
|
|
strip anything private before the report leaves the machine. Under /ship this
|
|
is the material for the PR body's `## Blast radius` line.
|