spec(split-reel): v9 -- each voice is held to its own slowest measured pace - #5932
Merged
Merged
Conversation
…d pace v8 judged every text at MS_PER_CHAR=56, the owner's pace. A slower voice was charged, measured past SPEECH_MAX_SECONDS and given back, on every reel it was asked for. v9 (PACE_PER_VOICE=true): - A voice keeps, on its clone's own row, the slowest pace it was ever measured at (measured_pace, slowest_pace, pace_to_keep). - A text is judged at the slower of MS_PER_CHAR and that pace (pace_for). speech_ms_estimate and text_fits take the voice's pace. - A text is counted in speech units: DIGIT_WEIGHT=4 and WIDE_CHAR_WEIGHT=4 for Han, kana and Hangul. - A text under MIN_PACE_UNITS=107 is not counted as a measurement. The refund stays as the backstop for a voice's first reel and for a voice slower than its own slowest. test-report 23/23. validate-vacuity: 0 of 23 vacuous. 7 negative controls on copies, all red. Closes #5925 Refs gHashTag/999-multibots-telegraf#3573 phi^2 + 1/phi^2 = 3 | TRINITY Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…sured pace Refs #5925 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
crm-story-reel v24 (t27#5915) removes HOUSE_SKIPS_ELEVENLABS; the voice note in split-reel.t27 no longer points at it. Comment only, re-sealed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
PR DashboardGenerated at: 2026-10-04 07:29:01 UTC
Summary
Seal Status
|
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
This was referenced Oct 4, 2026
Merged
Merged
Merged
Closed
This was referenced Oct 4, 2026
Contributor
PR DashboardGenerated at: 2026-10-04 10:42:42 UTC
Summary
Seal Status
|
This was referenced Oct 4, 2026
Merged
Merged
Merged
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.
What
specs/automation/split-reel.t27goes from v8 to v9: each voice is held to its own slowest measured pace before it is paid for.Closes #5925. Host: gHashTag/999-multibots-telegraf#3573 (option (c) there; options (a) and (b) were rejected for the reasons given in that issue).
PACE_PER_VOICE = true, next toMS_PER_CHAR.MS_PER_CHAR = 56, the owner's pace. A slower voice was charged, measured pastSPEECH_MAX_SECONDS, and given back, on every reel it was asked for.MS_PER_CHARand that pace. A voice is never judged faster thanMS_PER_CHAR.pace_for(slowest)measured_pace(ms, units)slowest_pace(kept, measured)pace_to_keep(kept, ms, units)row_pace_after(row_of_measured, kept, ms, units)speech_ms_estimate(units, slowest)andtext_fits(units, slowest)now take the voice's pace. A voice never measured passes 0 and is judged atMS_PER_CHAR, exactly as in v8.PACE_ON_OTHER_VOICES = false.MS_PER_CHAR.keepVoicePace'sWHERE voice_id = $1, widened to... OR ms_per_char IS NULL, passed every test. The test fake applied the UPDATE to the voice in$1, whatever the WHERE said.DIGIT_WEIGHT = 4.WIDE_CHAR_WEIGHT = 4.PLAIN_CHAR_WEIGHT = 1.MS_PER_CHARwas measured on such text, and the measured clip has no digits and no wide letters (checked).MIN_PACE_UNITS = 107(half of the 214 that fit atMS_PER_CHAR).REFUND_TOO_LONG_VOICE) stays as the backstop for a voice's first reel and for a voice slower than its own slowest.Checks (run on this branch at
3adcffa3a, numbers from the output)t27c test-report specs/automation/split-reel.t27(this checkout's own t27c): tests 24, pass 24, FAIL 0, rate 100.0%. Four are new in v9:t27c validate-vacuity --specs-dir <dir holding only this spec>: 0 of 24 tests assert nothing (0.0%).t27c seal --save: tests 24/24, failed 0, forced false. spec_hashsha256:e7db3e6e0176f80ad1aa09b51dd8630e288bb988aec00ef2c983d25f7c2aaf29.Negative controls.
tri spec-controls(999) runs the host's 34 controls against copies of this spec: 34 of 34 caught.PACE_ON_OTHER_VOICES = truerow_pace_afterreplaced byif kept > 0(a never-measured clone takes the measured pace)MS_PER_CHAR(PACE_PER_VOICEignored)pace_forslowest_paceMIN_PACE_UNITSguard dropped: a short text caps the voiceMIN_PACE_UNITSmoved off half the ceilingPACE_ON_OTHER_VOICES = trueThe host copy is byte-identical to this spec (
cmprc 0). Host: 47 of 47 mutants killed (see 999#3581).The commit-msg gate (L1) and the pre-commit
tri hooks pre-commit/ NOW gate pass on both new commits.tri hooks pre-push(the NOW range gate) passes.Limit
MS_PER_CHAR. The house is never charged, so no tokens are at stake there.Notes
703302b55(theHOUSE_SKIPS_ELEVENLABSdrop) carries noRefs #5925in its message. Force-push is not allowed, so it stays as is; every later commit carries it.t27c test-reportbuilds in a fixed$TMPDIR/t27c-test-report-<file stem>. Two runs on the same file stem at once overwrite each other's binary. That made one control read MISSED, and made a seal drop itstestsrecord (failed to invalidate kernel cache: FileNotFound). The numbers above come from runs with a privateTMPDIR.phi^2 + 1/phi^2 = 3 | TRINITY
🤖 Generated with Claude Code