explicit-identity について
プロセスや非同期処理の境界を越えて明示的な識別子を渡す開発スキルです。異なる ID を受け渡して保存し、競合状態や誤った紐付けを避けます。
主な機能
- 01ワークフロー全体で明示的な ID を受け渡す
- 02後で照合できるよう ID を保存
- 03完全な UUID の使用
- 04ID の種類を区別
- 05最新セッションの検索を回避
活用シーン
- 01起動したプロセスとセッションの照合
- 02別セッションへの誤った紐付けの防止
- 03非同期境界での競合状態の回避
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ parcadei/ continuous-claude-v3 --skill explicit-identityインストール後、Claude Code で/explicit-identityを入力して読み込まれたか確認します。
詳細
境界をまたぐ場合は明示的な ID を使用する
プロセス間または非同期の境界をまたぐ場合、「latest」や「current」に依存しないでください。
パターン
パイプライン全体を通じて明示的な識別子を渡します。「最も新しいもの」を使うと競合状態が発生します。
DO
- プロセスの起動時に
--session-id $IDを渡す - 後で照合できるよう、状態ファイルに ID を保存する
- 部分一致ではなく、完全な UUID を使用する
- 異なる種類の ID は分けて管理する(概念をまとめない)
DON'T
- 実行時に「最も新しいセッション」を検索する
- await や spawn の後も現在のコンテキストが変わらないと想定する
- 異なる種類の ID をまとめる:
session_id= Claude Code のセッション(人間向け)root_span_id= Braintrust のトレース(クエリキー)turn_span_id= セッション内の Braintrust のターン
例
// BAD: race condition at session boundaries
spawn('analyzer', ['--learn']) // defaults to "most recent"
// GOOD: explicit identity
spawn('analyzer', ['--learn', '--session-id', input.session_id])
ソースセッション
- 1c21e6c8:session_id と root_span_id の違いを定義
- 6a9f2d7a:明示的な受け渡しにより、誤ったセッションへの帰属を修正
- a541f08a:このパターンによってセッション境界での競合が防止されることを確認
コメント
Markdown 対応