2026-05-22 Session 1 完成後建立。貼以下 ``` 框內容開啟 Session 2。
你正在接手 SSP 在專案內直接編輯 — Phase C Session 2 實作。
## Session 1 完成狀況(已 ship)
| Phase | Commit | 說明 |
|-------|--------|------|
| C1 | 381d3ec | 9 個 OSCAL SSP 角色 seed 進 system_menus + oscal_roles;兩表加 UNIQUE constraint |
| C8 | be1d286 | _ROLE_LABEL_MAP 清理;_ROLE_LABEL_PATTERNS 擴增到 9 條 |
| C7 | e7f29e3 | 06_外部利用服務 sheet 恢復;TEMPLATE_VERSION v2.0.0 → v2.1.0 |
DB 也已執行 C8 data fix:oscal_responsible_parties 刪除 26 筆 broken role(manager/reviewer/auditor/viewer)。
## 本 Session 目標:C2.1(11 個 SSP-scoped endpoints)
### 必讀文件
1. CLAUDE.md(已自動載入)
2. docs/features/FR-011.3-2605-ssp-edit-in-project/README.md(tracker)
3. docs/features/FR-011.3-2605-ssp-edit-in-project/design-C2.md
4. docs/features/FR-011.3-2605-ssp-edit-in-project/implementation-plan-C2.md(Batch 1 部分)
### C2.1 工作範圍(11 個 endpoint)
**前置**(sequential,其他 endpoint 都依賴):
- T1:`SspProjectResolver` + `require_ssp_manager` helper + 新 error codes
- T2.1:`module_frame_party_service` 抽 base method(ssp_id 參數化)
- T2.2:`module_frame_ssp_resources_service` 抽 base method
**Endpoint 實作**(T1+T2 完成後可分兩組平行):
- T3:`/ssp/<ssp_uid>/parties` 4 個 endpoint(GET list / POST / PUT / DELETE)
- T4:`/ssp/<ssp_uid>/ssp-resources` 4 個 endpoint
- T5:`/ssp/<ssp_uid>/system-characteristic` GET + PUT 2 個
- T6:`/projects/<uid>/current-ssp-uid` GET 1 個
### Pre-flight(開工前必跑)
```bash
# 1. 確認 C1 seed 已在 DB
PGPASSWORD='jedi@123!' psql -h 192.168.50.188 -p 25432 -U cmmgr -d guidant_ai_dev \
-c "SELECT COUNT(*) FROM system_menus WHERE \"group\" = 'ssp_party_role';"
# 預期:9
# 2. 確認 MF service 內部已是 SSP scope
grep -n "scope_type.*ssp\|scope_id=ssp" \
app/module_frame/service/module_frame_ssp_resources_service.py \
app/module_frame/service/module_frame_party_service.py | head -10
# 3. 確認 GrcErrorCode 下一個可用序號
grep -E "GRC_4[0-9]+" common/code/grc_error_code.py | tail -10
# 4. 確認 ProjectAssessmentPlanMapping 反查路徑
grep -rn "ProjectAssessmentPlanMapping" domain/ infra/ --include="*.py" | head -5
feature/ssp-import-export-phase3(目前所在 branch)
PGPASSWORD='jedi@123!' psql -h 192.168.50.188 -p 25432 -U cmmgr -d guidant_ai_dev