← 返回索引

SKILL-022 — QA 測項展開工具

讀取規格書展開測試項目,支援多遊戲 ref 架構

最後更新:2026-08-31 | 1600 行

v1.4

📦 一鍵下載部署包 (022+023)

下載這份部署包,即可一鍵還原/設定「QA 測項展開系統」的兩個協作機器人(含 SKILL-022 測項展開 + SKILL-023 規格書轉 MD 的完整規則)。

⬇️ 前往下載部署包 v1.5

📗 使用者指南 📦 部署包使用說明

包內含 7 個檔案:主 SOP(規則 1~24)、Phase1 轉 MD 規範、A8/A9 用語對照、schema、部署包使用說明、使用者指南 v5。

SKILL-022 — QA 測項展開工具

將 QA 規格書(.xlsx)的指定規格行展開為測試項目,產出 A0 格式的 Excel / Google Sheet 測試項目檔。

⛔ 核心紀律(絕對不可違反)

以下規則優先於所有其他規則。違反任何一條 = 產出無效。

  1. 忠於規格 — 規格列幾個就展幾個,不合併、不發明、不省略
  2. 不確定必標記 — 推測標灰色[?],無法推測標紅[待確認],禁止偽裝確定
  3. 三步缺一不可 — 確認後必做:測項 Sheet + ref 更新 + 規格書補充欄
  4. UI 文案原文不動 — 引號內禁止繁簡轉換
  5. 步驟白話可執行 — 看一遍就知道做什麼,預期結果必須具體可驗證
  6. 禁止概括用詞 — 禁止「正常」「正確」「沒問題」「等」「相關」
  7. 連結即時驗證 — 禁止憑記憶填 Row 號,必須當下搜尋確認
  8. 隱藏行掃描不可跳過 — Step B 必做,禁止只用 values.get 就展開
  9. 展開粒度 — 有子功能的章節至少 3 條測項,只展 1 條「標題顯示」= 未完成
  10. 標示不可錯 — ✅=白底黑字+規格出處;🟡=黃底+[推測]紅字+⚠️備註+選項行;🔴=[待確認]紅字;違反 = 產出無效
  11. 確認後必做四件事 — 用戶確認 🟡 後:預期結果加綠色「已確認」+ 備註加綠色確認日期 + 背景改白 + 原規格書補記錄,缺一不可

概述

本技能將使用者指定的 .xlsx 規格書指定行,展開為符合 A0 範本格式的測試項目,輸出帶有正確樣式的檔案。所有遊戲專屬資料(硬體清單、操控用語、數量基準)均由獨立的 ref 檔案提供,主文不包含任何遊戲專屬硬體名稱。

觸發關鍵字: 「展開測項」「把規格展開成測試項目」「產出 Excel 格式」「請把 XXX 規格書第 YY 項展開測項」

適用範圍: 後台規格書、操作員選單規格、跨屏規格書、流程規格等任何 .xlsx 格式規格書。

模式判斷邏輯

收到請求 → 有 ref 嗎?
├── 沒有 → 模式 A(首次建立)
└── 有 → 版本一致嗎?
      ├── 一致 → 模式 B(日常展開)
      └── 不一致 → 模式 A'(更新 ref)

一步到位使用流程

用戶只需要做:

  1. 貼規格書連結
  2. 說「展開測項」
  3. 選章節(或說「全部」)

Bot 自動做:

預設行為

Mode A模式 A:首次建立 ref

當目標遊戲尚無對應的 ref 檔案時,執行此流程。

A-1:確認可用資料來源

A-2:有無相似機台可參考?

A-3:上傳規格書/手冊

用戶提供規格資料,Bot 接收並解析。

A-4:提取硬體清單 + 格式辨識

Bot 從資料中提取:

A-5:差異比對(若為複製)

如果是從其他 ref 複製的,列出和原 ref 的差異讓用戶確認:

A-6:用戶確認硬體清單

用戶逐項確認提取結果是否正確。

A-7:產出 ref 檔案

產出 SKILL-022-{機台代號}-ref.md,標注信心等級:

信心等級來源
🟢 高實機確認
🟡 中手冊/規格書
🔴 低口述/推測

A-8:冒煙測試

立刻試展 2~3 項規格,確認 ref 可正常使用。若有問題回到 A-6 修正。

Mode A'模式 A':更新 ref

觸發條件: 用戶規格版本 ≠ ref 中記載的版本

A'-1:自動比對

比對新規格 vs 現有 ref,列出差異清單。

A'-2:用戶確認

用戶確認哪些是:

A'-3:更新 ref

更新 ref 檔案,保留版本紀錄(在「資料來源」區塊記錄更新歷程)。

A'-4:回到模式 B

ref 更新完成後,正常執行日常展開。

Mode B模式 B:日常展開

1B-1:用戶指定遊戲與範圍

必填:

選填:

有選填資訊 → 自動調整優先度 + 新增迴歸測項。

2B-2:載入 ref 並確認

Bot 載入對應 ref 檔,回報:

已載入 [{遊戲代號} v{版本}],確認?

用戶確認後繼續。若版本不一致,轉入模式 A'。

3B-3:列出章節清單(強制勾選)

Bot 列出該 ref 中的章節清單讓用戶勾選要展開的範圍。

⚠️ 不接受自由輸入。 必須從清單中選擇。
⚠️ 若用戶說「全部」,需二次確認: 「確定要全部展開嗎?包含 XX 項。」

4B-4:讀取規格

使用 scripts/read_spec.py 讀取指定頁籤指定行:

python3 scripts/read_spec.py "<規格書路徑>" --sheet "<頁籤名>" --rows "65,66,100-110"
⚠️ 必須先執行結構掃描 + 隱藏行/灰色掃描(防止缺漏):

