iT邦幫忙

2026 iThome 鐵人賽

DAY 15
0
ChatGPT & Codex

從 Prompt 到 Pull Request:30 天玩懂 ChatGPT & Codex系列 第 15

# Day 15|不要只說「有錯」:把錯誤訊息變成除錯 Prompt

  • 分享至 

  • xImage
  •  

昨天從 diff Review 了「新增任務」功能,確認這個 commit 沒有實作資料保存。

現在實際操作 Issue Tracker:新增一筆任務後重新整理頁面,剛才的任務就消失了。

如果只把「重新整理後壞掉了」丟給 Codex,它仍然要猜測很多事情。今天先不修程式,而是把這個現象整理成可以重現、可以調查的 Bug 回報。

「壞掉了」還缺少什麼?

一句「重新整理後壞掉了」沒有說明:

  • 做了什麼操作
  • 預期看到什麼
  • 實際看到什麼
  • 問題是否每次都發生
  • 有沒有錯誤訊息
  • 使用什麼環境
  • 哪個版本出現問題

Codex 可以先閱讀整個 repository 尋找可疑程式,但不知道症狀時,很難判斷哪一段才和問題有關。

好的除錯 Prompt 不需要先知道答案,但要讓另一個人可以看到相同現象。

先把問題重現一次

我先用目前最新版本操作:

  1. 啟動 Issue Tracker
  2. 在輸入欄位填入「修正登入頁面」
  3. 送出並確認任務出現在清單
  4. 重新整理瀏覽器
  5. 觀察剛新增的任務是否仍然存在

結果是任務在重新整理後消失,而且瀏覽器畫面沒有顯示錯誤訊息。

這裡要記錄看到的事實,不要先把「一定是 localStorage 寫錯」當成結論。現在只能確定資料沒有跨過重新整理保留下來。

沒有錯誤訊息,也是一項資訊

有些問題會出現 stack trace、測試失敗或瀏覽器 Console 錯誤;這些內容應該盡量完整保留,不要只摘錄最後一句。

但這次沒有任何錯誤訊息。Bug 回報中的「錯誤訊息」可以直接寫「無」,不能因為欄位空著不好看,就自行編一段錯誤。

沒有錯誤通常代表程式按照目前邏輯正常執行,只是實際行為和產品預期不同。真正原因仍然要從程式與需求找證據。

今天使用的除錯 Prompt

我會開一個新的 Codex 任務,讓它不受前幾天實作與 Review 對話影響,再提供下面的內容:

請先診斷 Issue Tracker 的資料保存問題,不要修改任何檔案。

預期行為:
依照第一版 PRD,任務資料應保存在瀏覽器中。重新整理頁面後,已新增的任務仍然存在。

實際行為:
任務送出後會正常顯示在清單中,但重新整理頁面後,任務消失並回到空狀態。

重現步驟:
1. 啟動目前版本的 Issue Tracker
2. 在輸入欄位輸入「修正登入頁面」
3. 送出並確認任務出現在清單中
4. 重新整理瀏覽器
5. 任務從清單消失

發生頻率:
每次都會發生。

錯誤訊息:
畫面與瀏覽器 Console 都沒有錯誤訊息。

執行環境:
- 使用目前 repository 的最新 commit
- 透過專案既有的開發指令啟動
- 在桌面版瀏覽器操作

已嘗試方法:
- 重新操作一次,結果相同
- 尚未修改程式或瀏覽器儲存資料

請完成:
1. 依照步驟確認問題是否能重現
2. 追蹤任務從表單送出到畫面更新的資料流
3. 找出資料目前保存在哪裡
4. 檢查 repository 是否已有 localStorage 或其他持久化處理
5. 判斷這是現有功能的程式錯誤、尚未實作的需求,或其他問題
6. 說明最可能原因與證據
7. 列出修正前應先補上的測試

每項結論請附上檔案位置或工具輸出。
請區分已確認的事實與推論;這次只診斷,不要修改程式。

這段 prompt 的回覆

症狀和原因要分開

這次的症狀是:

重新整理後,剛新增的任務消失。

「沒有寫進 localStorage」則是可能原因,必須等 Codex 查看實際資料流後才能確認。

也可能出現其他情況,例如程式其實有寫入,但啟動時沒有讀回;資料格式無法解析;或程式使用了不同的 storage key。

如果把自己的猜測直接寫成「請修正 localStorage 寫入」,Codex 可能跳過重現與調查,直接修改被指定的位置。就算最後畫面正常,也無法確定修到的是不是原本的問題。

可重複使用的 Bug 回報模板

之後遇到其他問題,可以先填寫:

問題摘要:

預期行為:

實際行為:

重現步驟:
1.
2.
3.

發生頻率:

錯誤訊息或失敗輸出:

執行環境與版本:

已嘗試方法:

相關截圖或檔案:

請先重現並診斷原因,每項結論附上證據。
這次不要修改程式;無法重現時請直接說明。

不一定每個欄位都有內容,但不知道時應寫「尚未確認」,不要用推測補滿。

今日小結

今天沒有修改 Issue Tracker,而是把「重新整理後任務消失」從一句模糊抱怨,整理成具有預期行為、實際行為、重現步驟、環境與證據要求的除錯 Prompt。


上一篇
# Day 14|看懂 Codex 改了什麼:Diff 才是共同語言
下一篇
# Day 16|請 Codex 修 Bug,但先證明它真的存在
系列文
從 Prompt 到 Pull Request:30 天玩懂 ChatGPT & Codex16
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言