compass(docs): stop restating the CPU gate census in 08, and pin scripts/compass/README.md:14 to a commit - #345
Conversation
…ME.md:14 to a commit 08_validation_protocol.md's CPU tier row and the paragraph under it still stated "130 of 189 files", "4030 passed" and a 2026-09-21 timing spread, none joined to the commit they were measured at. The row now says what the tier is, in the wording #339 settled (every test file outside tests/plugin/ and cpu_gate_exclude.txt, no driver as a batch), and sends the reader to gate_cpu.sh's own output and scripts/compass/README.md for the counts. The six-totals paragraph becomes two sentences: a total is a reading of one tree. scripts/compass/README.md:14 anchored its rocminfo example with a minute-precision date. Re-measured on node 18 at bdd244c: tests/test_postprocess_width.py run alone gives rc=2, "1 error in 0.82s", RuntimeError from rocminfo, reached through its importorskip of atom.model_engine.model_runner, whose line 19 imports aiter. The line now names that route and the commit. Refs #342 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…for 08
design/README.md restated 08's CPU tier figures in its document index row and
in the D43.1 decision-log row ("130 of 189 files", "4030 passed"). After the
previous commit they contradict 08, and #342's named result greps all of
atom/compass/design/ for both strings. Both rows now carry 08's wording. The
D43.1 row's GPU baseline, 4779 / 5, now names fe9ea04, the commit the index
row above it and gate_gpu.sh's BASE_COMMIT already give it.
Refs #342
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Coordinator ruling on the named result. #342's grep criterion is narrowed to exclude The separate commit |
| | Tier | What runs | Measured result | | ||
| |---|---|---| | ||
| | **CPU tier** — per task, and green is the bar | `tests/` minus `tests/plugin/` (30 files) minus the 29 driver-dependent files in `scripts/compass/cpu_gate_exclude.txt` = **130 of 189 files**. Driven by `scripts/compass/gate_cpu.sh`; no driver is touched **as a batch**. That is the weaker and correct claim: `test_postprocess_width.py` and `test_v4_checkpoint_slot_copy.py` are among the 130 handed, and each reaches `rocminfo` when run *alone* (`no tests collected, 1 error in 0.78s`, rc=2, each, measured at `236abfd9a` in `xiaobizh_n18_cpu`); inside the gate they module-skip on the mock an earlier file installs. Driver-freedom here is a property of the batch, not of every file in it. | **4030 passed, 0 failed**, 149 skipped, 3 xfailed, rc=0 — identical in every run taken on 2026-09-21, where the clock read **25.4-31.7 s of pytest inside 31.1-37.8 s of wall (`time` real)**, a measured spread rather than a bound: it tracks what else is on the node. Decomposition (principle 7): **3956 ATOM + 74 `tests/compass` = 4030**. Measured 2026-09-21 in container `xiaobizh_n18_cpu` on hjbog-srdc-18, against a `git archive` snapshot with `PYTHONPATH` asserted to resolve `atom` under that root and pytest's own exit status captured before any pipe. | | ||
| | **CPU tier** — per task, and green is the bar | Every test file outside `tests/plugin/` and `scripts/compass/cpu_gate_exclude.txt`. Driven by `scripts/compass/gate_cpu.sh`; no driver is touched **as a batch**. That is the weaker and correct claim: `test_postprocess_width.py` and `test_v4_checkpoint_slot_copy.py` are both in the tier, and each reaches `rocminfo` when run *alone* (`no tests collected, 1 error in 0.78s`, rc=2, each, measured at `236abfd9a` in `xiaobizh_n18_cpu`); inside the gate they module-skip on the mock an earlier file installs. Driver-freedom here is a property of the batch, not of every file in it. | Green, `GATE_CPU_RC=0`. The counts are not restated here, because they move with every test the tier gains or loses: `gate_cpu.sh` prints them under the `commit:` line of the tree it ran, and `scripts/compass/README.md` says what the tier runs. | |
There was a problem hiding this comment.
Non-blocking (principle 8: "Every claim carries its measurement. A number without a source is a defect.")
The Measured result cell now reads "Green, GATE_CPU_RC=0." with no tree attached. The GPU row beside it names fe9ea043c, the node, the container and the stack. This cell names nothing, so a reader cannot tell which tree the 0 was read on. The issue's named result is still met, because an rc is not a file count, pass count or timing. But this is the one reading left in a column headed "Measured".
Suggested fix, same line count: "Green, GATE_CPU_RC=0, at bdd244c57 in xiaobizh_n18_cpu. The counts are not restated here …". That anchors it without restating any count. I measured it at the merged tree 08edfc00e (stamp 847f646a6): GATE_CPU_RC=0. You measured it at bdd244c57 itself.
| because `test_dp_metadata.py`, `test_dp_sync_layout.py` and `test_forward_mode.py` were | ||
| re-measured and are CPU-green. Prose saying the list is 32, or that those three need the | ||
| driver, is stale. | ||
| **A total for this tier is a reading of one tree, not a property of the suite.** Each total |
There was a problem hiding this comment.
Non-blocking. ponytail-review:
shrink: the first two sentences here ("A total for this tier is a reading of one tree … compare only when each names its commit") restate the cell above ("they move with every test the tier gains or loses … prints them under the commit: line"). The paragraph can be only its last sentence, the test_dp_* / test_forward_mode note, which is the one fact the cell lacks. That saves about 2 lines.
That last sentence checks out: none of the three is in cpu_gate_exclude.txt at the head. In the junit of the gate I ran on the merged tree, they give 4 + 5 + 22 = 31 passed, which matches 16:108's "31 passed".
|
Review cycle 1: APPROVE at head There are no blocking findings. Two inline comments are non-blocking: r4087085010 (08:49, principle 8) and r4087085189 (08:52, ponytail Truth checks (principle 8: "Every claim carries its measurement.")
Named result (as ruled:
|
…paragraph in 08 to their commits (#349) 16_execution_plan.md, P0.1's per-task CPU-tier bullet: - The 130 of 189 files and 4030 / 0 / 149 / 3, rc=0, are pinned to 105ca41, P0.1's head. That is the branch column of PR #6's gate table, and 105ca41^{tree} == 4c16792^{tree} (fbcb036). - The clock spread is now the one the record pins: six runs at d737f15 and 7ff80cc (commit 8c0ee37). The wider 25.4-31.7 s range came from seventeen runs across ten commits that the record does not name. - 3956 is pinned to the base 042aad9, the control column of the same table. - 3925 and 4022 were never recorded against a commit, so they are dropped. 4005 at 3afcb48 stays. The 49 -> 74 growth is stated as +17 and +8. - "Green is not exercised": the 22 files are pinned at 105ca41. The skip decomposition is pinned to b963c94, where P0.2 measured it, and carried forward because tests/ and atom/ differ between the two commits only by the two tests/compass files, which skip nothing. - The trigger-file header counts are pinned at fada742, the commit the header itself names. 08_validation_protocol.md: - In the Revised paragraph, 189 / 29 of 159 / 30 are pinned at fada742. The driver claim was re-measured there on node 18, xiaobizh_n18_cpu, one file per process. All 28 GENERATED entries fail collection with "Get GPU arch from rocminfo failed". test_lmcache_offload_disk_integration.py fails 2 tests with "hipHostMalloc failed: 100" and then does not exit. tests/plugin collected alone gives the same "153 tests collected, 7 errors in 1.45s", rc=2, as at 236abfd. - The Measured result cell names bdd244c, where #345 read GATE_CPU_RC=0 (r4087085010). - The paragraph under the table keeps only its test_dp_* / test_forward_mode sentence (r4087085189, net -2). Closes #344 Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Closes #342
Developer round 1, head
1b901f085. Docs only, with no production or test lines.What changed
atom/compass/design/08_validation_protocol.md(commit936b98d21)tests/plugin/andscripts/compass/cpu_gate_exclude.txt", which is compass(docs): stop restating the CPU gate census in CLAUDE.md, and pin two scripts/compass figures #339's wording. It drops "(30 files)", "the 29 driver-dependent files" and "= 130 of 189 files". "among the 130 handed" becomes "both in the tier". The existingrocminfocaveat, pinned at236abfd9a, is kept.GATE_CPU_RC=0. The counts are not restated here, because they move with every test the tier gains or loses:gate_cpu.shprints them under thecommit:line of the tree it ran, andscripts/compass/README.mdsays what the tier runs." This removes "4030 passed", the 2026-09-21 timing spread and the 3956 + 74 decomposition.tests/compass, both of which change, so two totals compare only when each names its commit.test_dp_metadata.py,test_dp_sync_layout.pyandtest_forward_mode.pywere once excluded and were re-measured CPU-green (16); prose saying those three need the driver is stale."Which option I chose: no number. The row's bar is green, so no count is needed to make its point. The GPU row keeps its pinned
4779 / 5 at fe9ea043c, because a delta needs a baseline.scripts/compass/README.md:14(same commit): "(tests/test_postprocess_width.pydoes, throughatom.model_engine.model_runner'sfrom aiter import …; measured on node 18 atbdd244c57)". That is the wording r4086819090 suggested, with the commit I measured.atom/compass/design/README.md, rows 529 and 593 (commit1b901f085). This is outside the briefed file set, and it is a separate commit so it can be dropped. Both rows restated 08's census ("130 of 189 files", "4030 passed"), so they would contradict 08 after the change, and #342's named result greps all ofatom/compass/design/. Both now carry 08's wording. Row 593's "4779 / 5" gained "atfe9ea043c", the commit row 529 andgate_gpu.sh'sBASE_COMMITalready give it.The README.md:14 example, measured
On node 18,
xiaobizh_n18_cpu, on agit archiveofbdd244c57.atom.__file__=/tmp/i342gates/control/ATOM/atom/__init__.py.python -m pytest tests/test_postprocess_width.pyrun alone gives rc=2 and1 error in 0.82s. The route istests/test_postprocess_width.py:24pytest.importorskip(→atom/model_engine/model_runner.py:19from aiter import destroy_dist_env, init_dist_env→CalledProcessErroron/opt/rocm-7.2.4/bin/rocminfo→RuntimeError: Get GPU arch from rocminfo failed. In the gate's junit, the same file isskipped: collection skipped.Named result: met in part, and the rest is escalated
grep -rnE "130 of 189" atom/compass/design/at the head finds nothing.grep -rn 4030 atom/compass/design/still finds 3 lines, all in16_execution_plan.md(117, 123, 125). They are P0.1's per-task CPU-tier bullet, "130 of this tree's 189 test files, 4030 passed …", with no commit, and the bullet under it depends on them.0.78s/ rc=2 at236abfd9a(unchanged),bdd244c57, and4779 / 5atfe9ea043c.git ls-tree: they hold atfada7424e(189 / 30 plugin / 29 excluded), not at236abfd9a(188) orbdd244c57(225). That is recorded in compass(docs): 16_execution_plan.md still restates the CPU gate census (4030, 130 of 189) #344.Gate 1: ATOM's suite, unmodified, as a delta against a control
Node 18,
xiaobizh_n18_cpu, one run at a time. Each tree was staged bygit archive, streamed withdocker exec -iinto/tmp/i342gates/{control,branch}/ATOM, and md5-matched on both ends. Each ran the tree's ownscripts/compass/gate_cpu.sh --junitxml=…undertimeout -k 10 1800, not piped.atom.__file__was asserted under each staged root before the run..compass-changedholds this PR's 3 files on both sides.commit:printedGATE_CPU_RCbdd244c57bdd244c57bdd244c57 (stamp)08edfc00e7820c28cd(git commit-tree, parents tip + head)7820c28cd (stamp)gate: 29 files excluded + tests/pluginandgpu: not required (.compass-changed stamp).TestTheRegionIsNotCopiedPerChunk,TestNoSizeAtWhichACallStopsBeingOne(including[minimax]) andtest_gc_utils.py::test_freezing_twice_is_additive_and_harmless.git merge-tree --write-tree bdd244c57 1b901f085=08edfc00eeab46c604d5b10a363d23644f3e8481, which equals1b901f085^{tree}. The tip had not moved at push time.ba4d3cd15. It gave the same counts,GATE_CPU_RC=0, and a zero node-id delta. It is superseded by the row above.08+6/−13,design/README.md+2/−2,scripts/compass/README.md+1/−1).No test opens
08_validation_protocol.md. The README rows thattest_cpu_gate_exclude.pyandtest_gate_gpu_surplus.pyjoin are thecpu_gate_exclude.txt,gpu_gate_triggers.txtandgate_gpu.shrows, and this PR leaves them untouched.Not done
🤖 Generated with Claude Code