huawei-cloud-skill-audit について
huawei-cloud-skill-auditは、Huawei Cloudの単一スキルまたはスキルディレクトリを監査するセキュリティスキルです。3種類の組み込みチェックを実行し、問題の詳細と修正方針を含むレポートを生成します。
主な機能
- 013種類のセキュリティチェック
- 02選べる5段階のスキャン
- 03単一スキルまたはフォルダーのスキャン
- 04チェック項目の選択と除外
- 05問題と修正方針のレポート
活用シーン
- 01リリース前のスキル監査
- 02コミット前の簡易スキャン
- 03CI/CDでのスキル変更のゲート
- 04問題と修正手順の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ huaweicloud/ huaweicloud-skills --skill huawei-cloud-skill-auditインストール後、Claude Code で/huawei-cloud-skill-auditを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.gitignore.markdownlint.jsonreferences/acceptance-criteria.mdcli-installation-guide.mdgitcode-security-scanner.mdiam-policies.mdsecurity-audit-guide.mdverification-method.mdscripts/check_protocol.pycheck_registry.pyensure_cli.shhcloud-run.shinstall_cli.shskill_audit.pyscripts/checks/__init__.pygitleaks_builtin_check.pygitleaks_check.pygitleaks_rules.jsonhwcloud_spec_check.pyllm_arbiter.pymarkdownlint_check.pyruntime_security_check.pyruntime_security_rules.jsonskill_quality_rules.jsonskillcheck_check.pyskillspector_builtin_check.pyskillspector_check.pyskillspector_rules.jsonscripts/cli/cli_entry.pycli_reporting.py詳細
Huawei Cloud Skill Audit
Huawei Cloud スキルを監査するための3段階セキュリティパイプライン — セキュリティゲートです。
Step 0: skill-quality-cli をインストールする(冪等、インストール済みの場合はスキップ)
まず
AUDIT_DIRを、このスキルのインストール先の絶対パスに設定します(export AUDIT_DIR=/path/to/huawei-cloud-skill-audit、 例:$HOME/.local/share/huawei-cloud-skill-audit)。以降のすべてのコマンドでこれを使用してください。 監査対象ディレクトリ内で相対パスを使ってこのスキルのスクリプトを実行することは禁止されています(ディレクトリ内にある悪意のある同名スクリプトによる乗っ取りを防ぐため。Core Commands のセキュリティ要件を参照)。
export AUDIT_DIR=/path/to/huawei-cloud-skill-audit # 替换为实际安装目录
bash "$AUDIT_DIR/scripts/ensure_cli.sh"
⚠️ 必須要件:このスキルの
hcloudコマンドは、すべてskill-quality-cli run --skill-name huawei-cloud-skill-audit --でラップする必要があります。hcloudを直接実行することは禁止されています。(必須:hcloudの直接呼び出しは固く禁じられています。)インストール動作について:
- インストール済みで利用可能な場合 → 何も表示せずスキップします。未インストールの場合 → Huawei Cloud OBS から公式パッケージ(wrapper + ELF + Python fallback、low-GLIBC 互換)を HTTPS 経由でダウンロードし、
~/.local/bin/にインストールします。- オフラインまたはインストールに失敗した場合 → stderr に
警告:を出力してスキップし、処理を中断しません(ただし、ラップされたコマンドはcommand not foundになります。本番環境では必ずインストールを成功させてください)。- デバッグまたはオフライン環境では、直接コマンド
python3 "$AUDIT_DIR/scripts/skill_audit.py" ...を使用できます(Core Commands のセキュリティ要件および統一説明を参照)。
概要
Huawei Cloud スキルのディレクトリまたはスキルのフォルダーを1つスキャンし、3つのセキュリティゲートを実行して、問題の詳細と修正方法を含む構造化レポートを生成します。
3つのチェック:
| # | ツール | チェック内容 | 実装 |
|---|---|---|---|
| 1 | skillspector | AI スキルのセキュリティスキャナー:18カテゴリにわたる52ルール/609パターン(プロンプトインジェクション、データ流出、権限昇格、サプライチェーン、振る舞いの AST、汚染追跡、MCP 分析、YARA) | 組み込み(純粋な Python、52ルール + AST 分析) |
| 2 | gitleaks | 認証情報の漏えいスキャン:ハードコードされた API キー、パスワード、秘密鍵、トークンを検出する43ルール | 組み込み(純粋な Python、43ルール + シャノンエントロピー) |
| 3 | runtime_security | CWE の高リスクな実行時パターン:36ルール(コマンドインジェクション、デシリアライズ、認証情報の窃取、サンドボックスの回避、永続化、破壊的操作、マイニング)+ 3つのスキル品質ルール(Q001-Q003) | 組み込み(純粋な Python、レベルに依存せず、すべてのルールを常に実行) |
ルール数(52/609、43、36+3)は
scripts/checks/*rules.jsonを基準とします。ルールを追加・削除した場合は、この表も合わせて更新してください。
依存関係:品質テレメトリーは skill-quality-cli によって自動的に収集されます(存在しない場合は scripts/ensure_cli.sh がインストールします。インストール/アップグレード/テレメトリー無効化の具体的なコマンドについては references/cli-installation-guide.md を参照してください)。
前提条件
- Python 3.10+ — 組み込みの skillspector および gitleaks チェックに必要です
- Node.js + npx — 任意です。修正時に
markdownlint-cli2 --fixを手動で実行する場合のみ必要です - hcloud CLI — Huawei Cloud サービスの検証に使用します(任意。検証でのみ使用)
- Huawei Cloud AK/SK — 監査自体には不要ですが、監査後にスキルの機能を検証する場合は必要です
組み込み/外部バイナリについて:
- デフォルトは組み込み:skillspector と gitleaks はどちらも純粋な Python による実装で、外部バイナリや pip のインストールは不要です。
- 外部バイナリは明示的に指定した場合のみ有効:
--skillspector/--gitleaks<path>を渡した場合のみ、外部バイナリを使用します。 - PATH からの自動検出は無効(2026-09-23、fail-closed):PATH からの検索は行いません。PATH に注入された同名の悪意あるバイナリにより、監査が気付かれずに乗っ取られるのを防ぐためです。
- 外部バイナリの署名/ハッシュは検証されません:信頼できる配布元から入手したことを確認してください(PATH に同名のバイナリがなく、ダウンロード元が管理されていること)。
- デフォルトの動作:
--skillspector/--gitleaksを指定しない場合、スキャンレベルに関係なく、常に組み込みの純粋な Python 実装を使用します。
外部バイナリのフォールバック自動インストールをスキップするには、--no-install フラグを使用してください。
ワークフロー
Input (skill path or folder)
│
├── Discover Skills ──── Find SKILL.md in target or subdirectories
│
├── Run Three Checks ────
│ 1. skillspector → AI security scan (52 rules, 609 patterns)
│ 2. gitleaks → Credential leak detection
│ 3. runtime_security → CWE high-risk runtime patterns (36 + 3 rules)
│
├── Build Report ────
│ Section 1: Scanned Skills
│ Section 2: Issue Summary (by severity)
│ Section 3: Issue Details (per-issue)
│ Section 4: Fix Strategies (per rule/category)
│
└── Gate Verdict ──── PASS or FAIL
スキャンレベル
| レベル | アナライザー | 速度 | ユースケース |
|---|---|---|---|
critical | 「critical」重大度のルールのみ(P5 有害コンテンツ) | 高速 | 最も厳格なゲート |
high | 「critical」+「error」重大度のルール+AST(exec/eval/os.system/逆シリアル化) | 高速 | 高リスクの問題をブロック |
quick | パターンマッチングのみ(すべての静的正規表現ルール) | 高速 | コミット前の簡易チェック |
standard | すべての静的アナライザー(high を基盤に、WARNING/INFO レベルの AST + taint tracking を追加) | 中速 | CI/CD ゲート |
deep | Standard + MCP 分析(最小権限、ツールポイズニング、ラグプル) | 低速 | リリース前の完全な監査 |
⚠️ 用語の区別:スキャンレベル名(
critical/high/quick/standard/deep、バッククォート付き)とルール JSON 内の severity 値(「critical」/「high」/「medium」/「low」、引用符付き)は別々の値です。レベルによって有効にするアナライザーと 対象となる severity レベルが決まり、severity は個々のルールの属性です。同じ名前でも同じ概念を意味するわけではありません。たとえば、criticalレベルでは「critical」レベルの検出結果が対象となり、highレベルでは「critical」+「error」レベルの検出結果が対象となります。
severity のフィルタリングが適用されるのは SkillSpector のみです(スキャンレベルごとのルール選択)。gitleaks に含まれるルールは「critical」/「high」severity のみのため、すべてのスキャンレベルで実行されます。runtime_security はレベルに依存せず、39 個のルール(CWE 36 個+Q001-Q003)が常に実行され、CRITICAL の検出結果は常にゲートをブロックします。
AST 分析は high/standard/deep のすべてで実行されます(high はデフォルトレベルであり、AST が必須です。AST がないと eval/exec/pickle.loads などの実行系検出を簡単に回避できてしまいます)。high レベルのフィルタリングでは CRITICAL/ERROR レベルの検出結果(ルール JSON の severity 値である critical/high は、内部で CRITICAL/ERROR にマッピングされます)が保持されるため、デフォルトレベルではブロックされます。AST1/2/5/9/10(exec/eval/os.system/getattr のリフレクション/逆シリアル化)はすべて ERROR レベルです。WARNING レベル(AST3/4/6/7:compile/subprocess/動的 import など)は standard/deep でのみ確認できます。.py の解析に失敗した場合は、サイレントに処理されなくなりました。ERROR レベルの AST-SYNTAX 検出結果が生成され、ゲートをブロックします(fail-closed により、悪意あるコードで解析を妨害して AST 検査を回避することを防ぎます)。
KooCLI コマンド形式の標準
このスキルはスキルディレクトリをローカルで監査し、hcloud CLI コマンドを直接実行しません。
監査後にスキルの機能を確認する際は、標準の KooCLI 形式を適用します。以下の行は説明用のテンプレートであり、実行可能なコマンドではありません。
bash "$AUDIT_DIR/scripts/hcloud-run.sh" <Service> <Operation> --cli-region=<region> [--key=value ...] # 强制入口:一切 hcloud 经 hcloud-run.sh 包装执行(hcloud-run.sh 内部自动经 skill-quality-cli run 包裹上报, 见 Step 0 强制要求); hcloud 场景下用户只需调用 hcloud-run.sh, 不要手工再包一层 skill-quality-cli run
基本コマンド
⚠️ セキュリティ要件(必ず遵守):すべてのコマンドで、このスキルの
scripts/skill_audit.pyを 絶対パス で指定する必要があります。 監査対象のスキルディレクトリは信頼できない入力です。ディレクトリ内に悪意あるscripts/skill_audit.pyがあらかじめ配置されている可能性があり、そのディレクトリ内で相対パスpython3 scripts/skill_audit.pyを実行すると、監査時に攻撃者のコードが実行されるおそれがあります(RCE)。 実行前に、AUDIT_DIRに本スキル(huawei-cloud-skill-audit)のインストール先の絶対パスを設定します。export AUDIT_DIR=/path/to/huawei-cloud-skill-audit(例:$HOME/.local/share/huawei-cloud-skill-audit)。 以降は一律にpython3 "$AUDIT_DIR/scripts/skill_audit.py" ...を使用し、--target .で現在のディレクトリまたは任意の監査対象ディレクトリを指定できます。共通事項:各シナリオには 2 つのコマンドがあります。① wrapped コマンド(
skill-quality-cli run --skill-name huawei-cloud-skill-audit -- ...):正式な利用時には必ずこれを使用します(品質報告のため)。② 裸のコマンド(python3 "$AUDIT_DIR/scripts/skill_audit.py" ...):デバッグまたはオフラインの場合のみ使用できる、同等の直接実行コマンドです。正式な利用時に裸のコマンドを使用しないでください。
単一のスキルをスキャンする
# 先按上述安全要求设置 AUDIT_DIR, 然后在任意目录执行(--target . 指向被审计目录)
skill-quality-cli run --skill-name huawei-cloud-skill-audit -- python3 "$AUDIT_DIR/scripts/skill_audit.py" --target .
スキルのフォルダーをスキャンする
# --target 指向包含多个技能的父目录
skill-quality-cli run --skill-name huawei-cloud-skill-audit -- python3 "$AUDIT_DIR/scripts/skill_audit.py" --target ..
指定したレベルでスキャンする
skill-quality-cli run --skill-name huawei-cloud-skill-audit -- python3 "$AUDIT_DIR/scripts/skill_audit.py" --target .. --scan-level quick
チェックの実行を選択する
skill-quality-cli run --skill-name huawei-cloud-skill-audit -- python3 "$AUDIT_DIR/scripts/skill_audit.py" --target .. --checks skillspector
skill-quality-cli run --skill-name huawei-cloud-skill-audit -- python3 "$AUDIT_DIR/scripts/skill_audit.py" --target .. --skip-checks gitleaks
カスタムのツールパスを指定して実行する
カスタムバイナリの場所は、--skillspector、--gitleaks、--node-bin で上書きできます(「パラメーターの確認」を参照。デフォルトの自動インストール先は ~/.local/bin/ です)。
skill-quality-cli run --skill-name huawei-cloud-skill-audit -- python3 "$AUDIT_DIR/scripts/skill_audit.py" --target .. --skillspector /path/to/skillspector --gitleaks /path/to/gitleaks --node-bin /path/to/node
# 等效直接执行(⚠️ 仅调试/离线场景, 正式使用请经 skill-quality-cli run 包裹以保证质量上报)
python3 "$AUDIT_DIR/scripts/skill_audit.py" --target .. --skillspector /path/to/skillspector --gitleaks /path/to/gitleaks --node-bin /path/to/node
使用可能な --scan-level の値:high(デフォルト)、critical、quick、standard、deep。
使用可能な --checks:skillspector、gitleaks、runtime_security。
特定のチェックを除外するには --skip-checks を使用します。
パラメーターの確認
| パラメーター | 必須 | 説明 | 例 |
|---|---|---|---|
--target | はい | 単一のスキルディレクトリ、またはスキルを含む親フォルダー | /path/to/skill-dir |
--output-dir | いいえ | レポートの出力ディレクトリ(デフォルト:target の親ディレクトリ) | --output-dir ./reports |
--scan-level | いいえ | スキャンの深度:high/critical/quick/standard/deep(デフォルト:high) | --scan-level deep |
--checks | いいえ | 実行するチェックをカンマ区切りで指定(デフォルト:すべて)。有効な値は skillspector、gitleaks、runtime_security のみです。--skip-checks とは併用できません | --checks skillspector |
--skillspector | いいえ | SkillSpector バイナリのパスを上書き | --skillspector ~/.local/bin/skillspector |
--gitleaks | いいえ | gitleaks バイナリのパスを上書き(見つからない場合は ~/.local/bin に自動インストール) | --gitleaks ~/.local/bin/gitleaks |
--skip-checks | いいえ | スキップするチェックをカンマ区切りで指定。--checks とは併用できません | --skip-checks gitleaks |
--no-install | いいえ | ツールの自動インストールをスキップ | --no-install |
レポートの構成
レポートは、スキャン対象パスの親ディレクトリに skill-gate-report-<timestamp>.txt として保存されます。
| 入力 | レポートの保存先 |
|---|---|
/repo/skills/huawei-cloud-ecs-manage | /repo/skills/skill-gate-report-<timestamp>.txt |
/repo/skills | /repo/skill-gate-report-<timestamp>.txt |
4 つのセクションがあります。
- スキャンしたスキル — 見つかったすべてのスキルの一覧
- 問題の概要 — 重大度(CRITICAL/ERROR/WARNING)ごとの件数とルールの内訳(INFO は除外)
- 問題の詳細 — 問題ごとのスキル名、ルール、行番号、抜粋、メッセージ
- 修正方法 — 一意なルール/カテゴリごとの実行可能な修正方法
修正方法のリファレンス
skillspector
| ルール | 修正方法 |
|---|---|
| P1-P8(プロンプトインジェクション/システムプロンプトの漏えい) | ユーザーが制御可能な入力をシステムプロンプトに埋め込まないでください。明示的なエスケープ処理を伴うテンプレート変数を使用してください |
| E1-E5(データの持ち出し) | 外部 URL を削除してください。API エンドポイントには環境変数を使用し、ツール定義でネットワークアクセスを制限してください |
| PE1-PE5(権限昇格) | sudo/root コマンドを避け、機能ベースの権限を使用してください。セキュリティ制御を無効にしないでください |
| AST(動作 AST:AST1-AST7/9/10) | exec()/eval() をより安全な代替手段に置き換えてください。許可リストを使用して importlib を使用してください |
| YR1-YR4(YARA) | リバースシェル/ウェブシェルのパターンを削除し、サーバー機能を独立した管理対象サービスに移してください |
| SC1/SC2/SC3/SC7(サプライチェーン) | ハッシュを指定して依存関係のバージョンを固定し、脆弱な依存関係を更新してください |
| EA1-EA4(過剰なエージェンシー) | ツールの権限をタスクに必要な最小限に制限してください |
| MP1-MP3、OH1-OH3(メモリポイズニング/出力処理) | 使用前にメモリへの書き込みとツールの出力を検証してください |
| RA1-RA2、AS1-AS3(不正なエージェント/エージェントによるのぞき見) | エージェントの委任とセッションデータへのアクセスを制限してください |
| SSRF1-SSRF3(サーバーサイドリクエストフォージェリ) | リクエストの前に外部エンドポイントを検証するか、許可リストに登録してください |
| TM1-TM4(ツールの誤用) | ツールのパラメーターを検証してください。信頼できない入力をシェルコマンドに連結しないでください |
gitleaks
| ルール | 修正方法 |
|---|---|
| private-key | ハードコードされた秘密鍵を削除し、実行時にファイルまたはシークレットマネージャーから読み込んでください。鍵ファイルを .gitignore に追加してください |
| (その他のルール) | ハードコードされた認証情報を環境変数またはシークレットマネージャーの参照に置き換えてください。https://gitleaks.io/docs/secrets を参照してください |
修正ワークフロー(監査 -> 修正 -> 検証)
監査を実行して FAIL になった場合は、次の手順に従ってください。
- 問題を手動で修正する — レポートの「修正方法」セクション、または上記の skillspector/gitleaks のルール表に記載された修正を適用してください。
- 監査をすべて再実行する — PASS になることを確認してください。
Markdown のスタイルと SKILL.md 仕様に関する問題は、このスキルの監査対象外です。Markdown のスタイルを個別に修正する必要がある場合に限り、
markdownlint-cli2 --fixなどの外部ツールを使用してください。
CI/CD との統合
# CI 场景下 checkout 的仓库即本 skill 自身, 脚本来源可信, 相对路径无 RCE 风险
# (与 Core Commands 安全要求不冲突: 那里禁止的是在"被审计技能目录"内跑相对路径)
jobs:
skill-gate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Run audit
run: python3 scripts/skill_audit.py --target . --output-dir .
- name: Upload report
uses: actions/upload-artifact@v4
if: always()
with:
name: skill-gate-report
path: skill-gate-report-*.txt
設定ファイル
組み込みチェックではバンドルされたルールセットを使用するため、外部設定は不要です。
scripts/checks/skillspector_rules.json— skillspector のルール(52 ルール/609 パターン)scripts/checks/gitleaks_rules.json— gitleaks のルール(43 ルール)
スキルディレクトリに含まれる .markdownlint.json と skillcheck.toml は、この監査では使用されません。これらは外部の markdownlint/skillcheck ツール専用です。
セキュリティスキャン
skillspector の静的解析のみのモードにおける制限
skillspector は --no-llm モード(静的解析のみ)で実行されます。検出できないものは次のとおりです。
| アナライザー | 検出対象 | --no-llm モードで検出できないもの |
|---|---|---|
| パターンマッチング(P1-P8、E1-E5、PE1-PE5、EA1-EA4、MP1-MP3、OH1-OH3、RA1-RA2、AS1-AS3、SSRF1-SSRF3、TM1-TM4) | プロンプトインジェクション、データ窃取、権限昇格、エージェンシー/ポイズニングのパターン | LLM によって生成された難読化された亜種 |
| AST 解析(AST1-AST7/9/10) | exec()/eval() 呼び出し、動的インポート、リフレクティブな getattr、安全でないデシリアライズ | 実行時に評価される文字列 |
| YARA ルール(YR1-YR4) | リバースシェル、ウェブシェルのパターン | エンコード/難読化されたペイロード |
| サプライチェーン(SC1/SC2/SC3/SC7) | 脆弱な依存関係や固定された依存関係に関する問題 | 推移的依存関係を悪用する攻撃 |
補完的なツール
| ツール | 検出対象 | インストール |
|---|---|---|
| skillspector(組み込み、--no-llm) | プロンプトインジェクション、リバースシェル、コマンドインジェクション、データ窃取、権限昇格、サプライチェーン | 自動インストール |
| gitleaks(組み込み) | 43 ルール:API キー、パスワード、秘密鍵、トークン | 自動インストール |
| gitcode-security-scanner | 一般的なキーワードの認証情報、中国語のキーワード、SQL インジェクション、デバッグ情報の漏えい | DTSE-SKILL リポジトリから |
推奨:網羅的にチェックするには、huawei-cloud-skill-audit と gitcode-security-scanner の両方を実行してください。
出力形式
レポートは 4 つのセクション(スキャンしたスキル、問題の概要、問題の詳細、修正方法)に続いてゲート判定(PASS/FAIL)を記載するプレーンテキストファイルです。
検証方法
監査を実行する
# AUDIT_DIR 见 Core Commands 安全要求(本 skill 安装目录绝对路径)
skill-quality-cli run --skill-name huawei-cloud-skill-audit -- python3 "$AUDIT_DIR/scripts/skill_audit.py" --target .
# 等效直接执行(⚠️ 仅调试/离线场景, 正式使用请经 skill-quality-cli run 包裹以保证质量上报)
python3 "$AUDIT_DIR/scripts/skill_audit.py" --target .
修正を検証する
# Fix issues from the report's Fix Strategies section, then re-run audit
skill-quality-cli run --skill-name huawei-cloud-skill-audit -- python3 "$AUDIT_DIR/scripts/skill_audit.py" --target .
# 等效直接执行(⚠️ 仅调试/离线场景, 正式使用请经 skill-quality-cli run 包裹以保证质量上报)
python3 "$AUDIT_DIR/scripts/skill_audit.py" --target .
ゲート判定を確認する
# Gate Verdict: PASS = 无 CRITICAL/ERROR 发现(WARNING 带记录理由后可接受)
# Gate Verdict: FAIL = 存在 CRITICAL 或 ERROR 发现(与 references/verification-method.md、security-audit-guide.md 一致)
参考ドキュメント
references/iam-policies.md— スキル監査に必要な IAM 権限references/verification-method.md— 詳細な検証手順references/acceptance-criteria.md— 監査 PASS の合格基準references/security-audit-guide.md— セキュリティ監査ガイドと修正方法references/gitcode-security-scanner.md— 補完スキャナーの使用ガイドscripts/ensure_cli.sh— 冪等性のある skill-quality-cli インストーラー(存在しない場合は自動インストール)
ベストプラクティス
- Huawei Cloud スキルのコントリビューションを受け入れる前に監査を実行してください
- レポートの修正方法に従って問題を修正し、必ず監査全体を再実行して PASS を確認してください
- 大規模なリポジトリでは、膨大なレポートを避けるため、スキルを 1 つずつ個別にスキャンしてください
- セキュリティを網羅的にチェックするには、
huawei-cloud-skill-auditとgitcode-security-scannerの両方を実行してください
注意事項
- このスキルは監査レポートと修正方法を生成するだけで、スキルファイルを自動的に変更することはありません。修正は、レポートの修正方法または修復ワークフローに従ってユーザーが手動で適用してください。修正後、監査を再実行して検証してください。
- 3 つのチェックは順番に実行され、それぞれ独立しています
- API エンドポイントを推測することは固く禁じられています
- 認証情報(AK/SK)は環境変数から読み込みます。ハードコードは禁止されています
- 監査後の検証に AK/SK が必要なのに設定されていない場合は、ユーザーに入力を求めてください。検証を省略してはいけません
- テスト中に作成したリソースを追跡し、残っている場合は手動で削除する手順を出力してください
- INFO レベルの問題はレポートに含まれません。CRITICAL/ERROR/WARNING のみ表示されます
- gitleaks の
--no-gitモードは現在のファイル内容のみをスキャンし、git の履歴はスキャンしません - gitleaks は中国語キーワードを含む認証情報を検出しません。それらには gitcode-security-scanner を使用してください
エッジケース
| シナリオ | 対応 |
|---|---|
| スキルディレクトリが存在しない | エラーを報告して終了します |
| 対象に SKILL.md がなく、SKILL.md を含むサブディレクトリもない | エラーを報告します:スキルが見つかりません |
| 組み込みルールファイルが見つからない | 警告とともにチェックをスキップします(組み込みルール JSON のみがデフォルトパスです。外部からの自動ダウンロードは行われません — フェイルクローズ) |
| Python のバージョンが 3.12 未満 | 組み込みの純粋な Python チェックは引き続き動作します(Python 3.10 以上)。外部バイナリは自動検出されないため(フェイルクローズ)、バージョン固有の外部フォールバックはありません |
| 大規模リポジトリでレポートが巨大になる | 個別のスキルをスキャンし、head/tail で概要を読み取ります |
| gitleaks の誤検知 | .gitleaksignore ファイルに追加します |
| skillspector の終了コードが 1 | 検出結果はルールの重大度ごとに報告されます。リスクスコアは表示専用で、ゲート条件ではありません |
設計原則
- 3 段階チェックパイプライン — 各チェックは独立しており、全体のゲート判定に寄与します
- 自動インストール — ツールが見つからない場合、初回実行時に自動インストールされます
- 一連の検証 — ゲート判定を PASS にするには、有効なすべてのチェックに合格する必要があります
- エージェントによる回避を防止 — 書き込み操作にはユーザーの確認が必要です。ゲートの自動回避は許可されません
- データ駆動型 — レポートは、重大度レベルと修正方法が明確な構造化テキストです
- バッチで繰り返し実行可能 — 同じスキルを繰り返し監査できます。実行ごとにタイムスタンプ付きの新しいレポートが作成されます
- 認証情報のセキュリティ — AK/SK をハードコードせず、環境変数から読み取ります
- 最小権限 — IAM ポリシーは、必要最小限の権限に従います