Community研究&データ分析github.com

TheCreepero/event-pack-create

新しい「Event Pack: <国名>」カントリーパックの計画、または既存パックへの新規イベント追加を、サブエージェントによる調査、ライセンス確認付き画像検索、ファクトシートに基づくイベントテキスト作成、独立した編集者によるチェックを経て、自己完結した計画書(docs/plans/)として作成します。最終的には引き渡しを行い、event-pack-implementがその計画を実行します。

event-pack-create とは?

このスキルは、Hearts of Iron IV の Event Pack カントリーパックを新規作成したり、既存パックにイベントを追加するための完全な計画プロセスを自動化します。計画フェーズでは、複数の専門サブエージェントを並行して起動し、歴史調査(ep-historical-researcher)、画像調査(ep-picture-researcher)、ファクトチェック(ep-audit-researcher)、編集チェック(ep-editor)を順次実行します。すべての事実は出典ページで検証され、画像はライセンス確認ツール(build.ps1 の FetchPicture と DryRun)で承認されたもののみが採用され、最終的なテキストは独立した編集者による承認を経ます。最終成果物は、`docs/plans/` 以下に配置される1つの自己完結型マークダウン計画ファイルであり、`event-pack-implement` スキルがこの計画を読み込んで実際のパックファイルを生成します。Antigravity フレームワークに対応しており、各エージェントは invoke_subagent を通じて起動され、サブエージェントが利用できない場合でもスキル自体がその作業を代行します。

対応~Claude Code~Codex CLI~Cursor✓Antigravity
npx skills add https://github.com/TheCreepero/event-packs/tree/HEAD/.agents/skills/event-pack-create

Installed? Explore more 研究&データ分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Event Pack: パックの作成またはイベントの追加

イベントテキスト、効果、画像のすべてを1つの計画ファイルにまとめるパックまたは新規イベントを計画します。この計画ファイルは event-pack-implement によって実行されます。フェーズ4の前に docs/source-format.md と docs/style-guide.md を読んでください。

ルール

  • すべての事実はそのページで検証されます。 事実がファクトシートに入るのは、フェーズ3aで KEEP または FIX となった場合のみで、その出典と引用文を伴います。チェックされたページに記載されていない詳細は、いかに妥当に見えてもテキストには入りません。
  • ライセンスはツールの判断に委ねられます。 画像が計画に入るのは、build.ps1 -FetchPicture ... -DryRun が ACCEPTED を出力した場合のみです。
  • 編集者はすべてのテキストを承認します。 編集者が最新ラウンドで KEEP を返していないイベントが含まれた計画は READY になりません。
  • 出荷済みのパックはここでは変更しません。 このスキルは計画書、research/<key>/ 以下の資料ファイル、scratch/ 以下のファイルを作成します。source/ と packs/ が変更されるのは計画が実装されるときです。唯一の例外は真新しいパックのための -NewPack(フェーズ0)で、パック独自のサムネイルは実装時(フェーズ3、ステップ5)に作成されます。
  • 資料ファイルは保持されます。 すべての資料ファイルは research/<key>/ に残り、計画が破棄された場合でも削除されたり切り詰められたりすることはありません。選ばれなかった候補や使用されなかった事実は、次にパックを拡張するときの出発点となります。追加されるのはフェーズ5.4の Used: 行と Checked: 行のみです。これらの行は、計画が出荷されるとき、または所有者の指示に従ってコミットされます。
  • 質問はフェーズ0とフェーズ2のものだけを所有者に行ってください。

フェーズ0: 範囲

  1. 所有者に1つのメッセージで以下を尋ねます:国(タグが不明確な場合はタグも)、期間(デフォルト:1936年からその国の戦争開始まで、およびその最初の数ヶ月)、イベント数(デフォルト:10から15)、重点または回避する種類、パックが触れてはならないこと。回答を計画の「決定事項」に記録します。
  2. 新規パックの場合:hoi4-vanilla-lookup スキル(Get-HoiCountry)でタグを確認し、次に powershell -File .\build.ps1 -NewPack -Pack <key> -Tag <TAG> -DisplayName "<Country>" を実行します。これにより、Modding Manager の New-HoiThumbnail.ps1 を使用して(またはそれが実行できない場合は assets/thumbnail_master.png をコピーしてコマンドを出力)、ファミリーのデフォルトローディング画面の上に最初のサムネイルをレンダリングします。このサムネイルはフェーズ3で置き換えられます。source/<key>/workshop-intro.bbcode を作成します:パックについて2、3の平易な文章と、-NewPack が作成した情報行を含めます。
  3. docs/plans/TEMPLATE-pack.md を docs/plans/<YYYY-MM-DD>-<key>-<what>.md にコピーし、ヘッダー、「コンテキスト」、「決定事項」を記入します。既存パックの場合:最後のイベントIDをメモし、新しいIDはそこから連番とします。

