| P01● | HomePublic | Partial | ✓ | n/a | old |  | Main has the S1 homepage with the new Startup/Scaling/Enterprise pricing and a working Pricing link. Production still serves the old homepage. | Release main. |
| P02● | Account · sign upCustomer | Complete | ✓ | ✓ | old |  | Google-first, no name field. The official Google “G” is on main (#330); staging still shows the old circle. Desktop vertical centring unchanged. | Top-align the form on tall desktop screens; release. |
| P03● | Account · log in (incl. returning to Claude)Customer | Complete | ✓ | old | — |  | Done on main (#330): /login?next=/mcp/install shows “Sign in to connect Claude” with the official Google mark. Staging still has the older build. | Deploy main to staging, then release. |
| P04● | Plan stepCustomer | Complete | ✓ | old | old |  | Shared mode (#339): shop name + Startup 12 months $59 / lifetime $99 / Scaling $249, 7-day card trial, nothing preselected, Enterprise → support. Owner-checked checkout; a duplicate subscription is cancelled by the webhook. Standalone mode keeps the old step. | Staging rollout (#349), then release. |
| P05● | Connect stepCustomer | Complete | ✓ | old | old |  | Shared mode (#341): Shopify connects to the owner's shop before it is eligible; Meta/Google Ads unlock after the first import; Klaviyo 'coming soon' for self-serve; Continue waits for Shopify. | Staging journey (9.1). |
| P06● | StatusCustomer | Complete | ✓ | old | old |  | Shared mode (#341): Plan / Shopify / First import / Claude checklist from /api/status, live polling, Connect Claude when ready, working Reconnect Shopify. | Staging journey (9.1). |
| P07● | Connect ClaudeCustomer | Complete | ✓ | ✓ | old |  | Public, copy button, plan choice, plain access note. Production still redirects signed-out visitors (S2 not released). | Release S2. |
| P08● | Operations · SourcesOperator | Complete | ✓ | old | old | | In the shared operations shell and nav (#347); admin guards and nonces unchanged. | — |
| P09● | Operations · ConnectionsOperator | Complete | ✓ | old | old | | In the shared operations shell and nav (#347); admin guards and nonces unchanged. | — |
| P10● | Operations · PipelinesOperator | Complete | ✓ | old | old | | In the shared operations shell and nav (#347); admin guards and nonces unchanged. | — |
| P11● | Operations · Slack thread replayOperator | Complete | ✓ | old | old | | In the shared operations shell and nav (#347); admin guards and nonces unchanged. | — |
| P12● | Operations · Source testsOperator | Complete | ✓ | old | old | | In the shared operations shell and nav (#347); admin guards and nonces unchanged. | — |
| E01● | Magic link · request and sentCustomer | Complete | ✓ | ✓ | — |  | Matches the prototype. The footer Help link points to /help on main (#330). | Deploy main to staging. |
| E02● | Magic link · landingCustomer | Complete | ✓ | old | old | | Magic-link landing says 'You're signed in.' (#345). | — |
| E03● | Forgot password · requestCustomer | Complete | ✓ | ✓ | — |  | Matches the prototype. Help points to /help on main (#330). | As E01. |
| E04● | Reset password · set newCustomer | Complete | ✓ | old | old | | Reset landing has its own heading; the 15-minute single-use claim is verified in code (#345). | — |
| E05 | Google sign-in returnCustomer | Complete | ✓ | ✓ | ✓ | | Verified on production 2026-09-25 with an external account (david@helloconvo.com): consent shows signalanalyst.ai with Privacy/Terms, lands signed in. | — |
| E06● | Stripe checkoutCustomer | External / deferred | n/a | n/a | n/a |  | Hosted by Stripe. | — |
| E07● | Checkout return · paid / cancelledCustomer | Complete | ✓ | old | old | | Shared checkout return: 'Starting your trial…', waits for the webhook, holds re-submission (#339). | — |
| E08 | Stripe billing portalCustomer | External / deferred | n/a | n/a | n/a | | Hosted by Stripe. | Link from C05. |
| E09● | Shopify consent → confirmCustomer | Complete | ✓ | old | old | | Inside the new Connect step: provider-specific copy and a "Connect <store>" button (#350); explicit selection is kept. | — |
| E10● | Meta consent → confirmCustomer | Complete | ✓ | old | old | | As E09, for Meta ad accounts (#350). | — |
| E11 | Google Ads connect resultCustomer | Old design | old | old | old | | Typed customer IDs; no account picker. | S5 Google Ads picker. |
| E12● | Klaviyo connect resultCustomer | Complete | ✓ | old | old | | The Klaviyo card says read-only access is enough and links to Klaviyo's API-key settings (#353). Klaviyo is locked for self-serve accounts until its self-serve connection lane exists. | — |
| E13 | Shopify App Store installCustomer | External / deferred | n/a | n/a | n/a | | Deferred: App Store path out of scope; S7 is a redirect only. | S7. |
| E14● | Claude · shop pickerCustomer | Complete | ✓ | old | old |  | Plain-language consent (#343); the destination trust heading and form are unchanged. | — |
| E15● | Claude · unrecognized destinationCustomer | Complete | ✓ | old | old | | The unrecognized-destination warning is kept; copy updated with E14 (#343). | — |
| E16● | Slack · install startCustomer | Complete | ✓ | old | old | | On the public shell (#344), same status codes and no-oracle refusals; the CSP is stricter. | — |
| E17● | Slack · install resultCustomer | Complete | ✓ | old | old | | As E16. | — |
| E18● | Slack · link can't be usedCustomer | Complete | ✓ | old | old |  | Branded 'This link can't be used' with Open Slack and Get help (#344). | — |
| E19● | Slack · configure channelCustomer | Complete | ✓ | old | old | | Channel shop picker on the shell; form fields unchanged (#344). | — |
| E20● | Slack · channel savedCustomer | Complete | ✓ | old | old | | As E16. | — |
| E21● | Operations · Source detailOperator | Complete | ✓ | old | old | | In the shared operations shell and nav (#347); admin guards and nonces unchanged. | — |
| E22● | Operations · Backfill session callbackOperator | Complete | ✓ | old | old | | The failed handoff shows a readable page to browsers (JSON for API callers), same status codes (#347). | — |
| E23● | Email · sign-in linkEmail | Complete | ✓ | old | old |  | Branded layout on main (#331): logo, brand button, fallback link, footer with Signal Collective LLC and support@. EMAIL_FROM now required. | Deploy. |
| E24● | Email · password resetEmail | Complete | ✓ | old | old |  | Branded layout on main (#331). | Deploy. |
| E25● | Email · organization invitationEmail | Complete | ✓ | old | old |  | Branded on main (#331); names the recipient and role. | Deploy. |
| E26● | Email · thread invitationEmail | External / deferred | n/a | old | old |  | Removed on main (#331): thread invitations no longer send an email. | — |
| I01 | Design system showcaseOperator | Internal | ✓ | ✓ | ✓ | | Exists at /design-system. | — |
| C01● | Start asking (final step)Customer | Complete | ✓ | — | — |  | Shared mode (#341): example questions and Open Claude once Claude is connected (K-3 status, #340). | Staging journey (9.1). |
| C02● | Privacy policyPublic | Complete | ✓ | — | ✓ |  | Live on production with Signal Collective LLC (registered agent), Delaware, support@. Staging lacks the LEGAL_* settings (404). | Set LEGAL_* on staging. |
| C03● | Terms of servicePublic | Complete | ✓ | — | ✓ |  | Live on production. | As C02. |
| C04● | PricingPublic | Complete | section | n/a | — |  | /pricing (#330); the phone header menu now reaches Pricing and Help (#342). | Release. |
| C05● | Plan & billingCustomer | Complete | ✓ | — | — |  | Account Home (#341): plan and trial; Manage billing opens the Stripe portal (owner-checked, Stripe host only). | Configure the Stripe portal (runbook, #349). |
| C06● | Manage data sourcesCustomer | Complete | ✓ | — | — |  | Account Home: sources summary and Manage sources → Connect; Reconnect Shopify on Status. | — |
| C07● | Connected apps (Claude, Slack)Customer | Complete | ✓ | — | — |  | Account Home: Claude status and Set up Claude; how to disconnect in Claude. | — |
| C08● | Account settingsCustomer | Complete | ✓ | — | — |  | Account Home: signed-in email and Sign out. | — |
| C09● | Team and invitationsCustomer | Partial | ✓ | — | — |  | Account Home says inviting teammates is coming soon and to email support. | Self-serve team invites (post-MVP). |
| C10● | Delete account and dataCustomer | Complete | ✓ | — | — |  | Account Home: deletion request to support; the copy matches the privacy policy (within 30 days). | Operator deletion runbook. |
| C11● | Add to Slack entry pointCustomer | Partial | ✓ | — | — | | Add to Slack appears when SLACK_APP_INSTALL_URL is a slack.com install link; otherwise 'coming soon'. There is no multi-workspace Slack install yet. | Slack app distribution (post-MVP). |
| C12 | Slack welcome DM and App HomeCustomer | Missing | — | — | — | | Slack surface not designed in-product. | Later. |
| C13 | Shopify embedded app homeCustomer | External / deferred | n/a | n/a | n/a | | Out of scope (App Store path). | — |
| C14● | Branded 404 and error pagePublic | Complete | ✓ | ✓ | — |  | 404 and a branded 500 with a reference id (#330) on main; browser page routes are wrapped. Production still returns Bun's empty 404. | Release. |
| C15● | Help and supportCustomer | Complete | ✓ | — | — |  | /help on main (#330): setup, Claude, billing and account answers; contact from SUPPORT_EMAIL. | Set SUPPORT_EMAIL on staging and production; release. |
| C16● | Operations index and shared navOperator | Complete | ✓ | — | — | | /operations index on main (#330), admin-only (401 signed out). | Release. |