# HANDOFF｜CM108G Become Judy Textbook
## Latest daily maintenance readback — 2026-09-13

- 本輪 `notebooklm-maintenance-2026-09-13-01` 完成 no-op 維護。來源建置器重新建立 18 份 weekly mirror，來源登錄 SHA-256 為 18/18 一致，週教材內容變更為 0；18/18 份 Drive 擷取文字也通過 normalized parity 與 current revision 讀回。
- Drive refresh root 與六個子資料夾的權限 metadata 均讀回為 anyone-with-link／reader、discovery disabled；資料夾與文件數量符合預期，未改動權限。NotebookLM `source_list_drive` 讀回 27 筆穩定 Google Docs、`stale_count=0`、無重複來源。
- 九筆 static source 均完成非空 Drive 文件、current revision、NotebookLM `source_get_content` 與內部標記讀回；NotebookLM indexed raw representation 的 wrapper／重複 tab 差異未被誤判為 Drive 內容衝突。
- 課程頁、長個案、Short Case 的本機候選與前一輪相同，仍等待目前 PM／教師核准；既有 Drive mirror 保留，未執行 Drive 更新、來源新增／刪除或 `source_sync_drive`。因英文候選沒有變更，沿用前輪 `avoid-ai-writing` P0=0、tier-1 P1=0 結果，未重跑完整風格檢查。
- NotebookLM MCP 維持 authenticated；目前版本 0.11.1 回報 0.11.3 可用，但本輪未升級。已更新來源登錄、maintenance run／change log、conflict report、sync workflow、PM control tower 與本 HANDOFF；context manifest 已重建為 v13，共 1,028 個 read_order paths、無缺失路徑。未執行 Git commit、push、部署或公開發布。
- 下一關卡：取得並記錄三個本機候選的目前 PM／教師核准，再沿用既有 Drive file ID 原位更新，完成讀回後只同步受影響的 NotebookLM source UUID；不得建立 duplicate source。

## Latest daily maintenance readback — 2026-09-12

- 本輪重新建立 NotebookLM 來源維護基線：18 份 weekly mirror 均重新建置，18/18 SHA-256 與來源登錄一致，沒有週教材內容變更。
- `source_list_drive` 讀回 27 筆穩定的 Drive-backed Google Docs，`stale_count=0` 且沒有重複來源；課程頁、長個案與短個案均完成非空內容讀回，未發現內部專案語言或憑證模式。
- Drive 根資料夾的分享事件與六個子資料夾權限均以 Codex 已登入瀏覽器讀回為 anyone-with-link／reader、discovery disabled；本輪未改動權限。
- 本機課程頁、長個案、Short Case canonical 與獨立 `index-en.html` 仍是待核准候選，已將實際 SHA-256、最後修改時間與狀態寫入 `01_sources/notebooklm/notebooklm_source_registry.csv`。Short Case 英文候選的 P0 與 tier-1 P1 計數均為 0，沒有內部標記；但完整風格偵測保留 1 個模板詞與 3,997 字中的 12 個 em dash，須在核准前再處理或明確接受。
- 由於目前沒有本輪可驗證的 PM／教師核准，既有 Drive mirror 保留，未執行 Drive 覆寫或 `source_sync_drive`。下一步是取得並記錄三個候選的核准後，沿用既有 Drive file ID 與 NotebookLM source UUID 逐筆更新；不得建立 duplicate source。
- 本輪沒有 Git commit、push、部署或公開發布。

## Latest stage: NotebookLM Week 01 transcript sync v1.1 — 2026-09-10

