observability-scribelisted
Install: claude install-skill alankatanoisi/claude-local-bridge-playground
# Observability Scribe
Produces **`lab-notes/observability/observability-contract.md`**: what the harness emits for humans, transcripts, stream-json, and automation—grounded in code, not wishlists.
## When to use
- Create or update `lab-notes/observability/observability-contract.md`
- Inventory `KERNEL_EVENT_TYPES` and `STOP_REASONS`
- Document stream-json / `--output-format` shapes
- Map autopsy (`loop-autopsy.js`) and ledger fields for replay tooling
## When not to use
- Policy citations (**anthropic-official**)
- Parity adopt/skip matrix (**parity-archivist**)
- Live bench runs (**oauth-evidence**)
## Charter
Read [`lab-notes/agents/CHARTER.md`](../../lab-notes/agents/CHARTER.md).
## File ownership
| File | Scope |
| ---- | ----- |
| `lab-notes/observability/observability-contract.md` | Event catalog, shapes, examples |
## Read first
1. `src/runner/kernel/contract.js` — canonical `STOP_REASONS`, `KERNEL_EVENT_TYPES`
2. `src/runner/event-bus.js` — validation against kernel types
3. `src/runner/human-log.js`, `src/runner/transcript.js`
4. `src/runner/loop-autopsy.js`, `src/runner/session-ledger.js`
5. Tests: `test/runner/harness-architecture.test.js`, `test/runner/session-ledger.test.js`, `test/runner/loop-autopsy.test.js`
6. `docs/runner-quickstart.html` (output flags section)
## Workflow
1. Extract enums from `contract.js` verbatim (do not paraphrase stop reason strings).
2. For each `KERNEL_EVENT_TYPE`, document: emitter, payload shape, redaction rules, strea