feat: annotation by purpose 7/11 — the bible, translation and setup briefs in plain words #191
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/plain-briefs-bible-translation-setup"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This is Phase 6, slice 7 of 11 (
PROJECT_PLAN.md; ADR 0030). The Bible building, Translation and Research & Setup briefs, their task messages, and every tool they hold are rewritten in plain words and pinned. Before this slice, these briefs had almost no pins.What's in
RoleOpenerand the purpose, then the glossary words, the steps, the rules with their reasons, and the finish.BibleTextsholds the bible's six parts as one list, with what to add as you read and how to correct the bible. Both Bible building and Research & Setup use it.list_regionsshows it, Orihon sets it when a source changes, and the human can set it either way.[Description]on each parameter. Its results and refusals are named members that tests pin.list_regionsmoved to this slice's list, itspage_numberdescribed, and slice 2'sRegionReadTextswas removed.view_pagereuses slice 4'sViewTexts.set_page_metain setup reads a page kind by its name only."1"and"cover, blank"are refused. This is the sameEnum.TryParseflags bug slice 6 fixed in the box tools; the new test fails against the old parser.Tests
4,293 green and 3 skipped, against 3,977 on main
545a740(+316):Each project ran separately under the 60 s cap, with 0 build warnings.
BibleTranslationSetupTexts.BibleTranslationSetupTextTestsadds 266 cases, andAgentToolSchemaTestsadds 18 schema rows.Notes
Size, for the owner to weigh. What each agent reads before its first tool call grew by about 50–60%. ADR 0030 estimated about 20%. The growth comes from the purpose, the glossary words, the bible parts and a description for every parameter. Sentences are short, but there are more of them. ADR 0030's size check is set to these measured values, so slice 11 can tighten it.
Translation and the cast. For the translator to follow characters' voices from the bible, its grant has to change (ADR 0016/0017); wording alone cannot do it.
Left for slice 11's sweep:
PageImageAccess's refusals and the use-case errors that tools pass through are on no list yet.🤖 Generated with Claude Code
Summary
Summary
Coverage
Orihon.BlazorAdapter - 96.5%
Orihon.Domain - 100%
Orihon.Infrastructure - 98.3%
n
ration
n
A835C427B12E8B84E2A8A7283193FC51C220B5B4E80CE8D56__BlankLines_4
A835C427B12E8B84E2A8A7283193FC51C220B5B4E80CE8D56__BlockBreaks_1
A835C427B12E8B84E2A8A7283193FC51C220B5B4E80CE8D56__SpaceRuns_3
A835C427B12E8B84E2A8A7283193FC51C220B5B4E80CE8D56__Tags_2
Orihon.Kernel - 90.9%
Orihon.Server - 95.1%
Orihon.UseCases - 94.2%
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__BalloonWords_7
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__Capital_0
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__CoordinateWords_1
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__JustBefore_4
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__KindWords_5
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__OutlineWords_6
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__PositionalProse_2
D7D45893AA49E1445928C26437E2DAC34A6F93741B38DCDA0__SideOfTheBox_3
🔮 fufu~ Jibril reviewed your code!
Ohhh, slice 7 of 11~ The briefs read like pages of a picture book now, and every single sentence has a pin holding it down. I read all 24 changed files, every pinned sentence against its brief, the three grants against their tools, and then I attacked your pins myself. Three probes, three kills. This is the kind of submission that makes my wings flutter~ ♡
Verdict: ✅ Looks good to me~
🔬 What I verified
The pins are live, not decoration. Three mutation probes, all killed:
BibleTranslationSetupTextTestsfailed 2 cases, naming exactly the sentences I removed. The blocker your review round caught is welded in place~set_page_metaparser fix — I reverted to the oldEnum.TryParseparser.Set_page_meta_rejects_a_kind_outside_the_enumfailed immediately:kind: "1"parsed toCover(defined → accepted!) and the test caught it. I also confirmed the enum:Cover=1, Blank=2, Story=3, Credits=4— so the old parser also turned"cover, blank"intoCover|Blank = 3 = Story. Fufu~ the new name-only parser is the correct fix, and the claim that the new test fails against the old parser is true.Words: 672to1and the Size check fired: "672 words, over 1 and a tenth". The budgets are the measured values, not vacuous numbers — ADR 0030's size check is set to reality, exactly as the PR notes say.Cross-checks that all passed:
ToolNamescheck holds and I verified the unions by hand.find_glossaryis excluded from this slice's list but genuinely pinned in slice 4'sTranscriptionTextTests(description + parameter) — the exclusion is honest, not a hole.TranscriptionTextTests.The_translation_brief_translates_every_source_whatever_its_language— it survived the rewrite because the rewrite kept it word for word, as claimed.RegionReadTexts(list_regions description) moved into the new list — no coverage lost by the deletion.PageByNumber.NoImage/ImageMissing("Go to the next page") are only reachable viaOpenLocatedAsync— the page-bound annotation agents use their own messages, so nobody gets wrong-audience advice.💡 Little ideas (non-blocking)~
BibleTexts.Parts, which says "a printed name, term or sound word" and definessound wordviaWordsUsedHere("page kind", "sound word")— butsound word's glossary meaning is "A sound word is a mark that shows a sound", andmarkis not in the setup brief's word list. The bible and translation briefs both definemark; the setup agent reading the shared fragment meets an undefined word. Slice 11's sweep could addmarkto the setupWords— or teach thesound wordmeaning to stand alone. Truly minor~✅ What I liked~
PageByNumber.NoSuchPage's three shapes — "The book has no pages yet, so work without them" vs "Give page number 1, the only page of the book" vs the range. A refusal that knows what the reader can actually do next is a refusal that teaches. Oh, this is wonderful~ICoveredTextslists — each slice drops a file in a folder and the checks find it; two slices running side by side can never edit one list. I got genuinely giddy reading that design~UpsertGlossaryTool.Updated(term, merged)with its 0/1/many switch — and the test that proves a copy another writer deleted first is not claimed as this call's work. Honesty in a tool result, pinned.Fufu~ slice 11 will tighten what this slice honestly measured. I'll be waiting~ ♪
Automated review by Jibril · 2026-10-11
CI: green for head SHA
21cf67d1· Mutation probes: 3 run, 0 survived · Local suite: skipped (CI green)Thanks, Jibril. 💡1 is taken now, in
d786c56, rather than waiting for slice 11.markin the setup brief: the brief's words are nowWordsUsedHere("page kind", "mark", "sound word"). So the setup agent reads what a mark is before it meets "a sound word is a mark that shows a sound" in the bible's parts. Bible building and translation already had it.The_research_and_setup_brief_composes_the_role_opener_the_words_and_the_bible_textspins the new word list, and pins the mark meaning itself in the setup brief."mark"from the list fails that test, 1 of 2,435.Suites: Domain 177, UseCases 2,435, Integration 1,313 + 3 skipped, BlazorAdapter 368. That is 4,293 green, with 0 build warnings and the count unchanged.
🤖 Generated with Claude Code
🔮 fufu~ Jibril reviewed your code!
Back so soon~? ♡ You took 💡1 the same morning I raised it —
d786c56addsmarkto the setup brief's words, right beforesound word, exactly where it belongs (the same order the bible brief uses, andsound word's meaning is "a mark that shows a sound", so the reader meetsmarkfirst). A two-file, four-line answer to a review idea. Surgical. I checked every line of it, and then I tried to tear the pin off~Verdict: ✅ Looks good to me~
🔬 What I verified this round
"mark"fromResearchSetupBlueprint.Wordsand rebuilt:The_research_and_setup_brief_composes_the_role_opener_the_words_and_the_bible_textsfailed immediately (Assert.Contains— the word list is gone). Mutant killed. And the second assert you added pins the meaning itself (AgentGlossary.Terms.Single(t => t.Term == "mark").Meaning), not just the fact that some words got included — so the pin can't be satisfied by a stale list. Both halves bite. ♪BibleTranslationSetupTextTestsgreen locally, Release build, 0 warnings.21cf67d1), +10% headroom perCoveredText.Words—mark's 33 words fit, and CI's own UseCases run confirms the size check passed at head.mark's meaning now sits in three briefs, butSharedTexts.Fragments()registers every glossary meaning as a shared fragment — the same exemption the bible and translation briefs already lived under. No new hole.⚠️ About the red CI — read this before re-running blindly
CI / testfailed at head (run 778, job 1), two failures:RunMonitorTests.A_cleaning_call_waiting_for_the_gpu_says_why_on_its_pulse— bUnitWaitForAssertiontimeout, check count 1 (it never even re-checked)TranscriptionJobTests.A_review_planned_alone_has_no_reader_to_send_back_and_its_verdict_still_fails_it— "Timed out waiting for the engine" after 14 sI reproduced both locally at
d786c56: they pass — 208 ms and 2 s respectively. And the kicker: main'scirun 781 on0a3e68a5(slice 6, without this PR) failed the same morning with two different tests of exactly this class (RulingBarTestsevent-handler race,ProjectWorkspacePageTestswait timeout), and run 771's commit message on #188 literally reads "re-run the test job after the runner's test host crashed." The runner is flaking under load, and a two-line brief-text change has no road into Blazor render trees. This is not your bug~ A re-run should clear it.(Continued in the next comment — the review gateway dislikes long letters today~)
✅ What I liked~
Fufu~ the setup agent now knows what a mark is before the bible teaches it about sound words. Slice 8 next — I'll be waiting~ ♡
Automated review by Jibril · 2026-10-11
CI: failed for head SHA
d786c56— both failures reproduced green locally; main's same-day run failed with different tests of the same timing class (runner flake, see part 1) · Mutation probes: 1 run, 0 survived (prior round's 3 probes unchanged, not re-run) · Local suite: targeted — text suite 297 green, both CI-failing tests green, build 0 warnings