Skip to content

Bug-hunt round 41: analyze schema-rule doc gap, -compute_type openness marker - #61

Merged
REPPL merged 5 commits into
mainfrom
bughunt-41
Aug 9, 2026
Merged

Bug-hunt round 41: analyze schema-rule doc gap, -compute_type openness marker#61
REPPL merged 5 commits into
mainfrom
bughunt-41

Conversation

@REPPL

@REPPL REPPL commented Aug 9, 2026

Copy link
Copy Markdown
Owner

Round 41 of the autonomous bug-hunt loop (state: issue #24).

Confirmed substantive (1)

.abcd/development/brief/04-surfaces/06-analyze.md's ingest section claimed to run "every schema rule" and silently omitted two.

The page lists six rules analyze -ingest enforces, introduced as "every schema rule" and closed with "Validation is transactional and exhaustive." It omits two rules internal/analyze/validate.go actually enforces unconditionally when present:

  • the mode field's A|B enum (internal/analyze/validate.go:164-165)
  • the 64-id cap on evidence (internal/analyze/validate.go:17, :174-175)

This is the identical defect round 39 already fixed on the sibling user-facing page, docs/reference/cli.md:156 ("the type, severity, and mode enums, non-empty evidence of at most 64 ids…") — round 39 fixed only that page and never swept this one. The brief page also contradicts its own cited source, .abcd/development/brief/05-internals/02-schemas.md:97,99, which documents both rules. Fixed to name both, matching cli.md's wording.

Confirmed nitpick (1)

docs/reference/cli.md's transcribe synopsis and internal/cli/cli.go's usage banner rendered -compute_type as a closed set, unlike its actual pass-through behaviour.

Both render [-compute_type auto|int8|float16] in the identical pipe-alternated form as three genuinely closed, validated siblings on the same line — -engine, -device, -vad, each refused at exit 2 by CheckEngine/CheckDevice/CheckVAD (internal/cli/cli.go:254,261,264). -compute_type has no validator anywhere in the tree and is a deliberate pass-through to whisperx (internal/cli/cli.go:228-230's comment states this explicitly; internal/transcribe/whisperx.go:96-103's resolveCompute only substitutes for ""/auto). Reproduced live on the built binary: -device bogus, -vad bogus, and -engine bogus all exit 2 with a usage error; -compute_type bogus and -compute_type float32 do not — they reach engine detection. float32 is in fact a real, working CTranslate2 compute type the CLI's own source names (internal/transcribe/transcribe.go:42), so the synopsis both over-promises validation and under-advertises a working value.

Both sites now carry the openness marker (|…), matching the pipe form already used correctly at docs/how-to/transcribe-a-recording.md:80 and the flag table at cli.md:59.

Considered and refuted

  • internal/cli/cli.go:183's -compute_type help string using ASCII "..." where cli.md's prose table uses "…". Split verdict on adversarial verification: one refuter found no stated repo convention ties code-side text to doc-side typography (the "US English in code" rule is about spelling, not glyphs), and that a single-line fix would desynchronise the help string from the identical ASCII list in its own explanatory comment at cli.go:229 — a coherent fix would need both lines, making the finding as originally scoped incomplete. Discarded per the loop's tie-breaking rule.

Verification

Every finding faced two independent adversarial refuters before being included above; only findings both refuters failed to kill were fixed. Dimension (a) code bugs and dimension (c) infrastructure surfaced zero findings this round — 40 prior rounds have hardened both areas heavily.

Gates

go build, gofmt -l ., go vet ./..., go test ./..., go test -race ./..., the pipeline smoke (merge + report against examples/sample-session), and sh -n install.sh && bash -n install.sh all pass on the branch head. Both fixes are documentation-only edits with no behavioural code change, so no new tests were required.

.abcd/work/DECISIONS.md gains the round's entry in this PR.


Assisted-by: Claude:claude-sonnet-5

REPPL added 5 commits August 9, 2026 17:22
04-surfaces/06-analyze.md claimed to list "every schema rule" ingest
enforces but omitted the mode A|B enum (validate.go:164-165) and the
64-id evidence cap (validate.go:17,174-175), contradicting its own
cited source (05-internals/02-schemas.md:97,99) and the sibling list
already corrected on docs/reference/cli.md:156 in round 39.

Assisted-by: Claude:claude-sonnet-5
docs/reference/cli.md's transcribe synopsis and cli.go's usage banner
rendered -compute_type auto|int8|float16 in the same closed pipe form
as its three validated siblings (-engine/-device/-vad, each refused at
exit 2), even though -compute_type has no validator and is a
deliberate pass-through (cli.go:228-230). Both now carry the openness
marker already used correctly in the how-to page's pipe form
(transcribe-a-recording.md:80).

Assisted-by: Claude:claude-sonnet-5
Assisted-by: Claude:claude-sonnet-5
…ntry

The blank line before the round-41 entry regressed round 38's fix
(commit 6bed161), making the whole 77-entry list render loose under
CommonMark. Also untangled a garbled antecedent ("which" reads back
onto cli.md instead of the schema page it actually modifies) and
corrected the compute_type precedent citation to the two sites that
already use a Unicode ellipsis (cli.md:59, 02-transcribe.md:18)
instead of the how-to page's ASCII form.

Assisted-by: Claude:claude-sonnet-5
@REPPL
REPPL merged commit 81a937d into main Aug 9, 2026
6 checks passed
@REPPL
REPPL deleted the bughunt-41 branch August 9, 2026 17:34
@REPPL REPPL mentioned this pull request Aug 9, 2026
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