mcpField
D
deferred-capture

deferred-capture

github.com/athola開発34380 回インストール1 日前に更新
リポジトリ

deferred-capture について

deferred-capture は、プラグインの保留事項記録ラッパー向けの仕様です。ラッパーの開発や検証に使い、コマンドライン引数、GitHub issue のテンプレート、重複確認、JSON 出力を定めます。

主な機能

  1. 01必須・任意のコマンドライン引数の規定
  2. 02保留事項 issue テンプレートの定義
  3. 03タイトルによる未完了 issue の重複検出
  4. 04dry-run の JSON 出力
  5. 05ラッパー適合性テスト

活用シーン

  1. 01新しい deferred-capture ラッパーの作成
  2. 02既存ラッパーの仕様適合性の検証
  3. 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": "..."} を出力する

コメント