FR-058.6 T-6.3 收線 session — 階段一檢查未通過,停在 gate

  • 時間:2026-07-31 23:08 ~ 23:15
  • 角色:T-6.3 收線 session(先檢查 A/B,通過才執行 C)
  • 結論未通過,未進入階段二。已停下,不做任何修改、部署或驗收。

§1

一句話

T-6.2(CM-1000)還在別的 session 手上進行中,尚未完成。 檢查期間 agent 的 sonarqube.py 在我眼前從 799 行長到 924 行,且目前狀態無法執行——run() 呼叫的 self._run_scan() 這支 method 還沒被寫出來。參數 key 契約本身沒有問題。


§2

三項檢查結果

# 檢查項 結果
兩張卡都完成 CM-999 完成;CM-1000 狀態仍是 Not started,無「已完成修正」段
參數 key 對得上 對得上(詳下,這項是唯一全過的)
兩 repo 狀態正常 agent repo working tree 有未 commit 改動,且程式碼不完整

§3

① 兩張卡狀態

  • CM-999(T-6.1,BE) — ✅ 狀態「修正待驗證」,有完整「已完成修正」段、key 清單、 驗收對照表、執行紀錄。commit e020a3b9,migration scripts/sql/2026-07-31-fr058-19-sonarqube-scan-mode.sql 只套 DEV。
  • CM-1000(T-6.2,agent) — ❌ 狀態 Not started,正文只有派工內容,沒有回報段。

§4

② 參數 key 契約 —— 唯一全過的一項(實查,非採信卡片自報)

DB 實查(DEV guidant_ai_devconfig.detection_tool_param_schemas):

version | is_current | fields
--------+------------+---------------------------------------------------------------
      1 | f          | (v1 保留未刪未改,2 欄)
      2 | t          | scan_mode[永遠顯示] / repo_url[scan] / project_key_suffix[scan]
                     | / project_key[pull] / branch[pull]
  • scan_mode:select,required,default scan,兩選項 scan / pull ✅(符合 D24)
  • repo_urlproject_key_suffix:condition 綁 scan,required ✅
  • project_keybranch:condition 綁 pull,key 與 label 逐字未動 ✅(D-既有 pull 不受影響)

agent 實查core/task_executor_connectors/sonarqube.py,未 commit 的工作副本):

讀取處 行號 key
_resolve_scan_mode 335 params.get("scan_mode"),預設 scan,非法值 raise 不靜默降級
_resolve_repo_url 356 params.get("repo_url")
_resolve_scan_project_key 373 params.get("project_key_suffix"),組 Guidant-AI-<suffix>
_resolve_project_key 345 params.get("project_key")(pull)✅
_resolve_branch 393 params.get("branch")(pull)✅

五個 key 兩邊逐字一致,前綴由 connector 組上(D21),無落差。 額外加值:suffix 有做重複前綴去疊(避免 Guidant-AI-Guidant-AI-x)與字元白名單, repo_url 擋掉 file://(避免把容器內任意目錄當源碼掃)——都是合理加固,非落差。

因為 key 對得上,沒有任何契約需要決策者裁定。這項不是卡點。


§5

③ repo 狀態 —— 真正的卡點

BE(compliance-manager-be)✅

branch feature/FR-058,commit e020a3b9 在頂。working tree 只有一批與本案無關的 untracked docs(依指示未動、未 commit、未清理)。

evidence-agent ❌ 進行中

branch: feature/FR-058
 M Dockerfile
 M core/task_executor_connectors/sonarqube.py
最新 commit: 2aa95ec chore: bump 0.2.21——FR-058.5 SonarQube connector 出貨版

T-6.2 沒有任何 commit,兩檔都還在 working tree。

觀察到檔案正在被寫入(同一份檔案,兩次 grep 之間變了):

