Closes the silent VERTICAL_KEYWORDS drift bug rev-194 left open (the rev-194 commit added crossfit_gym + escape_room hints to two of three /templates page.tsx files but missed the index page) by consolidating the per-vertical keyword hint Record onto the canonical onboarding-templates module via a sibling TEMPLATE_KEYWORD_HINT map + a getTemplateKeywordHint() helper, so /templates index + /templates/[key] detail + /templates/by-category archive all read from one source of truth + closes two more named radar candidates at the templates axis (independent specialty coffee roasters with origin transparency + roast-batch quality + cupping cadence + wholesale channel discipline, and independent breweries / taprooms with channel mix + taproom economics + tap-rotation cadence + tied-house compliance) bringing the templates cluster to sixty-three named verticals + projects keywordHint on every v1 templates endpoint (rev-172 listing, rev-189 detail, rev-190 by-category, rev-193 search) so MCP hosts get the same per-vertical 'this is what this industry actually cares about' tagline the dashboard renders inline + refines the rev-194 print-friendly stylesheet on the per-template detail page so each memory entry + signal entry stays intact across page breaks for procurement evidence printouts. The OpenAPI 3.1 spec extends every templates schema with the new keywordHint field in lockstep — 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 103rd unbroken rev.
Consolidate VERTICAL_KEYWORDS into the canonical onboarding-templates module — closes silent rev-194 drift bugUntil rev 195 the per-vertical keyword hint Record was duplicated across three different page.tsx files (/templates index, /templates/[key] detail, /templates/by-category archive). Rev 194 added crossfit_gym + escape_room hint entries to the detail + by-category files but missed the /templates index page — visitors landing on the index saw the new cards without keyword hint chips while detail + by-category pages had them. Rev 195 closes the drift by lifting the Record onto the canonical onboarding-templates module as a sibling TEMPLATE_KEYWORD_HINT map keyed by template key + a getTemplateKeywordHint() helper. All three render surfaces import from the module so the drift can't happen again. Strategic significance: closes a real silent-drift bug + prevents future rev-by-rev divergence on a load-bearing per-template surface. Pure additive — zero schema cost, zero runtime cost.
Two more onboarding templates — independent specialty coffee roasters + independent breweries / taproomsCloses two more named radar candidates at two more underserved owner-led service segments where named-quality + named-supplier discipline is the load-bearing differentiator against generic AI tools. Independent specialty coffee roasters (4 high-importance memory entries: origin transparency on every named coffee with producer + farm + harvest year on every retail bag, roast-batch quality discipline with profile + first-crack time + cup-score logged within 24-48 hours, weekly internal cupping + monthly customer-facing public cupping cadence, wholesale-channel discipline with named-margin floor + named-onboarding programme closed within 14 days + 1 sample wholesale onboarding cadence signal). Independent breweries / taprooms (4 high-importance memory entries: channel-mix discipline with weekly P&L tracking taproom vs distribution margin separately, taproom economics with staffing-to-cover ratio + per-pour margin floor, tap-rotation cadence with every brand rotating within 90 days unless explicitly designated an anchor, tied-house compliance with every retailer relationship logging cash + non-cash value transferred each quarter + 1 sample stale-tap signal naming the canonical 95-day-old non-anchor tap). Two new OnboardingTemplateKey enum values (specialty_coffee_roaster, brewery_taproom) extend the rev-19 enum without migration. The templates cluster is now sixty-three named verticals deep. Strategic significance: closes the day-1 starvation-point story across two more underserved owner-led segments where named-origin / named-channel-mix / named-tap-rotation / named-tied-house compliance is the load-bearing differentiator against generic AI tools that don't know the regulatory or quality vocabulary.
keywordHint projection on every v1 templates endpoint — closes the dashboard-vs-protocol asymmetryUntil rev 195 the per-vertical keyword hint was a dashboard-only affordance — MCP hosts driving the desk programmatically had to fetch the rev-172 listing endpoint and walk every template + map keys to their hint string client-side from a duplicated copy of the Record. Rev 195 closes that gap. Every v1 templates endpoint (rev-172 GET /api/v1/onboarding-templates listing, rev-189 GET /api/v1/onboarding-templates/{key} detail, rev-190 GET /api/v1/onboarding-templates/by-category/{category} drill-down, rev-193 GET /api/v1/onboarding-templates/search keyword search) now projects keywordHint: string | null on every template row + on the rev-189 prev/next neighbour rows + on the rev-190 relatedByCategory rows. MCP hosts rendering an industry-fit picker get the same 'this is what this industry actually cares about' tagline the dashboard renders inline. Pure additive — existing v1 callers continue to work since keywordHint is a new sibling field. The OpenAPI 3.1 spec extends every templates schema in lockstep — 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 103rd unbroken rev with rev 195. Strategic significance: closes the v1 parity gap on the per-vertical keyword hint primitive in the same cycle the consolidation lands. The MCP server's templates-axis tooling now has the full per-vertical summary surface end-to-end.
Print-friendly stylesheet refinement on /templates/[key] + cumulative visual polish on memory + signal entriesRev 194 added the print rules for /templates and /templates/by-category. The .ld-template-detail class was already in scope of the rev-194 print block but the detail-page surfaces its own elements (memory list + signal block + Industry meta link + prev/next nav + related-templates card grid + bottom CTA + browse-other-verticals block) that needed their own per-element print tuning so the takeaway reads as a single procurement-friendly evidence document scoped to one vertical's full memory + signal seed list. Rev 195 closes that gap: each memory entry + signal entry stays intact across page breaks (page-break-inside: avoid) and reads as a clean evidence block; meta typography is tuned for print; the rev-189 prev/next nav, rev-190 related-templates section, rev-176 New pill, and bottom CTA + browse-other-verticals block all hide on print so the takeaway reads as the vertical's evidence trail alone. Plus cumulative visual polish on the screen surface: every memory entry on the detail page gets a brand-color teal left-border accent + tactile hover lift (1px translateY + soft brand-color shadow), and every signal entry gets a brand-amber left-border accent + tactile hover lift so the operator's eye reads the two evidence types at two distinct attention levels without competing. Cumulative micro-polish — every rev 22+ has carried at least one. Strategic significance: the public marketing surface's print primitive cluster reaches its sixth surface (rev 92 share / rev 93 work-log / rev 94 timeline / rev 104 blog post / rev 194 templates index / rev 195 per-template detail). The full procurement-evidence print story is now end-to-end across every public read shape on the templates axis (index + by-category archive + per-template detail).
Start free — there are no metered credits to run out.