Skip to content
Back to skills

Performance Test Harness

ASecurity

Design the harness that MEASURES performance as release evidence — what to measure per surface (endpoint percentiles, query timings, frontend metrics on a device class, job durations), an environment contract (prod-like data volume and tenant shape, pinned hardware, declared cache state), repeat-run baselines and noise bands, thresholds CONSUMED from latency-budget-architect and slo-reliability-architect (the harness asserts numbers others set), CI tiers (PR smoke, nightly full, pre-release) ...

  • 4 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 11, 2026
businessgodatabasefrontendperformance

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned October 5, 2026

npx -y skills add ModernNomad-98/Project-Aegis --skill performance-test-harness --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Performance Test Harness?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Performance Test Harness
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/modernnomad-98-performance-test-harness/badge)](https://www.skillsdirectory.com/skills/modernnomad-98-performance-test-harness)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: performance-test-harness
description: Design the harness that MEASURES performance as release evidence — what to measure per surface (endpoint percentiles, query timings, frontend metrics on a device class, job durations), an environment contract (prod-like data volume and tenant shape, pinned hardware, declared cache state), repeat-run baselines and noise bands, thresholds CONSUMED from latency-budget-architect and slo-reliability-architect (the harness asserts numbers others set), CI tiers (PR smoke, nightly full, pre-release) with advisory-to-blocking promotion, and honest reporting (conditions stamped; UNRUN stated, never implied green). MEASURES what D12.3 designs for; this design executes nothing against production, and later live execution needs an applicable human grant; load scenarios come from load-test-planner. Use when building perf measurement or regression gates, or when "did it get slower?" lacks an evidenced answer. Do NOT use to design FOR performance (D12.3) or plan traffic (load-test-planner).
---

# Performance Test Harness

Reading key: D12.3 names the roadmap's performance-design group;
service-level objective (SLO) names an agreed service target; continuous
integration (CI) runs automated checks on proposed and merged changes; a
pull request (PR) proposes one change; end-to-end (E2E) tests drive a whole
user journey; p50, p95 and p99 are the 50th, 95th and 99th percentile
values; central processing unit (CPU) means a machine's processor; and
personally identifiable information (PII) can identify a person.

## Purpose

Every team discovers performance regressions the same way — a customer
does — because "it seems fine" was the release evidence. This skill
designs the measurement instrument: which numbers are captured per
surface, under what pinned conditions they are comparable week to week,
how a regression is DETECTED against variance rather than eyeballed,
which thresholds gate (consumed from the budget and SLO owners — the
harness asserts numbers, it does not invent them), and where in CI each
measurement tier runs. It is the MEASURES side of the pack's seam: the
performance-engineering design pack (called D12.3 in the library's
catalog) designs systems to be fast; this harness proves whether they
are, and catches the release that makes them slower. It designs the
instrument and its gates; it runs nothing against production, and the
traffic it drives comes from `load-test-planner` scenarios.

*Provenance (history, not operative definitions):* **D12.3** is the
identifier the [reconciliation
log](../../../docs/reconciliation/step-0-reconciliation-v4.md) gives the
six-skill performance-engineering pack
(`profiling-methodology-designer`, `query-plan-reader` *(manual-only)*,
`n-plus-one-detector` *(manual-only)*, `caching-strategy-designer`,
`latency-budget-architect`, `frontend-perf-engineer`). It labels where that
pack was planned, not a definition this harness relies on; those skills are
named directly wherever they govern.

## Use When

- Use when: building or overhauling performance measurement for a
  product — endpoint percentiles, query timings, frontend metrics,
  job/function durations — as standing release evidence.
- Use when: "did this PR / release make it slower?" has no evidenced
  answer and regression gates are wanted in CI.
- Use when: perf numbers exist but are incomparable (unpinned
  environments, single-run diffs, unstated data volumes) and the
  measurement needs an environment contract.
- Use when: budgets (`latency-budget-architect`) or SLO targets
  (`slo-reliability-architect`) exist and need enforcement as
  pre-release assertions.
- Do NOT use when: designing the system to BE fast — caching, query
  tuning, budgets, frontend optimization are the performance-engineering
  design pack (catalog row D12.3; `caching-strategy-designer`,
  `query-plan-reader` *(manual-only)*, `latency-budget-architect`,
  `frontend-perf-engineer`); this skill measures what they built.
- Do NOT use when: planning the traffic itself — workload models,
  tenant mix, stress/soak/spike profiles are `load-test-planner`; the
  harness EXECUTES its scenarios and measures the result.
- Do NOT use when: a caught regression needs attributing to a
  component — that investigation is `profiling-methodology-designer`;
  the harness raises the flag, the methodology finds the culprit.
- Do NOT use when: designing production SLO monitoring/alerting —
  that is `slo-reliability-architect` (targets/alerts) and
  `observability-operator` *(manual-only)* (wiring); this harness is PRE-release
  validation.
- Do NOT use when: architecting the functional test suites (unit/
  integration/E2E structure, runners, fixtures) —
  `qa-automation-architect`; the perf harness is a sibling with its
  own environment and variance disciplines.

## Inputs to Inspect

1. The surfaces worth measuring, ranked: critical-journey endpoints,
   the queries behind them, key pages (with device class), background
   jobs and edge functions with duration obligations — from budgets,
   SLOs, and incident history.
2. The thresholds that already exist: `latency-budget-architect`
   budget tables, `slo-reliability-architect` targets, contract
   promises — the harness consumes these; where none exist, the gap
   is named, not filled in silently.
3. Environment options honestly assessed: what prod-like means here —
   data volume and tenant shape (`test-data-architect` conventions
   for seeding at volume), hardware/instance parity, and what CANNOT
   be made representative (third parties, fleet size) — stated as
   known blind spots.
4. The load sources: existing `load-test-planner` scenarios (or their
   absence — smoke-level self-generated load is the floor), and the
   driver tooling the team can operate.
5. CI topology: pipeline stages, time budgets per stage
   (`ci-pipeline-architect`'s latency budget for the pipeline
   itself), and where nightly/pre-release runs can live.
6. Historical variance if any measurements exist: how noisy current
   numbers are — this sizes the noise bands and repeat counts.

## Workflow

1. **Choose the measured set.** Per surface class, the specific
   measurements: endpoints (latency p50/p95/p99, error rate,
   throughput at target load), queries (timing at representative
   volume — plan-shape checks live with `query-plan-reader` *(manual-only)*),
   frontend (the loading/interactivity/stability trio on the device
   class `frontend-perf-engineer` defined), jobs/functions (duration,
   queue wait). Every measurement names its owner and the decision it
   informs — measurements nobody acts on are deleted.
2. **Write the environment contract.** The conditions stamped on
   every result: data volume and tenant shape (seeded via
   `test-data-architect` conventions), instance/hardware class,
   config flags, network position, cache state (cold/warm — declared,
   not accidental), and the isolation rule: the measurement
   environment is not shared with other work during runs. What cannot
   be made representative is listed as a blind spot on the report,
   permanently.
3. **Design baseline management.** Baselines are per-measurement,
   per-environment-contract, versioned with the code (a baseline from
   last quarter's data volume is not a baseline), refreshed on
   deliberate change (an approved perf-affecting merge updates the
   baseline explicitly — silent drift is the anti-pattern), and
   stored where CI can diff against them.
4. **Design regression detection that respects variance.** Repeat
   runs (N per measurement, N stated), percentile-to-percentile
   comparison, and a noise band derived from observed run-to-run
   variance — a regression is a delta exceeding the band, not any
   delta. Warm-up runs discarded by policy. Single-run diffs are
   banned by design; flaky perf checks erode gates faster than no
   gates.
5. **Set thresholds by consumption.** Each gate's number cites its
   source: hop budgets (`latency-budget-architect`), journey targets
   (`slo-reliability-architect`), frontend budgets
   (`frontend-perf-engineer`), or an explicit team decision recorded
   where no owner-set number exists. The harness NEVER invents a
   threshold silently — an uncited number is a finding against the
   design itself.
   When no owner-set target exists, explain the choice: seek a proper
   latency/SLO budget (a product reliability commitment) or record an
   interim team threshold (a temporary, labeled comparison rule). A
   proper target takes stakeholder and measurement time but supports a
   defensible blocking gate; an interim rule can start advisory checks
   sooner but may be too loose or strict and needs review/replacement.
   Compare money, setup time and upkeep using known team/CI costs, mark
   unknowns, recommend proper target-setting for blocking gates and an
   interim advisory rule only if the team needs evidence now. Ask one
   target-path question; never silently promote an interim number.
6. **Place tiers in CI.** Per-PR: fast smoke (a bounded subset at
   light load — minutes, not hours) catching gross regressions;
   nightly: the full measured set at target load against baselines;
   pre-release: the heavier `load-test-planner` scenarios (soak/
   stress where planned) as release evidence. New gates start
   ADVISORY and are promoted to blocking after a stated stability
   window — the credibility ramp that keeps teams from deleting the
   gate the first noisy week.
7. **Design the report.** Every result carries: conditions stamp
   (the environment contract fields), baseline compared against,
   repeat count and variance, verdict per gate
   (PASS/FAIL/ADVISORY-FAIL), and UNRUN as a first-class status —
   a skipped perf tier is reported as UNRUN, never silently absent
   (a green pipeline that didn't run the perf tier is not perf
   evidence). Regression flags route to
   `profiling-methodology-designer` for attribution.
8. **State the execution posture.** The harness design targets
   dedicated measurement environments. Anything touching production
   (even read-mostly probes) or shared infrastructure at load is
   subject to an applicable human grant and validated safety contract — the design says so on
   its face, and running the harness is an operator/CI act, not this
   skill's.

Measurement catalogs per surface, the environment-contract template,
noise-band sizing, and the tier/report formats:
[references/harness-architecture-sheet.md](references/harness-architecture-sheet.md).

## Output Format

```
PERFORMANCE TEST HARNESS DESIGN — <product/scope>
Measured set: <surface → measurements → owner → decision informed>
Environment contract: <data volume/tenant shape (seeding ref), hardware class,
                       config, cache state policy, isolation rule>
Blind spots: <what cannot be representative — permanent report footnote>
Baselines: <per measurement; versioned with code; refresh-on-approved-change rule>
Detection: <repeat count N, percentile comparison, noise band derivation,
            warm-up discard policy; single-run diffs banned>
Thresholds: <each gate → cited source (budget|SLO|frontend budget|recorded decision)>
Target choice: <if absent: proper target vs interim advisory threshold,
                terms, costs, pros/cons, recommendation and why, one question>
CI tiers: per-PR smoke <scope, minutes> | nightly full <scope> | pre-release <load-test-planner scenarios>
          advisory→blocking promotion rule: <stability window>
Report: <conditions stamp, baseline ref, variance, PASS/FAIL/ADVISORY/UNRUN;
         regression → profiling-methodology-designer>
Execution posture: dedicated environments; production/shared-infra touches
                   check applicable grant and safety contract; this design executes nothing.
```

## Validation Checklist

- [ ] Every measurement names an owner and the decision it informs;
      the set was ranked, not exhaustive by default.
- [ ] The environment contract exists and every result stamps it;
      blind spots are listed, not implied away.
- [ ] Baselines are versioned and refresh only on approved change —
      no silent drift path exists.
- [ ] Detection uses repeat runs with a variance-derived noise band;
      no single-run diff anywhere in the design.
- [ ] Every threshold cites its source; zero invented numbers.
- [ ] If targets are absent, the owner sees the proper-target versus interim
      advisory tradeoff, costs and recommendation before choosing.
- [ ] Per-PR tier fits its pipeline time budget; heavier tiers are
      placed where they can afford to run.
- [ ] New gates start advisory with a stated promotion rule.
- [ ] UNRUN is a reportable status and a skipped tier cannot read as
      green.
- [ ] The design executes nothing against production; applicable grant gates
      are stated in the posture section.

## Gotchas

- The noise-band paradox: gates tighter than the environment's noise
  band fail randomly, get muted, and then miss real regressions —
  the band is measured first, the gate set outside it. A flaky perf
  gate is worse than none.
- Baseline drift by kindness: "the baseline was old so I refreshed
  it" quietly ratifies last month's regression. Refresh is coupled
  to an APPROVED perf-affecting change, and the refresh is itself a
  reviewed diff.
- Empty-database heroics: measurements over toy data volumes produce
  numbers that flatter every query — volume is part of the
  environment contract because the planner and the plans change with
  it (`query-plan-reader`'s own capture rule, applied fleet-wide).
- Shared-runner sabotage: perf jobs on shared CI runners inherit
  neighbors' CPU steal — numbers move with the runner's mood.
  Dedicated/pinned runners for measured tiers, or the results are
  weather.
- Warm-cache flattery vs cold-start truth: both are real; blending
  them is the sin. The cache-state policy declares which state each
  measurement captures.
- The per-PR tier that grew: smoke tiers accrete measurements until
  they take 40 minutes and get skipped under deadline. The pipeline
  time budget is a hard constraint; overflow moves to nightly, not
  into developers' patience.
- Percentiles need samples: a p99 from 50 requests is a dice roll;
  minimum sample counts per percentile are part of detection design.
- Third-party stubs that lie politely: stubbed dependencies answer
  in 1ms; production's answer in 300ms. Stub latencies are shaped to
  observed distributions (the planner's data), or the blind spot is
  stamped on the report.

## Stop Conditions

- Asked to run the harness (or any load) against PRODUCTION or
  shared live infrastructure → stop; produce the approval-ready
  proposal (scope, load level, blast-radius statement, abort rule)
  and check for an applicable human grant; request approval only for missing
  scope under the repo's conventions.
  The design never self-executes there.
- No thresholds exist and the requester wants the harness to invent
  pass/fail numbers → refuse silent invention; route target-setting
  to `slo-reliability-architect` / `latency-budget-architect`, or
  record an explicit interim team decision as the cited source.
- The only available environment shares infrastructure with
  production tenants (noisy-neighbor risk flows TOWARD real users)
  → halt that tier's design and surface the isolation gap; a
  measurement that can degrade production is not a test, it is an
  incident with a dashboard.
- Data seeding at representative volume would require production
  data copies → stop and route to `test-data-architect`'s
  PII-safe synthetic/anonymization path; the environment contract
  never launders real personal data into test systems.
- Asked to also design the workload models, tenant mix, or
  stress/soak profiles → that is `load-test-planner`'s plan;
  compose it, don't absorb it.

## Supporting Files

- [references/harness-architecture-sheet.md](references/harness-architecture-sheet.md)
  — per-surface measurement catalogs, environment-contract template,
  noise-band sizing method, baseline lifecycle, CI tier table, and
  the report format with the UNRUN rule.
- `evals/evals.json` — behavior cases including the variance-band
  edge and the run-against-production refusal.
- `evals/trigger-evals.json` — discrimination against
  `load-test-planner` (the sibling), the performance-engineering
  design-pack skills (`latency-budget-architect`, `frontend-perf-engineer`),
  `slo-reliability-architect`, and `qa-automation-architect`.

Files in this skill

  • SKILL.md14 KB
  • evals/evals.json5 KB
  • evals/trigger-evals.json4.1 KB
  • references/harness-architecture-sheet.md4.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…