Skip to content

feat: structured-data template gallery evidence and cited comparison dimensions - #371

Merged
abrichr merged 2 commits into
mainfrom
growth/template-compare-generators
Aug 22, 2026
Merged

feat: structured-data template gallery evidence and cited comparison dimensions#371
abrichr merged 2 commits into
mainfrom
growth/template-compare-generators

Conversation

@abrichr

@abrichr abrichr commented Aug 22, 2026

Copy link
Copy Markdown
Member

Summary

Programmatic SEO lane: the template gallery and comparison pages now generate from structured, provenance-cited data files instead of prose only. Extends the existing surfaces; replaces nothing.

Template gallery (data/templates/*.json, 10 entries)

  • 7 published entries, every number quoted exactly from its source:
    • patient-triage-note: immutable evidence pack mockmed-triage-v3 (openadapt-flow @ 7cc518e) - 18 trials, 3 VERIFIED / 15 expected halts across 5 fault classes, median verified run 4706.64 ms (computed from published outcomes), 0 model calls
    • openemr-create-patient-record (new route): live-demo/landing qualification on OpenEMR 8.0.0.3 pinned synthetic fixture - 3/3 Standard VERIFIED via REST readback + SQL + non-target delta audit, median runtime 59.8 s, silent incorrect 0/3
    • openimis-eligibility-enquiry (new route): openIMIS 25.10 campaign - eligible 3/3 VERIFIED, expired-policy 3/3 HALTED on refuted Tier-1 SQL effect, mean runtime 19.7 s, 0 over-halts, 0 model calls
    • batch-worklist-loop (new route): committed showcase-loop bundle; qualitative only - no trial counts invented
    • openemr-patient-note (20/20 field run), frappe-loan-application (6/6, $0 model cost), openimis-claim-intake (3/3) with their caveats carried over verbatim
  • 3 pending-evidence stubs (native desktop, RDP/Citrix, exception-routing): dashed cards marked "Evidence in progress"; no routes, no stats, no claims

Comparison pages (data/compare/*.json, 4 entries)

UiPath, Power Automate, browser-use agents (Workflow Use/Browser Use), computer-use agents. Six dimensions each (determinism on drift, cost per run, effect verification, halting behavior, data locality, scope); every claim renders a citation link to a fetched public source (uipath.com/pricing, Microsoft Power Automate pricing, browser-use README/cloud docs, OpenAI + Claude computer-use docs). Priced claims are validated to carry citations at build time.

Generators

  • lib/generators/buildTemplates.js: fail-closed loader - rejects non-zero model calls, silent-incorrect > 0, outcome counts exceeding trials, durations without basis, insecure provenance; merges JSON evidence into data/templates.js by slug and synthesizes quickstarts for JSON-only routes
  • lib/generators/buildComparisons.js: validates required dimensions, https-only sources, priced-claim citations

Pages

  • pages/templates/index.js: stat chips on cards, stub cards, ItemList JSON-LD now lists routable entries only
  • pages/templates/[slug].js: Published-results block, Provenance links, media links, FAQ section; FAQPage JSON-LD added alongside HowTo
  • pages/compare/[slug].js: cited capability-dimension grid, cited published figures, FAQ section, FAQPage + ItemList JSON-LD, demo CTA (app.openadapt.ai/demo)

Nav/Footer/MastHead/index.js/netlify.toml/Pricing untouched per scope; wiring PR will link these sections.

Verification

  • npm test: 205 pass / 0 fail (193 baseline green + 12 new generator tests)
  • npm run build: succeeds; 11 template routes prerendered
  • Prerendered HTML checked: gallery shows "18 trials", "3 VERIFIED / 15 expected halts", "0 model calls", "4.71 s median verified run"; detail pages emit FAQPage+HowTo JSON-LD and run-stats blocks; compare pages emit dimension grid + FAQPage + ItemList with 12+ citation blocks

Deviations

  1. Task specified pip install 'openadopt[browser]' then openadapt quickstart; repo tests enforce the established quickstart contract (pip install 'openadapt[browser]' + openadapt flow ... commands), so I matched the repo's existing public quickstart exactly.
  2. New template routes (openemr-create-patient-record, openimis-eligibility-enquiry, batch-worklist-loop) are not yet in public/sitemap.xml/llms.txt - those files are outside this PR's allowed paths. Follow-up wiring PR should regenerate them.
  3. Compare slugs reuse the existing four (uipath, power-automate, browser-agents, computer-use-agents) so sitemap/llms.txt listings stay valid rather than creating duplicate near-identical routes.
  4. docs/showcase-loop publishes no trial matrix for batch runs; that entry states this explicitly instead of quoting numbers.

…son dimensions

Programmatic SEO surfaces generated from structured data at build time:

- data/templates/*.json: 10 entries with published run stats quoted exactly
  from their sources - the immutable mockmed-triage-v3 evidence pack (18
  trials: 3 VERIFIED, 15 expected halts, median verified run 4706.64 ms,
  0 model calls), the live OpenEMR create-patient qualification (3/3
  VERIFIED, median 59.8 s), the openIMIS eligibility campaign (3/3 VERIFIED,
  3/3 HALTED on refuted effects, mean 19.7 s, 0 model calls), and the
  benchmark field/reference results for patient notes, Frappe lending, and
  openIMIS claims. Three honest pending-evidence stubs carry no stats.
- lib/generators/buildTemplates.js: fail-closed loader/merger that validates
  counts, zero-model invariants, duration bases, and https provenance, then
  merges JSON evidence with data/templates.js by slug.
- pages/templates/index.js + [slug].js: gallery cards show cited stat chips;
  detail routes add published-results, provenance, media, and FAQ sections
  with FAQPage JSON-LD alongside HowTo; three new proven routes prerendered.
- data/compare/*.json + lib/generators/buildComparisons.js: capability-
  dimension grids for UiPath, Power Automate, browser-use agents, and
  computer-use agents across determinism on drift, cost per run, effect
  verification, halting, data locality, and scope - every claim citing its
  public source URL (fetched pricing/docs pages).
- pages/compare/[slug].js: renders the cited dimension grid, strengths with
  sources, FAQ section, FAQPage + ItemList JSON-LD, and a demo CTA.
- tests/growthGenerators.test.js: 12 tests covering validation, exact
  pack-derived numbers, merge behavior, and citation requirements.

Baseline 193 tests stay green; build prerenders all new routes.
@netlify

netlify Bot commented Aug 22, 2026

Copy link
Copy Markdown

Deploy Preview for cosmic-klepon-3c693c ready!

Name Link
🔨 Latest commit 9d5bfde
🔍 Latest deploy log https://app.netlify.com/projects/cosmic-klepon-3c693c/deploys/6a8a1ac7ac20fb0008317d2e
😎 Deploy Preview https://deploy-preview-371--cosmic-klepon-3c693c.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@abrichr
abrichr merged commit 5be38c4 into main Aug 22, 2026
9 checks passed
@abrichr
abrichr deleted the growth/template-compare-generators branch August 22, 2026 21:59
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