本卡屬 FR-090(母卡 CM-1682)第 6 棒 CM-1696 拆出的第 3 子卡,純文件。前置:第 6-1、6-2 棒都已 commit,文件要照實際落地的寫法寫,不憑卡上想像。

這一棒在做什麼(白話)

接一支套件的教學文件現在教人「如果主專案別的模組要用套件的 service,就在 di_containers/ 自己再建一份」。第 6-1/6-2 棒之後這個教法是錯的——正確做法是從套件開的取用口 host_services(app) 拿。這一棒把兩份教學改過來,讓下一個接套件的人不會照舊教法走回頭路。

首腦核對(2026-09-13):

在哪裡

docs/features/FR-069-2608-jedi-module-extraction/extraction-sop.md        §5 第四步(:467-468)、階段 ⑤ 判準(:388-398)、變更紀錄表加一行
docs/features/FR-089-2609-package-shape-unification/plugin-anatomy.md      新手教程 ④(:502-640)、DI 與 runtime 節(:642-)
docs/features/FR-090-2609-host-side-residue-cleanup/README.md              status 行「第 6 棒 CM-1696」改 Done、總進度表
docs/claude/architecture-details.md                                         若第 6-2 棒回寫標記有段落要改

怎麼修

要寫測試

不寫。驗收=grep -n "di_containers/ 加一顆 provider\|只有別的模組要用才加\|AssetContainer(containers.DeclarativeContainer)" docs/features/FR-069*/extraction-sop.md docs/features/FR-089*/plugin-anatomy.md 零命中;grep -n "host_services" 同兩檔 各至少一處。

手測

連帶