Repository navigation
perf(test): add a per-suite timing option and a wall-clock baseline doc with the Linux column #10200
Description
Parent: #3716 (slice 1 of 3). Runs first; slice 2 waits on it. Slice 3 runs in parallel.
Runs in: lane. Linux only; the Windows column is slice 2.
Problem
#3716 criterion 1 asks for a committed baseline table of per-suite wall clock on Windows and on the Linux CI runner. The Linux numbers partly exist: scripts/suite-seconds.txt holds median seconds per suite, but they are inferred from CI log timestamps (its header comment), because scripts/run-plugin-tests.sh prints only PASS: <suite> and no per-suite time. A Windows host has no way to produce comparable numbers, and the gate scripts the issue names (scripts/check-purged-em-dashes.sh, scripts/check-changed-skills.sh, scripts/check-changelog-parity.sh, plugins/skill-quality/scripts/check-skill.sh, plugins/planning/scripts/check-open-questions.sh; #3717 merge comment) have no recorded time at all.
Fix
- Add a timing option to
scripts/run-plugin-tests.sh(for example--timings <file>) that writes one TSV row per suite: suite path, wall seconds, exit code. Same option, same format, on Linux and Git Bash. No behavior change without the flag. - Add a way to time the gate scripts above in their typical single-diff invocation into the same TSV format (a flag on an existing script or one small script; name it in the doc).
- Commit
docs/test-wall-clock-baseline.md: how to produce each column, a Linux CI column filled from a whole-tree CI run with the new option (cite the run), the gate-script rows, and an empty Windows column that slice 2 fills. Link it from the header comment ofscripts/affected-tests.sh.
Done when
-
bash scripts/run-plugin-tests.sh --timings <tmpfile> <one suite>exits 0 and writes one row with three tab-separated fields -
test -f docs/test-wall-clock-baseline.mdexits 0, and the file cites the CI run behind its Linux column -
grep -c 'test-wall-clock-baseline.md' scripts/affected-tests.shprints 1 or more - The doc has a row for each of the five gate scripts named above
- The existing suites pass unchanged (
ci-statusis green on the PR head)
Split by the backlog HITL session (2026-10-25, owner rule Q93: split large work before a run picks it up). This was generated by AI.
Activity
github-actions commentedon Oct 26, 2026
Proposed work class: work-class: scoped
Basis: automated intake triage; the lanes App applied this class.
Size: Medium
Complexity: Low
Uncertainty: Known
Flags: none
Blocked by: none
Understood: add a
--timings <file>option toscripts/run-plugin-tests.shthat writes one TSV row per suite (path, wall seconds, exit code), and add a way to time the five named gate scripts into the same format. Also commitdocs/test-wall-clock-baseline.mdwith a Linux CI column citing a whole-tree CI run, the gate-script rows, and an empty Windows column, linked fromscripts/affected-tests.sh. The done-when items are concrete. The CI-run citation needs a real whole-tree run, which may have to happen after the change merges. No duplicates found among the open issues.Automated triage, applied by the lanes App.