- The Drive root `CM108G Become Judy - NotebookLM refreshable sources` is now set to **Anyone with the link: Viewer** with discovery disabled. Metadata readback passed for the root, all six child folders, the relocated weekly documents, and the new student-facing documents.
- The 18 weekly Google Docs were moved in place into `01_weekly-textbook`; their Drive file IDs and NotebookLM source UUIDs remain stable. The weekly manifest now records the child folder ID.
- Seven bilingual Drive documents were populated, placed, added to NotebookLM, and read back successfully: course page, long case, short case, English TA prompt, Traditional Chinese TA prompt, bilingual README, and bilingual source guide. The short case English text is explicitly a fictional-composite teaching translation and does not add verified case facts.
- The three former web sources were removed only after replacement verification. Seven duplicate sources created by a retry were also removed. NotebookLM readback is now 27 Drive sources with `stale_count=0`; no former web source or duplicate mirror remains. The approved Week 01 transcript was added through a native Google Docs mirror and synchronized successfully.
- Active maintenance schedules: `cm108g-notebooklm` daily general maintenance; `cm108g-notebooklm-2` Monday transcript check; `cm108g-notebooklm-3` Tuesday transcript checks. They use `gpt-5.6-luna` with runtime reasoning `max`, failed-run-only notifications, no-op silence, three-attempt retry policy, and approved-folder gating.
- Week 01 transcript import is **synced**: the approved readable final cleaned Markdown was read back from `03_approved-transcripts`, preserved, mirrored into a native Google Doc, and synchronized as NotebookLM source `ID_C6D5419EE9`. The temporary incompatible Markdown source was deleted after its sync error. See `01_sources/notebooklm/transcript-register.csv` and `source-conflict-report.md`.
- Current local records: `00_admin/NOTEBOOKLM_MAINTENANCE_PLAN_v1.0.md`, `01_sources/notebooklm/notebooklm_source_registry.csv`, `maintenance-run.json`, `maintenance-change-log.jsonl`, `transcript-register.csv`, `prompt-source-register.csv`, and the extended `NOTEBOOKLM_DRIVE_SYNC.md`.
- 本機管理介面已建立於 `00_admin/notebooklm-management.html`：可快速開啟 Drive 根資料夾與六個子資料夾、27 筆 Google Docs、NotebookLM、PM／registry／run／transcript 控制檔；提供來源搜尋、連結／本機路徑複製、五檔字級、列印與僅保存在瀏覽器的維護備註下載。它不改變權限、不執行同步，也不屬於 learner-facing textbook。
- 管理介面已通過 HTML script parse 與 Chromium desktop／mobile screenshot smoke test；測試影像位於 `07_tests/visual-snapshots/notebooklm-management-desktop-full.png` 與 `notebooklm-management-mobile.png`。介面採單欄內容流與響應式卡片，未納入公開網站部署路徑。
 - No Git commit, push, deployment, or public-site change was made in this maintenance stage. Earlier publication state remains unchanged. No unit is `instructor-approved`.

## Daily maintenance readback — 2026-09-10

- 本輪在本機重建 18 份 weekly NotebookLM mirror；內容未變更，與 Drive 文件完成 18/18 normalized text parity。NotebookLM `source_list_drive` 讀回 26 筆 Drive sources、`stale_count=0`，26 份文件皆非空；根資料夾與六個子資料夾的 anyone-with-link reader、discovery disabled 權限讀回通過。
- `short-case-bilingual` 的本地 HTML 於 2026-09-10 00:39:58（Asia/Taipei）有未提交候選變更，差異為 41 行新增／41 行刪除，僅涉及中文措辭，英文內容未變。尚無目前 PM／教師核准證據，因此保留 Drive 現行文件，未更新 Drive，也未呼叫 `source_sync_drive`。
- 本輪完成來源安全讀回：未發現實際內部路徑、憑證、答案內容或 Agent 材料；英文 weekly mirror 的 avoid-ai-writing P0 快速掃描為 0，因無實質英文變更未啟動完整風格審查。
- 已修正 `weekly-week-14` 的來源登錄 SHA-256；`CM108G_TA_EN`、`CM108G_TA_ZH-TW`、`CM108G_TA_README` 與 `source-guide` 的登錄狀態改記為 Drive-backed-only，因列出的本地 canonical copy 不存在，但 Drive 內容讀回成功。
- Week 01 transcript gate 已清除並完成同步：可讀的 final cleaned transcript 共 4,487 字，`avoid-ai-writing` detect-mode P0/P1 gate 通過；原始 Markdown 保留，native Google Docs mirror 與 NotebookLM source 均完成讀回。
- Short Case 本機路徑 `hbr/become-judy-hbr-case-study/index.html` 的最新 local commit 為 `4121c0071d722461014dfa99935462f246c099e0`，但 canonical 與公開頁面目前都未讀到獨立英文段落；既有雙語 Drive mirror 保留且 `stale=false`，本輪未覆寫或同步，待可驗證的最新雙語來源。

## 專案目的與目前狀態

 - 更新時間：2026-09-13 04:58（Asia/Taipei；daily NotebookLM maintenance readback）
