deferred-capture について
deferred-capture は、プラグインの保留事項記録ラッパー向けの仕様です。ラッパーの開発や検証に使い、コマンドライン引数、GitHub issue のテンプレート、重複確認、JSON 出力を定めます。
主な機能
- 01必須・任意のコマンドライン引数の規定
- 02保留事項 issue テンプレートの定義
- 03タイトルによる未完了 issue の重複検出
- 04dry-run の JSON 出力
- 05ラッパー適合性テスト
活用シーン
- 01新しい deferred-capture ラッパーの作成
- 02既存ラッパーの仕様適合性の検証
- 03ソースラベルやテンプレート項目の追加
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ athola/ claude-night-market --skill deferred-captureインストール後、Claude Code で/deferred-captureを入力して読み込まれたか確認します。
詳細
遅延キャプチャの契約
使用する場面
- 新しいプラグインの遅延キャプチャラッパーを作成する場合
- 既存のラッパーが契約に準拠しているか検証する場合
- 新しいソースラベルやテンプレートフィールドを追加する場合
使用しない場面
- 実行時に遅延アイテムをキャプチャする場合(プラグインのラッパーを直接使用してください。例:
plugins/<plugin>/scripts/deferred_capture.py) - GitHub イシューを手動で作成する場合
すべてのプラグインの遅延キャプチャラッパーが実装する仕様です。 実行時の依存関係ではなく、単なる規約です。
CLI インターフェース
必須の引数:
--title(str):簡潔な説明です。[Deferred]プレフィックスを付けたイシュータイトルになります--source(str):元となるスキルです。次のいずれかです:war-room、brainstorm、scope-guard、feature-review、review、regression、egregore--context(str):提起した理由と、遅延した理由です
任意の引数:
--labels(str):deferredとソース以外に追加するラベルをカンマ区切りで指定します--session-id(str):セッション ID です。正規のソースは、フックペイロードの stdin に含まれるsession_id(jq -r '.session_id')です。取得できない場合は、UTC タイムスタンプYYYYMMDD-HHMMSSを使用します--artifact-path(str):ソースアーティファクトの絶対パス、または$HOMEを基準とするパスです--captured-by(str):explicit(デフォルト)またはsafety-netです--dry-run(フラグ):イシューを作成せずに JSON 出力を表示します
イシューテンプレート
タイトル:[Deferred] <title>
ラベル:deferred と <source>
本文:
## Deferred Item
**Source:** <source> (session <session-id>)
**Captured:** <YYYY-MM-DD>
**Branch:** <current git branch>
**Captured by:** <explicit|safety-net>
### Context
<context argument verbatim>
### Original Artifact
<artifact-path if provided, otherwise "N/A">
### Next Steps
- [ ] 将来のサイクルで実現可能性を評価する
- [ ] 該当する場合は関連作業へのリンクを追加する
ラベル分類
| ラベル | 色 | 用途 |
|---|---|---|
deferred | #7B61FF | 共通の検索用ラベル |
war-room | #B60205 | ソース:war-room での検討 |
brainstorm | #1D76DB | ソース:ブレインストーミングセッション |
scope-guard | #FBCA04 | ソース:scope-guard による延期 |
feature-review | #F9A825 | ソース:feature-review |
review | #0E8A16 | ソース:コード/PR レビュー |
regression | #D73A4A | ソース:スキルのリグレッション |
egregore | #5319E7 | ソース:自律型エージェント |
重複の検出
検索:gh issue list --search "<title> in:title" --state open --json number,title
比較:[Deferred] プレフィックスを削除し、小文字に正規化した後、タイトルが完全一致するか確認します。
オープンなイシューのみを確認します。クローズ済みの遅延アイテムを再登録するのは意図的な動作です。
出力(標準出力への JSON)
作成:{"status": "created", "issue_url": "...", "number": 42}
重複:{"status": "duplicate", "existing_url": "...", "number": 17}
エラー:{"status": "error", "message": "..."}
準拠テスト
次のコマンドで、どのラッパーでも準拠状況を確認できます。
python3 scripts/deferred_capture.py \
--title "Test: compliance check" \
--source test \
--context "Automated compliance verification" \
--dry-run
status フィールドを含む有効な JSON を出力する必要があります。
終了条件
- 準拠テストに合格する:準拠するすべてのラッパーで、
deferred_capture.py --dry-runがstatusフィールド(created、duplicate、errorのいずれか)を含む有効な JSON を出力する - 作成されるイシューのタイトルには
[Deferred]が付与され、deferredラベルとソースラベルの両方が設定され、本文が必須テンプレート(Source、Captured、Branch、Captured by、Context、Original Artifact、Next Steps)に一致する - 作成前に重複検出を実行する:
gh issue list --search "<title> in:title"を呼び出し、(プレフィックスの削除と小文字化の後に)完全一致するイシューがあれば新しいイシューの作成を抑止する - すべての呼び出しで JSON を標準出力に書き込む。成功時は
{"status": "created", "issue_url": "...", "number": N}、重複時は{"status": "duplicate", ...}、失敗時は{"status": "error", "message": "..."}を出力する
コメント
Markdown 対応