reproduce-bug-report

reproduce-bug-report

熱門

啟動 Oz 雲端代理程式並使用電腦操作來重現 UI 相關的錯誤回報,擷取視覺證據,並回報重現結果。在調查來自 issue、工單、支援回報或提示的特定互動或視覺錯誤時使用。

125星標
0分支
更新於 2026/7/11
SKILL.md
readonlyread-only
name
reproduce-bug-report
description

Launch Oz cloud agents with computer use to reproduce UI-focused bug reports, capture visual evidence, and report reproduction findings. Use when investigating a specific interactive or visual bug from an issue, ticket, support report, or prompt.

重現錯誤回報

當目前的情境是 GitHub issue、支援回報、Linear 工單或使用者提示,且描述了一個可透過可見應用程式行為重現的特定錯誤時,使用此技能。主要適用於 UI、渲染、視窗、設定、編輯器、終端機顯示、入門引導或其他互動式錯誤,其中螢幕截圖或錄影能讓結果更具可操作性。

除非使用者明確要求,否則父代理程式不應嘗試在本機手動重現 UI 錯誤。啟動一個或多個啟用電腦操作的 Oz 雲端代理程式,以便它們執行相關應用程式、與之互動並擷取視覺證據。

父代理程式工作流程

  1. 仔細閱讀錯誤回報並提取:
    • 回報的行為
    • 預期的行為
    • 重現步驟(如有提供)
    • 作業系統、應用程式版本/建置/頻道、shell、功能旗標、帳戶狀態或其他相關的環境限制
    • 有助於縮小重現路徑的附圖、影片、日誌或評論
  2. 判斷此技能是否適用:
    • 適用於 UI 可見的錯誤、互動錯誤、渲染/佈局錯誤、入門引導錯誤,以及螢幕截圖證據有幫助的錯誤。
    • 不適用於純後端、CI、建置、相依性或純文字程式碼問題,除非提示特別要求視覺重現。
    • 如果回報需要憑證、私人帳戶狀態或重現環境無法提供的其他功能,請清楚回報此限制,而非猜測。
  3. 如果重現路徑很直接,啟動一個啟用電腦操作的 Oz 雲端代理程式。
  4. 如果有多個合理的重現路徑,在一個 run_agents 批次中啟動多個 Oz 雲端代理程式。為每個子代理程式指定不同的假設或環境變體,例如:
    • 不同的作業系統或桌面環境
    • 全新的首次執行狀態 vs 已初始化的本機狀態
    • 穩定版 vs 開發版
    • 全新設定 vs 現有設定
    • 不同的 shell、提示符、窗格佈局或設定開關
  5. 如果步驟不完整,使用程式碼庫知識提出可能的應用程式狀態,並指派子代理程式調查這些狀態。不要憑空猜測原始回報者的環境。
  6. 在總結之前等待所有子代理程式回報。區分已確認重現、部分重現、未重現、阻礙因素和未測試的假設。

版本與應用程式設定

  • 當存在合適的可執行成品時,優先使用使用者回報的應用程式版本/建置/頻道進行重現。
  • 如果可安裝更接近回報者環境的成品,不要默默替換為最新的可用建置。
  • 當已發布或打包的可執行成品比原始碼建置更符合回報者環境,且儲存庫特定指引允許時,優先使用前者。
  • 如果找不到或無法安裝確切的版本/建置,請清楚回報,說明嘗試了什麼,並僅在對繼續調查有幫助時使用最接近的合理備案。
  • 在資訊清單和最終報告中記錄回報者要求的版本、安裝的測試版本、成品來源以及任何備案決策。

儲存庫特定指引

使用中的儲存庫可能附帶一個配套的 reproduce-bug-report-local 技能。當該配套技能可用或在提示中被引用時,請閱讀它並將其儲存庫特定的範圍、應用程式設定、環境和工作流程指引作為補充說明。本機配套技能可能縮小範圍或專門化設定,但不應重新定義此核心技能中的證據、成品、回報或安全期望。

