Development record
the grounds word floor counts letter runs so a language written without inter-word spaces is refused and its bullet is silently dropped by the reader
the grounds word floor counts letter runs so a language written without inter-word spaces is refused and its bullet is silently dropped by the reader
Found by the round-3 adversarial ruthless review of build/itd-179. REGRESSION INTRODUCED BY fc557f10 -- the text passed before the floor existed.
wordRe = regexp.MustCompile("[\\p{L}]+") counts letter RUNS, and a language
written without inter-word spaces has exactly one. Measured by the reviewer:
Chinese 26 runes -> 1 run; Japanese 30 runes -> 1 run. Both are refused with
"carries 1 word(s), below the 3-word floor" despite being substantive
conjectures well clear of MinTextLen. Thai survives by accident, because its
combining marks are Mn rather than L and so break the runs.
Two things make this worse than an i18n nitpick:
- The refusal is satisfiable by punctuation. Adding two ideographic commas yields 3 runs and the same text passes. For that script the floor degenerates into a comma count -- which is the "answerable with nothing" failure the commit set out to close, displaced by script rather than removed.
- The reader half compounds it into a gate that lies.
intent.ParseGroundsapplies the sameValidateText, so such a bullet is silently dropped, and ready.go:306 then reports "no recorded grounds -- the conjecture behind pursuing itd-N is unrecorded" about a record that VISIBLY CARRIES ONE. That is the gate/reader divergence class this branch has spent three rounds closing, re-entering through the floor.
No committed record is affected: all 10 populated records are Latin script and clear the floor (the corpus's shortest entry is 32 words). So this blocks nothing today and is captured rather than chased.
Remedy (smallest, class-level): express the floor over a property that survives
scriptio continua -- count \p{L} RUNES, applying the run-count condition only
when the text contains no ideographic or kana runes. Failing that, state the
scope honestly in the doc comment AND in the refusal message, so an operator is
not told to add words to a language that has no word breaks.
Do NOT raise or lower 3: for Latin script the value is well judged.
CORROBORATED INDEPENDENTLY by the round-3 security review, which reached it by a different route (a 36-case injection harness plus route enumeration) and graded it a correctness/availability defect rather than a security one -- declining to launder it into a block, and putting the fix-or-record call to the orchestrator.
Its added detail, which raises the severity of the consequence:
- The argument is MANDATORY since round 1. So a Chinese- or Japanese-writing
operator cannot
promoteorresolveANY issue, and cannot satisfy theintent readygate. There is no flag and no waiver. - The failure is ASYMMETRIC:
capture wontfix <id> "<CJK reason>"still succeeds, because the reason-derived path skips ValidateText. So the same operator can decline work but cannot pursue it. - The remedy the gate PRINTS on refusal will itself refuse the same text.
Verified not to be a wedge on this corpus: all 10 populated records are Latin script and the measured figures are identical before and after the floor.
Grounds
- pursued: we expect a floor expressed over the text's letters rather than over its inter-word spaces to admit every script without re-opening the padding cases; appending one ideograph to a single long word, or one kanji to twenty zero-width spaces, would still clear it if that were wrong
Frontmatter
| id | iss-2608301301044588 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2608301301044588-the-grounds-word-floor-counts-letter.md
open on GitHub ↗ · commit history ↗
mentions1
- itd-179The reasoning behind what was pursued no longer evaporates at the gate — readiness and triage record grounds for the conjecture, not only the decision