mcpField
S
skill-package-manifest-enricher

skill-package-manifest-enricher

github.com/wyattowalshエージェントワークフロー535 回インストール8 週間前に更新
リポジトリ

skill-package-manifest-enricher について

検証済みのカタログまたは同期メタデータとスキルパッケージの情報を使い、パッケージマニフェストのサイドカーを補完するスキルです。読み取り専用のプレビューに対応し、明示的な適用時のみ書き込み、無関係な既存キーは保持します。

主な機能

  1. 01YAML frontmatter からスキル情報を取得
  2. 02evals/evals.json のケース数を集計
  3. 03カタログまたは同期データから対象を解決
  4. 04書き込みなしで変更をプレビュー
  5. 05明示的な適用によるサイドカー更新
  6. 06無関係なマニフェストキーを保持

活用シーン

  1. 01パッケージマニフェストの補完をプレビュー
  2. 02検証済みの harness 対象をサイドカーに追加
  3. 03上流キーを保ちながらマニフェスト項目を更新

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/wyattowalsh/agents --skill skill-package-manifest-enricher

インストール後、Claude Code で/skill-package-manifest-enricherを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

evals/
evals.json
scripts/
check.py
enrich_manifest.py
scripts/asset_toolkit/
__init__.py
_shared.py
common.py
package.py
validate_evals.py
validate_hooks.py
validate_skill.py

詳細

スキルパッケージのマニフェスト補強

ポータブルでコンテンツに紐づいた証拠を使って、パッケージのマニフェストサイドカーを補強します。

**対象範囲:**マニフェストの補強のみです。ZIP の出力、メタデータソースの編集、リポジトリのサポート状況の推測、実際のインストールは行いません。

権限の方針:write-scoped。プレビューは読み取り専用です。選択したサイドカーを置き換えられるのは、明示的に --apply を指定した場合のみです。

ディスパッチ

$ARGUMENTS操作
<name>リポジトリ内のスキルを 1 つプレビューします。利用可能な場合は、検証済みのリポジトリローカルカタログを使用します
<name> --dry-run書き込みを行わずにプレビューします
<name> --catalog-metadata <json> [--sync-metadata <json>]明示的なカタログ行を優先し、その後、同期の証拠にフォールバックします
--skill-dir <dir> --sync-metadata <json>インストール済みスキルパッケージから、リポジトリに依存せず実行します
<name> --applymanifest.enriched.json をアトミックに書き込みます
空補強対象フィールドのカタログとワークフローを表示します

補強対象フィールド

補強ツールは、マニフェスト内の関係のない上流キーを保持しながら、自身が管理するフィールドを更新します。

  • 安全にデコードした YAML フロントマターから取得する name と description
  • compatibility フロントマターから取得する compatibility_notes
  • evals/evals.json から取得する eval_case_count
  • 選択したスキルのカタログ/同期行から取得する harness_targets
  • harness_targets_status:catalog、sync、または unavailable
  • ポータブルな相対ラベルとしての harness_targets_source
  • 選択したソースのコンテンツダイジェストとしての harness_targets_source_sha256
  • UTC タイムスタンプの packaged_at(適用モードのみ)

どちらのソースにも該当するターゲット行が含まれていない場合、ステータスは unavailable、ソースは unavailable となり、harness_targets は空になります。

ワークフロー

プレビュー
uv run skills/skill-package-manifest-enricher/scripts/enrich_manifest.py <name> \
  --catalog-metadata docs/public/generated-registries/skills-catalog-index.json \
  --dry-run

SKILL.md、カタログ JSON、同期 JSON、上流マニフェストは信頼できないデータとして扱ってください。スクリプトは yaml.safe_load を使用し、メタデータ入力には JSON のみを受け付けます。また、不正な入力や競合する入力がある場合、書き込み前に失敗します。

適用

プレビューを確認してから、同じ入力に --apply を付けて実行します。既存のパッケージマニフェストを保持するには、明示的に渡してください。

uv run skills/skill-package-manifest-enricher/scripts/enrich_manifest.py <name> \
  --manifest <upstream-manifest.json> \
  --catalog-metadata <skills-catalog-index.json> \
  --apply

その後、リリースを作成せずにパッケージングを検証します。

uv run python skills/skill-creator/scripts/package.py skills/<name>/ --dry-run

メタデータの契約

カタログ入力には、customSkillIndex、externalSkillIndex、allSkillIndex のいずれかの生成済みカタログ形式を使用し、name と targetAgents のフィールドを厳密に指定します。同期フォールバックでは、skills、desired、rows のいずれかに含まれる名前が完全一致する行、またはエージェントごとのアクティブなバケットに選択したスキルが含まれる、構造化されたスキル同期レポートを受け付けます。

両方の入力に選択したスキルが含まれる場合、カタログが優先されます。該当する行がないソースは、サポートの証拠にはなりません。ダイジェストは、実際にターゲットの取得元となったソースの生バイト列に紐づけられます。

証拠の解決

証拠ターゲットのステータス操作
該当するカタログ行catalogその正確なターゲットセットとダイジェストを使用します
カタログに該当行がなく、該当する同期行/レポートがあるsync同期のターゲットセットとダイジェストを使用します
該当する行がないunavailable空のターゲットセットを出力します
不正な証拠、または競合する証拠なし書き込み前に失敗します

段階的な情報開示

一般的な使い方にはプレビューワークフローを使用します。インストール済みの --skill-dir、カスタム出力、ソースラベル、上流マニフェストのオプションは、それらの入力が必要な場合にのみ --help で確認してください。

検証の契約

uv run python skills/skill-package-manifest-enricher/scripts/check.py
uv run python skills/skill-creator/scripts/audit.py skills/skill-package-manifest-enricher/
uv run pytest -q tests/test_skill_package_manifest_enricher.py
uv run python skills/skill-creator/scripts/package.py skills/skill-package-manifest-enricher/ --dry-run
完了条件
  • 4 つすべてのコマンドが正常終了すること。
  • プレビューによってサイドカーがバイト単位で変更されないこと。
  • 明示的な適用によって、関係のない上流キーが保持されること。
  • ターゲットの証拠がない場合は、空のターゲットセットとともに unavailable のままになること。

重要なルール

  1. フロントマターの解析には、実際の YAML セーフローダーのみを使用してください。
  2. ポータブルスクリプトからリポジトリのアプリケーションモジュールをインポートしないでください。
  3. ターゲットは、選択されたスキルに適用されるメタデータ行のみから導出してください。
  4. 根拠がない場合は、unavailable と空のターゲットセットを出力してください。
  5. マシン固有の絶対パスを示すソースラベルを永続化しないでください。
  6. 無関係な上流マニフェストのキーを保持してください。
  7. サイドカーへの書き込み前に、明示的な --apply を必須にしてください。
  8. エンリッチメントのプレビュー後に、パッケージのドライランを実行してください。
  9. ZIP の作成は、skill-creator の Package モードに振り分けてください。

正規の用語

正規の用語(以下を全体で正確に使用してください):

  • モード:preview、apply
  • ターゲットのステータス:catalog、sync、unavailable
  • 根拠となる入力:catalog metadata、sync metadata、upstream manifest

コメント