- 正式根目錄：`G:\GoogleDrive\CourseWorkspace\YZU\Management 管理學\1151\Textbook`
 - 目前階段：公司證據邊界全面修訂已完成獨立 Luna/max impact review，Reviewer 結果為 `PASS_WITH_MINOR_REVISIONS`；Chief PM 已整合 Week 7 evidence-bounded capability prompt 與長案例英文 chronology parity，並完成 textbook index and current quiz-spec propagation、18/18 deterministic QA、受影響單元 source-ID validation、全書字數回歸，以及 NotebookLM maintenance。18 個單元均為 intrinsic `reviewer-cleared`，全數仍未 `instructor-approved`。Reviewer 現採 Rapid Gate → Focused Review → 條件式 Final Review，未變更內容使用 passport 與 SHA-256 continuity cache；只有 impact trigger 才重開深度審查。NotebookLM 專用 Drive folder 與 source registry 已建立，舊的 18 份 weekly candidate `generated_text` sources 與 3 筆舊 web sources 已由 MCP 清理。目前最新 MCP 讀回為 27 筆 Drive sources：18 筆週教材、1 筆獨立的 Drive-backed output-control specification、3 筆雙語課程／案例 mirror、2 筆雙語 TA prompt、1 筆雙語 README、1 筆雙語 source guide，以及 1 筆 Week 01 approved transcript；`source_list_drive` 回報 `stale_count=0`。新版 HTML 已以 isolated remote-base commit `7420d40225d2a3b0e0af463e177501544e284550` 推送至 `main`，Pages workflow `34291851326` 與公開路徑讀回均通過；本輪 daily maintenance 已更新來源登錄、run／change log、PM control tower 與 handoff，context manifest 已重建為 `context-manifest-20260913-notebooklm-maintenance-v13`，共 1,028 個 read_order paths，無缺失路徑。
- Case Bible：`case-bible-v0.2`，共 37 筆 claim、21 筆 timeline
- 教材現況：18 週正文、配套與 learner-facing HTML 均存在。目前機讀 D-015 報告 `07_tests/word-count-report.csv`／`.json` 計得全書 115,518 個 learner-visible English main-body words，最低單元 5,193 字；18/18 單元均通過 5,000 字硬門檻與 5,100 字 authoring buffer。18/18 deterministic QA、18/18 source-ID validation、18/18 desktop/mobile 單欄結構回歸均通過。根據較早回歸摘要的 115,575 字仍保留於歷史決策紀錄，不能取代目前機讀報告。
- 審核現況：Week 1–18 均為 `reviewer-cleared`，但尚未 `instructor-approved`。Week 18 v1 `BLOCKED` Context Gate package、v2 `PASSED` package、Chief PM adjudication 與 passport 均已保存；v1 不得當作 clearance。所有已清稿單元都以 review passport 與 canonical hash 作為 continuity cache，只有 Case Bible、來源、術語、模板、依賴、shared renderer 或其他列明 impact trigger 才重新開啟。Frozen Rapid Gate 是共享 PM 證據，Reviewer 不重跑 write-producing scan。
- 發布現況：CM108G 新版課程頁與 18 週講義已由 13 個實際修訂檔組成 commit `7420d40225d2a3b0e0af463e177501544e284550`，並 fast-forward push 至遠端 `main`。Pages workflow `34291851326` 的 build、容量、內部連結、上傳與部署 jobs 全數成功；課程入口、教材索引與 Week 01–18 公開路徑均 HTTP 200 讀回。教材仍未 `instructor-approved`，因此不視為正式課程核准版本。

## Reports produced — 2026-09-09

- [教科書專案歷程與 Agent 治理報告](<G:\GoogleDrive\CourseWorkspace\YZU\Management 管理學\1151\Textbook\08_handoff\reports\20260909-become-judy-textbook-project-history.md>)：整理起點、重大轉折、教師決策、Agent 增加原因、耗時與效益，以及課程網站回接。
- [Gemini Notebook 設置與維護報告](<G:\GoogleDrive\CourseWorkspace\YZU\Management 管理學\1151\Textbook\08_handoff\reports\20260909-gemini-notebook-setup-and-maintenance.md>)：整理 NotebookLM／Google Drive-backed source 的設計、技術難點、學生角色與維護 SOP。

## Git publication and public readback — 2026-09-09

