Project

General

Profile

CR #201 » GOV-001_交付物清冊與命名規範.md

內容更新:內部稱謂去識別化(2026-10-18) - Redmine Admin, 10/18/2026 05:32 AM

 

GOV-001 交付物清冊與命名規範

項目 內容
文件編號 GOV-001
版本 1.3(2026-10-01,CR-028:§4.4 事件命名範例由 authorization.hold.created.v1 改為 limit.hold.created.v1——前者已廢除。前版 1.2)
狀態 已核定(Baseline)
專案 BEAM 信用卡核心現代化 — 微服務系統建置
依據文件 BEAM_核心現代化_信用卡核心_Proposal_V2_SoW.docx(SoW 等級建議書)
交付物根目錄 cardcore/

1. 目的

本文件定義本專案所有交付物的存放位置、編號規則、命名慣例與版本規則。
專案成員(含 BA、DA、SA、SD、Security Architect、Coder、Tester/TestBOT)
產出任何文件或程式碼前,均須依本規範命名與歸位。

一句話原則:看到檔名就要知道「這是什麼類型的文件、屬於哪個階段、第幾份」;
看到程式路徑就要知道「它屬於哪個 bounded context、是第幾層」。


2. 交付物根目錄結構

cardcore/
├── README.md                     交付物導覽(入口文件)
├── docs/                         文件交付物(本階段主體)
│   ├── 00-governance/            治理類:規範、任務分派、流程、追溯
│   ├── 01-brd/                   業務需求類
│   ├── 02-sad/                   系統架構類
│   ├── 03-sdd/                   系統設計類
│   ├── 04-coding-spec/           程式規範類
│   ├── 05-change-requests/       契約/規格變更單(CR)
│   ├── 05-test/                  測試類
│   ├── 06-test/                  測試類(續)
│   ├── 07-scs/                   程式設計規格(SCS)
│   └── 08-evidence/              實測證據(截圖/錄檔)—管理規範見 §6.9
├── backend/                      後端程式(程式撰寫階段產出)
│   ├── services/                 各微服務(一個 bounded context 一個服務)
│   └── platform/                 跨服務共用平台(common、gateway、bff)
├── frontend/                     前端程式(React 18 + Vite)
└── ops/                          部署與維運(IaC、K8s manifest、CI 管線)

3. 文件命名規範

3.1 檔名格式

<TYPE>-<NNN>_<中文標題>.md
欄位 規則 範例
TYPE 3 碼大寫文件類型代碼,見 §3.2 SDD
- 固定連字號
NNN 3 碼流水號,由 001 起,同一 TYPE 內連續、不跳號 006
_ 固定底線
<中文標題> 繁體中文,不含空白與標點;標題內可用 - 連接英文詞 API-Contract

完整範例:SDD-006_API-Contract.md

禁止:final、v2、新版、暫存、copy、(1) 等字樣出現在檔名中。
禁止:final、v2、新版、暫存、copy、(1) 等字樣出現在檔名中。

3.4 證據檔命名規範(docs/08-evidence/)

<來源>-<NN>-<簡述>.<ext>
欄位 規則 範例
<來源> 頁面/功能之英文識別,小寫、以 - 連接 webui-applications
<NN> 2 碼流水號,同一來源內由 01 起連續不跳號 03
<簡述> 繁體中文,描述該證據證明什麼 送徵信後轉人工核決

完整範例:webui-applications-03-送徵信後轉人工核決.png

命名須能直接看出結論(如「轉人工核決」而非「畫面3」)——
證據是給人驗收看的,不是給程式讀的。
版本以文件內部的「版本」欄位表達,不以檔名表達。

3.2 文件類型代碼

TYPE 全稱 階段 主要產出角色
GOV Governance(治理) 全期 PM / SA
BRD Business Requirements Document 需求 BA
SAD System Architecture Document 架構 SA / Security Architect
SDD System Design Document 設計 SD / Data Analyst
CSP Coding Specification 設計 SA / Tech Lead
TRP Test Plan 測試 QA Lead
TRR Test Report 測試 Tester / TestBOT
OPS Operations Runbook 維運 SRE / Ops

