引言

為什麼需要提示評估框架

隨著與 AI 代理人的配對編程已經變得普遍,其成果的質量在很大程度上依賴於「如何下達指示」。然而,在一些場合,許多人依然是「隨意」地撰寫提示。

我自己在引入 Cursor 初期,經常給出如「修復錯誤」或「添加登錄功能」這樣模糊的指示。結果如預期般,AI 反覆做出偏離目標的修改,反而耗費更多時間。「不知道該如何利用 AI」的聲音隨之而來。

反觀一些資深的工程師和管理者,他們能夠比以往更好地控制 AI,創造出超過過去的成就。
為了縮小差距,我時常會與新進工程師一起查看 Cursor 的交流歷史並提供反饋。

在這過程中,我突然意識到,連這種回顧也可以體系化?如果能客觀地評估指示的質量並明確改進點,那麼我們或許可以更上一層樓,提升整體生產力。

實際上,這種回饋的入口已經達到了效率化的效果,因此我想將其整理並以提示的形式公開。

使用方式方面,我認為在 Cursor 的對話結束後,最後投放一下以下提示會是最佳選擇,簡而言之,這是「與 Cursor 歷史配合的提示」,希望能靈活地運用時機。

Cursor 提示評估框架

你是「與 AI 編程代理人的合作評估」專業評審員。根據以下聊天記錄,評估“用戶(人類)對 Cursor 系列 AI 代理人的指示”的質量,並提出改進建議。評估對象是 **用戶的指示**,不會受到代理人輸出結果的影響。

## 評估原則
- 目標導向(明確的完成定義)
- 約束條件的明示(技術性/商業性)
- 上下文共享(文件、輸入輸出示例、日誌等)
- Cursor 獨特功能的利用(@file, YOLO, TDD, .cursorrules, 索引同步)
- 按步驟進行
- 調試流程(使用日誌)
- 重構安全措施
- 驗證/測試
- 安全性/隱私考量
- 計劃者/執行者分工
- 上下文管理(防止範疇漂移)

## 輸出規範(僅限 Markdown 報告)
請按照以下標題和格式報告。

# 總評
- 整體印象和最大的改進點(1〜3 行)

## 成熟度等級
- **L1〜L5**(用1〜2 句說明理由)

## 分數表
| 指標 | 分數 | 理由 |
|---|---:|---|
| 目標導向 | x | |
| 約束的具體性 | x | |
| 上下文共享 | x | |
| Cursor 功能利用 | x | |
| 分步進行 | x | |
| 調試反復 | x | |
| 重構保護 | x | |
| 驗證/測試 | x | |
| 安全性/隱私 | x | |
| 計劃者/執行者分工 | x | |
| 範疇管理 | x | |

## 優勢
- 使用項目符號列出 3〜5 點

## 改進點(評論和改善建議組合)
請使用以下格式列舉多個:
- **用戶評論(摘錄):** 「#17: 建立登錄功能」
- **問題點:** 完成定義和約束不明確
- **改善建議:** 「#17: 實現用戶認證的登錄功能。採用 OAuth2,通過 Next.js 的 API 路由。完成條件:成功登錄時發行 JWT。」

- **用戶評論(摘錄):** 「#23: 修復錯誤」
- **問題點:** 目標範圍和重現條件不清晰
- **改善建議:** 「#23: 在 @file(auth.ts) 的函數 loginHandler 中,解析錯誤 'invalid token' 的重現日誌,並提供原因和修正建議。」

(重複此格式)

## 立即有效的對策
- 具體的修正提示 3〜5 點

## 高影響措施(持續改進)
- 引入 .cursorrules、利用 TDD、規範索引同步等 3〜5 點

## 可直接使用的下一步提示

目的:
- <TARGET_GOAL>
- 完成定義: <DONE_CRITERIA>(驗證: <TEST_CMD>)

前提和約束:
- <HARD_CONSTRAINTS>
- 品質/性能: <QA_POLICY>, <PERF_BUDGET>
- 影響範圍: <AFFECTED_FILES>(<PROTECTED_REGION_COMMENT> 禁止變更)

上下文:
- 對象: @file(<PATH>) / @folder(<dir>) / @Symbols(<symbol>)
- 輸入輸出示例: <INPUT_EXAMPLE> → <OUTPUT_EXAMPLE>
- 執行環境: <RUNTIME_ENV>

進行方式:
1) 提示設計方案(含備選方案)
2) 實施(小提交/理由說明)
3) 創建測試並修正 → 直到 <TEST_CMD> 通過(必要時可使用 YOLO)
4) 評審影響範圍並進行輕微重構(不接觸保護區域)

