Ships per-tier default daily cost caps — the flat-fee promise turned on by default — and closes the last two named rev-201 radar templates (independent specialty fishing / outdoor outfitters + independent stationery / pen shops, cluster reaches 77 verticals), then fixes the two gaps the cost-cap seeding + templates work left open. Connecting thread: rev 204 makes the rev-20 daily cost cap load-bearing on the strongest positioning axis Loop Desk has — 'you literally cannot overspend' — by seeding a plan-tier default at workspace creation instead of leaving it null (no cap). (a) Every workspace now seeds a plan-tier default daily cost cap via defaultCostCapCentsForTier (free $0.50 / pro $5 / team $20) so a brand-new desk has a hard spend ceiling from cycle 1 even if the operator never opens the integrations panel — fully overridable + removable via the rev-20 UI, and the integrations panel gains a 'Use plan default' one-tap re-apply affordance. The PLAN_LIMITS.{tier}.defaultDailyCostCapUsdCents figures are the single source of truth: the pricing module (src/lib/pricing-plans.ts) projects the same dollar figures via defaultDailyCostCapUsd so the /pricing caps block, the landing pricing block, and the /api/v1/pricing endpoint never drift from the seeded cap. (b) Two more onboarding templates close the rev-201 named radar wave: independent specialty fishing / outdoor outfitters (named-license + named-permit currency on every guided trip + charter, named-guide / named-charter continuity with a named-backup on every multi-day booking, seasonal inventory turn with the named-buyer ordering window per season, safety-incident hygiene with a same-day named-report + named-equipment quarantine on the water) and independent stationery / pen shops (named-supplier continuity on every allocation-limited pen + ink + paper line, collectibles authentication on every vintage + limited-edition intake, named-nib-service continuity on every service intake, gifting-peak inventory cadence). Two new OnboardingTemplateKey enum values (fishing_outfitter in hospitality-food, stationery_pen_shop in retail-ecommerce). The templates cluster is now 77 named verticals deep. (c) FIX — the rev-204 cost-cap seeding silently broke the rev-165 activation checklist 'Set a guardrail' step: because every workspace now ships with a cost cap set, the completion check (which keyed off 'a cost cap is set') auto-completed on cycle 1 and the nudge never surfaced. Rev 204 rekeys it off a cap that has been TUNED away from the seeded plan default (or Slack quiet hours / non-UTC timezone) so the step still nudges active engagement, and reframes the copy to 'Review your guardrails' — acknowledging the desk is already protected and inviting the operator to make the cap their own. (d) FIX — the rev-204 templates work added the two new verticals to the enum, TEMPLATE_LAUNCH, TEMPLATE_CATEGORY_BY_KEY, and the template data but forgot the TEMPLATE_KEYWORD_HINT entries, so both new verticals rendered without the per-vertical tagline chip every other vertical has had since rev 195; rev 204 adds both. (e) DESIGN — the today-panel Spend stat now surfaces the seeded cap as a reassuring brand-teal '🛡 $X/day cap · protected' chip at zero spend (the flat-fee promise visible from cycle 1) instead of the clinical '0% of $X cap', reverting to the percent-of-cap fact once spend starts. Plus the landing pricing sub-copy names the default-on hard cap as the 'No surprises' proof point ('every plan ships with a hard daily cost cap turned on by default, so your desk literally cannot overspend — even under a flat fee'). PRD + ROADMAP + CLAUDE.md updated (rev 204)
Per-tier default daily cost cap — the flat-fee guardrail, on by default from cycle 1The rev-20 daily cost cap was operator-configured per workspace and started null (no cap) — the strongest flat-fee positioning primitive Loop Desk has was off by default, so a fresh desk had no hard spend ceiling until the operator explicitly opened the integrations panel and set one. Rev 204 closes that: new PLAN_LIMITS.{tier}.defaultDailyCostCapUsdCents (free 50c / pro 500c / team 2000c) + a defaultCostCapCentsForTier(tier) helper seed a plan-tier default at workspace creation (both the Credentials-register and Google-OAuth ensureWorkspaceForUser paths). A brand-new desk literally cannot overspend on day one even if the operator never touches the cost-cap UI — the strongest possible flat-fee positioning signal against per-cycle-credits (Notion Custom Agents) and outcome-based (HubSpot Breeze) competitors. Fully operator-overridable + removable via the rev-20 integrations panel, which gains a 'Use plan default' one-tap re-apply affordance + a hint line naming the operator's plan-tier default. Existing workspaces are untouched — the seed fires only at creation, so a long-running desk that explicitly removed its cap stays uncapped. The pricing module (src/lib/pricing-plans.ts) projects the same figures via defaultDailyCostCapUsd + the caps.costCap display string so the /pricing caps block, the landing pricing block, and the rev-203 /api/v1/pricing endpoint never drift from the seeded cap — the concrete answer to the rev-202/203 'Higher daily cost cap' (Pro) / 'Highest daily cost cap' (Team) claim. The OpenAPI 3.1 spec types the defaultDailyCostCapUsd field on the /pricing response. Strategic significance: closes the pricing ↔ cost-guardrail loop the rev-202 /pricing page hinted at, and makes the flat-fee guarantee a structural default rather than an operator opt-in.
Two more onboarding templates — independent specialty fishing / outdoor outfitters + independent stationery / pen shops (cluster reaches 77 verticals)Closes the last two named rev-201 radar candidates. Independent specialty fishing / outdoor outfitters (owner-led specialty fishing shops + fly-fishing outfitters + outdoor guide services — 4 high-importance memory entries: named-license + named-permit currency on every guided trip + charter with a sub-policy on named-federal / named-tribal water, named-guide / named-charter continuity with a named-backup + named-warm-handoff on every confirmed multi-day booking, seasonal inventory turn with the named-buyer ordering window per season + an end-of-season liquidation markdown cadence, safety-incident hygiene with a same-day named-report + named-equipment quarantine on the water + a 3-in-90-days pattern threshold on any named-equipment line + 1 sample mid-season named-guide license-lapse signal). Independent stationery / pen shops (owner-led fine-stationery shops + fountain-pen retailers + writing-instrument specialists — 4 high-importance memory entries: named-supplier continuity on every allocation-limited pen + ink + paper line with a named-customer-waitlist on allocation-limited flagship releases, collectibles authentication on every vintage + limited-edition intake with a named-confidence threshold, named-nib-service continuity with a named-nibmeister-of-record + named-turnaround + condition photograph at intake, gifting-peak inventory cadence with the named-buyer ordering window per gifting peak + reserved named-engraving capacity + 1 sample pre-peak allocation-vs-waitlist signal). Two new OnboardingTemplateKey enum values (fishing_outfitter in hospitality-food, stationery_pen_shop in retail-ecommerce) extend the rev-19 enum without migration. The templates cluster is now 77 named verticals deep. The rev-172 listing endpoint count copy + OpenAPI 3.1 spec both read seventy-seven in lockstep. Strategic significance: closes the rev-201 named radar wave at two more underserved owner-led segments where named-relationship discipline (named-guides + named-charters on the outfitter side, allocation-limited named-suppliers + named-nibmeisters on the pen-shop side) is the load-bearing differentiator against generic chain operators.
FIX — activation 'Set a guardrail' step no longer auto-completes on the seeded default capThe rev-204 cost-cap seeding silently regressed the rev-165 activation checklist. The 'Set a guardrail' step's completion check was Boolean(dailyCostCapUsdCents || slackQuietHoursStart != null || timezone !== 'UTC') — but because rev 204 seeds a cost cap on every workspace at creation, dailyCostCapUsdCents is now always truthy, so the step auto-completed on cycle 1 and the nudge never surfaced for a single operator. That defeats the rev-165 intent: nudge new operators toward reviewing the desk's defensive / operator-respect controls explicitly rather than bumping into them. Rev 204 rekeys the check off a cost cap that DIFFERS from the plan default (defaultCostCapCentsForTier(planTier)) so the step completes only when the operator has actively tuned a guardrail — the tuned cap, Slack quiet hours, or a non-UTC timezone — not the inherited seeded value. The step copy is reframed to 'Review your guardrails' with an honest lede: 'Your desk already ships with a default daily cost cap, so it can't overspend on day one — that's the flat-fee promise, on by default. Make it yours.' Strategic significance: preserves the day-1 trust-signal nudge while acknowledging the rev-204 default. A genuine bug the unshipped cost-cap-seeding code introduced, caught and closed in the same rev it ships.
FIX + DESIGN — missing template keyword hints + flat-fee 'protected' chip on the today panel + landing top-line proof pointThree cleanups closing gaps the rev-204 primitives left open. (1) FIX: the rev-204 templates added fishing_outfitter + stationery_pen_shop to the enum + TEMPLATE_LAUNCH + TEMPLATE_CATEGORY_BY_KEY + the template data but forgot the TEMPLATE_KEYWORD_HINT entries — so both verticals rendered on /templates + /templates/[key] + the per-category archive without the per-vertical 'this is what this industry actually cares about' tagline chip every other vertical has carried since rev 195. Rev 204 adds both hints matching the templates' actual four-pillar seed content. (2) DESIGN: the today-panel Spend stat surfaced a set-but-zero-spend cap as the clinical '0% of $X cap'. Rev 204 makes it a reassuring brand-teal '🛡 $X/day cap · protected' chip at zero spend (with a cursor:help tooltip explaining the hard flat-fee ceiling) — the flat-fee promise made visible from cycle 1 — reverting to the percent-of-cap fact once spend starts. New .ld-today-cap-shield CSS in the rev-22+ design language with a tactile hover lift. (3) MARKETING: the landing pricing sub-copy now names the default-on hard cap as the 'No surprises' headline's concrete proof point — 'every plan ships with a hard daily cost cap turned on by default, so your desk literally cannot overspend — even under a flat fee' — surfacing the rev-204 thesis at the landing top-line where prospects evaluate against per-cycle-credit competitors. Strategic significance: the cumulative rev-by-rev visual-hierarchy discipline (every rev 22+ carries at least one piece of polish) reaches the today-panel Spend stat + landing pricing sub-copy, and the flat-fee differentiator is now visible across the landing page, the /pricing page, and the operator's daily dashboard glance.
Start free — there are no metered credits to run out.