跳轉到

流程

本檔角色:所有流程的索引 + 各模組流程圖連結 + 圖表工具。 個別流程詳細內容在 流程/ 子資料夾內各自獨立檔案;本檔不重複內容。

1. 流程索引

流程 檔案 主題
玩家整體旅程 流程/玩家整體旅程.md 從首次連線到回頭組裝的完整旅程
UGC 上傳 流程/UGC上傳.md 上傳 / 編輯 / 送出(本機測試 / 上鏈)三階段
配對 流程/配對.md TrueSkill 配對 + 握手 + 倒數
比賽進行 流程/比賽進行.md Rollback + 回合唯一共識錨
比賽結算 流程/比賽結算.md 名次 / 鑄幣 / 分潤 / 信譽 / TrueSkill
衍生(Fork) 流程/衍生.md Fork 樹 + 三層分潤 + 反複製檢查
信譽變動 流程/信譽變動.md 信譽 delta derive 到 DerivedState(無獨立事件)
檢舉與仲裁 流程/檢舉與仲裁.md 一般檢舉(非 DMCA)的仲裁流程
DMCA 版權通報 流程/DMCA.md Provider-scoped Notice / Counter-Notice / 下架與恢復(不上鏈、零信譽足跡)
治理事件 流程/治理事件.md economy-config 治理多簽變更
升版 流程/升版.md CI build → GitHub Pages → Service Worker
觀戰 流程/觀戰.md 主動觀戰 + 淘汰自動轉觀戰

2. 各模組流程圖索引