フェーズ1: 調査

  1. research/<key>/ が存在する場合、その資料ファイルを読みます。Used: マークがなく、期間と種類に合致する候補は、今回の計画の候補でもあります。そのキーをメモします。Checked: 行がある候補は、そのページでチェック済みです。最新の Checked: 行が示す場所で判断し、その下に書かれた事実ではありません。そこにあるファクトシートは、チェックされたすべての事実を保持しています。計画の「事実検証」には修正と削除のみが含まれるため、そこで名前が挙がっていない資料ファイルの事実は保持されたことになります。選択された場合でも、フェーズ3aを通過します。
  2. 必要な候補数:必要なイベント数の約1.5倍から、使用可能な以前の候補数を差し引いた数です。これらを最大12件のまとまりに分割し、それぞれが期間の一部(例:30件の場合:1936年、1937-1938年、1939-1940年)をカバーし、各まとまりに1つずつ ep-historical-researcher を並行して割り当てます。各エージェントには、国、タグ、期間の一部、候補数、フェーズ0の種類、パックの既存イベントのタイトル、以前の資料ファイルのすべての候補(キー、日付、1行の説明)、および自身のパス research/<key>/<YYYY-MM-DD>-dossier.md(同じ日に既存のものがある場合は -2 以降を使用)を渡します。すべてのサマリーを待ちます。

フェーズ2: 選択

新しい資料ファイルを読みます。キーとなる事実が UNVERIFIED の候補、引用された事実で40語を埋められない候補、または別のまとまりの候補と重複する候補を削除します。残りを使用可能な以前の候補(その旨を明記)とともに、短いリスト(キー、日付、種類、ゲート(日付範囲またはゲーム状態)、1行の説明)として所有者に提示し、あなたの推奨(どれを保持すべきか、その理由)とともに、所有者の選択を仰ぎます。

フェーズ3: 画像

  1. 選択されたイベントについて ep-picture-researcher を割り当てます:キー、日付、場所、資料ファイルの画像アイデアを渡します。
  2. 各イベントについて、最初の提案に対して powershell -File .\build.ps1 -FetchPicture -Pack <key> -File "<File:...>" -Key <picture key> -DryRun を実行します。REJECTED の場合は、次の提案を試みます。承認されたファイルがないイベントは、バニラ画像(hoi4-vanilla-lookup スキルの Find-HoiUsage で見つけた vanilla:GFX_report_event_<name>)を使用し、計画にその旨を注記します。
  3. 画像ごとにトリミングと色調を選択します:白黒写真は warm(ゲーム内画像に合う)、カラーアートは none。トリミングは、リサーチャーのトリミングノートが要求する場合を除き、50以外は使用しません。
  4. ドライランが出力した内容で計画の「画像」テーブルを埋めます。
  5. サムネイル:新規パック、または assets/thumbnail.json に packs.<key>.background がないパックの場合:背景はバニラのローディング画面ではなく、パック自身のイベント画像の1つを使用します。Modding Manager の New-HoiThumbnail.ps1 は、固定されたEvent Packレイアウト(ゲームの枠線、下部のタイトルプレートに「EVENT PACK」と国名、右上にパックタグの旗)で残りを描画するため、画像とそのトリミングのみが選択肢となります。ACCEPTED と出力された画像を選びます。PDまたはCC0が望ましく、CC BYも許容されます(生成されるWorkshop説明文ではイベントが使用するすべての画像のクレジットを記載するため)。画像とその被写体が位置する場所を見てください:タイトルプレートは正方形の下部約3分の1を覆い、旗は右上隅を覆うため、被写体が上部中央に配置できる画像を優先します。横長の画像は正方形の高さ全体を埋めるため、トリミング("center"、"left"、"right")は横方向にのみ移動します。縦長の画像は幅全体を埋めるため、"top" または "bottom" で被写体を収めます。[x, y] のセンタリング分数でその間を指定します。Thumbnail: <picture key>, crop <crop> と書き、「実装手順」のステップ4に、画像キー、トリミング(JSON形式)、Modding Manager の絶対パス(<Manager root>、このリポジトリの2つ上のフォルダ)を記入します。そのコマンドは -Path . を取るため、フェーズ5のリハーサルはコピーに対してのみレンダリングおよび書き込みを行います。ドライランは何もダウンロードしないため、サムネイルは実装時に、ステップ3の後、-FetchPicture が sources-cache/<key>/ に保存するコピー(Commonsレンダリング、最大幅1600px)から作成されます。210x176のDDSからは作成されません。すでに独自のサムネイルがあるパック:Thumbnail: unchanged と書き、ステップ4を Thumbnail unchanged: nothing to run. と読み替え、ステップ番号はそのままにします。