Step A:讀取內容

  1. 用 spreadsheets.values.get(range="'{頁籤名}'") 讀取整份頁籤 — 不帶欄位/行數限制

Step B:掃描隱藏行和灰色行(必做,不可跳過)

  1. 用 spreadsheets.get(includeGridData=True) 取得格式資訊
  2. 掃描 rowMetadata 找出所有隱藏行(hiddenByUser / hiddenByFilter)
  3. 掃描 effectiveFormat.backgroundColor 找出所有灰色背景行
  4. 建立「隱藏行清單」和「灰色行清單」

Step C:建立章節目錄

  1. 從非隱藏行中提取所有章節標題(不管在哪一欄)
  2. 建立完整章節目錄清單
  3. 回報用戶:「本頁籤共 N 個章節:[清單],是否全部展開?」
  4. 如有隱藏行,同時回報:「⚠️ 偵測到 X 個隱藏行,已排除不展開。」

Step D:展開

  1. 用戶確認範圍後才開始逐章節展開
  2. 展開時:隱藏行的內容 → 放到 ⏭️ 跳過區;灰色行的內容 → 標 [灰色規格]
  3. 展開完後比對:展開測項涵蓋的章節數 = 目錄中的章節數,有落差就報錯
⚠️ Step B 不可跳過。每次展開都必須執行隱藏行掃描。
⚠️ 禁止只用 values.get 就開始展開(它讀不出隱藏狀態)。
⚠️ 禁止自行限制讀取範圍(如 A1:Z500)。一律讀整份頁籤。

讀出後辨識:

4B-4.5:規格判讀 Checklist

讀取規格後,逐項檢查以下要素:

🔴 必要(缺少就不能展開,停下來請用戶補充)

🟡 建議有(沒有只能展基本驗證,標 [規格不完整])

🟢 加分(提高品質)

⚙️ 自動帶入(不需規格提供)

判讀結果:

⚠️ 不管規格完不完整都要展開測試項目,不可以跳過不開。 缺的地方用標記告訴用戶需要補什麼。

5B-5:展開測項

設計原則:

⚠️ 展開紀律(最重要規則):

只展開規格書中有寫到的內容。規格沒寫的不要自己加測試項目。

禁止:

禁止合併/濃縮規格項目

規格書列出的選單項目、子項目、測試項目,必須完整逐一列出。

禁止:

規則:規格列幾個就寫幾個,一個不多一個不少。

粗略/詳細判斷規則:

規格詳細程度判斷標準展開方式
粗略只有功能名稱,沒有設定值範圍/步驟說明/預期結果展開 1 項基本驗證
詳細有具體設定值、操作步驟、預期行為描述展開正常 + 最大最小值(2~3 項)

操控用語替換規則:

6B-6:自動驗證

驗證項目方式
數量驗證ref 中子項目數 vs 展開數,有落差則列出具體漏哪個
用語驗證確認鍵名稱是否正確,掃描 ref 中「禁用詞」欄位
漏項檢查比對 ref 清單和展開結果,有落差問用戶「刻意跳過還是補上?」
BAR 提示文案測項中的選單操作提示須與 ref 中定義的確認鍵一致

7B-7:產出到 Google Sheet

Sheet 產出規則:

情境行為
第一次展開這個章節建新分頁,名稱 = 「{遊戲} {章節名}測試」
同章節分批展開(如先做 5 項確認,再做剩下 5 項)追加到同一分頁,依原規格順序排列,不開第二個分頁
同章節完全重新展開問用戶:「已有舊的,要覆蓋還是追加?」
多章節一起展開每章節各自一個分頁
不確定時直接問用戶「要追加到現有分頁還是開新的?」
⚠️ 核心原則:同一個測試項目章節只有一個分頁,避免同一測項開好幾個分頁。

亦可使用 scripts/write_excel.py 輸出本地 Excel:

python3 scripts/write_excel.py items.json 輸出路徑.xlsx --format standard

8B-8:用戶確認(必要步驟)

⚠️ 不可跳過。 告知用戶:

展開完成回覆格式:

📊 本次展開:{N} 項 | ✅ 可直接測試:{X} 項 | 🟡 需確認後可測:{Y} 項 | 🔴 無法測試:{Z} 項

✅ 已展開 {遊戲代號} {章節名} {N} 項。

🟡 以下 Y 項有推測值 [?],請確認:
- #{編號} {項目名}:{推測內容摘要}

🔴 以下 Z 項缺關鍵資訊 [待確認],需要你提供:
- #{編號} {項目名}:{需要什麼資訊}

對的就刪 [?],錯的改掉,缺的補上。改好跟我說「改好了」。

如全部為 ✅,則只顯示第一行統計 + 第二行。

規格判讀 Checklist(快速參照)

等級要素對應欄位缺少時的行為
🔴 必要功能/項目名稱項目停下來問用戶
🔴 必要操作步驟或觸發方式步驟停下來問用戶
🔴 必要預期結果/正確行為預期結果停下來問用戶
🟡 建議設定值範圍步驟+預期結果只展基本驗證,標 [規格不完整]
🟡 建議預設值預期結果無法展恢復測試
🟡 建議限制/例外步驟+預期結果無法展異常案例
🟢 加分UI 截圖—正常展開
🟢 加分編號/層級備註正常展開
🟢 加分版本/區域標記備註正常展開

測試目的生成規則

測試類型模板範例
基本驗證「驗證 {項目名} 操作後 {預期結果} 正確」驗證音量設定調整後數值正確更新
最大最小值測試「驗證 {項目名} 設定到最大值({max})和最小值({min})時能正常運作」驗證群組編號設定到最大值(99)和最小值(0)時能正常運作
異常測試「驗證 {項目名} 在 {例外情境} 時正確處理」驗證網路斷線時版本更新正確處理
恢復測試「驗證 {項目名} 恢復預設後回到 {預設值}」驗證音量設定恢復預設後回到 50%
⚠️ 禁止寫法:

✅ 正確寫法:

Bot 根據規格內容自動選擇模板,填入對應欄位值。

優先度預設規則

優先度適用項目
高投幣/金流、連線、安全裝置、動感平台啟停
中遊戲設定、音量、燈光、I/O 基本功能
低外觀、資訊顯示、版本號確認

自動調整邏輯:

防範常見錯誤

錯誤類型防範方式
給錯版本規格書B-4 強制確認版本號/日期
說「全部展開」B-3 列清單勾選,「全部」需二次確認
展開後不看直接用B-8 用戶確認為必要步驟,不可跳過
手動改了 Sheet 沒更新 ref提醒「是否同步更新 ref?」
混用不同遊戲 refB-2 載入後強制回報確認
用語混用(複製忘改)B-6 自動掃描禁用詞
規格讀取截斷(漏章節)B-4 用 API 讀整份頁籤(不限制欄位/行數範圍),禁止自行限制如 A1:Z500
引用隱藏行內容B-4 Step B 必須用 includeGridData=True 掃描隱藏行,每次都做不可跳過
規格有寫卻標 [?]展開紀律:規格書有寫的內容一律 ✅,[?] 只用於規格完全沒提到的推測
推測混入確定結果展開紀律:推測一律灰色「推測:XXX」+ 選項行,不可混入黑色預期結果
自行濃縮規格項目禁止合併/濃縮:規格列幾個就寫幾個,一個不多一個不少
預期結果硬寫數量禁止寫 Bot 自己數的數字,改用列舉所有項目名(見下方規則)

展開前防呆

  1. 權限檢查:展開前先測試 Sheet 寫入權限,失敗就提醒用戶授權
  2. 偵測確認:偵測遊戲/語言後一律確認一句(不自動跳過)
  3. 分批展開:超過 50 項分批處理(每批最多 50 項),完成一批再下一批
  4. 分頁重複檢查:建分頁前檢查同名是否已存在,已有就問「覆蓋還是追加?」
  5. 模式 A 確認:建 ref 後必須用戶確認才繼續展開

項目清單列舉規則(禁止硬寫數量)

預期結果中涉及「項目清單」時:

禁止:

正確:

✅ 由上而下顯示以下項目:
『投币设定』
『彩票設定』
『音量设定』
『离开』

唯一例外: 規格書明確定義的數字可以用(如「最多支援 4 台連線」= 規格寫的值,不是 Bot 數的)

流程保障:

  1. qa-sheet-worker 從規格書讀取完整項目清單(排除隱藏/已移除)
  2. qa-test-expander 直接抄錄到預期結果(不自己數)
  3. Self-Check 比對:預期結果中的項目名 = 摘要中的清單

格式不明的 fallback

當規格格式無法辨識(截圖標注型/散落多份文件/非結構化):

  1. 先提取所有可辨識的選單項目名稱
  2. 逐項詢問用戶「這個項目的子選單/設定值有哪些?」
  3. 逐步建構結構化 ref
  4. 建構完成後回到模式 B

多區域版本處理

以最完整版本為 ref 基準(通常 CN 或 FA),差異用標記:

標記意義
[CN-only]僅中國版有
[not-in-TW]台灣版沒有
[FA-only]僅外銷版(Foreign Area)有
[not-in-FA]外銷版沒有

展開粒度規則

最低標準

一個有子功能的章節必須至少展開以下層級:

禁止

判斷方式

情境對照表

情境展開方式
連線組合測試(機台A × n + 機台B × m)每個有效組合 = 1 條測項
動感平台各方向測試每個方向 = 1 條測項(不合併)
燈光測試各燈項每個燈項 = 1 條測項
音量各子項(總音量/待機/選單...)合併為 1 條,步驟中逐一列出
I/O 各按鍵合併為 1 條,預期結果中列出全部項目
版號各子項(M/G/T/L/N)每個版號 = 1 條測項

分批展開限制

Context 監控

例外處理

情境處理方式
測項同時提到兩台機器(如連線測試)標記 [共用],步驟中明確列出各機台的操作
ref 中找不到對應用語(新功能/新硬體)保留原文,備註加「[待確認用語]」
用語替換後語句不通順人工微調,但不改變測試意圖
規格書中已標記機台專屬直接採用規格書標記
不確定某功能是否共用標記 [待確認],不猜測

機台標記規則

備註欄中加入以下標記之一:

標記條件
[{遊戲代號}專用]僅適用該機台的功能(如獨有硬體)
[共用]所有機台操作步驟和預期結果完全相同

判斷邏輯:

輸出格式

standard 格式(11 欄)

欄位填寫方式
編號狀態標記 + 兩位數字(✅ 01、🟡 02、🔴 03)
類別規格所在頁籤名或功能模組名
項目簡短功能描述(不超過 3 行)
測試目的「驗證…」開頭,1 句話(依測試目的生成規則)
步驟編號列表:1. xxx / 2. xxx / 3. xxx
預期結果編號列表,每條對應一個可觀察結果。直接寫「最大值/最小值」+ 具體會發生什麼,不寫「邊界值」
執行人員空白
測試結果空白
測試日期空白
備註(規格參照)HYPERLINK 超連結:規格書名─頁籤名規格第X項 [機台標記](點擊跳轉規格書)+ 換行接推測依據(如有)
優先度依優先度預設規則自動帶入,用戶可覆寫

cutscene 格式(12 欄)

同上,但「備註(規格參照)」拆成兩欄:備註(J)+ 規格參照(K,HYPERLINK)+ 優先度(L)

預期結果寫法:

原則:不寫「邊界值」,直接寫「最大值/最小值」+ 具體會發生什麼。

格式選擇

備註欄位格式範例

