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.
|
||
|---|---|---|
| .. | ||
| app | ||
| host-adapters | ||
| resolvers | ||
| analytics.ts | ||
| archetypes.ts | ||
| build-app.sh | ||
| compare-pr-version.ts | ||
| detect-bump.ts | ||
| dev-skill.ts | ||
| discover-skills.ts | ||
| eval-compare.ts | ||
| eval-list.ts | ||
| eval-select.ts | ||
| eval-summary.ts | ||
| eval-watch.ts | ||
| garry-output-comparison.ts | ||
| gen-llms-txt.ts | ||
| gen-skill-docs.ts | ||
| host-config-export.ts | ||
| host-config.ts | ||
| jargon-list.json | ||
| models.ts | ||
| one-way-doors.ts | ||
| preflight-agent-sdk.ts | ||
| psychographic-signals.ts | ||
| question-registry.ts | ||
| setup-scc.sh | ||
| skill-check.ts | ||
| slop-diff.ts | ||
| test-free-shards.ts | ||
| update-readme-throughput.ts | ||