Spec 3「AP 套用流程」Handoff v2 — Phase 5 實作開工

狀態:Phase 1–4 完成(design + plan + test-plan 全 commit) 建立日期:2026-05-13 接手目標:Phase 5 BE/FE 實作落地


§1

〇、起手語(直接複製這段給新 session)

我要在新 session 接 Spec 3「AP 套用流程」Phase 5 實作階段。工作目錄 BE:~/Projects/Billows/Audit-Manager/compliance-manager-be/

任務分流

Spec 3 已完成 Phase 1–4(design / plan / test-plan 全在 branch),直接走 Phase 5 實作。建議用 superpowers:subagent-driven-development skill(每 task 一個 fresh subagent,主 session 做 review checkpoint);如果想 inline 跑用 superpowers:executing-plans

Spec 3 在做什麼(一句話)

建 AP 時加流程範本 dropdown + 預覽 Dialog;BE 接 flow_template_uid(必填)、建 AP 同時 snapshot clone BPMN 到 AP 的 workflow_execution;補上 Spec 2 漏蓋的 launch_new_round 也要綁 main workflow。

已完成的 Phase 1–4 文件

Phase 文件 路徑
1+2 design design.md v2.1(5 條 open questions resolved + Spec 2 gap 認知) docs/features/FR-026-2605-project-flow-engine-integrate/03-ap-binding/design.md
3 plan implementation-plan.md v1.1(M0–M8 task 拆解) 同上 dir /implementation-plan.md
4 test plan test-plan.md v1(26 AC / 70+ BE tests / 7 E2E + 4 fixture bug) 同上 dir /test-plan.md
0 handoff 上次接手 prompt 同上 dir /handoff-v1.md

M0–M8 落地順序速查

M0  Pre-flight verify(8 步 grep 確認 default lookup 無外部 caller / FE changelog 慣例 / dropdown 落點)
M1  BE error code 整理(刪 412022、fix 500001→412024)
M2  BE AP list+detail enrichment(FlowTemplateEnricher 三段 batch query)
M3  Spec 2 carry-forward 5 service test gap(**先補測試**再做 M4 防 regression)
M4  BE 核心:_bind_main_workflow_to_ap 接 flow_template_uid + launch_new_round 補綁 main workflow + 拔 hardcode default
M5  FE ProjectCreateView dropdown + 預覽 Dialog
M6  FE ProjectApListView Dialog dropdown + default 帶值
M7  Manual smoke(必過項:兩個範本各跑完整 lifecycle + DB 驗 + snapshot 隔離驗)
M8  事後:Phase E 4 fixture bug + 3 個 Banner BDD scenario 重寫