=HYPERLINK("https://docs.google.com/spreadsheets/d/{ID}/edit#gid={GID}&range=A68", "後台規格書─機台選單設置規格第68、69項 [共用]") & CHAR(10) & "(0518新增─篩選欄位連線版本捲軸小視窗)"
=HYPERLINK("https://docs.google.com/spreadsheets/d/{ID}/edit#gid={GID}&range=A333", "操作員選單規格─系統設定規格第333~343項 [A9+專用]") & CHAR(10) & "(2026/5/22新增─超過最大連線數錯誤訊息觸發條件)"

顯示效果:

常見規格書與頁籤

規格書常用頁籤
A8A9Plus_後台規格書.xlsx操作須知、機台營收、機台選單設置、玩家數據
A9_PLUS操作員選單規格.xlsx系统设定、联机测试页
A8A9Plus_跨屏&PV規格書.xlsx跨屏需求規格、A9+跨屏Cutscene驗證表單
彩票相關規則.xlsx詳細規格、彩票UI規格
A9++++流程.xlsxIngame

涉及腳本與機器人

腳本

腳本用途
scripts/read_spec.py讀取 .xlsx 規格書指定頁籤/行
scripts/write_excel.py產出帶樣式的 A0 格式 Excel

機器人(2 Agent 協作架構)

機器人角色
qa-test-expander(主腦)展開決策 + 生成測項 + 標記 + 白話化 + Self-Check + 修正 + 回報用戶
qa-sheet-worker(讀寫工)讀取規格書 + 寫入 Sheet + 格式化 + 連結驗證 + 補充欄寫入

協作流程

用戶 → qa-test-expander:「展開 XX 章節」
qa-test-expander → qa-sheet-worker:「讀取規格書,回傳結構化摘要」
qa-sheet-worker → qa-test-expander:{ 子項清單, 規格內容, 隱藏行, Row }
qa-test-expander:生成測項 + Self-Check
qa-test-expander → qa-sheet-worker:「寫入測項 + 格式化 + 連結驗證」
qa-sheet-worker → qa-test-expander:「完成」
qa-test-expander → 用戶:回報結果

分工原則

CN/FA 版本必問規則

展開時如果規格書有 CN 和 FA 兩個版本的文案,必須先問用戶:

「這次要展開 CN(簡體)的測試項目還是 FA(英文)的?或是兩個都要分開展?」

禁止

如果兩個都要

標記系統

兩種標記

標記顏色意思用戶要做什麼
[?]橘色AI 有推測值,可能對看一下,對就刪 [?],錯就改
[待確認]紅色完全不知道,AI 無法推測你要自己填答案
⚠️ [?] 使用條件(嚴格遵守):

三種狀態

狀態編號前標記意思
✅可直接測試規格完整,所有欄位確定
🟡需確認後可測有 [?] 推測值,確認 yes/no 就能測
🔴無法測試關鍵資訊全缺,需提供規格才能測

頂部 Summary 統計行

每次展開後,在 Sheet 最上方顯示:

📊 本次展開:X 項 | ✅ 可直接測試:X 項 | 🟡 需確認後可測:X 項 | 🔴 無法測試:X 項

用戶確認後 AI 同步更新此統計。

精簡原則

[?] 寫法範例

預期結果:
1. 能量集滿後觸發升級動畫
2. 顯示升級球演出
3. 上屏顯示「LEVEL UP / POWER UP」
4. 角色頭旁顯示「LEVEL UP / POWER UP」提示,LV 等級即時 +1
   [?] 升級後攻擊力是否提升?
   (沒問題請填 OK:_______ / 有問題請描述:_______)

[待確認] 寫法範例(🔴 紅色項目)

步驟:
[待確認] 需要提供:版面設計稿(PNG)的具體內容
(請將此段刪除,替換為已知規格,完成後回報「改好了」)

預期結果:
[待確認] 需要提供:各 UI 元素的排版位置、對齊規則
(請將此段刪除,替換為已知規格,完成後回報「改好了」)

規則:

格式規則

項目格式
✅ 行全黑字,白色背景;編號欄 = HYPERLINK(點擊跳規格書)
🟡 行整行黃色背景;[?] 橘色字體;編號欄 = HYPERLINK(點擊跳規格書);備註欄加強橘黃色背景
🔴 行[待確認] 紅色字體,備註橘色背景;編號欄 = HYPERLINK(點擊跳規格書)
Summary 行淡灰色背景
確認後[?] / [待確認] → 綠色 ✅ 已確認

所有行的編號欄一律是超連結(=HYPERLINK(URL, "✅ XX") 或 =HYPERLINK(URL, "🟡 XX")),點擊跳到規格書對應位置。

🟡 行額外重點:

用戶修改判讀規則

Bot 讀取用戶在 Sheet 上的修改時,判斷邏輯:

[?] 標記的判讀:

用戶動作Bot 判讀
刪了 [?] 沒改內容= 推測正確,已確認
改了 [?] 後面的值= 確認為新值
[?] 完全沒動= 仍為推測,不處理

[待確認] 標記的判讀:

用戶寫的Bot 判讀
正確 / OK / 對 / 是 / ✓= 推測正確,已確認
沒有 / 不會 / 無= 確認為否定
具體數值(如「0~128~255」)= 確認為該值
選了 A/B/C 其中一個= 確認為該選項
多個選項都回答了= 全部確認
[待確認] 完全沒被動過= 仍未確認,不處理
只刪了 [待確認] 但沒寫答案= 意圖不明,詢問用戶

✅ 項目事後修正

展開後全部是 ✅ 的項目,用戶事後發現問題(描述不精確、規格有誤等):

