Skip to content

test: the reading pass over test/o* - #740

Merged
christopherthompson81 merged 3 commits into
mainfrom
test-review-o
Aug 7, 2026
Merged

test: the reading pass over test/o*#740
christopherthompson81 merged 3 commits into
mainfrom
test-review-o

Conversation

@christopherthompson81

Copy link
Copy Markdown
Owner

3 files read, changes in 2.

oromo is clean. Its 322 lines use "no longer" a lot, but every instance describes a rule-ordering consequence rather than the file's own history — "step 5 consumes the meridiem and emits a half-day WORD, so a following enclitic no longer has digits in front of it" — which is exactly the porting fact a reader needs. Different thing from the This expectation previously pinned… pattern I've been cutting.

A dangling fragment, eighth variant

occitan's thin single source. — after asturian, bavarian, haitian, icelandic, kabuverdianu, luxembourgish and maltese. Eight files, eight slightly different truncations of one sentence.

Restated with the part that actually constrains a reader: 675 headwords, small and dialect-mixed — which is the ceiling on what any referee can say about a pan-dialectal orthography, where one spelling has dialect-specific readings by design. A low folded score there is a property of the writing system, not a defect.

Also

Referee percentages out of occitan and odia.

Clean on the other detectors: no mixed-script runs, no missing-space typos, no attesting tallies.

227 files / 3131 tests unchanged, typecheck clean. Comment-only.

🤖 Generated with Claude Code

https://claude.ai/code/session_012Lc3WnUgogC7okV7n53vjr

christopherthompson81 and others added 3 commits August 7, 2026 14:50
3 files read; changes in 2. oromo is clean — its 322 lines carry a lot of
"no longer" phrasing, but every instance describes a RULE-ORDERING consequence
rather than the file's own history ("step 5 consumes the meridiem, so a
following enclitic no longer has digits in front of it"), which is the porting
fact.

A DANGLING FRAGMENT, eighth variant: occitan's "thin single source." after
asturian, bavarian, haitian, icelandic, kabuverdianu, luxembourgish and
maltese. Restated with the part that actually constrains the reader: 675
headwords, SMALL and DIALECT-MIXED — which is the ceiling on what any referee
can say about a PAN-DIALECTAL orthography, where one spelling has
dialect-specific readings by design.

Referee percentages out of occitan and odia.

Clean on the other detectors: no mixed-script runs, no missing-space typos, no
attesting tallies.

227 files / 3131 tests unchanged, typecheck clean. Comment-only.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Lc3WnUgogC7okV7n53vjr
…gate

main was broken: test/manifest-script.test.ts imports MANIFESTLESS_SCRIPTS and
the table was not there, so two tests failed on the tip.

MY MISTAKE, and worth recording because the shape is generic. To prove the new
coverage gate was not vacuous I deleted the `lo` row, confirmed it failed, then
reverted with `git checkout -- src/core/scripts.ts`. But the table was still
UNCOMMITTED at that point, so the checkout did not undo my one-line break — it
undid the whole addition. I then committed the test that imports it, and merged.

⚠ THE VERIFY-BY-BREAKING TECHNIQUE IS RIGHT; DOING IT ON UNCOMMITTED WORK IS
NOT. `git checkout --` reverts to HEAD, not to "before my last edit", so it is
only safe once the thing being broken is committed. Commit first, break, revert,
then continue.

It also slipped through because I tail-ed the verification output and read a
timing line rather than a pass/fail line — the run after the revert showed only
"Duration 461ms". A check whose result I did not actually look at.

227 files / 3131 tests pass, typecheck clean.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Lc3WnUgogC7okV7n53vjr
…rong

I justified the table with "a manifest exists to hold DATA, and a file whose
only content is its own script name is a worse record". That inverts what
manifests are for: a manifest is a language's encyclopedic entry — phonology,
orthography, the concerns a reader needs before touching the engine — and the
data being IN it is what keeps the entry honest, not the reason it exists.

So the 26 single-.ts engines are missing a RECORD, not a field. Their
documentation is written — 8–20 line .ts headers, longer than the prose in
several manifests that do exist — it is just in the wrong file, with ~800–3,300
chars of tables inline beside the code.

The table stays for now because it is what makes coverage complete and the
union assertable, but it is interim for that third case and says so. Tracked in
#741.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012Lc3WnUgogC7okV7n53vjr
@christopherthompson81
christopherthompson81 merged commit f5f32fe into main Aug 7, 2026
2 checks passed
@christopherthompson81
christopherthompson81 deleted the test-review-o branch August 7, 2026 21:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant