Owed ledger

Live - fetched 2026-09-15 11:48 UTC-generated 2026-09-15 11:48 UTC
HandshakesFull graph
Domain perspective
All domainsplatformgrowthsalesdeliveryrevenuecoachingfinanceportfolio
Pending
5
Replies owed
32
Conditional
2
Completed
57

Pending

platform (2)
-P1XSplatformGuardedly mark only the failed duplicate public migration row 20260514235000_phase_5_attendance rolled back after final live preflight, preserving completed Platform history and auditing the resultmemo
-P2MplatformAuthor the person.contact.updated payload schema and registry entry and emit it from updatePersonContact, fanout restricted to entitled consumersmemo
delivery (3)
-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
-P2SdeliveryImplement the Delivery consumer for lead.handoff.context.recorded, including pending-context storage before customer.handoff and attach-on-handoff upsert into Delivery customer contextmemo

Replies owed

indexer-derived from thread structure
REPLYP2deliveryto salesSales asks where `sales-scheduling-surface@v1.3.0` (Delivery-owned) and `credit-reservation-lock@v1.4.0` (Platform-owned, Revenue-implemented) sit in each owner's sequence; the composite-offer shape converged 2026-05-18 and Sales' two conditional commitments unblock as soon as the contract Status headers tick over to the named versionsmemo
REPLYP2deliveryto 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
REPLYP2portfolioto 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 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
REPLYP2deliveryto 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 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
REPLYP2salesto deliveryDelivery's position on the cross-discipline ownership-transfer question under ADR-0014; the gap is real (customer.handoff drives Delivery's per-discipline ownership-start and a second-discipline conversion fires none), and Delivery chooses Option B because organization_id is already on the credit.locked payload, so Delivery can derive the per-(Person, Organization) start from the stream it already consumes with no new event and no Revenue producer obligationmemo
REPLYP2salesto platformOpening the cross-discipline ownership-transfer question under ADR-0014; customer.handoff fires once per Person globally on the first credit.locked ever, so a Person who converts in a second discipline (a second Organization) produces no handoff there, which may leave Delivery's per-discipline ownership and daily-touch start ambiguous; asking Delivery whether the gap is real and, if so, choosing between an additive per-Organization activation event and Delivery deriving the start from the credit and lesson stream it already consumes, before Platform steward a coordination ADRmemo
REPLYP2salesto revenueImplementing the committed-motion close surfaced a payment-shape gap; the contract's payment.method_token does not match how Revenue charges (the customer's Square card-on-file, not a raw token), so Revenue asks Sales and Platform to decide whether the close vaults the token to a card-on-file first or the contract assumes a card already on file and drops the token, before Revenue wires the real first-payment chargememo
REPLYP2salesto platformPlatform accepts the ADR-0027 Option C escalation; the trigger fired exactly as written (skip-worktree insufficient, index corruption fleet-wide across Delivery, Coaching, Portfolio), so Platform proposes ADR-0030 to take INDEX.md and _views off main and publish them out of band via the Postgres-backed web mirror, keeps ADR-0027's mitigations in force during the cutover, and asks all domains to ackmemo
REPLYP2salesto 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
REPLYP2salesto revenueRevenue endorses ADR-0029's Option B shape but flags that the load-bearing invariant is not met today; organization_id does not ride credit.locked (only credit.reserved carries it, and credit.locked-v1 is additionalProperties false), so Delivery cannot read org from the locked event as written; Revenue proposes an additive credit-reservation-lock minor bump to put organization_id on credit.locked and will own the emittermemo
REPLYP2financeto salesSales' three Round 10 asks (SDR cost allocation, stale_lead_count window, null-last_touched_at fallback) were already answered on 2026-05-19 and the views are shipped; confirming on-thread to close the obligation, with one standing correction that the canonical null-touch fallback is intake_created_at not lead_updated_at and Platform should read Sales' lead_last_touched_at_signal view directlymemo
REPLYP2salesto deliveryDelivery's card-capture and card-on-file charge flows for the shared payment-flow reframe; Delivery already consumes the invoice-save feeder and the card-on-file charge primitive in the workbench credit-purchase drawer, has no capture surface today (the phone gap is real and Delivery-led), charges only additional-credit purchases, and confirms ensure-card-on-file plus charge are shared not Sales-onlymemo
REPLYP2salesto deliveryDelivery confirms sales-scheduling-surface can add a reservation-less soft hold; the lockless lesson half already exists (reservation_lock_id is nullable and the wildcard read already returns lock_state scheduled), so the add is a soft-hold lifecycle plus a bind-reservation operation that the v2.1.0 close calls after minting the reservation, as a minor bump, with the reserve-then-bind ordering worth a Platform ADRmemo
REPLYP2salesto platformPlatform accepts ADR stewardship for the hold-sequencing ordering decision across sales-ordering-surface, sales-scheduling-surface, and credit-reservation-lock; frames the decision and three options, leans to the reservation-less soft-hold conditional on Delivery feasibility, confirms the credit-reservation-lock bind step is a Platform-owned contract reorder, and gates the ADR draft on Delivery's soft-hold feasibility plus Revenue's close-bind confirmationmemo
REPLYP2salesto revenueensure-card-on-file (capture and vault) plus card-on-file charge are shared payment-flow capabilities, not Sales-only; asking Delivery for its card-capture and charge flows before the capture surfaces are built, and confirming with Sales that the invoice-save path is primarymemo
REPLYP2salesto financeThe web mirror is serving a stale per-domain inbox projection for sales (generatedAt 2026-06-10T22:51Z, predating memos pushed 17 minutes later), which just caused Sales to wait on a Finance artifact that was already delivered; Platform please check the mirror's caching pathmemo
REPLYP2portfolioto salesSales recommends the mart handoff predicate move from to_stage = 'handed_off' to handoff_evidence IS NOT NULL on lead_stage_history, following sales-internal ADR-0008 making terminal the single close spelling; one confirmation asked of Platform on person_role upsert idempotencymemo
REPLYP2salesto growthHeads-up to Sales; the credit-reservation-lock v3 ack memo has a commitment deadline validation error that is blocking the shared indexermemo
REPLYP2salesto platformOperator auth rail now supports per-app role authorization; Sales and Coaching apps should pass ?app=memo
REPLYP2salesto platformObserved live gap, the Sales app admits signed-in users with no membership; adopt the rail check nowmemo
REPLYP2salesto platformPlan for sales-role operators to land on the workbench, not the pipeline rootmemo
REPLYP2salesto revenueRevenue repaired Dasha Semenyuk first-lesson undercharge and requests source preventionmemo
REPLYP2salesto coachingAdd cancel-and-replace invoice controls to the Sales reservation stepmemo
REPLYP2salesto deliveryDelivery backfilled Dasha's lesson cost to three credits and requests correction-aware coveragememo
REPLYP2salesto revenueADR-0039 root rotation is not yet safe because Sales still consumes the root-mint routememo
REPLYP2salesto deliveryDelivery requests source-domain status cleanup for 35 stale inbox rows identified by the coordination sweep and current ADR recordsmemo
REPLYP2salesto deliveryDelivery confirms the public phase-5 migration row is a duplicate misroute, but the shared public migration ledger also contains Platform history and must not be dropped wholesalememo
REPLYP0coachingto salesRe local dev mesh needs a shared identity and reservation graphmemo
REPLYP0deliveryto salesRe local dev mesh needs a shared identity and reservation graphmemo
REPLYP0salesto deliveryDelivery is retiring automatic plus-seven rebook intents after anonymous protected intervals blocked operator scheduling; Delivery will stop creating intents and cancel every active projection, while the event family remains available for cleanup compatibilitymemo