使用類似以下形式的 run_agents 呼叫:

summary: 啟動 Oz 雲端電腦操作代理程式以重現回報的 UI 錯誤並收集螢幕截圖。
remote.computer_use_enabled: true
agent_run_configs:
- name: "repro-primary"
  prompt: 主要重現提示
- name: "repro-variant"
  prompt: 可選的變體提示(如有用)
base_prompt: 下方的共享子代理程式提示

當多餘的子代理程式會重複相同步驟時,請省略。除非使用者要求特定模型,否則省略 model_id

共享子代理程式提示

為每個子代理程式提供這些共享指示,然後附加子代理程式特定的重現路徑或假設。

你正在嘗試使用 Oz 雲端電腦操作重現一個回報的 UI 錯誤。

目標:
- 盡可能忠實地重現回報的行為。
- 在每次有意義的互動前後擷取螢幕截圖。
- 如果提供的步驟不清楚或不完整,使用程式碼庫和產品知識來識別可能產生回報行為的應用程式狀態,然後測試指定的假設。
- 回報清晰的重現證據,而不只是意見。

輸入:
- 錯誤回報上下文:<貼上或總結 issue 內容、評論、螢幕截圖/影片描述、標籤和相關中繼資料>
- 指定的重現路徑或假設:<要測試的具體步驟、環境、應用程式狀態、設定、功能旗標或程式碼路徑>
- 回報者應用程式版本/建置/頻道:<回報中的確切值,或未知>
- 建置/應用程式目標:<要安裝的確切可執行成品,或如果確切成品不可用時的合理備案>

安全與隱私:
- 不要向公開回報者索取憑證、令牌、私人儲存庫、私人工作區名稱或私人帳戶識別碼。
- 不要在螢幕截圖、日誌、資訊清單或最終報告中包含機密、驗證令牌、私人 URL、Authorization 標頭或重新整理令牌。
- 除非提示和儲存庫特定指引明確授權安全測試驗證工作流程,否則不要建立或登入帳戶。
- 如果指定的回報無法在允許的驗證/狀態限制內執行,請停止並回報阻礙因素。
- 除非明確指示,否則不要對 GitHub、Linear、Slack 或外部服務發表評論。
- 避免破壞性操作。如果重現需要刪除應用程式狀態,僅刪除當前重現環境的測試狀態,並確切回報重置了什麼。

成品工作流程:
- 建立一個專用的成品目錄,以你的變體命名,例如 `~/bug-repro-primary`。
- 使用有序的檔案名稱儲存螢幕截圖,例如 `01-initial-state.png`、`02-before-click-settings.png` 和 `03-after-click-settings.png`。
- 在成品目錄中維護一個簡短的資訊清單,包含:
  - 螢幕截圖檔案名稱
  - 時間戳記
  - 可見的應用程式狀態
  - 剛剛執行或即將執行的動作
  - 該螢幕截圖是否顯示回報的錯誤
- 如果測試框架支援內建的螢幕截圖或成品上傳,請使用它。否則將成品留在目錄中並回報路徑。

重現工作流程:
1. 確認你正在測試的環境:作業系統、架構、顯示/會話類型、相關的 shell,以及可見的應用程式/建置/版本。
2. 從回報中識別確切的回報者應用程式版本/建置/頻道(如果可用),然後使用儲存庫核准的最接近可執行成品。
3. 如果沒有可用的確切回報者版本,記錄版本未知,並為回報選擇最合理的安裝目標;明確說明備案。
4. 從與回報最匹配的乾淨狀態開始。如果錯誤依賴於現有設定或持久化的本機狀態,不要重置應用程式狀態。
5. 在嘗試錯誤特定的重現之前,達到回報所需的基準應用程式狀態。
6. 在嘗試錯誤特定的重現之前,擷取基準螢幕截圖。
7. 如果可用,首先遵循提供的確切錯誤重現步驟。
8. 如果確切步驟無法重現,測試指定的假設,並記錄與回報的差異。
9. 如果錯誤出現,停止改變變數,並擷取足夠的證據使重現具有可操作性。
10. 如果錯誤未出現,最多進行兩個直接由回報或程式碼路徑假設支援的目標變體。
11. 如果應用程式崩潰、無回應或進度受阻,擷取螢幕截圖並收集非敏感的日誌或終端機輸出,以解釋阻礙因素。