フェーズ3a: 検証

所有者の選択後、フェーズ3と同時に実行します。リサーチャーの引用は手がかりであり、まだチェックではありません。

  1. 選択されたイベントについて ep-audit-researcher を割り当てます。エージェントあたり最大5イベントとし、すべて並行して実行します。各イベントの資料ファイルセクション全体を貼り付けます。画像は送信しません。
  2. KEEP および FIX の事実のみが、チェッカーが返した出典と引用文を伴って進められます。検証された詳細が40語未満となったイベントは、フェーズ2に戻って代替を求められ、その代替もフェーズ3aを通過します。
  3. 計画の「事実検証」を埋めます:エージェントとエージェントあたりのイベント、チェックされたイベントごと(代替されたものを含む)の KEEP、FIX、DROP の数、修正された各事実とその訂正、削除された各事実、代替されたイベント。

フェーズ4: 作成

  1. フェーズ3aの結果のみを使用して、計画の markdown fact-sheets ブロックに、選択された各イベントのセクションを作成します。各行は - <事実>. 出典: <URL> (<ページタイトル>). 引用: «<ページの行>» とします。資料ファイルの事実をそのままコピーしないでください。
  2. json events ブロックにイベントを作成します。既存パックの場合は、現在の source/<key>/events.json から開始し、それに追加します。すべてのフィールドは docs/source-format.md に従い、すべてのテキストは docs/style-guide.md に従います。効果は小さく、選択肢に一致させます。時限付きアイデアは、イベントがそれに値する場合のみ使用します。編集者があなたに求める3つのルール:
    • 2つの事実を結合して主張を行わないこと(1つの引用が結合された主張を述べている場合を除く)。
    • 役職や肩書きは、イベントの日付時点のものを使用し、後になってそうなったものは使用しないこと。
    • テキストは fire ウィンドウのすべての日において真実であること:最近または近日中とされているものが、ウィンドウの別の日にはすでに終わっていたり、まだ発生していなかったりしてはならない。
    • 戦争、または戦争の準備に関するイベントは、fire.trigger のゲーム状態にゲートされ(AGENTS.md参照)、日付にはゲートされません。そのテキストは、戦争の開始または準備に関する歴史的な日付を指定しません。平時のイベントは、国が戦争状態になるとブロックされます。トリガーが計画に入る前に、Find-HoiDoc でそのスコープを調べ、ウィンドウ開始時点のすべてのタグ、州、フラグを Get-HoiState、Get-HoiCountryHistory、Find-HoiUsage で調べます。有効なスクリプトであるトリガーでも、通常のゲームでは決して真にならない可能性があります(開始時に存在しない国、他の国が所有する州など)。計画が後で約束するルックアップは、計画が READY になる前に行われます。
  3. トリガーを編集者が見る前に検証します。trigger-checker エージェント(Modding Manager の Agents/trigger-checker.md、ユーザーレベルでインストール済み。Antigravityはそのファイルを invoke_subagent に渡します)に、計画パス、イベントキー、パックのタグを渡して割り当てます。すべての fire.trigger をイベントの fire.after 時点のゲームファイルに対して解決し、イベントごとに、トリガーがウィンドウ内で真になり得るか、毎週のチェックに対してどの程度持続するか、トリガーが許可するケースでテキストが偽にならないか、ウィンドウがテキストの日付に適合するかを回答します。すべての FIX を指定された通りに適用し、変更されたイベントを再度実行し、各イベントの判定を計画の「トリガー検証」に記録します:OK、古いトリガーを置き換えたトリガーと共にFIX、またはプローブとその結果または所有者の決定と共にOPEN。プローブ結果も所有者の決定もない OPEN イベントがある計画は READY ではありません。編集者が提案する条件は、このステップのための手がかりであり、トリガーではありません。
  4. 計画パス(markdown fact-sheets ブロックがファクトシート)とイベントキーを指定して ep-editor を割り当てます。すべての REWRITE を指定された通りに適用します。REJECT は削除または代替します(フェーズ2に戻って代替を求めます)。各ラウンドを「編集記録」に記録します。すべてのイベントが KEEP になるまで、変更されたイベントを編集者に送り返します。最大3ラウンドとし、その後は所有者に問い合わせます。
  5. パックのWorkshop紹介文、source/<key>/workshop-intro.bbcode を審査します。Modding Manager の docs/workshop-text-style.md(..\..\docs\workshop-text-style.md)のセクション「ページの監査」に従って、mod モードの workshop-editor を、mod フォルダ(リポジトリルート)とそのファイルを指定して割り当てます。Test-WorkshopText.ps1 -Mod "Event Packs" -Pack <key> が成功した後に行います。紹介文は、パックの events.json と pictures.json が示す内容のみ(イベント数、どのイベントが時代の画像を持つか、効果は何か)を述べ、同じ事実に対して他のパックの紹介文で使用されている表現を使用します。すべての REWRITE を適用し、-Generate、Sync-WorkshopRegions.ps1、および機械的チェックを再度実行し、紹介文が KEEP になるまで送り返します。最大3ラウンドとし、その後は所有者に問い合わせます。ラウンドを「編集記録」に記録します。