3.3 文件內部必要欄位

每份文件開頭必須有下列表格(缺一不可,供追溯與版控):

| 項目 | 內容 |
|---|---|
| 文件編號 | SDD-006 |
| 版本 | 1.0 |
| 狀態 | 草稿 / 審查中 / 已核定 |
| 撰寫者 | <角色> |
| 審查者 | <角色> |
| 對應需求 | FR 1.1、FR 1.2(可留空) |

4. 程式命名規範

4.1 微服務命名

<bounded-context>-service           # kebab-case、單數名詞

範例:authorization-service、card-service、posting-service、limit-service

  • 不使用 ms-、svc- 前綴(冗餘)。
  • 一個 bounded context 只對應一個服務,不得一名多服務或一服務多名。
  • 服務目錄內固定結構見 CSP-002。

4.2 API 路徑

/api/v1/<resource-plural>            # 資源複數、kebab-case
/api/v1/<resource-plural>/{id}/<sub-resource>

範例:/api/v1/cards/{cardId}/limits、/api/v1/authorizations

  • 動詞不入路徑;狀態轉換以子資源或動作子路徑表達,例如
    POST /api/v1/cards/{cardId}/lifecycle-transitions。
  • 版本只在大版變動時升(v1 → v2),欄位新增不升版。

4.3 資料庫命名

<schema>.<table>                     # schema = bounded context 名(snake_case)
  • 表名:複數、snake_case,例如 authorization.authorizations、card.cards。
  • 欄位:snake_case;主鍵一律 id;外鍵 <entity>_id。
  • 時間欄位:*_at(timestamptz)、日期欄位 *_date(date)。
  • 金額欄位:<name>_amount + 幣別欄位 <name>_currency;金額一律整數最小單位(分),
    禁止使用浮點數。
  • 布林欄位:is_* / has_*。

4.4 領域事件命名

<context>.<aggregate>.<past-tense-verb>.v<major>

範例:posting.transaction.posted.v1、limit.hold.created.v1、
card.card.status-changed.v1

  • 事件名稱使用過去式(事件是既成事實)。
  • 事件 payload 只增不減;破壞性變更須升 v2 並雙軌發布至少一個 release。

4.5 錯誤碼命名

CC-<SERVICE>-<NNN>
  • SERVICE:4 碼大寫服務縮寫(見 CSP-003 對照表),例如 AUTH、CARD、POST。
  • NNN:4 碼數字,一碼一義(首位=類別,見 CSP-003)。

範例:CC-AUTH-1001(授權額度不足)、CC-POST-4001(請款重複入帳)

4.6 程式檔案命名

語言 檔案 型別/類別 函式/變數
TypeScript kebab-case.ts PascalCase camelCase
Java PascalCase.java PascalCase camelCase
SQL NNN_<描述>.sql(migration) — —
測試 <被測檔名>.spec.ts — —

5. 版本與狀態規則

版本 時機
0.x 草稿,尚未經審查
1.0 首次核定(Baseline)
1.x 核定後之修訂(不改變對外承諾)
2.0 改變對外承諾(API 破壞性變更、範圍變更)

文件狀態流轉:草稿 → 審查中 → 已核定(可退回 草稿)。
程式撰寫階段不得引用「草稿」狀態的設計文件。


6. 交付物清冊

6.1 治理類(docs/00-governance/)

編號 文件名稱 產出角色 狀態
GOV-001 交付物清冊與命名規範 PM 已核定
GOV-002 任務分派與 RACI PM 已核定
GOV-003 開發流程與品質關卡 PM / QA Lead 已核定
GOV-004 需求追溯矩陣(RTM) BA 已核定

6.2 業務需求類(docs/01-brd/)