流程(和 🟡🔴 相同):

  1. 用戶直接在 Sheet 改內容
  2. 到頻道說「改好了」
  3. Bot 比對差異 → 列出哪些改了:「偵測到 #03, #07 有修改」
  4. 用戶確認
  5. Bot 更新 ref + 規格書補充欄記錄「[用戶修正 YYYY-MM-DD] 原值→新值」

不分 🟡🔴✅,統一走「改好了」→ Bot 比對 → 確認 → 更新。

備註: ✅ 被改的項目,補充欄記錄「[用戶修正 日期]」(不是 [AI修改])。

確認後格式修正

項目修正前修正後
[?] 推測值🟡 [?] 橘色字✅ 已確認:{正確值}(黑色字體)
[待確認]🔴 紅色字✅ 已確認:{正確值}(黑色字體)
備註欄🟠 推測依據...🟢 超連結(去掉 [規格不完整] 標記)
行背景黃色/紅色白色

確認後必須同步完成以下 3 件事(缺一不可):

□ 測項 Sheet 改了嗎?(格式改正、去色、編號改 ✅)
□ ref 更新了嗎?(有 ref 的情況下)
□ 規格書補充欄寫了嗎?← 最容易忘的

三個都打勾才能回覆「已完成」。

格式修正技術注意事項:

  1. 先完成所有 cell 值的寫入
  2. 最後一步統一重新套用所有需要紅色粗體的 textFormatRuns
  3. 不要假設之前設的格式還在(Google Sheets API 重寫 cell 值時會清除同行的 textFormatRuns)
  4. 確認完的項目字體必須改回黑色(不能留紅色)
  5. 修改完畢後,檢查未修改的 🟡 項目的紅色格式是否還在,如果消失要重新套用

部分確認處理

當同一格中有多個 [?] 或 [待確認],用戶只回答了部分:

規格連結欄位

規格連結直接嵌入備註欄,不另開獨立欄位。

備註欄超連結格式

定位驗證流程(⚠️ 強制執行,每一條連結都必須做,不可跳過)

禁止憑記憶/印象/ref 填 Row 號。每一條規格連結都必須即時搜尋驗證。

  1. 用關鍵字(項目名稱/章節標題)在可見行中搜尋目標內容的確切 Row
  2. 組合 URL(Sheet ID + gid + range=A{Row})
  3. 驗證:讀取該 Row 確認內容和預期一致
  4. 不一致 → 重新搜尋正確位置
  5. 真的找不到 → 標記 [連結待確認]

絕對禁止:

⚠️ 重要

白話用語規則

所有面向使用者的文字(測試目的、預期結果、對話回覆)禁止使用以下專業術語,統一用白話替代:

❌ 禁用✅ 白話替代
邊界值測試最大值/最小值測試
邊界條件設定到最大或最小時
超出邊界超過允許範圍
邊界行為超過限制時的反應
sanity check基本正確性確認

此規則適用於:

繁簡體規則(方案 C)

原則

文案引用優先序

  1. 「其他文案」區列出的 → 直接用(最準確)
  2. 規格書正文中出現的選單名 → 用原文
  3. 兩者不一致 → 標 [?] 請用戶確認以哪個為準

多版本注意

範例

✅ 確認標題顯示『声音测试』/ Sound Test
✅ 進入『I/O按键测试』頁面,確認所有按鍵可觸發
❌ 進入「I/O按鍵測試」頁面(擅自轉繁體)

步驟與預期結果白話化規則

所有步驟和預期結果必須用白話易懂的方式撰寫,但不可脫離原始規格內容。

原則

步驟白話化

❌ 不好✅ 白話
觀察進度條各節點觀察進度條上的 8 個節點圖案,特別注意第 5 個和第 8 個
累積能量到 100%持續打倒敵人,等能量條集滿
使用攻擊鈕後等待 CD 完成按一下攻擊鈕後等大約 1 秒(CD 結束)
觸發操作提示等待操作提示出現(20 秒不按按鈕)
投幣接關復活讓角色死亡後投幣接關

預期結果白話化

❌ 不好✅ 白話
以打倒淨化小怪的數量累積每打倒一隻小怪,進度條就會往前推進一點
累積到指定數量推進到下一波推進到滿的時候,進入下一波
CD 中狀態:壓暗/按鈕凹下去的光影冷卻中 → ICON 壓暗,看起來像按鈕凹下去
有持續時間護盾有時間限制
時間快到時整條閃爍快要消失前 → 整條護盾開始閃爍提醒

注意事項

用戶確認後的更新流程(方案 C)

修正寫回 ref,不動規格書原始欄位。

流程

  1. 用戶在測項 Sheet 修改 [待確認] 為正確值
  2. 用戶跟 Bot 說「改好了」(或下次展開同章節時 Bot 自動比對發現差異)
  3. Bot 讀取修改內容 → 判讀用戶意圖(見用戶修改判讀規則)
  4. Bot 修正 Sheet 格式(去掉紅色、加 ✅ 綠色)
  5. Bot 更新 ref 檔案(下次展開自動用新值)
  6. Bot 在規格書「測試補充(AI 修改)」欄寫入確認結果

不動規格書原始欄位的原因

自動比對觸發

下次展開同一章節時,Bot 自動比對 Sheet vs ref:

用戶回報觸發機制

三層觸發(不重複)

觸發行為時機
用戶說「改好了」立即讀取 → 列出哪些改了/哪些還沒 → 確認後更新即時
下次展開同遊戲時自動比對 Sheet vs ref → 發現差異就問「要更新嗎?」被動
7 天沒回報溫和提醒:「{分頁名} 還有 {N} 個待確認項目,有空時填寫後回報即可。」定時
30 天仍沒回報最後一次提醒,之後不再打擾定時

去重規則

「改好了」回報後的確認流程

Bot 讀取修改後必須回報:

偵測到 Row X, Y, Z 有修改 ✅
Row A, B 仍為 [待確認]。
→ 剩下的是還沒確認?還是確認後維持原值?

