# FR-147 資源庫任務說明 — STATE（只描述此刻，就地更新）

> 2026-10-17 起的分工：**FR-147 首腦（本 session）留任**；上面有一位**總驗收首腦**負責 FR-139～147 全專案功能總測試與統一收尾。總測試抓到 FR-147 的問題 → 派回 FR-147 首腦分析、開修正卡、派 runner、驗收；收口（spec／手冊／arc review／套件發版／push）由總驗收首腦統籌，FR-147 首腦配合提供材料。本檔寫給雙方：進度到哪、驗什麼、發版前還差什麼。

## 一句話現況

**八張實作卡全部 Done、首腦逐張復核過；收口（spec／手冊／arc review／套件發版）一件都沒做，等總驗收後統一收。** 無 migration、無新表、出貨基線不必重產。三個 repo 都在 `feature/FR-139`，**都未 push**。

## 這個功能是什麼（給總驗收首腦 30 秒）

顧問在合規資源庫替每條評估目標（AO）的任務先寫好名稱、描述、指南；專案啟動時帶進任務；啟動後資源庫頁直接改專案任務；一份 Excel 一列一任務、AO 欄合併，資源庫頁與專案規劃頁同格式。連帶把資源庫編輯頁版型改成跟稽核計畫頁一樣（左樹到 AO、右欄一次一條）。定案規格在 `design.md`，D1～D4／D6／D7 全裁（D5 撤銷）。

## 卡片總表

| 卡 | 做什麼 | repo | 狀態 | commit |
|---|---|---|---|---|
| CM-2864 | 母卡 | — | In progress（收口時收 Done） | — |
| CM-2865 2a | 方塊屬性 helper＋啟動帶三欄 | BE | ✅ Done | `82c8f1336`、`6efda2c76` |
| CM-2866 2b | 覆核輪抄三欄 | BE | ✅ Done | `39fa55821` |
| CM-2867 3a | 資源庫 AO 任務說明讀寫 API | BE | ✅ Done | `4cf997791`（FE i18n `ce2b9b7e`）|
| CM-2872 3c | 資源庫編輯頁版型比照稽核計畫頁 | FE | ✅ Done | `3ddc5fa4` |
| CM-2868 3b | AO 表單底下任務說明區塊＋左樹圓點 | FE | ✅ Done | `8341176c` |
| CM-2869 4a | Excel 共用產生器＋資源庫端匯出匯入 | BE | ✅ Done | `587bc39e1` |
| CM-2870 4b | 專案規劃頁匯出匯入對齊 | BE＋pkg＋FE | ✅ Done | BE `62d845e1a`／FE `a424b9c1`／jedi-task-platform `040d5d32` |
| CM-2871 4c | 資源庫頁匯出匯入對話框 | FE | ✅ Done | `497211fa` |

## 總測試要驗什麼（決策者親手做）

驗收資料（DEV `localhost:5432 guidant_ai_dev`，連線看 `.env`）：
- 沒綁專案的資源庫：`30387ee8-51ff-4d54-944f-66cb5476828b`（CMMC 2.13 Level 1 AirAsia 2，mf 437）
- 綁專案的資源庫：`bf705aec-5bae-47fb-80f2-2d8245222019`（CMMC簡易SSP-2，mf 471 ↔ 專案 1548 `39bfa87c-…`，目前第 2 輪覆核輪）
- AO 很多的資源庫（驗版型）：`3749e167-6237-4882-bac4-36f32772776e`（CRA E2 驗收，65 AO）

照 design.md「端到端驗收」八條：
1. 資源庫編輯頁「適用控制項」：左樹到 AO、點控制項右邊只有控制項欄位＋底下 AO 清單、點 AO 右邊只有那條、上一條／下一條；**AO 右邊沒有流程編輯器鈕**。
2. AO 表單最底下「任務說明」：沒綁專案一張小卡三格，填存重整還在；左樹計數變。
3. 頁首「匯出任務說明」→ Excel 一列一任務、AO 欄合併、三欄黃底；改兩格「匯入任務說明」→ 預覽只標那兩格 → 確認後畫面更新。**（這段首腦只 headless 看到鈕與對話框，上傳→預覽→確認沒實走，請一定親手走一次。）**
4. 用填過三欄的資源庫啟動專案：規劃頁任務名稱／描述／指南＝資源庫填的；沒填的仍是「控制碼 / AO 收證據」。**（首腦只用 API 驗，沒從建專案 UI 走過。）**
5. PM 在規劃頁把一條 AO 改成三站 → 資源庫頁同條 AO 三張小卡、狀態與指派人唯讀；改指南 → 規劃頁同步。
6. 專案規劃頁「任務配置匯出」長相同資源庫（前九欄＋類型／指派／部門／設備）；改名稱／描述／指南匯回寫進任務。
7. 啟動覆核輪：新輪同條 AO 任務三欄＝上一輪。**（2b 只用測試＋psql 驗 UPDATE，沒實啟覆核輪。）**
8. 稽核中（送審鎖）資源庫頁三欄唯讀。

