給家中兩個小孩使用的靜態學習平台。根目錄是 registry 驅動的 hub,站內 app 共用 child 身分、Cloudflare Worker 進度同步與獎勵素材;題庫資料處理 pipeline 仍保留在同一個 monorepo。
線上入口:https://kids.linshuhuan.com/(煦誠學習/秉樸學習/家長後台)
此區塊由 App registry 與 task catalog 自動產生,勿手改。相同資料供家長作品白板使用;操作與歸檔規則見任務庫。
包含 draft/parked 與外部 App;對象是 registry 預設,不是孩子目前的家庭設定。App 上下架不代表工作已完成,沒有明確工作狀態就顯示「未標記」。
| App | 來源 | 可用版本 | 工作狀態 |
|---|---|---|---|
| Native Camp Review | aiden-study/docs/nativecamp | 不計分預覽 | 未標記;App 上下架:啟用;未另標記工作狀態。 |
| 題庫練習 | aiden-study/docs/study | 網頁 | 未標記;App 上下架:啟用;未另標記工作狀態。 |
| 長除法練習 | aiden-study/docs/math | 網頁 | 未標記;App 上下架:啟用;未另標記工作狀態。 |
| 英文拼字 | aiden-study/docs/spelling | 網頁 | 未標記;App 上下架:啟用;未另標記工作狀態。 |
| 數織解謎 | aiden-study/docs/math/nonogram | 網頁 | 未標記;App 上下架:啟用;未另標記工作狀態。 |
| 注音練習 | aiden-study/docs/zhuyin | 網頁 | 未標記;App 上下架:啟用;未另標記工作狀態。 |
| 動物守護者 | animal-fight | 探險卡 PDF、任務狀態卡 PDF、規則與用法 | 未標記;列印作品;舊 GitHub Pages 網址已失效,改用公開 PDF 與規則。未另標記工作狀態。 |
| 英文閱讀 | aiden-english | 外部網頁 | 未標記;App 上下架:草稿;未另標記工作狀態。 |
| 隕石數學防衛隊 | 99-meteor | 外部網頁 | 未標記;App 上下架:暫不上架;未另標記工作狀態。 |
每份任務保留一個來源入口;白板把同系列合成一列,展開後仍可找到每份素材。活動日期、狀態與對象由同一份登錄產生於任務索引。
| 任務 | 找得到什麼 | 可用版本 |
|---|---|---|
| Native Camp 2026-09-12 Mel | 天氣與穿著:takes/uses、wearing、is/are 與不規則複數。 | 不計分預覽 |
| Native Camp 2026-09-09 Emi | Who/What 問句、完整介紹、人與動物的一天。 | 不計分預覽 |
| Native Camp 2026-09-08 Maria | 照顧動物、午睡、棲地與故事角色的完整句。 | 不計分預覽 |
| Native Camp 2026-09-12 Lena | 依實際課堂內容練完整句排列與口說。 | 不計分預覽 |
| Native Camp 2026-09-11 Edon | 依實際課堂內容練完整句排列與口說。 | 不計分預覽 |
| Native Camp 2026-09-10 Anastasia | 依實際課堂內容練完整句排列與口說。 | 不計分預覽 |
| Native Camp Weekly Review 09-14~09-20 | 本週新題與少量較早概念;首次弱項優先。 | 不計分預覽 |
| Native Camp 2026-09-17 Khalid | 來源核對、完整句排列與口說。 | 不計分預覽 |
| Native Camp 2026-09-13 Michael | 來源核對、完整句排列與口說。 | 不計分預覽 |
| Native Camp 2026-09-16 Edon | 來源核對、自主題、口說與跨日複習。 | 不計分預覽 |
| Native Camp 2026-09-14 Edon | 來源核對、自主題、口說與跨日複習。 | 不計分預覽 |
| Native Camp 回放複習試作 | 紙本口說;另供 App 自主題、口說與跨日複習。 | 不計分預覽、孩子版 PDF、家長版 PDF |
| 悠閒午後閱讀心智圖 | 五枝放射圖、各段重點保留、iPad 選詞。 | 網頁 |
| 四上數學第一份短練習 | U1「一億以內的數」15~20 分鐘紙本練習;孩子作答、家長分卷核對。 | 私用成品 |
| 四上第一次段考數學候選卷 | 桃子腳第一次段考前,依概念與實際範圍篩選歷屆數學卷。 | 私用成品 |
| 四上第一次段考自然候選卷 | 桃子腳第一次段考前,依地表與水生環境概念篩選歷屆自然卷。 | 私用成品 |
| 閱讀心智圖選詞引導 | iPad 選詞、四角放射心智圖、短詞抄寫。 | 網頁 |
| 新竹動物園小小探險 | 火車地理、園區選路、動物特徵觀察、昆蟲分類;卡片可任意中止。 | 列印 PDF |
可跨任務沿用的內容從 shared 索引 找;例如兒童閱讀心智圖。這些是經驗或資源,不另外計為一份作品。
下列作品保留其明確分支來源,不複製或合併其他裝置的工作。網站可用與來源已整合是兩件事;最新工作狀態仍回查該分支/PR,不把遠端日期當成尚未推送的即時變動。
| 作品 | 來源 | 已有成果入口 | 工作狀態 |
|---|---|---|---|
| 怎麼和 AI 一起做出探險卡 | aiden-study/learning-tasks/ai-collaboration-showcase(codex/ai-collaboration-showcase) | Cloudflare Pages 故事網站 | 未標記;網站已發布;來源仍為主線外工作分支,工作狀態回查該分支。 |
白板的 create/update 取作品來源範圍的 Git commit 日期(臺灣時間),不是活動日、發布日或孩子作答時間;create 指目前來源位置首次收錄。完整歷史不足時建置失敗,未知日期顯示「—」。遠端同步失敗保留上次已知值並明示過期;不以同步嘗試時間更新作品日期。
docs/registry.json 定義平台可用 App。獨立 /parent/ 家長後台已於 2026-09-15 正式發布,實際顯示對象、排序、題庫學期、頭像與練習安排可從後台調整。新版孩子首頁、累計與永久積木徽章已上線,預設 LEGO 頭像,指定的扁平版保留供替換;規則與驗證見 UI/UX 改版說明。既有進度同步仍共用 docs/shared/sync-v1.js 與 docs/shared/wiring-v1.js,新增家庭設定/累計使用 family-*,後端都位於 worker/。
2026-09-16「家長首次連接、記住入口」已正式發布。此版將家庭金鑰換成 HttpOnly Cookie、保留帶金鑰舊圖示的自動轉移,並新增首頁前景更新及失敗提示。kids.linshuhuan.com 已啟用 Cloudflare proxy,僅 /api/* 交由 Worker,其餘頁面仍由 GitHub Pages 提供;步驟與驗證見 入口連線說明。
五個 app 已提供回孩子首頁的連結,兩個首頁的頁面名稱分別為「煦誠學習」「秉樸學習」,沿用原本的 child 網址。自訂網域 kids.linshuhuan.com 已啟用 HTTPS,舊 GitHub Pages 網址會自動轉向。#35 主畫面跨頁與 Safari 儲存隔離已驗收結案;#34 網站端檢查完成,家長已確認兩個 iPad 主畫面圖示安裝,依本輪範圍結案。注音 14 段正式親錄已補齊並獲家長接受,沿用已免除逐項 iPad checklist 的決定;見 收尾紀錄。2026-09-15 家長確認尚未正式給孩子使用,本次不備份/還原/對帳舊進度;詳見 正式網域上線紀錄。
docs/ GitHub Pages 部署根目錄
index.html child 首頁;未指定孩子時選擇入口
parent/ 家長設定、練習安排與維護入口
registry.json hub app registry
study/ 1,924 題公開題庫 app;家庭權限自動讀取私用題包,另有不記錄進度的家長試玩
math/ 長除法與 nonogram
spelling/ 英文拼字 app
nativecamp/ 全英文課後複習;首次表現、口說與每週新題
zhuyin/ 注音 app 與錄音工具
shared/ 同步、接線與獎勵共用資源
worker/ Cloudflare Worker 同步 API 與固定家庭唯讀題包端點
scripts/ Python 題庫萃取、分類與建置 pipeline
data/ 題庫中間資料與人工策展資料
tests/ pytest 與 Node.js test runner 測試
docs-dev/ ADR、設計稿與人工驗收文件
learning-tasks/ 一次性家庭學習任務、可重建成品與重用經驗
wiki/ GitHub Wiki 的版本控制真相源
- Python 3.13,由 uv 管理。
- Node.js 24 以上,用內建的 test runner;目前沒有 npm 相依。
claudeCLI 只在重跑 AI 分類 pipeline 時需要,一般開發與測試不需要。
uv sync --locked本機與 GitHub Actions 使用同一組兩道 gate:
uv run pytest
node --test "tests/*.mjs"測試數量會隨功能與資料更新;執行工作時以當次命令的實際輸出為準,不把舊快照數字當成目前結果。注音正式親錄已齊備;缺少 .m4a 現在會使測試失敗,避免發布後再出現缺音。
uv run python -m http.server 8765 -d docs- Hub:http://localhost:8765/
- 題庫:http://localhost:8765/study/?child=aiden
- 四上數學家長試玩:http://localhost:8765/study/preview.html?child=aiden(一般靜態 server 沒有家庭 Cookie session,只能驗未連接提示)
- iPad spike:http://localhost:8765/platform-ipad-spike.html?child=test-spike&k=test-spike-token
localhost 不在正式 Worker 的 CORS 白名單,一般靜態伺服器上的同步失敗是預期行為。完整本機驗證可用 node tests/helpers/serve-family.mjs,開啟輸出的 /test/start;該工具使用隔離 test-token、記憶體 KV 與合成題目,不動正式資料。/test/controls 可暫停/恢復隔離雲端;Study 試玩隔離驗收從 /test/study-preview?mode=ok 開始,完成後由 /test/study-preview/inspect 核對 browser/KV 哨兵與 request allowlist。
紙本練習只在孩子實際需要時製作,沿用 四上第一份短練習 的來源與再製方式,不按章自動產生 PDF。
目前學習內容主軸是把已核歷屆題小批加入 iPad 題庫。#55 四上數學 U1:歷屆題庫接入 iPad 練習 已完成最初六題 private pack、家庭權限自動讀取、獨立 review 與正式發布;#59 再把正式題包擴為 U1~U5 共十四題 rev2;#60 擴為三十題 rev3。#101 沿用相同 runtime,完成 fresh review、正式發布與 canonical private archive,把題包擴為五十七題 rev4,U1~U5 分布為 18/12/5/12/10;正常流程不要求家長傳檔。2026-09-14 的 iPad 操作確認只涵蓋先前 #55 六題流程,不代表五十七題已完成真機實測。#103 Study 家長試玩 新增由家長後台進入的獨立四上數學試玩頁:只在記憶體載入與試答現有 fixed pack,不載入或寫入孩子 Study 進度、題包 cache、同步或家庭累計,也不改題目或發布 contract。後續內容擴題再依概念/出題方法覆蓋報告另行決定;angle-v1 等新呈現能力保留為未來選項,尚未授權開工。程式保護三下題目與現存進度;已放棄的三下歷史紀錄不再追回。詳見 家庭端驗收紀錄、擴題路線圖、執行狀態 與 整合方案。
題庫 app 的 public static data 目前共 1,924 題:自然 1,099、數學 307、社會 452、國語 66。四上家庭私人題包已發布 revision 6,共 89 題(數學 U1~U5 57 題、自然 S1~S2 32 題),不加入 public data;ignored 路徑 data/private/study/g4-s1-math-u1/ 保存可重建 source/QA,正式 pack 部署在獨立 Cloudflare KV,由 Study 以家庭連線自動唯讀取得。內容不進 progress KV 或同步 payload,既有本機手動匯入保留為備援。重建與驗證方式見 docs-dev/grade4-u1-private-pack-build.md,後續擴題狀態見 docs-dev/grade4-math-expansion-plan.md。詳細公開題庫來源、人工策展規則與踩坑記錄見 docs-dev/期末-實作經驗筆記.md。
#117 四上自然首批 Study 練習 已完成 20 題內容覆核與 revision 5 正式發布,原數學 57 題逐值維持不變;自然首批選題與整合紀錄保留首批歷史。#119 第二批 新增 12 個完整活動、29 個原卷作答位置,revision 6 共 89 題已正式發布;見第二批狀態。實體 iPad 尚未驗收,正式第一次定期評量範圍尚未公布。
# PDF 萃取範例
uv run python scripts/extract.py --input pdfs_期末 --output data/raw_questions_期末.json
# AI 分類;依資料切換 mid|final|math|social
uv run python scripts/classify.py --semester final
# 冪等合併成部署題庫 docs/study/questions.json
uv run python scripts/build_questions.pydocs-dev/development-readiness.md:子專案開工/收尾檢查,確認來源、工作目錄、跨裝置與私人素材界線。CLAUDE.md:專案架構背景與歷史技術快照;當前狀態仍回查 code、Git 歷史與 issues。AGENTS.md:Codex 的 repo 導覽與家庭學習任務路由規則。CONTEXT.md:平台詞彙與 registry 欄位語意;不存工作計畫。learning-tasks/README.md:家庭學習任務索引、分類邊界與歸檔規格。docs-dev/adr/:架構決策紀錄。wiki/Home.md:給人的穩定導覽;長期方向見wiki/Roadmap.md,執行順序見wiki/Plan.md,當前交接見HANDOFF.md。現況仍以 code、Git 歷史與 GitHub issues 為準。
family token 是 secret,只能放在 Cloudflare Worker secret、家長的密碼管理器與裝置網址,不得寫進 repo、issue、測試 fixture 或 log。