Closes the named rev-192 next-sprint candidate (per-category meta image override on the rev-191 page metadata) at the social-share fallback axis by adding explicit `metadata.openGraph.images[]` and `metadata.twitter.images[]` references across /templates + /templates/[key] + /templates/by-category/[category] so platforms that don't auto-discover Next.js's `opengraph-image.tsx` file convention (some scrapers, some bots, some RSS readers with thumbnail support) still get the rev-167/169/192 dynamic OG card preview when sharing the link + opens a fifth read shape on the templates v1 cluster (keyword search) at GET /api/v1/onboarding-templates/search?q=…&limit=20 so MCP hosts and AI tooling roundup newsletters can retrieve templates mentioning a specific named-discipline (named-therapist, vaccination, named-recital) without scraping the rev-189 dashboard search or re-implementing the filter client-side — mirrors the rev-122 /api/v1/blog `q` keyword filter at the templates axis on the keyword dimension + closes two more rev-192-named radar candidates at the templates axis (independent picture-framing shops with named-substrate-and-glazing + named-rush-job hygiene + named-piece chain-of-custody + named-conservation-grade supplier discipline, and small specialty grocers with named-shrinkage-control + named-private-label margin + named-supplier-trust tier + named-customer-experience hygiene) bringing the templates cluster to fifty-nine named verticals + extending the rev-78 OpenAPI typed-coverage cadence to its 101st unbroken rev. Plus cumulative visual polish on every per-template card on /templates: brighter on-hover border + a subtle brand-color accent strip on the top edge + an animated underline beneath the rev-169 'Open the {Name} page →' link so the card reads as more interactive without competing with the existing CTA hierarchy.
Explicit OG image references on every templates-page metadata block — closes the named rev-192 next-sprint candidateCloses the named rev-192 next-sprint candidate ('per-category meta image override on the rev-191 page metadata'). Adds explicit `metadata.openGraph.images[]` and `metadata.twitter.images[]` references on /templates, /templates/[key], and /templates/by-category/[category] pointing at the dynamic Next.js `opengraph-image.tsx` URL convention (`<canonical>/opengraph-image`). The rev-167 (templates index) + rev-169 (per-template detail) + rev-192 (per-category archive) dynamic OG cards continue to render via Next.js's file-system convention which auto-discovers on Twitter/LinkedIn/X — but some crawlers + RSS readers + AI tooling discovery systems read `metadata.openGraph.images[]` first and don't traverse the Next file convention. Making the URL explicit closes the static-fallback loop on every share path. Marketing surface — every /templates link shared anywhere on the web now lands in chat with a rich preview card across the broadest possible set of consumers, not just the auto-discovering ones.
GET /api/v1/onboarding-templates/search?q=…&limit=20 — fifth read shape on the templates v1 clusterKeyword search across the templates v1 surface. Optional `q` query (≤200 chars) does case-insensitive substring matching across template name + description + memory titles + memory content + signal titles + signal detail. When omitted, returns every browsable template (same set as the rev-172 listing endpoint, capped at `limit` with default 20 / max 50). Each row carries key + name + description + memoryCount + signalCount + url + apiUrl + category + categoryLabel + categoryUrl + launchRev + launchDate. Mirrors the rev-122 /api/v1/blog `q` keyword filter at the templates axis on the keyword dimension. Closes the fifth axis on the v1 templates cluster (full listing rev 172 + per-template detail rev 189 + per-category drill-down rev 190 + standalone-taxonomy rev 192 + keyword search rev 193). MCP hosts answering 'find templates that mention named-vaccination or named-instructor-of-record' no longer fetch the rev-172 full listing endpoint, walk every template's memories + signals, and filter client-side. Cache-control public, max-age=300, s-maxage=1800. Strategic significance: the templates v1 cluster reaches its fifth read shape — the upcoming MCP server has even less left to design across the templates axis.
Two more onboarding templates — independent picture-framing shops + small specialty grocersCloses two more rev-192-named radar candidates at two more underserved owner-led service segments. Independent picture-framing shops (4 high-importance memory entries: named-substrate-and-glazing discipline with named-mat-board + named-mounting + named-glazing-grade + named-frame-profile + named-conservation-grade explicitly named per quote, named-rush-job hygiene with named-expedited-fee + named-substitution-risk-disclosure + named-on-time-confidence on every sub-7-day quote, named-piece chain-of-custody with named-condition-report + named-photographs + named-fragility-assessment on every named-customer-piece, named-conservation-grade supplier continuity with quarterly named-supplier review + named-second-source review on any named-supplier above 3% named-quality-rejection or 2-week named-lead-time miss + 1 sample mid-job named-substrate-substitution disclosure-gap signal). Small specialty grocers (4 high-importance memory entries: named-shrinkage-control discipline with weekly named-shrinkage report by named-category and 3% named-trigger-threshold, named-private-label margin discipline with 30% named-target-margin floor + named-supplier-cost-pass-through clause + quarterly margin review, named-supplier-trust tier classification (named-tier-1 named-direct-relationship vs named-tier-2 named-distributor vs named-tier-3 named-broker) with quarterly named-trust-tier review, named-customer-experience hygiene with same-day named-direct-conversation + named-credit-applied + named-supplier-trace-back on every named-customer-complaint + 1 sample named-prepared-foods named-shrinkage-spike signal). Two new `OnboardingTemplateKey` enum values (`picture_framing`, `specialty_grocer`) extend the rev-19 enum without migration. The templates cluster is now fifty-nine named verticals deep. Strategic significance: closes two more underserved owner-led segments where regulated/operational discipline (named-conservation-grade material continuity on the picture-framing side, named-shrinkage-control + named-private-label margin discipline on the specialty-grocer side) is the load-bearing differentiator against generic AI tools.
OpenAPI 3.1 typed coverage on the new search endpoint + cumulative card-hover polish — 101st unbroken cadence revThe OpenAPI 3.1 spec types the new `GET /onboarding-templates/search` endpoint with full request/response schemas (q + limit query params; response shape with generatedAt + query + total + matched + returned + limit + templates[] each carrying key + name + description + memoryCount + signalCount + url + apiUrl + category + categoryLabel + categoryUrl + launchRev + launchDate). Plus the rev-172 listing endpoint description bumps from 57 → 59 verticals to reflect the rev-193 picture-framing + specialty-grocer additions. The cadence pattern from rev 78 onward (every dashboard primitive gets typed in the OpenAPI 3.1 spec in the same cycle it ships) reaches its 101st unbroken rev with rev 193. Cumulative visual polish on every per-template card on /templates: brighter on-hover border (rgba(31,143,137,0.32) → 0.45) + softer-but-stronger box-shadow lift on hover (12px 32px vs 8px 24px) + a subtle brand-color accent strip on the top edge that brightens on hover so the card reads as part of an active surface + an animated underline beneath the rev-169 'Open the {Name} page →' link that draws in left-to-right on card hover so the operator's eye lands on the load-bearing CTA. Cumulative micro-polish — every rev 22+ has carried at least one. Strategic significance: keeps the public marketing surface reading as a coherent design language even as the rev-by-rev compounding pushes past 193 revs of accumulation.
Start free — there are no metered credits to run out.