Study-zh Hub
Prototypes, status, version history · updated 2026-10-08 · source:
waterfall-immersion/hub/Snap to a prototype
Taiwan immersion23-min audio · reading line centered
zh-analyzerWaterfall mode from the PDF design guide
Waterfall · video5-min clip · reading line centered
Karaoke Readerpaste text → hanzi/pinyin/zhuyin/gloss
Pronunciation practicepronunciation trainer
Vowel visualizerlive formant chart
Pronunciation trainer homemandarin-pronunciation-trainer.pages.dev
Waterfall v1 (archive)original project, Aug 2026
Status & where we left off
Waterfall · Taiwan immersion + video fixed 10-08
- Both modes now use the Aug 27 v1 layout: media on top, 9-column boxed captions, controls at the bottom.
- No side gaps or dead bands; on desktop the grid widens to 22 columns.
- The yellow reading line stays at the vertical middle (measured 0–8 px off), so earlier and upcoming lines both show.
- Video mode works again: the clip is restored from the Aug 27 deploy.
- Next: your review on a real phone.
Waterfall · zh-analyzer unreviewed
- Built from
sources/zh-analyzer.pdfas?mode=zh-analyzer. - Not re-checked against the PDF since it was built. Now served from
analyzer.html; the old URL redirects.
Mandarin pronunciation trainer live
- Vite + TypeScript, multi-page: home,
/read,/practice,/vowel. - Latest work: on-device zh→en translation in Karaoke Reader, plus a big Paste button.
- 25 uncommitted files from the active session
9ba54261. Commit them from that session.
Hanzi reader extension working
- Chrome extension: pinyin/zhuyin/gloss over any page, using CC-CEDICT segmentation.
- Latest work: gloss-quality fixes and lazy on-device translation.
- 1 uncommitted file:
src/content.ts.
study-zh-natural-chinese dormant
- Python pipeline: YouTube transcript → NLP corpus.
- 2 commits, no GitHub remote.
- Lives outside
study-zh/, at~/Documents/study-zh-natural-chinese.
zh-transcriber no git
- Sep 6 session: transcribing a YouTube video and running it in the cloud.
- Only has
start-point-1/andvideos/.
14-day A2 playbook in git
- Study docs: playbook, phonetics, Sino-Korean reference, Anki deck.
- First git commit made 2026-10-08. No remote.
- Role in the super-app: curriculum and pacing.
Taiwan immersion version history (re-snap)
- Every Cloudflare deploy stays live at its own URL. Click a thumbnail to open that exact version.
- Every version's HTML is also in git:
waterfall-immersion/snapshots/<date>_<id>/index.html. - To make an old version current again:
./restore-snapshot.sh 8418fc7a, then deploy.
Branch recommendation
- Layout rebuild is done (Oct 8), so it doesn't need its own branch anymore.
- Next Waterfall work: start a fresh session in
waterfall-immersion. This one is about 14 MB and has been compacted several times.- For layout experiments, deploy previews with
--branch <name>. They get their own URL and don't touch production.
- For layout experiments, deploy previews with
- No new branch needed for the other projects. Each already has its own session.
Merging into a language-acquisition super-app
- Same code exists 3 times: CC-CEDICT segmenter, pinyin/zhuyin layers, word glosses, on-device opus-mt translation.
- Copies live in the Karaoke Reader, the Hanzi extension and Waterfall.
- Shell = pronunciation trainer. It's already a multi-page Vite + TS app, so add
/waterfallthere. - Pipelines produce one transcript format. zh-transcriber, natural-chinese and Waterfall's
process.mjsshould all output the same transcript JSON. - Extension stays separate, distributed through the Chrome Web Store, but imports the shared core.
- Order:
- Fix the Taiwan layout.
- Define the transcript JSON schema.
- Extract a
zh-corepackage. - Port Waterfall into the trainer as
/waterfall. - One domain; the playbook drives the daily plan.
Claude Code sessions
| Session | Covers | Dates | Resume |
|---|---|---|---|
6a88e8c3 | Waterfall (this one): Taiwan mode, zh-analyzer, hub | Aug 24 – Oct 8 | cd ~/Documents/study-zh/waterfall-immersion && claude --resume 6a88e8c3-3913-474c-bd0f-9c4f9f7f55e5 |
9ba54261 | Karaoke Reader (pronunciation trainer) | Sep 16 – Oct 8 | cd ~/Documents/study-zh && claude --resume 9ba54261-b92c-4e5a-94da-41e433d6727f |
3d198388 | Waterfall text-misalignment debug (Hanzi extension conflict) | Sep 14 | cd ~/Documents/study-zh && claude --resume 3d198388-ecaa-4e8e-aa75-c65809b0dce6 |
85dbafcd | Chrome DevTools MCP setup | Aug 25 – Sep 4 | cd ~/Documents/study-zh && claude --resume 85dbafcd-21c0-4a3e-ba38-578a11c6030e |
3f1f68cd | zh-transcriber | Sep 6 | cd ~/Documents/study-zh/zh-transcriber && claude --resume 3f1f68cd-fb91-4903-8ffd-9457ce7c9d00 |
Cloudflare, git & keys
| Project | Pages project | Git remote |
|---|---|---|
| Waterfall (current) | waterfall-immersion-v2 | github.com/datazen123/waterfall-immersion |
| Waterfall v1 (archive) | waterfall-immersion | same repo, Aug 22–27 deploys |
| Pronunciation trainer | mandarin-pronunciation-trainer | github.com/datazen123/mandarin-pronunciation-trainer |
| This hub | zh-study-hub | waterfall-immersion repo, hub/ |
| Hanzi extension | none (Chrome extension) | github.com/datazen123/hanzi-reader-extension |
| natural-chinese, playbook | none | local git only |
- No API keys are committed. All repos were scanned on 2026-10-08.
- Cloudflare deploys use your
wrangler loginOAuth. It lives in~/Library/Preferences/.wrangler/, outside git. - Render polling service reads
CLOUDFLARE_API_TOKENfrom Render's environment settings (render.yamlholds only the name). - DeepSeek key (Hanzi extension) is typed into the extension popup and stored in
chrome.storage. - All repos ignore
.env*and.dev.vars. If you add keys, put them there.