diff options
| author | Adam Malczewski <[email protected]> | 2026-06-06 22:23:23 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-06 22:23:23 +0900 |
| commit | 219cf053fad4e48b22590d3178438bf5d67d04e3 (patch) | |
| tree | 5d04a3105efc793de8ad3b3cf1c584f8b176dc27 /ORCHESTRATOR.md | |
| parent | 2c5bc242a8a99e3b863c247f70b26f5883333677 (diff) | |
| download | dispatch-219cf053fad4e48b22590d3178438bf5d67d04e3.tar.gz dispatch-219cf053fad4e48b22590d3178438bf5d67d04e3.zip | |
docs(harness): author extension-logging rule (close the pending logging gap)
The .dispatch/rules/extension-logging.md rule was '(pending)' in ORCHESTRATOR
§3 for the entire life of the observability substrate, so every extension
summon was built without logging/self-redaction guidance — leaving most
extensions silent (a coverage audit found conversation-store, transport-http,
credential-store, tool-read-file, storage-sqlite, auth-apikey, surface-* all
with zero logger refs).
- Author .dispatch/rules/extension-logging.md (tribal-knowledge only, P6/P7):
self-redact your own secrets in your own code (no shared helper; §6 tiers),
use injected host.logger/ctx.log, flat scalar attrs, no token-delta logging,
one-way logs, edge verbatim capture.
- Wire it into ORCHESTRATOR §3 as 'every extension' — include on EVERY
extension summon; remove the (pending) note.
- Record the coverage audit + remaining instrumentation debt (#1 reconcile.repair
span in conversation-store, #2 transport-edge logging) in tasks.md.
Future extensions now get logging by construction.
Diffstat (limited to 'ORCHESTRATOR.md')
| -rw-r--r-- | ORCHESTRATOR.md | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/ORCHESTRATOR.md b/ORCHESTRATOR.md index 128823e..a20dab9 100644 --- a/ORCHESTRATOR.md +++ b/ORCHESTRATOR.md @@ -156,10 +156,11 @@ Keep it scoped (P6): state only the project-specific, non-inferable task — the - **Kernel unit:** `kernel-purity.md` + `pure-core.md` + `no-internal-mocks.md`. - **Pure-core unit:** `pure-core.md` + `no-internal-mocks.md`. - **Any extension coupling via hooks/services:** `typed-handles.md`. -- **Any extension that emits logs/spans (≈ all of them):** `extension-logging.md` - *(pending — authored with the observability substrate, see - `notes/observability-design.md` §9; keystone: each extension self-redacts its OWN - secrets in its OWN code — NO shared redaction helper).* +- **Every extension (≈ all of them — they all log):** `extension-logging.md`. Use the + injected `host.logger`/`ctx.log`; keystone: each extension self-redacts its OWN secrets + in its OWN code — NO shared redaction helper (design rationale: + `notes/observability-design.md` §9). Include this on EVERY extension summon (an + extension that never logs is a coverage gap, not an exemption). - **Frontend units** are summoned from the SEPARATE `../dispatch-web` repo using ITS OWN harness (`package-agent.md` + `frontend-*.md` rules) + ITS OWN scoping map — NOT these backend rules. See that repo's `ORCHESTRATOR.md`. |