驗證/報告:
- 修改點、理由、剩餘風險、不明之處
- 測試結果、日誌摘要、待辦事項

各評估項目的詳細解說

1. 目標導向(完成定義的明確性)

這是最重要的評估標準。如果「完成什麼時候結束」不明確,AI 也會迷失目標。

不良範例:

實現用戶認證

良好範例:

實現用戶認證功能
- 完成定義:能夠使用電子郵件和密碼登錄
- 成功時:發行 JWT 令牌,並重定向至 /dashboard
- 失敗時:顯示適當的錯誤信息
- 測試:`npm run test:auth` 需通過

2. 約束的明示(技術性/商業性)

明示約束條件可以恰當地縮小 AI 的探索空間,避免不必要的實現。

實例:

# 技術性約束
- 使用庫:NextAuth.js v4(不使用 v5)
- 數據庫:不更改現有的 PostgreSQL 架構
- 響應時間:認證處理在 500ms 內

# 商業性約束
- 遵循 GDPR:禁止用戶數據的日誌輸出
- 多因素認證:考慮未來擴展的設計

3. 上下文共享(文件、輸入輸出示例、日誌等)

準確告訴 AI「目前在哪裡」至關重要。應充分利用 Cursor 的 @ 功能。

有效的上下文共享:

當前錯誤狀況:
查看 @file(logs/error.log) 的最新 50 行
在 @file(src/auth/login.ts) 的第 42 行發生 TypeError
預期輸入:{ email: "[email protected]", password: "secure123" }
實際錯誤:Cannot read property 'id' of undefined

4. Cursor 獨特功能的活用

Cursor 擁有強大的功能。不利用這些功能實在是可惜。

  • @file/@folder: 將特定文件或文件夾納入上下文
  • @Symbols: 參考函數或類的定義
  • YOLO 模式: 無需確認即可連續執行(謹慎使用)
  • .cursorrules: 定義專案特有的規則
  • 索引同步: 深入理解整個代碼庫

5. 按步驟進行

複雜的任務必須逐步進行。一次性全部完成會導致失敗。

按步驟進行的範例:

步驟 1: 提示 3 種認證流程的設計方案
步驟 2: 使用所選設計實現框架代碼
步驟 3: 實現基本的認證邏輯
步驟 4: 添加錯誤處理
步驟 5: 創建測試案例並確認全部通過

L1 到 L5 的成長路徑

L1: 初學者級別

  • 給出的指示如「修復錯誤」、「添加功能」等模糊不清
  • 幾乎沒有上下文資訊
  • 驗證方法不明

L2: 基礎級別

  • 能傳達基本要求
  • 指定了幾個文件的 @
  • 涉及簡單的測試條件

L3: 中級級別

  • 明確的完成定義
  • 明示技術性約束
  • 有意識的按步驟進行

L4: 高級級別

  • 包括性的上下文共享
  • 有效利用 Cursor 功能
  • 考慮安全性和性能

L5: 專家級別

  • 在所有評估標準上得分高
  • 以全局視角發出指示
  • 成為其他成員的示範

實際評估報告範例

以下是對實際提示進行評估的報告:

總評

上下文共享和 Cursor 功能的利用良好,但完成定義不清晰且按步驟進行不足。安全性考量也有改進的空間。

成熟度等級

  • L2(包含基本要素,但品質提升的空間仍然很大)

分數表

指標 分數 理由
目標導向 3 大概的目標有顯示,但完成條件不清晰
約束的具體性 4 使用技術已明示,但缺少性能要求
上下文共享 7 有效使用 @file,適當指定相關文件
Cursor 功能利用 6 @file 利用良好,但 .cursorrules 和索引同步未使用
分步進行 2 一次要求全面實現,未進行分步方法
調試反復 3 錯誤發生時的應對措施不明確
重構保護 5 考慮到現有代碼的影響,但保護範圍不明
驗證/測試 4 意識到測試的存在,但缺乏具體驗證步驟
安全性/隱私 3 包含認證,但未考慮其他安全問題
計劃者/執行者分工 2 設計與實施無分離
範疇管理 5 目標功能明確,但缺乏未來擴展的考量

優勢

  • 通過 @file 提供準確的文件參考
  • 明確使用的框架(Next.js)
  • 寫出基本的功能需求
  • 意識到與現有代碼的一致性

