Files
Vincent Koc d72936b37e docs(reference): split the testing reference by reader job (#141221)
* docs(reference): split the testing reference by reader job

docs/reference/test.md was 92,671 characters and mixed agent proof policy,
how-to steps, reference tables, and runner-internals explanation on one page.
It is now a short index over six children, one per reader job:

- reference/test/local            Routine local order, core commands, PR gate
- reference/test/lanes            Control UI, TUI, extension, Gateway, E2E lanes
- reference/test/docker           Docker scheduler knobs and the notable lanes
- reference/test/performance      Profiling, shard timings, benchmark scripts
- reference/test/runner-internals Build locks, test state, JSON report merging
- reference/test/remote-proof     Crabbox/Testbox policy, wrapper, lease, trust

Anchor strategy: per-anchor redirect routes are impossible here, because
redirectSource() in scripts/lib/docs-redirects.mjs rejects any source
containing [?#]. Every pre-split anchor instead stays alive on the parent as
an authored <a id="..." /> stub in the "Where each section moved" list, the
same mechanism docs/ci.md uses. All 30 ids were enumerated with
parseDocsDocument, never a hand-rolled slug, so the four punctuated headings
keep both the encoded and the cleaned id (for example
full-docker-suite-(pnpm-test%3Adocker%3Aall) and
full-docker-suite-pnpm-testdockerall). 29 ids are stubbed; `related` is not,
because the index still publishes that heading itself, and stubbing it would
raise a duplicate authored/canonical ID collision.

Verified independently of docs-link-audit, which cannot see the regression:
the split rewrote the repo's own links, so the audit reads clean even when
external deep links break. Resolving all 30 pre-split ids against the parsed
post-split index gives 30 resolved, 0 dead, 0 collisions, and all 24 onward
deep links land on a real fragment of a real child.

Losslessness (bodies, frontmatter excluded):
  code fences        20 -> 20   (+0)
  table rows         47 -> 47   (+0)
  inline code spans 530 -> 530  (+0, byte-identical multiset)
  fenced blocks      10 -> 10   (byte-identical, so commands are unchanged)
  chars           92,523 -> 92,253 on children + 5,093 on the index
  words           10,008 ->  9,981 on children +   381 on the index
  links               13 ->      9 on children +    35 on the index
The chars/words/links deltas reconcile exactly: the two intro bullets (170
chars) and the Related list (139 chars, 3 links) stay on the index, and one
declared edit adds 40 chars and one link.

The single declared prose edit: "Local test commands below are the normal
trusted development path" pointed at a section the split moves to another
page, so "below" became a link to /reference/test/local. No other prose was
rewritten; the remaining prose findings stay open for a follow-up.

Test pins repointed. test/scripts/docs-sync-publish.test.ts pins the exact
Release & CI navigation page list and breaks on the docs.json nav addition;
its route list now includes the six children. The two QA Lab producers point
their docsRefs at reference/test/local.md, the page that now owns the
commands they run, instead of the index. changed-lanes.test.ts needs no
change: it uses the path only as a docs-path example and asserts nothing
about the content.

Closes audit findings: r3-0695, r3-0696

* docs(reference): link the relocated local test commands

ClawSweeper found a second orphaned cross-reference the split missed.
remote-proof.md said "Local test commands below", but after the split
those commands live at /reference/test/local while this page continues
with remote-proof instructions, so "below" pointed at nothing.

docs-link-audit --anchors: 0 broken links.
2026-09-09 02:15:05 +08:00

5.1 KiB

summary, read_when, title
summary read_when title
Index of the OpenClaw testing reference, one page per reader job
Running or fixing tests
Tests

This page is an index. The testing reference is documented on six pages, one per reader job. Open the page that matches your task.

Page Read it when
Run tests locally The routine local order, the core command table, and the local PR gate.
Control UI, TUI, and E2E lanes Control UI, TUI, extension, Gateway, and live lane commands and fixture rules.
Docker test suites The weighted Docker scheduler, its knobs, and the notable Docker lanes.
Test performance and benchmarks Import profiling, CPU and heap profiles, shard timings, and the benchmark scripts.
Test runner internals Shared build locks, isolated test state and homes, and JSON report merging.
Remote test proof When agents use Crabbox or Testbox, and the wrapper, lease, and trust rules.

Where each section moved

Every section heading from the previous single-page version keeps its anchor here, so an existing link such as /reference/test#core-commands still resolves. Each entry points at the page that now holds the content.