content(sentence-library): Day 2 byDay variants for all 5 phonemes#129
Merged
content(sentence-library): Day 2 byDay variants for all 5 phonemes#129
Conversation
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
19/20 sentences get byDay["2"] (S13 omitted — all valid prefix lengths end with conjunction or article). D2 lengths are in [d1+1, n-1]. Co-Authored-By: Claude <noreply@anthropic.com>
All 20 sentences get byDay["2"]. D2 lengths are in [d1+1, n-1]. Non-prefix D1 sentences use parent-sentence prefix for D2. Co-Authored-By: Claude <noreply@anthropic.com>
19/20 sentences get byDay["2"] (S18 omitted — all valid prefix lengths end with preposition or article). D2 lengths are in [d1+1, n-1]. Co-Authored-By: Claude <noreply@anthropic.com>
All 20 sentences get byDay["2"]. D2 lengths are in [d1+1, n-1]. Non-prefix D1 sentences use parent-sentence prefix for D2. Co-Authored-By: Claude <noreply@anthropic.com>
19/20 sentences get a D2 entry; S18 omitted (all valid prefix lengths either end with a conjunction/article or lack a verb). Co-Authored-By: Claude <noreply@anthropic.com>
20/20 sentences get a D2 entry (0 omitted). Co-Authored-By: Claude <noreply@anthropic.com>
20/20 sentences get a D2 entry (0 omitted). Co-Authored-By: Claude <noreply@anthropic.com>
20/20 sentences get a D2 entry (0 omitted). Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
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.
Summary
Adds the Day 2 authored variants in
byDayfor every sentence across all 5 phoneme directories underPackages/MoraEngines/Sources/MoraEngines/Resources/SentenceLibrary/{f,r,sh,short_a,th}/. Together with the existing Day 1 (#116, #117, #127) and Day 5 (full sentence at the top level), this completes a Day 1 → Day 2 → Day 5 length ramp for the dictation (ShortSentences) phase.The companion source-code wiring (
SentenceDayPicker,SentenceLibrary.sentences(dayInWeek:…),SessionContainerView.bootstrapclamp onsessionCompletionCount + 1) was already merged in #116 — this PR is content-only.Day-2 length ramp (averaged over 360 sentences per phoneme)
All 5 phonemes satisfy
avg D1 < avg D2 < avg D5.Authoring strategies
Two distinct strategies, by phoneme:
f,th,sh,r. Day-2 is Day-1 with exactly one adjective inserted between an article and the noun (e.g.Shen hid a rex.→Shen hid a shy rex.). Where no such slot exists, falls back tobyDay["2"] = byDay["1"](Day-2 reads identically to Day-1). This produces grammatical output at every extension and a 26–61 % extension rate.short_a. Day-2 may pick any 5–7-word grammatical subset of the original (not constrained to be a superset of Day 1). When no valid subset exists,byDay["2"]is omitted entirely so the runtime falls through to the full Day-5 sentence rather than collapsing to Day-1. This was necessary becauseshort_aDay-1 sentences extract the simplest clause from compound originals, leaving only conjunctions/proper nouns that cannot grammatically be added one at a time. 350/360 sentences received a Day-2 entry.The relaxed strategy was added after the strict-superset rule produced 332/360 collapse-to-Day-1 fallbacks for
short_ain an earlier attempt — that effectively zeroed the ramp for the most-taught phoneme. The omit-on-failure rule preserves the ramp by allowing fallback to the full sentence instead.Quality notes
f,th,sh,r→ 100 % natural-reading.short_a→ ~60–70 % natural, ~25 % borderline (e.g. trailing dangling NP…and an Anky.), ~5 % awkward (trailing adjective…and a fast.— adjective wasn't in the strand blacklist). Acceptable for v1; further polishing is a follow-up content task.th,r,short_aJSON files were reformatted by their authoring sub-agents from the repo's compact one-line-per-word layout to a verbose multi-line layout. The data is identical (audited by structural equality); only whitespace differs. A pure-formatting follow-up commit could restore the compact layout if that's preferred.Verification
xcodegen generate✅xcodebuild build -project Mora.xcodeproj -scheme Mora -destination 'generic/platform=iOS Simulator' -configuration Debug CODE_SIGNING_ALLOWED=NO✅ BUILD SUCCEEDEDswift testper package: MoraEngines 309 ✅, MoraCore 131 ✅, MoraUI 63 ✅, MoraTesting 22 ✅ (525 tests, 0 failures, 12 skipped)swift-format lint --strict --recursive Mora Packages/*/Sources Packages/*/Tests✅ cleanTest plan
sessionCompletionCount == 0) on each phoneme and confirm Day-2 ShortSentences read shorter than the full sentence and grammatically reasonable.short_acell on Day 2 and confirm a fallback sentence renders as the full original (not as the Day-1 trim).short_aworktree for any session whose Day-2 reading ends with an awkward dangling adjective; if frequent in practice, file a quality-cleanup follow-up.🤖 Generated with Claude Code