Community程式設計與開發github.com

技能預檢(1arley/skill-preflight)

對技能資料夾進行格式、結構、靜態安全性與供應鏈問題的審計。當有人說「審計這個技能」、「檢查我的 SKILL.md」、「這個技能能否安全發布」、「lint 技能」或「準備上架 Marketplace」時使用。

skill-preflight) 是什麼?

這是一個 AI 代理技能,用於在發布前對技能資料夾進行全面審計。審計過程將目標資料夾視為不受信任的數據,絕不執行其檔案、呼叫模型或發起網路請求。這項設計至關重要,因為技能可能包含會獲取代理權限的指令或程式碼。該技能從 GitHub 下載一個無執行時期依賴的獨立審計腳本(preflight.mjs),並以 JSON 格式輸出報告。報告包含格式錯誤、安全警告、供應鏈風險等確定性發現,並附有規則 ID 與檔案行號。此外,技能會套用一份定性評分表(參考 rubric.md),針對啟動清晰度、範例品質及可能的啟動不足進行單獨評估。最終報告合併兩部分,並由使用者決定是否根據建議進行修正。支援 `default` 與 `agensi` 兩種設定檔,其中 `agensi` 為啟發式安全分類,不預測 Marketplace 審核結果。適用於 Claude Code、Cursor、Codex 等支援技能審計流程的平台。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/1arley/skill-preflight/tree/HEAD/skills/devtools/skill-preflight

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

技能預檢

在發布前審計提供的技能資料夾。審計腳本將該資料夾視為不受信任的數據:它絕不執行其中的檔案、呼叫模型或發起網路請求。這點很重要,因為技能可能包含會以代理權限運作的指令或程式碼。

  1. 取得審計器並執行。它是一個自包含檔案,無執行時期依賴,發布於 https://github.com/1arley/skill-preflight:

    curl -fsSL https://raw.githubusercontent.com/1arley/skill-preflight/main/scripts/preflight.mjs -o /tmp/skill-preflight.mjs
    node /tmp/skill-preflight.mjs <技能資料夾> --format json
    

    npx --yes github:1arley/skill-preflight <技能資料夾> --format json 效果相同,並會快取 CLI。下載一次即可重複使用。下載完成後所有操作離線執行:審計器從不呼叫模型、不執行被審計技能、不傳送任何資料到任何地方。

    當審查的資料夾就是本技能自身時,請從技能資料夾傳遞 --ignore-file preflightignore.json。它會抑制由於本檔案與 README.md 中的下載 URL 所造成的兩個誤報。

  2. 讀取 JSON 報告,並以白話說明每個錯誤、警告及資訊性可攜性備註。

  3. 套用 references/rubric.md 中的定性評分表,評估啟動清晰度、範例品質及可能的啟動不足。將此判斷與確定性發現分開標示。

  4. 呈現一份合併報告。保留所有確定性規則 ID 與 file:line 位置,然後附加評分表評估與其證據。

  5. 建議有針對性的修正。除非使用者明確要求您進行這些修正,否則不要編輯被審計的技能。

agensi 設定檔為啟發式,靈感來自 Agensi 公開的安全分類。它不複製其私有掃描器,也不預測 Marketplace 的決策。在解釋安全發現之前,請先閱讀 references/security.md;在轉換報告格式時,請閱讀 references/report-format.md。

範例

輸入:

node /tmp/skill-preflight.mjs ./my-skill --profile default --format json

確定性輸出片段:

{
  "schemaVersion": "1.0.0",
  "summary": { "errors": 0, "warnings": 1, "infos": 0 },
  "findings": [{
    "id": "SEC-001", "severity": "warning", "category": "security",
    "message": "靜態引用到對外網路存取。",
    "location": { "file": "scripts/run.mjs", "line": 12 },
    "suggestion": "移除它,或記錄一個狹窄、經使用者核准的目的"
  }]
}

主機代理會另外新增一個定性區段,例如:「啟動:清晰;描述中說明了任務並包含使用者措辭。證據:描述包含明確的審計與發布觸發條件。」腳本本身從不提供該判斷。

相關技能