AI 定義檔案分析時的必要檢查清單
分析 AGENTS.md(以及參照它的 CLAUDE.md、GEMINI.md)AI 定義檔案時,務必執行此工作流程。
| 目錄 | 檔案 | 用途 |
|---|---|---|
scripts/ | verify-agents-md.sh | 中央/個別 AGENTS.md 驗證指令碼 |
resources/ | search-keywords.md | grep 搜尋關鍵字列表 |
examples/ | correct-judgment-examples.md | 正常判定的具體範例(附根據) |
examples/ | gap-analysis-template.md | 差異分析報告樣板 |
[!TIP] 判定前請執行
scripts/verify-agents-md.sh取得根據。 不確定關鍵字時請參照resources/search-keywords.md。
[!IMPORTANT]
前提條件: 執行此技能前,請先執行 @startup-check 並確認既有的技能結構(@help)。
這可避免遺漏已定義的開發流程。
[!CAUTION] 請勿分析工作區外的專案
務必確認 AI 編輯器提供的「工作區定義」,僅分析已定義的專案。
user_information 或 IDE 的工作區設定find 或 grep 時僅針對定義的路徑✅ 已定義(分析對象):
- uppmag.com/.../themes/sonobuoy/
- uppmag.com/.../themes/sonobuoy-uppmag/
- sso/html/
- twst-exhibition/
❌ 未定義(分析對象外):
- sonobuoy-coding/ ← 別的專案
- laravel-*/ ← 別的專案
/Users/.../sonobuoy/ 整體find[!CAUTION] 所有「不足」「建議改善」的判定,都必須引用 grep 驗證結果
嚴禁無根據的判定。此原則適用於測試、Workflows、OpenSpec 等所有項目。
在判定為「❌ 未記載」「⚠️ 建議新增規則」之前,務必執行以下動作:
使用 grep 搜尋中央 AGENTS.md(sonobuoy-cms)
grep -n "搜尋關鍵字" sonobuoy-cms/AGENTS.md
使用 grep 搜尋個別專案的 AGENTS.md
grep -n "搜尋關鍵字" 對象專案/AGENTS.md
在報告中引用搜尋結果
項目X: ✅ 正常
- 根據: sonobuoy-cms/AGENTS.md:行號 確認已有「記載內容」
項目Y: ❌ 未記載
- 根據: grep 搜尋確認中央・個別皆無相關內容
[!WARNING] 以下模式會導致誤判,嚴格禁止
❌ 用 view_file 看過內容,但未做 grep 驗證就判定「未記載」 ❌ 僅確認個別 AGENTS.md,未確認中央 AGENTS.md 就下判定 ❌ 建立了改善提案,但未在報告中引用根據 ❌ 用「大概沒有寫吧」的推測來判定
所有的分析報告中,各項判定皆需明記根據:
| 項目 | 判定 | 根據 |
|------|------|------|
| 測試 | ✅ 正常 | AGENTS.md:199「母主題 \| npm run test:e2e」 |
| Workflows | ✅ 正常 | AGENTS.md:228-231 多專案操作表 |
| OpenSpec | ✅ 正常 | 行1-18 OPENSPEC 區塊存在 |
所有分析皆需進行以下二層確認:
| 層級 | 對象 | 確認內容 |
|---|---|---|
| AI 規則層 | AGENTS.md(+ 參照檔 CLAUDE.md/GEMINI.md), workflows | 是否作為規則「記載」 |
| 實作層 | tests/, .github/, scripts, config | 是否實際「存在」 |
分析結果請依以下格式報告:
| 項目 | AI 規則層 | 實作層 | 狀態 |
|---|---|---|---|
| 單元測試 | ❌ 未記載 | ✅ tests/Unit/ 存在 | ⚠️ 建議新增規則 |
| CI/CD | ❌ 未記載 | ❌ 未存在 | ❌ 兩者皆不足 |
在分析 AI 規則前,務必確認以下項目:
find . -name "phpunit.xml" -o -name "phpunit.xml.dist" 確認設定ls tests/ 或 ls test/ 確認測試目錄find . -name "*Test.php" | head -20 確認實際測試檔案[!WARNING] 二層分析強制檢查
在判斷「測試未設定」前,務必確認兩者:
層級 確認對象 指令範例 AI 規則層 AGENTS.md 的測試章節 view_file AGENTS.md實作層 package.json / composer.json view_file package.json實作層 playwright.config.ts / phpunit.xml find . -name "playwright.config*"禁止僅確認其中一方就判斷「不足」。
.github/workflows/ 有無.gitlab-ci.yml 有無deploy.sh 等)有無composer.json / package.json 的 scripts 章節npm test, composer test 等)package.json(即使 AGENTS.md 無記載)find . -name "*.css" 或 resources/views/ 確認是否有前端grep -r "sso\|SSO\|api.uppmag" --include="*.php"grep -r "SONOBUOY_FEATURES" --include="*.php".agent/workflows/ 的既有工作流程[!IMPORTANT] 以下結構為設計上的意圖,請勿誤判為「不足」或「重複」。
| 位置 | 狀態 | 說明 |
|---|---|---|
sonobuoy-cms/openspec/AGENTS.md | ✅ 必須 | 統一指南(唯一的正本) |
| 子專案/openspec/AGENTS.md | ❌ 不需要 | 參照 sonobuoy-cms 故不需要 |
注意: 子專案若無 AGENTS.md 是正常的。
| 目錄 | 必要性 | 說明 |
|---|---|---|
.agent/skills/ | 僅 sonobuoy-cms | 中央 Skills 管理 |
.agent/workflows/ | 各專案 | 專案專屬工作流程 |
.claude/ | 不需要 | Claude Desktop 用(選項) |
.opencode/ | 不需要 | OpenCode 用(選項) |
注意: 子專案若無 .claude/ 或 .opencode/ 是正常的。
| 工作流程 | 母主題 | 子主題 | 說明 |
|---|---|---|---|
deploy.md | ✅ 必須 | ❌ 不需要 | 與母主題相同步驟 |
run-tests.md | ✅ 必須 | ❌ 不需要 | 執行母主題的測試 |
readme.md | ✅ 有 | ✅ 有 | 專案說明 |
注意: 子主題繼承母主題,故不需要獨立的 deploy.md 或 run-tests.md。
[!CAUTION] 子主題的測試指令由中央 AGENTS.md 統一管理
務必確認
sonobuoy-cms/AGENTS.md是否有以下記載:| 子主題 | `npm run test:e2e` |若有此記載,即使個別子主題 AGENTS.md 無記載也判定為正常。
| 專案 | AGENTS.md 記載 | 實際設定 | 判定 |
|---|---|---|---|
| SSO | 測試指令記載 | phpunit.xml + tests/ | ✅ 正常 |
| 母主題 | 定義於 sonobuoy-cms | package.json scripts | ✅ 正常 |
| 子主題 | 由 sonobuoy-cms 統一定義 | package.json scripts | ✅ 正常 |
注意: 若測試執行方法已記載於 sonobuoy-cms/AGENTS.md 或 package.json,不需在個別 AGENTS.md 重複記載。
[!CAUTION] 在判定「測試未記載」前,務必執行以下驗證
嚴禁省略此步驟導致誤判。
分析時務必依照以下順序確認:
用 grep 確認中央 AGENTS.md 的統一表(最優先・必須)
grep -n "親テーマ\|子テーマ" sonobuoy-cms/AGENTS.md | grep "test"
目視確認表格內容
確認 sonobuoy-cms/AGENTS.md 的「測試執行指令」表是否有:
| SSO | npm run test:all || 親テーマ | npm run test:e2e |(母主題)| 子テーマ | npm run test:e2e |(子主題)確認 package.json
各專案是否有 npm run test:e2e script
判定規則:若上述 1 或 2 在中央 AGENTS.md 有記載,即使個別 AGENTS.md 無記載也是正常。
[!WARNING] 常見誤判模式(禁止)
❌ 只看個別 AGENTS.md 就判斷「測試指令未記載」 ❌ 未確認中央 AGENTS.md 的統一表就提案「建議新增規則」 ❌ 無 grep 驗證就建立改善提案
務必在報告引用 grep 結果:
母主題測試: ✅ 正常 - 根據: sonobuoy-cms/AGENTS.md:199 已記載「| 親テーマ | npm run test:e2e |」
所有子主題(sonobuoy-uppmag、sonobuoy-child)皆存在 playwright.config.ts 與 package.json:
| 子主題 | playwright.config.ts | package.json scripts | 判定 |
|---|---|---|---|
| sonobuoy-uppmag | ✅ 存在 | ✅ npm run test:e2e | ✅ 正常 |
| sonobuoy-child | ✅ 存在 | ✅ npm run test:e2e | ✅ 正常 |
注意: 兩個子主題皆有測試基盤。即使個別 AGENTS.md 無指令記載,因中央 sonobuoy-cms/AGENTS.md 已統一管理,故為正常。
[!CAUTION] 在判定「Workflows 未記載」前,務必執行以下驗證
Workflows 的記載位置:
各專案的 AGENTS.md 有「多專案操作」章節,包含工作流程指令表。
grep 驗證指令:
# 確認 Workflows 記載
grep -n "/code-review\|/backlog\|/slack\|/deploy" 對象專案/AGENTS.md
應確認的記載內容:
| 關鍵字 | 記載位置 |
|---|---|
@code-review | 多專案操作表 |
@backlog | 多專案操作表 |
@openspec-proposal | 多專案操作表 |
@slack-* | 多專案操作表 |
@deploy | 專案專屬技能 |
判定規則:
.agent/workflows/ 有檔案存在,只要 AGENTS.md 有記載就不判定為「未記載」sonobuoy-cms/openspec/specs/ 為空是預期的動作。
| 目錄 | 角色 |
|---|---|
sonobuoy-cms/openspec/ | 統一指南(AGENTS.md、project.md) |
各專案/openspec/specs/ | 實際功能規格 |
各專案維護獨自的 specs:
themes/sonobuoy/openspec/specs/sso/html/openspec/specs/themes/sonobuoy-child/openspec/specs/| 專案 | openspec/ 狀態 | 說明 |
|---|---|---|
| uppmag WP Root | ✅ 完整保持 | 維持結構一致性 |
| twst-exhibition WP Root | ✅ 完整保持 | 維持結構一致性 |
注意: WP Root 僅管理 wp-config.php 與 .htaccess,但為與其他專案保持一致性,完整保留了 openspec/(含 changes/、specs/)。此為設計意圖,請勿報告「冗餘」或「建議整理」。