- 本機 SONIC repo 的 `main` 當時含有其他未相關的 staged、unstaged 與 untracked 變更，且與遠端分支分歧。為避免誤納入其他工作，從當時的 `origin/main` 建立隔離 worktree，僅複製目前 CM108G 課程頁與教材修訂檔。
- 遠端基準上實際差異為 13 個檔案：課程首頁、教材 CSS、教材索引，以及 Week 01–07、Week 09、Week 11、Week 18 頁面。commit `7420d40225d2a3b0e0af463e177501544e284550` 已成功 fast-forward push 至 `main`；原本本機工作樹中的其他變更沒有納入此 commit。
- 本機 clean remote-base worktree 的 Pages build 通過：1,436 個 built files、選取容量 311.1 MiB、低於 800 MiB 上限。Pages link checker 通過：695 個文字檔、沒有缺失本機引用。
- Workflow `34291851326` 已成功完成 deploy job 與 notification job；主要 deploy job 的 build、內部連結、artifact upload 與 GitHub Pages deployment 全數成功。
- 公開讀回通過：`https://537sonic.github.io/SONIC/class/cm108g-1151/`、`/textbook/` 與 `/textbook/pages/week-01.html` 至 `/week-18.html` 全部 HTTP 200；逐頁檢查沒有 GitHub Pages 404 頁面，且新版教材標記與 reader 資產均存在。

## NotebookLM Drive-backed weekly-source migration — 2026-09-09

- 已建立 Google Drive 專用資料夾：[CM108G Become Judy - NotebookLM refreshable sources](https://example.invalid/resource/LINK_7AE4DE5399)。
- 已將 Week 01–18 各建立一份原生 Google Docs，並以目前已通過的 learner-facing 內容填入；每份文件保留固定 `drive_document_id`，不因更新而重新建立檔案。另有一筆獨立的 Drive-backed output-control specification，不屬於本次 18 週教材系列。
- NotebookLM notebook `16a71890-6c2e-4226-b4d8-f2b77160af68` 的目前來源均為 Drive-backed `google_docs`：18 個週教材、1 個 output-control specification、7 個雙語／學生輔助來源，共 26 筆。舊 18 個 `generated_text` weekly candidate sources 與 3 筆舊 web sources 均已在 replacement readback 通過後移除；目前 `source_list_drive` 回報 26 筆、`stale_count=0`。
- 本機來源建置器為 `scripts/build_notebooklm_sources.py`；產生檔位於 `01_sources/notebooklm/generated/week-01.md` 至 `week-18.md`。來源 ID、Drive 文件 ID、SHA-256、字數與最近同步欄位集中記錄於 `01_sources/notebooklm/notebooklm_drive_source_manifest.csv`。
- Drive 回讀確認專用資料夾內有 18 份 `application/vnd.google-apps.document`；Week 12 以 Drive fetch 及 NotebookLM raw-content 回讀，確認正文、assessment 與 references 存在，且沒有 Chief PM、Context Packet、`instructor-only:start` 或內部 review 路徑。
- NotebookLM source listing 在加入後回報 18 份新 `google_docs` source 均 `is_stale=false`。對 17 份執行明確 Drive sync，回報 `Synced 17 source(s)`；Week 12 加入時已是 fresh，另行指定 refresh 回報 `Synced 0 source(s)`，因此不是遺漏。其後 MCP 回讀確認 18 筆 weekly Drive source 與另一筆 output-control Drive source 均 fresh，並確認舊 18 筆 weekly candidate sources 已刪除。
- 本輪 NotebookLM MCP 在初始 provisioning 短暫回報 `Transport closed`，同一已登入帳號的 `nlm` CLI 因而完成初始 source add、source list、sync 與 raw-content readback；MCP 恢復後，使用 MCP 完成舊 18 筆 candidate source 的永久刪除與最終 source-count readback。
- 後續更新流程：先完成本機 manuscript／HTML 的 PM 與 Reviewer gate，執行 `python scripts/build_notebooklm_sources.py`，以同一 `drive_document_id` 更新 Google Docs，再以 `notebook_source_id` 執行 NotebookLM `source_list_drive` → `source_sync_drive` → fresh/readback。兩種 ID 不可混用。
- 直接在 Google Docs 修改後，NotebookLM 可以 refresh；但不會自動回寫本機 HTML。若 Drive 修改要成為正式教材，必須先 fetch 回本機，經 Chief PM、claim boundary、Reviewer 與 HTML QA 後再整合。