首腦實打過的（可少測）：3a 三支 API 全套含 403／404、4a 資源庫端 export→parse→confirm→還原、4b 專案端同套、3c／3b／4c 版型與區塊 headless 實看。

## 發版前還要做什麼（收口清單，全部未做；總驗收首腦統籌，FR-147 首腦配合）

1. **jedi-task-platform 發版**：`040d5d32` 改了匯入 schema（加 name／description／guide 選填），版號仍 1.3.2 → 要 bump（建議 1.3.3）、推 Nexus。**只有這一支套件是 FR-147 動的。**
2. **pin 還原**：BE `pyproject.toml` 目前四支套件走 path dependency（task-platform／compliance-audit／flow-engine／oscal-v2），這是 **FR-139 C-2 與 FR-140～143 一路留下的**，不只 FR-147。發版後一起還原 pin、`poetry update <四支>`、commit。各套件發版歸屬：task-platform（FR-147＋FR-140.14）、compliance-audit（FR-142／143）、flow-engine／oscal-v2（FR-139～141）——總驗收首腦統一排。
3. ~~**SPEC**~~ ✅ 已做（FR-154 CM-2971，BE `185e328b6`）：樣板編輯器「AO 任務說明」節、現況資料 Excel M～P 四欄、專案端任務配置 Excel 描述／指南欄、任務三欄來源；手冊 `resource-library-guide.md`。
4. **使用手冊**（`docs/user-manual/`）：顧問怎麼在資源庫填任務說明、怎麼用 Excel 批次填。
5. **arc review**（`arc-review` skill）掃三 repo FR-147 diff；本案碰到的超標檔已拆一支（`ModuleFrameTemplateEditView.vue` 1,954→1,392）、`job_import_service.py` 546→492，符合「至少拆一支」。
6. **母卡 CM-2864 收 Done**、README 總進度、需求中心重 build。
7. **push**：BE 34、FE 43 commits 未推（含 FR-140～147 混在同 branch），決策者本人推。

## 待決策者裁（總驗收時順便）

- ~~**4a／4b 空格語意不一致**~~ **已不存在，不必裁**：4d（`bfda2fe8a`，CM-2875）把資源庫端任務欄併進現況資料 Excel 時改成「空白＝不變動」，兩端已一致。剩下的真實差異只有「版面不同」與「專案端無法用 Excel 清掉描述／指南」，SPEC 已照現況寫（CM-2971）。FR-154 決策者 2026-10-21 的「這版不統一」裁定是依本段過期資訊做的，實際無事可裁。
- **同一張範本流程圖被多條 AO 共用**（舊資料形狀，DEV catalog 2142 一本 51 AO 共 50 圖）：沒綁專案時改其中一條另一條跟著變。首腦裁「不提示」（FR-139 後新建一 AO 一圖），總驗收若覺得要提示再開小卡。

## 定案摘要（改規格前先看這裡）

D1 啟動前三欄存範本流程圖第一個方塊（name＋camunda 屬性 `task_description`／`task_guide`）；D2 啟動後守資源庫編輯權不要求專案 manager、只開三欄；D3 讀目前輪次；D4 匯入對不到跳過；D6 資源庫頁流程編輯器鈕拿掉、顧問不改流程、啟動只認第一個方塊；D7 版型比照稽核計畫頁；D5 撤銷。出廠方塊名稱（Evidence upload／證據上傳／收證據）視同沒填（2a runner 補的，首腦採納）。

## 環境與座標

- branch：BE／FE／jedi-python-package 都在 `feature/FR-139`，不切。
- DEV BE 8000：**PyCharm 起的 BE 進程名是 `.../Python.app/.../Python main.py`，`pkill -f "python main.py"` 殺不到**；重啟用 `lsof -tiTCP:8000 -sTCP:LISTEN | xargs kill -9` 再起。首腦 2026-10-17 因此驗到舊程式一次。
- DEV FE 5180 跑中。
- headless 登 DEV 截圖腳本樣板：test repo Playwright、登入 testid `login-input-username/password`、PrimeVue 頁籤要 `click({force:true})`、`.mf-tn-ctrl` 樹節點改 DOM `evaluate(el.click())`。
- 文件：`design.md`（定案）、`discussion.md`（為什麼）、`prototype/index.html`（雛形 v4，已裁版）、`FR-147-LOG.md`（沿革與教訓）。
