docs: cite the conformance test that exists, and record three rules where they are looked up - #506
Merged
Merged
Conversation
…here they are looked up - `check.ts` and `check.test.ts` both pointed at `tests/scripts/checks_conformance.test.mjs`, which is not a file in this repo. The generated checks are compared against a second reader of the spec by `frontend/ui-core/src/data/conformance.test.ts`; both comments now name it. - `refactor-protocol` gains the two cleanup-phase quirks whose shared property is that the command reports failure while having succeeded, and the test-double fidelity rule. - `DESIGN.md` gains the indeterminate-progress rule, which lived only in a screen comment.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three rules that were written down somewhere other than where they get looked up, and two
comments pointing at a file that does not exist.
What changed
check.tsandcheck.test.tscite a test that exists. Both pointed attests/scripts/checks_conformance.test.mjs. There is no such file, and there is no record ofone having been deleted — the job it describes belongs to
frontend/ui-core/src/data/conformance.test.ts, whose own header states the same contractfrom the other side ("a second, deliberately naive validator", "the two failure modes
tscprovably cannot catch"). Both comments now name it.
While there, the unknown-key rule in
check.tssaid "a test pins it" without saying which.It is pinned twice —
check.test.ts:63on the combinators,conformance.test.ts:281acrossevery generated check — so it now names both. A reader who wants to know whether the rule is
really held can now get to the proof.
refactor-protocolgains the two cleanup-phase quirks. Both have the same shape: thecommand reports failure while having succeeded, so a session that reads the exit code
re-does work that is already done.
gh pr mergefrom a worktree exits non-zero onfatal: 'main' is already used by worktreeafter squashing and deleting the branch, andgit ls-remote --headscan be read before GitHub's asynchronous deletion has landed. Therule in both cases is to confirm the state rather than the exit code.
refactor-protocolgains the test-double fidelity rule. Stated as one rule because thetwo halves fail together: a double built from a remembered signature does not run the code
under test, and what then passes is nearly always an absence assertion, which a double that
raises on entry satisfies for free. Two occurrences paid for it — the fake-producer migration
(cf. #491) and an
IntegrityReportfake whose field name differed from the real model(cf. #496), where a check that never ran was indistinguishable from a check that found
nothing.
DESIGN.mdgains the indeterminate-progress rule. It lived only in a comment insideInferenceScreen.tsx, which is the one place a person deciding how a new progress surfaceshould look will not read.
Progressdraws an indeterminate value as an empty track and anempty track reads as 0%, so a run with no known total gets prose and no bar. Filed under
### Components, beside the other per-component contracts.Verified against HEAD, then dropped
Two items were on the list for this pass and are not in the diff, because both are already
correct at
5b623e3— #502 fixed them:README.mdquickstart was said to invokevisionset ui; it invokesvisionset server(
README.md:38). The PyPI wording is also already accurate and already non-announcing(
README.md:34,docs/install.md:19).docs/install.mdwas said to claim four export formats. It states no count at all; it tellsthe reader to run
visionset format list"rather than trusting a list written downsomewhere" (
docs/install.md:50-54), which is the durable form of the fix.Found, not fixed
Test plan
No behaviour changes and no new tests — every edit is a comment, a skill, or a design
document. The claim under test is therefore that nothing broke, and the full gate was run in
stages (harness kills a single invocation at ~10 minutes). Every stage's exit code, verbatim:
uv run pytestper directory fromls tests/:architecturecliexamplesformatsinferencejobskernelmcppackagingscriptsservertest_versioning.py0eachuv run ruff check .— All checks passed!0uv run ruff format --check .— 364 files already formatted0uv run lint-imports— Contracts: 4 kept, 0 broken.0uv run mypy src/visionset/kernel— Success: no issues found in 63 source files0pnpm test:scripts— tests 77, pass 76, fail 0, skipped 10pnpm -r build0pnpm -r test— Test Files 48 passed (48), Tests 903 passed (903)0pnpm -r lint0bash scripts/check.sh generated— PASSED0bash scripts/check.sh browser— All checks passed; e2e 95s, real-server cycle 22s, 1 passed (20.9s)0This PR closes nothing. #438, #466 and #417 are untouched.