時間 sonarqube.py
23:09 左右(第一次 grep) 799 行,完全沒有 _resolve_scan_mode / repo_url / project_key_suffix
23:13:25(mtime) 924 行,上述 method 都在了
23:13:33 ~ 23:14:51(連續取樣 3 次 + 追查) mtime 停在 23:13:25 未再變動

另一個 session 正在這個 repo 上作業。

目前程式碼無法執行(AST 靜態檢查)

SonarQubeConnector -> 呼叫但未定義: ['_run_scan']
  • run()(:457)已寫好分流:mode == "scan"return self._run_scan()(:464)
  • _run_pull()(:469)完整,pull 路徑一行未動 ✅
  • _run_scan() 尚未定義 → 任何 scan 模式任務會直接 AttributeError

scan 四步驟的常數已備好但實作未落地_CE_PENDING_STATUSES(:144)、 _PROJECT_KEY_PREFIX(:114)、_ALLOWED_GIT_SCHEMES(:154)都在, 但 git clone / sonar-scanner 子行程 / report-task.txt 解析 / api/ce/task 輪詢 / tmp 清理 這五段程式碼一段都還沒有(grep report-task / ceTaskId / api/ce/task 只命中檔頭 docstring,命不中任何實作)。

Dockerfile 那一半看起來是完整的(sonar-scanner CLI 7.3.0.5189 linux-x64 平台專屬 zip + unzip,註解紀律有跟上),但未 build 驗證

test/test_sonarqube_connector.py mtime 20:16,602 行未動 → T-6.2 要求的兩條 必測(非法 scan_mode raise、失敗路徑 tmp 已清)尚未加。


§6

為什麼停在這裡(不是保守,是真的做不下去)

T-6.3 的核心是「兩模式端到端驗收」。目前:

  1. scan 模式跑不起來 —— _run_scan 不存在,任務一發就 AttributeError
  2. 不能重建 image —— 拿一份寫到一半的 working tree build 出 0.2.22 推上 DEV 123, 等於把半成品當版本;且原作者還在寫,我一 build 就與他的進度脫節
  3. 不能碰那兩個檔 —— 別的 session 正在編輯,我一動就是覆寫衝突

pull 模式的 UI 驗收理論上可先做(_run_pull 完整、schema 已就位),但那需要重啟 BE + 重建部署 agent,而 agent 重建正是被 ①②③ 擋住的動作,所以整段一起停


§7

現況快照(給接手者省一輪查詢)

項目 狀態
DEV DB param_schema ✅ v2 is_current=t(5 欄),v1 保留 is_current=f
DEV agent 心跳 4b9cd3bd2538 / 0.2.21 / active(尚未 bump 0.2.22)
BE 進程 pid 35859 main_app.py 執行中,port 8000 有回應(/ 404 屬正常,無 root route)。未重啟
FE dev server http://localhost:5180 有回應(200),branch feature/FR-058,working tree 乾淨
STG 122 / POC 121 完全未碰(DB、部署都沒動)✅

§8

本 session 做了什麼 / 沒做什麼

做了:fetch 兩張 Notion 卡、DB 實查 param_schema、agent 原始碼實查、AST 靜態檢查、 repo 狀態確認、環境探測(唯讀)、寫這份紀錄。

沒做(依指示停下):未改任何一行 code、未 commit、未 build、未部署、未重啟 BE、 未動 FE、未跑任何驗收、未回寫 CM-1001、未動 STG/POC。


§9

建議決策者早上處理

  1. 確認 T-6.2 那個 session 的下落 —— 是還在跑、還是中途斷了? 斷在 _run_scan 未寫、測試未加、未 commit 的狀態。
  2. T-6.2 收完(_run_scan 實作 + 兩條必測 + 全套回歸 + commit)後,T-6.3 才有得跑。 我這一棒的三段工作(環境就位 / FE 微調 / 兩模式端到端)本身沒有阻礙, 純粹卡在上游未完成。
  3. 參數 key 契約不需裁定,兩邊已一致。