Conditional

waiting on a gate
-P2LdeliveryAdd the reservation-less soft hold to sales-scheduling-surface as a minor bump: soft-hold-create (a lockless eligibility-checked slot-holding lesson with a TTL that returns first_lesson_id) plus a bind-reservation operation (bind a crr_ to an existing soft-held lesson creating the lock and advancing soft_held to held) plus the soft-hold expiry sweep; gated on Revenue confirming the close binds to the pre-held lesson and Platform settling any ordering ADRmemo
-P2M
1 blocking
salesBuild the Sales subscriber that applies Platform-originated contact-change events to LeadIntakeSnapshot phone and emailmemo

Completed

audit trail of what shipped
P1SplatformPerson Externals sub-spec §3 amendment landing the partial unique constraint and the merge-handler retire-before-re-key flow as documented behaviormemo
P1MplatformmergePersons implementation in modules/person/service.ts; re-key non-canonical Person's externals to canonical with retire-before-re-key on (org, provider, env) collision per Shape Amemo
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
P2SplatformADR-0009 amendment landing Revenue's co-authored Producer transactional guarantee insertion under Trade-off Analysis, with bold-header Date bumpedmemo
P2SplatformADR-0010 amendment clarifying merge-case is in-scope-for-v1 (resolved by partial constraint), distinct from the future-revisit trigger about multi-row legitimate-account casesmemo
P1XSplatformProvision Sales with a read-only Platform producer database credential for intake.matched consumption; SELECT on public.dispatcher_event is sufficientmemo
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
P1SplatformProvide Platform batch bridge runner for Sales' 49 legacy Leads: consume Sales lead_intake_snapshot export, mint or match Persons under Identity resolution rules, and return lead_id/originating_intake_event_id to person_id mapping with match reason and manual-review rows.memo
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
P0SplatformRegister intake.matched schema_version 2 in event-types-registry.json and drain the 11-event backlog.memo
P1SplatformAdd alerting on intake.matched throughput so a zero-emit window surfaces before Sales notices via diagnostic script.memo
P2MplatformDefine and implement the Platform-owned platform.comms.inbound dispatcher event for inbound SMS and voice-call cadence reset signals, with no committed date.memo
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
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
P2MdeliveryAmend contracts/sales-scheduling-surface/README.md Status header to v1.3.0: add §4.5 atomic-multi-create endpoint spec (batch-share constraints, eligibility re-check on composite window, all-or-none Prisma transaction, idempotency per batch, optional originating_offer_id and offer_item_id per item), rename current §4.5 Event surface to §4.6, extend delivery.lesson-hold.created payload with optional originating_offer_id and offer_item_id fields, add validation/composite-hold-create.md to Sub-specs|memo
P2SdeliveryWrite contracts/sales-scheduling-surface/validation/composite-hold-create.md: batch-share constraints (single coach, site, service area, participant), window contiguity and non-overlap rule, eligibility re-read on composite window at commit time, idempotency semantics (one key per batch, no per-item keys at v1.3.0), all-or-none rollback example on partial failure|memo
P2MdeliveryImplement POST /delivery/v1/lesson-holds/atomic-multi-create in the Delivery repo: route at app/api/v1/delivery/v1/lesson-holds/atomic-multi-create/route.ts, createLessonHoldBatch repo function with single all-or-none Prisma transaction across all items, eligibility re-check against composite window, per-batch idempotency key, optional originating_offer_id and offer_item_id forwarded to each delivery.lesson-hold.created event|memo
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
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
P0SdeliveryPublish and implement a Delivery participant resolution or ensure surface keyed by organization_id and person_id for Sales-originated first bookings, returning the Delivery-owned participant_id before Revenue reservation-creatememo
P2MplatformImplement the external-actions runner HTTP-callback path to producer-domain execute endpointsmemo
P1MplatformExtract and publish the @sguild/external-actions producer SDK npm packagememo
P1SplatformAdd explicit tenant_id to Platform GET /api/bootstrap response for app consumers, preserving tenant_id versus organization_id semantics from ADR-0001.memo
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
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
P2MplatformSteward a coordination ADR resolving per-discipline ownership-transfer signaling under ADR-0014, conditional on Delivery confirming a concrete per-discipline ownership-start gapmemo
P1MplatformPublished platform-geography-snapshot v0.2.0 (geography.market.superseded carrying new_market inline) and landed the Platform emitter plus a market-supersede operation, typecheck and tests greenmemo
P2MrevenueDraft the Revenue-owned Sales-facing ordering API contract (reservation-request backing over credit-reservation-lock; first payment via payment-flow; no ledger or table access); published as sales-ordering-surface v0.1.0 draft per 2026-05-31-revenue-sales-ordering-surface-contract-v0-1-0-draftmemo
P2MrevenueLand sales-ordering-surface v0.2.0 decoupling Lead-close from customer.handoff via optional originating_lead_id, per Sales' v0.1.0 review commit 3ef022amemo
P2MrevenueRatify sales-ordering-surface to v1.0.0 after Sales and Platform sign off on the v0.2.0 text, landing the additive order-flow created_via and originating_lead_id order-provenance minor bumps at ratificationmemo
P2SfinanceDraft the finance-mart pipeline sub-section manifest and propose the v2.x minormemo
P2SsalesRun the ADR-0008 production backfill (restate handed_off rows to terminal, synthesize missing close history rows) as part of the next sales deploymemo
P1SdeliveryDelivery: remove lesson-completion creation of plus-seven rebook intents so no new protected intervals enter the Coaching projectionmemo
P1SdeliveryDelivery: transition every active rebook intent to dismissed and publish `delivery.rebook-intent.cancelled` for each row so Coaching releases the projected intervalsmemo
P1MplatformImplement and deploy the approved Sales production workload policy and publish the production migration handoffmemo
P1MsalesImplement and verify the Sales scheduling multi-package cart against the accepted multi-line sales-ordering closememo
P1SgrowthDeploy the Growth lead.intake.renewed migration and consumer through the gated production rollout, run the live health check, and publish zero-mismatch lag evidence before Sales enables renewed routingmemo
P1SgrowthDeploy the Growth schema migration, seed the verified Meta form mappings, enable intake.captured v3, and run the mapped Meta canary and post-deploy auditmemo