Task arc:2026-05-07 ~ 2026-05-08 Branch:
feature/project-flow-engine(領先 origin 3 commits 已 user 手動 push) 核心需求:把固定 5 phase OSCAL 稽核流程改造成 BPMN 驅動的可配置流程,並新增「通用流程」project type 支援問卷調查等不掛 OSCAL 概念的場景。產品未上線,採統一架構(無雙路徑)。 產出:spec + plan,未實作。User 確認 N1-N6 修完即 archive,下個 session 啟動 M0 Spike。
| Hash | 主題 | 行數變化 |
|---|---|---|
ed72ae7 |
Phase 0/1/3 brainstorm 產出 design + implementation plan | +6421 |
d67237e |
plan amend — 補 4 個管理 UI + Review 策略明確化 | +138 / -17 |
029b2b4 |
外部 reviewer Pass 1 — 11 條設計缺口修正 | +601 / -45 |
c8a394e |
audit-lifecycle/state-tracking-guide(順帶 commit) | +264 |
e04255c |
外部 reviewer Pass 2 — N1-N6 修正 | +113 / -14 |
| 檔 | 最終行數 | 用途 |
|---|---|---|
design.md |
1630 行 | Spec — 17 個 section,通過 3 輪 reviewer + 2 輪外部 AI |
implementation-plan.md |
1889 行 | Implementation plan — 7 milestone / 50+ task / 通過 plan reviewer |
architecture.html + .pdf |
— | 概念視覺化(Activity Registry + 三 use case BPMN flow + 兩決策軸) |
design.html |
— | spec markdown 暗色 HTML 版本(pandoc + 自訂 CSS) |
2026-05-08-tweak-project-flow-engine-spec-and-plan.md2026-05-08-tweak-project-flow-engine-plan-amend.md2026-05-08-tweak-project-flow-engine-external-review-fixes.md2026-05-08-tweak-project-flow-engine-reviewer-pass2.md2026-05-07-tweak-audit-lifecycle-state-tracking-guide.md(順帶)part-01-of-05-brainstorm-architecture-decision.md — 200 訊息part-02-of-05-spec-and-internal-reviewer.md — 200 訊息part-03-of-05-implementation-plan-writing.md — 150 訊息part-04-of-05-plan-amend-and-external-reviewer-pass1.md — 130 訊息part-05-of-05-external-reviewer-pass2-and-archive.md — 66 訊息| 設計決策 | 為何 |
|---|---|
| γ Activity Registry + Plugin 化 | 對比硬編 step type 維護會崩;plugin 化讓加新流程 = 加 plugin,不改核心 |
| OSCAL 拆 5+1 個 activity(preparing / active / internal_review / external_audit / remediation + kickoff + close) | User 實際遇到 A/B/C 三家公司不同流程組合需求 — 拆 2 段不夠(B 公司要跳過 internal_review) |
| 6 個固定 phase(setup / execute / review / audit / remediation / close) | 跨 tenant 視覺一致 + 跨 template 可比;tenant 自訂 phase 留 Phase 2 deferred |
| Role Catalog 兩層分離(系統 RBAC + Project Role) | 業界標準(Atlassian / GitHub / Salesforce);project role 可自訂、系統 RBAC 不被污染 |
| Snapshot-on-start | admin 改 template 不影響跑中 project;既有 OSCAL AO 也是這個 pattern |
| AP.status 降級為 OSCAL 內部 sub-state | 外部用 BPMN current_node + phase;AP.status 仍是既有 OSCAL service 內部判斷分支用 |
| 雙寫 audit log(activity_logs 主 + jedi-common SystemLog 同步重要事件) | activity_logs 給 ops 查進度 / 除錯;SystemLog 給 admin audit dashboard。用途不同 |
| 統一架構,不做 legacy_oscal 雙路徑 | 產品未上線,dev/staging 測試資料可清,省一週工程量 |
| Phase 1 不做 sub-flow library | User 直覺指出「實體獨立 + 狀態觸發」比 sub-flow 嵌套更乾淨;OSCAL AP / Survey / POA&M 各 aggregate 獨立 |
| 排除選項 | 原因 |
|---|---|
| Sub-flow callActivity 嵌套全流程 | 強耦合、跨 entity context 複雜、跟既有 OSCAL aggregate 設計衝突 |
| Phase 動態 catalog(tenant 自訂) | YAGNI — 6 個 enum 涵蓋既有業務;未來真有客製需求再升級(Phase 2 deferred) |
| OSCAL 拆到最細(5 個獨立 activity 不含 close) | 過度;POA&M 跨 round 邏輯拆細會奇怪 |
| Builtin v1 → v2 自動升級既有 snapshot | 違反 snapshot-on-start 設計初衷;Phase 2 評估 PM 主動觸發升級 |
| Schema-level audit trigger(防 UPDATE assessment_plans) | Phase 2 deferred — 程式紀律 + code review 為 Phase 1 兜底 |
| 規範要求 | 狀態 |
|---|---|
| Changelog(每個 task arc 一份) | ✅ 5 份 |
| Spec 在 docs/features/ |
✅ |
| Plan 在 docs/features/ |
✅ |
| 對話歷程歸檔到 docs/conversation-history/ | ✅ 本資料夾(gitignored) |
| Activity 階段對應中文翻譯來自 FE i18n grc-shared.json | ✅(reuse 自 audit-lifecycle 章節) |
| SQL migration 加日期 comment + GRANT cm_app + 用 cmmgr 跑 | ✅(spec § 5) |
| 重大決策落地 docs/analysis/ 推理過程 | ⚠️ 未做 — brainstorm 過程過大,已濃縮在 spec 各段 + 本 SUMMARY |
依 spec §16 Open Questions:
每項在 §16 都有 Phase 1 / Phase 2 取捨說明。
我要開始實作 BPMN flow engine。先讀以下兩份:
- docs/features/project-flow-engine-setting/design.md
- docs/features/project-flow-engine-setting/implementation-plan.md
依 plan header 的 REQUIRED SUB-SKILL,用 superpowers:subagent-driven-development 啟動。
從 M0 OSCAL Spike 開始。
review 策略(plan header 有寫):只 M4 結束 user review 一次,
其他 milestone agent 自測 + smoke 即可,不打擾 user。
11-13 週(單人 senior FE+BE,含 4 個管理 UI + 11 條外部 reviewer 修正)。
| Milestone | 週 |
|---|---|
| M0 OSCAL Spike | 1 |
| M1 Core Infrastructure | 1-2 |
| M2 Activity Plugins (12 個) | 3-5 |
| M3 Templates + Snapshot + DB Seed | 6 |
| M4 API + Role Catalog(★ user review gate) | 6-7 |
| M5 FE + 4 個管理 UI | 7-9 |
| M6 Test + Regression + UAT | 10-11 |
| 輪 | 結果 | 主要修正 |
|---|---|---|
| Internal Pass 1 | Approved | 0 條 |
| Internal Pass 2 | 4 issues | start_mode / @transaction / external_audit relaunch / review_loop_gateway 等 |
| Internal Pass 3 | Approved | — |
| Plan Pass 1 | 9 issues | is_pure_gateway / phase_progress / cascade / dual-write / extra_check / entity_counter / eager init / OSCAL E2E rewrite / activity_logs ordering |
| Plan Pass 2 | Approved | 3 minor(schema 確認 / SystemLogEmitter / TRUNCATE flow_engine 表) |
| External Pass 1 | 11 issues | A 狀態機 / B Plugin 介面 / C UX / D API filter / E Open Questions |
| External Pass 2 | 設計層面已無阻擋性問題 | N1-N6 polish 全修 |
下個 session 啟動實作前,先
/clear清掉本 session 的 brainstorm 雜訊,新 session 只讀 design.md + plan.md 開工。