/edge-cases: a simple skill to catch missed edge cases

Image

原始來源與檔名:2026-07-07T092603+0800-edge-cases a simple skill to catch missed edge cases.md


SOURCE | 資訊源評估

這是一篇從產品經理 (PM) 及系統工程視角出發的實踐心得,精準地點出在 AI 輔助開發時代 (AI Coding Agents) 下,需求規格書 (PRD) 撰寫模式必須發生的典範轉移。文章邏輯清晰、對比強烈,強烈推薦給正在導入 AI 開發工具的 PM、系統分析師 (SA) 與架構師閱讀。

NAPKIN | 餐巾纸

一句話:在 AI Agent 時代,模糊的 PRD 不再換來工程師的提問,而是換來自信滿滿的錯誤程式碼,因此我們需要系統化的八大邊界測試來防禦。 餐巾紙草圖:

[ 模糊的 PRD ]
      |
      +--> (Human Engineer) --> [ 產生困惑/提問 ] --> [ 釐清邊界條件 ] --> [ 健壯的系統 ]
      |
      +--> (AI Agent)       --> [ 腦補實作/記錄警告 ] --> [ 繼續執行 ]   --> [ 靜默的財務災難 ]

ROUND 1: SKELETON | 骨架掃描

ROUND 2: DISSECTION | 血肉解剖

ROUND 3: SOUL | 靈魂提取

DEEP READ | 精讀指引


/edge-cases: a simple skill to catch missed edge cases (Architectural Deep Dive)

前言/背景

本文探討在 AI 輔助開發時代 (例如使用 Claude 或 Cursor),軟體需求規格書 (PRD) 撰寫方式的根本性變革。過去依賴人類工程師在閱讀模糊規格時產生的「困惑與提問」作為最後防線,但 AI Agent 會忽略這些模糊地帶並直接給出看似合理的實作,這可能導致嚴重的靜默系統故障 (Silent Failures)。為解決此問題,作者提出了一套系統化的八大邊界條件檢查法。

消失的防線:人類工程師的困惑 (The Backstop of Confusion)

作者從一個真實的 Shopify 到 QuickBooks 的 API 串接 PRD 說起,裡面有一段描述:

“there could be 2 or more orders, whose aggregate sum should equal the payout amount. (if it doesn’t then something is wrong 😁)”

在傳統開發流程中,人類工程師看到這個笑臉 (😁) 會產生困惑,並在需求精煉會議 (Refinement) 中提問:「如果金額不符,我們具體該怎麼處理?」這個提問填補了規格的空白。

但 AI 開發代理 (AI coding agent) 的運作邏輯完全不同:

這意味著,寫給 AI 看的規格,其容錯率遠低於寫給人類看的規格。 人類的困惑曾是一道隱形防線,現在這道防線被移除了。

解決方案:八大類別的結構化掃描 (The Eight-Category Pass)

面對這種情況,僅憑一句「要多思考邊界條件」是無效的。作者提出了一種結構化的掃描方法,必須按照固定順序對 PRD 進行檢查:

  1. 使用者類型 (User types)
  2. 使用情境 (Contexts of use)
  3. 預期外的輸入與系統故障 (Unexpected inputs and system failures)
  4. 使用者錯誤 (User error)
  5. 功能交互作用 (Feature interactions)
  6. 系統負載 (Load)
  7. 安全與隱私 (Security and privacy)
  8. 無障礙設計 (Accessibility)

透過這種固定順序的檢查,可以強迫自己涵蓋那些經常被遺忘的維度。

PRD 掃描實戰:以 Shopify-QuickBooks 串接為例

作者將上述掃描法應用於原本看似完美的 PRD (包含 API 文件連結、一條 $2,000 的正常金流驗收測試),結果找出了 27 個潛在情境。以下是三個極具代表性的案例對比:

1. 總和不符 (The 😁 line itself)

2. 退款處理 (The Refund)

3. 手動標籤狀態 (The Tag)

此外,還有像是缺乏冪等性 (Idempotency) 導致的重複入帳、認證失敗 (Auth failure) 導致的一半寫入卻無檢查點 (Checkpoint),以及幣別未指定導致的匯率錯亂等問題。

Image

總結與結論 (Key Takeaways)

  1. 防護左移 (Shift-Left Defense):在 AI 輔助開發時代,架構與邊界條件的定義必須極度前置。PM 或架構師不能再依賴工程師的「提問」來補足規格,必須在丟給 AI Context Window 前完成結構化掃描。
  2. 明確定義異常行為 (Define Failure Modes):永遠不要只寫 Happy Path。對於「資料不一致」、「API 斷線」、「非預期輸入」,必須明確給定系統反應(例如:中斷、回滾、重試、告警)。
  3. 警惕「編譯通過」的虛假安全感:AI 產生的程式碼通常看起來很工整且能通過編譯,但這往往是因為它默默吞下了錯誤 (Swallowed exceptions) 或跳過了複雜的邊界檢查。
  4. 建立防呆的系統架構 (Idempotency & Checkpoints):在串接外部系統 (尤其是金流) 時,API 的冪等性 (Idempotency) 以及交易的檢查點 (Checkpoints) / 分散式交易補償機制,是無論 PRD 有沒有寫,架構設計上都必須強制的底層基礎設施。