開發指令
1. 尋找指令
使用第一個能提供答案的來源。在執行指令前先說明它。
- 儲存庫說明文件:
CLAUDE.md、CONTRIBUTING.md、README.md。在 gener8v pipeline 儲存庫中,.gener8v/context.md會列出每個儲存庫的驗證指令。 - 任務執行器:
Makefile、justfile、Taskfile.yml、package.json中的 scripts、pyproject.toml中的工具區段、tox.ini、noxfile.py。 - CI 工作流程:
.github/workflows/*.yml。CI 執行的內容定義了「測試通過」的標準。 - 生態系統預設值:
resources/ecosystems.md。
如果專案在容器中執行(compose.yaml、docker-compose.yml、開發容器),請依照專案文件的方式在容器內執行指令。請參閱 resources/ecosystems.md。
2. 執行
- 從較小的範圍開始:一個測試檔案或一個套件。然後執行完整的測試套件再回報。
- 不要啟動監看模式。許多測試執行器預設會進入監看模式。請使用「執行一次」的形式(
resources/ecosystems.md)。 - 在縮短輸出時保留退出碼:
set -o pipefail <command> 2>&1 | tail -n 60 echo "exit=$?" - 在背景啟動開發伺服器。等待直到其 URL 有回應。完成後將其停止。
3. 解讀結果
- 退出碼決定成敗。 像「完成」這樣的文字並不代表成功。
- 計數。 回報通過、失敗和跳過的項目。跳過、預期失敗和「未收集到測試」不算通過。
- 不穩定的測試。 對失敗的測試再單獨執行一次。如果通過,則回報為不穩定。不要隱藏它。
- 先前就已存在的失敗。 檢查基底分支:最新的 CI 執行(
gh run list --branch <base> --limit 3)或在單獨工作樹中的執行。將這些失敗回報為「已在<base>上失敗」。不要用它來為自己的失敗開脫。 - 不要為了讓測試通過而削弱它。 如果測試本身是錯的,請說明原因,並在一個獨立、可見的提交中修改它。
4. 用於 UI 工作的資料
當 UI 需要真實資料時,請遵循 resources/throwaway-data.md。簡單的規則:只植入你為此目的建立的資料庫。絕不植入專案的正式、預設或共用資料庫。
5. 回報
提供指令、退出碼、計數以及每個失敗的第一個實際錯誤。如果你沒有執行某項作業(例如,需要憑證的端到端測試),請說明原因。
相關技能
engineering:github-pr-merge和engineering:github-issue-workflow在執行 PR 之前會呼叫此技能。engineering:documentation-bootstrap使用它來尋找文件必須列出的指令。