Skip to content

Features

Canonical system design intent for the Metrognome codebase. Each feature is a folder containing the spec plus implementation plans, ralph prompts, research notes, and post-mortems. See ADR-016 for the source-of-truth chain (business > spec > code) and the spec/code coexistence rule. Spec/plan/prompt conventions: aaron-hogan/ralph.

When a spec disagrees with code, fix one of them — they never coexist contradicted. Authority chain: business > spec > code.

Layout per feature

features/<name>/
  spec.md          canonical design intent
  plan.md          implementation plan with **Status:** + checkboxes (ralph)
  prompt.md        ralph protocol for this divergence
  progress.txt     cross-iteration learnings (auto-grown)
  research.md      background, when needed
  runbook.md       ops procedure when applicable (e.g., burst-runbook for incidents)
  retro.md         post-mortem when applicable
  deploy-checklist.md   one-time deploy artifacts

Strict folder-always — every feature is a folder, even single-file ones.

Index

Feature Code Purpose Status
stripe-webhook-ingress apps/api/src/app/api/stripe/webhooks/route.ts, apps/api/src/services/shared/WebhookEventService.ts Ingress/transport: signature verification, durable persistence, idempotency, claim/lease/retry, reconciliation initial (done) · hardening (done)
posthog apps/web/src/lib/tracking.ts, apps/api/src/lib/analytics/, apps/web/src/app/providers.tsx Replace Umami with PostHog Cloud — funnels, session replay, identification in-progress
privacy-compliance apps/web/src/app/(marketing)/privacy/page.tsx, apps/web/src/lib/tracking.ts, apps/api/src/lib/meta/, apps/web/src/app/layout.tsx US-only privacy floor: accurate policy, opt-out propagated to Pixel + CAPI + Google Ads, GPC honoring, DSAR intake in-progress
bookkeeping (data project) Per-location LLC bookkeeping with penny-perfect Stripe reconciliation. Multi-layer pipeline. research / planning
payment-record-architecture apps/api/src/services/**/*Payment*.ts ADR-008 unified Payment model. Eliminates Stripe metadata dependencies, creates records at checkout not in webhooks. shipped (see deploy-checklist.md)
permission-redesign apps/api/src/utils/auth/role-check.ts ADR-006 permission system redesign — scoped role checks planning
sms (not started) SMS via Twilio for member notifications research
stripe-data-pipeline (foundational for bookkeeping) ADR-007 Stripe data sync pipeline planning
studio-reference apps/web/src/app/(staff)/studios/ Staff studio reference page planning
staff-ui-redesign apps/web/src/app/(app)/staff/, apps/web/src/components/organisms/forms/ Replace mixed edit/display detail pages across all staff entities with read-only views + Vaul drawer sheets; canonical Activity (audit log) section, entity-bound row actions, single Stripe URL helper, User MG ID added spec · design
unified-cherry-city-lp apps/web/src/app/(landing)/lp/cherry-city/, apps/web/src/lib/tracking.ts, apps/api/src/lib/meta/ Replace dual /cherry-city/{tour,hourly} LPs with a unified /lp/cherry-city; pain-led hero, monthly/hourly fork, new LandingFunnelChoice Pixel + CAPI event for unified Meta optimization spec · done
cherry-city-ppc-prospecting (Meta Ads Manager — no code) Phase 1 Meta paid prospecting campaign driving the unified LP — Traffic objective, LPV optimization, awareness + retargeting-pool building. Companion to unified-cherry-city-lp. spec
market-landing-pages apps/web/src/app/(landing)/lp/[marketSlug]/, apps/web/src/components/organisms/marketing/, apps/api/prisma/schema.prisma (LocationGroup) Tour-driven /lp/[marketSlug] template (Salem first, Portland for free). Replaces /lp/cherry-city. Hero tour-form → direct TourSchedulerModal hand-off (no auth), locations-near-you (IP geo), 3-fork to /monthly /hourly /groups. spec · done
ai-workspace (Claude Cowork plugin library — separate mg-plugins repo, no code in this monorepo) Private library of Claude Cowork plugins shaped by the Metrognome org model — Platform services + Pillars + Universal layer. Plugins encode procedure (SOPs); Drive remains the human artifact surface. spec
make-music-salem-comp apps/web/src/app/(landing)/lp/make-music-salem/, apps/api/src/services/scheduling/mms-comp.ts, apps/api/src/app/api/mms-comp/ Time-bounded free hourly rehearsal at MG10 Cherry City for Make Music Salem 2026 artists. Manual STUDIO_MONTHLY→HOURLY flip, dedicated LP + modal booker, paymentMethod: 'FREE' with hardcoded resource-ID/window allowlist. One-off. spec · in-progress