開工 checklist(先做這 6 件)

  1. cd ~/Projects/Billows/Audit-Manager/compliance-manager-be && git branch --show-current — 確認在 feature/project-flow-engine-integrate
  2. git log --oneline -5 — 確認 HEAD = 20d04d8(Phase 4 test-plan v1)
  3. git status --short — 預期只看到 M pyproject.toml(jedi-flow-engine path mode dev-only,不 commit)
  4. tail -5 log/app.log — BE 沒在跑就 python main_socketio.py
  5. docs/features/FR-026-2605-project-flow-engine-integrate/03-ap-binding/design.md 全文(v2.1)
  6. implementation-plan.md M0 段 8 步驟(M0 必跑完才能開始 M1

Phase 5 執行建議

Skill: superpowers:subagent-driven-development
依 implementation-plan.md M0–M8 依序執行:
  - 每 task 一個 fresh subagent
  - subagent prompt 必加「git add 顯式檔名禁用 -am」(memory: feedback_subagent_explicit_git_add)
  - 每 task 完 review checkpoint
  - BE service code 改完必重啟(pkill -9 + python main_socketio.py + 清 pyc,memory: feedback_be_restart_after_service_change)
  - 階段性 commit 不問
  - 重大決策(架構衝突 / 需選方案)才停下問

§2

一、必讀文件路徑

A. Spec 3 本體(在同一個 dir)

文件 用途
docs/features/FR-026-2605-project-flow-engine-integrate/03-ap-binding/design.md 本 Spec 設計 v2.1 — 必讀
docs/features/FR-026-2605-project-flow-engine-integrate/03-ap-binding/implementation-plan.md 本 Spec 實作計畫 v1.1 — M0–M8 step-level 操作指南
docs/features/FR-026-2605-project-flow-engine-integrate/03-ap-binding/test-plan.md 本 Spec 測試計畫 v1 — 26 AC + 追溯矩陣
docs/features/FR-026-2605-project-flow-engine-integrate/03-ap-binding/handoff-v1.md 上次接手 prompt(含 Phase 1–4 前情)
docs/features/FR-026-2605-project-flow-engine-integrate/README.md 整體脈絡(A/B/C 三種專案情境)

B. Spec 2(已 ship — Spec 3 依賴的 backbone)

文件 為何要看
docs/features/FR-026-2605-project-flow-engine-integrate/02-stage-integration/design.md Spec 2 §十 reconciliation 是 Spec 3 銜接點
docs/issues/resolved/2026-05-13-spec2-step22-snapshot-pattern.md step 22 snapshot pattern — M4 改造要 align
app/flow_engine/service/workflow_template_snapshot_service.py Spec 2 寫的 service — M4 reuse
app/project/service/oscal_project_service.py:492-543 _bind_main_workflow_to_ap helper — M4 改造
app/project/service/oscal_project_service.py:604 launch_new_round — M4 補 step 10 呼叫 helper

C. Spec 1(已 ship — FE 元件 reuse)

路徑 用途
compliance-manager-fe/src/views/flow-template/components/FlowTemplatePreviewDialog.vue M5/M6 直接 reuse
api/flow_engine/__init__.py:64-65 /flow-engine/flow-templates list/detail API 已 ship

D. 規範 / Workflow

文件 用途
CLAUDE.md DDD / @transaction / Error code / API patterns / SQL migration 規範
docs/claude/feature-development-workflow.md 6 階段 SOP
docs/claude/jedi-packages.md jedi-flow-engine API 參考
docs/claude/frontend-overview.md BE 視角 FE cheatsheet(PrimeVue quirks / design tokens / Audit Lifecycle UI)

E. Carry-forward / 已知問題

文件 用途
docs/issues/pending/2026-05-13-test-fixture-broken-by-spec2-phase-d-and-fe-refactor.md Phase E 4 bug — M8 處理
docs/review/2026-05-13-spec2-be-review.md Spec 2 carry-forward 清單(M1/M3 順手 fix)

§3

二、潛在踩坑點

  1. M4.4 改造 _bind_main_workflow_to_ap 是 breaking change

    • 既有測試 / FE 呼叫不帶 flow_template_uid 會直接 400
    • M4 + M5 + M6 必須一起 ship,不能只 ship BE
    • 中間 commit point 不要丟到 main
  2. M3 為何要在 M4 之前

    • M4 改 _bind_main_workflow_to_ap + 拔 default lookup 會影響 WorkflowTemplateSnapshotService / StageAdvanceService
    • M3 先補 5 service test gap,M4 出 regression 立刻 fail,不會拖到 M7 smoke 才發現
  3. WorkflowTemplateService.get_many_by_uids 是 jedi-flow-engine 套件異動

    • M2.2 加 batch query method 屬套件層級
    • dev 走 path mode(pyproject.toml 已切,不 commit)
    • 全 feature 完成且 user 明確同意才一次 bump version + Nexus
  4. M0 必跑完

    • 8 個 verify step 都做完才能進 M1
    • 任何 step 結果跟 expected 不符 → 停下問 user,不要硬幹
  5. FE dropdown 落點要 M0 Step 8 確認

    • implementation-plan M5 範例以 ProjectBasicInfoForm.vue 為主
    • 實際視 M0 grep 結果決定 modify 哪個檔
  6. BE log 是 log/app.log 不是 stdout

    • tail -f log/app.log 看;不要靠 lsof -p
    • 改 BE service code → 必 pkill -9 -f main_socketio.py 重啟(nohup 留 orphan PID)
  7. DB 連線

    • host 192.168.50.188, port 25432, db guidant_ai_dev
    • migration 一律用 cmmgr(不用 cm_app,會被 RLS 擋)
    • 兩帳號同密碼 jedi@123!
  8. DTO 名 vs ORM column 不一致

    • 寫 SQL / ORM filter 前先 grep Mapped[] 看真實欄位名
    • 例:DTO 是 catalog_control_id 但 ORM 是 control_id

§4

三、Phase 5 完成標準


§5

四、工作流程約定

  • 階段性 commit 不問(subtask / milestone / changelog / issue 完成)
  • 重大決策才停(架構衝突 / 需選 A/B/C 方案 / breaking change)
  • subagent dispatch 必加「git add 顯式檔名禁用 -am」
  • 編輯檔絕對路徑開頭
  • jedi-flow-engine 走 dev path mode;feature 完成、user 明確同意才 bump + push Nexus
  • 每次功能變更要寫 changelog(feat / fix / tweak 三選一)
  • 重大決策完成寫 docs/analysis/YYYY-MM-DD-<topic>.md
  • 跨多 phase task arc 收尾寫 docs/conversation-history/2026-05-13-spec3-ap-binding/SUMMARY.md + part-NN
  • 不要晶晶體(pivot/fork/context budget 改中文,BPMN/API 等技術名留英文)

§6

五、Phase 5 之後(看狀況)

階段 動作
Phase 6 review pr-review-toolkit:review-pr 多 agent parallel review;報告存 docs/review/2026-05-13-spec3-review.md
Task arc 收尾 整理 SUMMARY.md + conversation-history(gitignored)
套件發版 user 明確同意才動,jedi-flow-engine 0.0.28 bump + Nexus + 主專案 pin 改回
Phase E 重做 compliance-manager-test repo,跨 repo 處理

§7

六、本次 Phase 1–4 task arc commit 序

Commit 階段 文件
4d93322 Phase 1 brainstorm design.md v2
5acceb0 Phase 2 spec review fix design.md v2.1
f40cfcc Phase 3 plan implementation-plan.md v1
c0e26bd Phase 3 plan review fix implementation-plan.md v1.1
20d04d8 Phase 4 test plan test-plan.md v1

5 commits 都在 feature/project-flow-engine-integrate branch,working tree 留 M pyproject.toml(jedi-flow-engine path mode)。


§8

文件版本

版本 日期 變更
v1 2026-05-13 Spec 2 task arc 收尾後接 Spec 3 開工(Phase 1 brainstorm)
v2 2026-05-13 Phase 1–4 完成後接 Phase 5 實作