Bible Network Crypto DeFi Onchain RWA AI Agent Stablecoin Chain SAFU CryptoTax DeFAI AGI Claude Me Claude Skill Claude Design Claude Cowork
獨立知識媒體
與任何項目無關聯
學會用 Claude,每件事都做得更好
claudeskill-me.com
最新
為什麼裝了 Skill 卻不會觸發?15,000 字元預算爆了,Claude Code 會悄悄丟棄描述且不警告  ·  Effort 跟 Temperature 都是「調整輸出」的參數,差在哪裡?新模型上其中一個已經失效  ·  官方 anthropics/skills 倉庫評測:168k 星星的內容品質沒問題,問題出在你根本找不到它  ·  Subagent 不是更聰明的小 Claude——它解決的是隔離問題,不是能力問題  ·  SKILL.md 到底該寫多長?官方 500 行門檻背後的三層漸進式披露邏輯  ·  XML 標籤怎麼用才對?3 個真實案例對比純文字 Prompt 的差異
名詞解析 · workflow

YAML Frontmatter

YAML Frontmatter
workflow beginner

30 秒版 · 給沒耐心的人
放在 Markdown 檔案最開頭、以 --- 包夾的 YAML 格式區塊,用來描述檔案的中繼資料,是 Skill 三層漸進式披露機制裡第一層永遠會被載入的部分。
完整解說 +
01 · 這是什麼?

YAML Frontmatter 是什麼,跟一般的檔案內容有什麼不同?

YAML Frontmatter 是放在 Markdown 檔案最開頭的一個獨立區塊,用一對 --- 標記包起來,裡面用 YAML 格式寫著關於這個檔案的中繼資料(metadata),例如名稱、描述、版本、授權方式等。它跟檔案主體內容的差別在於:主體是要給讀者(或 Claude)閱讀理解的實質內容,Frontmatter 則是描述「這份內容是什麼」的結構化標籤,通常不會直接顯示給使用者看,而是被系統用來做索引、篩選、或決定要不要載入。

Claude CodeSkill 檔案裡,Frontmatter 只有開頭那一段 --- 是檔案的第一行時才會被正確解析;如果前面多了其他文字,整份檔案會被當成沒有 Frontmatter,全部內容都被當作一般說明文字處理。

02 · 為什麼存在?

YAML Frontmatter 為什麼存在,解決了什麼問題?

如果沒有 Frontmatter,系統要判斷一個檔案「是什麼」,唯一的辦法就是把整份內容讀進來分析——這在檔案數量少的時候還可以接受,但當一個系統可能同時掛載幾十個 Skill 時,每次啟動都要把每個 Skill 的完整內容讀一遍才能判斷相不相關,會消耗掉大量不必要的上下文空間。

Frontmatter 解決的正是這個問題:把「這是什麼、什麼時候該用」濃縮成幾十個 token 的中繼資料,讓系統在啟動階段只需要讀這一小段就能做出初步判斷,真正需要用到某個 Skill 時才去讀取完整本體。這也是 Skill 架構所謂三層漸進式披露的第一層——metadata 永遠載入,本體視觸發情況載入,延伸檔案視實際需要載入。

03 · 如何影響你的決策?

YAML Frontmatter 實際運作起來是什麼樣子?

Claude CodeSkill 標準來說,Frontmatter 規範裡真正被官方標準承認的欄位只有六個:必填的 name(小寫、連字號分隔)與 description(說明這個 Skill 做什麼、什麼時候該用),以及選填的 licensecompatibilitymetadataallowed-tools。Claude Code 系統啟動時只讀取每個 Skill 的 namedescription,這一步消耗的 token 數極小,即使同時掛載大量 Skill 也不會造成明顯負擔。

在這六個欄位裡,description 這個欄位的重要性遠高於其他欄位——它是系統決定要不要觸發某個 Skill 的唯一比對依據,如果寫得不夠具體,即使本體內容再完整,Claude 也可能因為判斷不出相關性而從未觸發它。這也是為什麼多數教學都會特別強調:Frontmatter 裡最值得花心思打磨的,往往不是欄位數量多寡,而是這一句 description 寫得夠不夠精準。

04 · 你該怎麼辦?

了解 YAML Frontmatter 的運作邏輯,對我實際寫 Skill 有什麼影響?

最直接的影響是寫作順序:應該先把 description 寫到位——具體到能讓 Claude 一眼判斷「這個請求該不該觸發我」——再去思考本體內容要放什麼,而不是反過來。很多新手容易把力氣花在本體寫得多詳細,卻忽略了如果 description 判斷不準,Claude 根本不會走到讀本體那一步,本體寫得再好都沒有用武之地。

另一個實務上容易踩到的坑,是把開頭那對 --- 標記寫錯位置——例如前面多打了一行空白或註解,導致 Frontmatter 解析失敗、整份檔案被當成純文字內容處理。這種情況下 Skill 通常不會直接報錯,而是安靜地失效(沒有 name 或無法被辨識),寫完 Skill 後最好實際測試看看 Claude 會不會在對的情境下觸發它,而不是只靠肉眼檢查格式。

資料來源:Agent Skills - Claude Platform DocsExtend Claude with skills - Claude Code Docs
實際例子 +

GitHub 上的 data-engineering-skills 開源專案是一個實際案例:這個專案為 Apache Iceberg、Apache Flink 等多項資料工程技術各自建立獨立的 Skill 資料夾,每個資料夾底下的 SKILL.md 都只在 Frontmatter 裡放最精簡的 name 和 description,刻意把 SKILL.md 本體控制在簡短範圍,只有當某項技術真的需要大量離線細節、固定腳本或範本時,才額外新增 references/、scripts/、assets/ 子目錄,是三層漸進式披露原則在真實開源專案裡的具體實踐。

常見誤解 +
✕ 誤解1
× 誤解:Frontmatter 欄位越多、寫得越詳細,Skill 就越容易被正確觸發,實際是:系統啟動時只讀 name 和 description 這兩個欄位做判斷,其他欄位(license、compatibility、metadata)不影響觸發準確率,真正決定觸發與否的只有 description 寫得夠不夠具體
✕ 誤解2
× 誤解:Frontmatter 只是格式上的裝飾,拿掉也不影響 Skill 內容本身,實際是:如果開頭 --- 標記位置錯誤導致解析失敗,整份檔案會被當成沒有 Frontmatter,Skill 可能因此完全無法被系統辨識為可觸發的 Skill,本體內容再完整也不會被使用
這件事跟你有什麼關係 +
直接影響

優點是能用極少的 token 成本讓系統快速判斷大量 Skill 的相關性,不必逐一讀取完整內容;缺點是這個機制高度依賴 description 寫得夠不夠精準,如果描述含糊,即使本體內容完善,Skill 也可能從未被正確觸發,等於白寫。

提問
請至少輸入 10 個字
更多相關主題