Skip to content

Commit 201432a

Browse files
V40 Gate 7: Browser E2E Visual Accessibility Proof
Adds the package-backed V40BrowserE2eVisualProof artifact and checker, focused Playwright coverage for Terminal, Conversations, Exchange, Docs, and Auxillaries, and deterministic browser proof contracts for the app. Wires Gate 7 into V40 gate/canon quality workflows, updates V40 specification documents and README guidance, and hardens the Gate 6 roadmap predicate so prior-gate checks stay green as V40 advances. Proof: pnpm run check:v40-gate7; pnpm --dir uapi run test:e2e:browser-proof; pnpm --filter @bitcode/protocol typecheck; pnpm run check:v40-gate1; pnpm run check:v40-gate2; pnpm run check:v40-gate3; pnpm run check:v40-gate4 --skip-integration-tests; pnpm run check:v40-gate5 --skip-integration-tests; pnpm run check:v40-gate6 --skip-integration-tests; git diff --check.
1 parent 8fe1bb5 commit 201432a

24 files changed

Lines changed: 2427 additions & 11 deletions

.bitcode/v40-browser-e2e-visual-proof.json

Lines changed: 867 additions & 0 deletions
Large diffs are not rendered by default.

.github/workflows/bitcode-canon-quality.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,9 @@ jobs:
238238
if [ -f scripts/check-v40-gate6-conversation-terminal-integration.mjs ]; then
239239
node scripts/check-v40-gate6-conversation-terminal-integration.mjs --skip-branch-check --skip-integration-tests
240240
fi
241+
if [ -f scripts/check-v40-gate7-browser-e2e-visual-proof.mjs ]; then
242+
node scripts/check-v40-gate7-browser-e2e-visual-proof.mjs --skip-branch-check --skip-browser-tests
243+
fi
241244
fi
242245
else
243246
echo "Unexpected BITCODE_SPEC.txt pointer: $POINTER" >&2

.github/workflows/bitcode-gate-quality.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -367,6 +367,9 @@ jobs:
367367
if [ -f scripts/check-v40-gate6-conversation-terminal-integration.mjs ]; then
368368
node scripts/check-v40-gate6-conversation-terminal-integration.mjs --skip-branch-check --skip-integration-tests
369369
fi
370+
if [ -f scripts/check-v40-gate7-browser-e2e-visual-proof.mjs ]; then
371+
node scripts/check-v40-gate7-browser-e2e-visual-proof.mjs --skip-branch-check --skip-browser-tests
372+
fi
370373
fi
371374
else
372375
echo "Unexpected BITCODE_SPEC.txt pointer: $POINTER" >&2
@@ -541,6 +544,7 @@ jobs:
541544
tests/terminalTransactionDetailCards.test.tsx \
542545
tests/terminalTransactionDetailSnapshot.test.ts \
543546
tests/terminalUxBrowserProof.test.tsx \
547+
tests/bitcodeBrowserProof.test.ts \
544548
tests/bitcodeBrowserAccessibilityResponsiveProof.test.ts \
545549
tests/readingOperationalTelemetryPipelineLog.test.tsx \
546550
tests/pipelineExecutionLogHeader.test.tsx \
@@ -558,6 +562,10 @@ jobs:
558562
if: vars.BITCODE_ENABLE_GATE_BROWSER_PROOF == '1'
559563
run: pnpm --dir uapi run test:e2e:v32-browser-proof
560564

565+
- name: Browser proof product surfaces
566+
if: vars.BITCODE_ENABLE_GATE_BROWSER_PROOF == '1'
567+
run: pnpm --dir uapi run test:e2e:browser-proof
568+
561569
- name: Test pipeline readback verifier
562570
run: pnpm test:qa:v28:pipeline-readback
563571

