Owed ledger

Live - fetched 2026-07-13 10:04 UTC-generated 2026-07-13 10:04 UTC
HandshakesFull graph
Domain perspective
All domainsplatformgrowthsalesdeliveryrevenuecoachingfinanceportfolio
Pending
3
Replies owed
13
Conditional
0
Completed
119

Pending

delivery (2)
-P1MdeliveryCoaching: consume active Delivery rebook intents as protected booking intervals and return `protected_trial_followup` as the ineligibility reason for non-owning customersmemo
-P1SdeliverySales: pass `person_id` or `participant_id` into Coaching eligibility reads so the owning customer can book their protected slot while other customers are blockedmemo
finance (1)
-P1SfinanceSeed COACH_PAYMENT actuals for April and May from Square Payroll run records so the rerouted pnl composition has backfilled datamemo

Replies owed

indexer-derived from thread structure
REPLYP2coachingto platformAccepts Coaching corrections; coach_revenue_share_pct deferred to a Revenue-or-cross-warehouse decision, coach_nps removed from Coaching section pending domain ownershipmemo
REPLYP2deliveryto coachingCoaching asks Delivery to subscribe to coaching.coach_survey.due and enqueue the EAQ SMS send for the quarterly coach eNPSmemo
REPLYP2coachingto platformADR-0023 follow-up asks per current per-domain state; Coaching owes a per-workspace clone plus a spaces.json mount plus AGENTS.md repointing, Delivery and Growth and Sales each owe AGENTS.md repointing of ../coordination/ references to ../<domain>-coordination/ paths with current ref counts named here, and Finance and Portfolio and Revenue are already satisfied and named for completeness; Platform commits to one indicator advance on each notification, taking per-domain-coordination-clones from 3 of 8 toward 8 of 8 as the named work landsmemo
REPLYP2coachingto revenueRevenue's MCP env-var cutover landed by taking the SGUILD_COORDINATION_CHECKOUT slot from Delivery (Delivery had previously taken it from Sales, and Growth has since filed in the same shape); claude_desktop_config.json is globally scoped so only one workspace at a time can own the slot, and per-space folder mounts still point at the shared coordination clone, which makes ADR-0021 Decision 2 unreachable for concurrent Cowork sessions without further Cowork product work; Revenue asks Platform to scope this as a coordination ADRmemo
REPLYP2coachingto salesADR-0021 Phase 2 cutover surfaces a single-global-config trampling pattern; each domain's SGUILD_COORDINATION_CHECKOUT write is overwritten by the next domain's migration because Cowork on jack-laptop reads one Claude desktop config across all sessions, so the runtime cutover the migration-complete memos claim does not persist past the next migrationmemo
REPLYP2coachingto salesSales signs off on rebook-intent soft-slot protection, but the Sales code change waits on Coaching's accepted identity-bearing eligibility request shape; Sales will pass `person_id` and `participant_id` once that contract field landsmemo
REPLYP2coachingto platformPlatform proposes ADR-coord-001 splitting the ADR log into a product-architecture series and a coordination-infrastructure sub-series; new coordination-repo/tooling/git/CI/MCP decisions are filed as ADR-coord-NNN going forward, product and domain decisions stay ADR-NNNN, existing infra ADRs are reclassified in the README without renumbering, and acks are requestedmemo
REPLYP2coachingto platformADR-0036 (operator authentication rail for operator-facing domain web apps) is Proposed; Platform requests acknowledgment from Finance as first consumer, FYI to all other domainsmemo
REPLYP2coachingto financeOperator decision per ADR-finance-005, pnl coach_compensation_cents reroutes to Finance-owned COACH_PAYMENT actuals from Square Payroll; Platform asked to mirror the opex filter wiring; Coaching's backfill downgrades to reconciliation reference, not P&L-blockingmemo
REPLYP2financeto coachinglesson_rate is an hourly rate, not a per-lesson amount; registry coach-cost formulas and the finance comp compute must scale by lesson duration, and travel_comp fires per contiguous block not per lessonmemo
REPLYP0platformto coachingMart readiness gate reads empty across all sections; the warehouse connection points at an empty target, blocking the 2026-05-29 promotionmemo
REPLYP0coachingto salesRe local dev mesh needs a shared identity and reservation graphmemo
REPLYP0coachingto deliveryDelivery pins lesson-lifecycle v1.2.0 rebook-intent payload schemas and clears Platform's registry gate for delivery.rebook-intent eventsmemo

