本卡屬 FR-114 資安修正(母卡 CM-2019),第 6 批「資料結構補強」卡 6-0a,是 SUMMARY #41(M10-6)另一半的前置。中。由 CM-2023 退回:卡與裁定指定的兩條反查鏈實測都走不通,根因是全系統沒有「任務屬於哪個專案」的獨立真相。
場景:小明是自己專案的成員,在任務畫面送出指派時「專案填自己的、任務填別人專案的」。CM-2023 補了「被指派的人要是專案成員」,但小明本來就是成員,所以這一招照樣過。要擋它,系統得能回答「這個任務到底屬於哪個專案」——現在回答不出來。
首腦核對:
在 /Users/chouraymond/Projects/Billows/Audit-Manager/compliance-manager-be/.claude/worktrees/wt-fix-security(branch fix/security-b1)改,不要碰主 checkout。跑服務用 PORT=8001。
scripts/sql/ 新增 migration:compliance.workflow_executions 加 project_id(bigint, nullable, 註解寫 soft ref → compliance.projects.id 比照 project_audit_rounds 慣例不建 FK)+回填
infra/flow_control/repository/flow_control_job_repo_impl.py:332 既有「任務→專案」解析(走 task_assignees),本卡完成後可改走新欄位——本卡只加欄位與回填,不改這支(留給 #41 續修卡)
app/flow_control/service/workflow_execution_service.py:149 同上,現行反查點,本卡不改
jedi-flow-engine 建立 workflow_execution 的寫入點 ⚠️ runner 開工先 grep 套件與 BE 裡所有 create workflow_execution 的地方(grep -rn "WorkflowExecutionEntity(" 與 repo.add),每個建立點都要帶 project_id——列成清單回寫