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
Unit and integration coverage now guard the pure logic, the protocol envelope, and the format surfaces (stack #93). The remaining tier is browser-level e2e: the student walkthrough (advance, review, remediation injection, star economy), the builder's streaming UI, and the widget shell inside a host frame.
Prerequisites worth deciding before writing any specs:
Model-call stubbing: e2e must run offline — either a fixture-replay mode for streamPathway/buildWidget (record NDJSON streams as fixtures, replay behind an env flag) or a fake provider in model.ts. Fixture-replay preserves the real route code paths and is the better instrument.
Scope discipline: e2e guards flows, not pixels — walkthrough completion end-to-end with evidence persisted, remediation injecting after a wrong finish, the shell rendering a spec inside an iframe with host-bridge messages. Visual regression is out of scope.
Sequencing: after stack #93 merges; pairs naturally with the Claude Desktop QA plan (the manual passes it can't automate stay manual).
Unit and integration coverage now guard the pure logic, the protocol envelope, and the format surfaces (stack #93). The remaining tier is browser-level e2e: the student walkthrough (advance, review, remediation injection, star economy), the builder's streaming UI, and the widget shell inside a host frame.
Prerequisites worth deciding before writing any specs:
streamPathway/buildWidget(record NDJSON streams as fixtures, replay behind an env flag) or a fake provider inmodel.ts. Fixture-replay preserves the real route code paths and is the better instrument.Sequencing: after stack #93 merges; pairs naturally with the Claude Desktop QA plan (the manual passes it can't automate stay manual).
🤖 Generated with Claude Code