tk-github-image-upload-to-pr について
tk-github-image-upload-to-prは、既存のGitHub PRまたは条件を満たす引き継ぎに、ローカル画像の証拠をアップロードするスキルです。対象と経路を確認し、PRの内容とレンダリング結果を検証します。
主な機能
- 01ローカル画像の検証とステージング
- 02リポジトリ単位の添付画像をアップロード
- 03指定されたPR本文またはコメントを更新
- 04Markdown、表示ページ、画像リンクの検証
- 05単一レシートでアップロード試行を記録
活用シーン
- 01既存PRに確認済みスクリーンショットを追加
- 02有効な証拠必須の引き継ぎに対応
- 03アップロード画像とPR表示結果を確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mtgvim/ tiger-kit --skill tk-github-image-upload-to-prインストール後、Claude Code で/tk-github-image-upload-to-prを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlreferences/cdp-fallback.mdgh-attach.md詳細
GitHub PR 画像アップロード
既存の GitHub PR に対する明示的なローカル画像証拠のリクエスト、または evidence_required: true を含む正確な
tk-pr-open の汎用マニフェスト引き継ぎに対応します。自動トリガーとなるのは、親からの引き継ぎのみです。
ルートの選択またはインストール前の確認が必要な場合は、ホストのネイティブな構造化質問機能(Claude Code:AskUserQuestion、Codex:request_user_input、Hermes:clarify)を優先してください。利用できない場合は、同じ選択肢を通常のチャットで尋ね、選択されるまで変更を加えないでください。
対象範囲
範囲を限定したアップロードを 1 回実行します。ローカル画像を検証してステージングし、リポジトリ単位の GitHub 添付ファイルをアップロードし、PR 本文または選択したコメントを最小限更新して、ソースとレンダリング結果を検証します。デフォルトの対象は PR 本文です。
tk-pr-open の場合は、プロデューサーに依存しない証拠フィールドを検証し、生成元のスキル名を条件に分岐したり、許可リストに登録したり、必須にしたりしないでください。必要な証拠が不足しているか無効な場合は、証拠の引き継ぎを Blocked とマークしてください。すでに作成済みの tk-pr-open PR は元に戻さないでください。
references/gh-attach.md を使用して、拡張機能のルートを分類し、実行してください。references/cdp-fallback.md を読むのは、CDP が選択された後、または拡張機能のルートで対象への書き込み機能を利用できない場合に限ります。tk-wizard を呼び出すのは、ホストの設定、認証、権限、再起動に関する、人手のみで行う正確な手順が必要な場合に限ります。引き継ぎ後も、このスキルのアップロード対象とルートを維持してください。ブラウザー制御下の実行時検証には tk-browser-verify を使用してください。
🔴 CHECKPOINT · 🛑 STOP · アップロード変更の境界
アップロードまたは PR 本文・コメントの更新を行う前に、明示的に選択された対象、有効なローカル証拠またはプロデューサーからの引き継ぎ、認証済みルート、要求された書き込み範囲を再検証してください。これらの前提条件を確認できない場合は、Blocked または Unverifiable として停止してください。
ワークフロー
- 通常のローカル画像ファイル、または有効なプロデューサー証拠の引き継ぎを使って、
origin、現在の PR、実行対象のリポジトリを確認します。既存の PR 本文を読みます。 - 既存の
## 스크린샷見出しを再利用します。存在しない場合は、AI フッターの前に挿入するか、末尾に追加します。無関係な本文の内容は維持してください。マニフェスト成果物では、ファイル名、OCR、元の URL、プロデューサーの識別情報から導き出すことなく、指定された criterion、role、正確なdisplay_route、state/region、viewport、comparison をキャプションに使用してください。visual-preservationの baseline と after は、1 組であることが分かるように明示してください。 - gh-attach を使用して利用可能なルートを選択・実行するか、CDP が選択された後に限り CDP fallback を読みます。 リポジトリの公開範囲はルート選択の判断材料ではありません。また、リモート状態を作成した可能性のあるルートから、もう一方のルートへ暗黙に切り替えてはなりません。
- 選択したルートで人手のみのホスト操作が必要な場合は、範囲を限定した引き継ぎを
tk-wizardに渡し、完了通知を受け取るまでアップロードを行わないでください。エージェントの承認を得た、レビュー済みの拡張機能のインストールはこのスキル内で行います。ウィザードの完了後は、同じリポジトリ、対象、画像セット、ルートで再開してください。 - GitHub API または同等の方法を使い、要求された本文またはコメントのみを更新します。
Passとする前に、ソースの Markdown、レンダリングされた HTML/ページの証拠、すべてのアセットリンク、アップロード参照を検証してください。 - すべての終了経路で、自身が所有するステージングファイルのみを削除します。
Execution Receipt · 単一の証拠記録
すべてのアップロード試行を、以下の単一のレシートに記録します。これは独立したライフサイクル出力ではありません。## GitHub image upload の結果、および承認・検証の判断に使用する唯一の証拠記録です。値がない場合は none または unavailable を使用し、決して推測しないでください。
Repository: <owner>/<repo>
PR / Target: <pr-number> / body | existing comment <comment-id>
Source images: <absolute path list>
Route: gh-attach | CDP
Entry: <exact reviewed command | browser route>
Generated Markdown: <asset refs | none>
Remote ref: <refs/uploads/issues/<pr-number> | none | unknown>
Verification: <source body/comment | rendered HTML/page | unavailable>
Changed: <body/comment changed | unchanged | unknown>
Cleanup: <owned staging path removed | failed | not applicable>
Status: Pass | Fail | Pending | Blocked | Unverifiable
エビデンスマニフェストの引き継ぎ
evidence_required: true の場合、以下をすべて必須とします。
verification_status: Pass、空でない基準、エビデンスの種類、比較結果、制限事項。- すべてのアーティファクトに、役割、空でない画像、絶対パス、実行専用のエビデンスディレクトリ、状態/リージョン、ビューポートがあること。
- すべての画像に
inspected: trueが設定され、オリジン情報を含まない正確なdisplay_route、または明示的な安全な省略に関する制限事項があること。欠落したルートを再構築したり、マスクしたりしてはいけません。 visual-preservationに、検証済みのペアから取得したベースラインと事後のアーティファクトの両方が含まれていること。
任意のスクリーンショット、パスの欠落、Pass 以外の結果、未確認のアーティファクト、未完成の保全ペア、現在の実行に紐付いていないアーティファクトは拒否します。必須のエビデンスが不足しているか無効な場合は、アップロード前に Blocked を返します。
禁止事項
- ユーザーがコメントの対象を明示的に選択していない限り、PR の作成やマージ、レビュアーの変更、リリースの公開、コメントの挿入を行わないでください。
tk-browser-verifyを回避したり、Orca や画面制御をブラウザーの自動フォールバックとして使用したりしないでください。- 既存のドラフトを上書きしたり、コメント、コメント付きクローズ、その他の送信ボタンをクリックしたりしないでください。
- 公開/非公開の可視性を基準にルートを選択したり、プレースホルダー、Markdown の存在、固定の待機時間、未レンダリングの API レスポンスだけを根拠に成功を主張したりしないでください。
- 署名付き URL、JWT、生のシークレットを含むクエリ文字列をログに記録したり返したりしないでください。これは、検証済みで安全かつオリジン情報を含まない
display_routeを禁じるものではありません。マニフェストで指定されたパス名、クエリ、フラグメントはそのまま保持してください。
失敗時の処理
拡張機能がない場合の選択、レビューされていないアップストリームの選択、または人間のみが完了できる tk-wizard の完了シグナルを待っている間は Pending を返します。プロベナンスが unknown の場合、ドラフトの場合、または選択された CDP ルートがない状態でインストールが拒否された場合は Blocked を返します。どちらのルートにも認証またはレンダリングのエビデンスがない場合は Unverifiable を返し、アップロード、リモート ref の検証、クリーンアップのエラーには Fail を返します。選択された本文/コメントが変更されたかどうか、アップロード ref が残存する可能性があるかどうかを明記してください。
tk-pr-open では、PR 操作の結果を個別に保持し、エビデンスの状態を uploaded または blocked として返してください。必須エビデンスがブロックされたままの場合、親プロセスは完了を全面的に主張できません。
結果
ターミナルへの応答は ## GitHub image upload で始めてください。該当する場合は ## Uploaded、## Verification、## Cleanup を含めてください。結果を報告するセクションの末尾には、Status: Pass|Fail|Pending|Blocked|Unverifiable の行を正確に 1 行だけ記載してください。安全な場合に限りアセット URL を公開し、署名付きパラメーターは秘匿してください。
アーティファクトのパス
リポジトリ所有の出力先は、デフォルトで .tigerkit/ にします。一時ファイルは tmp/<skill>/<run-id>/、検証エビデンスは evidence/<skill>/<run-id>/、説明は explanations/、学習事項は study/<topic>/ に保存します。既存の所有者固有のパスと、ユーザーが明示的に選択した最終保存先は保持してください。このポリシーは、新たな書き込み権限やアーティファクトの作成を義務付けるものではありません。.tigerkit/ を使用する前に、リポジトリのルート、配下に追跡対象のファイルがないこと、Git の無視設定が有効に適用されていることを確認してください。シンボリックリンクによる範囲外への逸脱は拒否し、無関係な既存ファイルは保持してください。安全でない場合、またはリポジトリを特定できない場合は、ignore ルールを編集したり OS の一時ディレクトリにフォールバックしたりせず、ファイル処理を Blocked | Unverifiable として停止してください。アトミックな置換では、保存先と同じファイルシステム上に、実行専用の兄弟一時ファイルを使用できます。成功後は削除してください。外部ツールのキャッシュと分離されたテスト用フィクスチャは、それぞれのツールが所有するライフサイクルに従います。