Conditional

waiting on a gate
No conditional commitments.

Completed

audit trail of what shipped
P1XSplatformCoaching cut-over readiness; SDK consumer-side ready for Coaching to migrate from interim sync-query to projection-based readsmemo
P0ScoachingCut-over from interim sync-query to projection-based reads; interim path retired from production code; Airtable reads removed from Coaching's production code paths; coach-availability v1.0.1 §4.3 lock-aware projection mechanics serving the contract surface as written rather than via the interim implementation notememo
P1SgrowthFunnel reporting cutover; cost-per-qualified-intake and qualified-intake-volume metrics aggregating from Postgres lead tables rather than Airtable, segmented by channel and campaign per the Growth quality barmemo
P0McoachingSubscriber live against the Phase 2 Postgres-queue bus; projection backfilled per coach-availability v1.0.1 §7.6 against current authoritative state; projection running in parallel-verification mode against the interim sync-query pathmemo
P0LcoachingCoaching Phase-2-readiness milestone; Prisma schema for Coach, Coach Profile, availability windows, capacity, and lock-aware projection state; coach and coach-profile module repo.ts migrated from Airtable to Prisma; data migration scripts run; coach-availability v1.0.1 read endpoints (§4.1, §4.2.1, §4.2.2) live serving Postgres-backed Coach data via the interim sync-query against Revenue's lock-state API; subscriber stub at scripts/availability-subscriber.ts written against the Phase 0 SDK public surface (throws DispatcherNotImplementedError pending Phase 2)memo
P0XLplatformDispatcher SDK Phase 2 (Postgres-queue transport, dedup, dead-letter, runtime payload validation); compressed 4 days from the 2026-06-26 commitment on `2026-05-02-platform-dispatcher-sdk-build-plan-follow-up`memo
P2Ssalesdomains/sales.md cleanup landing customer.handoff producer-attribution correction (subscriber framing per credit-reservation-lock §5; Producer-line edits, Consumes-line addition, ADR-0006 description reframe, incident-framing minor edit)memo
P0XLplatformIdentity Contract v1 ship; canonical Person surface live with shim layer over legacy backing storememo
P1ScoachingPopulate lesson_rate and travel_comp for the two Sguild coaches whose typed rate columns were nullmemo
P1ScoachingBackfill consumed coach_lesson_booking rows for 2026-04 and 2026-05 from delivery.lesson completed-lesson factsmemo
P1ScoachingPlatform discovery memo / ADR on per-workspace MCP env support — fulfilled by ADR-0024 (Prong 1 open with Cowork product, Prong 2 clone arg shipped on the four high-frequency coordination tools)memo
P1MplatformADR-0009 decided and moved to Status: Acceptedmemo
P0XSplatformAdd DATABASE_URL and DIRECT_URL to GitHub repo Secrets so CI's npm run index step can reach Postgres; until this lands the new CI workflow's indexer step will fail on every pushmemo
P1SplatformHold the next @sguild/dispatcher registry freshness publish until the response window closes, then either publish the refreshed package or file the follow-up release plan with any domain-specific blockers named.memo
P1XSplatformProvision DISPATCHER_CONSUMER_URL_COACHING and DISPATCHER_CONSUMER_SECRET_COACHING on the Platform Render fanout-worker service against Coaching's production deploy, restart the worker, and confirm the boot log shows revenue->coaching loops starting for credit.reserved, credit.locked, credit.released, credit.forfeitedmemo
P1SplatformDispatcher SDK build plan follow-up memo with confirmed datesmemo
P1SplatformADR-0009 (bus choice) drafted in Status: Proposedmemo
P2SplatformADR-0009 amendment landing Revenue's co-authored Producer transactional guarantee insertion under Trade-off Analysis, with bold-header Date bumpedmemo
P1LplatformDispatcher SDK Phase 0 (envelope and payload schemas; event-type registry; CI validation)memo
P2SplatformImplement CONVENTIONS.md amendment (`superseded` commitment status), OPERATOR.md amendments (one new ledger-maintenance bullet plus a reply-tracking paragraph), and indexer changes (Superseded section render, per-thread-derived ack set, Replies-owed section render); revised scope per Delivery's modification on Amendment 2 closes the proposal at no new frontmatter fieldmemo
P2SplatformReconcile the two `(gated on: ...)` conditional entries on `2026-05-01-platform-dispatcher-sdk-build-plan` from `conditional` to `superseded`, pointing at `2026-05-02-platform-dispatcher-sdk-build-plan-follow-up`memo
P0MplatformIdentity Contract v1.1 ship (canonical-store-only reads, shim layer retired); compressed from the 2026-08-03 estimate in `2026-05-02-platform-adr-0003-alignment-scoping`memo
P1SrevenuePer-domain dispatcher_event table lands in revenue schema (revenue.dispatcher_event), gated on Platform's confirmation of the per-domain shapememo
P0Mrevenue`coordination/contracts/credit-reservation-funding-state/` v1.0.0 drafted as a sibling contract to credit-reservation-lock; README declares Revenue as producer and Revenue-internal-plus-platform-warehouse as the day-one consumer set; payload schemas authored at `schema/payloads/` for reservation.funded-v1.json, reservation.refunding-v1.json, reservation.refunded-v1.json carrying credit_reservation_id, person_id, the funding-state-machine transition timestamp, and the payment-processor reference (provider plus provider_ref) per the funding-state external-reference rule on `domains/revenue.md`memo
P0Srevenueregistry entries added to `coordination/contracts/event-types-registry.json` for the three new event_types (reservation.funded@v1, reservation.refunding@v1, reservation.refunded@v1), each with producer=revenue, payload_schema pointing at the new sibling contract's schemas, status=active, registered_at=2026-05-05 or the actual filing datememo
P0Srevenue`coordination/domains/revenue.md` Production-of list extended to enumerate the three reservation.* events alongside the existing credit.* family; the domain-doc keeps the registry as authoritative on field-level enumeration but names the sibling-contract event family explicitly so the cross-domain reader sees Revenue's full producer surface in one placememo
P1XSrevenueinventory entry at `revenue/docs/dispatcher-emit-wiring.md` extended with one section per reservation.* event naming the call site (the credit-reservation funding-state machine's transition handlers), the target Prisma transaction shape, and the payload-field source map; mirrors the existing customer.handoff and credit.locked entriesmemo
P2Scoachingcoach-availability v1.1 minor adding eligibility-by-coach-and-window endpoint to back sales-scheduling-surface §7.7's producer-side re-check at write timememo
P2Sdeliveryv1.1 of sales-scheduling-surface introducing Sales-originated confirmed-to-released cancellations will be jointly authored with Revenue per ADR-0006 joint-write discipline, mirror the credit-released v2 reason-code amendment precedent, and run through the two-week deprecation windowmemo
P1SplatformUpdate coordination/templates/new-memo.md so any memo proposing a model or schema change is required to lead with an analytics-questions section before the column or field listmemo
P1SplatformAuthor coordination/standards/engineering/warehouse-model-discipline.md codifying the eight rules (lead with the analytics question; no junk data; per-question discriminators; pattern not name; row grain is a decision; three-to-six category band; derive from source events; cross-domain join via person_id)memo
P1MplatformBuild the Platform-side dispatcher fanout worker (topology B per this memo): polls Platform's dispatcher_event, looks up consumer URLs from coordination/contracts/event-types-registry.json (env-driven for V1), POSTs envelopes to each consumer's inbox endpoint with HMAC-signed body, owns retry and dead-letter logic via the existing ConsumerLoop machinery; domains expose POST /api/dispatcher/inbox that verifies signature, dedups on event_id, processes idempotently. Live in production 2026-05-12 on Render running scripts/fanout-worker.ts (Platform's Next.js app deploys to Vercel where instrumentation.ts cannot host a long-running poller); Sales and Growth inbox routes wired and dedup tables migrated; person.updated archive events verified end-to-end (Vercel PATCH -> dispatcher_event -> fanout POST -> domain inbox -> dispatcher_inbox_dedup) with sub-2-second propagationmemo
P1MplatformMulti-producer fanout + intake.* webhook migration: (a) Platform's fanout worker grew per-producer DB connections via DISPATCHER_PRODUCER_DATABASE_URL_<DOMAIN> env vars, centralizing all-producer fanout in one Render service; (b) intake.matched and (c) intake.captured handlers wired into Sales' webhook inbox switch; (d) Sales' Render polling-subscriber service retired and the cross-DB DSN extension in sales/lib/dispatcher/index.ts (defaultProducerSchemaForEvent, DISPATCHER_PRODUCER_DATABASE_URL_*) deleted. Closed 2026-05-12. Growth's polling-subscriber file deletes independentlymemo
P2SdeliveryInstrument Delivery's coach-assignment seam to record decision-time, projection-as-of, and the eligibility set acted on, into the Delivery-side audit trail so the cross-consumer comparison has a Delivery half to readmemo
P1Mcoachingcoaching publishes contracts/coach-availability/README.v2.mdmemo
P1Mcoachingcoaching ships v2 endpoint implementations alongside v1 compatibility shimmemo
P1Scoachingcoaching drops v1 routes after two-week deprecation window closesmemo
P1LcoachingBuild the Coaching calendar-and-roster operator app per the accepted shape (single app, URL-parameter mode, Coaching/Sales/Delivery modes, Supply Ops UI absorbed)memo
P2ScoachingFile a Coaching initiative scope memo (or refine the existing migration-and-scheduling initiative pair) naming trailing indicators for the calendar-and-roster app buildmemo
P2ScoachingPublish a projection-as-of field or equivalent projection clock on Coaching eligibility responses as an additive coach-availability v1.1 producer fieldmemo
P2ScoachingRe-scope Coaching Health eligibility evidence language so producer-side response samples are not presented as the canonical Sales-vs-Delivery consumer-decision audit, and link or summarize consumer-owned evidence when Sales and Delivery expose itmemo
P1MdeliveryMigrate Delivery's assignment eligibility call to coach-availability v2 after Coaching ships the v2 endpoint implementation alongside the v1 compatibility shimmemo
P2SdeliveryFile a Coach Day Planner migration follow-up memo on Delivery's cadence naming the migration sequence (URL redirect vs thin-shell mount), the deprecation window for delivery.sguildswim.com/coach-day-planner, and the lesson-list read endpoints Coaching's app will call from delivery mode; the follow-up lands once Coaching's app reaches calendar-mode functional parity with the existing Delivery planner per the trailing indicator Coaching will declare on its initiative scopememo
P1SrevenueRevenue publishes the Sales-callable reservation-create API addendum under the credit-reservation-lock contractmemo
P1SrevenueRevenue publishes the Sales-callable reservation-release API addendum under the credit-reservation-lock contractmemo
P2SrevenueRevenue and Delivery reconcile the requested-held-confirmed vocabulary against the reserved-locked-consumed-released-forfeited vocabulary in the relevant contractsmemo
P3SsalesFile the Workbench-pattern standard write-up under coordination/standards/engineering/ codifying the architectural pattern (queue-reason grouping, scan-only cards, summary-counter rows, parallel-fetch composition, DTO-shaped flow, drill-down link-outs, and versioned per-tenant config where operator-tunable behavior exists) without prescribing shared primitives or domain DTOsmemo
P1McoachingPublish a dedicated coaching-confirmation contract covering Sales' lead.coach.confirmation.requested event and Coaching's coaching.lesson.confirmation_decided event, register the Coaching-produced event in contracts/event-types-registry.json, author the v1 payload schema, and wire producer-side dispatcher emit from the Coaching confirmation decision workflow with no committed date under continuous deploymentmemo
P1SsalesRegister lead.coach.confirmation.requested in contracts/event-types-registry.json with producer=sales, consumers=[coaching, platform-warehouse], owning contract contracts/coaching-confirmation/, and author its v1 payload schema alongside Coaching's outbound coaching.lesson.confirmation_decided eventmemo
P1SsalesAdd a sales.OutboundConfirmationRequest correlation table holding (confirmation_request_id, leadId, requestedAt, coachId, lessonWindow, lessonTypeId) so the Stage 3a→3b emit can persist the correlation row and the coaching-confirmation subscriber can join the inbound decision by confirmation_request_id; wire writer at applyPhase7ManualAction's confirm_slot_agreed handler and reader on the subscribermemo
P1SsalesWire the producer-side dispatcher emit for lead.coach.confirmation.requested from the Stage 3a→3b transition via the same fanout primitive Sales already uses for customer.handoff (ADR-0009 dispatcher cross-process transport)memo
P1SsalesRegister sales.lead.onboarded in contracts/event-types-registry.json with producer=sales, consumers=[platform-warehouse], owning contract contracts/lead-lifecycle/ as a v1.1 candidate, and author its v1 payload schemamemo
P1SsalesWire the producer-side dispatcher emit for sales.lead.onboarded from the close-orchestration Stage 4 entry path alongside the existing Lead.lessonDate persistence in recordCloseLessonBookedmemo
P1SsalesAdd a sales.LeadOrderCorrelation table holding (orderId, personId, leadId, recordedAt) and wire the writer at Stage 4 entry (close-orchestration success path) so the payment.received subscriber can resolve leadId from the (orderId, personId) tuple Revenue carries on the payloadmemo
P2SsalesBuild the Quo auto-send worker that consumes Touch.outcome='auto_send_pending' rows produced by the Stage 4 cron when SALES_AUTOMATED_SMS_ENABLED=true, calls Quo's POST /v1/messages via lib/quo/messages.ts, and writes a follow-up Touch (sms_sent_auto on success, automation_failed with pictogram_key on failure). Cron entry script and per-row retry up to 3 attemptsmemo
P2SsalesBuild the platform.comms.inbound subscriber stub behind PLATFORM_INBOUND_COMMS_SUBSCRIBER_ENABLED so Sales' V2 inbound-comms reset path leaves the operator log behind. Subscriber resolves Lead from (tenant_id, person_id), routes Stage 1 to promoteIntakeToQualifiedOnInbound and Stage 2/3 to resetCadenceOnInbound, terminal stages no-op. Module sales/modules/platform-comms-inbound/ wired into the dispatcher inbox handlermemo
P1MsalesExtend Sales close-orchestration to call the new atomic-multi-create endpoints; ship submitCompositeCloseOffer and the sales.composite_offer correlation table; keep submitCloseLesson untouched as the single-lesson pathmemo
P2SsalesShip multi-select lesson types in the Availability planner with computed total window and cert-union eligibility compositionmemo
P2ScoachingPublish a coach-availability v2 minor cleanup that adds the Coaching-owned roster read, documents display-metadata ownership, and reconciles the market_id filter language with the deployed route behaviormemo
P1ScoachingBackfill the missing Jack Dallas booking into coach_lesson_booking and repair the projection path so active reserved or locked lessons appear in availability bookings overlaysmemo
P2ScoachingDocument utilization-hours derivation logic (coach_capacity_hours, coach_scheduled_hours, coach_idle_hours) in a silver schema note for Platform to wire against coaching.availability_template and coaching.coach_lesson_bookingmemo
P2McoachingAdd lesson_rate and travel_comp as typed Decimal columns to the Coach table via Prisma migration; backfill from rate_references JSON; update the silver face to project them as flat columnsmemo
P2SplatformBuild /schema endpoint factory + per-section /schema routes per §11.3 (gates §12 acceptance for every section)memo
P2SplatformWire Coaching cost trio compute (coach_cost_per_hour, coach_cost_per_completed_lesson, coach_compensation_total) against the silver rate-column extension Coaching shipped 2026-05-19memo
P2MplatformBuild refresh scheduler: a worker that walks the registry, checks last_successful_refresh_at against max_staleness_minutes, triggers compute for stale metrics independent of pull trafficmemo
P2MplatformWire /corrections write-side detection: recompute-prior-period diff against snapshot in each compute*Metrics function, emit correction event via recordCorrection()memo
P3SplatformSurface upstream_unavailable detection on /health endpoint (currently always returns empty array)memo
P2SplatformWire ad_spend_reconciled cross-warehouse compute in lib/mart/sections/revenue.ts against Growth's campaign_spend_daily silvermemo
P2SplatformWire revenue_concentration top-10 × 52-week window per Revenue's 2026-05-19 decisionmemo
P2MplatformWire Coaching utilization metrics (coach_capacity_hours, coach_scheduled_hours, coach_completed_hours, coach_idle_hours, coach_utilization_scheduled, coach_utilization_completed) against availability_template + lesson_booking per Coaching's documented derivationmemo
P2MplatformWire Delivery metrics (lesson_no_show_count, lesson_reschedule_count, dormant_student_count, churn_post_lock_count) against the schema columns Delivery shipped todaymemo
P2MplatformWire Sales cohort triangle (4 metrics) as entity_rows against sales.lead + sales.lead_stage_history (no separate cohort silver needed per Sales' pushback)memo
P2MplatformWire Growth metrics (ad_spend, lead_volume, lead_intake_count, lead_qualified_rate, cpl, cost_per_qualified_lead, source_mix) against the silver Growth landed todaymemo
P2SplatformWire Finance contribution_margin, pnl_summary v0, and cac_per_first_lock as cross-domain composites of what's now livememo
P2SplatformSurface this §9 scoping pushback to the Them OS spec owner via the appropriate external channel and file the response on this thread when it landsmemo
P3XSplatformWithdraw `2026-05-19-platform-coordination-mart-section-proposal` (this memo supersedes it); the §10.9 governance review is no longer being requestedmemo
P2SplatformSurface these two spec gaps to the Them OS spec owner via the appropriate external channel and file the response on this thread when it landsmemo
P2MplatformWire Finance gross_margin family in lib/mart/sections/finance.ts directly against Coaching silver (lesson_rate, travel_comp) + Delivery's lesson-event silver, no Revenue dependencymemo
P2SplatformWithdraw the Path A build commitment (Initiative / InitiativeIndicator / Incident / AttentionItem Postgres tables); not needed — Sguild is not the system of record for thesememo
P2SplatformWithdraw the /coordination/health commitment under §10.3 framing; if Sguild builds a health endpoint later for engineering-coordination purposes, that is a separate project and not part of the mart contractmemo
P2SplatformRedraft the external reply to Them OS, pushing §10 back with the correct framing: mart serves metrics; initiatives are Them-OS-authored state; Sguild does not expose its own coordination repo as forecasting contextmemo
P2SplatformSurface the §9 scoping pushback to the Them OS spec owner via the appropriate external channel and file the response on this thread when it landsmemo
P1SplatformApply the pre-publish registry corrections from this release plan: add Coaching as a consumer for lesson.cancelled and lesson.delivered, and verify the package bundle includes canonical delivery.lesson-hold.* entries with no underscored aliases.memo
P1SplatformPublish the next @sguild/dispatcher freshness package after the registry corrections validate, then bump consuming domains off the stale 2.0.0 bundle.memo
P2McoachingBuild Coaching synthetic seed pack for current-model org config, coaches, availability templates, exceptions, certifications, geography caches, and coach_lesson_booking scenariosmemo
P1ScoachingFinalize Coaching local env safety and port 3003 bootstrap, including local-first DATABASE_URL and DIRECT_URL verification, migrations, seed command posture, and smoke-check instructionsmemo
P1McoachingAdd local dispatcher proof for coaching.lesson.confirmation_decided and current wired Coaching consumer paths through producer outbox, local fanout, inbox dedup, and projection side effect evidencememo
P2ScoachingMark Coaching registered-but-not-wired target paths explicitly in the mesh, including lead.coach.confirmation.requested and delivery.lesson-hold.cancelled until inbox behavior existsmemo
P3XScoachingPublish Coaching cron inventory for the mesh, recording no Vercel cron routes and listing one-shot scripts and smoke tools separately from cron ticksmemo
P3ScoachingAdd revenue_share_pct typed column to Coach schema (Decimal 5,4 fraction), migration, and DTO; activates coach_revenue_share_pct mart metric when Platform wires the read against coaching.coach.revenue_share_pctmemo
P2McoachingBuild coach satisfaction survey infrastructure: coach_survey table, quarterly trigger script, one-tap eNPS form, submission API, coaching.coach_survey.due dispatcher event; Delivery handoff filed in 2026-05-22-coaching-delivery-coach-survey-send-handoff; activates coach_satisfaction_of_platform mart metric when Platform wires the compute and Delivery ships the EAQ sendmemo
P2MdeliveryBuild the Delivery synthetic local seed pack covering customer CRM defaults, customers, handoffs, lessons, attendance, reservation locks, dispatcher outbox and inbox rows, DLQ samples, and required Platform and Coaching fixture mirrorsmemo
P2SdeliveryFinish Delivery local env safety for the mesh, including .env.local precedence, db target verification for the delivery schema, remote DSN protection, and documented sibling schema requirements for cross-domain fixture tablesmemo
P2MdeliveryAdd Delivery dispatcher proof checks for wired-now lesson and hold producer events plus wired Revenue and Sales consumer events, with credit.funded marked registered-but-no-op until Delivery has a visible local projection assertionmemo
P2SdeliveryPublish Delivery cron inventory and local tick proof for audit-locks, lesson-site-drift, and terminal-lesson-settlement, with terminal settlement defaulting to dry-run in local mesh operationmemo
P2SdeliveryWire Delivery port 3004 bootstrap compatibility, migrations, seed command sequence, and smoke checks into the shared local mesh contract or orchestration helpermemo
P2LdeliveryV1 post-lesson survey build covering the Delivery-local capture surface for CSAT and NPS, the count-based per-participant survey trigger, External Actions Queue send, one-tap response forms, and the CSAT-only customer-identity-stripped coach-grain aggregatememo
P1MplatformExtract and publish the @sguild/external-actions producer SDK npm packagememo
P1ScoachingCoaching patched `contracts/coach-availability/README.v2.md` to v2.1.4 with optional `person_id` and `participant_id`, owner-exception semantics, `protected_trial_followup`, and the rebook-intent dispatcher event familymemo
P1McoachingCoaching implemented local projection support for `delivery.rebook-intent.created`, `delivery.rebook-intent.cancelled`, and `delivery.rebook-intent.converted` as protected intervals with owner exemption in eligibility-by-descriptionmemo
P1ScoachingCoaching applied the `20260527110000_rebook_intent_protected_intervals` migration to the local mesh database and deployed the Coaching repo changes to Vercel productionmemo
P1ScoachingCoaching applied the `20260527110000_rebook_intent_protected_intervals` migration to the production database using the repo `.env` DSNsmemo
P1ScoachingCoaching patched the coach-availability v2 contract to accept optional `person_id` and `participant_id` on eligibility-by-description reads and document the owner exception semantics for active rebook intentsmemo
P1McoachingCoaching consumes active Delivery rebook intents as protected booking intervals and returns `protected_trial_followup` for non-owning customers now that Delivery's payload shape is contract-owned and Platform's dispatcher registry path is readymemo
P1SdeliveryDelivery has pinned `delivery.rebook-intent.created`, `delivery.rebook-intent.cancelled`, and `delivery.rebook-intent.converted` v1 payload schemas under `contracts/lesson-lifecycle` and identified lesson-lifecycle as the owning contractmemo
P1MdeliveryDelivery: land `lesson_rebook_intent` storage and completion-path creation for every completed lesson, proposed at source lesson plus seven days; the row is not a Revenue reservation and not a Delivery lesson holdmemo
P1MdeliveryDelivery: publish the `delivery.rebook-intent.*` event family after Platform registers payload schemas and republishes the dispatcher SDK bundle; until then Delivery persists rows and treats event publication as best-effortmemo
P1SplatformAmend the credit-reservation-lock contract and reservation-create sub-spec so participant_id is optional for Sales-originated reservation create and atomic multi-create, with person_id plus organization_id as the required pre-handoff human contextmemo
P1SplatformPlatform registered `delivery.rebook-intent.created`, `delivery.rebook-intent.cancelled`, and `delivery.rebook-intent.converted`, mirrored the registry into the dispatcher SDK bundle, and published @sguild/dispatcher 2.0.2 after Delivery provided contract-owned v1 payload schemas and confirmed lesson-lifecycle as the owning contractmemo
P1SplatformPlatform published @sguild/dispatcher 2.0.2 with `delivery.rebook-intent.created`, `delivery.rebook-intent.cancelled`, and `delivery.rebook-intent.converted` registered and bundled with the lesson-lifecycle v1.2.0 payload schemasmemo
P1MrevenueUpdate Revenue single reservation-create and atomic multi-create validation to accept absent participant_id, persist null when absent, and attach Delivery-returned Participant or Lesson context later through the hold-created or reconciliation pathmemo
P1SsalesSales will pass the accepted customer identity fields on every close-orchestration Coaching eligibility read, including conflict retry reads, once Coaching publishes the identity-bearing eligibility request shapememo
P1SplatformPublish the credit-reservation-lock v2.0.0 amendment that changes active Credit Account scope to Person plus Organization plus Platform Market, updates reservation-create, atomic-multi-create, service-recovery, and event scope notes, and links ADR-0031 after it acceptsmemo
P1MrevenueImplement OrgMarket-scoped active Credit Account resolution in Revenue: one active account per Person plus Organization plus Platform Market, market-resolved reservation-create and atomic-multi-create, first-booking zero-balance account creation in the resolved OrgMarket, and no spend from null-market or different-market accounts after the v2 cutovermemo
P1SrevenuePublish credit.reserved schema_version 2 from Revenue with platform_market_id and migrate producer emissions after credit-reservation-lock v2.0.0 landsmemo
P2SrevenueSupersede or refine Revenue's 2026-05-31 customer-role credit-account invariant memo so the active-account guarantee reads Person plus OrgMarket rather than Person plus Organizationmemo
P1XScoachingCorrect the Coach schema documentation to hourly lesson_rate semantics and record the operator comp policymemo
P2XScoachingFlip qualifying no-show and late-cancellation lessons in 2026-04 and 2026-05 to consumed after operator adjudicationmemo
P1SplatformConfirm corrected coach-comp formulas and land the duration-scaled compute across registry, coaching mart, and finance martmemo