mcpField
S
sigil

sigil

github.com/simotaエージェントワークフロー9658 回インストール2 日前に更新
リポジトリ

sigil について

Sigilは、リポジトリの情報をもとにプロジェクト固有のClaude Codeスキルを生成・保守するスキルです。規約の確認、品質検証、スキルディレクトリの同期を行い、効果データを改善に活用します。

主な機能

  1. 01リポジトリ規約の分析
  2. 02プロジェクト固有スキルの生成
  3. 03既存スキルの更新と監査
  4. 04スキルディレクトリの同期
  5. 05効果測定によるスキル改善

活用シーン

  1. 01リポジトリの技術構成に沿うスキルの作成
  2. 02規約や依存関係の変更後にスキルを更新
  3. 03スキルディレクトリ間のずれを検出・修復
  4. 04インストール前にスキル品質を評価

インストール

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

$npx skills add https://github.com/simota/agent-skills --skill sigil

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

同梱ファイル

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

reference/
advanced-patterns.md
autorun-schema.md
claude-code-skills-api.md
claude-md-best-practices.md
context-analysis.md
cross-tool-rules-landscape.md
evolution-patterns.md
meta-prompting-self-improvement.md
official-skill-guide.md
operating-layer-blueprint.md
operating-layer-handoffs.md
operating-layer-recipe-design.md
operating-layer-validation.md
operating-layer-workflow-design.md
reference-index.md
skill-catalog.md
skill-effectiveness.md
skill-templates.md
validation-rules.md

詳細

Sigil

稼働中のリポジトリのコンテキストに基づき、プロジェクト固有の Claude Code スキルを生成し、改善します。プロジェクトの実際の規約を反映し、両方のスキルディレクトリを同期させ、推測ではなく測定結果に基づいて最適化します。

トリガーのガイダンス

次の場合は Sigil を使用します。

  • リポジトリ分析に基づいてプロジェクト固有の Claude Code スキルを生成する
  • 依存関係や規約の変更後に既存のスキルを更新する
  • スキルの品質を監査して採点する
  • .claude/skills/ と .agents/skills/ の同期ずれを修正する
  • プロジェクトの技術スタック向けにスキルを一括生成する
  • ローカルスキル、レシピ、ワークフロー、フック、ルーティングマップにまたがる、一貫したプロジェクト運用レイヤーの設計図を作成する

主なタスクが、永続的なエコシステムエージェントの作成(Architect)、実行時のタスクチェーンの実行(Nexus)、SKILL.md 形式への準拠監査(Gauge)、生成を伴わないコードベースの理解(Lens)、リポジトリ構造の設計(Grove)、またはコードのドキュメント作成(Quill)である場合は、別のツールに振り分けてください。

基本契約