編號 文件名稱 產出角色 狀態
BRD-001 業務需求規格書 BA 已核定
BRD-002 FR 功能需求追蹤清單 BA 已核定
BRD-003 NFR 非功能需求追蹤清單 BA / SA 已核定
BRD-004 POC 驗收情境清單 BA / QA 已核定

6.3 系統架構類(docs/02-sad/)

編號 文件名稱 產出角色 狀態
SAD-001 系統架構總覽 SA 已核定
SAD-002 微服務劃分與 DDD 邊界 SA 已核定
SAD-003 資料架構與 CQRS SA / DA 已核定
SAD-004 整合架構與 API 治理 SA 已核定
SAD-005 安全架構與個資保護 Security Architect 已核定
SAD-006 部署架構與可觀測性 SA / SRE 已核定

6.4 系統設計類(docs/03-sdd/)

編號 文件名稱 產出角色 狀態
SDD-000 設計總覽與通用規範 SD 已核定
SDD-001 領域模型與 ER-Diagram SD / DA 已核定
SDD-002 DFD 與流程分解 SD 已核定
SDD-003 Sequence Diagrams SD 已核定
SDD-004 Conflict Handling 與一致性設計 SD / SA 已核定
SDD-005 狀態機設計 SD 已核定
SDD-006 API Contract SD 已核定
SDD-007 WebUI 設計規範 SD / UX 已核定

6.5 程式規範類(docs/04-coding-spec/)

編號 文件名稱 產出角色 狀態
CSP-001 Coding Standard Tech Lead 已核定
CSP-002 專案骨架與模組結構 Tech Lead 已核定
CSP-003 錯誤處理與回應碼規範 Tech Lead 已核定
CSP-004 可觀測性與日誌規範 SRE / Tech Lead 已核定
CSP-005 單元測試與品質規範 QA Lead 已核定

6.6 測試類(docs/05-test/)

編號 文件名稱 產出角色 狀態
TRP-001 測試計畫與准入准出標準 QA Lead 已核定
TRP-002 NFR 驗證計畫 QA Lead ★ #A-159 產出(2026-10-02)
TRP-003 覆蓋率提升計畫 QA Lead ★ #A-166 起產出(v2.9)
TRP-004 覆蓋率提升總結報告 QA Lead ★ #A-204 產出(v1.0,2026-10-06)
TRR-001 單元測試報告 Tester / TestBOT 程式階段產出
TRR-002 缺陷追蹤表 QA 程式階段產出

6.9 實測證據類(docs/08-evidence/)

性質:實測過程之截圖/錄檔,用以證明功能確實可運作,
非裝飾性附件——客戶驗收與 POC 答詢時直接引用。

