

<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AI開發筆記 &#8211; Max的程式語言筆記</title>
	<atom:link href="https://stackoverflow.max-everyday.com/category/ai%E9%96%8B%E7%99%BC%E7%AD%86%E8%A8%98/feed/" rel="self" type="application/rss+xml" />
	<link>https://stackoverflow.max-everyday.com</link>
	<description>我要當一個豬頭，快樂過每一天</description>
	<lastBuildDate>Fri, 27 Mar 2026 16:58:47 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://stackoverflow.max-everyday.com/wp-content/uploads/2017/02/max-stackoverflow-256.png</url>
	<title>AI開發筆記 &#8211; Max的程式語言筆記</title>
	<link>https://stackoverflow.max-everyday.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>VS Code + GitHub Copilot，製作類似Skill Creator的步驟</title>
		<link>https://stackoverflow.max-everyday.com/2026/03/vs-code-github-copilot-skill-creator/</link>
					<comments>https://stackoverflow.max-everyday.com/2026/03/vs-code-github-copilot-skill-creator/#respond</comments>
		
		<dc:creator><![CDATA[max-stackoverflow]]></dc:creator>
		<pubDate>Fri, 27 Mar 2026 16:21:41 +0000</pubDate>
				<category><![CDATA[AI開發筆記]]></category>
		<category><![CDATA[電腦相關應用]]></category>
		<guid isPermaLink="false">https://stackoverflow.max-everyday.com/?p=8170</guid>

					<description><![CDATA[雖然 GitHub Copilot 目前沒有像 ...]]></description>
										<content:encoded><![CDATA[
<p>雖然 GitHub Copilot 目前沒有像 Claude Code 那樣內建一個名為 Skill 的標準規格，但你可以透過 <strong>Copilot Custom Instructions（自訂指令）</strong> 或建立 <strong>專屬的 Prompt Library（提示詞庫）</strong> 來達成完全相同的效果。</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="559" src="https://stackoverflow.max-everyday.com/wp-content/uploads/2026/03/vs-code-github-copilot-skill-creator_clean-1024x559.jpg?v=1774625673" alt="" class="wp-image-8171" srcset="https://stackoverflow.max-everyday.com/wp-content/uploads/2026/03/vs-code-github-copilot-skill-creator_clean-1024x559.jpg?v=1774625673 1024w, https://stackoverflow.max-everyday.com/wp-content/uploads/2026/03/vs-code-github-copilot-skill-creator_clean-600x327.jpg?v=1774625673 600w, https://stackoverflow.max-everyday.com/wp-content/uploads/2026/03/vs-code-github-copilot-skill-creator_clean-768x419.jpg?v=1774625673 768w, https://stackoverflow.max-everyday.com/wp-content/uploads/2026/03/vs-code-github-copilot-skill-creator_clean.jpg?v=1774625673 1408w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>以下是針對 VS Code + GitHub Copilot 使用者，製作類似專業技能組的實戰步驟：</p>



<h3 class="wp-block-heading">1. 建立你的技能存放庫（Skill Repository）</h3>



<p>在 VS Code 中，這不是透過外掛安裝，而是透過結構化的 Markdown 檔案來管理。</p>



<ul class="wp-block-list">
<li>在你的專案根目錄建立一個 <code>.github/copilot-instructions.md</code> 檔案（這是 Copilot 官方支援的自訂指令路徑）。</li>



<li>或者建立一個 <code>.prompts/</code> 資料夾，將不同的技能寫成獨立的 <code>.md</code> 檔案（例如 <code>ui-ux-pro.md</code>）。</li>
</ul>



<h3 class="wp-block-heading">2. 編寫技能的核心內容</h3>



<p>你可以參考 UI-UX Pro Max 的邏輯，將專業知識寫入這些 Markdown 檔案中。檔案結構建議如下：</p>



<ul class="wp-block-list">
<li><strong>角色設定</strong>：定義 Copilot 現在是哪方面的專家（例如：資深前端設計師）。</li>



<li><strong>規範與約束</strong>：條列絕對不能犯的錯誤（例如：不可使用超過三種主色）。</li>



<li><strong>風格參考</strong>：直接將專業的 CSS 變數、字體組合或配色方案寫進去。</li>



<li><strong>工作流步驟</strong>：告訴 Copilot 收到指令後，第一步先產出設計稿，第二步寫 HTML，第三步優化 Accessibility。</li>
</ul>



<h3 class="wp-block-heading">3. 如何在 VS Code 中「觸發」技能</h3>



<p>有了這些檔案後，你可以透過以下2種方式讓 Copilot 執行：</p>



<ul class="wp-block-list">
<li><strong>自動引用</strong>：(推薦)<br>如果你將指令寫在 <code>.github/copilot-instructions.md</code>，Copilot 在處理該專案的所有對話時都會自動參考這些規則。</li>



<li><strong>手動引用（# 符號）</strong>：<br>在 Copilot Chat 中輸入內容時，使用 <code>#</code> 鍵指向你的技能檔案。
<ul class="wp-block-list">
<li>範例：<code>請參考 #ui-ux-pro.md 幫我寫一個登入頁面</code>。</li>



<li>這樣 Copilot 就會讀取該檔案內的專業規範來撰寫程式碼。</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">4. 製作類似 Skill Creator 的自動化流程</h3>



<p>如果你想要像影片中那樣「自動生成技能」，可以利用 <strong>Copilot Chat 的對話能力</strong>：</p>



<ol start="1" class="wp-block-list">
<li>開啟 Copilot Chat。</li>



<li>輸入指令：<code>我想要建立一個關於 [特定功能] 的專業規範檔案。請幫我寫一個詳細的 Markdown 文件，包含專家角色、程式碼標準、常見模式與禁止事項。</code></li>



<li>讓 Copilot 生成內容後，將其存入你的 <code>.prompts/</code> 資料夾。</li>
</ol>



<h3 class="wp-block-heading">5. 跨專案複用技能</h3>



<p>如果你希望所有專案都能用到這個技能：</p>



<ul class="wp-block-list">
<li><strong>VS Code 設定</strong>：進入 <code>Settings</code> -> 搜尋 <code>github.copilot.chat.customInstructions</code>。</li>



<li><strong>貼入路徑或內容</strong>：將你寫好的通用技能規範貼進去。這樣不論你開啟哪個資料夾，Copilot 都會帶入這套專業邏輯。</li>
</ul>



<p>雖然沒有自動化的安裝指令，但這種方式能讓你更精確地掌控 Copilot 的產出品質。你想先試著為哪種任務（例如：程式碼重構、單元測試生成）建立第一套 Copilot 技能規範嗎？</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>以寫文章這作事來說，以下是在 VS Code 中實作 blog-title-writer 技能的步驟：</p>



<p>在 VS Code + GitHub Copilot 的環境下，確實有比每次手動輸入 <code>#</code>路徑更簡單、更直覺的觸發方式。這讓你可以像在使用一個內建功能一樣，直接對 Copilot 下指令，而不需要每次都指定去開啟 .md 檔案。</p>



<p>這是目前 VS Code 中最接近「設定一次，永久使用」的實作方式。Copilot 會將這些指令視為所有對話的「背景知識」和「全局規範」。</p>



<h4 class="wp-block-heading">實作步驟：</h4>



<p><strong>複製你的 Prompt 核心內容</strong></p>



<p>將你確認好的 Skill 內文 Prompt（例如：blog-title-writer 的 #指令與規範 部分）複製下來。</p>



<pre class="wp-block-code"><code>你是知識型部落格的資深編輯。當使用者提供文章內容並說出「幫我取標題」時，請執行以下動作：
1. 分析文章的核心概念與關鍵字。
2. 產出 4 個不同的標題選項。
3. **標題風格規範**：簡潔有力、專業、具備啟發性。
4. **目標受眾**：適合 30-45 歲的知識工作者閱讀。</code></pre>



<p><strong>開啟 VS Code 設定</strong></p>



<ul class="wp-block-list">
<li>在 Windows/Linux 上：<code>File</code> > <code>Preferences</code> > <code>Settings</code></li>



<li>在 macOS 上：<code>Code</code> > <code>Preferences</code> > <code>Settings</code></li>
</ul>



<p>或者使用快捷鍵：<code>Ctrl+,</code> (Windows/Linux) 或 <code>Cmd+,</code> (macOS)</p>



<p><strong>貼入指令</strong></p>



<p>在設定搜尋框中輸入：<code>github.copilot.chat.customInstructions</code>。</p>



<p>在出現的輸入框中，將剛剛複製的 Prompt 內容貼進去。</p>



<h4 class="wp-block-heading">如何觸發（超級簡單）：</h4>



<p>現在，你不需要指定檔案，不需要使用 <code>@workspace</code> 或 <code>#</code>。只需開啟 Copilot Chat ( <code>Ctrl+I</code> 或介面按鈕)，貼上文章並直接輸入：</p>



<p><strong><code>幫我取標題</code></strong></p>



<p>Copilot 就會自動套用你設定好的「資深編輯」角色和所有規範來產出標題。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">UI-UX Pro Max 在 VS Code 的實作邏輯</h3>



<p>UI-UX Pro Max 專案就是利用這種<strong>自訂指令</strong>的方式。它將數千字的專業設計規範、配色方案和工作流，整合成一套龐大的全局指令，貼入 Copilot 的設定中。</p>



<p><strong>它的觸發方式通常是：</strong></p>



<p>在 Copilot Chat 中直接輸入：</p>



<ul class="wp-block-list">
<li><strong><code>幫我設計一個符合 [SaaS 風格] 的登入頁面</code></strong></li>



<li><strong><code>幫我生成一組符合 [Apple 風格] 的配色變數</code></strong></li>
</ul>



<p>因為指令已經成為 Copilot 的「大腦一部分」，它一看到特定的關鍵字（如 [SaaS 風格]、[Apple 風格]），就會自動從「自訂指令」中調用相對應的知識庫，而不需要你每次都指定要讀取哪一個檔案。</p>



<p>這是目前在 VS Code 中最無縫、最直覺的使用體驗。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p> UI-UX-PRO-MAX 在 copilot 的注入方式</p>



<p>指令:</p>



<pre class="wp-block-code"><code>uipro init --ai copilot     # GitHub Copilot</code></pre>



<p>這條指令代表一個自動化腳本或工具（uipro CLI）正在為 GitHub Copilot 進行環境初始化。它的核心邏輯是將專業的設計規範（Skill）注入到 Copilot 的大腦中，讓它具備 UI/UX 專家的能力。</p>



<p>以下是這個指令背後運作的三個層次：</p>



<h3 class="wp-block-heading">1. 自動化配置檔案 (Scaffolding)</h3>



<p>當你執行 <code>uipro init --ai copilot</code> 時，程式碼會在你的專案目錄下自動產生特定的設定檔。</p>



<ul class="wp-block-list">
<li><strong>建立 <code>.github/copilot-instructions.md</code></strong>：這是 GitHub Copilot 官方支援的自訂指令檔案。</li>



<li><strong>寫入專家級 Prompt</strong>：腳本會將預設的 UI/UX 規範、設計系統（如 Apple, SaaS 風格）以及配色邏輯，一次性寫入這個 Markdown 檔案中。</li>



<li><strong>專案關聯</strong>：這樣一來，只要你在這個專案資料夾內啟動 Copilot，它就會自動讀取這些規則，不需要你手動貼上。</li>
</ul>



<h3 class="wp-block-heading">2. 建立知識庫檢索機制 (RAG 邏輯)</h3>



<p>UI-UX Pro Max 內含大量的設計方案（如 50+ 種風格）。Copilot 無法一次記住所有細節，因此這個指令通常會設定一個檢索邏輯：</p>



<ul class="wp-block-list">
<li><strong>關鍵字對應</strong>：在產出的指令檔中，會定義一組對應關係。例如當偵測到關鍵字 <code>SaaS Style</code> 時，引導 Copilot 去尋找特定的 CSS 變數。</li>



<li><strong>Context 注入</strong>：它利用了 Copilot 的「Context Window」，確保在對話發生時，相關的 UI 規範優先權高於 Copilot 原始的通用訓練資料。</li>
</ul>



<h3 class="wp-block-heading">3. 工作流規範化 (Standardization)</h3>



<p>這條指令不僅是給予知識，還給予了「標準作業程序」。它會在配置中規定 Copilot 產出程式碼的步驟：</p>



<ul class="wp-block-list">
<li><strong>步驟一</strong>：先定義語義化的 HTML 結構。</li>



<li><strong>步驟二</strong>：注入符合風格的 CSS 變數（而非寫死顏色數值）。</li>



<li><strong>步驟三</strong>：檢查 Accessibility（無障礙設計）是否達標。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">如何模仿這個邏輯？</h3>



<p>如果你想在自己的 VS Code 中實現類似效果，不需要複雜的 CLI 工具，只需手動做這件事：</p>



<ol start="1" class="wp-block-list">
<li>在專案根目錄建立 <code>.github/copilot-instructions.md</code>。</li>



<li>把你的 Skill 內容（如：部落格標題撰寫邏輯）貼進去。</li>



<li><strong>觸發</strong>：直接在 Copilot Chat 對話。</li>
</ol>



<p><strong>這個指令（uipro init）只是把這三件事自動化了，讓專業的 UI/UX 知識能一鍵變成 Copilot 的「內建技能」。</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>針對特定的專案（例如 React 或 Flutter）建立這種初始化腳本，寫一個簡單的 Shell 腳本來模擬這個 <code>init</code> 動作</p>



<p>這是一個簡單的 Shell 腳本，模擬 <code>uipro init --ai copilot</code> 的核心邏輯。</p>



<p>這個腳本會自動在你的專案中建立 <code>.github/copilot-instructions.md</code> 檔案，並將你剛才定義的「部落格標題專家」與「UI 設計規範」注入到 Copilot 的大腦中。</p>



<h3 class="wp-block-heading">模擬自動化初始化腳本 (init-skill.sh)</h3>



<p>你可以將以下內容存成 <code>init-skill.sh</code> 並在專案根目錄執行：</p>



<p>Bash</p>



<pre class="wp-block-code"><code>#!/bin/bash

# 1. 建立必要的目錄
mkdir -p .github

# 2. 定義要寫入的專家指令內容
SKILL_CONTENT=$(cat &lt;&lt;EOF
# 專案全局自訂指令 (GitHub Copilot Custom Instructions)

## 角色設定
你現在是這個專案的資深開發與內容編輯專家，具備以下專業技能：

### 1. 部落格標題專家 (blog-title-writer)
- 觸發關鍵字：幫我取標題
- 執行邏輯：分析內容後产出 4 個簡潔、專業、適合 30-45 歲知識工作者的標題。

### 2. UI/UX 設計規範 (minimalist-ui)
- 核心風格：極簡主義、類似 Apple 的設計美學。
- 配色原則：使用語義化 CSS 變數（如 --primary-bg, --text-main），禁止寫死顏色數值。
- 字體規範：優先使用系統預設黑體（System Sans-serif），保持呼吸感（Padding/Margin 充足）。

## 輸出要求
- 所有的程式碼必須符合 Accessibility (WCAG 2.1) 標準。
- 優先使用現代化技術棧（如 Tailwind CSS 或 CSS Modules）。
EOF
)

# 3. 寫入檔案
echo "$SKILL_CONTENT" &gt; .github/copilot-instructions.md

echo "&#x2705; Copilot 技能初始化完成！"
echo "檔案位置：.github/copilot-instructions.md"
echo "現在你可以直接在 Copilot Chat 輸入『幫我取標題』或要求設計介面了。"
</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">這個腳本背後的邏輯解析</h3>



<ol start="1" class="wp-block-list">
<li><strong>自動化建立目錄</strong>：腳本確保 <code>.github</code> 資料夾存在，這是 Copilot 搜尋自訂指令的官方路徑。</li>



<li><strong>封裝知識庫</strong>：將原本需要手動複製貼上的 Prompt，封裝在變數 <code>$SKILL_CONTENT</code> 中。這就像 <code>uipro</code> 內建的設計系統一樣。</li>



<li><strong>零設定觸發</strong>：一旦檔案產生，Copilot 在這個專案內的所有對話都會<strong>自動讀取</strong>這些規則。你不需要在對話時使用 <code>#</code> 或 <code>@</code>，這就是最簡單的「隱形技能」。</li>
</ol>



<h3 class="wp-block-heading">如何使用？</h3>



<ol start="1" class="wp-block-list">
<li>在 VS Code 終端機輸入 <code>bash init-skill.sh</code>。</li>



<li>開啟 Copilot Chat。</li>



<li>直接測試：輸入「幫我取標題：[隨便貼一段文字]」。</li>



<li>觀察結果：Copilot 是否自動產出了 4 個符合「知識工作者」風格的標題。</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>既然你在 <strong>Windows</strong> 平台，我們不需要安裝額外的 Bash 環境，直接使用內建的 <strong>PowerShell</strong> 就能完成同樣的自動化初始化動作。</p>



<p>這是一個專為 Windows 寫的 PowerShell 腳本 <code>uipro-init.ps1</code>，它會幫你把專業的 Skill 注入到專案中。</p>



<h3 class="wp-block-heading">模擬自動化初始化腳本 (uipro-init.py)</h3>



<p>這是一個符合全端開發邏輯的 Python 腳本。它採用模組化設計，將 <code>.prompts/</code> 資料夾下的 <code>.md</code> 檔案視為獨立技能，並自動同步到 <code>.github/copilot-instructions.md</code>。</p>



<p>這個腳本具備<strong>防重覆寫入</strong>、<strong>標記區塊（便於未來移除）以及批量處理</strong>的特性。</p>



<h3 class="wp-block-heading">步驟 1：準備技能檔案</h3>



<p>請確保你的專案目錄下有 <code>.prompts/blog-title-writer.md</code>，內容如下：</p>



<p>Markdown</p>



<pre class="wp-block-code"><code>### 部落格標題專家 (blog-title-writer)
- 觸發關鍵字：幫我取標題
- 執行邏輯：分析內容後產出 4 個簡潔、專業、適合 30-45 歲知識工作者的標題。
</code></pre>



<h3 class="wp-block-heading">步驟 2：Python 腳本 (sync_skills.py)</h3>



<p>我們追求的是「同步（Sync）」而不是「手動維護」。如果 <code>.prompts</code> 資料夾裡的檔案已經刪除了，腳本應該要自動發現並從 <code>.github/copilot-instructions.md</code> 中把對應的內容拔掉。</p>



<p>以下 Python 腳本，它會自動進行<strong>雙向同步</strong>：</p>



<ol start="1" class="wp-block-list">
<li><strong>新增/更新</strong>：如果 <code>.prompts</code> 有新檔案或內容更動，就寫入主檔案。</li>



<li><strong>自動清理</strong>：如果主檔案裡有某個 Skill 標記，但在 <code>.prompts</code> 裡找不到對應的 <code>.md</code> 檔，腳本會自動將其刪除。</li>
</ol>



<h3 class="wp-block-heading">自動化同步腳本 (sync_skills.py)</h3>



<p>Python</p>



<pre class="wp-block-code"><code>import os
import re

def sync_skills():
    prompt_dir = ".prompts"
    config_dir = ".github"
    instruction_file = os.path.join(config_dir, "copilot-instructions.md")
    
    if not os.path.exists(prompt_dir):
        return

    # 1. 獲取目前所有的技能檔案名稱
    current_skill_files = &#91;f for f in os.listdir(prompt_dir) if f.endswith(".md")]
    current_skills = &#91;f.replace(".md", "") for f in current_skill_files]

    # 2. 讀取現有內容 (如果檔案不存在則為空字串)
    main_content = ""
    if os.path.exists(instruction_file):
        with open(instruction_file, "r", encoding="utf-8") as f:
            main_content = f.read()

    # 3. 找出所有在主檔案中出現過的 Skill 標籤 (包含已刪除的檔案)
    existing_markers = set(re.findall(r"&lt;skill:(&#91;^>]+)>", main_content))
    
    updated_content = main_content
    # 移除「所有」舊標籤區塊，確保白紙一張
    for skill in existing_markers:
        if not skill: continue
        start_marker = f"&lt;skill:{skill}>"
        end_marker = f"&lt;/skill:{skill}>"
        pattern = re.compile(
            rf"\s*{re.escape(start_marker)}.*?{re.escape(end_marker)}\s*",
            re.DOTALL
        )
        updated_content = pattern.sub("\n\n", updated_content)

    # 4. 重新將目前存在的技能檔案依序附加
    new_blocks = &#91;]
    for skill_name in current_skills:
        source_path = os.path.join(prompt_dir, f"{skill_name}.md")
        with open(source_path, "r", encoding="utf-8") as f:
            body = f.read().strip()
        
        block = f"&lt;skill:{skill_name}>\n{body}\n&lt;/skill:{skill_name}>"
        new_blocks.append(block)
        print(f"&#x2705; 已同步技能: {skill_name}")

    # 5. 組合最終內容
    final_output = updated_content.strip() + "\n\n" + "\n\n".join(new_blocks)
    
    # 清理多餘換行
    final_output = re.sub(r'\n{3,}', '\n\n', final_output).strip()

    # 6. 寫回檔案
    os.makedirs(config_dir, exist_ok=True)
    with open(instruction_file, "w", encoding="utf-8") as f:
        f.write(final_output + "\n")

if __name__ == "__main__":
    sync_skills()</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">這樣做的好處</h3>



<ul class="wp-block-list">
<li><strong>單一事實來源 (Single Source of Truth)</strong>：你只需要管理 <code>.prompts</code> 資料夾。刪除一個檔案，跑一次腳本，<code>.github/copilot-instructions.md</code> 就會自動變乾淨。</li>



<li><strong>防錯機制</strong>：使用 <code>re.findall</code> 提取標記，確保腳本能主動發現哪些內容已經是「孤兒」並將其清理。</li>



<li><strong>保持整潔</strong>：腳本最後會執行 <code>strip()</code>，確保檔案末尾不會堆積多餘的換行符。</li>
</ul>



<p></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">背後邏輯總結</h3>



<p>這段腳本背後的邏輯就是 <strong>「專案級 RAG (檢索增強生成)」</strong>。</p>



<ul class="wp-block-list">
<li><strong>自動化配置</strong>：這就是 <code>uipro init</code> 在做的事，把繁瑣的 Prompt 寫入官方支援的隱藏路徑。</li>



<li><strong>零輸入觸發</strong>：因為 GitHub Copilot 預設會讀取 <code>.github\copilot-instructions.md</code>，它會把這個檔案內容當作「最高指導原則」。</li>



<li><strong>Windows 優化</strong>：腳本確保了編碼為 UTF-8，避免 Windows 常見的繁體中文亂碼問題。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>tag 放到 copilot-instructions.md 是否合法?</p>



<p>在 <strong>GitHub Copilot</strong> 的環境中，使用 <code>&lt;skill:blog-title-write&gt;</code> 這種標籤是<strong>完全合法且非常聰明的做法</strong>。</p>



<p>雖然 GitHub 官方文件沒有強制規定標籤格式，但 Copilot 本質上是大型語言模型（LLM），而 LLM 對於類 HTML 或 XML 的標籤（如 <code>&lt;tag&gt;</code>）具有極強的語義識別能力。</p>



<p>以下是為什麼這樣放很有效的幾個原因：</p>



<h3 class="wp-block-heading">1. 結構化語義 (Structural Semantics)</h3>



<p>對於 AI 來說，<code>&lt;skill:name&gt;</code> 比起純文字更像是一個「定義範圍」。這能幫助 Copilot 在處理長達數千行的指令時，精確區分哪一段是「全局規範」，哪一段是「特定技能」。這能有效減少指令混淆（Prompt Injection/Confusion）的問題。</p>



<h3 class="wp-block-heading">2. 模仿業界標準</h3>



<p>許多 AI Agent 框架（如 Claude 的系統提示詞或 OpenInterpreter）都使用類似的標籤來封裝工具（Tools）或技能。Copilot 看到這種格式時，會自動將其理解為一個「功能模組」。</p>



<h3 class="wp-block-heading">3. 方便 Python 腳本管理</h3>



<p>使用 <code>&lt;skill:name&gt;</code> 或我之前建議的 &#8220; 註釋標籤，最大的好處是<strong>對人類與機器雙向友好</strong>：</p>



<ul class="wp-block-list">
<li><strong>對 Copilot</strong>：它看得到 <code>&lt;skill></code> 標籤並理解其含義。</li>



<li><strong>對 Python 腳本</strong>：這是一個極佳的「錨點（Anchor）」，方便我們用正則表達式進行新增、刪除或更新，而不會誤刪到檔案中的其他內容。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">建議的最終格式</h3>



<p>為了讓你的 <code>copilot-instructions.md</code> 既符合 AI 邏輯，又方便你的 Python 腳本維護，我建議採用這種組合格式：</p>



<p>Markdown</p>



<pre class="wp-block-code"><code>&lt;skill name="blog-title-write"&gt;
### 部落格標題專家
- 觸發關鍵字：幫我取標題
- 指令內容：...
&lt;/skill&gt;
</code></pre>



<ul class="wp-block-list">
<li><strong>&#8220;</strong>：這是給你的 Python 腳本看的，Copilot 會忽略它，這樣能確保你的主檔案界面看起來很乾淨。</li>



<li><strong><code>&lt;skill></code> 標籤</strong>：這是給 Copilot 讀取的，讓它明確知道這是一個獨立的技能區塊。</li>
</ul>



<h3 class="wp-block-heading">總結</h3>



<p>這不僅合法，還是<strong>進階 Prompt Engineering</strong> 的表現。它能讓你的自動化腳本更穩定，也能讓 Copilot 的執行結果更精準。</p>



<p>既然你已經確定了標籤格式，需要我幫你把剛才那個 Python 腳本的 <code>START_MARKER</code> 統一改成這種 <code>&lt;skill&gt;</code> 格式嗎？</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://stackoverflow.max-everyday.com/2026/03/vs-code-github-copilot-skill-creator/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Prompt vs Context vs Harness Engineering</title>
		<link>https://stackoverflow.max-everyday.com/2026/03/prompt-vs-context-vs-harness/</link>
					<comments>https://stackoverflow.max-everyday.com/2026/03/prompt-vs-context-vs-harness/#respond</comments>
		
		<dc:creator><![CDATA[max-stackoverflow]]></dc:creator>
		<pubDate>Sun, 22 Mar 2026 15:39:39 +0000</pubDate>
				<category><![CDATA[AI開發筆記]]></category>
		<guid isPermaLink="false">https://stackoverflow.max-everyday.com/?p=8073</guid>

					<description><![CDATA[Harness: 馬具、韁繩。 Harness ...]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="572" src="https://stackoverflow.max-everyday.com/wp-content/uploads/2026/03/covered_Gemini_Generated_Image_1gmj3e1gmj3e1gmj-1024x572.jpg" alt="" class="wp-image-8122" srcset="https://stackoverflow.max-everyday.com/wp-content/uploads/2026/03/covered_Gemini_Generated_Image_1gmj3e1gmj3e1gmj-1024x572.jpg?v=1774259264 1024w, https://stackoverflow.max-everyday.com/wp-content/uploads/2026/03/covered_Gemini_Generated_Image_1gmj3e1gmj3e1gmj-600x335.jpg?v=1774259264 600w, https://stackoverflow.max-everyday.com/wp-content/uploads/2026/03/covered_Gemini_Generated_Image_1gmj3e1gmj3e1gmj-768x429.jpg?v=1774259264 768w, https://stackoverflow.max-everyday.com/wp-content/uploads/2026/03/covered_Gemini_Generated_Image_1gmj3e1gmj3e1gmj.jpg?v=1774259264 1376w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list">
<li>為什麼你的 AI Agent 總是在瞎忙？可能你缺的不是好 Prompt，而是 Harness</li>



<li>同個模型，成功率從 42% 噴發到 78% 的秘密：揭開「韁繩工程」的面紗</li>



<li>AI 總是「一本正經胡說八道」？試試從 Context Engineering 進化到系統化管理</li>



<li>【告別咒語時代】AI 工程師的三次進化：從 Prompt 到 Harness Engineering</li>



<li>別再只練 Prompt 了！2026 年 AI Agent 穩定落地的核心關鍵是「Harness」</li>



<li>OpenAI 定義的新範式：為什麼「韁繩工程」才是 AI 的未來？</li>
</ul>



<p>Harness: 馬具、韁繩。</p>



<p>Harness Engineering（駕馭工程）：核心哲學是，「Humans steer, agents execute」（人類掌舵，代理執行）。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>▋ <strong>Prompt Engineering 已經不夠用了？AI 工程師的三次進化</strong></p>



<p>你最近有沒有發現，「Prompt Engineering（提示工程）」這個詞好像越來越少人提了？這不是因為它過時了，而是因為光靠寫好「咒語」已經完全不夠用。</p>



<p>從 2023 到 2026，短短三年內，AI 工程的核心技能經歷了三次大跳躍。如果你還停留在調教提示詞的階段，那你可能只發揮了 AI 不到一半的實力。</p>



<p>這篇文章幫你整理 AI 工程師的三次進化路徑，直接決定你跟 AI 協作的效率。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>▋ <strong>第一階段：Prompt Engineering (2023-2024) —— 寫咒語的藝術</strong></p>



<p>那時候 ChatGPT 剛爆紅，大家都在研究怎麼「問對問題」。</p>



<p>不管是設定 AI 的身分（你是專業工程師）、給它範例（Few-shot），還是叫它一步步思考（Chain-of-thought），核心信念只有一個：只要你寫對 Prompt，模型就會給你好答案。</p>



<p>但很快大家就發現了它的天花板：</p>



<ul class="wp-block-list">
<li>任務一複雜就倒。</li>



<li>沒辦法處理私有知識。</li>



<li>沒辦法讓 AI 記住太久以前的事。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>▋ <strong>第二階段：Context Engineering (2025) —— 策展資訊的藝術</strong></p>



<p>到了 2025 年，大家意識到「怎麼問」只是基本，「帶什麼資訊進場」才是關鍵。</p>



<p>這就是 <strong>Context Engineering（上下文工程）</strong>。</p>



<p>這不只是把問題寫清楚，而是要把 AI 運作時需要的「素材」準備好：</p>



<ul class="wp-block-list">
<li><strong>RAG（檢索增強）</strong>：解決 AI 不知道私有知識的問題。</li>



<li><strong>Tools（工具）</strong>：給 AI 手腳，讓它能查天氣、跑程式碼、搜網頁。</li>



<li><strong>Memory（記憶）</strong>：讓 AI 記住你的偏好和之前的決策。</li>
</ul>



<p>簡單來說，你不再只是下命令，而是在幫 AI 「劃重點」。你要確保進到 AI 腦子裡的 token 都是含金量最高的。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>▋ <strong>第三階段：Harness Engineering (2026) —— 建造系統的藝術</strong></p>



<p>這是現在最火的概念。2026 年初，OpenAI 正式定義了 <strong>Harness Engineering（韁繩工程）</strong>。</p>



<p>「Harness」原意是馬具、韁繩。在 AI 世界裡，它指的是圍繞在 AI Agent 周圍的「運行環境」。</p>



<p>因為我們發現，AI 表現不好，通常不是它不夠聰明，而是它不知道「現在該看什麼」、「做錯了怎麼改」、「什麼時候該停下來」。</p>



<p>Harness Engineering 的核心是打造一個自動化的閉環系統：</p>



<ul class="wp-block-list">
<li><strong>明確的邊界</strong>：告訴 AI 哪些能碰、哪些不能碰。</li>



<li><strong>回饋迴圈</strong>：AI 寫完程式碼，系統自動跑測試（Linter/Test），錯了就自動把錯誤訊息丟回給 AI 修。</li>



<li><strong>可觀測性</strong>：像飛機儀表板一樣，讓人類隨時知道 AI 進行到哪一步。</li>
</ul>



<p><strong>數據顯示：同樣的模型，沒加 Harness 成功率 42%，加上適當的系統環境後直接跳到 78%！</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>▋ <strong>用「開車」來比喻這三次進化</strong></p>



<ul class="wp-block-list">
<li><strong>Prompt Engineering</strong>：學會怎麼跟司機說「左轉」。</li>



<li><strong>Context Engineering</strong>：給司機地圖、導航和即時路況。</li>



<li><strong>Harness Engineering</strong>：建造整條高速公路系統——有護欄、有號誌、有標線。不管誰來開，都能安全到達。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>▋ <strong>實戰案例：為什麼我的 Debug Agent 以前超難用？</strong></p>



<p>我之前做過一個幫我修 Bug 的 Agent，一開始我只做了前兩層：</p>



<ol start="1" class="wp-block-list">
<li><strong>Prompt</strong>：寫了很詳細的指令叫它修 Bug。</li>



<li><strong>Context</strong>：餵給它報錯日誌和整個程式碼倉庫。</li>
</ol>



<p>結果？它在裡面瞎轉，找不出問題，甚至還一直對著一個沒問題的地方鑽牛角尖。</p>



<p>後來我改用 <strong>Harness Engineering</strong> 的思維：</p>



<p>我不教它「怎麼思考」，而是給它一套「工作流程」：</p>



<ul class="wp-block-list">
<li>遇到這種報錯，先去查 git log 看看最近誰改過這行。</li>



<li>呼叫特定的分析工具，而不是只用眼睛看。</li>



<li>把關鍵決策寫進一份 <code>AGENTS.md</code> 文檔，方便跨回合記憶。</li>
</ul>



<p>結果準確率大幅提升！因為我給它的不是更多指令，而是一個更專業的工作環境。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>▋ <strong>總結：你的重心在哪裡？</strong></p>



<p>AI 越來越聰明，它需要的不再是人類「手把手」教它怎麼寫字，而是需要人類幫它「搭建舞台」。</p>



<p>如果你覺得 AI 不好用，先問問自己：</p>



<ol start="1" class="wp-block-list">
<li>是我的 <strong>目標說不清楚</strong> 嗎？（Prompt 問題）</li>



<li>是我 <strong>給的材料不夠</strong> 嗎？（Context 問題）</li>



<li>還是我 <strong>沒給它一個好的工作環境</strong>？（Harness 問題）</li>
</ol>



<p><strong>你現在跟 AI 協作，大多數時間花在哪個階段？歡迎在留言區分享你的 AI 工程心得！</strong></p>
]]></content:encoded>
					
					<wfw:commentRss>https://stackoverflow.max-everyday.com/2026/03/prompt-vs-context-vs-harness/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