針對不明確步驟的程式碼路徑調查:
- 在程式碼庫中搜尋回報中提到的 UI 字串、標籤、功能名稱、設定鍵、遙測名稱、路由名稱和元件。
- 識別可能產生回報行為的元件、模型、功能旗標或狀態轉換。
- 使用該調查來選擇目標 UI 動作,而非廣泛的探索性點擊。
- 回報支持你假設的檔案或符號,但最終報告應專注於重現證據。

回報內容:
- 在結論之前提供簡短的錯誤摘要,包括 issue/報告識別碼(如果可用)、回報的行為和預期的行為。
- 重現狀態:已確認、部分確認、未重現或受阻。
- 你執行的確切步驟。
- 環境和應用程式/建置資訊。
- 回報者要求的應用程式版本/建置/頻道、安裝的測試版本/建置/頻道,以及成品來源或備案說明。
- 觀察到的行為是否與回報相符,以及相符程度。
- 螢幕截圖列表,附簡短描述和成品路徑或附件名稱。
- 收集的任何日誌、崩潰輸出或診斷資訊,並移除機密。
- 如果調查過,最可能涉及的程式碼路徑或狀態。
- 建議的下一個除錯步驟或後續問題,僅在會實質改變下一步行動時提供。

子代理程式提示模式

主要重現子代理程式

用於步驟明確的回報:

你負責主要重現嘗試。

在嘗試變體之前,嚴格遵循錯誤回報的步驟。優先匹配回報者的作業系統、應用程式頻道、允許的應用程式狀態、設定、shell 和佈局。如果這些細節缺失,選擇最常見的路徑並明確列出假設。

變體子代理程式

當有特定的替代條件值得測試時使用:

你負責此重現變體:<變體名稱>。

僅測試此變體指定的環境或狀態。不要重複主要子代理程式的完整搜尋空間。回報此變體是否改變結果,並為任何差異提供螢幕截圖。

程式碼路徑假設子代理程式

當重現步驟缺失或不明確時使用:

你負責程式碼路徑引導的重現。

首先從回報中的字串、UI 標籤、設定名稱、功能名稱或螢幕截圖追蹤可能的程式碼路徑。然後選擇一個目標 UI 路徑,該路徑應能觸發可疑的狀態。回報你用於形成假設的程式碼路徑,以及測試後的視覺結果。

成功標準

成功使用此技能會產生:

  • 已確認的重現,附有螢幕截圖和確切步驟,或經過良好範圍界定的未重現,附有測試過的假設。
  • 視覺證據的清晰成品路徑或附件。
  • 簡潔的摘要,說明測試了哪些變體以及哪些未測試。
  • 足夠的環境細節,讓工程師能夠重複測試。
  • 無洩漏的機密、憑證、私人帳戶詳細資訊或不必要的公開評論。

摘要格式

當子代理程式完成時,按以下結構總結:

錯誤摘要:
- Issue/報告:<識別碼或來源>
- 回報的行為:<子代理程式嘗試重現的錯誤>
- 預期的行為:<本應發生的情況>
重現狀態:<已確認 | 部分確認 | 未重現 | 受阻>

測試內容:
- <變體/子代理程式>:<步驟和環境>

證據:
- <螢幕截圖/成品路徑>:<顯示的內容>

發現:
- <觀察到的行為 vs 回報的行為>
- <可能的狀態/程式碼路徑,如果已知>

下一步:
- <一個具體的除錯動作或後續問題>