時間:2026-05-13 完整 task arc 收尾結束 狀態:Spec 3 全部 ship-ready,等 user 自行 push + deploy;下一階段是 Phase 6 follow-up PR 排序
我要接手 Spec 3「AP 套用流程」task arc 收尾後的下階段工作。工作目錄:
~/Projects/Billows/Audit-Manager/compliance-manager-be/~/Projects/Billows/Audit-Manager/compliance-manager-fe/~/Projects/Jedicogy/module/jedi-python-package/jedi-flow-engine/三個 repo 同 branch:feature/project-flow-engine-integrate。
Spec 3 本體已完整 ship-ready(M1–M13 + Phase 6 review + summary 收尾全部完成)。下一階段是 Phase 6 follow-up PR 排序執行 或 branch push / merge / 部署決策。
compliance-manager-be)b6f4eec chore(deps): restore jedi-flow-engine pin 0.0.27 → 0.0.28ea8f573..HEAD(Spec 3 全程 + dependency pin restore)compliance-manager-fe)695baad tweak(spec3 M13): ApListView row buttons 對齊 AuditorOverview 三維度判斷6f6f30b..HEADdd904ae chore: bump 0.0.27 → 0.0.28| 動作 | 命令 | 風險 |
|---|---|---|
| Push jedi-flow-engine | cd ~/Projects/Jedicogy/module/jedi-python-package/jedi-flow-engine && git push origin feature/project-flow-engine-integrate |
低 |
BE poetry update jedi-flow-engine |
cd ~/Projects/Billows/Audit-Manager/compliance-manager-be && poetry update jedi-flow-engine |
低(Nexus 已有 0.0.28) |
| Push BE branch | 同上 dir + git push origin feature/project-flow-engine-integrate |
低 |
| Push FE branch | 同上 dir + git push origin feature/project-flow-engine-integrate |
低 |
| 開 PR / merge / 部署 staging-prod | gh pr create 等 | user 部署決策 |
詳見 docs/issues/pending/2026-05-13-spec3-phase-6-followups.md:
| PR | 標題 | Priority | Spec |
|---|---|---|---|
| PR1 | _sync_project_status_to_completed helper + terminal_close_ap 加權限檢查 |
High | 一次清掉 Pattern 1+2 + Silent #1/#3/#6 |
| PR2 | launch_audit dead code 54 行刪除 | Medium | BE review #2 |
| PR3 | M12 completion_rate 補 unit test | Medium | BE review #1(hotfix b979a71 暴露 import smoke 不夠) |
| PR4 | FE default flow_template guard(master 軟刪 UX) | Medium | FE review #1 |
PR1 是最高優先 — 揭露 3 個 OscalAuditService method 對 project.status 同步用 3 種寫法(PENDING 白名單 / IN_PROGRESS 白名單 / != COMPLETED 黑名單),terminal_close_ap 黑名單會強推 SUSPENDED/ARCHIVED → COMPLETED 破壞 archive 語意。
| PR | 標題 |
|---|---|
| PR5 | _is_terminal_user_task outcoming 空加 log warning |
| PR6 | _extract_stage_codes BPMN parse log context 補強 |
| PR7 | Comment patch(DTO 補 stage_codes / module docstring 拆 seeded vs runtime handler) |
| PR8 | FE size=100 隱性截斷 console.warn |
| PR-TD1 | flow_template payload Optional[dict] → dataclass |
| PR-TD2 | StartProjectDto.flow_template_uid 改必填 str(無 default) |
| PR-TD3 | StageInfoDto dataclass 形式化 |
| 項目 | 說明 |
|---|---|
| M8 | Phase E 4 fixture bug + 3 Banner BDD scenario(compliance-manager-test repo) |
| Stage plugin 架構 | 已 analysis 不做,等觸發條件(新 stage 頻率 / 6-8 stage / SaaS 需求) |
docs/features/FR-026-2605-project-flow-engine-integrate/03-ap-binding/design.md v3 — 必看 §16 Implementation Reality / Reconciliation(含 9 條 plan 偏差 + 5 條 M9-M13 補丁 + strict/lenient 落地對照)docs/features/FR-026-2605-project-flow-engine-integrate/03-ap-binding/implementation-plan.md v1.1docs/features/FR-026-2605-project-flow-engine-integrate/03-ap-binding/test-plan.md v1docs/features/FR-026-2605-project-flow-engine-integrate/03-ap-binding/handoff-v2.md — 上一輪 handoff(v1.x → v2.1 plan 接手)handoff-v3.md — 這次docs/review/2026-05-13-spec3-review.md — master summary + 8 important concerns + 4 cross-cutting patterndocs/review/2026-05-13-spec3-review-be-code.mddocs/review/2026-05-13-spec3-review-fe-code.mddocs/review/2026-05-13-spec3-review-silent-failures.mddocs/review/2026-05-13-spec3-review-types.mddocs/review/2026-05-13-spec3-review-comments.mddocs/issues/pending/2026-05-13-spec3-phase-6-followups.md — 11 個 PR 規劃(PR1–PR8 + PR-TD1/2/3)docs/analysis/2026-05-13-terminal-stage-bpmn-driven-close.md — M9 設計取捨(為何 寧包子 close、為何不選 close_round 直接呼叫等)docs/analysis/2026-05-13-stage-plugin-architecture-thoughts.md — plugin 架構討論(現階段不做)docs/conversation-history/2026-05-13-spec3-ap-binding/SUMMARY.md — 整 task arc 收尾報告~/Desktop/spec3-conversation-2026-05-13.zip(143 KB)接手後若要動 Spec 3 相關 code,注意這 4 條:
project.status 同步條件三處不一致 — 任何新加「結案類」method 必須白名單 allowed_from(不要 != COMPLETED 黑名單)_check_participant_role,TerminalCloseHandler 例外目前是純文件約定| 決策 | 反悔條件 / 觸發點 |
|---|---|
terminal_close 寧包子(不驗 POA&M / AR data) |
審計報告期末資料缺失 → 加 ar_data.completed_at sync |
BPMN parse 失敗 lenient fallback [] |
出現「snapshot xml 壞」事故 → enrichment 改 null 區分 corruption vs 缺失 |
| AP closed → completion_rate 100% | spec 改變要拆「強制終止」vs「正常結案」狀態 → case 條件改 hardcode 比對 |
| Button label terminal 時覆寫「完成本輪」 | 全面 generic 化需求 → Phase 1 FE button config 一次處理 |
| Stage plugin 不做 | 新增 stage 頻率高 / 第 3 個 view 重複邏輯 / stage ≥ 6-8 / SaaS 需求 |
| 項目 | 細節 |
|---|---|
| BE log | log/app.log(不是 stdout) |
| BE 重啟 | pkill -9 -f main_socketio.py && python main_socketio.py > /dev/null 2>&1 & |
| Dev DB | 192.168.50.188:25432 guidant_ai_dev(不是 _stg),用 cmmgr 跑 migration(cm_app 受 RLS 擋) |
| Dev 帳號 | 手動 blsadmin / Billows@123!、pytest blsit / Billows@123! |
| BE test 跑法 | PYTHONPATH=. pytest test/test_xxx.py -v(test/ 沒 conftest,要 PYTHONPATH) |
| pyproject.toml | 目前 pin 0.0.28,不要再切回 path mode 除非要動套件 |
從本次 task arc 學到(也記在 memory):
Mapped[] — DTO 名跟 ORM column 經常不一致(如 catalog_control_id vs control_id)String 漏掉就是這樣)| 維度 | 數字 |
|---|---|
| BE commits | 27 |
| FE commits | 6 |
| jedi-flow-engine commits | 5(領先 origin) |
| 新增 unit tests | 81 |
| Milestones | M0–M13(含 4 個 smoke 補丁 M9/M10/M11/M12) |
| Phase 6 review findings | 0 critical / 8 important / 15+ minor |
| 文件齊全度 | 100%(11 changelog + 2 analysis + 1 issue + 6 review + spec v3) |
| Conversation history parts | 11(gitignored) |
把第〇段「起手語」+ 第二段「user 還沒做的事」+ 第三段「後續可做的工作」貼到新 session,再說「先做 PR1」之類即可。
| 版本 | 日期 | 變更 |
|---|---|---|
| v1 | 2026-05-13 | task arc 收尾 + ship-ready + 發版完成後的接手指南 |