mirror of https://github.com/garrytan/gstack.git
Adds an opt-in per-finding evidence layout to /qa and /qa-only. When the
user passes --evidence-per-finding (or natural-language variants like
"evidence per finding" / "one folder per bug"), the run writes one
self-contained folder per finding instead of the flat shared-screenshots
layout:
.gstack/qa-reports/qa-report-{domain}-{date}/
├── REPORT.md
├── findings/
│ ├── 001-critical-checkout-500-on-submit/
│ │ ├── finding.md (severity, repro, env, expected/actual)
│ │ ├── step-1.png
│ │ ├── step-2.png
│ │ ├── result.png
│ │ └── repro.webm (optional — present iff $B record was active)
│ └── 002-high-search-no-results/
│ └── ...
└── baseline.json
The default flat layout is unchanged.
When per-finding is the right call (now in the shared methodology):
- Run produces ≥5 findings — the flat layout gets noisy past that.
- Any finding is critical or high — those tickets travel further and need
self-contained evidence.
- An interactive bug needs video evidence — pairs with $B record (a
separate PR adds the recording primitive at the browse layer).
- Findings will be handed off as Linear/Jira tickets — each folder zips
into a single attachment.
Skip per-finding for quick smoke runs, 1-2 findings, or regression-mode
reruns where baseline.json is the canonical artifact.
Why a shared resolver: the structure and finding.md template are
identical for /qa and /qa-only. Per gstack's "no copy-paste across
leaves" prompt-size guidance, the shared content goes through
generateQAMethodology() (loaded into both via {{QA_METHODOLOGY}}). Each
leaf SKILL.md.tmpl only gets one new Setup-table row and a one-line
Output-Structure pointer to the shared section.
712 existing tests in test/gen-skill-docs.test.ts and
test/skill-validation.test.ts still pass.
|
||
|---|---|---|
| .. | ||
| references | ||
| templates | ||
| SKILL.md | ||
| SKILL.md.tmpl | ||