You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,7 +28,7 @@ High-level flow:
28
28
1. You send a prompt through Switchboard.
29
29
2. Switchboard classifies the turn and selects a route label.
30
30
3. Switchboard launches or resumes Claude with matching model and effort settings.
31
-
4. Route contextand hook evidence are recorded for explainability and governance.
31
+
4. Route context, session state, and hook evidence are recorded for explainability, replay, and governance.
32
32
33
33
## What It Is Not
34
34
@@ -49,7 +49,9 @@ High-level flow:
49
49
50
50
Version 1.0.0 is the first stable release of the prompt-driven Switchboard workflow for Claude Code.
51
51
52
-
Non-interactive continuity is verified for routed turns. Interactive continuity is verified for session reuse, resume semantics, hook correlation, and override handling, while stale-resume recovery and fail-closed error handling remain explicitly tracked as follow-up validation for fully supported interactive parity.
52
+
Milestones 1 through 3 are now complete: router contracts, session-aware policy/controller boundaries, and the Claude workflow refit onto contract-backed router/session/context evidence.
53
+
54
+
Non-interactive continuity is verified for routed turns. Interactive continuity is verified for session reuse, resume semantics, hook correlation, stale-resume recovery, and fail-closed error handling.
Current workflow persistence now records a contract-backed `sessionState` object alongside compatibility fields in route-context storage.
330
+
329
331
### A.2 Target Mapping
330
332
331
333
Current route labels map to target classes in the Claude integration:
@@ -346,6 +348,8 @@ Current continuity semantics are:
346
348
347
349
These semantics belong to workflow execution behavior, not router decision semantics.
348
350
351
+
Current workflow evidence now separates router-decision data from Claude execution data in wrapper logs while preserving continuity semantics and stale-resume recovery behavior.
352
+
349
353
### A.4 Hook Correlation Mapping
350
354
351
355
Current hook evidence maps to `RoutingLogEvent.correlation`:
@@ -356,6 +360,8 @@ Current hook evidence maps to `RoutingLogEvent.correlation`:
356
360
357
361
Hook timing and correlation quality remain surface-specific and should not be treated as universal across clients.
358
362
363
+
Current route-context persistence also records a contract-backed `ContextPackage` and `claudeExecution` block so hook correlation can consume stable handoff fields without depending only on legacy flat fields.
364
+
359
365
## Appendix B: Open Questions
360
366
361
367
1. Should `riskLevel` be router-owned or adapter-provided in v0.2?
Related deferred item: Milestone 3 Claude workflow boundary refit
211
+
Status: committed
212
+
Date: 2026-05-11
213
+
Owners: team
214
+
215
+
Context:
216
+
- Milestone 3 required the Claude workflow to consume router contracts as a client integration, preserve continuity semantics, and separate router decision evidence from Claude execution evidence.
217
+
218
+
Options considered:
219
+
- Option A: keep the existing workflow-specific route context format and explain shape, and defer contract-backed persistence until Milestone 4.
220
+
- Option B: refit workflow persistence and explain now so Claude consumes and emits contract-aligned router/session/context shapes while keeping compatibility fields for existing consumers.
221
+
222
+
Tradeoffs:
223
+
- Option A: smaller short-term diff, but leaves Milestone 3 structurally incomplete and pushes risk into Milestone 4.
224
+
- Option B: slightly larger boundary refit now, but cleaner milestone ownership, stronger replay/explain foundation, and lower follow-on ambiguity.
225
+
226
+
Verification signal:
227
+
- Expected signal from phase plan: Claude workflow remains functional; router can be exercised independently of Claude launch details; logs distinguish router and Claude execution data; handoff/context fields match the core contract.
228
+
- Evidence observed:
229
+
-`src/switchboard/workflow.js` now emits separated `router` and `claude` evidence blocks while retaining compatibility summaries.
230
+
-`src/switchboard/route_context.js` now persists canonical `sessionState`, `routingDecision`, `contextPackage`, and `claudeExecution` fields.
231
+
-`switchboard explain` now surfaces contract-backed router and Claude evidence.
232
+
- Full suite passes (`npm test`) including new workflow and explain tests for contract-backed evidence.
233
+
234
+
Decision:
235
+
- Chosen option: Option B.
236
+
- Scope of commitment: Milestone 3 is formally complete as of 2026-05-11.
237
+
- What remains intentionally deferred: routing log-event normalization across all surfaces, outcome attribution taxonomy, replay-oriented evaluation tooling, and second-surface validation.
238
+
239
+
Consequences:
240
+
- Near-term implementation impact: Claude workflow is now a cleaner consumer of router outputs with a more explicit control-plane boundary.
241
+
- Test and replay impact: route context and explain data now carry contract-backed session and handoff fields suitable for Milestone 4 normalization.
242
+
- Migration impact: low; legacy route-context fields remain present for current hook correlation and explain consumers.
243
+
244
+
Follow-up:
245
+
- Next review milestone: Milestone 4 plan-to-implementation checkpoint.
Copy file name to clipboardExpand all lines: docs/release-log.md
+8Lines changed: 8 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,13 @@
1
1
## Unreleased
2
2
3
+
### 2026-05-11 — Close Milestone 3 with contract-backed Claude workflow evidence
4
+
5
+
- What changed: Refit the Claude workflow so route-context persistence and explain output now carry contract-backed router decision, session state, and context-package evidence while separating router and Claude execution data.
6
+
- Why it matters: Completes the Milestone 3 control-plane boundary by making Claude a cleaner consumer of router outputs and by preserving stable fields for explain, replay, and hook correlation.
7
+
- Who is affected: Switchboard maintainers and contributors working on explainability, replay, and future non-Claude integrations.
### 2026-05-11 — Close Milestone 2 with explicit session-controller boundary
4
12
5
13
- What changed: Extracted deterministic session mode-transition ownership into a dedicated controller module, wired router mode resolution through that boundary, and added focused transition tests while preserving existing routing behavior.
0 commit comments