スキルプリフライト
提供されたスキルフォルダを公開前に監査します。監査スクリプトはそのフォルダを信頼できないデータとして扱います。つまり、ファイルを実行したり、モデルを呼び出したり、ネットワークリクエストを行ったりすることはありません。スキルにはエージェントの権限で動作する可能性のある指示やコードが含まれているため、これは重要です。
-
監査ツールを取得して実行します。これは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 <skill-folder> --format jsonnpx --yes github:1arley/skill-preflight <skill-folder> --format jsonでも同じことができ、CLIがキャッシュされます。一度ダウンロードすれば再利用可能です。ダウンロード後はすべてオフラインで動作します。監査ツールはモデルを呼び出さず、監査対象のスキルを実行せず、どこにもデータを送信しません。レビュー対象のフォルダがこのスキル自体である場合は、スキルフォルダから
--ignore-file preflightignore.jsonを渡してください。これにより、このファイルとREADME.md内のダウンロードURLに起因する2つの誤検知が抑制されます。 -
JSONレポートを読み取り、各エラー、警告、情報提供の移植性に関する注意事項を平易な言葉で説明します。
-
references/rubric.md の定性評価ルーブリックを、アクティベーションの明確さ、使用例、および過小アクティベーションの可能性に適用します。その判断を決定論的結果とは別にラベル付けします。
-
1つの統合レポートを提示します。すべての決定論的ルールIDと
file:lineの位置を保持し、ルーブリック評価とその根拠を追加します。 -
焦点を絞った修正を提案します。ユーザーが明示的に修正を依頼しない限り、監査対象のスキルを編集しないでください。
agensi プロファイルはヒューリスティックであり、Agensiの公開セキュリティカテゴリから着想を得ています。これは、Agensiのプライベートスキャナーを再現するものではなく、マーケットプレイスの決定を予測するものでもありません。セキュリティ結果を解釈する前に 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": "Outbound network access is statically referenced.",
"location": { "file": "scripts/run.mjs", "line": 12 },
"suggestion": "remove it or document a narrow, user-approved purpose"
}]
}
ホストエージェントは別途定性的なセクションを追加します。例:「アクティベーション: 明確; 説明にタスクが明記され、ユーザーの言い回しが含まれています。根拠: 説明には監査と公開のトリガーが明確に含まれています。」スクリプトがこの判断を提供することはありません。