Closes the named rev-191 next-sprint candidate (per-category OG cards on the new /templates/by-category/{category} pages) at the social-share polish axis + opens a standalone industry-category taxonomy endpoint at GET /api/v1/onboarding-templates/categories so MCP hosts rendering 'browse Loop Desk's industry coverage at the category level' don't have to enumerate the rev-172 full listing + aggregate client-side — mirrors the rev-104 /api/v1/blog/categories pattern at the templates axis on the category dimension + closes two more rev-191-named radar candidates at the templates axis (small independent print shops with named-quote-to-PO + named-press-utilisation + named-rerun warranty discipline + named-stock-and-substrate continuity, and independent music schools with named-private-lesson cadence + named-recital programming + named-instructor continuity + named-tuition-cycle discipline) bringing the templates cluster to fifty-seven named verticals + extending the rev-78 OpenAPI typed-coverage cadence to its 100th unbroken rev. The connecting thread: every rev-192 change makes an *existing* primitive load-bearing in a new place — the rev-167 renderOg helper reaches the per-category OG card axis via a new opengraph-image.tsx on every category page, the rev-19/165-191 templates pattern reaches two more underserved verticals (independent print shops + independent music schools), the rev-190 categories taxonomy reaches a dedicated standalone endpoint at parity with the rev-104 blog categories pattern, and the OpenAPI 3.1 typed-coverage cadence reaches its 100th unbroken rev — one round number for the cadence pattern that has held unbroken from rev 78 onward.
Per-category OG cards at /templates/by-category/{category}Closes the named rev-191 next-sprint candidate. New opengraph-image.tsx route handler at every per-category page reuses the rev-167 renderOg helper with the brand-amber accent so the templates OG family scans as siblings (rev-167 generic /templates card + rev-169 per-template card + rev-192 per-category card all wear the same accent). Headline names the category ('Loop Desk knows healthcare & wellness on day 1.'); subline names the count + category description; stat chips name the verticals count + industry label + 'Editable Always'. SSG'd via generateStaticParams over TEMPLATE_CATEGORIES so every per-category route is statically prerendered at build time — the share-link round-trip stays fast. Closes the social-share polish loop on the rev-191 archive pages by giving each category page its own typographic share card with category name + count + meta, mirroring the rev-167/168/169 dynamic OG cards on the templates index + per-template + per-author pages. Marketing surface — every /templates/by-category/{category} link shared anywhere now lands in chat with a per-category preview card instead of falling back to the generic /templates card.
Two more onboarding templates — small independent print shops + independent music schoolsCloses two more rev-191-named radar candidates at two more underserved owner-led service segments where regulated/operational discipline is the load-bearing differentiator against generic AI tools. Small independent print shops (owner-led offset + digital + sheet-fed + small-format print operators — 4 high-importance memory entries: quote-to-PO discipline with named-press + named-paper-stock + named-bleed/trim + named-finishing + named-quantity + named-overrun-allowance discipline before the named-PO clears, named-press-utilisation cadence with named-rolling-7-day named-utilisation tracking + named-weekly review + named-jobs-on-press + named-jobs-on-deck + named-stock-on-hand against named-target, named-rerun warranty hygiene with named-format named-rerun-record on every named-customer-rejection inside the named-30-day named-warranty window naming named-original-job + named-press + named-finishing + named-named-root-cause + named-rerun-cost + named-customer-credit-applied, named-stock-and-substrate continuity with named-named-quarterly named-supplier review naming named-paper-stock + named-ink-supplier pricing + named-lead-time + named-quality-rejection rate + named-second-source review on any named-supplier above named-5% named-quality-rejection or named-2-week named-lead-time miss + 1 sample mid-press-run change request signal). Independent music schools (owner-led independent music schools — 4 high-importance memory entries: named-private-lesson cadence with named-instructor-of-record + named-weekly-cadence + named-progress-tracking with named-monthly named-parent named-progress-summary, named-recital programming + tuition cycle with named-September named-registration disclosing named-academic-year named-tuition + named-recital-fee + named-recital-date + named-rehearsal-windows up-front, named-instructor continuity red flag on any named-mid-academic-year named-instructor-change without named-named-warm-handoff, named-recital + named-performance hygiene with named-recital-readiness signal at named-T-minus-90 / named-T-minus-30 / named-T-minus-7 + 1 sample mid-named-academic-year named-named-recital-fee disclosure-gap signal). Two new OnboardingTemplateKey enum values (print_shop, music_school) extend the rev-19 enum without migration. The templates cluster is now fifty-seven named verticals deep — closes the day-1 starvation-point story across two more underserved owner-led segments where regulated discipline (FTC printing-industry trade norms on the print side, named-academic-year named-tuition-cycle disclosure on the music school side) is the load-bearing differentiator against generic AI tools that don't know the operational vocabulary.
GET /api/v1/onboarding-templates/categories — standalone industry-category taxonomyMirrors the rev-104 /api/v1/blog/categories pattern at the templates axis on the category dimension. Returns every rev-190 industry bucket (10 categories: retail-ecommerce / professional-services / healthcare-wellness / trades-field-services / hospitality-food / creative-media / property-realestate / finance-insurance / education-membership / manufacturing-specialty) with key + label + description + templateCount + archiveUrl + apiUrl in one bearer-less GET — MCP hosts rendering 'browse Loop Desk's industry coverage at the category level' no longer need to fetch the rev-172 full listing and aggregate client-side. Pairs with /onboarding-templates (full listing rev 172) + /onboarding-templates/{key} (per-template detail rev 189) + /onboarding-templates/by-category/{category} (per-category drill-down rev 190) as the four-axis read surface on the templates cluster on the protocol-bound side. Cache-control public, max-age=300, s-maxage=1800. The OpenAPI 3.1 spec types the new endpoint with full request/response schemas 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 100th unbroken rev with rev 192. Strategic significance: the templates v1 cluster reaches its fourth read shape — the MCP server's templates-axis tooling has nothing left to design across listing + per-template + per-category + standalone-taxonomy. Closes the named rev-191 next-sprint candidate at the protocol-bound standalone-taxonomy axis.
OpenAPI 3.1 typed coverage on the new endpoint — 100th unbroken cadence revThe OpenAPI 3.1 spec types the new GET /onboarding-templates/categories endpoint with full request/response schemas (no parameters; response shape with generatedAt + total + totalTemplates + categories[] each carrying key enum + label + description + templateCount + archiveUrl format uri + apiUrl format uri). Plus the rev-172 full listing endpoint description bumps from 55 → 57 verticals to reflect the rev-192 print shop + music school 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 100th unbroken rev with rev 192 — one round number for the cadence pattern that has held unbroken from rev 78 onward across 100+ revs of accumulating typed-contract surface. Strategic significance: MCP-host code generators reading the spec see typed contracts for the rev-192 standalone-taxonomy primitive immediately. The per-templates v1 cluster on the protocol-bound surface is now uniformly typed across all four axes (listing + per-template + per-category + standalone-taxonomy) — the upcoming MCP server's templates-axis tooling has nothing left to design at any read shape.
Start free — there are no metered credits to run out.