一句話:本卡屬 FR-099(母卡 CM-母卡號),第 1 棒:更正 jedi-issue README 上兩條與事實不符的「產品目前未使用」聲明。純文件,不動程式,零風險。

問題是什麼(白話)

jedi-issue 這支套件的 README 開頭有個醒目的表格,標題寫著「🔴 先讀這段:本套件有一大半是待裁決的死碼」。表格裡說兩塊東西產品沒在用:一是 Issue 本體(issue 的讀寫邏輯),二是 GitHub/GitLab 整合。

這兩條都不對。主專案的「意見回饋」功能從頭到尾就在用這兩塊——使用者送出一則回饋,走的就是 Issue 本體的建立流程;如果管理員開啟了外部整合,還會同時往 GitLab 或 GitHub 發一則 issue。

為什麼這條錯誤很危險:README 上緊接著就寫「不要順手清死碼」「拔掉 python-gitlab/PyGithub 等於替產品決定不保留」。也就是說,任何人(包括 AI)讀了這份 README,都會把這塊當成「沒人用、等裁決」的東西——而它其實是活的、正在跑的功能。2026-09-16 決策者 review 時才發現這個漏洞,正是因為文件這樣寫,前面幾輪盤點都跳過了它。

在哪裡

~/Projects/Jedicogy/module/jedi-python-package/jedi-issue/README.md
  約第 5-20 行  「🔴 先讀這段」整段表格與其下三行說明

該表格三列現況:
  成員管理        ✅ 活的 —— /issue/get_members 在用        ← 這列正確,不動
  Issue 本體      產品目前未使用(六張表在,讀寫路徑沒接上 route)  ← 🔴 錯
  GitHub/GitLab  ❌ 產品目前沒在用,去留未拍板              ← 🔴 錯

首腦核對過的證據(直接寫進 README,runner 不必重查)

Issue 本體在用的證據:主專案 app/feedback/service/issue_service.py 共 24 處呼叫 jedi_issue 的 IssueService,全部帶 provider=IssueProviderCode.LOCAL(即本地 Issue 本體,不是外部整合)。主專案 infra/feedback/model/feedback_issue.py:7 直接 import jedi_issue.infra.issue.models.issue.Issues 並建 relationship。DEV 庫 issues 表 23 筆真實資料。

README 說的「讀寫路徑沒接上 route」,只在「套件自己沒掛 route」這個字面上成立——它是透過主專案的 /api/1.0/feedback 四條端點被使用的。這個區別要在 README 裡講清楚,否則改完還是會被誤讀。

GitHub/GitLab 在用的證據:app/feedback/service/issue_service.py 內有 create_issue/update_issue 往 GitLab 與 GitHub 雙寫的程式路徑(約 205、227、301、327 行附近)。FE 有完整設定頁 src/views/issue-integrate-config/IssueIntegrateConfigForm.vue。套件 plugin/contract.py:22 已宣告四個能力點 issue-integrate-config.{create,read,update,delete}。DEV 庫 system_configs 有 ISSUE_INTEGRATE_CONFIG 的 GITLAB/GITHUB 兩筆設定列。

⚠️ 誠實標註:DEV 庫兩筆設定的 enable 目前都是 false,代表「功能在、目前沒開」。README 改寫時要寫成「產品有在用,目前 DEV 未啟用」,不要寫成「正在對外發 issue」——那是另一個不準確。

怎麼修

① 表格三列改寫:成員管理那列不動;Issue 本體改成「✅ 活的——主專案意見回饋(/api/1.0/feedback)走 LOCAL provider 在用」;GitHub/GitLab 改成「✅ 保留——外部整合能力,決策者 2026-09-16 拍板保留;DEV 目前 enable=false(功能在、未啟用)」。

② 整段的標題「🔴 先讀這段:本套件有一大半是待裁決的死碼」已不成立,改寫成陳述現況的標題,例如「🔴 先讀這段:本套件的使用者是主專案的意見回饋」。不要留「死碼」這個詞。

③ 那段下面兩個「具體後果」的段落要跟著改:其一「契約測試沒有零 env 讀取那條」——這條技術上仍成立(infra/github.py 與 infra/gitlab.py 確實有 4 處 os.getenv),保留,但理由從「因為未裁決」改成「因為外部整合需要讀連線設定」。其二「python-gitlab/PyGithub 仍在 runtime 相依,拔掉等於替產品決定不保留」——改成「決策者已拍板保留,兩支相依是正式相依」。

④ 加一行指向本案:「本套件即將吸收主專案的意見回饋與標籤模組,見 FR-099」。

⑤ 檢查 docs/2026-09-01-gitlab-github-deadcode-decision-material.md 這份決策材料檔——它是「兩案比較」的決策材料,現在已有結論。在該檔開頭加一行結論標註(決策者 2026-09-16 裁:保留),不要刪檔(它是決策過程的紀錄)。

不要做什麼

不要改任何 .py 程式。本棒純文件。