Skip to content

feat: add executable editability and browser quality gates - #2

Merged
1beenlee merged 15 commits into
mainfrom
wbeenlee/getslide-v0-3-1-editability-gates
Aug 24, 2026
Merged

feat: add executable editability and browser quality gates#2
1beenlee merged 15 commits into
mainfrom
wbeenlee/getslide-v0-3-1-editability-gates

Conversation

@1beenlee

@1beenlee 1beenlee commented Aug 24, 2026

Copy link
Copy Markdown
Owner

Summary

  • add tools/evaluate-edit.mjs with deterministic targeted, split, reorder, and compression before/after policies
  • invoke the existing deck validator from the edit evaluator and block undeclared slide changes, :root design-token drift, navigation/script drift, and system-shell drift
  • add positive/negative regression mutations over the unchanged fictional public example
  • add tools/browser-qa.mjs that launches an already installed Chrome/Chromium and uses CDP through Node built-ins for real file:// runtime QA
  • keep the browser sandbox enabled and route page network through a dead local proxy so QA does not give generated deck HTML an external-network path
  • extend CI with syntax, editability regression, real browser QA, existing v0.3 Agent workflow regression, v0.2 generation harness regression, and public example validation
  • document the boundary between mechanical containment/runtime evidence and semantic source/visual review

Scope guardrails

  • examples/, templates/, prompts/, .agents/, .claude/: unchanged/read-only
  • no npm/browser package install, Playwright/Puppeteer, model/provider API, external page fetch, hosted browser, deploy, Preview, artifact publishing, or user data
  • no semantic/factual correctness claims from deterministic diff checks

Exact-head validation — PASS

GitHub Actions run 32744094707 on head 4361cafcfa988eabfd71990b63a89ad50daeb431 completed successfully.

node --check tools/prepare-deck.mjs                     # PASS
node --check tools/test-agent-workflow.mjs              # PASS
node --check tools/evaluate-edit.mjs                    # PASS
node --check tools/test-editability-eval.mjs            # PASS
node --check tools/browser-qa.mjs                       # PASS
node tools/test-editability-eval.mjs                    # PASS
node tools/browser-qa.mjs examples/hackathon-demo/index.html  # PASS
node tools/test-agent-workflow.mjs                      # PASS
node tools/test-generation-harness.mjs                  # PASS
node tools/validate-deck.mjs examples/hackathon-demo/index.html # PASS

Editability regression evidence

Positive/negative cases passed for:

  • targeted edit accepted
  • undeclared second-slide drift rejected
  • :root design-token drift rejected
  • navigation-script drift rejected
  • declared split accepted
  • unrelated split-side change rejected
  • pure reorder accepted
  • reorder content rewrite rejected
  • constrained compression accepted
  • undeclared removal rejected

Real Chrome runtime evidence

On installed Google Chrome in CI, the unchanged public example passed:

  • file:// page attach/render, 10 slides
  • generated TOC count/hash targets
  • current / total page numbers
  • no horizontal overflow at the tested 1440px viewport
  • all slides within one tested viewport height
  • initial active slide
  • TOC click
  • ArrowRight/ArrowLeft
  • PageDown/PageUp
  • End/Home
  • Space
  • direct hash navigation

Evidence boundary

This PR proves deterministic edit containment and the explicitly exercised browser-runtime behaviors. It does not claim semantic factual correctness, source fidelity of arbitrary edited prose, projector composition quality, 1280×800 behavior, or print/PDF quality; those remain separate review gates documented in docs/EDITABILITY_EVAL.md and docs/VALIDATION.md.

@1beenlee
1beenlee marked this pull request as ready for review August 24, 2026 15:20
@1beenlee
1beenlee merged commit 2c03df9 into main Aug 24, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant