Files
meshcore-analyzer/qa
Kpa-clawbot e31e14cae9 qa(plan): apply v3.6.0-rc QA findings (#832/#833/#836) (#837)
Apply v3.6.0-rc QA learnings to the plan.

## Changes
- **§1.1** — 1 GB cap is unrealistic on real DBs without `GOMEMLIMIT` +
bounded cold-load. Raised target to 3 GB and pointed to follow-up
**#836**. (Investigation showed cold-load transient blows past any
sub-2GB cap regardless of `maxMemoryMB` setting because
`runtime.MemStats.NextGC` ignores cgroup ceilings.)
- **§1.4** — `trackedBytes`/`trackedMB` is in-store packet bytes only
and under-reports RSS by ~3–5× (no indexes, caches, runtime overhead,
cgo). Switched the assertion to use `processRSSMB` exposed by **#832**
(PR **#835**).
- **§11.1** — noted the Playwright deep-link E2E assertion was updated
by **#833** (PR **#834**) to match the post-#823 full-screen behavior.

## Why
Three real findings from the QA ops sweep ([§1.4 fail
comment](https://github.com/Kpa-clawbot/CoreScope/issues/809#issuecomment-4286113141)).
Updating the plan so the next run doesn't replay the same
false-fail/false-pass conditions.

Co-authored-by: Kpa-clawbot <agent@corescope.local>
2026-04-20 23:29:18 -07:00
..

CoreScope QA artifacts

Project-specific assets for the qa-suite skill.

Layout

qa/
├── README.md                  ← this file
├── plans/
│   └── <release>.md           ← per-release test plans (one file per RC)
└── scripts/
    └── api-contract-diff.sh   ← CoreScope-tuned API contract diff

How to run

qa staging              # use the latest plans/v*-rc.md against staging
qa pr 806               # use plans/pr-806.md if it exists, else latest plans/v*-rc.md
qa v3.6.0-rc            # use plans/v3.6.0-rc.md

The parent agent loads the qa-suite skill, which reads:

  1. The plan file from qa/plans/
  2. Bundled scripts from qa/scripts/
  3. The reusable engine + qa-engineer persona from the skill itself

Adding a new plan

For each release candidate, copy the latest plans/v*-rc.md to plans/<new-tag>.md and update:

  • The commit-range header (vN.M..master)
  • Any new sections for new features in the release
  • The "Test data" section if new fixture types are needed
  • The GO criteria (which sections are blockers)

Adding a new script

Custom scripts go in qa/scripts/ with mode=auto: <script-name> referenced from the plan. The qa-engineer subagent runs them with two args: BASELINE_URL TARGET_URL.

Authoring rules from the qa-suite skill:

  • 4-way error classification: curl-failed / parse-empty / shape-diff / field-missing
  • Distinguish HTTP errors from jq parse failures
  • Don't silence stderr — script bugs must surface
  • Exit code = number of failures