{"id":"bumpgrade-director-status","generatedAt":"2026-05-28T22:16:20.362Z","source":"d1","loadError":null,"windows":[{"id":"past-1-day","label":"Past 1 day","hours":24,"since":"2026-05-27T22:16:20.362Z","workLogEntries":15,"shippedPrs":15,"changedWorkstreams":3,"needsMark":9,"recentChanges":[{"id":"work-log-2026-05-28-resource-routes-status-honesty","title":"Made resource routes and status badges honest","status":"shipped_change","summary":"Use Claude and sub-agents to improve Bumpgrade design, competitor feature-match coverage, SEO marketing pages, and user-flow coverage; create GitHub issues for possible improvements and orchestrate sub-agent work calmly.","updatedAt":"2026-05-28T22:03:40.000Z","evidence":[{"number":535,"url":"https://github.com/markitics/bumpgrade/issues/535","source":"issue","kind":"issue"},{"number":573,"url":"https://github.com/markitics/bumpgrade/pull/573","source":"pr","kind":"pr"},{"source":"work-log","label":"/resources","url":"https://bumpgrade.com/resources","kind":"route"},{"source":"work-log","label":"/resources/product-notes","url":"https://bumpgrade.com/resources/product-notes","kind":"route"},{"source":"work-log","label":"/content/source-data","url":"https://bumpgrade.com/content/source-data","kind":"route"}],"workstreamId":"marketing","workstreamTitle":"Marketing","completedAt":"2026-05-28T22:03:40.000Z"},{"id":"work-log-2026-05-28-homepage-demo-loop","title":"Added homepage product walkthrough loop","status":"shipped_change","summary":"Use Claude and sub-agents to improve Bumpgrade design, competitor feature-match coverage, SEO marketing pages, and user-flow coverage; create GitHub issues for possible improvements and orchestrate sub-agent work calmly.","updatedAt":"2026-05-28T21:34:05.000Z","evidence":[{"number":535,"url":"https://github.com/markitics/bumpgrade/issues/535","source":"issue","kind":"issue"},{"number":572,"url":"https://github.com/markitics/bumpgrade/pull/572","source":"pr","kind":"pr"},{"source":"work-log","label":"/","url":"https://bumpgrade.com/","kind":"route"},{"source":"work-log","label":"/pr-screenshots/issue-556-homepage-demo-loop-desktop.png","url":"https://bumpgrade.com/pr-screenshots/issue-556-homepage-demo-loop-desktop.png","kind":"route"},{"source":"work-log","label":"/pr-screenshots/issue-556-homepage-demo-loop-mobile.png","url":"https://bumpgrade.com/pr-screenshots/issue-556-homepage-demo-loop-mobile.png","kind":"route"}],"workstreamId":"marketing","workstreamTitle":"Marketing","completedAt":"2026-05-28T21:34:05.000Z"},{"id":"work-log-2026-05-28-importer-parity-contract-tests","title":"Expanded importer parity contract tests","status":"shipped_change","summary":"Use Claude and sub-agents to improve Bumpgrade design, competitor feature-match coverage, SEO marketing pages, and user-flow coverage; create GitHub issues for possible improvements and orchestrate sub-agent work calmly.","updatedAt":"2026-05-28T21:21:32.000Z","evidence":[{"number":535,"url":"https://github.com/markitics/bumpgrade/issues/535","source":"issue","kind":"issue"},{"number":571,"url":"https://github.com/markitics/bumpgrade/pull/571","source":"pr","kind":"pr"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/pull/571","url":"https://github.com/markitics/bumpgrade/pull/571","kind":"route"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/issues/543","url":"https://github.com/markitics/bumpgrade/issues/543","kind":"route"},{"source":"work-log","label":"/imports/source-data","url":"https://bumpgrade.com/imports/source-data","kind":"route"}],"workstreamId":"marketing","workstreamTitle":"Marketing","completedAt":"2026-05-28T21:21:32.000Z"},{"id":"work-log-2026-05-28-mobile-pricing-matrix-overflow","title":"Fixed mobile pricing matrix overflow","status":"shipped_change","summary":"Use Claude and sub-agents to improve Bumpgrade design, competitor feature-match coverage, SEO marketing pages, and user-flow coverage; create GitHub issues for possible improvements and orchestrate sub-agent work calmly.","updatedAt":"2026-05-28T20:56:08.000Z","evidence":[{"number":535,"url":"https://github.com/markitics/bumpgrade/issues/535","source":"issue","kind":"issue"},{"number":570,"url":"https://github.com/markitics/bumpgrade/pull/570","source":"pr","kind":"pr"},{"source":"work-log","label":"/pricing","url":"https://bumpgrade.com/pricing","kind":"route"},{"source":"work-log","label":"/pr-screenshots/issue-567-pricing-desktop.png","url":"https://bumpgrade.com/pr-screenshots/issue-567-pricing-desktop.png","kind":"route"},{"source":"work-log","label":"/pr-screenshots/issue-567-pricing-mobile.png","url":"https://bumpgrade.com/pr-screenshots/issue-567-pricing-mobile.png","kind":"route"}],"workstreamId":"marketing","workstreamTitle":"Marketing","completedAt":"2026-05-28T20:56:08.000Z"},{"id":"work-log-2026-05-28-competitor-feature-match-row-ids","title":"Added competitor feature-match row IDs","status":"shipped_change","summary":"Owner requested Codex to orchestrate Claude and sub-agents to improve Bumpgrade design, competitor feature-match coverage, tested user flows, SEO-friendly marketing, and issue-backed follow-up work.","updatedAt":"2026-05-28T20:34:47.000Z","evidence":[{"number":535,"title":"Orchestrate design, competitor feature-match, SEO marketing, and user-flow coverage audit","url":"https://github.com/markitics/bumpgrade/issues/535","source":"issue","kind":"issue"},{"number":569,"title":"[codex] Add competitor feature-match row IDs","url":"https://github.com/markitics/bumpgrade/pull/569","source":"pr","kind":"pr"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/issues/535","url":"https://github.com/markitics/bumpgrade/issues/535","kind":"route"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/issues/541","url":"https://github.com/markitics/bumpgrade/issues/541","kind":"route"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/pull/569","url":"https://github.com/markitics/bumpgrade/pull/569","kind":"route"}],"workstreamId":"marketing","workstreamTitle":"Marketing","completedAt":"2026-05-28T20:34:47.000Z"}]},{"id":"past-7-days","label":"Past 7 days","hours":168,"since":"2026-05-21T22:16:20.362Z","workLogEntries":50,"shippedPrs":39,"changedWorkstreams":4,"needsMark":32,"recentChanges":[{"id":"work-log-2026-05-28-resource-routes-status-honesty","title":"Made resource routes and status badges honest","status":"shipped_change","summary":"Use Claude and sub-agents to improve Bumpgrade design, competitor feature-match coverage, SEO marketing pages, and user-flow coverage; create GitHub issues for possible improvements and orchestrate sub-agent work calmly.","updatedAt":"2026-05-28T22:03:40.000Z","evidence":[{"number":535,"url":"https://github.com/markitics/bumpgrade/issues/535","source":"issue","kind":"issue"},{"number":573,"url":"https://github.com/markitics/bumpgrade/pull/573","source":"pr","kind":"pr"},{"source":"work-log","label":"/resources","url":"https://bumpgrade.com/resources","kind":"route"},{"source":"work-log","label":"/resources/product-notes","url":"https://bumpgrade.com/resources/product-notes","kind":"route"},{"source":"work-log","label":"/content/source-data","url":"https://bumpgrade.com/content/source-data","kind":"route"}],"workstreamId":"marketing","workstreamTitle":"Marketing","completedAt":"2026-05-28T22:03:40.000Z"},{"id":"work-log-2026-05-28-homepage-demo-loop","title":"Added homepage product walkthrough loop","status":"shipped_change","summary":"Use Claude and sub-agents to improve Bumpgrade design, competitor feature-match coverage, SEO marketing pages, and user-flow coverage; create GitHub issues for possible improvements and orchestrate sub-agent work calmly.","updatedAt":"2026-05-28T21:34:05.000Z","evidence":[{"number":535,"url":"https://github.com/markitics/bumpgrade/issues/535","source":"issue","kind":"issue"},{"number":572,"url":"https://github.com/markitics/bumpgrade/pull/572","source":"pr","kind":"pr"},{"source":"work-log","label":"/","url":"https://bumpgrade.com/","kind":"route"},{"source":"work-log","label":"/pr-screenshots/issue-556-homepage-demo-loop-desktop.png","url":"https://bumpgrade.com/pr-screenshots/issue-556-homepage-demo-loop-desktop.png","kind":"route"},{"source":"work-log","label":"/pr-screenshots/issue-556-homepage-demo-loop-mobile.png","url":"https://bumpgrade.com/pr-screenshots/issue-556-homepage-demo-loop-mobile.png","kind":"route"}],"workstreamId":"marketing","workstreamTitle":"Marketing","completedAt":"2026-05-28T21:34:05.000Z"},{"id":"work-log-2026-05-28-importer-parity-contract-tests","title":"Expanded importer parity contract tests","status":"shipped_change","summary":"Use Claude and sub-agents to improve Bumpgrade design, competitor feature-match coverage, SEO marketing pages, and user-flow coverage; create GitHub issues for possible improvements and orchestrate sub-agent work calmly.","updatedAt":"2026-05-28T21:21:32.000Z","evidence":[{"number":535,"url":"https://github.com/markitics/bumpgrade/issues/535","source":"issue","kind":"issue"},{"number":571,"url":"https://github.com/markitics/bumpgrade/pull/571","source":"pr","kind":"pr"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/pull/571","url":"https://github.com/markitics/bumpgrade/pull/571","kind":"route"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/issues/543","url":"https://github.com/markitics/bumpgrade/issues/543","kind":"route"},{"source":"work-log","label":"/imports/source-data","url":"https://bumpgrade.com/imports/source-data","kind":"route"}],"workstreamId":"marketing","workstreamTitle":"Marketing","completedAt":"2026-05-28T21:21:32.000Z"},{"id":"work-log-2026-05-28-mobile-pricing-matrix-overflow","title":"Fixed mobile pricing matrix overflow","status":"shipped_change","summary":"Use Claude and sub-agents to improve Bumpgrade design, competitor feature-match coverage, SEO marketing pages, and user-flow coverage; create GitHub issues for possible improvements and orchestrate sub-agent work calmly.","updatedAt":"2026-05-28T20:56:08.000Z","evidence":[{"number":535,"url":"https://github.com/markitics/bumpgrade/issues/535","source":"issue","kind":"issue"},{"number":570,"url":"https://github.com/markitics/bumpgrade/pull/570","source":"pr","kind":"pr"},{"source":"work-log","label":"/pricing","url":"https://bumpgrade.com/pricing","kind":"route"},{"source":"work-log","label":"/pr-screenshots/issue-567-pricing-desktop.png","url":"https://bumpgrade.com/pr-screenshots/issue-567-pricing-desktop.png","kind":"route"},{"source":"work-log","label":"/pr-screenshots/issue-567-pricing-mobile.png","url":"https://bumpgrade.com/pr-screenshots/issue-567-pricing-mobile.png","kind":"route"}],"workstreamId":"marketing","workstreamTitle":"Marketing","completedAt":"2026-05-28T20:56:08.000Z"},{"id":"work-log-2026-05-28-competitor-feature-match-row-ids","title":"Added competitor feature-match row IDs","status":"shipped_change","summary":"Owner requested Codex to orchestrate Claude and sub-agents to improve Bumpgrade design, competitor feature-match coverage, tested user flows, SEO-friendly marketing, and issue-backed follow-up work.","updatedAt":"2026-05-28T20:34:47.000Z","evidence":[{"number":535,"title":"Orchestrate design, competitor feature-match, SEO marketing, and user-flow coverage audit","url":"https://github.com/markitics/bumpgrade/issues/535","source":"issue","kind":"issue"},{"number":569,"title":"[codex] Add competitor feature-match row IDs","url":"https://github.com/markitics/bumpgrade/pull/569","source":"pr","kind":"pr"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/issues/535","url":"https://github.com/markitics/bumpgrade/issues/535","kind":"route"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/issues/541","url":"https://github.com/markitics/bumpgrade/issues/541","kind":"route"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/pull/569","url":"https://github.com/markitics/bumpgrade/pull/569","kind":"route"}],"workstreamId":"marketing","workstreamTitle":"Marketing","completedAt":"2026-05-28T20:34:47.000Z"}]}],"totals":{"workstreams":9,"onTrack":4,"atRisk":3,"blocked":0,"done":2,"quiet":0,"changedPastDay":15,"changedPastWeek":50,"needsMark":2},"executiveQueue":[{"id":"due-now","label":"Due now","summary":"Current owner decisions, roadmap blockers, and roadmap attention items to handle before more feature throughput.","items":[{"id":"mark-attention-2026-05-25-email-sender-domain-before-subscriber-delivery","title":"Choose and verify audience sender before subscriber email delivery","status":"needs_mark","summary":"Confirm the audience sender address/domain to use for subscriber-facing Bumpgrade email, then verify/configure it with the provider and update Cloudflare Email Sending allowed sender addresses.","updatedAt":"2026-05-26T21:05:28.000Z","evidence":[{"label":"Issue #420","url":"https://github.com/markitics/bumpgrade/issues/420","source":"attention","kind":"attention"},{"label":"wrangler email binding","url":"https://github.com/markitics/bumpgrade/blob/main/wrangler.jsonc#L64-L68","source":"attention","kind":"attention"},{"label":"Audience source data","url":"https://bumpgrade.com/audience/source-data","source":"attention","kind":"attention"},{"label":"For the owner","url":"https://bumpgrade.com/admin/for-mark","source":"attention","kind":"attention"}],"workstreamId":"security-trust","workstreamTitle":"Security / Trust","priority":"high","queueLabel":"Needs owner action","reason":"Open decision or attention item."},{"id":"mark-attention-2026-05-18-rkmoriarty-auth-alignment","title":"Confirm authenticated sender alignment for a private trusted sender","status":"needs_mark","summary":"If a private trusted sender should steer Codex directly, configure aligned SPF/DKIM/DMARC for that sending path or use a private trusted sender / a private trusted sender until alignment is verified.","updatedAt":"2026-05-18T14:17:27.000Z","evidence":[{"label":"Issue #61","url":"https://github.com/markitics/bumpgrade/issues/61","kind":"issue","source":"attention"},{"label":"Codex mail workflow","url":"https://bumpgrade.com/admin/for-mark","kind":"admin","source":"attention"}],"workstreamId":"security-trust","workstreamTitle":"Security / Trust","priority":"high","queueLabel":"Needs owner action","reason":"Open decision or attention item."}]},{"id":"in-flight","label":"In flight","summary":"Active roadmap work grouped by the executive workstream that owns the next brief.","items":[{"id":"roadmap-advanced-funnel-builder-parity","title":"Advanced funnel editing, resource delivery, and agent-safe writes","status":"active","summary":"Active post-MVP funnel parity for visual funnel editing, resource delivery, webinar integrations, unauthenticated public agent writes, and stronger resource fulfillment; owner-confirmed checkout unlinking, resource delivery links, funnel-scoped private download-token delivery, owner-session agent-created resource delivery tokens, redacted resource-delivery receipt evidence after successful private download redemption, webinar event/replay links, visual block style controls, bounded canvas layout controls, archived-draft purge, bulk archived-draft purge, within-step block reordering, drag/drop block placement through existing move endpoints, cross-step block moves, and owner-session direct agent-safe draft writes are now part of this bucket's shipped evidence.","updatedAt":"2026-05-27T01:48:19.000Z","evidence":[{"source":"issue","number":417,"label":"Issue #417","url":"https://github.com/markitics/bumpgrade/issues/417","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-advanced-funnel-builder-parity","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-advanced-funnel-builder-parity","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-advanced-funnel-builder-parity","kind":"note"}],"workstreamId":"product-commerce","workstreamTitle":"Product / Commerce","priority":"medium","queueLabel":"In flight","reason":"Active roadmap item."},{"id":"roadmap-live-analytics-execution","title":"Live analytics automation, experiment routing, notification execution, and agent-safe writes","status":"active","summary":"Active post-MVP execution bucket for custom/non-seeded analytics event schemas beyond the current seeded boundary, owner-confirmed winner rollout and rollback routing, automated alert/notification execution, Cloudflare Queue producer and consumer execution, provider calls, delivery attempts, results, webhooks, polling, receipts, raw/private exports, and direct agent-safe analytics write APIs. Public-safe source/campaign rules, seeded sandbox funnel copy routing, baseline holdout, and owner-confirmed winner rollout contracts are now live through the existing assignment API.","updatedAt":"2026-05-27T02:41:47.000Z","evidence":[{"source":"issue","number":422,"label":"Issue #422","url":"https://github.com/markitics/bumpgrade/issues/422","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-analytics-execution","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-analytics-execution","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-live-analytics-execution","kind":"note"}],"workstreamId":"analytics-growth","workstreamTitle":"Analytics / Growth","priority":"medium","queueLabel":"In flight","reason":"Active roadmap item."},{"id":"roadmap-mobile-admin","title":"Publisher admin apps for iOS and Android","status":"active","summary":"Current follow-up for installable private mobile admin parity after the completed read-only dashboard, Director workstream digest, iOS foundation, Android foundation, live-hydration, owner-session/confirmed-action contract, owner-gated private-row inspection, low-risk private-row workflow actions, owner-confirmed Director workstream reviews, owner-confirmed commerce-health reviews, owner-gated audit-only action-intent API, and push/distribution readiness-boundary slices.","updatedAt":"2026-05-26T23:03:55.000Z","evidence":[{"source":"issue","number":414,"label":"Issue #414","url":"https://github.com/markitics/bumpgrade/issues/414","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-mobile-admin","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-mobile-admin","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-mobile-admin","kind":"note"}],"workstreamId":"mobile-admin","workstreamTitle":"Mobile Admin","priority":"medium","queueLabel":"In flight","reason":"Active roadmap item."}]},{"id":"pending-next","label":"Pending next","summary":"Committed or proposed roadmap work waiting behind active slices.","items":[{"id":"roadmap-live-publisher-offer-billing","title":"Live publisher-offer checkout and webhook rollout","status":"pending","summary":"Pending live-mode publisher-offer billing after the first package, amount, Stripe Price policy, and live webhook secret are confirmed. Bumpgrade account-plan self-serve checkout remains separate.","updatedAt":"2026-05-24T06:23:26.000Z","evidence":[{"source":"issue","number":219,"label":"Issue #219","url":"https://github.com/markitics/bumpgrade/issues/219","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-publisher-offer-billing","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-publisher-offer-billing","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-live-publisher-offer-billing","kind":"note"}],"workstreamId":"product-commerce","workstreamTitle":"Product / Commerce","priority":"normal","queueLabel":"Pending next","reason":"Committed or proposed roadmap item."},{"id":"roadmap-live-email-delivery-execution","title":"Live email delivery, automation execution, and agent-safe writes","status":"pending","summary":"Pending post-MVP execution bucket for sender/domain/provider setup, Cloudflare Queue producer and consumer execution, recipient payload generation, provider calls, delivery attempts, results, webhooks, polling, receipts, live imports, exports, automation execution, and direct agent-safe write APIs.","updatedAt":"2026-05-24T08:16:46.000Z","evidence":[{"source":"issue","number":420,"label":"Issue #420","url":"https://github.com/markitics/bumpgrade/issues/420","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-email-delivery-execution","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-email-delivery-execution","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-live-email-delivery-execution","kind":"note"}],"workstreamId":"audience-email","workstreamTitle":"Audience / Email","priority":"normal","queueLabel":"Pending next","reason":"Committed or proposed roadmap item."},{"id":"roadmap-live-affiliate-execution","title":"Live affiliate payout execution, partner notifications, fraud enforcement, and agent-safe writes","status":"pending","summary":"Pending post-MVP execution bucket for payable commission finalization, private payout account and tax boundaries, Stripe payouts/transfers/reversals/receipts/reconciliation, payable statement creation, partner notification execution, provider configuration and sends, authenticated private partner portals, buyer attribution finalization, and direct agent-safe affiliate/referral write APIs. Owner-confirmed fraud enforcement records, public-safe partner portal status pages, and public-safe partner statement snapshots are live as non-payout issue #424 slices.","updatedAt":"2026-05-27T00:21:18.000Z","evidence":[{"source":"issue","number":424,"label":"Issue #424","url":"https://github.com/markitics/bumpgrade/issues/424","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-affiliate-execution","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-affiliate-execution","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-live-affiliate-execution","kind":"note"}],"workstreamId":"analytics-growth","workstreamTitle":"Analytics / Growth","priority":"normal","queueLabel":"Pending next","reason":"Committed or proposed roadmap item."}]},{"id":"watchlist","label":"Watchlist","summary":"Informational caveats on live roadmap items that should remain visible without becoming due today.","items":[{"id":"roadmap-stripe-commerce","title":"Stripe payments and checkout architecture","status":"live","summary":"Cloudflare secret inventory includes the live Stripe secret but not a live webhook signing secret, so the first self-serve activation verifies Checkout Session success server-side on /pricing/success.","updatedAt":"2026-05-22T08:56:01.000Z","evidence":[{"source":"issue","number":11,"label":"Issue #11","url":"https://github.com/markitics/bumpgrade/issues/11","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-stripe-commerce","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-stripe-commerce","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-stripe-commerce","kind":"note"}],"workstreamId":"product-commerce","workstreamTitle":"Product / Commerce","priority":"normal","queueLabel":"Watch","reason":"Live roadmap caveat; not current due-now work."},{"id":"roadmap-better-auth","title":"Publisher and admin authentication","status":"live","summary":"Production admin access requires a verified owner email; project email remains tracked in #10.","updatedAt":"2026-05-21T14:40:30.000Z","evidence":[{"source":"issue","number":9,"label":"Issue #9","url":"https://github.com/markitics/bumpgrade/issues/9","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-better-auth","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-better-auth","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-better-auth","kind":"note"}],"workstreamId":"security-trust","workstreamTitle":"Security / Trust","priority":"normal","queueLabel":"Watch","reason":"Live roadmap caveat; not current due-now work."},{"id":"roadmap-codex-email","title":"Codex project email and reply monitor","status":"live","summary":"Owner policy requires private runtime sender rules before inbound email can steer Codex; From text alone is not trusted.","updatedAt":"2026-05-25T11:33:45.000Z","evidence":[{"source":"issue","number":10,"label":"Issue #10","url":"https://github.com/markitics/bumpgrade/issues/10","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-codex-email","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-codex-email","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-codex-email","kind":"note"}],"workstreamId":"operations-control","workstreamTitle":"Operations / Project Control","priority":"normal","queueLabel":"Watch","reason":"Live roadmap caveat; not current due-now work."}]}],"briefingControls":[{"id":"past-1-day","label":"Past 1 day","title":"Changed since yesterday","summary":"Recent shipped and in-flight changes without opening the full work-log ledger.","href":"/admin/work-log?window=past-1-day","sourceRoute":"/admin/work-log/source-data","primaryMetric":{"value":15,"label":"work-log entries"},"secondaryMetric":"3 workstreams changed","workstreamIds":["marketing"]},{"id":"past-7-days","label":"Past 7 days","title":"Weekly CMO-style recap","summary":"The practical weekly roll-up across Marketing, Security, Product, Platform, and agent work.","href":"/admin/work-log?window=past-7-days","sourceRoute":"/admin/work-log/source-data","primaryMetric":{"value":50,"label":"work-log entries"},"secondaryMetric":"4 workstreams changed","workstreamIds":["marketing"]},{"id":"executive-queue","label":"Due and pending","title":"Executive queue","summary":"Owner decisions, active work, pending next items, and watchlist caveats grouped by workstream.","href":"#executive-queue","sourceRoute":"/admin/director/source-data","primaryMetric":{"value":2,"label":"due now"},"secondaryMetric":"11 total queue items","workstreamIds":["security-trust","product-commerce","analytics-growth","mobile-admin","audience-email","operations-control"]},{"id":"workstream-map","label":"Nested teams","title":"Workstream map","summary":"Top-level Marketing, Security, Product, Mobile, Infrastructure, and Operations categories before the drill-down.","href":"#workstream-map","sourceRoute":"/admin/director/source-data","primaryMetric":{"value":9,"label":"workstreams"},"secondaryMetric":"3 risk flags","workstreamIds":["marketing","product-commerce","audience-email","analytics-growth","mobile-admin","agent-readiness","security-trust","infrastructure","operations-control"]}],"workstreams":[{"id":"marketing","title":"Marketing","executiveOwner":"CMO brief","description":"Homepage, positioning, feature catalog, comparison pages, SEO, resources, and public launch copy.","status":"at_risk","currentFocus":"Homepage, positioning, feature catalog, comparison pages, SEO, resources, and public launch copy.","brief":{"headline":"Changed 7d: Made resource routes and status badges honest","signals":[{"id":"due-now","label":"Due","state":"empty","title":"Nothing due","summary":"No current item.","count":0,"evidence":[]},{"id":"in-flight","label":"Doing","state":"empty","title":"No active work","summary":"No current item.","count":0,"evidence":[]},{"id":"pending-next","label":"Next","state":"empty","title":"No pending item","summary":"No current item.","count":0,"evidence":[]},{"id":"changed-7-days","label":"Changed 7d","state":"changed","title":"Made resource routes and status badges honest","summary":"Use Claude and sub-agents to improve Bumpgrade design, competitor feature-match coverage, SEO marketing pages, and user-flow coverage; create GitHub issues for possible improvements and orchestrate sub-agent work calmly.","count":17,"evidence":[{"number":535,"url":"https://github.com/markitics/bumpgrade/issues/535","source":"issue","kind":"issue"},{"number":573,"url":"https://github.com/markitics/bumpgrade/pull/573","source":"pr","kind":"pr"},{"source":"work-log","label":"/resources","url":"https://bumpgrade.com/resources","kind":"route"}]},{"id":"watchlist","label":"Watch","state":"empty","title":"No watch item","summary":"No current item.","count":0,"evidence":[]}]},"counts":{"total":4,"active":0,"pending":0,"shipped":4,"blocked":0,"changedPastDay":13,"changedPastWeek":17,"needsMark":0},"recentlyChanged":[{"id":"work-log-2026-05-28-resource-routes-status-honesty","title":"Made resource routes and status badges honest","status":"shipped_change","summary":"Use Claude and sub-agents to improve Bumpgrade design, competitor feature-match coverage, SEO marketing pages, and user-flow coverage; create GitHub issues for possible improvements and orchestrate sub-agent work calmly.","updatedAt":"2026-05-28T22:03:40.000Z","evidence":[{"number":535,"url":"https://github.com/markitics/bumpgrade/issues/535","source":"issue","kind":"issue"},{"number":573,"url":"https://github.com/markitics/bumpgrade/pull/573","source":"pr","kind":"pr"},{"source":"work-log","label":"/resources","url":"https://bumpgrade.com/resources","kind":"route"},{"source":"work-log","label":"/resources/product-notes","url":"https://bumpgrade.com/resources/product-notes","kind":"route"},{"source":"work-log","label":"/content/source-data","url":"https://bumpgrade.com/content/source-data","kind":"route"}]},{"id":"work-log-2026-05-28-homepage-demo-loop","title":"Added homepage product walkthrough loop","status":"shipped_change","summary":"Use Claude and sub-agents to improve Bumpgrade design, competitor feature-match coverage, SEO marketing pages, and user-flow coverage; create GitHub issues for possible improvements and orchestrate sub-agent work calmly.","updatedAt":"2026-05-28T21:34:05.000Z","evidence":[{"number":535,"url":"https://github.com/markitics/bumpgrade/issues/535","source":"issue","kind":"issue"},{"number":572,"url":"https://github.com/markitics/bumpgrade/pull/572","source":"pr","kind":"pr"},{"source":"work-log","label":"/","url":"https://bumpgrade.com/","kind":"route"},{"source":"work-log","label":"/pr-screenshots/issue-556-homepage-demo-loop-desktop.png","url":"https://bumpgrade.com/pr-screenshots/issue-556-homepage-demo-loop-desktop.png","kind":"route"},{"source":"work-log","label":"/pr-screenshots/issue-556-homepage-demo-loop-mobile.png","url":"https://bumpgrade.com/pr-screenshots/issue-556-homepage-demo-loop-mobile.png","kind":"route"}]},{"id":"work-log-2026-05-28-importer-parity-contract-tests","title":"Expanded importer parity contract tests","status":"shipped_change","summary":"Use Claude and sub-agents to improve Bumpgrade design, competitor feature-match coverage, SEO marketing pages, and user-flow coverage; create GitHub issues for possible improvements and orchestrate sub-agent work calmly.","updatedAt":"2026-05-28T21:21:32.000Z","evidence":[{"number":535,"url":"https://github.com/markitics/bumpgrade/issues/535","source":"issue","kind":"issue"},{"number":571,"url":"https://github.com/markitics/bumpgrade/pull/571","source":"pr","kind":"pr"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/pull/571","url":"https://github.com/markitics/bumpgrade/pull/571","kind":"route"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/issues/543","url":"https://github.com/markitics/bumpgrade/issues/543","kind":"route"},{"source":"work-log","label":"/imports/source-data","url":"https://bumpgrade.com/imports/source-data","kind":"route"}]},{"id":"work-log-2026-05-28-mobile-pricing-matrix-overflow","title":"Fixed mobile pricing matrix overflow","status":"shipped_change","summary":"Use Claude and sub-agents to improve Bumpgrade design, competitor feature-match coverage, SEO marketing pages, and user-flow coverage; create GitHub issues for possible improvements and orchestrate sub-agent work calmly.","updatedAt":"2026-05-28T20:56:08.000Z","evidence":[{"number":535,"url":"https://github.com/markitics/bumpgrade/issues/535","source":"issue","kind":"issue"},{"number":570,"url":"https://github.com/markitics/bumpgrade/pull/570","source":"pr","kind":"pr"},{"source":"work-log","label":"/pricing","url":"https://bumpgrade.com/pricing","kind":"route"},{"source":"work-log","label":"/pr-screenshots/issue-567-pricing-desktop.png","url":"https://bumpgrade.com/pr-screenshots/issue-567-pricing-desktop.png","kind":"route"},{"source":"work-log","label":"/pr-screenshots/issue-567-pricing-mobile.png","url":"https://bumpgrade.com/pr-screenshots/issue-567-pricing-mobile.png","kind":"route"}]},{"id":"work-log-2026-05-28-competitor-feature-match-row-ids","title":"Added competitor feature-match row IDs","status":"shipped_change","summary":"Owner requested Codex to orchestrate Claude and sub-agents to improve Bumpgrade design, competitor feature-match coverage, tested user flows, SEO-friendly marketing, and issue-backed follow-up work.","updatedAt":"2026-05-28T20:34:47.000Z","evidence":[{"number":535,"title":"Orchestrate design, competitor feature-match, SEO marketing, and user-flow coverage audit","url":"https://github.com/markitics/bumpgrade/issues/535","source":"issue","kind":"issue"},{"number":569,"title":"[codex] Add competitor feature-match row IDs","url":"https://github.com/markitics/bumpgrade/pull/569","source":"pr","kind":"pr"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/issues/535","url":"https://github.com/markitics/bumpgrade/issues/535","kind":"route"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/issues/541","url":"https://github.com/markitics/bumpgrade/issues/541","kind":"route"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/pull/569","url":"https://github.com/markitics/bumpgrade/pull/569","kind":"route"}]},{"id":"work-log-2026-05-28-generated-route-seo-coverage","title":"Expanded generated route and SEO coverage","status":"shipped_change","summary":"Owner requested Codex to orchestrate Claude and sub-agents to improve Bumpgrade design, competitor feature-match coverage, tested user flows, SEO-friendly marketing, and issue-backed follow-up work.","updatedAt":"2026-05-28T20:18:57.000Z","evidence":[{"number":535,"title":"Orchestrate design, competitor feature-match, SEO marketing, and user-flow coverage audit","url":"https://github.com/markitics/bumpgrade/issues/535","source":"issue","kind":"issue"},{"number":568,"title":"Expand generated route and SEO coverage","url":"https://github.com/markitics/bumpgrade/pull/568","source":"pr","kind":"pr"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/issues/535","url":"https://github.com/markitics/bumpgrade/issues/535","kind":"route"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/issues/540","url":"https://github.com/markitics/bumpgrade/issues/540","kind":"route"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/pull/568","url":"https://github.com/markitics/bumpgrade/pull/568","kind":"route"}]}],"inFlight":[],"pending":[],"shipped":[{"id":"roadmap-comparison-hub","title":"Comparison hub and alternative pages","status":"live","summary":"Shopify-inspired compare hub, nine alternative pages, source-linked competitor data, and /compare/source-data.","updatedAt":"2026-05-18T10:12:07.000Z","evidence":[{"source":"issue","number":5,"label":"Issue #5","url":"https://github.com/markitics/bumpgrade/issues/5","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-comparison-hub","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-comparison-hub","kind":"note"}]},{"id":"roadmap-feature-catalog","title":"Public feature catalog","status":"live","summary":"Aspirational /features page with live and pending badges, stable feature IDs, issue links, and /features/source-data.","updatedAt":"2026-05-18T10:12:07.000Z","evidence":[{"source":"issue","number":6,"label":"Issue #6","url":"https://github.com/markitics/bumpgrade/issues/6","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-feature-catalog","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-feature-catalog","kind":"note"}]},{"id":"roadmap-competitor-importers","title":"Easy importers from ClickFunnels and competitor platforms","status":"live","summary":"Importer center, dedicated platform import paths, public redacted review maps, private draft creation, checkout rebuild readiness, private subscriber import records, owner-only private subscriber inspection, imported-pending audience review-list promotion, owner-only private subscriber CSV export, and reusable source-data contract for moving competitor platform context into private Bumpgrade launch workspaces before go-live.","updatedAt":"2026-05-26T22:18:27.000Z","evidence":[{"source":"issue","number":467,"label":"Issue #467","url":"https://github.com/markitics/bumpgrade/issues/467","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-competitor-importers","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-competitor-importers","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-competitor-importers","kind":"note"}]},{"id":"roadmap-free-build-before-go-live","title":"Free build-before-go-live pricing model","status":"live","summary":"Defines the $0 private-building path, logged-out browser playground recovery, signed-in Free Build workspace creation, paid go-live gates, and the handoff before public, billing, sending, domain, or fulfillment actions are treated as live.","updatedAt":"2026-05-26T14:39:49.000Z","evidence":[{"source":"issue","number":466,"label":"Issue #466","url":"https://github.com/markitics/bumpgrade/issues/466","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-free-build-before-go-live","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-free-build-before-go-live","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-free-build-before-go-live","kind":"note"}]}],"blocked":[],"needsMark":[],"watchlist":[],"sourceRecordIds":{"roadmap":["roadmap-comparison-hub","roadmap-feature-catalog","roadmap-competitor-importers","roadmap-free-build-before-go-live"],"workLog":["work-log-2026-05-28-resource-routes-status-honesty","work-log-2026-05-28-homepage-demo-loop","work-log-2026-05-28-importer-parity-contract-tests","work-log-2026-05-28-mobile-pricing-matrix-overflow","work-log-2026-05-28-competitor-feature-match-row-ids","work-log-2026-05-28-generated-route-seo-coverage","work-log-2026-05-28-comparison-seo-depth","work-log-2026-05-28-pricing-canonical-route","work-log-2026-05-28-competitor-related-feature-cross-links","work-log-2026-05-28-dedicated-audience-use-case-pages","work-log-2026-05-28-global-marketing-footer","work-log-2026-05-28-public-funnels-index","work-log-2026-05-28-visible-comparison-faq","work-log-2026-05-26-importer-subscriber-preflight-actions","work-log-2026-05-26-anonymous-playground-scheduled-cleanup","work-log-2026-05-25-importer-record-field-extraction","work-log-2026-05-25-anonymous-playground-claim-merge"],"attention":[]}},{"id":"product-commerce","title":"Product / Commerce","executiveOwner":"Product and revenue brief","description":"Funnels, checkout, offers, payments, products, entitlements, subscriptions, and access flows.","status":"on_track","currentFocus":"Advanced funnel editing, resource delivery, and agent-safe writes","brief":{"headline":"Doing: Advanced funnel editing, resource delivery, and agent-safe writes","signals":[{"id":"due-now","label":"Due","state":"empty","title":"Nothing due","summary":"No current item.","count":0,"evidence":[]},{"id":"in-flight","label":"Doing","state":"active","title":"Advanced funnel editing, resource delivery, and agent-safe writes","summary":"Active post-MVP funnel parity for visual funnel editing, resource delivery, webinar integrations, unauthenticated public agent writes, and stronger resource fulfillment; owner-confirmed checkout unlinking, resource delivery links, funnel-scoped private download-token delivery, owner-session agent-created resource delivery tokens, redacted resource-delivery receipt evidence after successful private download redemption, webinar event/replay links, visual block style controls, bounded canvas layout controls, archived-draft purge, bulk archived-draft purge, within-step block reordering, drag/drop block placement through existing move endpoints, cross-step block moves, and owner-session direct agent-safe draft writes are now part of this bucket's shipped evidence.","count":1,"evidence":[{"source":"issue","number":417,"label":"Issue #417","url":"https://github.com/markitics/bumpgrade/issues/417","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-advanced-funnel-builder-parity","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-advanced-funnel-builder-parity","kind":"note"}]},{"id":"pending-next","label":"Next","state":"pending","title":"Live publisher-offer checkout and webhook rollout","summary":"Pending live-mode publisher-offer billing after the first package, amount, Stripe Price policy, and live webhook secret are confirmed. Bumpgrade account-plan self-serve checkout remains separate.","count":1,"evidence":[{"source":"issue","number":219,"label":"Issue #219","url":"https://github.com/markitics/bumpgrade/issues/219","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-publisher-offer-billing","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-publisher-offer-billing","kind":"note"}]},{"id":"changed-7-days","label":"Changed 7d","state":"empty","title":"No recent change","summary":"No current item.","count":0,"evidence":[]},{"id":"watchlist","label":"Watch","state":"watch","title":"Stripe payments and checkout architecture","summary":"Cloudflare secret inventory includes the live Stripe secret but not a live webhook signing secret, so the first self-serve activation verifies Checkout Session success server-side on /pricing/success.","count":1,"evidence":[{"source":"issue","number":11,"label":"Issue #11","url":"https://github.com/markitics/bumpgrade/issues/11","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-stripe-commerce","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-stripe-commerce","kind":"note"}]}]},"counts":{"total":5,"active":1,"pending":1,"shipped":3,"blocked":0,"changedPastDay":0,"changedPastWeek":0,"needsMark":0},"recentlyChanged":[],"inFlight":[{"id":"roadmap-advanced-funnel-builder-parity","title":"Advanced funnel editing, resource delivery, and agent-safe writes","status":"active","summary":"Active post-MVP funnel parity for visual funnel editing, resource delivery, webinar integrations, unauthenticated public agent writes, and stronger resource fulfillment; owner-confirmed checkout unlinking, resource delivery links, funnel-scoped private download-token delivery, owner-session agent-created resource delivery tokens, redacted resource-delivery receipt evidence after successful private download redemption, webinar event/replay links, visual block style controls, bounded canvas layout controls, archived-draft purge, bulk archived-draft purge, within-step block reordering, drag/drop block placement through existing move endpoints, cross-step block moves, and owner-session direct agent-safe draft writes are now part of this bucket's shipped evidence.","updatedAt":"2026-05-27T01:48:19.000Z","evidence":[{"source":"issue","number":417,"label":"Issue #417","url":"https://github.com/markitics/bumpgrade/issues/417","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-advanced-funnel-builder-parity","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-advanced-funnel-builder-parity","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-advanced-funnel-builder-parity","kind":"note"}]}],"pending":[{"id":"roadmap-live-publisher-offer-billing","title":"Live publisher-offer checkout and webhook rollout","status":"pending","summary":"Pending live-mode publisher-offer billing after the first package, amount, Stripe Price policy, and live webhook secret are confirmed. Bumpgrade account-plan self-serve checkout remains separate.","updatedAt":"2026-05-24T06:23:26.000Z","evidence":[{"source":"issue","number":219,"label":"Issue #219","url":"https://github.com/markitics/bumpgrade/issues/219","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-publisher-offer-billing","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-publisher-offer-billing","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-live-publisher-offer-billing","kind":"note"}]}],"shipped":[{"id":"roadmap-stripe-commerce","title":"Stripe payments and checkout architecture","status":"live","summary":"Stripe architecture, secret mapping, D1 commerce schema, billing-safe agent contract, live self-serve Bumpgrade subscription checkout, sandbox publisher-offer checkout, webhooks, and audit trails.","updatedAt":"2026-05-22T08:56:01.000Z","evidence":[{"source":"issue","number":11,"label":"Issue #11","url":"https://github.com/markitics/bumpgrade/issues/11","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-stripe-commerce","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-stripe-commerce","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-stripe-commerce","kind":"note"}]},{"id":"roadmap-funnels","title":"Funnel and page builder MVP","status":"live","summary":"Multi-step funnel model, source-data contract, read-only seeded preview foundation, owner-gated editable draft foundation with step edit/reorder controls, granular block title/body editing, reusable block add/remove controls, owner-session visual style controls, bounded owner-session canvas layout controls, owner-session within-step block reordering, owner-session cross-step block moves, owner-gated private preview, exact-confirmed public publishing, reusable template and block-template library records including webinar/resource page shapes, owner-confirmed template-to-draft creation, owner-confirmed private draft duplication, owner-confirmed checkout-offer linking on private draft steps, public sandbox checkout start rendering from published linked checkout blocks, owner-confirmed archive/unpublish lifecycle actions, owner-confirmed archived-draft purge with tombstone evidence, owner-confirmed bulk archived-draft purge with one tombstone per draft, owner-confirmed resource delivery links to product/access catalog assets, funnel-scoped private download-token delivery from published linked resource blocks, owner-confirmed webinar event/replay links to public-safe external URLs, and safe draft proposals.","updatedAt":"2026-05-26T23:51:18.000Z","evidence":[{"source":"issue","number":14,"label":"Issue #14","url":"https://github.com/markitics/bumpgrade/issues/14","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-funnels","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-funnels","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-funnels","kind":"note"}]},{"id":"roadmap-products-access","title":"Products, downloads, courses, memberships, and subscriptions","status":"live","summary":"Digital product records, seeded payment-plan read records, owner-created product test checkout links, owner product delivery-gate links, product/access source data, sandbox webhook-backed entitlement grants, owner entitlement inspection, customer entitlement lookup, private R2-backed fixture delivery with redemption revalidation, owner-confirmed private asset upload intents, owner-confirmed non-destructive revocation intents, protected content readiness, checkout-intent-scoped protected fixture delivery, subscription-backed membership access, fulfillment task evidence, access rules, and subscriptions.","updatedAt":"2026-05-24T05:27:41.000Z","evidence":[{"source":"issue","number":16,"label":"Issue #16","url":"https://github.com/markitics/bumpgrade/issues/16","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-products-access","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-products-access","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-products-access","kind":"note"}]}],"blocked":[],"needsMark":[],"watchlist":[{"id":"roadmap-stripe-commerce","title":"Stripe payments and checkout architecture","status":"live","summary":"Cloudflare secret inventory includes the live Stripe secret but not a live webhook signing secret, so the first self-serve activation verifies Checkout Session success server-side on /pricing/success.","updatedAt":"2026-05-22T08:56:01.000Z","evidence":[{"source":"issue","number":11,"label":"Issue #11","url":"https://github.com/markitics/bumpgrade/issues/11","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-stripe-commerce","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-stripe-commerce","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-stripe-commerce","kind":"note"}]}],"sourceRecordIds":{"roadmap":["roadmap-stripe-commerce","roadmap-funnels","roadmap-advanced-funnel-builder-parity","roadmap-live-publisher-offer-billing","roadmap-products-access"],"workLog":[],"attention":[]}},{"id":"audience-email","title":"Audience / Email","executiveOwner":"Lifecycle brief","description":"Subscribers, opt-ins, imports, broadcasts, sequences, email readiness, consent, and suppression.","status":"on_track","currentFocus":"Live email delivery, automation execution, and agent-safe writes","brief":{"headline":"Next: Live email delivery, automation execution, and agent-safe writes","signals":[{"id":"due-now","label":"Due","state":"empty","title":"Nothing due","summary":"No current item.","count":0,"evidence":[]},{"id":"in-flight","label":"Doing","state":"empty","title":"No active work","summary":"No current item.","count":0,"evidence":[]},{"id":"pending-next","label":"Next","state":"pending","title":"Live email delivery, automation execution, and agent-safe writes","summary":"Pending post-MVP execution bucket for sender/domain/provider setup, Cloudflare Queue producer and consumer execution, recipient payload generation, provider calls, delivery attempts, results, webhooks, polling, receipts, live imports, exports, automation execution, and direct agent-safe write APIs.","count":1,"evidence":[{"source":"issue","number":420,"label":"Issue #420","url":"https://github.com/markitics/bumpgrade/issues/420","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-email-delivery-execution","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-email-delivery-execution","kind":"note"}]},{"id":"changed-7-days","label":"Changed 7d","state":"changed","title":"Remove remaining form placeholder copy","summary":"Owner asked that Bumpgrade public/product copy be written for real humans and agents, with placeholder text and notes-owner-attention/internal explanations removed from user-facing surfaces.","count":1,"evidence":[{"number":468,"title":"Remove placeholder and internal-note copy from public product surfaces","url":"https://github.com/markitics/bumpgrade/issues/468","source":"issue","kind":"issue"},{"number":534,"title":"Remove remaining form placeholder copy","url":"https://github.com/markitics/bumpgrade/pull/534","source":"pr","kind":"pr"},{"source":"work-log","label":"/products/entitlements","url":"https://bumpgrade.com/products/entitlements","kind":"route"}]},{"id":"watchlist","label":"Watch","state":"empty","title":"No watch item","summary":"No current item.","count":0,"evidence":[]}]},"counts":{"total":2,"active":0,"pending":1,"shipped":1,"blocked":0,"changedPastDay":0,"changedPastWeek":1,"needsMark":0},"recentlyChanged":[{"id":"work-log-2026-05-27-form-placeholder-cleanup","title":"Remove remaining form placeholder copy","status":"shipped_change","summary":"Owner asked that Bumpgrade public/product copy be written for real humans and agents, with placeholder text and notes-owner-attention/internal explanations removed from user-facing surfaces.","updatedAt":"2026-05-27T03:58:30.000Z","evidence":[{"number":468,"title":"Remove placeholder and internal-note copy from public product surfaces","url":"https://github.com/markitics/bumpgrade/issues/468","source":"issue","kind":"issue"},{"number":534,"title":"Remove remaining form placeholder copy","url":"https://github.com/markitics/bumpgrade/pull/534","source":"pr","kind":"pr"},{"source":"work-log","label":"/products/entitlements","url":"https://bumpgrade.com/products/entitlements","kind":"route"},{"source":"work-log","label":"/pr-screenshots/issue-468-form-placeholder-cleanup.png","url":"https://bumpgrade.com/pr-screenshots/issue-468-form-placeholder-cleanup.png","kind":"route"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/actions/runs/26489545736","url":"https://github.com/markitics/bumpgrade/actions/runs/26489545736","kind":"route"}]}],"inFlight":[],"pending":[{"id":"roadmap-live-email-delivery-execution","title":"Live email delivery, automation execution, and agent-safe writes","status":"pending","summary":"Pending post-MVP execution bucket for sender/domain/provider setup, Cloudflare Queue producer and consumer execution, recipient payload generation, provider calls, delivery attempts, results, webhooks, polling, receipts, live imports, exports, automation execution, and direct agent-safe write APIs.","updatedAt":"2026-05-24T08:16:46.000Z","evidence":[{"source":"issue","number":420,"label":"Issue #420","url":"https://github.com/markitics/bumpgrade/issues/420","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-email-delivery-execution","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-email-delivery-execution","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-live-email-delivery-execution","kind":"note"}]}],"shipped":[{"id":"roadmap-email-automation","title":"Email marketing, list growth, CRM-lite, and automations","status":"live","summary":"Subscriber segments, consent-backed opt-in capture, suppression evidence, owner CRM notes, sequence and broadcast dry-run gates, sender/provider/queue readiness, and owner-only broadcast plus sequence test-send execution paths.","updatedAt":"2026-05-25T04:39:42.000Z","evidence":[{"source":"issue","number":17,"label":"Issue #17","url":"https://github.com/markitics/bumpgrade/issues/17","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-email-automation","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-email-automation","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-email-automation","kind":"note"}]}],"blocked":[],"needsMark":[],"watchlist":[],"sourceRecordIds":{"roadmap":["roadmap-email-automation","roadmap-live-email-delivery-execution"],"workLog":["work-log-2026-05-27-form-placeholder-cleanup"],"attention":[]}},{"id":"analytics-growth","title":"Analytics / Growth","executiveOwner":"Growth brief","description":"Analytics, experiments, attribution, referrals, affiliates, reporting, and growth evidence.","status":"on_track","currentFocus":"Live analytics automation, experiment routing, notification execution, and agent-safe writes","brief":{"headline":"Doing: Live analytics automation, experiment routing, notification execution, and agent-safe writes","signals":[{"id":"due-now","label":"Due","state":"empty","title":"Nothing due","summary":"No current item.","count":0,"evidence":[]},{"id":"in-flight","label":"Doing","state":"active","title":"Live analytics automation, experiment routing, notification execution, and agent-safe writes","summary":"Active post-MVP execution bucket for custom/non-seeded analytics event schemas beyond the current seeded boundary, owner-confirmed winner rollout and rollback routing, automated alert/notification execution, Cloudflare Queue producer and consumer execution, provider calls, delivery attempts, results, webhooks, polling, receipts, raw/private exports, and direct agent-safe analytics write APIs. Public-safe source/campaign rules, seeded sandbox funnel copy routing, baseline holdout, and owner-confirmed winner rollout contracts are now live through the existing assignment API.","count":1,"evidence":[{"source":"issue","number":422,"label":"Issue #422","url":"https://github.com/markitics/bumpgrade/issues/422","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-analytics-execution","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-analytics-execution","kind":"note"}]},{"id":"pending-next","label":"Next","state":"pending","title":"Live affiliate payout execution, partner notifications, fraud enforcement, and agent-safe writes","summary":"Pending post-MVP execution bucket for payable commission finalization, private payout account and tax boundaries, Stripe payouts/transfers/reversals/receipts/reconciliation, payable statement creation, partner notification execution, provider configuration and sends, authenticated private partner portals, buyer attribution finalization, and direct agent-safe affiliate/referral write APIs. Owner-confirmed fraud enforcement records, public-safe partner portal status pages, and public-safe partner statement snapshots are live as non-payout issue #424 slices.","count":1,"evidence":[{"source":"issue","number":424,"label":"Issue #424","url":"https://github.com/markitics/bumpgrade/issues/424","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-affiliate-execution","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-affiliate-execution","kind":"note"}]},{"id":"changed-7-days","label":"Changed 7d","state":"empty","title":"No recent change","summary":"No current item.","count":0,"evidence":[]},{"id":"watchlist","label":"Watch","state":"empty","title":"No watch item","summary":"No current item.","count":0,"evidence":[]}]},"counts":{"total":6,"active":1,"pending":1,"shipped":4,"blocked":0,"changedPastDay":0,"changedPastWeek":0,"needsMark":0},"recentlyChanged":[],"inFlight":[{"id":"roadmap-live-analytics-execution","title":"Live analytics automation, experiment routing, notification execution, and agent-safe writes","status":"active","summary":"Active post-MVP execution bucket for custom/non-seeded analytics event schemas beyond the current seeded boundary, owner-confirmed winner rollout and rollback routing, automated alert/notification execution, Cloudflare Queue producer and consumer execution, provider calls, delivery attempts, results, webhooks, polling, receipts, raw/private exports, and direct agent-safe analytics write APIs. Public-safe source/campaign rules, seeded sandbox funnel copy routing, baseline holdout, and owner-confirmed winner rollout contracts are now live through the existing assignment API.","updatedAt":"2026-05-27T02:41:47.000Z","evidence":[{"source":"issue","number":422,"label":"Issue #422","url":"https://github.com/markitics/bumpgrade/issues/422","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-analytics-execution","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-analytics-execution","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-live-analytics-execution","kind":"note"}]}],"pending":[{"id":"roadmap-live-affiliate-execution","title":"Live affiliate payout execution, partner notifications, fraud enforcement, and agent-safe writes","status":"pending","summary":"Pending post-MVP execution bucket for payable commission finalization, private payout account and tax boundaries, Stripe payouts/transfers/reversals/receipts/reconciliation, payable statement creation, partner notification execution, provider configuration and sends, authenticated private partner portals, buyer attribution finalization, and direct agent-safe affiliate/referral write APIs. Owner-confirmed fraud enforcement records, public-safe partner portal status pages, and public-safe partner statement snapshots are live as non-payout issue #424 slices.","updatedAt":"2026-05-27T00:21:18.000Z","evidence":[{"source":"issue","number":424,"label":"Issue #424","url":"https://github.com/markitics/bumpgrade/issues/424","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-live-affiliate-execution","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-live-affiliate-execution","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-live-affiliate-execution","kind":"note"}]}],"shipped":[{"id":"roadmap-checkout-offers","title":"Checkout, order bump, upsell, and downsell MVP","status":"live","summary":"Stripe-backed checkout flows, confirmed sandbox checkout start with a constrained order bump, optional referral-click attribution evidence, review-only commission ledger evidence, owner review/reversal actions, non-billing post-purchase upsell/downsell decision evidence, subscriptions, coupons, and audit trails.","updatedAt":"2026-05-24T00:59:50.000Z","evidence":[{"source":"issue","number":15,"label":"Issue #15","url":"https://github.com/markitics/bumpgrade/issues/15","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-checkout-offers","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-checkout-offers","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-checkout-offers","kind":"note"}]},{"id":"roadmap-analytics-testing","title":"Analytics, A/B testing, and conversion tracking","status":"live","summary":"Privacy-safe analytics event capture, session-idempotent funnel page-view beacons with deterministic variant and normalized source attribution evidence, public-safe custom source/campaign routing rules, owner-confirmed winner rollout and rollback routing for unmatched experiment traffic, dashboard-visible fixed-window aggregate source breakdowns, deterministic seeded experiment assignment, aggregate funnel conversion reports, aggregate report exports, owner-reviewed cohort comparison evidence, owner-reviewed alert threshold/anomaly-review evidence, owner-reviewed notification delivery readiness evidence, owner-confirmed notification inbox records, owner-confirmed dispatch preflights, owner-reviewed provider/domain readiness records, owner-reviewed content/consent readiness records, owner-reviewed send-payload readiness records, owner-reviewed queue-producer readiness records, owner-reviewed queue-consumer readiness records, owner-reviewed provider-call readiness records, owner-reviewed delivery-attempt readiness records, owner-reviewed delivery-result readiness records, owner-reviewed delivery-status-webhook readiness records, owner-reviewed provider-polling readiness records, owner-reviewed receipt-payload readiness records, owner-reviewed delivery-receipt readiness records, owner-reviewed provider-status reconciliation readiness records, owner-confirmed experiment decision evidence, attribution boundaries, and source-linked reporting.","updatedAt":"2026-05-27T02:41:47.000Z","evidence":[{"source":"issue","number":18,"label":"Issue #18","url":"https://github.com/markitics/bumpgrade/issues/18","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-analytics-testing","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-analytics-testing","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-analytics-testing","kind":"note"}]},{"id":"roadmap-affiliates-referrals","title":"Affiliate and referral management","status":"live","summary":"Affiliate and referral evidence now includes partner links, privacy-safe click capture, checkout attribution evidence, review-only commission ledger rows, owner review/reversal actions, public-safe partner reports, read-only payout preparation, owner-confirmed payout preparation records, owner-reviewed fraud review records, owner-reviewed partner notification readiness records, owner-reviewed partner notification send preflight records, and owner-reviewed partner notification provider readiness records before payable commissions, partner sends, or Stripe payouts exist.","updatedAt":"2026-05-27T00:21:18.000Z","evidence":[{"source":"issue","number":19,"label":"Issue #19","url":"https://github.com/markitics/bumpgrade/issues/19","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-affiliates-referrals","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-affiliates-referrals","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-affiliates-referrals","kind":"note"}]},{"id":"roadmap-marketing-surfaces","title":"Users, developers and agents, resources, pricing, and blog surfaces","status":"live","summary":"Users, developers and agents, resources, self-serve pricing, pricing-v2, metadata, sitemap entries, and /content/source-data contract.","updatedAt":"2026-05-22T08:56:01.000Z","evidence":[{"source":"issue","number":20,"label":"Issue #20","url":"https://github.com/markitics/bumpgrade/issues/20","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-marketing-surfaces","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-marketing-surfaces","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-marketing-surfaces","kind":"note"}]}],"blocked":[],"needsMark":[],"watchlist":[],"sourceRecordIds":{"roadmap":["roadmap-checkout-offers","roadmap-analytics-testing","roadmap-live-analytics-execution","roadmap-affiliates-referrals","roadmap-live-affiliate-execution","roadmap-marketing-surfaces"],"workLog":[],"attention":[]}},{"id":"mobile-admin","title":"Mobile Admin","executiveOwner":"Mobile product brief","description":"iOS, Android, mobile dashboard source-data, simulator/emulator proof, mobile auth boundaries, private rows, private-row actions, Director reviews, commerce reviews, audit-only action intents, push readiness, and distribution readiness.","status":"on_track","currentFocus":"Publisher admin apps for iOS and Android","brief":{"headline":"Doing: Publisher admin apps for iOS and Android","signals":[{"id":"due-now","label":"Due","state":"empty","title":"Nothing due","summary":"No current item.","count":0,"evidence":[]},{"id":"in-flight","label":"Doing","state":"active","title":"Publisher admin apps for iOS and Android","summary":"Current follow-up for installable private mobile admin parity after the completed read-only dashboard, Director workstream digest, iOS foundation, Android foundation, live-hydration, owner-session/confirmed-action contract, owner-gated private-row inspection, low-risk private-row workflow actions, owner-confirmed Director workstream reviews, owner-confirmed commerce-health reviews, owner-gated audit-only action-intent API, and push/distribution readiness-boundary slices.","count":1,"evidence":[{"source":"issue","number":414,"label":"Issue #414","url":"https://github.com/markitics/bumpgrade/issues/414","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-mobile-admin","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-mobile-admin","kind":"note"}]},{"id":"pending-next","label":"Next","state":"empty","title":"No pending item","summary":"No current item.","count":0,"evidence":[]},{"id":"changed-7-days","label":"Changed 7d","state":"changed","title":"Made the Brand route discoverable from public navigation","summary":"Use Claude and sub-agents to improve Bumpgrade design and create GitHub issues for improvements.","count":1,"evidence":[{"number":535,"url":"https://github.com/markitics/bumpgrade/issues/535","source":"issue","kind":"issue"},{"number":557,"url":"https://github.com/markitics/bumpgrade/pull/557","source":"pr","kind":"pr"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/pull/557","url":"https://github.com/markitics/bumpgrade/pull/557","kind":"route"}]},{"id":"watchlist","label":"Watch","state":"empty","title":"No watch item","summary":"No current item.","count":0,"evidence":[]}]},"counts":{"total":1,"active":1,"pending":0,"shipped":0,"blocked":0,"changedPastDay":1,"changedPastWeek":1,"needsMark":0},"recentlyChanged":[{"id":"work-log-2026-05-28-brand-nav-discovery","title":"Made the Brand route discoverable from public navigation","status":"shipped_change","summary":"Use Claude and sub-agents to improve Bumpgrade design and create GitHub issues for improvements.","updatedAt":"2026-05-28T17:39:50.000Z","evidence":[{"number":535,"url":"https://github.com/markitics/bumpgrade/issues/535","source":"issue","kind":"issue"},{"number":557,"url":"https://github.com/markitics/bumpgrade/pull/557","source":"pr","kind":"pr"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/pull/557","url":"https://github.com/markitics/bumpgrade/pull/557","kind":"route"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/issues/555","url":"https://github.com/markitics/bumpgrade/issues/555","kind":"route"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/issues/535","url":"https://github.com/markitics/bumpgrade/issues/535","kind":"route"}]}],"inFlight":[{"id":"roadmap-mobile-admin","title":"Publisher admin apps for iOS and Android","status":"active","summary":"Current follow-up for installable private mobile admin parity after the completed read-only dashboard, Director workstream digest, iOS foundation, Android foundation, live-hydration, owner-session/confirmed-action contract, owner-gated private-row inspection, low-risk private-row workflow actions, owner-confirmed Director workstream reviews, owner-confirmed commerce-health reviews, owner-gated audit-only action-intent API, and push/distribution readiness-boundary slices.","updatedAt":"2026-05-26T23:03:55.000Z","evidence":[{"source":"issue","number":414,"label":"Issue #414","url":"https://github.com/markitics/bumpgrade/issues/414","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-mobile-admin","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-mobile-admin","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-mobile-admin","kind":"note"}]}],"pending":[],"shipped":[],"blocked":[],"needsMark":[],"watchlist":[],"sourceRecordIds":{"roadmap":["roadmap-mobile-admin"],"workLog":["work-log-2026-05-28-brand-nav-discovery"],"attention":[]}},{"id":"agent-readiness","title":"Agent Readiness","executiveOwner":"Agent platform brief","description":"Agent docs, manifests, source-data contracts, MCP roadmap, stable IDs, and write-safety boundaries.","status":"done","currentFocus":"Agent docs, manifests, source-data contracts, MCP roadmap, stable IDs, and write-safety boundaries.","brief":{"headline":"Agent docs, manifests, source-data contracts, MCP roadmap, stable IDs, and write-safety boundaries.","signals":[{"id":"due-now","label":"Due","state":"empty","title":"Nothing due","summary":"No current item.","count":0,"evidence":[]},{"id":"in-flight","label":"Doing","state":"empty","title":"No active work","summary":"No current item.","count":0,"evidence":[]},{"id":"pending-next","label":"Next","state":"empty","title":"No pending item","summary":"No current item.","count":0,"evidence":[]},{"id":"changed-7-days","label":"Changed 7d","state":"empty","title":"No recent change","summary":"No current item.","count":0,"evidence":[]},{"id":"watchlist","label":"Watch","state":"empty","title":"No watch item","summary":"No current item.","count":0,"evidence":[]}]},"counts":{"total":1,"active":0,"pending":0,"shipped":1,"blocked":0,"changedPastDay":0,"changedPastWeek":0,"needsMark":0},"recentlyChanged":[],"inFlight":[],"pending":[],"shipped":[{"id":"roadmap-agent-contracts","title":"Agent-ready docs, manifests, APIs, and MCP","status":"live","summary":"Public agent docs, source evidence, /agent-docs/source-data manifest, server-side read contracts, and future MCP resources are published.","updatedAt":"2026-05-18T17:00:17.000Z","evidence":[{"source":"issue","number":12,"label":"Issue #12","url":"https://github.com/markitics/bumpgrade/issues/12","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-agent-contracts","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-agent-contracts","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-agent-contracts","kind":"note"}]}],"blocked":[],"needsMark":[],"watchlist":[],"sourceRecordIds":{"roadmap":["roadmap-agent-contracts"],"workLog":[],"attention":[]}},{"id":"security-trust","title":"Security / Trust","executiveOwner":"Security brief","description":"Auth, account setup, domains, tenant boundaries, trusted senders, and permission gates.","status":"at_risk","currentFocus":"Decision needed: Choose and verify audience sender before subscriber email delivery","brief":{"headline":"Due: Choose and verify audience sender before subscriber email delivery","signals":[{"id":"due-now","label":"Due","state":"needs_mark","title":"Choose and verify audience sender before subscriber email delivery","summary":"Confirm the audience sender address/domain to use for subscriber-facing Bumpgrade email, then verify/configure it with the provider and update Cloudflare Email Sending allowed sender addresses.","count":2,"evidence":[{"label":"Issue #420","url":"https://github.com/markitics/bumpgrade/issues/420","source":"attention","kind":"attention"},{"label":"wrangler email binding","url":"https://github.com/markitics/bumpgrade/blob/main/wrangler.jsonc#L64-L68","source":"attention","kind":"attention"},{"label":"Audience source data","url":"https://bumpgrade.com/audience/source-data","source":"attention","kind":"attention"}]},{"id":"in-flight","label":"Doing","state":"empty","title":"No active work","summary":"No current item.","count":0,"evidence":[]},{"id":"pending-next","label":"Next","state":"empty","title":"No pending item","summary":"No current item.","count":0,"evidence":[]},{"id":"changed-7-days","label":"Changed 7d","state":"empty","title":"No recent change","summary":"No current item.","count":0,"evidence":[]},{"id":"watchlist","label":"Watch","state":"watch","title":"Publisher and admin authentication","summary":"Production admin access requires a verified owner email; project email remains tracked in #10.","count":1,"evidence":[{"source":"issue","number":9,"label":"Issue #9","url":"https://github.com/markitics/bumpgrade/issues/9","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-better-auth","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-better-auth","kind":"note"}]}]},"counts":{"total":4,"active":0,"pending":0,"shipped":4,"blocked":0,"changedPastDay":0,"changedPastWeek":0,"needsMark":2},"recentlyChanged":[],"inFlight":[],"pending":[],"shipped":[{"id":"roadmap-paid-publisher-subdomains","title":"Paid publisher tenants and Bumpgrade subdomains","status":"live","summary":"Publisher account setup now has paid-plan entitlement records, D1-backed tenant rows, idempotent default subdomain reservation, and cross-subdomain Better Auth cookie configuration for bumpgrade.com subdomains.","updatedAt":"2026-05-20T12:20:51.000Z","evidence":[{"source":"issue","number":222,"label":"Issue #222","url":"https://github.com/markitics/bumpgrade/issues/222","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-paid-publisher-subdomains","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-paid-publisher-subdomains","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-paid-publisher-subdomains","kind":"note"}]},{"id":"roadmap-custom-domain-onboarding","title":"Custom domain DNS onboarding and verification","status":"live","summary":"Paid publishers can add an existing custom domain, receive deterministic CNAME instructions, and re-check DNS verification state from account setup without exposing private DNS credentials.","updatedAt":"2026-05-20T12:30:45.000Z","evidence":[{"source":"issue","number":223,"label":"Issue #223","url":"https://github.com/markitics/bumpgrade/issues/223","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-custom-domain-onboarding","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-custom-domain-onboarding","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-custom-domain-onboarding","kind":"note"}]},{"id":"roadmap-cross-subdomain-customer-auth","title":"Customer login across Bumpgrade-hosted publisher sites","status":"live","summary":"Bumpgrade-hosted publisher subdomains share the central Better Auth identity session while tenant access remains scoped per hostname, checkout, entitlement, and membership state.","updatedAt":"2026-05-20T13:21:34.000Z","evidence":[{"source":"issue","number":224,"label":"Issue #224","url":"https://github.com/markitics/bumpgrade/issues/224","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-cross-subdomain-customer-auth","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-cross-subdomain-customer-auth","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-cross-subdomain-customer-auth","kind":"note"}]},{"id":"roadmap-better-auth","title":"Publisher and admin authentication","status":"live","summary":"Better Auth email/password accounts, D1-backed sessions, API routes, login/signup UI, and owner-gated admin pages.","updatedAt":"2026-05-21T14:40:30.000Z","evidence":[{"source":"issue","number":9,"label":"Issue #9","url":"https://github.com/markitics/bumpgrade/issues/9","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-better-auth","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-better-auth","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-better-auth","kind":"note"}]}],"blocked":[],"needsMark":[{"id":"mark-attention-2026-05-25-email-sender-domain-before-subscriber-delivery","title":"Choose and verify audience sender before subscriber email delivery","status":"needs_mark","summary":"Confirm the audience sender address/domain to use for subscriber-facing Bumpgrade email, then verify/configure it with the provider and update Cloudflare Email Sending allowed sender addresses.","updatedAt":"2026-05-26T21:05:28.000Z","evidence":[{"label":"Issue #420","url":"https://github.com/markitics/bumpgrade/issues/420","source":"attention","kind":"attention"},{"label":"wrangler email binding","url":"https://github.com/markitics/bumpgrade/blob/main/wrangler.jsonc#L64-L68","source":"attention","kind":"attention"},{"label":"Audience source data","url":"https://bumpgrade.com/audience/source-data","source":"attention","kind":"attention"},{"label":"For the owner","url":"https://bumpgrade.com/admin/for-mark","source":"attention","kind":"attention"}]},{"id":"mark-attention-2026-05-18-rkmoriarty-auth-alignment","title":"Confirm authenticated sender alignment for a private trusted sender","status":"needs_mark","summary":"If a private trusted sender should steer Codex directly, configure aligned SPF/DKIM/DMARC for that sending path or use a private trusted sender / a private trusted sender until alignment is verified.","updatedAt":"2026-05-18T14:17:27.000Z","evidence":[{"label":"Issue #61","url":"https://github.com/markitics/bumpgrade/issues/61","kind":"issue","source":"attention"},{"label":"Codex mail workflow","url":"https://bumpgrade.com/admin/for-mark","kind":"admin","source":"attention"}]}],"watchlist":[{"id":"roadmap-better-auth","title":"Publisher and admin authentication","status":"live","summary":"Production admin access requires a verified owner email; project email remains tracked in #10.","updatedAt":"2026-05-21T14:40:30.000Z","evidence":[{"source":"issue","number":9,"label":"Issue #9","url":"https://github.com/markitics/bumpgrade/issues/9","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-better-auth","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-better-auth","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-better-auth","kind":"note"}]}],"sourceRecordIds":{"roadmap":["roadmap-paid-publisher-subdomains","roadmap-custom-domain-onboarding","roadmap-cross-subdomain-customer-auth","roadmap-better-auth"],"workLog":[],"attention":["mark-attention-2026-05-25-email-sender-domain-before-subscriber-delivery","mark-attention-2026-05-18-rkmoriarty-auth-alignment"]}},{"id":"infrastructure","title":"Infrastructure","executiveOwner":"Platform brief","description":"Cloudflare, D1, deploys, CI, runtime boundaries, migrations, and production operations.","status":"done","currentFocus":"Cloudflare, D1, deploys, CI, runtime boundaries, migrations, and production operations.","brief":{"headline":"Cloudflare, D1, deploys, CI, runtime boundaries, migrations, and production operations.","signals":[{"id":"due-now","label":"Due","state":"empty","title":"Nothing due","summary":"No current item.","count":0,"evidence":[]},{"id":"in-flight","label":"Doing","state":"empty","title":"No active work","summary":"No current item.","count":0,"evidence":[]},{"id":"pending-next","label":"Next","state":"empty","title":"No pending item","summary":"No current item.","count":0,"evidence":[]},{"id":"changed-7-days","label":"Changed 7d","state":"empty","title":"No recent change","summary":"No current item.","count":0,"evidence":[]},{"id":"watchlist","label":"Watch","state":"empty","title":"No watch item","summary":"No current item.","count":0,"evidence":[]}]},"counts":{"total":1,"active":0,"pending":0,"shipped":1,"blocked":0,"changedPastDay":0,"changedPastWeek":0,"needsMark":0},"recentlyChanged":[],"inFlight":[],"pending":[],"shipped":[{"id":"roadmap-cloudflare-foundation","title":"Cloudflare app foundation","status":"live","summary":"Next/OpenNext Worker app, D1 binding, R2 cache binding, DNS, core routes, screenshots, and deploy path.","updatedAt":"2026-05-18T10:12:07.000Z","evidence":[{"source":"issue","number":4,"label":"Issue #4","url":"https://github.com/markitics/bumpgrade/issues/4","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-cloudflare-foundation","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-cloudflare-foundation","kind":"note"}]}],"blocked":[],"needsMark":[],"watchlist":[],"sourceRecordIds":{"roadmap":["roadmap-cloudflare-foundation"],"workLog":[],"attention":[]}},{"id":"operations-control","title":"Operations / Project Control","executiveOwner":"COO brief","description":"Roadmap, work-log, owner-attention queue, director dashboard, decisions, blockers, and project hygiene.","status":"at_risk","currentFocus":"Roadmap, work-log, owner-attention queue, director dashboard, decisions, blockers, and project hygiene.","brief":{"headline":"Changed 7d: Clarified source discovery policy","signals":[{"id":"due-now","label":"Due","state":"empty","title":"Nothing due","summary":"No current item.","count":0,"evidence":[]},{"id":"in-flight","label":"Doing","state":"empty","title":"No active work","summary":"No current item.","count":0,"evidence":[]},{"id":"pending-next","label":"Next","state":"empty","title":"No pending item","summary":"No current item.","count":0,"evidence":[]},{"id":"changed-7-days","label":"Changed 7d","state":"changed","title":"Clarified source discovery policy","summary":"Owner requested Codex to orchestrate design, competitor feature-match, SEO marketing, and user-flow coverage for Bumpgrade, creating issues and sub-agent work for any improvements or missing features discovered.","count":31,"evidence":[{"number":535,"url":"https://github.com/markitics/bumpgrade/issues/535","source":"issue","kind":"issue"},{"number":563,"url":"https://github.com/markitics/bumpgrade/pull/563","source":"pr","kind":"pr"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/pull/563","url":"https://github.com/markitics/bumpgrade/pull/563","kind":"route"}]},{"id":"watchlist","label":"Watch","state":"watch","title":"Codex project email and reply monitor","summary":"Owner policy requires private runtime sender rules before inbound email can steer Codex; From text alone is not trusted.","count":1,"evidence":[{"source":"issue","number":10,"label":"Issue #10","url":"https://github.com/markitics/bumpgrade/issues/10","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-codex-email","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-codex-email","kind":"note"}]}]},"counts":{"total":3,"active":0,"pending":0,"shipped":3,"blocked":0,"changedPastDay":1,"changedPastWeek":31,"needsMark":0},"recentlyChanged":[{"id":"work-log-2026-05-28-source-discovery-policy","title":"Clarified source discovery policy","status":"shipped_change","summary":"Owner requested Codex to orchestrate design, competitor feature-match, SEO marketing, and user-flow coverage for Bumpgrade, creating issues and sub-agent work for any improvements or missing features discovered.","updatedAt":"2026-05-28T19:27:30.000Z","evidence":[{"number":535,"url":"https://github.com/markitics/bumpgrade/issues/535","source":"issue","kind":"issue"},{"number":563,"url":"https://github.com/markitics/bumpgrade/pull/563","source":"pr","kind":"pr"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/pull/563","url":"https://github.com/markitics/bumpgrade/pull/563","kind":"route"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/issues/539","url":"https://github.com/markitics/bumpgrade/issues/539","kind":"route"},{"source":"work-log","label":"https://github.com/markitics/bumpgrade/issues/564","url":"https://github.com/markitics/bumpgrade/issues/564","kind":"route"}]},{"id":"work-log-2026-05-27-analytics-winner-rollouts","title":"Added owner-confirmed analytics winner rollouts","status":"shipped_change","summary":"Continue the Bumpgrade build with Director-level owner-visible analytics progress while keeping noisy narrow ships quiet.","updatedAt":"2026-05-27T02:41:47.000Z","evidence":[{"number":422,"url":"https://github.com/markitics/bumpgrade/issues/422","source":"issue","kind":"issue"},{"number":533,"url":"https://github.com/markitics/bumpgrade/pull/533","source":"pr","kind":"pr"},{"source":"work-log","label":"/analytics/source-data","url":"https://bumpgrade.com/analytics/source-data","kind":"route"},{"source":"work-log","label":"/analytics/indie-launch-dashboard","url":"https://bumpgrade.com/analytics/indie-launch-dashboard","kind":"route"},{"source":"work-log","label":"/admin/analytics","url":"https://bumpgrade.com/admin/analytics","kind":"route"}]},{"id":"work-log-2026-05-27-funnel-resource-delivery-receipts","title":"Added funnel resource-delivery receipt evidence","status":"shipped_change","summary":"Continue the Bumpgrade build with Director-level owner-visible funnel/resource fulfillment progress while keeping noisy narrow ships quiet.","updatedAt":"2026-05-27T01:48:19.000Z","evidence":[{"number":417,"url":"https://github.com/markitics/bumpgrade/issues/417","source":"issue","kind":"issue"},{"number":532,"url":"https://github.com/markitics/bumpgrade/pull/532","source":"pr","kind":"pr"},{"source":"work-log","label":"/funnels/source-data","url":"https://bumpgrade.com/funnels/source-data","kind":"route"},{"source":"work-log","label":"/admin/funnels","url":"https://bumpgrade.com/admin/funnels","kind":"route"},{"source":"work-log","label":"/agent-docs/source-data","url":"https://bumpgrade.com/agent-docs/source-data","kind":"route"}]},{"id":"work-log-2026-05-27-analytics-custom-routing-rules","title":"Added public-safe analytics custom routing rules","status":"shipped_change","summary":"Continue the Bumpgrade build with Director-level owner-visible analytics progress while keeping noisy narrow ships quiet.","updatedAt":"2026-05-27T01:06:56.000Z","evidence":[{"number":422,"url":"https://github.com/markitics/bumpgrade/issues/422","source":"issue","kind":"issue"},{"number":531,"url":"https://github.com/markitics/bumpgrade/pull/531","source":"pr","kind":"pr"},{"source":"work-log","label":"/analytics/source-data","url":"https://bumpgrade.com/analytics/source-data","kind":"route"},{"source":"work-log","label":"/analytics/indie-launch-dashboard","url":"https://bumpgrade.com/analytics/indie-launch-dashboard","kind":"route"},{"source":"work-log","label":"/funnels/indie-launch-sandbox","url":"https://bumpgrade.com/funnels/indie-launch-sandbox","kind":"route"}]},{"id":"work-log-2026-05-26-affiliate-partner-statement-snapshots","title":"Added public-safe affiliate partner statement snapshots","status":"shipped_change","summary":"Continue the Bumpgrade build with owner-visible and partner-visible workflows instead of narrow readiness-only ships.","updatedAt":"2026-05-27T00:21:18.000Z","evidence":[{"number":424,"url":"https://github.com/markitics/bumpgrade/issues/424","source":"issue","kind":"issue"},{"source":"work-log","label":"/affiliates/source-data","url":"https://bumpgrade.com/affiliates/source-data","kind":"route"},{"source":"work-log","label":"/affiliates/indie-launch-partners/partners/launch-circle","url":"https://bumpgrade.com/affiliates/indie-launch-partners/partners/launch-circle","kind":"route"},{"source":"work-log","label":"/admin/roadmap/source-data","url":"https://bumpgrade.com/admin/roadmap/source-data","kind":"route"}]},{"id":"work-log-2026-05-26-funnel-bulk-purge-policy","title":"Added funnel bulk archived-draft purge","status":"shipped_change","summary":"The active goal calls for broad ClickFunnels-level funnel parity, owner-visible workflows, and agent-ready contracts while avoiding tiny internal-only ships.","updatedAt":"2026-05-26T23:51:18.000Z","evidence":[{"number":417,"url":"https://github.com/markitics/bumpgrade/issues/417","source":"issue","kind":"issue"},{"source":"work-log","label":"/admin/funnels","url":"https://bumpgrade.com/admin/funnels","kind":"route"},{"source":"work-log","label":"/funnels/source-data","url":"https://bumpgrade.com/funnels/source-data","kind":"route"},{"source":"work-log","label":"/agent-docs/source-data","url":"https://bumpgrade.com/agent-docs/source-data","kind":"route"}]}],"inFlight":[],"pending":[],"shipped":[{"id":"roadmap-public-roadmap","title":"Public roadmap from main feature set","status":"live","summary":"Public roadmap lanes connected to the feature catalog, GitHub issues, public-safe blockers, and deploy evidence.","updatedAt":"2026-05-18T10:12:07.000Z","evidence":[{"source":"issue","number":7,"label":"Issue #7","url":"https://github.com/markitics/bumpgrade/issues/7","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-public-roadmap","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-public-roadmap","kind":"note"}]},{"id":"roadmap-admin-surfaces","title":"D1-backed admin roadmap, work log, journeys, and owner-attention surfaces","status":"live","summary":"Owner and agent coordination surfaces backed by D1 instead of static foundation copy.","updatedAt":"2026-05-18T10:40:52.000Z","evidence":[{"source":"issue","number":8,"label":"Issue #8","url":"https://github.com/markitics/bumpgrade/issues/8","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-admin-surfaces","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-admin-surfaces","kind":"note"}]},{"id":"roadmap-codex-email","title":"Codex project email and reply monitor","status":"live","summary":"Cloudflare Email Routing is enabled for bumpgrade.com, shipped PR notices can send from codex@bumpgrade.com, and inbound replies route through the Worker into D1/R2 evidence.","updatedAt":"2026-05-25T11:33:45.000Z","evidence":[{"source":"issue","number":10,"label":"Issue #10","url":"https://github.com/markitics/bumpgrade/issues/10","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-codex-email","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-codex-email","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-codex-email","kind":"note"}]}],"blocked":[],"needsMark":[],"watchlist":[{"id":"roadmap-codex-email","title":"Codex project email and reply monitor","status":"live","summary":"Owner policy requires private runtime sender rules before inbound email can steer Codex; From text alone is not trusted.","updatedAt":"2026-05-25T11:33:45.000Z","evidence":[{"source":"issue","number":10,"label":"Issue #10","url":"https://github.com/markitics/bumpgrade/issues/10","kind":"issue"},{"source":"roadmap","label":"Evidence 1","url":"/admin/roadmap/source-data#roadmap-codex-email","kind":"note"},{"source":"roadmap","label":"Evidence 2","url":"/admin/roadmap/source-data#roadmap-codex-email","kind":"note"},{"source":"roadmap","label":"Evidence 3","url":"/admin/roadmap/source-data#roadmap-codex-email","kind":"note"}]}],"sourceRecordIds":{"roadmap":["roadmap-public-roadmap","roadmap-admin-surfaces","roadmap-codex-email"],"workLog":["work-log-2026-05-28-source-discovery-policy","work-log-2026-05-27-analytics-winner-rollouts","work-log-2026-05-27-funnel-resource-delivery-receipts","work-log-2026-05-27-analytics-custom-routing-rules","work-log-2026-05-26-affiliate-partner-statement-snapshots","work-log-2026-05-26-funnel-bulk-purge-policy","work-log-2026-05-26-mobile-admin-roadmap-refresh","work-log-2026-05-26-importer-roadmap-closeout","work-log-2026-05-26-importer-checkout-readiness","work-log-2026-05-26-agent-manifest-starter-copy-closeout","work-log-2026-05-26-importer-private-subscriber-export","work-log-2026-05-26-funnel-canvas-layout-controls","work-log-2026-05-26-importer-subscriber-audience-promotion","work-log-2026-05-26-importer-subscriber-record-inspection","work-log-2026-05-26-importer-subscriber-record-creation","work-log-2026-05-26-free-build-roadmap-closeout","work-log-2026-05-25-importer-subscriber-preflight-actions","work-log-2026-05-26-owner-agent-funnel-resource-token-pr-518-blocked","work-log-2026-05-25-importer-subscriber-import-depth","work-log-2026-05-25-importer-extracted-field-editing","work-log-2026-05-25-anonymous-playground-save-limits","work-log-2026-05-25-importer-private-record-actions","work-log-2026-05-25-importer-private-record-review","work-log-2026-05-25-public-copy-operations-hygiene","work-log-2026-05-25-importer-structured-private-records","work-log-2026-05-25-importer-private-export-review","work-log-2026-05-25-importer-platform-export-matches","work-log-2026-05-25-importer-export-preflight-parser","work-log-2026-05-25-importer-platform-preflight-extraction","work-log-2026-05-25-anonymous-playground-retention-controls","work-log-2026-05-25-importer-platform-source-guides"],"attention":[]}}],"sourceRoutes":["/admin/director/source-data","/admin/source-data","/admin/work-log/source-data","/admin/roadmap/source-data","/admin/for-mark/source-data","/admin/user-journeys/source-data"],"emailPolicy":{"mode":"digest-first","summary":"Niche technical ships should roll into director status, source-data, PR comments, and work-log evidence unless owner-visible action is needed.","immediateEmailOnlyFor":["User-visible launches or production incidents","Blocked work requiring owner action","Security, billing, auth, deploy, or data-risk changes","Explicitly requested shipped notices"],"quietPath":["PR comment","/admin/work-log evidence","/admin/director weekly summary","Issue status update"]}}