Files
meshcore-analyzer/qa
Kpa-clawbot f30e6bef28 qa(plan): reconcile §8.2/§5.3/§6.2 + add §8.7 (Recent Packets readability) (#838)
Doc-only reconciliation of v3.6.0-rc plan with what actually shipped.

## Changes
- **§8.2** — desktop deep link now opens full-screen view
(post-#823/#824), not split panel as the plan still asserted.
- **§5.3** — pin that severity now derives from `recentMedianSkewSec`
(#789), not the all-time `medianSkewSec` — a re-tester needs to know
which field drives the badge.
- **§6.2** — pin the existing observer-graph element location
(`public/analytics.js:2048-2051`).
- **New §8.7** — side-panel "Recent Packets" entries must navigate to a
valid packet detail (DB-fallback per #827) AND text must be readable in
the current theme (explicit color per #829). Both bugs surfaced this
session.

No CI gates.

Co-authored-by: Kpa-clawbot <agent@corescope.local>
2026-04-21 08:01:17 -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