feat: structured-data template gallery evidence and cited comparison dimensions - #371
Merged
Conversation
…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.
✅ Deploy Preview for cosmic-klepon-3c693c ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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)patient-triage-note: immutable evidence packmockmed-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 callsopenemr-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/3openimis-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 callsbatch-worklist-loop(new route): committed showcase-loop bundle; qualitative only - no trial counts inventedopenemr-patient-note(20/20 field run),frappe-loan-application(6/6, $0 model cost),openimis-claim-intake(3/3) with their caveats carried over verbatimComparison 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 intodata/templates.jsby slug and synthesizes quickstarts for JSON-only routeslib/generators/buildComparisons.js: validates required dimensions, https-only sources, priced-claim citationsPages
pages/templates/index.js: stat chips on cards, stub cards, ItemList JSON-LD now lists routable entries onlypages/templates/[slug].js: Published-results block, Provenance links, media links, FAQ section; FAQPage JSON-LD added alongside HowTopages/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 prerenderedDeviations
pip install 'openadopt[browser]'thenopenadapt 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.openemr-create-patient-record,openimis-eligibility-enquiry,batch-worklist-loop) are not yet inpublic/sitemap.xml/llms.txt- those files are outside this PR's allowed paths. Follow-up wiring PR should regenerate them.uipath,power-automate,browser-agents,computer-use-agents) so sitemap/llms.txt listings stay valid rather than creating duplicate near-identical routes.docs/showcase-looppublishes no trial matrix for batch runs; that entry states this explicitly instead of quoting numbers.