mirror of
https://github.com/garrytan/gstack.git
synced 2026-10-31 22:14:25 +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>
45 lines
2.3 KiB
JSON
45 lines
2.3 KiB
JSON
{
|
||
"$schema": "https://gstack.dev/schemas/section-manifest.json",
|
||
"skill": "investigate",
|
||
"version": 1,
|
||
"note": "PASSIVE registry (v2 plan T9 / CM2). id/file/title/trigger text ONLY. The skeleton's Phase 2 pattern table and the Arguments table decide WHEN to read a recipe; no machine predicate here (plan D3).",
|
||
"sections": [
|
||
{
|
||
"id": "flake",
|
||
"file": "flake.md",
|
||
"title": "Flake recipe: reproduce on main, failure rate over N runs, cause inside or outside the PR, gh run list comparison, forced probe, never loosen, the `## Flake evidence` PR-body section",
|
||
"trigger": "investigating a test that fails intermittently or only in CI (a flake), before any rerun, timeout or skip"
|
||
},
|
||
{
|
||
"id": "polluter",
|
||
"file": "polluter.md",
|
||
"title": "Polluter recipe: file order from the CI log, bisect the earlier files with ship-measure free --files, report the polluter and what it leaked",
|
||
"trigger": "investigating a test that passes alone and fails in the suite or in one shard (order-dependent)"
|
||
},
|
||
{
|
||
"id": "race",
|
||
"file": "race.md",
|
||
"title": "Race recipe: timing probes, forced interleaving, the concurrent-writer template",
|
||
"trigger": "investigating a timing-dependent failure or corrupted shared state (a race), before proposing a fix"
|
||
},
|
||
{
|
||
"id": "eval-bisect",
|
||
"file": "eval-bisect.md",
|
||
"title": "Eval bisect recipe: distinct revisions, a cached cheap scorer, detached runs, paid cases never retried",
|
||
"trigger": "investigating a judged or scored metric that regressed between two revisions (an eval bisect)"
|
||
},
|
||
{
|
||
"id": "backlog",
|
||
"file": "backlog.md",
|
||
"title": "Backlog mode: classify each open issue still_open / already_fixed <commit> / partially_fixed / owned_elsewhere, read-only table, no closing",
|
||
"trigger": "running `/investigate --backlog` (read-only issue triage instead of Phases 1–5)"
|
||
},
|
||
{
|
||
"id": "blast-radius",
|
||
"file": "blast-radius.md",
|
||
"title": "Blast radius: the one fact the change is safe because of, the five-rung evidence ladder, look where grep stops, cleared risks listed apart",
|
||
"trigger": "fixing a shared helper, library call or data format, or when asked what a change could break"
|
||
}
|
||
]
|
||
}
|