mermaid 流程圖按性質分流:程式/技術流程圖由下表自 13 份 impl-flow frontmatter 與固定表頭投影;業務/治理/遊戲流程位於對應 流程/*.md

模組 Implementation authority 技術流程圖 產品 canon/流程
anti-piracy/ 程式架構/anti-piracy.md 程式架構/程式流程/anti-piracy.md 版權 · 檢舉與仲裁
chat-system/ 程式架構/chat-system.md 程式架構/程式流程/chat-system.md 賽內機制 · 配對
i18n/ 程式架構/i18n.md 程式架構/程式流程/i18n.md 語系清單
ledger/ 程式架構/ledger.md 程式架構/程式流程/ledger.md 資料系統 · 比賽結算
matchmaking/ 程式架構/matchmaking.md 程式架構/程式流程/matchmaking.md 配對 · 比賽結算
network-sync/ 程式架構/network-sync.md 程式架構/程式流程/network-sync.md 比賽進行
peer-discovery/ 程式架構/peer-discovery.md 程式架構/程式流程/peer-discovery.md 配對
pwa-offline/ 程式架構/pwa-offline.md 程式架構/程式流程/pwa-offline.md 玩家整體旅程 · 遊戲機制
signaling-service/ 程式架構/signaling-service.md 程式架構/程式流程/signaling-service.md 配對 · 資安規範
spectator/ 程式架構/spectator.md 程式架構/程式流程/spectator.md 觀戰
testing/ 程式架構/testing.md 程式架構/程式流程/testing.md 程式架構 · 升版
ugc-fork/ 程式架構/ugc-fork.md 程式架構/程式流程/ugc-fork.md UGC 機制 · 衍生
versioning/ 程式架構/versioning.md 程式架構/程式流程/versioning.md 版本規範 · 升版

3. 圖表工具與風格規範

全 corpus 圖表一律用 mermaid(in markdown ```mermaid block,GitHub 自動渲染);本地 preview 可用 VS Code Mermaid 擴充或 JetBrains Markdown Mermaid。提交前以 pnpm check:mermaid 驗證圖表語法,並以 pnpm docs:build 驗證完整文件輸出。

方向與規模規則:深流程、依賴鏈與狀態推進優先使用 TDTB;只有節點確實需要橫向比較時才用 LR。手寫圖超過 30 nodes 或 50 edges 必須拆圖,且不能省略例外或跨圖關係;生成圖由 generate-docs.mjs 使用同一門檻決定性拆分,跨頁邊另列完整可連結表。Markdown fence 與圖內容必須維持 GitHub 原生渲染可讀,不得依賴本站 dialog 才能理解。

3.1 圖型對應

流程性質 圖型
線性管線(觸發 → 處理 → 寫入) flowchart TD
多方訊息往返(握手、多簽、仲裁投票) sequenceDiagram
狀態機(生命週期、狀態遷移) stateDiagram-v2

3.2 flowchart 樣板

首行 init + 結尾 classDef 全 corpus 統一,複製即用:

%%{init: {"theme":"base","themeVariables":{"fontSize":"14px","primaryTextColor":"#1f2937","lineColor":"#64748b"},"flowchart":{"curve":"basis"}}}%%
flowchart TD
    %% …節點與邊…
    %% subgraph 分執行層(虛線透明框):
    %% style SG1 fill:transparent,stroke:#b9c4d2,stroke-dasharray:4 3
    classDef local fill:#e8f3ec,stroke:#3f8f5f,stroke-width:1.4px,color:#173525;
    classDef consensus fill:#fdf3df,stroke:#c08a2d,stroke-width:1.4px,color:#3d2c0d;
    classDef chain fill:#e7eefb,stroke:#3f6bb0,stroke-width:1.4px,color:#152848;
    classDef fail fill:#fae9e7,stroke:#b4544a,stroke-width:1.4px,color:#471d18;
    classDef ui fill:#efeafa,stroke:#7a5cb8,stroke-width:1.4px,color:#2b1d4d;

色彩語意(五類固定,個別圖用到哪幾類就掛哪幾類):

class 語意
local 本地/單端動作
consensus 多方協調(共識、多簽、仲裁、投票、握手)
chain 帳本/上鏈/全網效果
fail 中止/拒絕/降級路徑
ui 呈現/使用者介面

形狀語意([…]) 觸發 / 事件、[…] 處理、{…} 決策(分支邊必標 |"是"||"否"| 或條件)、[(…)] 帳本 / 資料寫入。

3.3 sequenceDiagram 樣板

%%{init: {"theme":"base","themeVariables":{"fontSize":"13px","primaryTextColor":"#1f2937","lineColor":"#64748b","actorBorder":"#3f6bb0","actorBkg":"#e7eefb","noteBkgColor":"#fdf3df","noteBorderColor":"#c08a2d"}}}%%
sequenceDiagram
    autonumber
    box rgb(232,243,236) 發起方群組
    box rgb(231,238,251) 帳本/服務群組
    box rgb(253,243,223) 全網/第三方群組

box 三色與 flowchart 色彩語意對齊(綠 = 本地 / 發起、藍 = 帳本 / 服務、黃 = 多方 / 全網);分支用 altopt,異常敘述收進 NotestateDiagram-v2 沿用 flowchart 的 init(fontSize 14)。

3.4 紀律

  • 圖是骨架、文字是權威:公式、參數、門檻值、§ 引用不進節點標籤;規範細節放圖下方「步驟細目」清單或既有章節,嚴禁圖文兩份規範文字。
  • § 引用一律寫成連結[§N.M](路徑.md#錨點)(同檔用 [§N](#錨點));歷史記錄依歷史快照語意豁免,重編號斷引由連結檢查看守。
  • 節點標籤 ≤ 2 行(<br/> 斷行)、保持短;細節一律下沉。
  • GitHub 相容紅線:只用廣泛支援語法——禁 fa: 圖示(emoji 可、節制)、不用 ELK 佈局、顏色以 classDef 明示不依賴主題深淺。

4. 命名約定

對象 命名
流程檔 使用語意名稱 <中文名>.md(如 配對.md衍生.md),父層已表達「流程」
Fork → 衍生 一致使用「衍生」
DMCA 保留 DMCA(法律術語)
UGC 保留 UGC(公認術語)

5. 新增流程的程序

加新流程:

  1. 流程/ 內新增 <中文名>.md
  2. 在本檔 §1 索引加一行
  3. 玩家整體旅程.md §2 對應節點加引用
  4. 補 cross-reference 到其他相關流程檔