{"id":"explicit-identity","name":"explicit-identity","summary":"境界を越えた明示的同一性","body":"# Explicit Identity Across Boundaries\n\nNever rely on \"latest\" or \"current\" when crossing process or async boundaries.\n\n## Pattern\n\nPass explicit identifiers through the entire pipeline. \"Most recent\" is a race condition.\n\n## DO\n\n- Pass `--session-id $ID` when spawning processes\n- Store IDs in state files for later correlation\n- Use full UUIDs, not partial matches\n- Keep different ID types separate (don't collapse concepts)\n\n## DON'T\n\n- Query for \"most recent session\" at execution time\n- Assume the current context will still be current after await/spawn\n- Collapse different ID types:\n  - `session_id` = Claude Code session (human-facing)\n  - `root_span_id` = Braintrust trace (query key)\n  - `turn_span_id` = Braintrust turn within session\n\n## Example\n\n```typescript\n// BAD: race condition at session boundaries\nspawn('analyzer', ['--learn'])  // defaults to \"most recent\"\n\n// GOOD: explicit identity\nspawn('analyzer', ['--learn', '--session-id', input.session_id])\n```\n\n## Source Sessions\n\n- 1c21e6c8: Defined session_id vs root_span_id distinction\n- 6a9f2d7a: Fixed wrong-session attribution via explicit passing\n- a541f08a: Confirmed pattern prevents race at session boundaries","author":"@parcadei","ownerProfile":null,"authorContacts":null,"sourceUrl":"https://github.com/parcadei/Continuous-Claude-v3/tree/main/.claude/skills/explicit-identity","license":"MIT","category":"coding","lang":"en","tokens":285,"stars":0,"calls30d":2,"claimed":false,"visibility":"public","origin":"crawler","version":"0.1.0","createdAt":"2026-08-22","updatedAt":"2026-08-22","files":[],"requires":{"mcp":[],"tools":[]},"safety":{"flags":[],"scannedAt":"2026-08-22","hasScripts":false,"networkEndpoints":[]}}