Repository navigation
Practice that listens: Say it, Explain it, streaks, the drills corpus (phase 4) - #70
Open
ChaliceForAuri wants to merge 2 commits into
Open
ChaliceForAuri wants to merge 2 commits into
ChaliceForAuri wants to merge 2 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
… (GDR-0023 phase 4) Three drills, each with a check the harness can score: - Spell it: the letters heard against the word (as before). - Say it: SayItGuardrail before the model (the sentence must use the word and be a sentence) and on its verdict (one yes-or-no, one line); ModelDrillJudge in TimbreModel asks the on-device model, greedy. - Explain it: ExplainItCheck on the words first — the meaning's key terms against what was said, stems allowed — the judge only in the unsure band, so most rounds never need the model. DrillPlanner picks the drill per entry per day (acronyms are explained, spellings spelled, words alternate, nothing needs a judge without the model). Streaks is the private game: days met or practised, the week's counts, the five words most worth a minute. PracticeQueue orders the sitting. The Mac gets a Practice window (menu › Practice…, Settings › Library) on its own SpokenInput so the hotkey pipeline is never borrowed, and the streak and week in Settings. The iPhone's Spell it tab becomes Practice with all three drills; Today shows the streak. Fixtures/drills.json (12 cases) runs its checks in TimbreCoreTests and its judge in timbre-eval --drills --repeat; measured on this Mac: checks 12/12, judge 4/4 solid at three repeats. --examples measured 7/8 solid; the one empty draft now reports the model's error instead of a blank. Backstage's Evals page gains a Learning tab listing the four corpora. Core: 99 tests. Kit: 169. Lint clean. The Mac app, the companion and the site build. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Xcode 26's compiler rejects reading a main-actor static from the judge's nonisolated async method; Xcode 27 let it through. The enum is pure and reads a nonisolated system property, so it is nonisolated, and CI's toolchain is the floor. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
ChaliceForAuri
force-pushed
the
companion
branch
from
October 21, 2026 20:59
7091582 to
d0791ad
Compare
ChaliceForAuri
force-pushed
the
practice
branch
from
October 21, 2026 20:59
a0927bc to
3362782
Compare
This branch has not been deployed
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.
Stacked on #69. Phase 4 of the product map: every drill spoken, every drill scored like a command.
The drills
SayItGuardrail: the sentence must use the word and be a sentence; the verdict must be one yes-or-no with one lineModelDrillJudge(TimbreModel), greedyExplainItCheck: the meaning's key terms against what was said, stems allowed; pass above 60%, fail below 25%DrillPlannerpicks the drill per entry per day (acronyms explained, spellings spelled, words alternate by day); without the model nothing is planned that needs a judge, so the Watch and an older iPhone still practise.Streaksis the private game: days met or practised, the week's counts, the five words most worth a minute.Surfaces
SpokenInput, so the hotkey pipeline is never borrowed; streak and week in Settings › Library.Measured
Fixtures/drills.json, 12 cases. Checks run inTimbreCoreTestson every push. The judge runs intimbre-eval --drills --repeat; on this Mac, checks 12/12 and the judge 4/4 solid at three repeats, with reasons like "You used 'ephemeral' to mean forever, but it means very short-lived."--examplesmeasured 7/8 solid; the finance case came back empty each time, and the harness now prints the model's error for it rather than a blank. Backstage's Evals page gains a Learning tab listing all four corpora (44 cases).Verified
Core 99 tests, Kit 169, lint clean; the Mac app, the companion (Practice tab seen on the iPhone 17 simulator) and the site build;
sync:docsregenerated.🤖 Generated with Claude Code