本卡屬 FR-091(母卡開卡後補號)第一批。輕量但形狀特殊:plugin.py 275 行只 3 個 dataclass、沒有 api/ 目錄(開機檢查與鎖定,不掛 route)、harness 是四個情境腳本不是 Flask。
jedi-integrity 是防竄改機制,沒有對外 API,但 plugin.py 仍是舊形狀、註解 19 處施工日誌、logger 兩種名字。它是「無 api 層的插件」的第一個範例,整完後 license-runtime(第二批)可照抄。
首腦核對:plugin.py 275 行 3 dataclass;無 api/;route 0;entity 0;migration 1 支;tests 86 支;harness 有(四情境:pass/tamper/unlock/lockdown);施工日誌 19 處;ctx() 0;logger common.jedi_integrity/jedi_integrity(後者要改);不吐 created_user_name。主專案 core/app_factory.py 直接 register_integrity(app, IntegrityAdapters(...)) 且兩處 import EXTENSION_KEY——EXTENSION_KEY 名字不能動。
套件:/Users/chouraymond/Projects/Jedicogy/module/jedi-python-package/jedi-integrity/
範例:jedi-asset/ 的 plugin/ 五檔(api/ 那半不適用)
主專案:core/app_factory.py 第 336-350 行 register_integrity;grep -rn "jedi_integrity" compliance-manager-be --include='*.py' 排除 .venv
plugin.py → plugin/{__init__,contract,runtime,assembly,migrations}.py。無 api 層所以 runtime.py 裝的是「開機期組件」不是 request 期,docstring 寫清楚。migrations.py 讀那 1 支 SQL。EXTENSION_KEY 與 build_context(主專案有 import)留在 __init__ 的 __all__。jedi_integrity → common.jedi_integrity。pytest tests/;python harness/dev_app.py 四情境全過;主專案 test_module_boundaries.py;主專案 BE 重啟起得來(整性檢查在開機跑,起不來就是壞了);grep Traceback log/app.log 啟動段 0。jedi-integrity/。不碰 /opt/guidant/pki、不碰簽章與鑰匙、不改任何驗簽邏輯(FR-084 紀律)。主專案不動。絕不發版。契約不改(含 EXTENSION_KEY)。做完 commit+回寫不等令;push 等令;branch feature/FR-075 不切。