本卡屬 FR-091(母卡 CM-1690)第二批。中量:有 DB 表(bulletins)、2 支 migration、3 條 route、2 個 entity 檔。範例是 jedi-asset(含 tests/integration/test_service_behaviour.py 的 testcontainers 整合測試),照它做。主專案側接線已由 CM-1689 收進 core/plugins/bulletin.py,本卡不動主專案。

問題是什麼(白話)

jedi-bulletin(公告)是抽出時的舊形狀:plugin.py 一檔 407 行塞 6 個 dataclass,api/init.py 157 行裝守門與 ctx() 13 處,logger 用 "app"(會與主專案撞名)和 name 兩種,41 處施工日誌型註解(棒號、CM 號、「等發版」)。tests/integration/ 只有 conftest 與 initdb、0 支測試——有 DB 表卻沒有真資料庫的行為測試。本卡整成 jedi-asset 那個樣子。

首腦核對(2026-09-12):plugin.py 407 行 6 dataclass;api/init.py 157 行;route 3;entity 檔 2(0 dataclass);表 bulletins;migration 2 支(001 tables、002 rls-grants);tests 77 支(unittest+architecture);tests/integration/ 空骨架;harness 有 compose、無 --smoke;施工日誌 41 處;ctx() 13 處;logger "app"/name;有吐 created_user_name(17 處)但已走 D8 identity 欄位,不必再開新 port。主專案 venv 裡 jedi_bulletin.__file__ 指工作樹(path override 生效)。

在哪裡

套件:/Users/chouraymond/Projects/Jedicogy/module/jedi-python-package/jedi-bulletin/
範例:jedi-asset/(plugin/ 五檔、api/guards.py+routing.py、tests/unittest/test_plugin_layout.py、tests/integration/test_service_behaviour.py、harness/dev_app.py --smoke)
SOP:docs/features/FR-069-2608-jedi-module-extraction/extraction-sop.md §4.3(分檔)、§3.4(logger)、§6.1(harness)、§8(收工檢查表)
說明:docs/features/FR-089-2609-package-shape-unification/plugin-anatomy.md
主專案 import 面:grep -rn "from jedi_bulletin\|import jedi_bulletin" compliance-manager-be --include='*.py' --exclude-dir=.venv(3 檔,含 core/plugins/bulletin.py)

怎麼修(照 jedi-asset A~F,各一 commit)

要寫測試

手測(驗證等級:中)