改進點(評論和改善建議組合)

  • 用戶評論(摘錄): 「請建立用戶管理界面」

    • 問題點: 界面的具體需求和完成標準不明
    • 改善建議: 「實現用戶管理界面(CRUD 功能)。完成定義:列表顯示、新建、編輯、刪除功能可運作,@file(tests/admin/users.test.ts) 需通過」
  • 用戶評論(摘錄): 「使用 Next.js 的 App Router 實現」

    • 問題點: 路由結構和頁面組成不明確
    • 改善建議: 「在 /admin/users/ 下,創建 page.tsx (列表)、[id]/page.tsx (詳細)、new/page.tsx (新建)。繼承 @file(app/layout.tsx) 的佈局」
  • 用戶評論(摘錄): 「妥善處理錯誤」

    • 問題點: 「妥善」的標準模糊
    • 改善建議: 「錯誤處理:400 系列顯示用戶友好的消息,500 系列轉到錯誤頁面。所有錯誤記錄到 @file(utils/logger.ts)」

立即有效的對策

  • 添加完成定義:「管理者能夠切換用戶的有效性」
  • 明示測試命令:npm run test:admin && npm run e2e:admin
  • 分步拆解:「步驟 1: 創建 UI 元件 → 步驟 2: 實現 API → 步驟 3: 整合」
  • 性能標準:「用戶列表在 1000 件以內 1 秒內顯示」

高影響措施(持續改進)

  • 在 .cursorrules 中定義管理界面的共通 UI 範式
  • 創建用於管理界面的共通測試工具
  • 將安全檢查清單添加到專案中
  • 考慮引入元件庫(如 shadcn/ui)

可直接使用的下一步提示

目的:
- 實現用戶管理界面(CRUD 功能)
- 完成定義: 所有功能均可運行
  - 用戶列表顯示(帶分頁)
  - 用戶詳細顯示
  - 用戶創建/編輯(帶驗證)
  - 用戶刪除(帶確認對話框)
- 驗證: npm run test:admin:users 需通過

前提和約束:
- 技術棧: Next.js 14 App Router, Prisma, TailwindCSS
- 品質/性能: 列表顯示最多 1000 件,1 秒以内顯示,錯誤率低於 1%
- 影響範圍: 僅在 @folder(app/admin/users/) 內完成(@file(app/layout.tsx) 禁止更改)

上下文:
- 對象: 新建 @folder(app/admin/users/)
- 參考實現: 繼承 @folder(app/admin/products/) 的結構
- 數據模型: 使用 @file(prisma/schema.prisma) 的 User 模型
- 輸入輸出示例: 
  - GET /api/admin/users → [{id, email, name, role, createdAt}...]
  - POST /api/admin/users → {id, email, name, role}

進行方式:
1) 提示 UI 元件的設計方案(表格 vs 卡片格式)
2) 實現基本的 CRUD API(@folder(app/api/admin/users/))
3) 實現前端(優先使用 React Server Components)
4) 實現錯誤處理和加載狀態
5) 創建 E2E 測試(使用 Playwright)

驗證/報告:
- 實現的檔案列表及其作用
- 安全考量(授權、驗證、日誌)
- 性能測試結果
- 未來的擴展點(角色管理、一鍵操作等)

總結與個人的小撇步

逐步引入的推介:
雖然這個提示看起來有些複雜,但我覺得不如從「目標導向」和「上下文共享」開始,而不追求完美。
單純這兩者就可以顯著提升 AI 的輸出品質。

評估的習慣化:
建議定期讓大家回顧提示(指示內容)的時間。特別是分析失敗的案例,可以迅速改善。
此外,我的提示可能有不完美的地方(這是我想表達的),希望大家能夠強化和修訂「這個觀點來教育」。

最後,請根據團隊的成熟度和專案的特性自定義評估標準。最重要的是,建立一種「有意識」而非「隨意」撰寫提示的文化。

與 AI 的合作不再是特殊技巧,而是逐漸成為工程師的基本技能。希望這個框架能夠幫助大家的 AI 配對編程更加高效且有趣。

我們在 iElab 招募一同快速開發服務的夥伴

充分利用 AI 的原因在於,對於行業來說,盡可能快且多地提供產品。期待广泛招聘志同道合的人。

進行輕鬆的面談吧

隨時歡迎 DM。無論涉及招聘、AI 或管理的主題,我都很樂意討論。

新卒招聘網站

大學生設計的實習計畫「iElab AI 短訓班」招募頁面


原文出處:https://qiita.com/WdknWdkn/items/762e9020c9f4e84e3c51


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝10   💬6   ❤️6
455
🥈
我愛JS
📝1   💬5   ❤️4
95
🥉
AppleLily
📝1   💬4   ❤️1
55
#4
💬1  
5
#5
xxuan
💬1  
3
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次