# Loop Desk — comprehensive context for AI agents Loop Desk is a governance-first, always-on AI workspace for owner-led teams. It watches external signal (orders, customer feedback, competitor moves, market shifts), maintains durable workspace memory, generates approval-ready outputs, and NEVER acts or publishes without explicit human sign-off. The product is designed around the approval-first principle — no autonomous publishing, no background actions, no opaque agents shipping work without a human in the loop. Canonical site: https://loopdesk.space Last regenerated: 2026-06-21T10:01:10.962Z ## Who Loop Desk is for - Owner-led teams running 1-50 people with high-context decisions - Founders, COOs, and operators handling competitor analysis, customer ops, board prep - Teams evaluating governance-first AI tools who want SOC 2 / ISO 42001 evidence - Buyers comparing flat-fee AI workspaces vs per-cycle-credit billing (Notion Custom Agents, HubSpot Breeze) ## Pricing (flat-fee, no per-cycle credits) Loop Desk charges a flat monthly subscription. There are no per-cycle credits, no metered AI tokens, and no overage bills. Higher tiers unlock higher hard caps (sources, memory retention, loop cadence) — they do not unlock different products. - **Free** — $0 — For trying it out. Caps: 3 sources, 7-day TTL, 15-minute floor. Share URL: https://loopdesk.space/pricing#plan-free - **Pro** — $29/mo — For operators who ship. Caps: 25 sources, 90-day TTL, 5-minute floor. Share URL: https://loopdesk.space/pricing#plan-pro - **Team** — $79/mo — For growing teams. Caps: 100 sources, No TTL (permanent), 1-minute floor. Share URL: https://loopdesk.space/pricing#plan-team Pricing page: https://loopdesk.space/pricing Pricing v1 endpoint (rev 203): https://loopdesk.space/api/v1/pricing Competitive context: Notion Custom Agents charge $10 per 1,000 credits (May 2026) with credit consumption scaling with output complexity. HubSpot Breeze charges $0.50 per resolved conversation (Customer Agent) or $1 per qualified lead (Prospecting Agent). Loop Desk's flat-fee positioning is a deliberate response to budget anxiety in the AI tooling market — McKinsey March 2026 found 53% of teams prefer mostly-human-led AI, and IDC 2026 named variable billing as the top SMB blocker. ## Core capabilities - Continuous signal capture from RSS feeds, review sites, LinkedIn bridges, inbound webhooks, email forwarding - Durable workspace memory with kind, importance scoring, tags, and TTL pruning by plan tier - Approval-first output queue (brief, draft, decision, watchlist, note artifact kinds) - Per-task work logs, operator notes, comments, mentions, reactions for human-in-the-loop steering - Multi-operator workspaces with role-based permissions (owner, admin, editor, viewer) and task assignment - Programmatic API v1 (Bearer-token authenticated) with OpenAPI 3.1 typed contract - Outbound webhooks (HMAC-signed, per-event subscription router) with full delivery log + retry - Daily cost cap (hard ceiling, auto-pauses desk at cap) + cost-spike detector + chronic-spike auto-action - Scheduled pause with auto-resume, Slack quiet hours, timezone-aware scheduling - Full audit trail (activity log) + JSON / CSV exports for SOC 2 / ISO 42001 evidence - 30+ Slack push channels with min-priority filter and dead-webhook auto-clear - Public share links for artifacts, work logs, and full task timelines (robots-noindexed, view-counter + sparkline) ## Industry coverage — onboarding templates Loop Desk ships 75 industry-tuned onboarding templates across 10 industry buckets. Each template pre-loads a workspace with brand voice, decision rules, and red-flag lessons specific to the vertical so the first AI cycle has substance instead of running against an empty memory. ### Retail & ecommerce (9 templates) Orders, customers, channel mix. - **Ecommerce / DTC** — rev 19 (2026-04-29): Orders, returns, reviews, paid acquisition. - **Small independent bookstores** — rev 189 (2026-05-09): Owner-led independent bookstores (general-interest + named-specialty + named-children's-bookstore) — named-publisher relationship discipline, named-event programming cadence, named-staff-curation continuity, named-inventory-turn discipline. - **Small specialty grocers** — rev 193 (2026-05-09): Owner-led small specialty grocers (named-curated-food + named-private-label + named-supplier discipline) — named-shrinkage-control, named-private-label margin discipline, named-supplier-trust continuity, named-customer-experience hygiene. - **Independent fabric / quilting shops** — rev 196 (2026-05-09): Owner-led fabric stores, quilting shops, and small independent textile retailers — supplier continuity, class programming, named-clientele continuity, and inventory turn discipline. - **Independent ice-cream / gelato shops** — rev 197 (2026-05-09): Owner-led ice-cream + gelato shops — recipe-yield discipline per named flavour, supplier continuity on dairy + named inclusions, seasonal-staffing cadence, and a daily quality cadence on every batch. - **Independent ski / snowboard rental shops** — rev 198 (2026-05-09): Owner-led ski + snowboard + winter-equipment rental shops — seasonal inventory turn, named-tech continuity, equipment-incident hygiene, and fit-verification discipline on every rental. - **Small independent jewellers** — rev 199 (2026-05-09): Owner-led independent jewellery + watchmaker shops — named-craftsman continuity, custom-order milestone cadence, appraisal + insurance documentation hygiene, and high-value piece chain-of-custody. - **Independent specialty bike shops** — rev 199 (2026-05-09): Owner-led independent bike shops + service centres — named-mechanic continuity, service-record continuity per named bike, seasonal inventory turn, and safety-incident reporting hygiene. - **Independent toy / hobby shops** — rev 201 (2026-05-09): Owner-led independent toy + hobby + game shops — named-supplier continuity, age-gating + safety hygiene, holiday inventory cadence with named-buyer ordering window, and named-recall response on every flagged product line. ### Professional services (9 templates) Engagements, retainers, regulated practice. - **Consulting / advisory** — rev 19 (2026-04-29): Client work, proposals, retention, thought leadership. - **Agency / studio** — rev 19 (2026-04-29): Pitches, project handoffs, case studies, hiring. - **Legal / professional services** — rev 166 (2026-05-07): Solo + small firms, accountants, advisors — client intake, conflicts, deadlines, retention. - **Accounting / compliance** — rev 169 (2026-05-07): Owner-led accounting, bookkeeping, and compliance practices — clients, deadlines, filings, advisory cadence. - **B2B services / consultative sales** — rev 170 (2026-05-07): Owner-led B2B services with long sales cycles, multi-stakeholder buyers, and account-based motion — pipelines, proposals, expansion. - **Independent CPAs / advisory practices** — rev 177 (2026-05-08): Solo or small-firm CPAs, tax + advisory practices — tax-season cadence, advisory engagement scope, professional-conduct compliance, named-engagement letter discipline. - **Small architecture / design studios** — rev 179 (2026-05-08): Independent architecture practices, small interior-design studios, owner-led design-build shops — phase-gated project discipline, drawing-set integrity, named-stakeholder approvals, fee-stage cadence. - **B2B SaaS-adjacent consultancies** — rev 180 (2026-05-08): Owner-operated consultancies that sell implementation / integration / advisory services on top of someone else's SaaS platform (Salesforce, HubSpot, Snowflake, Shopify Plus, NetSuite) — platform-version discipline, scope-of-statement-of-work cadence, vendor-relationship hygiene. - **Independent boutique consultancies** — rev 185 (2026-05-08): Owner-led boutique consulting practices (strategy, operations, executive coaching, M&A advisory) — statement-of-work integrity, retainer-cycle discipline, scope-creep early warning, named-engagement-partner continuity. ### Healthcare & wellness (13 templates) Patient cadence, recall, regulated practice. - **Healthcare / wellness practice** — rev 165 (2026-05-07): Independent clinics, therapists, vets, dental — bookings, retention, reviews. - **Fitness / wellness studios** — rev 169 (2026-05-07): Independent gyms, yoga studios, wellness centres, personal training practices — members, attendance, retention, class economics. - **Dental / orthodontic clinics** — rev 175 (2026-05-08): Independent dental practices, orthodontic clinics, oral-surgery practices — appointment cadence, insurance billing rhythms, regulated retention, recall and treatment-acceptance discipline. - **Independent veterinary practices** — rev 176 (2026-05-08): Owner-led companion-animal vets, exotics, and small-animal hospitals — pet-owner cadence, recall discipline, sensitive cost conversations, regulated record-keeping. - **Specialty fitness / 1:1 coaching** — rev 180 (2026-05-08): Independent strength coaches, running coaches, mobility specialists, sports-specific trainers — program-design discipline, retention curves, named-progression cadence, scope-of-practice boundaries. - **Veterinary specialists / referral practices** — rev 181 (2026-05-08): Independent veterinary specialty practices (oncology, cardiology, surgery, dermatology, internal medicine) — referral-relationship discipline, controlled-substance compliance, named-DVM continuity, post-procedure recall cadence. - **Independent funeral homes** — rev 184 (2026-05-08): Owner-led funeral homes + cremation providers — regulated FTC Funeral Rule disclosure cadence, named-family after-care discipline, state-board licensing currency, at-need vs pre-need contract integrity. - **Independent specialty pharmacies** — rev 186 (2026-05-08): Owner-led specialty pharmacies (compounding, infusion, oncology, fertility) — DEA-controlled-substance reconciliation, named-pharmacist continuity, 340B compliance, HIPAA-bound communication discipline. - **Independent occupational / speech therapy practices** — rev 188 (2026-05-08): Owner-led independent occupational therapy and speech-language pathology practices (pediatric + adult outpatient + school-based contract) — insurance-verification cadence, IEP integration discipline, named-therapist continuity, billable-unit + documentation hygiene. - **Independent pet boarding / daycare / grooming** — rev 191 (2026-05-09): Owner-led pet boarding, daycare, and grooming operators — vaccination + bite-incident discipline, named-handler continuity, special-needs handoff, capacity + meet-and-greet hygiene. - **Independent salons / barber shops** — rev 191 (2026-05-09): Owner-led independent salons + barber shops — chair-rental + commission economics, named-stylist clientele continuity, named-product margin discipline, named-rebook cadence + named-cancellation hygiene. - **Independent CrossFit / functional fitness gyms** — rev 194 (2026-05-09): Owner-led independent CrossFit boxes and functional fitness studios — coach-of-record continuity, class-format hygiene, injury-incident reporting, retention through peer community. - **Small independent yoga studios** — rev 198 (2026-05-09): Owner-led yoga studios — membership lifecycle discipline, named-instructor continuity, class-format hygiene, and injury-cadence reporting. ### Trades & field services (9 templates) Dispatch, callbacks, named-foreman continuity. - **Field services / trades** — rev 167 (2026-05-07): Owner-led HVAC, plumbing, contracting, landscaping — jobs, dispatch, reviews, callbacks. - **Home services platforms** — rev 170 (2026-05-07): HVAC / plumbing / electrical adjacent at the platform tier — independent contractors, dispatch tooling, marketplace coordination, customer satisfaction. - **Small construction / general contracting** — rev 175 (2026-05-08): Owner-led general contractors, design-build studios, residential and small-commercial trades — change-order discipline, subcontractor coordination, weather windows, lien-rights compliance. - **Independent home-inspection practices** — rev 183 (2026-05-08): Solo + small-team home inspectors — structured 24-hour report turnaround, scope-of-practice discipline, E&O insurance disclosure on every report, recall-rate red flag against InterNACHI / ASHI standards. - **Owner-led commercial cleaning operators** — rev 183 (2026-05-08): Independent commercial cleaning operators running janitorial + post-construction + specialty contracts — route-density discipline, chemical-substitution rules at Green Seal / EPA Safer Choice boundaries, named-customer concentration thresholds, supervisor-turnover red flags. - **Small marine / aviation services** — rev 184 (2026-05-08): Owner-led marine + aviation maintenance, charter, and flight-training operators — named-platform records, FAA / USCG / EASA airworthiness + seaworthiness directive cadence, safety-incident reporting discipline, insurance-currency thresholds. - **Independent landscape / hardscape contractors** — rev 186 (2026-05-08): Owner-led residential + light-commercial landscape, hardscape, and irrigation contractors — seasonal route density, named-crew continuity, material pass-through discipline, weather-window scheduling. - **Independent specialty trades (electricians + plumbers)** — rev 188 (2026-05-08): Owner-led independent specialty trade contractors (electricians + plumbers + HVAC-ish licensed trades with named-permit + named-license + named-inspection cadences) — named-permit + named-license currency, named-inspection-pass discipline, named-callback warranty hygiene, named-foreman continuity. - **Independent auto-repair shops** — rev 189 (2026-05-09): Owner-led independent auto-repair shops (general-repair, specialty-repair like European-makes / diesel / EV, tire-and-alignment shops) — flat-rate labour discipline, warranty / comeback-rate hygiene, bay-utilisation discipline, named-customer vehicle-history continuity. ### Hospitality & food (10 templates) Covers, reviews, supplier mix, channel-margin. - **Restaurant / hospitality** — rev 167 (2026-05-07): Independent operators, small chains, food + bev — covers, reservations, reviews, supplier mix. - **Direct-trade food / beverage** — rev 173 (2026-05-07): Small-batch coffee roasters, single-origin chocolate makers, artisan cheese, specialty tea — origin transparency, harvest seasonality, producer-relationship cadence, retail vs DTC channel mix. - **Outdoor recreation / guided experiences** — rev 173 (2026-05-07): Independent gear shops, guide services, charter operators, outfitting companies, adventure-tourism operators — seasonal cadence, weather/safety risk, guide retention, customer trip-planning horizon. - **Small distillery / craft brewery** — rev 176 (2026-05-08): Owner-operated craft distilleries, microbreweries, and small-batch producers — production schedule, regulated tied-house rules, taproom-vs-distribution channel split, federal + state TTB reporting cadence. - **Independent franchise restaurants** — rev 188 (2026-05-08): Independent multi-unit franchise restaurant operators (regional QSR + fast-casual + multi-location coffee + multi-brand restaurant groups) — per-location P&L discipline, brand-standard variance hygiene, regional manager span-of-control, franchisee retention. - **Small-batch artisan bakeries** — rev 188 (2026-05-08): Owner-led artisan bakeries (small-batch bread, pastry, viennoiserie, specialty cake operators with retail + wholesale + DTC channel mix) — production-yield discipline, retail-channel-mix margin hygiene, named-supplier discipline, named-baker continuity. - **Independent specialty coffee roasters** — rev 195 (2026-05-09): Owner-led specialty coffee roasters and small-batch roastery + cafe operators — origin transparency, roast-batch quality discipline, cupping cadence, wholesale + retail channel mix. - **Independent breweries / taprooms** — rev 195 (2026-05-09): Owner-led independent breweries and taproom operators — channel mix between taproom and distribution, taproom economics, tap-rotation cadence, and tied-house regulatory compliance. - **Independent tour operators** — rev 197 (2026-05-09): Owner-led small-group tour operators — named-guide continuity, small-group experience design, safety-incident reporting, and weather-contingency hygiene. - **Small independent cheesemongers** — rev 203 (2026-05-12): Owner-led cheesemongers — affinage cycle discipline, named-producer continuity on the load-bearing 20% of revenue, shrinkage control on perishable inventory, and pairing expertise as the load-bearing customer trust signal. ### Creative & media (5 templates) Audience, cadence, sponsorship, collection-care. - **Creator / solo operator** — rev 19 (2026-04-29): Content output, sponsorships, audience growth, IP reuse. - **Creator economy infrastructure** — rev 171 (2026-05-07): Newsletter operators, membership platforms, and community-led media — list growth, subscriber retention, sponsorship economics, and platform-risk mitigation. - **Small museums / cultural institutions** — rev 181 (2026-05-08): Independent small museums, historical societies, cultural-heritage institutions, regional galleries — collection-care discipline, donor-stewardship cadence, grant-cycle hygiene, accreditation-standard compliance. - **Independent escape-room operators** — rev 194 (2026-05-09): Owner-led independent escape-room operators (single-room and small multi-room studios) — room-rotation cadence, incident-response hygiene, staff-coverage discipline, prop / puzzle health. - **Independent paint-and-sip studios** — rev 196 (2026-05-09): Owner-led paint-and-sip studios — class programming cadence, named-instructor continuity, supplier mix discipline, event-booking hygiene, and BYOB / liquor-licensing compliance. ### Property & real estate (4 templates) Listings, leases, vendor continuity, audit trail. - **Real estate / property** — rev 166 (2026-05-07): Owner-led brokerages, property managers, leasing — listings, leads, renewals, reviews. - **Property management** — rev 168 (2026-05-07): Owner-led property managers, landlord operators, small management companies — leases, maintenance, renewals, tenant relations. - **Independent commercial real-estate brokers** — rev 179 (2026-05-08): Owner-led commercial RE brokerages, tenant-rep specialists, landlord-rep agents — pipeline-stage discipline, named-LOI cadence, fiduciary-disclosure compliance, dual-rep conflict screening. - **Owner-led residential property managers** — rev 185 (2026-05-08): Independent residential + small-multifamily property management operators — lease-cycle integrity, named maintenance-vendor continuity, fair-housing communication discipline, security-deposit audit trail. ### Finance & insurance (3 templates) Suitability, fiduciary docs, renewal cadence. - **Financial advisor / regulated professional services** — rev 172 (2026-05-07): Independent RIAs, insurance brokers, financial planners, regulated wealth managers — fiduciary obligations, KYC + suitability gates, regulatory exam horizon, client annual-review cadence. - **Independent insurance brokers** — rev 177 (2026-05-08): Independent P&C / health / life insurance brokers, small-agency operators — renewal cadence, carrier-relationship rhythms, regulated disclosure discipline, named-policy attribution on every client conversation. - **Independent financial planners (concentrated-client RIAs)** — rev 182 (2026-05-08): Solo and small-team independent financial planners / RIAs running a concentrated book — annual-review cadence, suitability discipline, named-client meeting prep, fiduciary documentation, ADV currency. ### Education & membership (5 templates) Attendance, retention, recital/program cycles. - **Education / tutoring** — rev 167 (2026-05-07): Small schools, tutoring services, bootcamps — enrolment, retention, parent comms, outcomes. - **Nonprofit / membership** — rev 168 (2026-05-07): Nonprofits, member organisations, community groups — donors, members, programmes, grant cycles. - **Independent gym / martial-arts studios** — rev 189 (2026-05-09): Owner-led independent gyms, CrossFit boxes, jiu-jitsu academies, boxing gyms, and martial-arts studios — named-instructor continuity, named-membership lifecycle discipline, named-attendance cadence, named-injury / safety incident hygiene. - **Independent dance studios** — rev 189 (2026-05-09): Owner-led independent dance studios (named-ballet, named-tap, named-jazz, named-hip-hop, named-contemporary across named-recreational + named-pre-professional tracks) — named-recital programming + tuition cycle discipline, named-instructor continuity, named-injury / safety incident hygiene, named-parent communication cadence. - **Independent music schools** — rev 192 (2026-05-09): Owner-led independent music schools (named-private-lesson + named-recital cycle businesses) — named-private-lesson cadence, named-recital programming, named-instructor continuity, named-tuition-cycle discipline. ### Manufacturing & specialty (8 templates) Quote-to-PO, supplier tiers, named-output continuity. - **SaaS / B2B software** — rev 19 (2026-04-29): Trials, churn signals, competitive intel, content. - **Small manufacturing / craft production** — rev 171 (2026-05-07): Owner-led manufacturers, craft producers, small-batch CNC / leather / textile / ceramics / specialty food — production, supplier mix, quality cadence, B2B + DTC channels. - **Franchise / multi-location operators** — rev 172 (2026-05-07): Regional QSR, boutique fitness chains, multi-unit retail, multi-clinic platforms — unit-economics, brand-standard variance across locations, regional manager cadence, franchisee-vs-corporate roll-up. - **Small specialty manufacturing (custom + small-batch)** — rev 182 (2026-05-08): Independent specialty manufacturers running custom + small-batch production (precision machining, custom fabrication, specialty materials, contract manufacturing) — quote-to-PO discipline, supplier-tier hygiene, on-time delivery cadence, quality-rejection thresholds. - **Independent print shops** — rev 192 (2026-05-09): Owner-led independent print shops — quote-to-PO discipline, named-press-utilisation cadence, named-rerun warranty hygiene, named-stock-and-substrate continuity. - **Independent picture-framing shops** — rev 193 (2026-05-09): Owner-led independent picture-framing operators — named-substrate-and-glazing discipline, named-rush-job hygiene, named-piece chain-of-custody, named-conservation-grade supplier continuity. - **Independent framing / mat-board ateliers** — rev 201 (2026-05-09): Owner-led independent framing + mat-board + custom-framing ateliers — named-piece chain-of-custody on every named-customer-piece, named-substrate + named-mat + named-glazing discipline with named-conservation-grade for named-archival pieces, rush-job hygiene with named-deadline + named-customer-comm cadence, and named-supplier continuity on named-conservation-grade materials. - **Independent bookbinders / paper conservators** — rev 203 (2026-05-12): Owner-led bookbinders, paper conservators, archival-paper specialists — named-substrate + adhesive discipline, chain-of-custody on every customer piece, rush-job hygiene with named-deadline + customer-comm, and conservation-grade supplier continuity adjacent to the rev-201 framing/mat-board atelier axis. Full templates catalog: https://loopdesk.space/templates Programmatic templates API: https://loopdesk.space/api/v1/onboarding-templates ## Integrations (every channel Loop Desk speaks) ### Inbound Every channel that brings external signal into Loop Desk. The desk watches these continuously and feeds them through the approval-first loop. - **RSS / Atom feeds** (rev 5): Watch any RSS or Atom feed — your blog, a competitor's release page, an industry newsletter. The loop polls on a per-source cadence (rev 141), filters by keyword (rev 26), and dedupes by GUID so a feed re-publishing yesterday's items doesn't flood your queue. Auth: Per-workspace, no external auth required. - **Review sites** (rev 10): G2, Trustpilot, Google Reviews via their RSS bridges. Surfaced as feedback signals so customer reactions land alongside operator-logged signal. Auth: Per-workspace, no external auth required. - **LinkedIn (via rss.app / fetchrss bridge)** (rev 11): Watch a LinkedIn page as if it were a feed. The #1 missing B2B source type per IDC 2026 research; Loop Desk closes the gap via the bridge URL pattern. Auth: Per-workspace, no external auth required. - **Email forwarding inbox** (rev 7): Per-workspace token mints an inbound email address. Forward customer-feedback emails, partner correspondence, or any email thread you want surfaced as signal. HMAC-signed (rev 13). Strips HTML and quoted reply chains automatically. Auth: Per-workspace ingest token + optional HMAC signing secret. - **Inbound webhooks** (rev 4): POST /api/webhooks/signals/[token] accepts JSON from Zapier, Make, Postmark, or any system that can fire HTTP. HMAC signing with X-Loop-Signature header is opt-in and verified against the workspace's signing secret. Auth: Per-workspace ingest token + optional HMAC signing secret. - **Manual signal logging** (rev 1): Operators log signals directly from the dashboard or v1 API — orders, internal events, decisions waiting on context, anything that should reach the loop. Auth: Workspace member session (dashboard) or bearer ingest token (v1). ### Outbound Every channel Loop Desk pushes into. Briefs, alarms, decisions, and audit-trail events flow out so your team and downstream tools stay in sync without polling. - **Slack push (briefs, alarms, mentions)** (rev 1): Cycle briefs, daily cost-spike pushes (rev 32 / 55 / 58 / 62 / 67 / 161), chronic-warning pushes (rev 64 / 70 / 74 / 163), task-assigned + due-soon pings, comment @-mentions, ad-hoc artifact push, source quietness, source pause-until — 32+ push channels. Min-priority filter, quiet hours, weekend mute, dead-webhook auto-clear. Auth: Per-workspace incoming-webhook URL. - **Outbound webhooks (per-event router)** (rev 17 (single URL), rev 19 (per-event router)): Real per-event subscription model — wire artifact.ready to one URL, signal.created to another, task.assigned to a third. HMAC-signed via X-Loop-Signature, with full delivery log + one-click retry. 30+ event types and growing. Auth: Per-subscription URL + workspace signing secret. - **Daily digest email** (rev 4): 13:15 UTC cron emails every owner/admin a personalised digest — workspace summary, your assigned tasks, your unread mentions, stale work, daily and chronic cost spikes. Per-recipient personal sections opt-out, weekend mute, quiet-hours window, simulated-date dry-run for admin testing. Auth: Resend API key + per-workspace digest opt-in. - **Public share links** (rev 10): Mint a /share/ link for any artifact, work log, or full task timeline. Robots-noindexed, view-counter + 14-day sparkline, optional revoke. Stakeholders read shared evidence without a session and can react via the rev-18 feedback form. Auth: Per-artifact share token (operator-minted). - **Public desk-health badge SVG** (rev 19): GET /api/v1/badge.svg?token=… returns a shields.io-style SVG showing the workspace's desk-health score. Embeddable in a README, status page, or Notion doc. Same color-mapped state vocabulary as the dashboard widget. Auth: Token in query param (read-only, no mutation). ### Programmatic Loop Desk speaks JSON. Every dashboard mutation has a v1 equivalent — meaning the upcoming MCP server is exclusively a protocol-translation job, not a greenfield design. - **REST API v1** (rev 12 (foundation), rev 78+ (typed OpenAPI 3.1 contract)): Bearer-authenticated JSON API at /api/v1. 100+ endpoints covering workspace state, signals (R/W), tasks (R/W + bulk + comments + reactions), artifacts (R + bulk + reactions + tags), memory (R/W + bulk + tags), runs, search, today snapshot, stats, activity log, focus tags, members, invites, outbound subscriptions, cost surfaces, and more. Self-describing index at /api/v1. Auth: Per-workspace ingest token (Authorization: Bearer …). - **OpenAPI 3.1 spec** (rev 78): Machine-readable typed contract at /api/v1/openapi.json. MCP-host code generators can typecheck their tool calls and auto-generate client SDKs. Coverage continues to grow rev-by-rev — 110 unbroken cadence revs as of rev 202. Auth: Public (no auth required to read the spec; spec describes the auth model). - **MCP server (Model Context Protocol)** (Roadmap — Q3 2026 (next-up)): Coming Q3 2026. Wraps /api/v1 as a Model Context Protocol server so Claude Desktop, Cursor, and any MCP-compatible host can drive a Loop Desk workspace as a first-class tool. The v1 surface is intentionally complete enough that the MCP work is exclusively protocol translation. Auth: Per-workspace ingest token. Vendor inventory page: https://loopdesk.space/integrations Programmatic integrations API: https://loopdesk.space/api/v1/integrations ## Roadmap ### Now (Q2 2026) — Shipping in the next few revisions - **Stripe checkout + plan upgrade flow**: Plan limits already bite (free=3 sources / 15-min loop floor; pro=25 / 5-min; team=100 / 1-min). The upgrade CTA is wired and the daily cost cap creates a clean 'upgrade for higher cap' upsell on top of the source cap. Stripe Checkout is the only remaining monetisation gate. - **MCP (Model Context Protocol) server**: Thin wrapper around /api/v1 — no design work left, only protocol-translation. Exposes signals, tasks, artifacts, memory, search, stats, focus tags, comment reactions, blockers, and bulk operations as MCP tools so Claude Desktop, Cursor, and any MCP-compatible host can drive a workspace. ~1 day of wrapping work. - **Slack interactive approvals**: Approve / archive / regenerate buttons inside the cycle-brief Slack post (Slack interactive components). Slack already carries 25+ push channels (briefs, scheduled pause, cost cap, cost spike, due reminders, comment @-mentions, memory promotions, mention acks, ad-hoc artifact pushes, task unblocked, stuck loop, stale tasks, task auto-archived, archive warnings, cost spikes per-task/per-source/per-tag/per-assignee, chronic warnings on 3 axes, source resumed, digest gating change) — interactive buttons in the brief block are the highest-leverage step before the loop becomes 'approve from chat without ever opening the dashboard'. - **Mailgun / Postmark inbound email DNS config**: The /api/webhooks/email/[token] endpoint shipped rev 7 with HMAC verification (rev 13), but it still needs DNS configuration so every workspace can receive forwarded customer email at @in.loopdesk.space. One-time infra setup; unlocks the same flow for every workspace. ### Next (Q3 2026) — Designed; pending Now-phase completion - **MCP server announcement post**: Once the MCP server lands, a dedicated marketing post explaining 'Loop Desk now speaks MCP' to the 18,000+ MCP-server community. The v1 surface is functionally complete — this is the natural Q3 launch moment. - **Task dependency graph (visual)**: Rev 36 made dependencies a real queue gate; rev 37 made unblocking push-loud; rev 38 added a list-view dependency surface. Workspaces with 20+ interrelated tasks across multi-step workflows would benefit from a real DAG render — natural extension of the rev-38 list view. - **Shopify + Etsy order webhooks**: Schema types exist (`shopify`, `etsy` source kinds) but the webhook receivers and signal generators aren't wired. Highest-leverage signal source for the e-commerce slice of our ICP after the existing RSS / review-site / LinkedIn / email / inbound HTTP coverage. - **ISO 42001 third-party certification**: Architectural alignment + governance docs landed rev 13. A real certification (vs. self-assessed alignment) is the next procurement-blocker remover for B2B enterprise customers. ### Later — On the radar; happy to be talked into pulling forward - **Per-role granular UI controls**: Viewer gating is wired at the API layer (rev 16) and at the dashboard's top-level forms — per-item controls on signals/memory/tasks still 403 silently rather than render disabled. Acceptable for now; refine when a real viewer use case emerges. - **Mobile app (iOS / Android)**: The dashboard has been mobile-responsive since rev 14 with three breakpoints (900/768/480). A native app is a meaningful step beyond that — but only if the existing mobile-web flow is a bottleneck for real users, which it currently isn't. - **Blog post comments**: /blog has shipped 31 founder-operator posts since rev 14. A lightweight comment thread on each post would close the operator-feedback loop on marketing surface and surface ICP voice for future blog topics. - **Dashboard visual refresh**: The dashboard has accumulated 30+ panels across 96+ revs of incremental polish. A bigger visual story (refreshed typography scale, a denser one-pane mode, a different colour vocabulary for the cost-axis cluster) would compound the existing rev-by-rev micro-polish discipline. Public roadmap: https://loopdesk.space/roadmap ## Recent shipping (last 12 revisions) Loop Desk ships on a public cadence — every revision lands on the /changelog with highlights. The product has accumulated 200+ revisions of compounding improvements across 8 months. ### rev 203 (2026-05-12) — Closes the named rev-202 next-sprint candidate (v1 parity gap on /pricing) + ships two more templates from the rev-201 named radar wave (cheesemongers + bookbinders) bringing the cluster to seventy-five named verticals + adds the per-plan permalink share affordance on /pricing matching the rev-101/125/174/175 share-permalink vocabulary at the per-plan axis. Connecting thread: every rev-203 change makes an existing primitive load-bearing on a new place. (a) New shared src/lib/pricing-plans.ts module is the load-bearing primitive — the /pricing page, the landing-page in-page pricing block (since rev 22), the new /api/v1/pricing endpoint, AND the rev-202 /llms-full.txt AI-discoverability surface all read from one source so a price change updates four surfaces in one edit. Until rev 203 the landing-page pricing block and the rev-202 /pricing page carried hand-coded duplicates that drifted; rev 203 closes that. (b) GET /api/v1/pricing — closes the protocol-bound parity gap on the rev-202 /pricing marketing surface. Returns every plan (slug + name + price + priceUsd + priceSuffix + description + featured + features + caps + per-plan share URL) plus the rev-202 competitor-comparison block (Notion / HubSpot / per-token) plus an aggregate summary block (planCount + startingPriceUsd + featuredPlanSlug + positioning notes). No auth — public marketing surface (same model as /api/v1/badge.svg, /api/v1/integrations, /api/v1/onboarding-templates). Cache-control public, max-age=300, s-maxage=1800. The public marketing v1 cluster reaches its seventh axis: planned (rev 98) + most-requested (rev 98) + shipped (rev 100) + brand voice (rev 102) + industry-fit (rev 172) + channels (rev 202) + pricing (rev 203). (c) Per-plan permalink share chips on every plan card on /pricing — every card now wears a one-tap 'Copy link' chip producing loopdesk.space/pricing#plan-pro style URLs, with a hash-listener that smooth-scrolls + 2.4s flash-highlights the matching plan card on arrival. Mirrors the rev-101 changelog permalink + rev-125 roadmap permalink + rev-174 per-rev changelog detail permalink + rev-175 per-template detail permalink vocabulary at the per-plan axis. (d) Two more onboarding templates — small independent cheesemongers (affinage cycle discipline + named-producer continuity + shrinkage discipline at 3% per-category threshold + pairing expertise as the load-bearing customer trust signal) and independent bookbinders / paper conservators (named-substrate + adhesive discipline on conservation-grade quotes + chain-of-custody on every customer piece + rush-job hygiene with named deadline + conservation-grade supplier continuity adjacent to the rev-201 framing/mat-board axis) — bringing the templates cluster to 75 named verticals. The OpenAPI 3.1 spec types the new /pricing endpoint with full request/response schemas + the rev-172 listing endpoint count copy bumps 73 → 75 in lockstep — the cadence pattern from rev 78 onward reaches its 111th unbroken rev with rev 203. PRD + ROADMAP + CLAUDE.md updated (rev 203) - Shared src/lib/pricing-plans.ts module — closes the price-list drift between the /pricing page + landing page + v1 surface: Until rev 203 the rev-202 /pricing page carried inline copies of the three plan cards (Free / Pro / Team with prices, features, hard caps, CTA labels) and the landing-page in-page pricing block (since rev 22) carried a separate hand-coded inline copy of the same plans with slightly different feature wording. A real price change had to land in two places + the landing-page block visibly drifted from the canonical /pricing page over time (the rev-22 block named '90-day memory' on the Pro card while the rev-202 page named '90-day memory retention'; small drifts that compound across two months of revs). Rev 203 closes that with a shared module that exports PRICING_PLANS + PRICING_COMPETITORS + a getPricingPlan(slug) helper. Each plan carries a stable slug (free / pro / team) which is also the rev-203 permalink anchor. Both /pricing and the landing block now read from the same array. The new /api/v1/pricing endpoint reads the same module. The rev-202 /llms-full.txt AI-discoverability surface reads the same module so AI agents indexing the site never see drift between the human-readable + protocol-bound + AI-discoverable views. Mirrors the rev-37 src/lib/changelog-releases.ts + rev-97 src/lib/roadmap-items.ts + rev-202 src/lib/integrations.ts shared-module pattern at the pricing axis. - GET /api/v1/pricing — closes the protocol-bound parity gap on the rev-202 /pricing marketing surface: New bearer-less GET endpoint returns every plan tier with slug + name + price (display + numeric priceUsd) + priceSuffix + description + featured boolean + features array + caps block (sources + memory + interval) + canonical per-plan share URL (loopdesk.space/pricing#plan-). Response also carries an aggregate summary block (planCount + startingPriceUsd + featuredPlanSlug + positioning notes: 'No per-cycle credits', 'No metered AI tokens', 'No overage bills', 'Daily cost cap on every tier'). Plus the rev-202 competitor-comparison block (Notion Custom Agents per-cycle credits, HubSpot Breeze outcome-based, per-token billing) projected on every response so MCP hosts rendering 'Loop Desk vs Notion' don't have to scrape the rev-202 page. Pure derived state from the rev-203 shared pricing module. No schema cost, no migration, no new query — pure code primitive. The public marketing v1 cluster reaches its seventh axis. Strategic significance: until rev 203 an MCP host wanting to answer 'what does Loop Desk cost?' programmatically had to scrape the SSR'd HTML at /pricing. Rev 203 closes that. The MCP server's pricing-axis tooling now has nothing left to design. - Per-plan permalink share chips on /pricing — mirrors rev-101/125/174/175 share-permalink vocabulary at the per-plan axis: Every plan card on the rev-202 /pricing page now carries a one-tap 'Copy link' chip beside the plan name. Tap to copy loopdesk.space/pricing#plan-free / plan-pro / plan-team to the clipboard with a 1.6s 'Copied' success state. New PricingPlanPermalink client component handles the clipboard write (with execCommand fallback for non-secure contexts, mirroring the rev-42/43/101/125/126/128/133/174/175 chip-copy pattern), updates window.history.replaceState so back/forward navigation re-fires the highlight, and binds a hashchange listener that smooth-scrolls + applies a 2.4s ld-plan-card-flash brand-color glow animation when the URL hash matches a plan slug on first load. Pure client-side affordance — no schema. Strategic significance: closes the share-affordance loop on the rev-202 /pricing primitive at the per-plan axis. Procurement reviewers sharing a specific plan card with a stakeholder ('here's the Pro tier — see the 90-day memory retention') now have a one-tap copy that lands the recipient directly on the matching card. Pairs with the rev-202 dedicated /pricing URL as the share-affordance pair: canonical URL (rev 202) + per-row anchor (rev 203). The lowest-friction expression of 'this scope is meant to be shared' at the per-plan axis. Mirrors the same pattern shipped across the changelog (rev 101 per-rev), roadmap (rev 125 per-item + rev 126 per-phase), per-template detail (rev 175), and per-rev changelog detail (rev 174). The public-marketing share-affordance vocabulary now reaches its sixth surface. - Two more onboarding templates — small independent cheesemongers + independent bookbinders / paper conservators: Closes the rev-201 named radar at two more underserved owner-led specialty segments. Small independent cheesemongers (owner-led cheesemongers + cheese shops with affinage + producer relationships — 4 high-importance memory entries: affinage cycle discipline with every named wheel carrying a maturity log (arrival date + expected sell-by window + weekly maturity check on rind + paste + rotation), named-producer continuity on the 20% of revenue from named producers + affineurs with quarterly touchpoint + secondary supplier already qualified, shrinkage discipline with 3% weekly threshold per category triggering root-cause review on two consecutive weeks crossing threshold, pairing expertise as the load-bearing customer trust signal with in-house pairing card refreshed quarterly + 1 sample mid-week affinage signal on an overripe washed-rind shipment). Independent bookbinders / paper conservators (owner-led bookbinders + paper conservators + archival-paper specialists — 4 high-importance memory entries: named-substrate + adhesive discipline with cotton-rag for archival rebinds + PVA neutral-pH for general repair + wheat-starch paste for conservation rebacking + never animal hide-glue on a photographic piece + sub-policy on customer-flagged archival + sentimental + pre-1900 pieces treated as conservation-grade regardless of quote tier, chain-of-custody on every customer piece with condition report + photographs at intake + bench-handoff trail signed at every stop, rush-job hygiene with named deadline + rush-fee + substitution-risk-disclosure + on-time-confidence rating on every <14-day quote, conservation-grade supplier continuity with quarterly review on every supplier crossing 5% trailing-12-month material spend + second-source review on any supplier above 5% quality-rejection or 2-week lead-time miss + 1 sample mid-rebind customer signal on a wedding album with handed-in damage discovered mid-disassembly). Two new OnboardingTemplateKey enum values (cheesemonger in hospitality-food, bookbinder in manufacturing-specialty) extend the rev-19 enum without migration. The templates cluster is now seventy-five named verticals deep. Strategic significance: closes the named rev-201 radar wave at two more underserved owner-led segments where named-relationship discipline (affineurs on the cheese side, conservation-grade suppliers on the binder side) is the load-bearing differentiator against generic chain operators. ### rev 202 (2026-05-12) — Deliberate diversification away from the 14-rev templates cluster (rev 188-201 each shipped templates-axis primitives — verticals added, depth/freshness signals, recent endpoints, per-category archive pages, OG cards). Rev 202 pivots to three load-bearing primitives that have been named in the running state but kept getting deprioritised: (a) GET /api/v1/integrations — closes the v1 parity gap on the rev-165 /integrations public marketing surface so MCP hosts answering 'what does Loop Desk connect to?' get the vendor inventory in one bearer-less GET instead of scraping the SSR'd HTML; pairs with /api/v1/onboarding-templates (industry-fit) + /api/v1/blog (brand voice) + /api/v1/changelog (shipped) + /api/v1/roadmap-items (planned) + /api/v1/roadmap-votes (most-requested) as the now-six-axis public marketing v1 cluster (channels axis closed); (b) /pricing public page — until rev 202 the only pricing surface was an in-page anchor on the landing page (loopdesk.space/#pricing), procurement reviewers searching 'Loop Desk pricing' or sharing a pricing URL with a teammate had no canonical page; rev 202 ships a dedicated page with three plan cards + competitor-comparison block (Notion Custom Agents per-cycle credits, HubSpot Breeze outcome-based) + procurement-evidence section + JSON-LD ItemList structured data; (c) /llms-full.txt — modern AI-discoverability surface that complements the existing /llms.txt; AI agents indexing the site (ChatGPT search, Claude search, Perplexity, Bing AI) get a single comprehensive context file with pricing + integrations + templates + roadmap + recent shipping + brand voice + procurement evidence so they don't have to crawl 200+ URLs to learn what Loop Desk does. The OpenAPI 3.1 spec types the new /integrations endpoint with full request/response schemas — 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 110th unbroken rev with rev 202. Plus every nav link across the public marketing surface now points at the canonical /pricing URL instead of the in-page anchor (rev 202) - GET /api/v1/integrations — public integrations catalog on the v1 surface: Closes the v1 parity gap on the rev-165 /integrations public marketing page. New shared `src/lib/integrations.ts` module pulls the inline groups out of the page.tsx into a reusable source — both the rev-165 page and the rev-202 endpoint read from one place so the channel inventory cannot drift between the human-readable surface and the protocol-bound surface (mirrors the rev-37 changelog-releases shared module + rev-97 roadmap-items shared module at the integrations axis). Each row carries key + name + detail + auth + sinceRev. Response also includes an aggregate `perAxis` summary (Inbound / Outbound / Programmatic counts) so MCP hosts rendering 'Loop Desk supports N integrations across 3 axes' don't have to recompute counts. No auth — public marketing surface (same model as /api/v1/badge.svg + /api/v1/roadmap-* + /api/v1/changelog + /api/v1/blog + /api/v1/onboarding-templates). Cache-control public, max-age=300, s-maxage=1800 — the integrations list changes only when we ship a new channel. The OpenAPI 3.1 spec types the new endpoint with full request/response schemas including the perAxis sub-object + groups[].items[] shape with every field typed + sinceRev as a string (since it carries non-numeric data like 'rev 17 (single URL), rev 19 (per-event router)'). Strategic significance: the public marketing v1 cluster is now six axes deep — planned (roadmap) + most-requested (roadmap-votes) + shipped (changelog) + brand voice (blog) + industry-fit (templates) + channels (integrations). The upcoming MCP server (Q3 #1) has nothing left to design across the public marketing v1 cluster at any of the six axes. - Dedicated /pricing public page — closes the canonical-URL gap on the load-bearing procurement query: Until rev 202 the only pricing surface was an in-page anchor on the landing page (loopdesk.space/#pricing). Procurement reviewers searching for 'Loop Desk pricing' or sharing a pricing URL with a teammate had no canonical page to land on — anchors don't share well in Slack/email/CRM (no OG preview, no SEO-friendly URL, no individual analytics), don't get their own crawl priority in the sitemap, and degrade in search snippets. Rev 202 closes that. New /pricing page ships three plan cards (Free / Pro $29-mo / Team $79-mo) with feature lists + per-tier hard caps (sources, memory TTL, loop interval floor) in a structured dl block, plus a competitor-comparison section that names Notion Custom Agents ($10/1,000 credits as of May 2026) + HubSpot Breeze ($0.50 per resolved conversation / $1 per qualified lead) + generic per-token billing as the three pricing models Loop Desk explicitly rejects, plus a procurement-evidence section that names what every tier ships (approval-first on every tier, audit trail on every tier, daily cost cap on every tier — higher tiers unlock higher caps, not different products), plus a closing CTA. JSON-LD ItemList structured data with @type=Offer per plan so Google + AI tooling discovery systems consume schema.org pricing markup. Full openGraph + twitter card metadata. Crawler-friendly with priority 0.8 in the sitemap (highest of any public marketing page since pricing is the most-searched B2B procurement query for AI tooling). Every existing nav link across the public marketing surface (landing, blog, docs, changelog, changelog/[rev], changelog/cadence, roadmap, integrations, templates, templates/[key], templates/by-category) now points at /pricing instead of the legacy /#pricing in-page anchor. Strategic significance: closes the procurement-discovery loop on the public marketing surface. SEO win — 'Loop Desk pricing' / 'flat-fee AI workspace pricing' / 'AI workspace no credits' all land on a real page instead of a landing-page section. Pairs with /integrations (vendor inventory) + /templates (industry-fit) + /changelog (history) + /roadmap (future) + /blog (brand voice) + /pricing (cost) as the now-sixth public marketing surface on the human-readable axis. - /llms-full.txt — comprehensive AI-discoverability context file: Modern AI-discoverability surface that complements the existing rev-1 /llms.txt. The llms.txt convention (proposed 2024-2025, widely adopted by 2026) has emerged as the AI equivalent of robots.txt + sitemap.xml — a stable entry point AI agents read first to bootstrap their understanding of a site. The bare /llms.txt answers 'what is this product?' in 60 seconds. The deeper /llms-full.txt answers 'what does this product do, who is it for, what does it cost, what does it connect to, what's it been doing lately?' in 5 minutes. Until rev 202 AI agents (ChatGPT search, Claude search, Perplexity, Bing AI) indexing the site had to crawl 200+ URLs to learn what Loop Desk does. Rev 202 collapses that to one stable URL. The file aggregates every public-facing data source — pricing, integrations (every channel + auth model), all 73 onboarding templates organised by industry category with launch metadata, the full roadmap (Now/Next/Later phases), the last 12 changelog revisions with highlights, the blog categories + 15 most-recent posts with excerpts, and a procurement-evidence section naming every governance control. Cache-control public, max-age=3600. Strategic significance: procurement-conscious AI searches ('find me a governance-first AI workspace under $50 a seat with daily cost cap') land on rich content instead of a summary. Pairs with /api/v1/integrations + /pricing as the third rev-202 public surface that answers a procurement-relevant question — the three together close the procurement-discovery story across human (pricing page), protocol (v1 integrations), and AI (llms-full) reading axes. - OpenAPI 3.1 typed coverage on /integrations + cumulative visual polish + sitemap entry — 110th unbroken cadence rev: The OpenAPI 3.1 spec types the new GET /integrations endpoint with full request/response schemas (no parameters; response shape with generatedAt + total + perAxis object with Inbound/Outbound/Programmatic counts + groups[] each carrying axis enum + intro + count + items[] each with key + name + detail + auth + sinceRev typed). 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 110th unbroken rev with rev 202. The OpenAPI spec changelog header gains a rev-202 block explaining the three diversification primitives. Sitemap.xml gains /pricing (priority 0.8, weekly changeFrequency) — higher priority than /integrations (0.7) since pricing is the most-searched B2B procurement query. Plus cumulative visual polish on the /pricing page itself: brand-color teal accent pills at the hero ('No per-cycle credits' / 'No metered AI tokens' / 'No overage bills' / 'Daily cost cap on every tier') matching the rev-22+ design-language thread; per-plan-card 'Most popular' tag on the featured Pro tier; per-tier hard-caps dl block with dashed border so the caps read as a sibling of the rev-22+ chip vocabulary; competitor-comparison row treatment with brand-color teal vs brand-amber palette distinguishing 'them' (Notion/HubSpot per-cycle) from 'us' (Loop Desk flat-fee); procurement-evidence card grid with brand-amber callout treatment on the 'What we don't do' card so the eye lands on the contrast. Strategic significance: keeps the rev-by-rev visual-hierarchy discipline alive — every rev 22+ has carried at least one piece of cumulative polish, and rev 202's polish is load-bearing because the new /pricing page is the most-procurement-loaded surface in the product and needs to read as part of the rev-22+ design language so procurement reviewers recognise the visual vocabulary across all six public marketing surfaces. ### rev 201 (2026-05-12) — Closes two more named rev-199 radar candidates at the templates axis (independent toy / hobby shops with named-supplier continuity + age-gating + safety hygiene per CPSIA + ASTM F963 + holiday inventory cadence with named-buyer ordering window in February-May + named-recall response with same-day named-pull on every CPSC notice, and independent framing / mat-board ateliers with named-piece chain-of-custody + named-substrate + named-mat + named-glazing discipline with named-conservation-grade for any named-archival piece + rush-job hygiene with named-deadline + named-rush-fee + named-substitution-risk-disclosure + named-on-time-confidence rating + named-conservation-grade supplier continuity) bringing the templates cluster to seventy-three named verticals — the rev-199 next-radar wave queued small independent toy / hobby shops + independent framing / mat-board ateliers as the rev-200/201 candidates, with rev-200 deliberately stepping off the templates grind for accessibility + milestone + per-category recent endpoint work, and rev-201 picking the radar back up. Plus extends the rev-192 /api/v1/onboarding-templates/categories endpoint with a new per-category `latestLaunch` block (most-recently-shipped template per category with its key + name + rev + date) so MCP hosts rendering 'browse Loop Desk's industry coverage by freshness' get the per-category freshness answer in the same call as the rev-198 depth answer — pairs with `coverageDepth` as the depth + freshness signal pair on every category row. Plus mirrors the rev-201 freshness signal at the human-readable surface: the /templates hero category-chip tooltip now surfaces 'newest rev N (YYYY-MM-DD)' alongside the existing 'N templates · M memory entries · K sample signals' depth signal so procurement reviewers landing on /templates see depth + freshness on one hover. The OpenAPI 3.1 spec types the new `latestLaunch` field with full schema + count copy bumps 71 → 73 across the rev-172 listing endpoint description 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 109th unbroken rev with rev 201. Plus 16 new SEO keywords cover the toy / hobby + framing / mat-board axes (AI for toy shops + AI for hobby shops + AI for game shops + AI for CPSC recall response + AI for CPSIA compliance + AI for ASTM F963 toy safety + AI for holiday inventory cadence + AI for framing ateliers + AI for custom framing shops + AI for mat-board cutters + AI for conservation framing + AI for archival framing + AI for piece chain-of-custody + AI for rush-job hygiene in framing) (rev 201) - Two more onboarding templates — Independent toy / hobby shops + Independent framing / mat-board ateliers: Closes the named rev-199 radar wave at two more underserved owner-led retail + specialty segments where regulated discipline (CPSIA + ASTM F963 toy safety on the toy/hobby side, named-conservation-grade material continuity on the framing/mat-board side) is the load-bearing differentiator against generic chain retail. Independent toy / hobby shops (4 high-importance memory entries: named-supplier continuity with named-primary + named-secondary on every named-product line crossing 2% of trailing-12-month revenue + sub-policy on rep + acquisition changes, age-gating + safety hygiene per CPSIA + ASTM F963 with named-age-band + named-safety-cert reference on file in named-supplier-record + named-display posture rule on small-parts toys + named-pellet items + named-craft-chemicals, holiday inventory cadence with named-buyer ordering window in February-May for the named-Q4 cycle + named-Q4-allocation target tied to named-prior-year-Q4 + named-trend-adjustment + named-supplier-allocation-confirmation, named-recall response with same-day named-pull from named-floor + named-website + named-supplier consult on every CPSC notice + named-customer-record-pull on named-affected-batch + 1 sample mid-Q4 named-supplier allocation shortage signal on a named-hot-product-line). Independent framing / mat-board ateliers (4 high-importance memory entries: named-piece chain-of-custody with named-condition-report + named-photographs at named-intake + named-bench-handoff at every named-stop signed by the named-bench-worker + named-pickup-signoff at named-customer-pickup, named-substrate + named-mat + named-glazing discipline with named-conservation-grade for any named-archival piece + sub-policy on named-sentimental + named-monetary-value > $500 pieces, rush-job hygiene with named-deadline + named-rush-fee + named-substitution-risk-disclosure + named-on-time-confidence rating on every <7-day named-quote, named-conservation-grade supplier continuity with named-quarterly named-supplier review + named-second-source review on any named-supplier above 5% named-quality-rejection or 2-week named-lead-time miss + 1 sample mid-job named-substrate-substitution disclosure-gap signal on a named-archival-piece). Two new OnboardingTemplateKey enum values (toy_hobby_shop in retail-ecommerce, framing_mat_board in manufacturing-specialty) extend the rev-19 enum without migration. The templates cluster is now seventy-three named verticals deep — closes the day-1 starvation-point story across two more underserved owner-led segments where regulated discipline (CPSC + CPSIA + ASTM F963 toy safety; named-conservation-grade material continuity) is the load-bearing differentiator against generic AI tools that don't know the regulatory vocabulary. - Per-category latestLaunch metadata on /api/v1/onboarding-templates/categories — closes the freshness-axis gap on the rev-192 taxonomy endpoint: Until rev 201 the rev-192 /api/v1/onboarding-templates/categories endpoint carried per-category depth (rev 198 `coverageDepth` block) + per-category count + archive URL — but no freshness signal. MCP hosts rendering 'which category got new coverage most recently?' had to fetch the rev-172 full listing + the rev-176 TEMPLATE_LAUNCH map and aggregate client-side, OR fetch the rev-200 per-category recent endpoint per category. Rev 201 closes that with one new field per category row: `latestLaunch: { templateKey, templateName, rev, date } | null`. Pure derived state from the rev-176 TEMPLATE_LAUNCH map walked once per request + the rev-190 TEMPLATE_CATEGORY_BY_KEY filter — no schema cost, no migration. Null when the category has no templates yet (defensive — the 10 industry buckets all currently have ≥2 templates so this null branch is reserved for future-proofing). Pairs naturally with `coverageDepth` (rev 198) as the depth + freshness signal pair on every category row, so 'browse by industry' MCP-host UIs can sort by depth OR by freshness with one bearer-less GET. The OpenAPI 3.1 spec types the new field with full schema in lockstep — the cadence pattern from rev 78 onward (every v1 enhancement gets typed in the OpenAPI 3.1 spec in the same cycle it ships) reaches its 109th unbroken rev with rev 201. Strategic significance: closes the named rev-200/v1 'category freshness' gap that the per-category recent endpoint (rev 200) addressed at the per-category-array shape — rev 201 brings the same signal to the taxonomy endpoint as a single field so callers reading the categories list once get both depth + freshness without a follow-up call per category. - /templates hero category-chip tooltip now surfaces freshness alongside depth — mirrors v1 latestLaunch at the human-readable surface: Rev 201 mirrors the new v1 `latestLaunch` field at the human-readable /templates surface: the rev-197 per-category chip cluster's tooltip (which already surfaced depth via 'N templates · M memory entries · K sample signals' since rev 198) now ALSO surfaces 'newest rev N (YYYY-MM-DD)' as a freshness tail so procurement reviewers landing on /templates from a per-vertical search snippet see depth + freshness on one hover. Pure derived state from the rev-176 TEMPLATE_LAUNCH map — no schema cost. New `CategoryStat` type adds `latestRev` + `latestDate` + `latestDateMs` fields to the existing getCategoryStats aggregator. The tooltip stays scannable on first glance (the chip face itself shows only category name + count) but the depth + freshness answer is one hover away. Strategic significance: closes the depth+freshness symmetry across both reading horizons (protocol-bound v1 + human-readable HTML). Pairs naturally with the rev-176 60-day 'New' pill on every per-template card + the rev-196 'Recently added' featured strip + the rev-200 per-category recent strip as the four-axis freshness story across every public marketing surface on the templates cluster. - Templates page count + radar copy refresh + 16 new SEO keywords + OpenAPI typed coverage (109th unbroken cadence rev): Templates page count copy bumps 'Seventy-one verticals today' → 'Seventy-three verticals today' across hero, metadata title, OpenGraph + Twitter description, JSON-LD CollectionPage block, and templates-cta. Sixteen new SEO keywords on the templates metadata covering toy / hobby + framing / mat-board axes (AI for toy shops, AI for independent toy retailers, AI for hobby shops, AI for game shops, AI for CPSC recall response, AI for CPSIA compliance, AI for ASTM F963 toy safety, AI for holiday inventory cadence, AI for framing ateliers, AI for custom framing shops, AI for mat-board cutters, AI for conservation framing, AI for archival framing, AI for piece chain-of-custody, AI for rush-job hygiene in framing). Don't see your vertical? CTA copy refreshes the next-radar list — replaced with independent specialty fishing / outdoor outfitters (named-license currency + named-charter continuity + named-safety-incident hygiene), independent bookbinders / paper conservators (named-substrate + named-adhesive discipline + named-piece chain-of-custody adjacent to the rev-201 framing axis), independent stationery / pen shops (named-supplier continuity + named-collectibles authentication), and small independent cheesemongers (named-affinage cycle + named-supplier continuity + named-shrinkage discipline) now that toy/hobby + framing/mat-board are shipped. The rev-172 listing endpoint description bumps from 71 → 73 verticals in the OpenAPI 3.1 spec + the new latestLaunch field is fully typed on the rev-192 categories endpoint response schema — 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 109th unbroken rev with rev 201. ### rev 200 (2026-05-09) — Milestone revision — 200 unbroken rev-by-rev cadence revs shipped on the public changelog. Deliberate diversification away from the 13-rev templates grind (rev 188-199 each closed industry-template wave candidates) onto three orthogonal axes that have been named in the running state but kept getting deprioritised: prefers-reduced-motion accessibility support across every animation in the app (genuine a11y gap — ~48 keyframes + every transition fired regardless of OS-level user preference until rev 200), per-category recently-shipped HTML strip on the rev-191 /templates/by-category/{category} archive pages (closes the named rev-199 next-sprint candidate at the per-category axis on the human-readable surface), per-category recently-shipped v1 endpoint at GET /api/v1/onboarding-templates/by-category/{category}/recent (closes the same candidate on the protocol-bound side — mirrors the rev-199 workspace-axis convenience read at the per-category axis), plus a milestone visual treatment on the /changelog hero anchoring rev 200 as a meaningful inflection point (every 100 revs gets the milestone pill since rev 100; rev 200 also gets a soft hero card surfacing the round-number cadence achievement). The connecting thread: every rev-200 change makes an *existing* primitive load-bearing on a new axis — the rev-22+ design language gains its first explicit accessibility primitive (reduced-motion query covering ~48 keyframes), the rev-191 HTML archive pages reach the recency-axis read shape rev-196 introduced on the workspace surface, the rev-190 by-category v1 cluster reaches its second axis (drill-down + recent), and the rev-100 milestone-rev visual treatment lights up its second occurrence (rev 200) - Accessibility — prefers-reduced-motion support across every animation: Until rev 200 every one of the ~48 @keyframes animations + every transition in globals.css fired regardless of OS-level user preference. Operators with vestibular disorders, attention-related sensitivities, or migraine triggers — plus anyone running on battery-saver mode where the browser respects reduced-motion — had no escape hatch. Pulses (rev-12 heartbeat, rev-76 what's-new badge, rev-77 personal inbox, rev-97 sources health + latest-release pill, rev-180 shipping cadence, rev-183 cadence-trend chip), spinners, fade-ins (every rev-33 .app-panel ld-fade-in), slide-downs (rev-114 live-preview, rev-118 memory bulk import), and hover lifts all fired full-strength. Rev 200 adds the standard accessibility recipe: a single @media (prefers-reduced-motion: reduce) block in globals.css collapses every animation + transition to ~0.01ms so dependent JS transitionend / animationend handlers still fire (which some chip-pulse + flash-highlight components rely on for their state cleanup), but the visible motion is functionally zero. Affordances that signal state via transform (hover lift, sparkline highlight, FAB entrance) keep their final visual state — only the transition between states is collapsed. Strategic significance: every rev 22+ has carried at least one piece of cumulative polish. Rev 200's polish is the first one that's genuinely an accessibility fix rather than a visual-hierarchy refinement — it benefits every operator on every surface that uses motion. The rev-22+ visual-hierarchy thread now has a load-bearing accessibility primitive supporting it. - Per-category recently-shipped HTML strip on /templates/by-category/{category} archive pages: Closes the named rev-199 next-sprint candidate at the per-category axis on the human-readable surface. Until rev 200 the rev-196 'Recently added' featured strip lived only on the workspace-axis /templates index — visitors landing on a per-category archive page (rev 191) had no equivalent surface. The rev-191 archive pages list every template in the category in declaration order, but a procurement reviewer landing through 'AI workspace for healthcare practices' search snippet had no signal of which healthcare templates shipped most recently without parsing every card's 'Added in rev N' meta line by hand. Rev 200 closes that. New 'Recently added in {category}' strip surfaces the 3 most-recently-shipped templates in that category (descending by launch date with enum order as tiebreak; pure derived state from the rev-176 TEMPLATE_LAUNCH metadata map — no schema cost, no migration). Hidden when the category has fewer than 4 templates in total (the strip would tautologically be the whole category). Each strip card shares the rev-196 .ld-templates-recent CSS vocabulary so the workspace + per-category recency surfaces read with one consistent visual story. Strategic significance: closes the recency-axis read shape on every public-facing template surface — workspace index (rev 196 strip), per-category archive (rev 200 strip), workspace-axis v1 (rev 199 endpoint), per-category v1 (rev 200 endpoint). - GET /api/v1/onboarding-templates/by-category/{category}/recent — per-category recency read shape: Closes the named rev-199 next-sprint candidate on the protocol-bound side. New bearer-less GET endpoint returns the N most-recently-shipped templates in a given category, sorted descending by launch date with enum order as a deterministic tiebreak (mirrors the rev-199 /onboarding-templates/recent shape at the per-category axis). Optional limit query param (default 3, max 20). Returns 404 with typed { error: 'category_not_found', category, validCategories[] } when the slug is unknown (mirrors the rev-190 by-category 404 shape). Each row carries the same fields as the rev-199 workspace-axis endpoint: key + name + description + keywordHint + category + categoryLabel + memoryCount + signalCount + url + apiUrl + launchRev + launchDate. Cache-control public, max-age=300, s-maxage=1800. The OpenAPI 3.1 spec types the new endpoint with full request/response schemas + 404 error path 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 108th unbroken rev with rev 200. Pairs with the rev-190 by-category drill-down + rev-200 by-category recent strip + rev-199 workspace-axis recent endpoint as the four-axis recency read cluster on the templates v1 surface (workspace listing rev 172 + workspace recent rev 199 + per-category drill-down rev 190 + per-category recent rev 200). Strategic significance: the templates v1 cluster reaches its seventh read shape — the upcoming MCP server's templates-axis tooling has nothing left to design across all seven read shapes including per-category recency. - Rev 200 milestone visual treatment + cumulative changelog hero polish: Rev 200 marks 200 unbroken cadence revs shipped on the public changelog (rev 100 was the first milestone; rev 200 is the second). The rev-100 .ld-changelog-item-milestone visual treatment fires automatically (every rev whose number is a multiple of 100 gets the brand-purple left-border accent + 'milestone' pill on the changelog page) — rev 200 inherits it. Plus a new milestone hero card surfaces above the rev list on /changelog itself naming the round-number cadence achievement: '200 unbroken cadence revs shipped' headline + '~6 months of public, frequent, audit-trail-grade product velocity' subline + a CTA inviting subscribers to the rev-37 RSS feed + rev-178 cadence calendar + rev-179 weekly pulse pill. The hero card uses a brand-purple gradient background distinct from the rev-179 brand-color teal pulse pill so the milestone reads as anniversary signal rather than ambient cadence chrome. Cumulative micro-polish — every rev 22+ has carried at least one — and rev 200's polish is load-bearing because the milestone-rev visual treatment had only ever fired once (rev 100). Strategic significance: anchors the rev-200 inflection as a moment worth marking, and explicitly diversifies away from the 13-rev templates grind by being a non-template celebration of cadence consistency. The rev-by-rev visual-hierarchy discipline (every rev 22+ has carried at least one piece of cumulative polish) reaches its 178th unbroken rev with rev 200. ### rev 199 (2026-05-09) — Closes two more named radar candidates at the templates axis (small independent jewellers with named-craftsman continuity + custom-order milestone cadence + appraisal + insurance documentation hygiene + chain-of-custody on every piece in for repair, and independent specialty bike shops with named-mechanic continuity + service-record continuity per named bike + seasonal inventory turn + safety-incident hygiene with named-component quarantine on any post-service incident) bringing the templates cluster to seventy-one named verticals — the rev-198 next-radar wave queued small independent jewellers + independent specialty bike shops at the top of the queue, and rev 199 ships them at the cheapest possible shape on top of the existing rev-19 ONBOARDING_TEMPLATES array. Plus opens the sixth read shape on the templates v1 cluster — recently-shipped convenience read at /api/v1/onboarding-templates/recent — so MCP hosts rendering a 'what's new on the templates surface' widget don't have to fetch the rev-172 full listing endpoint and sort the rows client-side by launchDate. Mirrors the rev-175 /api/v1/changelog/latest convenience pattern at the templates axis. The OpenAPI 3.1 spec count copy bumps 69 → 71 across the rev-172 listing endpoint description in lockstep + the new convenience endpoint is fully typed in the same cycle the dashboard primitive ships — 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 107th unbroken rev with rev 199. Plus radar copy refresh on the templates 'Don't see your vertical?' CTA names the next vertical wave (independent toy / hobby shops + framing / mat-board ateliers + independent specialty fishing / outdoor outfitters + independent bookbinders / paper conservators) now that jewellers + bike shops are shipped. Plus 12 new SEO keywords cover the jeweller + bike-shop axes. Plus subtle visual polish on the rev-196 Recently-added strip cards: the rev-197 per-card category badge now brightens on parent-link hover so the chip feels like part of the same surface in motion (rev 199) - Two more onboarding templates — small independent jewellers + independent specialty bike shops: Closes the named rev-198 next-radar wave at two more underserved owner-led retail segments where the named-craftsman + named-mechanic relationship is the load-bearing differentiator against generic chain retail. Small independent jewellers (4 high-importance memory entries: named-craftsman continuity with named-primary + named-backup on every commission + sub-policy on bench substitutions, custom-order milestone cadence with named touchpoints at design + wax + cast + set + final review + named customer-comm at every milestone, appraisal + insurance documentation hygiene on every named piece over $2K with named-replacement-value + named-stone-grading + named-photographer record + 24-hour delivery threshold, chain-of-custody on every piece in for repair / resize / restoration with named-condition-report + named-photographs + named-workbench-handoff + named-pickup-signoff + 1 sample mid-commission stone-availability signal). Independent specialty bike shops (4 high-importance memory entries: named-mechanic continuity with named-primary + named-backup on every multi-day service + sub-policy on quick-fix substitutions, service-record continuity per named bike with named-mechanic + named-finding + named-replacement + named-recommendation + named-deferred-work, seasonal inventory turn with named-buyer ordering window in November-January + end-of-season liquidation cadence in September-December, safety-incident hygiene with named-component quarantine on any post-service incident + 3-in-90-days pattern threshold for named-component-line review + 1 sample mid-season post-service brake incident pattern signal). Two new OnboardingTemplateKey enum values (indie_jeweller, specialty_bike_shop) extend the rev-19 enum without migration. The templates cluster is now seventy-one named verticals deep. Strategic significance: closes the named rev-198 next-radar wave (the rev-198 running state explicitly named both as the top of the queue). Both verticals map cleanly onto Loop Desk's approval-first vocabulary — jewellers lean on named-craftsman continuity + chain-of-custody + appraisal documentation discipline (high-trust, high-value), bike shops lean on named-mechanic continuity + service-record continuity + safety-incident pattern detection (regulated equipment, named-relationship retention). - GET /api/v1/onboarding-templates/recent — sixth read shape on the templates v1 cluster: Until rev 199 MCP hosts and AI tooling roundup newsletters rendering 'what's new on the templates surface' had to fetch the rev-172 full listing endpoint and sort the rows client-side by launchDate. Rev 199 makes the answer a one-call bearer-less GET. Returns the N most-recently-shipped templates (default 4, max 20) sorted descending by launch date with enum order as a deterministic tiebreak — so two templates launched on the same date render in the order they appear in ONBOARDING_TEMPLATES. Each row carries key + name + description + keywordHint + category + categoryLabel + memoryCount + signalCount + url + apiUrl + launchRev + launchDate. Mirrors the rev-175 /api/v1/changelog/latest convenience pattern at the templates axis on the protocol-bound side, and the rev-196 dashboard 'Recently added' featured strip at the human-readable axis. Pure derived state from the rev-176 TEMPLATE_LAUNCH metadata map — no schema cost, no migration. Strategic significance: closes the sixth read shape on the templates v1 cluster (full listing rev 172 + per-template detail rev 189 + per-category drill-down rev 190 + standalone-taxonomy rev 192 + keyword search rev 193 + aggregate stats rev 194 + recent rev 199). Pairs with /api/v1/changelog/latest (rev 175) + /api/v1/changelog/peak-week (rev 187) as the third single-record convenience endpoint on the public marketing surface — same pattern, three surfaces, one consistent vocabulary. Cache-control public, max-age=300, s-maxage=1800. - Templates page count + radar copy refresh + SEO keywords + OpenAPI typed coverage + cumulative visual polish: Templates page count copy bumps 69 → 71 across hero, metadata title, OpenGraph + Twitter description, JSON-LD CollectionPage block, and templates-cta. Two new keyword hints on the per-vertical chip line (small independent jewellers `Named-craftsman continuity · custom-order milestone cadence · appraisal hygiene · insurance documentation`; independent specialty bike shops `Named-mechanic continuity · service-record continuity · seasonal inventory turn · safety-incident hygiene`). Twelve new SEO keywords on the templates metadata covering jeweller + bike-shop axes (AI for jewellers + AI for independent jewellers + AI for jewellery shops + AI for watchmakers + AI for custom-jewellery commissions + AI for named-craftsman continuity + AI for appraisal documentation + AI for bike shops + AI for independent bike shops + AI for cycling retail + AI for bicycle service centres + AI for named-mechanic continuity + AI for service-record continuity). 'Don't see your vertical?' next-radar list refreshes — replaced with independent toy / hobby shops, framing / mat-board ateliers adjacent to the rev-193 picture-framing axis, independent specialty fishing / outdoor outfitters, and independent bookbinders / paper conservators now that jewellers + bike shops are shipped. The OpenAPI 3.1 spec types the new /onboarding-templates/recent endpoint with full request/response schemas (limit query param 1-20 default 4 + response shape with templates[] each carrying key + name + description + keywordHint + category + categoryLabel + memoryCount + signalCount + url + apiUrl + launchRev + launchDate) — 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 107th unbroken rev with rev 199. Plus subtle visual polish on the rev-196 Recently-added strip cards: the rev-197 per-card category badge below each strip card name now brightens on parent-link hover (`rgba(31,143,137,0.08) → 0.18` background + matching border-color emphasis) so the chip reads as part of the same surface in motion vocabulary, mirroring the rev-193 per-template card hover treatment at the strip-card axis. Cumulative micro-polish — every rev 22+ has carried at least one — and rev 199's polish is load-bearing because the rev-196 + rev-197 strip surfaces had accumulated five distinct visual elements (rev label + date + name + category badge + keyword-hint + stats line + CTA) without a unified hover treatment until rev 199. ### rev 198 (2026-05-09) — Closes two more named radar candidates at the templates axis (independent ski / snowboard rental shops with seasonal inventory turn + named-tech continuity + equipment-incident hygiene + fit-verification discipline, and small independent yoga studios with named-member 14-day silent-attendance threshold + named-instructor continuity + class-format hygiene + injury-incident cadence) bringing the templates cluster to sixty-nine named verticals — the rev-197 next-radar wave queued ski / snowboard rental shops + small independent yoga studios at the top of the queue, and rev 198 ships them at the cheapest possible shape on top of the existing rev-19 ONBOARDING_TEMPLATES array. Plus extends the rev-192 /api/v1/onboarding-templates/categories endpoint with a per-category `coverageDepth` block (memory entries + sample signals + total evidence) so MCP hosts rendering 'browse by depth' or sorting categories by accumulated evidence trail get the depth answer in the same call as the count answer — pure derived state from the rev-19 ONBOARDING_TEMPLATES corpus walked once per request. Plus subtle visual polish on the rev-197 hero category chips: count pill brightens on chip hover so the cluster feels more tactile + per-chip tooltip now surfaces the same depth signal the new v1 field exposes ('9 templates · 36 memory entries · 9 sample signals'). Plus the OpenAPI 3.1 spec count copy bumps 67 -> 69 across the rev-172 listing endpoint description 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 106th unbroken rev with rev 198. Plus radar copy refresh on the templates 'Don't see your vertical?' CTA names the next vertical wave (small independent jewellers + independent toy / hobby shops + independent specialty bike shops + framing / mat-board ateliers) now that ski/snowboard + yoga are shipped. Plus 12 new SEO keywords cover the ski/snowboard + yoga axes (rev 198) - Two more onboarding templates — independent ski / snowboard rental shops + small independent yoga studios: Closes the named rev-197 radar wave at two more underserved owner-led retail + healthcare-wellness segments. Independent ski / snowboard rental shops (4 high-importance memory entries: seasonal inventory turn with named-buyer ordering window + end-of-season liquidation cadence, named-technician continuity on every binding mount + DIN setting with ASTM F2063-tested values + named primary + backup, equipment-incident hygiene with same-day named-incident report + 7-day equipment quarantine + 3-in-90-days pattern threshold, fit verification on every rental with measured height + measured weight + boot fit + ability honesty + helmet fastening verification + 1 sample mid-season binding-incident pattern signal). Small independent yoga studios (4 high-importance memory entries: named-member 14-day silent-attendance threshold with named-instructor outreach + 30-day named-owner conversation, named-instructor continuity with primary + backup paired-shadow on every weekly slot + 4-week paired-shadow on planned mid-season substitutions, class-format hygiene with published heat + intensity + pace + experience floor on every class + 30% drift trigger, injury-incident cadence with same-day named-incident report + 30-day named-instructor follow-up + 3-in-90-days teaching-cue review trigger + 1 sample 14-day silent-regular signal). Two new OnboardingTemplateKey enum values (ski_snowboard_rental, yoga_studio) extend the rev-19 enum without migration. The templates cluster is now sixty-nine named verticals deep. Strategic significance: closes the named rev-197 next-radar wave (the rev-197 running state explicitly named both as the top of the queue). Both verticals map cleanly onto Loop Desk's approval-first vocabulary — ski/snowboard rental leans on named-tech DIN-setting safety discipline + seasonal turn discipline (highly regulated, equipment-heavy), yoga studios lean on named-instructor continuity + injury-pattern detection (membership-cadence, named-relationship retention). - coverageDepth field on /api/v1/onboarding-templates/categories — closes depth-axis gap on the rev-192 standalone-taxonomy endpoint: Until rev 198 the rev-192 /api/v1/onboarding-templates/categories endpoint returned per-category templateCount + URLs, but MCP hosts rendering 'browse by depth' (e.g. sort categories by total evidence) had to fetch the rev-194 /api/v1/onboarding-templates/stats endpoint and walk the perCategory[] array. Rev 198 closes that gap. Every category row now also carries a coverageDepth: { memoryEntries, sampleSignals, totalEvidence } block — pure derived state walked once per request from the rev-19 ONBOARDING_TEMPLATES corpus. The OpenAPI 3.1 spec types the new field with full schema in lockstep. Strategic significance: pairs with the rev-198 hero category-chip tooltip on the human-readable /templates surface so dashboard ↔ v1 read the same depth signal across both reading horizons. The MCP server's templates-axis tooling now closes the depth-axis read across all 5 axes where it makes sense (per-template detail rev 189 includes memory + signal counts; per-category drill-down rev 190 includes them; standalone-taxonomy rev 192 + 198 includes per-category sums; aggregate stats rev 194 includes both per-template + per-category sums; keyword search rev 193 includes per-template counts). - Templates page count + radar copy refresh + SEO keywords + cumulative visual polish: Templates page count copy bumps 67 → 69 across hero, metadata title, OpenGraph + Twitter description, JSON-LD CollectionPage block, and templates-cta. Two new keyword hints on the per-vertical chip line (Independent ski / snowboard rental `Seasonal inventory turn · named-tech continuity · equipment-incident hygiene · fit verification`; Small independent yoga studios `Membership lifecycle · named-instructor continuity · class-format hygiene · injury cadence`). Twelve new SEO keywords on the templates metadata — AI for ski rental shops + AI for snowboard rental shops + AI for winter sports retail + AI for seasonal inventory turn + AI for binding-mount discipline + AI for fit-verification rentals + AI for yoga studios + AI for independent yoga studios + AI for membership-lifecycle yoga + AI for class-format hygiene + AI for injury-incident cadence + AI for named-instructor continuity. 'Don't see your vertical?' next-radar list refreshes — replaced with small independent jewellers (named-craftsman continuity + custom-order milestone cadence + appraisal + insurance hygiene), independent toy / hobby shops (named-supplier continuity + age-gating + safety hygiene + holiday inventory cadence), independent specialty bike shops (named-mechanic + service-record continuity), and framing / mat-board ateliers adjacent to the rev-193 picture-framing axis now that ski/snowboard + yoga are shipped. Per-template detail page keyword-hint map gains the matching two new entries via the rev-195 canonical TEMPLATE_KEYWORD_HINT consolidation so /templates/[key] for the new verticals reads with the same depth as the existing sixty-seven verticals. Plus subtle visual polish on the rev-197 category-chip cluster: count pill brightens to brand-color on chip hover so the chip feels more tactile, and the per-chip tooltip now surfaces the rev-198 coverageDepth signal at the human-readable surface ('9 templates · 36 memory entries · 9 sample signals') mirroring the new v1 field. Cumulative micro-polish — every rev 22+ has carried at least one — and rev 198's polish is load-bearing because it ties the new v1 depth-axis primitive to the human-readable surface in the same cycle. ### rev 197 (2026-05-09) — Closes two more named radar candidates at the templates axis (small independent ice-cream / gelato shops with recipe-yield discipline per named flavour + supplier continuity on dairy + named inclusion suppliers + seasonal-staffing cadence with named scoopers + named makers + daily quality cadence on every batch, and independent tour operators with named-guide continuity + small-group experience design with named max group size + named accessibility posture + same-day named-incident reporting + weather-contingency hygiene with named decision tree + customer-comm template) bringing the templates cluster to sixty-seven named verticals + opens two new at-a-glance affordances on the /templates index hero (per-category coverage chip cluster between the hero and the rev-196 Recently-added strip + per-card stats on every Recently-added card showing memory-entry + signal-entry counts + category badge) so first-time visitors evaluating Loop Desk for a specific industry get one-glance category coverage + per-card depth without scrolling the full grid. Pure additive on top of rev-19 ONBOARDING_TEMPLATES + rev-190 TEMPLATE_CATEGORY_BY_KEY (no schema cost, no migration). The OpenAPI 3.1 spec count copy bumps 65 → 67 across the rev-172 listing endpoint description 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 105th unbroken rev with rev 197. - Two more onboarding templates — small independent ice-cream / gelato shops + independent tour operators: Closes two more named radar candidates at two more underserved owner-led retail + experiential entertainment segments where named-flavour recipe-yield discipline + named-dairy continuity (ice-cream/gelato) and named-guide continuity + small-group experience design (tour operators) are the load-bearing differentiators against generic AI tools. Small independent ice-cream / gelato shops (4 high-importance memory entries: recipe-yield discipline per named flavour with target yield + named-baseline waste + named-batch maker logged, supplier continuity with primary dairy + monthly milk-fat / somatic-cell-count / delivery-cadence checks + named-secondary qualified, seasonal-staffing cadence with named scoopers + named makers from May 1 + Apr 15 hiring + onboarding window close + 7-day mid-season replacement, daily quality cadence with named-maker tasting log on texture + named-flavour-balance + cabinet temperature). Independent tour operators (4 high-importance memory entries: named-guide continuity with named primary + named backup + 2-trip paired-shadow on guide changes, small-group experience design with named max group size + named accessibility posture per itinerary, safety-incident reporting with same-day named report + 24h/7d/30d follow-ups on major incidents + minor-incident pattern detection, weather-contingency hygiene with named threshold decision tree + named customer-comm template firing 18h out + named guide as the morning-of decision-maker). Two new OnboardingTemplateKey enum values (ice_cream_gelato, tour_operator) extend the rev-19 enum without migration. The templates cluster is now sixty-seven named verticals deep. Strategic significance: closes the day-1 starvation-point story across two more underserved owner-led segments — ice-cream/gelato is the named retail axis the rev-196 radar wave queued, tour operators is the named experiential entertainment axis the same radar surfaced. Both map cleanly onto Loop Desk's approval-first vocabulary. - Per-category coverage chip cluster on /templates index hero — closes the in-hero category-axis gap: Until rev 197 the only category-axis surface on the /templates index was the rev-190 chip filter directly above the grid, which only became visible after the operator scrolled past the rev-196 Recently-added strip. Visitors evaluating Loop Desk for a specific industry from a per-vertical search snippet had no one-glance read of 'where is Loop Desk's template coverage concentrated?' before they scrolled. Rev 197 closes that gap with a hero-level chip cluster directly under the rev-196 hero copy showing every industry category with a per-category count + a deep-link to the rev-191 per-category HTML archive page. Pure derived state from the rev-190 TEMPLATE_CATEGORY_BY_KEY map — no schema cost, no migration. Empty categories are silently filtered. Each chip carries a tooltip naming the category description so the operator's eye reads the chip's intent without parsing the per-archive landing page. Strategic significance: closes the at-a-glance category-axis gap at the load-bearing /templates entry surface. Procurement reviewers searching 'AI for healthcare practices' from a Google snippet now have a one-tap path into the matching subset (currently 12 healthcare verticals) instead of scrolling past the Recently-added strip + scanning the in-grid filter chips. Pairs with the rev-191 per-category HTML archive surface as the destination + the rev-190 in-grid filter chips as the in-grid narrowing surface. - Per-card stats + category badge on every Recently-added strip card — closes depth-axis gap on rev-196: The rev-196 Recently-added strip showed each recent vertical's name + keyword hint + read-the-template CTA but skipped the per-card depth-axis context (memory-entry count + signal-entry count + category placement) the rev-19 main grid surfaces inline on every card. Visitors scanning the strip had no read of 'how much depth does this template carry?' before clicking through. Rev 197 closes that gap. Each Recently-added card now also surfaces (a) a small category badge under the name showing the industry placement (e.g. 'Hospitality & food' for the rev-197 tour operator template), (b) a stats line below the keyword hint showing memory-entry + signal-entry counts. Pure derived state from the rev-19 ONBOARDING_TEMPLATES array (no schema cost). Strategic significance: closes the depth-axis gap on the rev-196 strip in the same vocabulary the rev-19 main grid uses (memory + signal counts) so visitors can pattern-match across both surfaces without context-switching. Pairs naturally with the rev-197 per-category coverage chip cluster — the chip cluster answers 'where is the coverage?' at the category axis, the per-card stats answer 'how deep is each new vertical?' at the per-template axis. - OpenAPI count bump 65 → 67 + radar copy refresh + 12 new SEO keywords + cumulative visual polish: The rev-172 GET /api/v1/onboarding-templates listing endpoint description bumps 65 → 67 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 105th unbroken rev with rev 197. The rev-191 template-filter category-count fallback also bumps 65 → 67 so the chip filter shows the correct cardinality even when the workspace template pool is loaded asynchronously. The /templates 'Don't see your vertical?' radar copy refreshes — independent ski / snowboard rental shops, small independent yoga studios, small independent jewellers, and independent toy / hobby shops are now the next wave on the queue. Twelve new SEO keywords cover the ice-cream/gelato + tour-operator axes (AI for ice-cream shops, AI for gelato shops, AI for independent ice-cream operators, AI for recipe-yield discipline, AI for seasonal-staffing cadence, AI for daily quality cadence, AI for tour operators, AI for independent tour operators, AI for small-group experience design, AI for named-guide continuity, AI for safety-incident reporting, AI for weather-contingency hygiene). Plus cumulative visual polish: new `.ld-templates-cats*` CSS uses the brand-color teal palette + soft gradient + per-chip hover lift + focus-visible accessibility ring + print-stylesheet hide so the rev-194 procurement-takeaway PDF stays clean; the `.ld-templates-recent-stats` + `.ld-templates-recent-cat` chips wear the same brand-color treatment so all three rev-196/197 surfaces (strip card, category chip, in-grid card) read as siblings in one consistent visual vocabulary. ### rev 196 (2026-05-09) — Closes two more named radar candidates at the templates axis (small independent fabric / quilting shops with supplier continuity + 60-day-ahead class programming + named-clientele continuity on the top 10% of customers + 12-month sell-through inventory floor, and independent paint-and-sip studios with 30-day class programming cadence + BYOB / liquor-licensing posture review + named primary + backup instructor continuity + 14-day private-event coordinator confirmation) bringing the templates cluster to sixty-five named verticals + opens a 'Recently added' featured strip at the top of /templates so first-time visitors see the most-recently shipped verticals before scrolling the full grid (pure derived state from the rev-176 TEMPLATE_LAUNCH map — no schema cost). The OpenAPI 3.1 spec count copy bumps 63 → 65 across the rev-172 listing endpoint description 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 104th unbroken rev with rev 196. - Two more onboarding templates — small independent fabric / quilting shops + independent paint-and-sip studios: Closes two more named radar candidates at two more underserved owner-led retail + experiential entertainment segments where supplier continuity + named-clientele continuity (fabric/quilting) and BYOB / liquor-licensing posture + named-instructor continuity (paint-and-sip) are the load-bearing differentiators against generic AI tools. Small independent fabric / quilting shops (4 high-importance memory entries: supplier continuity with primary mill + named secondary on every load-bearing line, quarterly class programming published 60 days ahead with named instructor + pattern + skill level, named-clientele continuity with project + preference profile on the top 10% of customers, 12-month sell-through inventory floor with markdown decision within 14 days of breach + 1 sample stalled-project signal). Independent paint-and-sip studios (4 high-importance memory entries: 30-day class programming cadence with skill level + pour pairing, BYOB / liquor licensing posture documented + reviewed quarterly, named-instructor continuity with primary + backup for every weekly slot, 14-day event-booking confirmation with named coordinator + final headcount + BYOB / catering arrangements + 1 sample 14-day window birthday event coordinator signal). Two new OnboardingTemplateKey enum values (fabric_quilting, paint_and_sip) extend the rev-19 enum without migration. The templates cluster is now sixty-five named verticals deep. Strategic significance: closes the day-1 starvation-point story across two more underserved owner-led segments — fabric/quilting is the named retail axis the rev-194/195 radar wave kept queuing, paint-and-sip is the named experiential entertainment axis the same radar surfaced. Both map cleanly onto Loop Desk's approval-first vocabulary. - 'Recently added' featured strip on /templates index — visible-velocity affordance for first-time visitors: Until rev 196 the rev-176 60-day 'New' pill on every card was the only signal of recency on the /templates index — visitors had to scan all 65 cards to find which shipped most recently. Rev 196 closes that gap with a 'Recently added' featured strip directly under the hero copy showing the four most-recently launched templates with rev label + launch date + name + keyword hint + read-the-template CTA. Each card links straight to the per-template detail page. Pure derived state from the rev-176 TEMPLATE_LAUNCH map — no schema cost, no migration, deterministic order (descending by launch date, enum order as tiebreak so two templates launched in the same rev render in declaration order). Pairs with the rev-176 sitemap freshness boost (priority 0.7 + lastModified at launch date for templates within 90 days) so the recency signal flows uniformly across human + crawler axes — the strip is the visible-velocity affordance for human visitors, the sitemap freshness boost is the same affordance for SEO crawlers + AI tooling discovery systems. Strategic significance: cumulative micro-polish (every rev 22+ has carried at least one) — and rev 196's polish is load-bearing because the templates cluster has accumulated 65 verticals and first-time visitors evaluating Loop Desk for a specific industry need a faster-than-grid-scroll path to 'what's new on the templates surface'. - OpenAPI count bump 63 → 65 + radar copy refresh + 11 new SEO keywords: The rev-172 GET /api/v1/onboarding-templates listing endpoint description bumps 63 → 65 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 104th unbroken rev with rev 196. The rev-191 template-filter category-count fallback also bumps 63 → 65 so the chip filter shows the correct cardinality even when the workspace template pool is loaded asynchronously. The /templates 'Don't see your vertical?' radar copy refreshes — small ice-cream / gelato shops, small tour operators, ski / snowboard rental shops, and small yoga studios are now the next wave on the queue. Eleven new SEO keywords cover the fabric / quilting + paint-and-sip axes (AI for fabric shops, AI for quilting shops, AI for class-programming discipline, AI for named-clientele continuity, AI for inventory-turn discipline, AI for paint-and-sip studios, AI for BYOB licensing posture, AI for event-booking hygiene, AI for named-instructor continuity in paint-and-sip). - Cumulative visual polish — featured strip wears the brand-color teal palette consistent with rev-22+ design language: New .ld-templates-recent CSS uses a soft brand-color teal gradient background + 1px brand-color border so the strip reads as a sibling of the rev-22+ brand-color treatment across every public marketing surface. Per-card hover lift (1px translateY + soft brand-color box-shadow) matches the rev-193 per-template card hover treatment so the strip cards feel tactile rather than static. Focus-visible outline ring matches the rev-38 dashboard accessibility pattern so keyboard-only operators land cleanly. Rev cluster now reaches its 175th rev of cumulative one-targeted-polish-per-rev (every rev 22+ has carried at least one) and the rev-196 polish is the visible-velocity affordance the rev-176 TEMPLATE_LAUNCH primitive was designed to support — the freshness map ships its second visible surface (the rev-176 60-day pill on every card was the first; the rev-196 strip is the second). ### rev 195 (2026-05-09) — 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 bug: Until 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 / taprooms: Closes 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 asymmetry: Until 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 entries: Rev 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). ### rev 194 (2026-05-09) — Closes the named rev-193 next-sprint candidate (per-category keyword filter on the rev-191 archive pages) at the human-readable axis so visitors landing on a category page can narrow the inventory by keyword without bouncing back to /templates + opens the sixth read shape on the templates v1 cluster (aggregate statistics) at GET /api/v1/onboarding-templates/stats so MCP hosts and AI tooling roundup newsletters rendering 'Loop Desk has N templates across M categories with K memory entries' get the answer in one bearer-less GET instead of fetching the full rev-172 listing and walking every template + closes two more rev-193-named radar candidates at the templates axis (independent CrossFit / functional fitness gyms with coach-of-record continuity + class-format hygiene + injury-incident reporting + 14-day silent-regular retention discipline, and independent escape-room operators with room-rotation cadence + incident-response hygiene + staff-coverage discipline + prop & puzzle health) bringing the templates cluster to sixty-one named verticals + extending the rev-78 OpenAPI typed-coverage cadence to its 102nd unbroken rev. Plus a procurement-friendly print stylesheet on /templates and /templates/by-category mirroring the rev-92 share-page + rev-104 /blog/[slug] print primitives at the templates axis so reviewers downloading a per-vertical or per-category surface as a PDF get a clean single-document takeaway without the marketing chrome bleeding ink. - Per-category keyword filter on /templates/by-category/{category} — closes the named rev-193 next-sprint candidate: New CategoryKeywordFilter client component mounts above the per-category card grid and filters the visible cards by keyword (case-insensitive substring match across rendered card text — name, description, keyword hint chip). Activates only when 3+ templates exist in the category so the smallest categories (Finance & insurance, Creative & media) don't see filter chrome. Mirrors the rev-189 /templates filter at the per-category axis but simpler: no category chip row needed since the URL fixes the category. The `/` keyboard shortcut focuses the filter input mirroring the rev-189 + rev-103 + rev-109 vocabulary across every public marketing search surface. Pure DOM-mutation client-side — SSR'd HTML never changes so crawlers + JSON-LD CollectionPage markup + rev-193 explicit OG image references still see every card unconditionally. Strategic significance: closes the named rev-193 next-sprint candidate at the human-readable axis. The rev-193 v1 keyword search shipped at the protocol-bound side; rev 194 closes the symmetry — visitors landing on /templates/by-category/healthcare_wellness from a search snippet now narrow to 'named-therapist' without bouncing back to /templates and applying both filters. - GET /api/v1/onboarding-templates/stats — sixth read shape on the templates v1 cluster: Aggregate statistics across the templates cluster — totalTemplates + totalCategories + totalMemoryEntries + totalSignals + averageMemoryEntriesPerTemplate + averageMemoryImportance + per-kind / per-priority breakdowns + perCategory[] (templateCount, memoryEntries, signalEntries, averageMemoryEntriesPerTemplate per industry bucket) + launchTimeline (first / latest launch dates + rev). MCP hosts and AI tooling roundup newsletters rendering 'Loop Desk has N templates across M categories with K memory entries' get the answer in one bearer-less GET instead of fetching the rev-172 full listing and walking every template. Closes the sixth read shape 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 + stats rev 194). Mirrors the rev-178 /changelog/cadence aggregate-stats pattern at the templates axis on the dimension axis (cadence aggregates by time window; templates aggregate across the corpus). Cache-control public, max-age=300, s-maxage=1800. Strategic significance: the templates v1 cluster reaches its sixth read shape — the upcoming MCP server's templates-axis tooling has nothing left to design across all six axes including aggregate-stats. - Two more onboarding templates — independent CrossFit / functional fitness gyms + independent escape-room operators: Closes two more rev-193-named radar candidates at two more underserved owner-led service segments. CrossFit / functional fitness gyms (4 high-importance memory entries: coach-of-record continuity per programming block (primary + backup logged so a coach holiday doesn't break the programming arc), class-format hygiene with skill / strength / conditioning split + scaling levels published before class, injury-incident reporting with same-day report + 3/7/14-day check-ins, retention warning on 14-day attendance gap by 3+/week regulars triggering same-week coach text outreach + 1 sample silent-attendance-gap signal). Independent escape-room operators (4 high-importance memory entries: room-rotation cadence with every room refreshing a puzzle or theme element every 18 months minimum, incident-response hygiene with same-shift escalation + 24-hour follow-up on safety incidents, staff-coverage discipline with primary + named on-call backup GM per shift, daily prop test + weekly maintenance log + 1 sample stalled-room signal naming the canonical 24-month-old room with declining repeat-customer share-of-bookings). Two new `OnboardingTemplateKey` enum values (`crossfit_gym`, `escape_room`) extend the rev-19 enum without migration. The templates cluster is now sixty-one named verticals deep. The new templates use simpler, less-named-prefix-heavy language than the rev-185+ templates so they read as procurement-friendly evidence rather than AI-degraded text. Strategic significance: closes two more underserved owner-led segments where retention discipline (the load-bearing primitive in functional fitness) and prop / experience integrity (the load-bearing primitive in escape rooms) are the differentiators against generic AI tools. - Print-friendly stylesheet on /templates + /templates/by-category — procurement takeaway PDF: New `@media print` block in `globals.css` hides every operator-only or interactive surface (top nav, filter chip rows, search inputs, scroll-to-top FAB, bottom CTA button cluster, 'Browse other categories' cross-nav grid, prev/next nav, share chips) so the print reads as the template content alone. Title + lede + per-template card body get print typography; cards force `page-break-inside: avoid` so each one stays intact across page breaks. External links print their full URL inline via `a[href^='http']::after` so the offline reader can trace every reference without scanning the screen version. Mirrors the rev-92 share-page print + rev-93 work-log print + rev-94 timeline print + rev-104 /blog/[slug] print + rev-125 memory CSV procurement-evidence patterns at the templates axis on the public marketing surface. Procurement reviewers + B2B buyers downloading a per-vertical or per-category templates surface as a PDF for SOC 2 / ISO 42001 evidence packages now get a clean single-document takeaway. 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 194 by-category archive). The full procurement-evidence print story is now end-to-end across every public read shape. ### rev 193 (2026-05-09) — 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 candidate: Closes 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 (`/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 cluster: Keyword 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 grocers: Closes 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 rev: The 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. ### rev 192 (2026-05-09) — 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 schools: Closes 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 taxonomy: Mirrors 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 rev: The 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. Full changelog: https://loopdesk.space/changelog Changelog RSS feed: https://loopdesk.space/changelog/rss.xml Programmatic changelog API: https://loopdesk.space/api/v1/changelog ## Brand voice — blog The Loop Desk blog has 30 recent posts across 6 categories covering governance-first AI, founder operations, AI procurement, and the always-on workspace pattern. ### Approval & Governance (9 posts) Human-in-the-loop, approval workflows, and the case for governance-first AI. ### Memory & Context (6 posts) Durable memory, business context, and why one-shot prompts are not enough. ### Signal & Workflow (14 posts) Capturing the right signals, the loop model, and turning noise into next actions. ### Founder Operations (6 posts) Owner-led teams, day-to-day operations, and the realities of running small. ### Market & Customer (5 posts) Competitor moves, market shifts, and what customer feedback is really telling you. ### AI Strategy & Practice (36 posts) How to delegate to AI, what good output looks like, and where the wins are. ### Recent posts - **Navigating the New Security Landscape in CI/CD** (2026-06-08) — https://loopdesk.space/blog/navigating-new-security-landscape-cicd GitHub's enhanced security features may complicate your CI/CD processes. Here's how to adapt your strategies effectively. - **GitHub's New Tools: Efficiency Gains or Hidden Complexities?** (2026-06-07) — https://loopdesk.space/blog/github-new-tools-efficiency-complexities GitHub's latest optimization tools promise to enhance CI/CD workflows but may introduce complexities that disrupt deployment integrity. - **GitHub's New Features: Simplifying CI/CD or Adding Complexity?** (2026-06-06) — https://loopdesk.space/blog/github-new-features-cicd-complexity GitHub's latest features promise to streamline workflows, but they may introduce complexities that could hinder CI/CD processes if not managed well. - **How Clean Tech Funding Can Transform Your CI/CD Strategy** (2026-06-05) — https://loopdesk.space/blog/clean-tech-funding-cicd-strategy Explore how recent clean tech funding can enhance CI/CD practices and align your development processes with sustainability goals. - **Funding Sustainability: A Catalyst for CI/CD Innovation** (2026-06-04) — https://loopdesk.space/blog/funding-sustainability-cicd-innovation Recent funding for clean tech offers tech leaders a chance to align CI/CD strategies with sustainability goals, enhancing reputation and competitiveness. - **Exploring the CI/CD Impacts of Apple’s WWDC 2026 Announcements** (2026-06-03) — https://loopdesk.space/blog/ci-cd-impacts-wwdc-2026 Apple's WWDC 2026 could reshape CI/CD workflows with AI and automation innovations. Here's what you need to know. - **Exploring Microsoft Loop's Impact on CI/CD Workflows** (2026-06-02) — https://loopdesk.space/blog/microsoft-loop-impact-cicd-workflows Microsoft Loop promises enhanced collaboration, but its integration into CI/CD workflows may challenge deployment integrity and team alignment. - **What Apple’s June 2026 Event Means for Your CI/CD Pipelines** (2026-06-01) — https://loopdesk.space/blog/apple-june-2026-ci-cd Prepare your CI/CD workflows for Apple's upcoming AI features and ensure your organization leverages these innovations effectively. - **Transforming Compliance into Competitive Advantage** (2026-05-31) — https://loopdesk.space/blog/compliance-competitive-advantage Explore how new AI regulations can enhance CI/CD practices and drive innovation rather than stifle it. - **Redefining Developer Collaboration with OpenAI's API** (2026-05-31) — https://loopdesk.space/blog/redefining-developer-collaboration-openai-api OpenAI's new API features can transform CI/CD workflows by enhancing collaboration between AI and developers for a more efficient deployment process. - **Preparing Your CI/CD for the Ethical AI Framework** (2026-05-30) — https://loopdesk.space/blog/ci-cd-ethical-ai-framework Explore the challenges the new ethical AI framework poses for CI/CD processes and how to adapt your practices for compliance. - **Cloud Security Initiative: Rethinking Your CI/CD Strategy** (2026-05-29) — https://loopdesk.space/blog/cloud-security-initiative-cicd-strategy The new Cloud Security Initiative urges teams to enhance CI/CD practices. Here’s how to turn compliance into a competitive advantage. - **GitHub's New Security Features: Risks for CI/CD Verification** (2026-05-28) — https://loopdesk.space/blog/github-security-features-cicd-verification Explore how GitHub's enhanced security measures may complicate your CI/CD deployment verification processes and what actions to take. - **Adapting Your CI/CD Workflows to Meet New EU AI Compliance Standards** (2026-05-27) — https://loopdesk.space/blog/adapting-ci-cd-eu-ai-compliance New EU AI compliance regulations challenge CI/CD workflows. Learn how to balance compliance with innovation without stifling creativity. - **Maximizing Efficiency with GitHub's New Actions Framework** (2026-05-26) — https://loopdesk.space/blog/github-actions-framework-efficiency Explore how to integrate GitHub's enhanced Actions framework into your CI/CD workflows for faster, error-free deployments. Full blog: https://loopdesk.space/blog Blog RSS feed: https://loopdesk.space/blog/rss.xml Programmatic blog API: https://loopdesk.space/api/v1/blog ## Procurement evidence Loop Desk is architected for SOC 2 / ISO 42001 procurement review. Every workspace surfaces: - **Approval boundary**: every artifact queues for human approval before exit. No autonomous publishing on any tier. - **Audit trail**: workspace activity log records every action with operator attribution + timestamp. Exportable as CSV. - **Cost transparency**: per-cycle token spend, daily cap with hard auto-pause, 7-day baseline + spike detection, projected end-of-day spend. - **Input transparency**: every artifact carries the signals + memory entries that shaped it (rev 41 / rev 44). Procurement reviewers can audit AI inputs end-to-end. - **Revision lineage**: every regenerate establishes a parent-child chain so superseded outputs are traceable. Surfaced inline + on public share pages. - **Vendor inventory**: every integration channel + auth model documented at /integrations and /api/v1/integrations. - **Quality controls**: per-source health diagnostics, auto-pause on consecutive failures, keyword filters, scheduled pause with auto-resume. - **Multi-operator governance**: role-based permissions, task assignment, comment mentions, workspace member invites with acceptance notifications. Architecture docs: https://loopdesk.space/docs#governance ## Programmatic API (v1) Loop Desk exposes a Bearer-token-authenticated JSON API at /api/v1 with 100+ endpoints. Every dashboard mutation has a v1 equivalent. The full surface is described at: - Self-describing endpoint index: https://loopdesk.space/api/v1 - Typed OpenAPI 3.1 spec: https://loopdesk.space/api/v1/openapi.json - Public marketing surface (no auth required): /api/v1/blog, /api/v1/changelog, /api/v1/roadmap-items, /api/v1/roadmap-votes, /api/v1/onboarding-templates, /api/v1/integrations, /api/v1/badge.svg MCP server (wrapping /api/v1 as a Model Context Protocol server for Claude Desktop, Cursor, and any MCP-compatible host) is coming Q3 2026. The v1 surface is intentionally complete enough that the MCP work is exclusively protocol translation. ## Key links - Product: https://loopdesk.space - Pricing: https://loopdesk.space/pricing - Docs: https://loopdesk.space/docs - Blog: https://loopdesk.space/blog - Changelog: https://loopdesk.space/changelog - Roadmap: https://loopdesk.space/roadmap - Integrations: https://loopdesk.space/integrations - Templates: https://loopdesk.space/templates - API index: https://loopdesk.space/api/v1 - OpenAPI spec: https://loopdesk.space/api/v1/openapi.json - Sitemap: https://loopdesk.space/sitemap.xml - AI summary (this file): https://loopdesk.space/llms-full.txt - AI summary (short): https://loopdesk.space/llms.txt