自訂升級指示是 Markdown 檔案,用於引導 GitHub Copilot Upgrade 在升級期間套用特定的轉換作業。 建立這些檔案以自動化重複性變更,例如替換一個函式庫或套用特定的 API 升級。
本文說明如何建立並結構化自訂升級指令檔,單獨測試,並將其整合進升級工作流程的評估階段。
先決條件
在建立自訂指令前,先在你的開發環境中設定 GitHub Copilot 升級。 關於安裝步驟,請參見「安裝 GitHub Copilot 升級」。
瞭解自訂升級指示
GitHub Copilot 升級功能會在升級的評估與規劃階段視需要以 Markdown 檔案形式擷取自訂升級指示。 客製化升級說明與copilot-instructions.md的不同之處在於:
- 目標是自動化程式碼和相依性變更。
- 僅在與當前升級評估或計畫相關時檢索。
- 複製到每個儲存庫時,可跨解決方案重複使用。
使用以下方式建構您的指令檔案:
- 描述該動作的簡短標題。 例如,「將 Newtonsoft.Json 取代為 System.Text.Json」。
- 簡潔的問題陳述或先決條件部分。
- 明確的步驟邏輯(「如果找到 X,就執行 Y」)。 避免使用模糊的語言。
- (推薦)從實際本機編輯擷取的一或多個差異範例,以引導轉換。
除了自訂升級說明外,你還可以透過標準的技能與說明系統擴展 GitHub Copilot 升級。 技能為代理提供能力,指令檔(如 copilot-instructions.md)則提供全域指引。
建立自訂升級指示
請依照下列步驟產生和精簡新的指令檔案。 這些章節著重於將 替換 Newtonsoft.Json 為 System.Text.Json 作為範例。
啟動升級
請依照以下步驟開始升級:
啟動代理人時,請使用以下其中一種方法:
-
Visual Studio:右鍵點擊 方案總管 中的解決方案或專案,選擇 Modernize。 或者,打開 GitHub Copilot Chat 視窗並輸入
@Modernize. -
Visual Studio Code:打開 GitHub Copilot Chat面板並輸入
@upgrade。 -
GitHub Copilot CLI:輸入
@upgrade,接著輸入您的升級或遷移請求。 -
GitHub Copilot 應用程式:在代理選擇器中,選擇
Upgrade。
-
Visual Studio:右鍵點擊 方案總管 中的解決方案或專案,選擇 Modernize。 或者,打開 GitHub Copilot Chat 視窗並輸入
告訴客服人員要升級或遷移什麼。
建立指令檔案
在聊天中,輸入:
I want to generate a custom upgrade instruction。當被要求時,提供像是
I want to replace Newtonsoft with System.Text.Json這樣的情境,讓Copilot建立檔案。當 Copilot 建立新的檔案時,例如
replace_newtonsoft_with_system_text_json.md,檢閱內容並在聊天中完善它。 例如,請Copilot「釐清偵測標準」或「新增先決條件」。小提示
如果檔案尚未包含在方案中,請將其加入以便在方案中顯示。
用真實的差異範例來強化教學。
- 在一個專案中手動進行所需的程式碼變更。 例如,“刪除套件
Newtonsoft.Json,使用指令更新,並將代碼替換JsonConvert為JsonSerializer”。 - 在聊天中,開啟指令檔案,輸入:
Check my git changes and add diffs as examples to my instruction file。 - 確認 Copilot 使用 git diff 並在 Markdown 檔案中附加了有圍欄的 diff 區塊或結構化範例。
- 在一個專案中手動進行所需的程式碼變更。 例如,“刪除套件
編寫秘訣
請遵循以下指引,撰寫清晰且有效的客製化升級指示,讓 Copilot 能可靠解讀:
- 使用清晰的條件語句:
If code references X, then do Y. - 每個檔案保留一個轉換;當多個檔案必須依序執行時,請使用必要條件。
- 至少提供一個具體範例,例如差分或前後的片段,以提升轉換準確度。
- 避免使用像「改進」或「修正」這類含糊動詞;使用明確的動作,如「替換」、「移除」和「更新」。
測試自訂升級指示 (一次性執行)
在升級時執行指令前,先單獨驗證指令。 獨立測試有助於你精煉偵測並驗證程式碼變更。
啟動升級
請依照以下步驟開始升級:
啟動代理人時,請使用以下其中一種方法:
-
Visual Studio:右鍵點擊 方案總管 中的解決方案或專案,選擇 Modernize。 或者,打開 GitHub Copilot Chat 視窗並輸入
@Modernize. -
Visual Studio Code:打開 GitHub Copilot Chat面板並輸入
@upgrade。 -
GitHub Copilot CLI:輸入
@upgrade,接著輸入您的升級或遷移請求。 -
GitHub Copilot 應用程式:在代理選擇器中,選擇
Upgrade。
-
Visual Studio:右鍵點擊 方案總管 中的解決方案或專案,選擇 Modernize。 或者,打開 GitHub Copilot Chat 視窗並輸入
告訴客服人員要升級或遷移什麼。
測試升級指令
在聊天中,用與檔名相似的措辭呼叫指令。 例如:
replace Newtonsoft with System.Text.Json。請在聊天視窗確認 Copilot 是否取得了指令檔案:
> Getting instructions for 'replace Newtonsoft with System.Text.Json'. Perfect! I've retrieved the scenario instructions for upgrading from Newtonsoft.Json to System.Text.Json. Now I'll begin the analysis following the scenario-specific instructions.如果 Copilot 沒有顯示找到指示,請用檔案名稱中的關鍵字重新嘗試,例如相同的動詞和名詞組合。
檢視建議的變更(解決方案差異、待提交或預覽修改),確認自訂升級指令是否如預期運作。
驗證提示
如果測試執行沒有達到預期結果,請使用以下故障排除技巧來精煉你的指令檔:
- 如果 Copilot 只更新套件版本而非替換套件,請確保指令明確說明要移除或替換舊套件。
- 請使用一致的命名方式,以確保自然語言的啟動匹配能夠準確運作。 例如,將檔案名稱開頭以
replace_開始,並在開啟聊天請求時以「替換...」作為起始語。 - 測試時,將缺失的程式碼模式作為範例以提升覆蓋率。
在升級期間套用自訂指示
利用這些步驟,將現有的客製化升級指示納入升級評估階段。
啟動升級
要開始升級,請依照以下步驟操作:
啟動代理人時,請使用以下其中一種方法:
-
Visual Studio:右鍵點擊 方案總管 中的解決方案或專案,選擇 Modernize。 或者,打開 GitHub Copilot Chat 視窗並輸入
@Modernize. -
Visual Studio Code:打開 GitHub Copilot Chat面板並輸入
@upgrade。 -
GitHub Copilot CLI:輸入
@upgrade,接著輸入您的升級或遷移請求。 -
GitHub Copilot 應用程式:在代理選擇器中,選擇
Upgrade。
-
Visual Studio:右鍵點擊 方案總管 中的解決方案或專案,選擇 Modernize。 或者,打開 GitHub Copilot Chat 視窗並輸入
告訴客服人員要升級或遷移什麼。
自訂升級
在評估階段請遵循以下步驟:
監控聊天室,看看 Copilot 是否會在評估過程中自動取得你的自訂指令檔案。 找是否有訊息顯示它開啟了 Markdown 指令檔。
如果 Copilot 沒有自動套用自訂指令,請明確要求。 用與檔案名稱相似的措辭。 例如:
use the custom instructions to replace Newtonsoft with System.Text.Json during the assessment。等 Copilot 確認它已經取得 Markdown 檔案。 如果你沒看到指令檔的參考,請用檔案的關鍵字動詞(replace、update、remove)和套件名稱重新陳述請求。
檢視
assessment.md資料夾中的.github/upgrades檔案。 確認評估包含你的客製化指示所識別的問題與變更。例如,當更換 Newtonsoft 時,評估會指出:
- 使用
Newtonsoft.Json套件的專案。 - 程式碼模式用於重構針對
System.Text.Json。 - 需要移除或替換依賴性。
- 使用
如有需要,請編輯
assessment.md檔案以補充背景或調整已識別的問題再繼續。當評估結果反映出你的客製化指示後,告訴 Copilot 繼續進入規劃階段。
請檢查 Copilot 產生的
plan.md檔案。 此檔案包含針對評估問題的策略。指示 Copilot 繼續,以進入執行階段。 監視
tasks.md檔案,以觀察 Copilot 套用轉換的過程。
改進激活的方法
你如何命名並呼叫自訂升級指令,會影響 Copilot 是否會自動取得這些指令。 請遵循以下指引以提升啟動可靠性:
- 與檔案的動詞相符。 如果檔名使用
replace,請使用該表述(非upgrade或fix)。 - 每個檔案保留一個轉換,方便辨識和重複使用。 透過列出每個檔案中的先決條件來排序多個檔案。
- 在評估階段就申請客製化指示以獲得最佳效果,而非等待規劃或執行。
- 避免像 「改進評量」 這類模糊的要求。明確說明:「評估時應用replace_newtonsoft_with_system_text_json指示。」
驗證套用的變更
升級完成後:
- 請檢視
tasks.md檔案.github/upgrades,查看與自訂指令相關的任務狀態。 - 檢查執行階段所建立的 Git 提交是否有與自訂指令相關的變更。
- 執行測試以確保功能行為保持正確。
- 可選:擷取成功變更的差異範例並加入指令檔,以強化未來自動化。
清理資源
移除或整合任何臨時指令檔,以避免未來升級時轉換重疊。