フェーズ5: ゲート

  1. リポジトリに触れずに計画をリハーサルします:robocopy . scratch\rehearsal /MIR /XD .git scratch artifacts sources-cache を実行し、次に scratch\rehearsal 内で計画のステップ1から8を書かれた通りに正確に実行します(コピーのみに書き込みます)。すべてのステップは、期待される結果を生成しなければなりません。コピーではなく計画を修正し、再度リハーサルします。ステップ4はコピーの assets\thumbnail.json を編集します。Read ツールで指定されたプレビューを開き、タイトルプレートや旗が被写体を覆う場合は、別の画像またはトリミングを選択します。ステップ8は各イベントをゲームのウィンドウとして描画します(scratch\rehearsal\artifacts\workshop-images\<key>\)。Read ツールで画像を開き、レンダリングが [WARN] を出力するタイトルまたはオプションを短くします。これは、テキストが下のテキストに溢れていることを示します [GUW-027]。
  2. 「イベント」を埋め、「判断で維持」リストに、リハーサルの -Check -Pack <key> または -RenderEvents -Pack <key> が出力した、残存する [WARN] をすべてリストアップし、Status: READY を設定します。
  3. コピーを削除します:Remove-Item -Recurse -Force scratch\rehearsal。
  4. 資料ファイルにマークを付けます。候補のキーのすべてのセクション(資料ファイルと補遺の両方)において:
    • READY 計画の各イベントは、その ## <key> 見出しのすぐ下に Used: <plan file name> という行を取得します。
    • フェーズ3aでチェックされたすべての候補(代替されたものを含む)は、その後(見出しの下。Used: がない場合は見出しの下、以前の Checked: 行がある場合はその下)に Checked: <plan file name>, <K> kept, <F> fixed, <D> dropped. 以下の事実はリサーチャーのメモであり、チェックされたものではありません。参照: <where>. という行を取得します。カウントは「事実検証」からのものです。<where> は、計画のイベントの場合は source/<key>/fact-sheets.md、代替されたイベントの場合は 計画の「事実検証」 です。
    • 資料ファイルの他の部分は一切変更しません。チェックされなかった候補は、リサーチャーが書いたまま、マークされずに残ります。

フェーズ6: 引き渡し

所有者に報告します:計画パス、各資料ファイルのパスと後で使用できる候補の数、イベントとそのタイトル、画像ライセンス(PD、CC0、CC BYの数)、サムネイルの画像とトリミング、事実検証の合計、編集者の合計、および event-pack-implement がそれを実行することを伝えます。その後停止します。

Antigravity: 各エージェントのブリーフのパスを invoke_subagent に渡します。サブエージェントを割り当てられない場合は、ブリーフを読み、自分で作業を行います。編集者の作業は、ドラフト、ファクトシート、スタイルガイドのみを読む別のパスで行います。

関連スキル