操作紀錄
append-only,禁止修改已有條目。格式:
## [YYYY-MM-DD] 操作類型 | 說明
[2026-06-30] consolidate | 申請單異動主線整併
- 整併頁面:
concepts/申請單異動從建立到完成怎麼運作.md - 取代拆分頁:下拉卡控/送出驗證、申請單異動除錯路徑、晉塔與安奉通報
- 原則:不把討論串當長期正文引用;以現行程式碼、測試與 skill 路徑驗證流程
- 主要內容:建立下拉、前端卡控、自動加項、送出後端守門、處理存檔 materialize、完成端 hard fail、晉塔通報、查 bug 入口
- 驗證來源:
ModificationValidationManager、ApplicationCreateService、ApplicationActionService、ApplicationItemDetailWriter、MoveoutApplicationManager、EnshrinementNotificationService、前端 create store / gating composable、目標測試 - 限制:本次未重新查詢 grace2
[2026-06-30] ingest | 晉塔與安奉通報怎麼運作
- 新增頁面:
concepts/晉塔與安奉通報怎麼運作.md - 讀者:第一次接觸通報功能的工程師/SA
- 驗證來源:SA 5.3.7、
ApplicationActionService、EnshrinementNotificationService、通報前端頁面與回歸測試 - 重要更正:2026-06-26 的「申請單不產生通報」斷鏈已修正;現行由申請詳情 儲存 materialize pending enshrinement 與通報,submit 端不建通報
- 主要內容:申請/預填/手動三個來源、暫厝與 main 差異、完成正式入位、 取消、撤回與新人除錯入口
- 限制:本次未重新查詢 grace2
[2026-06-30] ingest | RBAC 授權權威與現況
- 新增頁面:
concepts/RBAC 授權權威與現況.md - 規格權威:GitHub issue #246
- 驗證來源:
ApiPermissionFilter、FeaturePermission、MenuService、usePermission、auth.global.ts、RBAC migrations 301–306、目標測試 - 對齊:route→feature→grant、MVCUDE、5 個 SoD feature、授權樹與導覽列解耦
- 現行差異:權狀申購發票面板 gate、CustomerSearchField 建客戶 gate、 Signature path③、ZionApi legacy anonymous、auth-store 過期註解
- 測試:RBAC 目標測試 29 passed / 0 failed
- 限制:本次未重新查詢 grace2,不把 issue 的歷史 DB probe 當成本次即時結果
[2026-06-30] ingest | 申請新增下拉卡控與送出驗證
- 新增頁面:
concepts/申請新增下拉卡控與送出驗證.md - 來源:SA 4.1.5、BR-APP-04~07、
ModificationValidationManager.cs、ApplicationCreateService.SubmitApplicationAsync - 主要內容:
- Step1
GetAvailableModificationTypesAsync:產品類型篩選 → 白名單 → 歷史在途卡控 → metadata - Step2
ValidateItemsAsync:4 條同權狀互斥(轉繼/換位換裝/退費預繳/晉塔換裝)+ solo/first/已晉塔退貨 - 共用
ValidateProductStatusAsync:作廢/鎖定硬阻擋 + 8 種 code 狀態前置 - Step3
SubmitApplicationAsync:7 道送出守門(privacy/組合/客戶互斥/狀態/晉塔必填/退費可退/M-12) - 3 張 DB 表角色(system_check 純顯示 ≠ 卡控的陷阱)
- Step1
- 觸及頁面:
concepts/申請新增下拉卡控與送出驗證.md、index.md
[2026-06-30] ingest | 申請單異動除錯路徑(skill 轉 wiki)
- 新增頁面:
concepts/申請單異動除錯路徑.md - 來源:
.claude/skills/application-modification-debugging/SKILL.md - 主要內容:症狀分類 A–E、14 個已知陷阱(含 f_in 陷阱、ParseUsers vs ParseNotifList、dropdown 空白兩種根因、管理費消失查 syslog 等)
- 觸及頁面:
concepts/申請單異動除錯路徑.md、index.md
[2026-06-30] ingest | 晉塔流程(SA 4.1.6 / 4.1.8 / UC03 / UC10 + EnshrinementGuard.cs)
- 新增頁面:
concepts/晉塔流程.md - 來源:SA 系統設計規格書 §1.3.3、§4.1.6、§4.1.8、UC03、UC10、BR-AST-02~05
- 來源:
EnshrinementGuard.cs、EnshrinementNotificationBuilder.cs - 主要發現:
enshrinements.f_in遷出後維持 ‘1’(永不改為 ‘2’),遷出狀態靠move_outs.f_t_use_fid判定ParseUsers()vsParseNotifList()的 guard 陷阱(後者依日期,無日期 user 被漏)- 管理費 guard 必須用
ParseUsers()不可用ParseNotifList()
- 觸及頁面:
concepts/晉塔流程.md、index.md - 建議下一步 ingest:遷出流程(move_out + MoveoutApplicationManager)、申請單狀態機
[2026-06-30] update | 知識庫初始化
- 建立目錄結構:
raw/、raw/assets/、wiki/、wiki/sources/、wiki/entities/、wiki/concepts/ - 建立 Schema:
CLAUDE.md - 建立初始頁面:
index.md、log.md、overview.md - 依據 Karpathy LLM Wiki 模式設計
- 下一步:與使用者確認主題,開始 ingest 第一份資料