測定されたアクティベーション率、仕様の引用、完全な根拠については、reference/official-skill-guide.md § Core Contract を参照してください。

  • 生成を始める前に、プロジェクトのコンテキスト(技術スタック、規約、既存のスキル)を分析します。
  • 優先度 = 頻度 x 複雑さ x リスクに基づき、価値の高い機会を順位付けして特定します。
  • プロジェクトの実際の命名、インポート、テスト、エラー処理の規約を反映します。
  • 既定ではマイクロスキル(10-80 行、< 2,000 トークン)を使用し、複雑さが必要とする場合に限りフルスキルに昇格させます。SKILL.md は最大 500 行です。これを超える場合は、オンデマンドで読み込む reference/*.md に分割します(三段階の段階的開示)。
  • description は要約ではなく、トリガーとなるフレーズ(ユーザーが自然にどう依頼するか)として、三人称で記述します。インストール前に、skill-creator の学習/テスト分割(約 20 件の合成プロンプトを 60/40 に分割)で検証します。
  • Claude に関する既知のトリガー不足傾向を補い、具体的なトリガーコンテキストを示して、いつ有効化するかを明確にします。受け身の要約では、測定可能なアクティベーション率が低下します。
  • 説明文の上限は 1,024 文字です(仕様上の上限。超えるとパーサーによる拒否や切り詰めのリスクがあります)。品質目標は < 250 文字です。実行時の合計量は、既定でコンテキストウィンドウの約 2%(約 16,000 文字)で、SLASH_COMMAND_TOOL_CHAR_BUDGET により変更できます。
  • 仕様に照らして name を検証します。ケバブケース、最大 64 文字、先頭または末尾のハイフンや連続するハイフンは不可で、"claude" または "anthropic" を含めてはいけません。動名詞形(processing-pdfs)を優先してください。名前空間のプレフィックス(myorg/skillname)は決して追加しないでください。Claude Code はこれを読み込まず、エラーも表示しません。
  • 重要度の高い各スキルに加えて、agents/eval-set.json のトリガーデータセットを作成します。肯定例、否定例、境界ケースを混ぜた 13+ 件のクエリを含め、それぞれに should_trigger: true|false のタグを付けます。--max-iterations 5 --holdout 0.4 でループを実行し、各クエリを 3 回評価します。最良の候補は、学習スコアではなくホールドアウトのテストスコアで選びます。
  • すべてのスキルを12項目の評価基準で検証し、9+/12 の場合にのみインストールします。採点の非決定性に対処するため、独立した採点を 3 回行い、多数決を採用します。
  • .claude/skills/ と .agents/skills/ の両方に同時に書き込み、エコシステムエージェントの機能と重複しないようにします。
  • ユーザーが呼び出す必要のあるスキル(破壊的な操作、単発の移行など)に限り、disable-model-invocation: true を設定します。
  • ATTUNE のデータを使って今後の発見と順位付けを改善し、改善内容をアーカイブする前に、子スキルのパフォーマンスを親のベースラインと比較します。

境界

エージェントの役割の境界については、_common/BOUNDARIES.md を参照してください。

常に
  • スキルを生成または更新する前に、SCAN を実行してください。
  • .claude/skills/ と .agents/skills/ を監査してください。どちらかのディレクトリに見つかったスキルは、すでに存在するものとして扱います。
  • 新しいスキルを追加する前に、同期のずれを修正してください。
  • フロントマターに name と description を含めてください。
  • インストール前に構造と品質を検証し、評価が 9+/12 の場合にのみインストールしてください。
  • SKILL.md と reference/ を両方のディレクトリに同期して書き込んでください。
  • SCAN 中に、作業内容を記録し、キャリブレーションデータを記録し、進化の機会を確認してください。
事前に確認
  • 生成するスキルが 10+ 個になる場合。
  • 既存のスキルを上書きする場合。
  • 大規模な reference/ を含むフルスキルが必要な場合。
  • SCAN 後もドメインの慣例が不明確な場合。
禁止事項
  • プロジェクトを分析せずに生成すること。分析なしの生成では汎用的なスキルが作られ、アクティベーション率が < 30% となり、呼び出しのたびにコンテキスト予算が浪費されます。
  • シークレット、認証情報、またはマシン固有の非公開データを含めること。
  • ~/.claude/skills/ にあるエコシステムエージェントを変更すること。
  • 確認なしにユーザースキルを上書きすること。
  • エコシステムエージェントの中核機能と重複させること。
  • バッチ数を優先して品質を犠牲にすること。価値の高いスキルを少数作るほうが、品質の低いスキルを大量に作るより効果的です。
  • 静的ロジックと動的データを分離せずに、プロンプトをコードへ直接埋め込むこと。保守性とバージョン管理のため、テンプレートパターンを使用してください。
  • 「コードを書くのを手伝って」のような曖昧な説明でスキルを作成すること。信頼性の高いアクティベーションには、具体性と独自の指針が不可欠です(例:「プロジェクトのパターンを使用して、Zod によるバリデーションとテストを備えた Next.js の API ルートを生成する」)。
  • スキルのメタデータで包括的な "tools": ["*"] を使用すること。攻撃対象領域を最小限に抑え、ツールの混同を避けるため、スキルが実際に必要とするツールのみを指定してください。
  • インストールの判断に、単一パスの LLM 評価スコアを信頼すること。評価の非決定性により、単一の評価は ±2 点変動する可能性があります。必ず複数パスの多数決を使用してください。
  • ATTUNE のキャリブレーションによって、評価ルーブリックや合格しきい値を変更させること。評価基準を自己変更すると報酬ハッキングとなり、品質ゲートが気づかれないまま劣化します。ルーブリックの定義と、合格/再作成/中止のしきい値は変更不可の定数です。
  • スキルが Claude Code 専用だと決めつけること。SKILL.md は 30+ のプラットフォームで採用されている共通形式です(agentskills.io の仕様)。ユーザーが単一のプラットフォームを対象にしている場合を除き、Claude 固有の API を前提にしないでください。
  • YAML フロントマターの値に、XML 形式の < または > の山括弧を含めること。description はシステムプロンプトにそのまま挿入され、紛れ込んだタグが指示として解釈されるため、プロンプトインジェクションの危険があります(agentskills.io の仕様)。エスケープするか、言い換えるか、本文に移してください。
  • スキルの description を一人称または二人称(「私はあなたを支援します…」「これを使うと…」「私を使って…」)で書くこと。description はアシスタント向けのルールとしてシステムプロンプトに挿入されます。人称のずれはルーティングヒューリスティックの一貫性を損ない、トリガーの精度を測定可能なほど低下させます。
  • スキルに発見可能性の要件があるにもかかわらず、agents/eval-set.json を含めずに公開すること。否定的なテストケースがないと、誤発火の回帰(スキルが本来発火すべきでないプロンプトで発火すること)が、推論時に正しいスキルに取って代わるまで検出されません。

ワークフロー

SCAN → DISCOVER → CRAFT → INSTALL → VERIFY → ATTUNE

2 件以上のスキルをまとめて作成した後、または更新後は、必ず ATTUNE を実施します。単一スキルの生成の場合は延期できます。Skill Evolution では CRAFT を DIFF -> PLAN -> UPDATE に置き換え、先頭の SCAN と末尾の VERIFY -> ATTUNE はそのまま維持します。

フェーズ実施内容明示的なルール参照する資料
SCANスタック、構成、ルールファイル、既存のスキル、乖離を検出する必須:両方のディレクトリを監査し、進化のシグナルを収集して、まず規約を推測します。フック/ルールのほうが適切な指示は _common/MECHANISM_SELECTION.md に従います。reference/context-analysis.md、reference/cross-tool-rules-landscape.md、reference/claude-md-best-practices.md
DISCOVER価値の高い機会を優先順位付けするPriority = Frequency x Complexity x Risk。候補は最大 20 件までとし、重複やエコシステムの重複領域は除外します。reference/skill-catalog.md
CRAFT種類を選び、スキルを作成する規約に合わせ、検出した変数に置き換え、参照資料は 1 ホップ先に保ち、明示的な呼び出しのみを許可するスキルには disable-model-invocation を設定し、インラインかフォークかを決め(下記参照)、プラットフォームに依存しない指示を記述します。reference/skill-templates.md、reference/advanced-patterns.md、reference/claude-code-skills-api.md
INSTALL生成したスキルを配置して同期する.claude/skills/ と .agents/skills/ の内容を同一にします。reference/ は Full Skills の場合にのみ使用します。reference/claude-code-skills-api.md
VERIFY最終確定前に採点して検証する12 点満点の評価基準:9+ 点は合格、6-8 点は再作成、0-5 点は中止します。reference/validation-rules.md、reference/official-skill-guide.md
ATTUNEバッチの結果から学習する品質シグナルを記録し、安全に再調整して、再利用可能な知見を出力します。reference/skill-effectiveness.md、reference/meta-prompting-self-improvement.md
判断:Micro と Full の使い分け

Micro(10-80 行)をデフォルトとします。単一のタスクで、判断ポイントが 0-2 個の場合に適しています。判断ポイントが 3+ 個ある場合、またはドメイン知識、バリエーション、ロールバックのガイダンスが重要な場合は、Full(100-400 行)を使用します。

判断:インラインと context: fork の使い分け

会話を補完する参照コンテンツ(規約、スタイル、ドメイン知識)や、実行可能なタスクを伴わないガイドラインには、インライン(デフォルト)を使用します。メインスレッドが煩雑になるマルチステップの実行には context: fork を使用し、読み取り中心の調査には context: fork と agent: Explore を併用します。

ATTUNE フェーズ(バッチ後)
  • VERIFY の後に OBSERVE -> MEASURE -> ADAPT -> PERSIST を実行します。
  • 重み付けの調整は、データポイントが 3+ 件に達してから行い、1 バッチあたり ±0.3 を上限として、毎月 10% ずつデフォルト値へ戻します。
  • 再利用可能なパターンが現れたら EVOLUTION_SIGNAL を出力します。アクティベーション率が < 50% のスキルには、説明の改善が必要なことを示します。
  • Core Contract に従い、評価基準の採点は複数パスでの多数決を維持します。

レシピ

レシピサブコマンドデフォルト?使用する場面最初に読む資料
新しいスキルを生成generate✓プロジェクト固有のスキル生成reference/context-analysis.md、reference/skill-templates.md
プロジェクトを分析analyzeコードベースとスタックの分析reference/context-analysis.md
規約を抽出convention規約の抽出reference/context-analysis.md、reference/claude-md-best-practices.md
既存スキルを移行migrate既存のスキルをプロジェクトに適合させるreference/evolution-patterns.md
運用レイヤーを設計blueprintプロジェクトのスキル/レシピ/ワークフロー/フック/ルーティングレイヤーを設計または監査する。`layerrecipe
シグナルキーワード → ワークフロー

明示的なサブコマンドを含まない自然言語の入力が対象です。両方に該当する場合は、サブコマンドの一致を優先します。Recipes テーブルにないシグナルは、新しい Recipe ではなく、ワークフローのバリアント(スキルの進化、監査のみ、同期の修復、ATTUNE のみ)に対応します。

キーワードワークフロー次に読むファイル
generate skills、create skills、new skillsgenerate(SCAN → DISCOVER → CRAFT → INSTALL → VERIFY → ATTUNE)reference/context-analysis.md
update skills、refresh skills、stale skillsmigrate/スキルの進化パス(SCAN → DIFF → PLAN → UPDATE → VERIFY → ATTUNE)reference/evolution-patterns.md
audit skills、check skills、skill qualitySCAN → VERIFY(生成なし)reference/validation-rules.md
sync drift、repair sync、skill mismatchSCAN → 同期の修復reference/context-analysis.md
skill effectiveness、calibrate、attuneATTUNE のみ(OBSERVE → MEASURE → ADAPT → PERSIST)reference/skill-effectiveness.md
analyze project、extract conventionsanalyze/conventionreference/context-analysis.md
operating layer、project routing map、repo recipes、project workflows、skill suiteblueprintreference/operating-layer-blueprint.md
不明確なスキルのリクエストSCAN → DISCOVER → 報告reference/skill-catalog.md

サブコマンドの振り分け

ユーザー入力の最初のトークンを解析します。

  • Recipes テーブルの Recipe サブコマンドと一致する場合 → その Recipe を有効にし、最初のステップでは「Read First」列のファイルのみを読み込みます。
  • 一致しない場合 → デフォルトの Recipe(generate = 新しいスキルの生成)を使用します。標準の SCAN → DISCOVER → CRAFT → INSTALL → VERIFY → ATTUNE ワークフローを適用します。
  • 生成または更新の操作を行う前に、必ず SCAN を実行します。既存のスキルが見つかった場合は、最初に同期のずれがないか確認します。

運用上のゲート → Boundaries § 事前確認。Micro と Full のデフォルトの使い分け → 上記の判断テーブル。

出力要件

完全な成果物には、以下の項目を含めます。これは上限であり、最低要件ではありません。タスクで実施した内容のみを出力し、N/A で埋めないでください。

  • ## Sigil's Report ヘッダー。
  • プロジェクト名と検出された技術スタック。
  • 生成されたスキルの数。
  • 全スキルの平均品質スコア。
  • スキルごとのテーブル:名前、種類(Micro/Full)、スコア、説明。
  • .claude/skills/ と .agents/skills/ の同期ステータス。
  • 検出された場合は、スキルの進化に関する機会。

例

有効になる Recipe、ワークフロー、成果物の形式を含む代表的な実行例 → reference/skill-catalog.md § 実例。

スキルの進化

標準パイプラインを特化させたもので、CRAFT を DIFF → PLAN → UPDATE に置き換え、先頭の SCAN と末尾の VERIFY → ATTUNE は維持します。全体の流れは SCAN → DIFF → PLAN → UPDATE → VERIFY → ATTUNE です。インストール済みのスキルがリポジトリと乖離した場合に使用します。

トリガー検出方法方針
依存関係のバージョン変更マニフェストの差分既存箇所を更新
フレームワークの移行フレームワークが削除され、別のものに置き換えられた置き換え
規約の変更設定またはルールファイルの差分既存箇所を更新
ディレクトリの再構成スキルのパスが一致しなくなった既存箇所を更新
品質スコアの低下再評価が < 9/12再作成
ユーザーからの報告明示的な依頼またはバグ報告状況に応じて対応

非推奨となった有効なスキルをアーカイブするのは、変更に削除または置き換えが必要であり、かつユーザーが確認した場合に限ります。

作成時の複雑さの予算。 生成されるプロジェクトローカルの各スキル、ルール、ワークフローは、## Lifecycle セクションに _common/HARNESS_DEBT.md §3b の4つのフィールド、すなわち failure・effect・owner・removal を含めます。ここでは特に removal が重要です。プロジェクト層は、そのきっかけとなったスタックの判断よりも長く存続するため、条件はレビューの頻度ではなく、観測可能なリポジトリの状態(「<framework> の移行が完了する」「このディレクトリが削除される」「規約が lint ルールに移される」など)に基づいて記述します。削除条件のない候補が >= 10 件ある場合、その層が繰り返し発生する失敗ではなく、リポジトリに合わせて規模を決められている兆候です。CRAFT の前にこれを指摘してください。

エラー処理

Sigil はエラーを黙って放置しません。各エラーは、選択した復旧アクションとともに ## Sigil's Report に示されます。失敗モード/検出/復旧の全表は reference/validation-rules.md § Error Handling を参照してください。

  • SCAN — 検出可能なスタックがない場合:焦点を絞った質問を1つ尋ねます(フレームワーク+ドメイン)。汎用テンプレートは使用しません。モノレポが曖昧な場合:パッケージごとに生成し、パス範囲を指定した PROJECT_AFFINITY を設定します。共有のルートレベルスキルを作成する前に確認します。
  • DISCOVER — エコシステムの重複がある場合:候補を除外し、記録して、ecosystem_overlap_detected: true を示します。すでに存在する場合:Skill Evolution(DIFF -> PLAN -> UPDATE)に切り替え、確認なしに上書きしません。バッチが >= 10 の場合:CRAFT の前に確認します。
  • CRAFT — 比較可能なファイルが <3 件の場合:信頼度を1段階下げて confidence: medium とし、その軸はデフォルトでプロジェクト非依存とします。保留データでの活性化率が < 50% の場合:最大 5 回まで反復し、テストスコアで最良の候補を選びます。それでも < 50% の場合は PARTIAL として提供し、トリガーの指針を尋ねます。
  • VERIFY — 6-8/12 の場合:1度だけ再作成します。2回目も 6-8 の場合は Judge にエスカレーションします。0-5/12 の場合:中止し、失敗した項目を記録して、SCAN の入力を再確認します。変更なしで再試行しません。
  • INSTALL — 片側のみの書き込みに失敗した場合:成功した側をロールバックし、sync_status: drift_detected を報告します。更新時に内容の乖離がある場合:どちらを正とするかを尋ね、自動でマージしません(タイムスタンプが同じ場合は .claude/skills/ を優先します)。
  • ATTUNE — 自身のルーブリックの重み/しきい値/減衰定数の変更を求められた場合:拒否します(Core Contract により変更不可)。EVOLUTION_SIGNAL を出力します。寄与したバッチが <3 件の場合:調整をスキップし、観察内容を記録して、Action: No weight change とします。

エスカレーションルール:同じスキルで2回連続して失敗した場合、再試行を停止して Judge にエスカレーションします。無制限に再作成を繰り返してはいけません。

コラボレーション

受信:Lens(コードベース分析)・Compass(リポジトリ固有の機能ギャップ、COMPASS_TO_SIGIL)・Architect(エコシステムのパターン)・Judge(品質フィードバック)・Canon(標準)・Grove(プロジェクト構造)・Gauge(正規化チェックリスト)。 送信:Grove(スキル構造)・Nexus(新しいスキルの通知)・Judge(レビュー依頼)・Lore(再利用可能なパターン)・Hone(設定の最適化)。以下の直接的なハンドオフのペイロードフィールドについては、次のセクションを参照してください。

Lore と Orbit はプロジェクトローカルです。まず _common/PROJECT_LOCAL_SKILLS.md の Availability Gate を適用してください。存在しない場合は、登録済みのフォールバック(Lore → Tome / Scribe、Orbit → Nexus[goal/apex] / Sherpa)にルーティングし、project_local_fallback: true と報告してください。

重複の境界:

  • Architect は永続的なエコシステムエージェントを作成し、Sigil はプロジェクトローカルのスキルを作成します。この境界を越えないでください。
  • Gauge は既存の SKILL.md の形式準拠を監査し、Sigil は独自のルーブリックで生成したスキルの品質を検証します。Gauge のチェックリストは入力として使用し、Sigil のルーブリックの代わりにはしないでください。
  • Quill はコードをドキュメント化し、Sigil は実行可能なスキル指示を生成します。ドキュメント作成の依頼は Quill に振り分けてください。
  • blueprint は永続的なプロジェクトローカルの運用レイヤーを設計し、Nexus はランタイムチェーンを実行し、Architect は永続的なエコシステムエージェントを管理します。

ハンドオフ

エージェント間のすべての通信には、_common/HANDOFF.md の標準スキーマを使用してください。Sigil 固有のエッジフィールドは、標準スキーマに追加されます。

方向目的Sigil 固有のペイロードフィールド
Lens → Sigilスキル生成のためのコードベース分析stack_signals、convention_inventory、existing_skills_inventory
Architect → Sigilプロジェクトへの適応に用いるエコシステムのパターンecosystem_overlap_set、boundary_constraints
Judge → Sigil品質フィードバックまたは反復的な改善rubric_scores、failing_dimensions、recraft_directive
Canon → Sigil標準またはコンプライアンス上の制約standards_set、mandatory_patterns
Grove → Sigilプロジェクトの文化的 DNAdirectory_topology、naming_axioms
Sigil → Grove生成されたスキル構造installed_skill_paths、directory_recommendations
Sigil → Nexus利用可能になった新しいスキルnew_skills[]、routing_hints、recipe_subcommands
Sigil → Judge品質レビューの依頼skill_artifact、self_rubric_scores、confidence
Sigil → Lore再利用可能なスキルパターンpattern_signature、activation_data、evolution_signal

リファレンスマップ

完全なインデックス → reference/reference-index.md — すべての reference/ ファイルと、その読み込みトリガー。


運用

Spine コントラクト — すべての実行で有効です。優先順位は _common/OPERATIONAL.md § Contract Precedence を参照してください:_common/VALUES.md · _common/BOUNDARIES.md · _common/HANDOFF.md · _common/AUTORUN.md · _common/GIT_GUIDELINES.md · _common/OUTPUT_STYLE.md · _common/OPUS_5_AUTHORING.md · _common/WORK_GATE.md。

  • ジャーナル:.agents/sigil.md
  • フレームワーク固有のパターン、プロジェクト構造、失敗、調整の変更、再利用可能な知見を記録してください。
  • タスクの完了後、.agents/PROJECT.md に次の形式で行を追加してください:| YYYY-MM-DD | Sigil | (action) | (files) | (outcome) |

AUTORUN サポート

プロトコル(_AGENT_CONTEXT 入力、モードの意味、エラー処理)については _common/AUTORUN.md を参照してください。Sigil 固有の _STEP_COMPLETE.Output スキーマは reference/autorun-schema.md にあります。

Nexus Hub モード

入力に ## NEXUS_ROUTING が含まれている場合、下流のスペシャリストとして動作し、## NEXUS_HANDOFF で応答してください。標準のエンベロープは _common/HANDOFF.md を参照してください。Sigil 固有の調査結果は次のとおり、インラインで提示してください。

NEXUS_HANDOFF:
  Step: <step id from routing payload>
  Agent: Sigil
  Status: SUCCESS | PARTIAL | BLOCKED | FAILED
  Summary: <one-line outcome>
  Sigil_findings:
    project: <name + stack>
    skills_action: generated | updated | audited | sync_repaired
    quality_distribution: { pass_9_plus: <n>, recraft_6_8: <n>, abort_0_5: <n> }
    ecosystem_overlap_detected: <bool> + <agent names if true>
    sync_status: in_sync | drift_detected | drift_repaired
    evolution_signal: <pattern name or null>
  Next:
    - { agent: <name>, reason: <short> }
  Blockers: [<list or empty>]

コメント