用戶回覆後才執行更新(避免「以為全改了但其實漏了」)。

Sheet 提示語

在展開結果的 Summary 行下方加一行(灰色小字):

💡 填寫完 🟡🔴 項目後,到頻道回報「改好了」,AI 會自動整理格式並更新。

規格書補充欄規則

在規格書最右邊加一欄「測試補充(AI 修改)」:

自動品質檢查(展開後自動執行)

以下檢查在每次展開完成後由 Bot 自動執行,不需要用戶操作:

1. Self-Review Pass(自我覆查)

展開完後逐條檢查:

2. 矛盾偵測(Contradiction Check)

3. Sanity Check 清單

4. 步驟句型規範

所有步驟必須用以下句型:

禁止:

步驟引用規則

5. 差異警報(跨次展開比對)

如果同一章節之前已展開過(Sheet 中有舊測項):

品質報告

所有檢查完成後,在回覆中附上:

🔍 品質檢查:
  Self-Review: ✅ 通過
  矛盾偵測: ✅ 無矛盾
  Sanity Check: ✅ 全通過
  句型規範: ✅ 符合
  定位驗證: ✅ 每條連結已即時搜尋確認
  隱藏行掃描: ✅ 已執行(排除 X 行)
  差異警報: ℹ️ 首次展開(無舊資料比對)

規格連結驗證結果表

品質報告後必須附上完整的規格連結驗證表,包含狀態標記:

| # | 項目 | 驗證 Row | 狀態 |
|---|------|---------|------|
| 01 | XXX | Row XX | ✅ |
| 14 | XXX | Row XX | 🟡 需確認 |
| 20 | XXX | Row XX | 🔴 無法測試 |

每一項都要標出對應狀態(✅/🟡/🔴),不可省略。

如果有任何一項未通過 → 列出具體問題讓用戶知道。

展開完成 Self-Check(強制,不可跳過)

每次展開完成、每次修正完成,回報用戶前必須逐條確認:

【Self-Check】
1. ✓/✗ 規格補充欄全部有值?
2. ✓/✗ 測項數量 ≥ 規格子項數量?(未濃縮)
3. ✓/✗ UI 文案用『』包裹且未轉繁體?
4. ✓/✗ 無概括詞(等/相關/其他)出現在項目名中?
5. ✓/✗ Summary 數字和實際測項數一致?
6. ✓/✗ 每條規格連結已即時搜尋驗證?
7. ✓/✗ 隱藏行已掃描排除?
8. ✓/✗ 每個標題都有 CN + FA 雙語?(規格「其他文案」區有寫的都要帶)
9. ✓/✗ 每個有子功能的章節展開了 ≥ 3 條?(只有 1 條就重檢)

附錄檔案

檔案用途
SKILL-022-{機台代號}-ref.md各遊戲專屬資料

新增遊戲時,執行模式 A 即可自動產出對應 ref 檔。

資料來源版本