BITCODE_SPEC_V40.md

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
- Prior canonical anchor: `BITCODE_SPEC_V39.md`
1010
- Prior generated proof appendix: `BITCODE_SPEC_V39_PROVEN.md`
1111
- Active canonical pointer during draft opening: `BITCODE_SPEC.txt` -> `V39`
12-
- Generated structured artifact inventory: draft `.bitcode/v40-spec-family-report.json`, `.bitcode/v40-canonical-input-report.json`, `.bitcode/v40-test-inventory-coverage-matrix.json`, `.bitcode/v40-unit-coverage-inventory.json`, `.bitcode/v40-api-integration-contracts.json`, `.bitcode/v40-reading-pipeline-integration-coverage.json`, plus later V40 gate artifacts for E2E, visual, synchronization, rehearsal, proof, and promotion readiness coverage
12+
- Generated structured artifact inventory: draft `.bitcode/v40-spec-family-report.json`, `.bitcode/v40-canonical-input-report.json`, `.bitcode/v40-test-inventory-coverage-matrix.json`, `.bitcode/v40-unit-coverage-inventory.json`, `.bitcode/v40-api-integration-contracts.json`, `.bitcode/v40-reading-pipeline-integration-coverage.json`, `.bitcode/v40-conversation-terminal-integration.json`, `.bitcode/v40-browser-e2e-visual-proof.json`, plus later V40 gate artifacts for synchronization, rehearsal, prompt benchmark, and promotion readiness coverage
1313
- Source parity state: V40 opens testing-system specification over active V39; package, API, pipeline, conversation, Terminal, Auxillaries, Exchange, interface, ledger/database/storage, and demonstration tests remain to be hardened gate by gate
1414
- Notes companion: `BITCODE_SPEC_V40_NOTES.md`
1515
- Delta companion: `BITCODE_SPEC_V40_DELTA.md`
@@ -136,6 +136,14 @@ The package-owned `V40ConversationTerminalIntegration` emits `.bitcode/v40-conve
136136
The focused UAPI integration test carries a source-safe Conversation `finding_fits` handoff into Terminal route readback, verifies the five-stage enterprise Reading state at `request-fit`, adapts a Conversation stream tool event into execution-log metadata, and projects that event through the Terminal harness stream snapshot without serializing protected source, raw prompt payload, or unpaid AssetPack source.
137137
Gate 6 permits no missing, blocked, or exempt critical Conversation/Terminal row; proof rows may include route parameters, proof roots, event ids, telemetry posture, command ids, fixture roots, and coverage flags, but must not include secrets, protected source, raw protected prompts, raw model/provider responses, wallet private material, or unpaid AssetPack source.
138138

139+
## V40 Gate 7 Browser E2E, Accessibility, Responsive, And Visual Proof
140+
141+
Gate 7 closes source-safe browser proof across the rich website product surfaces without making screenshots the only proof.
142+
The package-owned `V40BrowserE2eVisualProof` emits `.bitcode/v40-browser-e2e-visual-proof.json` with eight source-safe rows: Terminal enterprise Reading and transaction browser flow, Conversations writing and stream-log browser flow, Auxillaries contained-pane accessibility flow, Exchange BTD market and rights browser flow, Docs public learning route browser flow, canonical responsive viewport overflow proof, visual screenshot baseline and trace proof, and keyboard/landmark/status accessibility proof.
143+
The app-owned `BITCODE_BROWSER_PROOF_CONTRACT` covers Terminal, Conversations, Auxillaries, Exchange, and Docs, thirteen route states, eighteen interaction states, four canonical viewports, eight accessibility assertions, and a visual strategy that requires deterministic screenshot baselines plus semantic assertions with `no-screenshot-only-approval`.
144+
The focused browser spec exercises five-stage Reading, selected activity detail, Conversation source-safe handoff, Exchange rights review, Docs navigation, Auxillaries live regions, reduced motion, and horizontal-overflow limits under local mock data.
145+
Gate 7 permits no missing, blocked, or exempt critical browser proof row; proof rows may include route ids, viewport ids, screenshot/trace posture, command ids, fixture roots, and source-safe coverage flags, but must not include secrets, protected source, raw protected prompts, raw provider/model responses, wallet private material, or unpaid AssetPack source.
146+
139147
## V40 canonical subsystem surfaces
140148

141149
### Depositing and asset supply
@@ -397,12 +405,15 @@ V40 inherits operator-quality artifact expectations for readable proof and repai
397405
| `.bitcode/v40-test-inventory-coverage-matrix.json` | protocol canonical package | Gate 2 source-safe test inventory and coverage matrix |
398406
| `.bitcode/v40-unit-coverage-inventory.json` | protocol canonical package | Gate 3 source-safe unit coverage inventory |
399407
| `.bitcode/v40-api-integration-contracts.json` | protocol canonical package | Gate 4 source-safe API and route integration contract inventory |
408+
| `.bitcode/v40-reading-pipeline-integration-coverage.json` | protocol canonical package | Gate 5 source-safe Reading pipeline integration coverage |
409+
| `.bitcode/v40-conversation-terminal-integration.json` | protocol canonical package | Gate 6 source-safe Conversation/Terminal integration coverage |
410+
| `.bitcode/v40-browser-e2e-visual-proof.json` | protocol canonical package | Gate 7 source-safe browser, visual, accessibility, and responsive proof |
400411
| `.bitcode/v40-promotion-readiness-report.json` | future V40 promotion gate | promotion readiness |
401412

402413
### V40 specifying generated artifacts
403414

404415
V40 generated artifacts begin with `.bitcode/v40-spec-family-report.json` and `.bitcode/v40-canonical-input-report.json`.
405-
Later gates add browser, visual, integration, unit, disclosure, synchronization, prompt benchmark smoke, and promotion-readiness artifacts.
416+
Later gates add disclosure, synchronization, prompt benchmark smoke, rehearsal, and promotion-readiness artifacts.
406417

407418
### Shared generated-artifact fields
408419

@@ -428,7 +439,7 @@ Missing generated artifacts, stale reports, malformed JSON, invalid screenshots,
428439

429440
## V40 validation canon
430441

431-
Validation canon includes `pnpm run check:v40-gate1`, `pnpm run check:v40-gate2`, `pnpm run check:v40-gate3`, `node scripts/check-bitcode-spec-family.mjs --version V40 --mode draft --current-target V39`, `node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V39 --draft-target V40`, package typechecks, protocol tests, route/API tests, browser E2E suites, visual/screenshot proof suites, integration suites, unit suites, prompt benchmark smoke tests, local/staging rehearsal commands, and diff hygiene.
442+
Validation canon includes `pnpm run check:v40-gate1`, `pnpm run check:v40-gate2`, `pnpm run check:v40-gate3`, `pnpm run check:v40-gate4`, `pnpm run check:v40-gate5`, `pnpm run check:v40-gate6`, `pnpm run check:v40-gate7`, `pnpm run check:v40-browser-e2e-visual-proof`, `node scripts/check-bitcode-spec-family.mjs --version V40 --mode draft --current-target V39`, `node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V39 --draft-target V40`, package typechecks, protocol tests, route/API tests, browser E2E suites, visual/screenshot proof suites, integration suites, unit suites, prompt benchmark smoke tests, local/staging rehearsal commands, and diff hygiene.
432443

433444
## V40 promotion canon
434445

BITCODE_SPEC_V40_DELTA.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ Gate 6 closes with package-backed `V40ConversationTerminalIntegration`, determin
5858
### Gate 7: Browser E2E, Accessibility, Responsive, And Visual Proof
5959

6060
Close Playwright/browser paths, visual baselines, accessibility, responsive viewports, and interaction-state matrices.
61+
Gate 7 closes with package-backed `V40BrowserE2eVisualProof`, deterministic `.bitcode/v40-browser-e2e-visual-proof.json`, protocol exports, app-owned current browser proof contract, source-safe rows for Terminal, Conversations, Auxillaries, Exchange, Docs, responsive viewport overflow, screenshot/trace baselines, keyboard/landmark/status accessibility, a focused browser spec, workflow wiring, and `check:v40-gate7`.
6162

6263
### Gate 8: Ledger, Database, Storage, Wallet, And Delivery Synchronization
6364

BITCODE_SPEC_V40_NOTES.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
- Current canonical/latest target: `V39`
88
- Prior canonical anchor: `BITCODE_SPEC_V39.md`
99
- Prior generated proof appendix: `BITCODE_SPEC_V39_PROVEN.md`
10-
- Generated structured artifact inventory: draft `.bitcode/v40-spec-family-report.json`, `.bitcode/v40-canonical-input-report.json`, and later V40 testing artifacts
11-
- Source parity state: V40 testing gates are planned and not yet closed
10+
- Generated structured artifact inventory: draft `.bitcode/v40-spec-family-report.json`, `.bitcode/v40-canonical-input-report.json`, `.bitcode/v40-test-inventory-coverage-matrix.json`, `.bitcode/v40-unit-coverage-inventory.json`, `.bitcode/v40-api-integration-contracts.json`, `.bitcode/v40-reading-pipeline-integration-coverage.json`, `.bitcode/v40-conversation-terminal-integration.json`, `.bitcode/v40-browser-e2e-visual-proof.json`, and later V40 testing artifacts
11+
- Source parity state: V40 testing gates are closing progressively through generated artifacts
1212

1313
## Notes companion rule
1414

@@ -98,3 +98,11 @@ Its generated `.bitcode/v40-conversation-terminal-integration.json` artifact bin
9898
The focused UAPI test executes the cross-surface path from a Conversation `finding_fits` handoff into Terminal query parsing, enterprise Reading `request-fit` state, Conversation stream tool-call log metadata, and Terminal harness stream projection.
9999
No missing, blocked, or exempt critical Conversation/Terminal integration row is allowed in the Gate 6 artifact; Conversation may carry source-safe intent only, while Terminal remains the transaction, wallet, ledger, settlement, and delivery cockpit.
100100
Prompt and PromptPart rewriting remains deferred to V41.
101+
102+
## Gate 7 implementation notes
103+
104+
Gate 7 is closed by `V40BrowserE2eVisualProof`.
105+
Its generated `.bitcode/v40-browser-e2e-visual-proof.json` artifact binds browser E2E, visual, accessibility, and responsive proof to eight source-safe rows: Terminal enterprise Reading and transaction flow, Conversations writing/stream-log flow, Auxillaries contained-pane accessibility flow, Exchange BTD market and rights flow, Docs public learning routes, canonical viewport overflow proof, screenshot/trace baseline proof, and keyboard/landmark/status accessibility proof.
106+
The app-owned `BITCODE_BROWSER_PROOF_CONTRACT` summarizes five product surfaces, thirteen route states, eighteen interaction states, four canonical viewports, eight accessibility assertions, and five visual proof strategies.
107+
The focused browser spec covers five-stage Reading, selected activity detail, Conversation source-safe handoff, Exchange rights review, Docs navigation, Auxillaries live regions, reduced motion, and horizontal overflow limits under local mock data.
108+
No missing, blocked, or exempt critical browser proof row is allowed in the Gate 7 artifact, and screenshot-only approval is explicitly rejected.

BITCODE_SPEC_V40_PARITY_MATRIX.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ This matrix records the V40 testing surfaces that must become promotion-grade be
3030
| Roadmap truth | Roadmap states V39 active, V40 draft, V41 prompt-program future | `SPECIFICATIONS_ROADMAP.md` | drafted |
3131
| Gate workflow | Gate quality knows active V39 and draft V40 | `.github/workflows/bitcode-gate-quality.yml` | drafted |
3232
| Canon workflow | Canon quality knows active V39 and draft V40 | `.github/workflows/bitcode-canon-quality.yml` | drafted |
33-
| Browser E2E | Critical website flows have browser proof | future V40 artifacts | not yet implemented |
34-
| Visual proof | Screenshot comparisons are deterministic and reviewable | future V40 artifacts | not yet implemented |
33+
| Browser E2E | Critical website flows have browser proof | `.bitcode/v40-browser-e2e-visual-proof.json` | implemented |
34+
| Visual proof | Screenshot comparisons are deterministic and reviewable | `.bitcode/v40-browser-e2e-visual-proof.json` | implemented |
3535
| API integration | Route and API contracts are parseable and source-safe | `.bitcode/v40-api-integration-contracts.json` | implemented |
3636
| Pipeline integration | Primitive and real Reading pipeline implementations are tested | `.bitcode/v40-reading-pipeline-integration-coverage.json` | implemented |
3737
| Conversation/Terminal integration | Conversation handoff, stream logs, Terminal Reading state, and authority boundaries are tested source-safely | `.bitcode/v40-conversation-terminal-integration.json` | implemented |
@@ -48,7 +48,7 @@ This matrix records the V40 testing surfaces that must become promotion-grade be
4848
| Gate 4 | API/route integration artifact | implemented |
4949
| Gate 5 | Reading pipeline integration artifact | implemented |
5050
| Gate 6 | Conversation/Terminal integration artifact | implemented |
51-
| Gate 7 | Browser/visual/accessibility/responsive artifact | not yet implemented |
51+
| Gate 7 | Browser/visual/accessibility/responsive artifact | implemented |
5252
| Gate 8 | Ledger/database/storage/wallet/delivery sync artifact | not yet implemented |
5353
| Gate 9 | Local/staging rehearsal artifact | not yet implemented |
5454
| Gate 10 | Prompt benchmark smoke and V41 readiness artifact | not yet implemented |
@@ -59,6 +59,7 @@ Gate 3 implementation evidence: package-backed `V40UnitCoverageInventory` emits
5959
Gate 4 implementation evidence: package-backed `V40ApiIntegrationContracts` emits `.bitcode/v40-api-integration-contracts.json` and is wired through `check:v40-gate4`.
6060
Gate 5 implementation evidence: package-backed `V40ReadingPipelineIntegrationCoverage` emits `.bitcode/v40-reading-pipeline-integration-coverage.json` and is wired through `check:v40-gate5`.
6161
Gate 6 implementation evidence: package-backed `V40ConversationTerminalIntegration` emits `.bitcode/v40-conversation-terminal-integration.json` and is wired through `check:v40-gate6`.
62+
Gate 7 implementation evidence: package-backed `V40BrowserE2eVisualProof` emits `.bitcode/v40-browser-e2e-visual-proof.json` and is wired through `check:v40-gate7`.
6263

6364
## V40 accepted boundaries
6465

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -553,6 +553,13 @@ handoff route contracts, Conversation stream-to-rich-log projection,
553553
Conversation route/API persistence and branch contracts, writing/source
554554
selector handoff, Terminal Reading state readback, Terminal harness log
555555
streaming, transaction-cockpit authority boundaries, and rehearsal/docs parity.
556+
V40 Gate 7 adds the package-backed `V40BrowserE2eVisualProof`, generated
557+
`.bitcode/v40-browser-e2e-visual-proof.json`, and `check:v40-gate7` to close
558+
source-safe browser proof coverage for Terminal, Conversations, Auxillaries,
559+
Exchange, Docs, responsive viewport overflow, screenshot/trace baselines, and
560+
keyboard/landmark/status accessibility. The current app browser proof contract
561+
binds five product surfaces, thirteen route states, eighteen interaction
562+
states, four canonical viewports, and no screenshot-only approval.
556563
V38 Gates 1 through 11 are wired through `pnpm run check:v38-gate1`,
557564
`pnpm run check:v38-gate2`, `pnpm run check:v38-gate3`,
558565
`pnpm run check:v38-gate4`, `pnpm run check:v38-gate5`,

0 commit comments

Comments
 (0)