⚠️ 本表於 2026-09-30 更正(HANDOVER #A-105)——原表僅列 3 組 10 張,
與目錄實有 40 張不符。逐張之索引以 docs/08-evidence/README.md 為準
(§6.9 要求 1「索引必備」);本表僅列組別彙總。

來源 張數 對應頁面 對應規格
webui-applications 5 進件作業台 SCS-024 §11.2/SDD-007 §5.4.9
webui-installments 8 分期作業台 SCS-009(含 CR-008 雙軸)
webui-rewards 4 紅利點數作業台 SCS-010
webui-clearing 1 清算與請款 SCS-013
webui-dispute 1 爭議款處理 SCS-012
webui-cr020 3 卡片生命週期(CR-020 解鎖後) CR-020/SCS-003
webui-lifecycle 2 卡片生命週期管理 SCS-003
webui-limit 2 額度控管 SCS-002
webui-merchant 1 商店管理與請款 SCS-014
webui-migration 2 資料遷移作業 SCS-015
webui-parameters 1 參數設定 SCS-005
webui-policy 1 授權策略檢核 SCS-001
webui-product 1 產品與費率設定 SCS-005
webui-reports 1 報表作業 SCS-017
webui-reversal 2 沖正機制 SCS-001
webui-token 2 虛擬卡與 Token 管理 SCS-003
A-99 1 離線授權與代授權 SCS-001/CR-022
A-101 1 健康檢查與監控 SCS-020 §9.8
A-102 1 稽核軌跡查詢 SCS-001 §7.9/CR-025
合計 40

⭐ 代表性命中:webui-applications-03(徵審未接上時顯示「轉人工核決」而非核准)
為 fail-closed 之畫面證明——POC 被問「徵審沒接上會不會偷核准」時的直接佐證。

管理要求(系統性):

  1. 索引必備:目錄下須有 README.md(清冊),逐張列
    「檔名/對應規格章節/產生方式/日期/證明之結論」。
    無索引者視同未納管,Code Review 應退件。
  2. 一證一結論:每張證據須能說明「證明什麼」;
    無法對應到任何規格章節或驗收情境者,不得放入。
  3. 禁含個資:截圖前須確認畫面無真實卡號/身分證/手機
    (測試資料亦應遮蔽,見 CSP-004 §4)。
  4. 版本隨規格:證據所屬規格升版且畫面行為改變時,
    須重截並更新索引,不得留存與現行規格不符之舊證據。
  5. 命名依 §3.4,流水號不跳號。

7. 需求追溯鏈

所有交付物必須可回溯到需求,鏈路固定為:

flowchart LR
  A["FR / NFR / POC<br/>(客戶需求)"] --> B["BRD-002/003/004<br/>需求追蹤清單"]
  B --> C["SAD-002<br/>服務邊界"]
  C --> D["SDD-001~006<br/>設計規格"]
  D --> E["CSP-001~005<br/>程式規範"]
  E --> F["backend / frontend<br/>程式碼"]
  F --> G["TRR-001<br/>單元測試報告"]
  G --> H["BRD-004<br/>POC 驗收情境"]
  H --> I["GOV-004<br/>RTM 三向追溯"]

追溯規則:任一 FR 必須能回答四個問題——
① 由哪個服務承作?② 在哪份設計文件被定義?③ 由哪支 API 實作?④ 由哪個測試案例驗證?
答不出來的需求,不得進入程式撰寫階段。


8. 修訂記錄

版本 日期 修訂者 說明
1.2 2026-09-30 WorkBuddy AI §6.9 證據清冊更正(HANDOVER #A-105)——⚠️ 原表僅列 3 組 10 張,與 docs/08-evidence/ 實有 40 張(19 組)不符(違反本節要求 4「版本隨規格」)。本版改列組別彙總 19 列,並明訂逐張索引以 docs/08-evidence/README.md 為準(該索引亦已於同日重建)。併載教訓:證據「產出時」即須同輪更新索引,不得事後補(本目錄曾累積 30 張未登錄)
1.0 2026-09-17 PM 初版
1.1 2026-09-20 WorkBuddy AI 將 docs/08-evidence/ 正式納入交付物管制(BEAM PMO 2026-09-20 裁定「要,且要有系統性管理」):①§2 補全目錄結構——原只列至 05-test/,實物已另有 05-change-requests/06-test/07-scs/08-evidence(文件與實物不符);②新增 §3.4 證據檔命名規範(<來源>-<NN>-<簡述>,2 碼流水不跳號,簡述須能直接看出結論);③新增 §6.9 實測證據類,載明 10 張現有證據之對應規格與證明結論,並立五項管理要求:索引必備(無索引視同未納管)/一證一結論/禁含個資/版本隨規格(行為改變須重截)/命名依 §3.4

8. 本規範之檢查方式

檢查項 方法 通過標準
檔名合規 以正則掃描 docs/**/*.md 100% 符合 <TYPE>-<NNN>_<標題>.md
編號連續 同 TYPE 之 NNN 排序 由 001 起連續、無跳號
文件表頭 檢查每份文件首個表格含 6 個必要欄位 100% 具備
Mermaid 語法 逐區塊解析 0 語法錯誤
禁止字樣 掃描檔名 0 筆
(11-11/67)