資料來源版本/日期
對照表最後更新—2026-08-17
⚠️ 當硬體改版時,需重新驗證 ref 檔案是否過時(觸發模式 A')。

更新歷程

日期版本更新內容
2026-08-211335行新增:核心紀律9條、Self-Check 9條、模糊描述偵測、步驟白話化、繁簡體方案C、行內[待確認]、✅事後修正流程、禁止合併/濃縮、展開粒度規則、分批限制+Context監控、CN/FA版本必問、2Agent協作架構、已移除項目處理、項目清單列舉規則(每項一行禁止硬寫數量)、SKILL-023規格書轉MD
2026-08-191006行新增:B-4結構掃描4Step(StepB不可跳過)、定位驗證「絕對不可跳過」+5條禁令、品質報告連結驗證表、ref禁存Row號、灰色規格處理、隱藏行處理、凍結+文字換行、提示行、步驟引用規則、補充欄技術規則、用戶回報觸發機制(三層觸發+去重)、自動品質檢查5項、一步到位UX流程、展開前防呆5項、規格不完整也展開、推測用灰色、[待確認]操作指引、確認後三步缺一不可、格式修正技術規則、結構掃描防缺漏根本解法
2026-08-18662行新增:標記系統([?]/[待確認])、✅🟡🔴三狀態、Summary統計行、方案C回寫ref、規格書補充欄、用戶修改判讀、確認後格式修正、白話用語規則、展開紀律
2026-08-17518行新增:規格判讀Checklist、測試目的模板、優先度預設規則、B-3同分頁追加、缺失影響回報、EN→FA統一
2026-08-17429行新增:三模式架構(A/A'/B)、ref拆檔(主文+A9+A8)、模式A'更新ref、粗略/詳細判斷、格式不明fallback、多區域版本
2026-08-17初版基礎版:6步流程、standard/cutscene格式、A8+/A9+ I/O差異對照

灰色規格處理

規格書中灰色背景的內容可以引用展開,但需標記提醒用戶確認。

預期結果欄

備註欄

第 2 行加:⚠️ 部分內容引用自灰色標記區域(Row XX),請確認規格是否仍有效(橘色)

Summary

加 🩶 含灰色引用:X 項

用戶回報後判讀

用戶填Bot 動作
OK去掉 [灰色規格],改為正常黑色 ✅
刪除該條從預期結果中移除
具體描述替換為新內容

處理邏輯

規格來源處理方式
正常(白底/無色)直接引用,黑色字
灰色背景引用但標 [灰色規格],加選項行讓用戶確認
隱藏行跳過不展開,放到最下方 ⏭️ 區

隱藏行處理

已移除項目處理

讀取規格書時,排除以下項目不列入展開範圍:

排除條件

處理方式

責任歸屬

與隱藏行的差異

類型特徵處理
隱藏行視覺上看不到但資料存在掃描後排除
已移除項目視覺上看得到但語義上不存在讀取時排除

每次新建分頁必做

  1. 凍結前 3 列(Header + Summary + 💡 提示行)
  2. D/E/F/J 欄(測試目的/步驟/預期結果/備註)設為文字換行(wrapStrategy: WRAP)

提示行(第 3 行)

步驟引用規則

步驟行內 [待確認] 標記

當測項本身沒問題,但步驟中某個具體資訊缺失(哪一關、哪個位置、什麼數值)時:

格式: [待確認:具體問題?](請補充:_______) 整段紅色粗體

範例:

展開時:2. 觸發夥伴出現 [待確認:如何召喚夥伴?什麼條件會出現?](請補充:_______)
確認後:2. 累積能量到 100% 後按技能鍵召喚夥伴

與其他標記的對照:

類型位置格式選項行
整條缺失 🔴步驟/預期結果整欄紅色粗體(請將此段刪除,替換為已知規格,完成後回報「改好了」)
灰色規格 🩶預期結果行尾[灰色規格] 灰色(規格仍有效請填 OK / 已廢棄請填 刪除 / 有修改請描述)
推測 🟡預期結果末尾推測:XXX 灰色(沒問題請填 OK:_______ / 有問題請描述:_______)
行內缺資訊步驟中某處[待確認:問題?](請補充:_______) 紅色粗體無額外選項行

用戶確認後處理:

判斷邏輯(必須按順序執行):

  1. 先搜尋本頁籤 → 有寫就直接用(黑色)
  2. 再搜尋其他頁籤 → 有寫就引用 + 備註標來源
  3. 搜遍整份規格書都找不到 → 才標 [待確認:問題?](紅色)

流程:搜尋 → 找到就用 → 找不到才標紅。不是一遇到「不確定」就標。

補充判斷:

與整條 🔴 [待確認] 的區分:

類型格式用途
整條缺失🔴 整段紅色粗體 + OK/描述選項行規格完全沒寫這個功能,整條不確定
行內缺資訊步驟中 [待確認:問題?] 紅色測項沒問題,只是某個具體資訊缺失

防膨脹規則:

不需要加 OK/描述選項行。 用戶直接在 Sheet 中改掉 [待確認:XXX] 即可,回報「改好了」統一處理。

模糊描述偵測

展開時主動偵測規格書中模糊不清的描述,用行內 [待確認:問題] 標出讓使用者知道要補什麼。

偵測流程

  1. 讀到模糊描述 → 先搜尋整份規格書(所有頁籤)
  2. 找到具體資訊 → 直接引用,備註標來源
  3. 找不到 → 步驟中標 [待確認:具體問題](紅色)

常見模糊情境清單(通用,適用所有遊戲)

模糊描述Bot 標記
「進入指定關卡/場景」[待確認:哪一關/哪個場景?]
「到達指定位置」[待確認:什麼位置/座標?]
「等待一段時間」[待確認:等多久?幾秒?]
「特定條件下觸發」[待確認:什麼條件?]
「某些機台」[待確認:哪些機台型號?]
「玩家操作後」[待確認:什麼操作?按什麼鍵?]
「達到特定分數/等級」[待確認:多少分/幾等?]
「指定時間內」[待確認:幾秒內?]
「特定道具/物件」[待確認:哪個道具/物件?]
「特殊事件」[待確認:什麼事件?觸發方式?]

規則

規格書補充欄技術注意

2026-08 累積規則(v1.4)

以下為第一階段測試累積、經用戶確認的正式規則。與前述核心紀律一併適用。

核心紀律補充:預設 🟡 舉證制

所有展開的測項預設為 🟡。只有符合以下條件才能升級為 ✅:

無法指出出處 = 保持 🟡,禁止升級。

🟡 項目格式:

防範常見 LLM「偽裝確定」模式

模式表現防範
合理推導偽裝事實規格寫「有音量設定」→ Bot 寫「範圍 0-100」但範圍是猜的強制標出處,沒寫就是 🟡
常識填充規格沒寫但「所有機台都有」→ Bot 當確定常識 ≠ 規格,無出處 = 🟡
數字捏造規格寫「可調」→ Bot 自己決定「0-100」沒寫具體數字就不能寫數字
語氣確定化規格寫「可能支援 4 台」→ Bot 去掉「可能」保留原文語氣,不強化
上文汙染之前展 A9+ 有某功能,現在展 A8+ 也寫了每次確認機台類型,不跨遊戲假設

規則 9:M 欄「職能」標籤

每次展開測試項目時,自動在 M 欄(第 13 欄)加入「職能」標籤。

欄位名稱: 職能 位置: M 欄(緊接在 L 欄「規格連結」後面)

標籤值(下拉選單): 程式 / 美術 / 企劃 / 程式/美術 / 程式/企劃 / 美術/企劃

自動判斷邏輯(按章節整批標):

格式要求: M 欄格式與同行一致;設定資料驗證(下拉選單),strict=False 允許自訂值。

規則 10:字體大小規則

位置字體大小
Row 1~3(凍結欄:標題 + Summary + 提示行)14
Row 4 以下(所有測試項目)12

套用範圍:A~M 所有欄位。

規則 11:篩選提醒文字

在提示行(Row 3)追加:

⚠️ 如果看到的測項比預期少,請檢查是否有啟用篩選(欄位標題出現綠色漏斗圖示 = 篩選中)

格式:灰色斜體,與現有提示行一致。

規則 12:新遊戲自動建立 ref

觸發條件: 用戶指定的遊戲沒有對應的 SKILL-022-XX-ref.md

流程:

  1. 偵測到沒有 ref → 通知:「這是新遊戲,目前沒有用語對照表」
  2. 自動掃描規格書操作描述,產出草稿 ref
  3. 回報用戶確認:「我推測操控用語如下,請確認」
  4. 用戶確認/修正 → 存檔為正式 ref
  5. 之後同遊戲自動載入,不再詢問

用戶跳過時: 以通用模式展開(不做用語替換),備註標 [無用語對照表,用語未驗證]。

規則 13:隱藏頁籤檢查

展開前列出分頁清單時,必須檢查每個頁籤的 sheet.properties.hidden 屬性。

規則 14:強制轉 MD(禁止直接讀 Sheet 展開)

所有展開都必須先轉 MD,再從 MD 展開。

規格書(Sheet) → qa-sheet-worker 轉 MD → 用戶確認 → qa-test-expander 讀 MD 展開

禁止: 直接讀 Sheet 後展開(跳過轉 MD)、用「摘要」代替 MD。

唯一例外: 已有現成 MD 且未過期(轉換日期 vs Sheet 最後修改時間一致)→ 直接用。

MD 存放位置: /root/.agend/wiki/specs/[遊戲名]/[頁籤名].md

為什麼強制: 確保輸入一致、可 review、可追溯、避免直讀 Sheet 格式解析不穩。

規則 15:跨 Sheet/跨頁籤引用出處

當測項引用其他頁籤/其他 Sheet 的定義時,備註欄必須標明出處。

[主要出處] 規格書名─頁籤名 Row XX
[引用] 另一份規格書名─頁籤名 Row XX~XX(引用內容說明)

禁止在文字描述中寫 GID(❌ GID=2002629856)。HYPERLINK 公式中仍需 GID(跳轉用),但備註顯示文字不放 GID。

原因: 測試人員需要知道定義出處,GID 是技術細節,人不需要看。

規則 16:用戶確認 🟡 項目後的綠色標記

用戶確認/修正 🟡 項目並回報「改好了」後,整合時必須加綠色確認標記。

格式實作: 用 textFormatRuns,綠色與紅色 [推測] 共存於同 cell。

規則 17:正反成對排序(反面緊接正面下一行)

自動產生的反面測試,必須排在對應正面測項的下一行。

#05 ✅ 密碼:預設密碼 0000 驗證通過(正面)
#06 🟡 密碼:修改後舊密碼失效(反面)[自動產生反面測試] 對應 #05

規則 18:一個驗證點 = 一條測試項目(通用)

核心原則: 一個可獨立判斷 Pass/Fail 的驗證點 = 一條獨立測試項目。

判斷標準: 一條測項中有多個驗證點,任一單獨出錯時測試人員無法只標記那一個 → 必須拆分。

禁止合併: 多角色/物件、多升級階段、多獨立欄位放同一條。

適用範圍:

規格類型拆分方式
DataTable每物件 × 每欄位 × 每階段 = 獨立一條
功能規格每個獨立可驗證的行為 = 獨立一條
UI 規格每個獨立顯示元素 = 獨立一條

膨脹控制(同邏輯重複超過 50 次時): 觸發後問用戶 — A. 全量展開 / B. 抽樣展開(5 個代表完整測,其餘格式驗證)。注意:50 個不同邏輯的項目不觸發,直接全展。

DataTable 特殊規則: 跨表引用透過 Key 追蹤(備註標 [引用]);「還沒製作」欄位跳過;額外展開關聯完整性驗證(外鍵存在性、ID 唯一性、必填非空、數值範圍合理性)。

規則 19:跨規格關聯追蹤(展開前必做,通用)

觸發條件: 收到任何規格準備展開時。

1. 掃描規格,識別引用外部資料的線索(ID/Key/Code、提到其他頁籤、「參照 XXX」)
2. 建立引用清單(本規格定義什麼 / 引用什麼外部資料)
3. 檢查引用資料是否已提供:有 → 完整讀取;沒有 → 主動問用戶
4. 全部關聯確認後,列出完整結構讓用戶確認
5. 確認後才展開

禁止: 看到引用不追蹤、沒看到關聯表就假設不存在、不問就猜。

引用資料不可得時: 用戶有 → 摘要寫備註正常展;用戶沒有 → 標 🟡 +「⚠️ 缺少引用資料」;用戶說不用管 → 備註記錄後正常展。

規則 20:禁止「是否」句型

步驟和預期結果都禁止使用「是否」。必須用肯定句。

原因:「是否」= 問題不是答案。測試人員需要知道「正確的結果是什麼」。

規則 21:正反成對測試

有「通過/成功/允許」語義的正面測項,自動補一條反面測項。

規則 22:UI 規格預期結果允許設計稿比對

UI 規格的預期結果允許寫「與設計稿 [XXX] 一致」。

備註必須附設計稿引用(名稱或連結),讓測試人員找得到。

規則 23:測試進度總覽分頁(每份測試 Sheet 必備)

建立時機: 在任何 Sheet 中第一次展開測試項目時,自動建立「測試進度總覽」分頁。

位置: 永遠在 Sheet 最前面(index=0)

結構: Row 1 標題行(深橄欖色背景+白色粗體 fontSize 14);Row 2+ 每行一個測試項目分頁;最下方總計行。

欄位:

欄標題內容
A#序號
B項目頁籤分頁名稱
C平台倍數(通常=1)
D狀態欄測試結果的欄位字母(=H)
E原測項數量公式自動計算
F測項數量=E-J-K
G已完成數量=PASS+FAIL
HPASS自動統計
IFAIL自動統計(紅色文字)
JN/A自動統計
KBLOCK自動統計
L進度=G/F(百分比)
M通過率=H/F(百分比)

自動維護: 展開新分頁時自動追加一行(分頁名+公式);有總計行時更新 SUM 範圍;測試人員填 PASS/FAIL/N/A/BLOCK,總覽自動統計。

格式: FAIL 欄紅色文字、進度/通過率百分比格式、凍結第 1 行。

下載