Skip to content

feat(onboarding): report CTA → first-task step, not blank /tasks (chat#1881 item 2b) - #1884

Merged
sweetmantech merged 1 commit into
mainfrom
feat/report-cta-first-task
Jul 22, 2026
Merged

feat(onboarding): report CTA → first-task step, not blank /tasks (chat#1881 item 2b)#1884
sweetmantech merged 1 commit into
mainfrom
feat/report-cta-first-task

Conversation

@sweetmantech

@sweetmantech sweetmantech commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

What

The post-valuation catalog report's primary CTA — "Set up your weekly report" — routed to a blank /tasks page. This points it at /onboarding/first-task, the existing one-click first-task flow:

  1. Pre-runs the first weekly catalog report through the normal chat pipeline
  2. Shows the finished report (real tool components, not a text dump)
  3. Then asks the one confirm question — "get this every Monday?" — which schedules the task

So marketing-funnel users get the same first-report moment the direct signup already delivers.

Part of #1881item 2b.

Changes

The first-task step (FirstTaskStepFirstTaskReportRunFirstTaskConfirm) and its route already exist on main (#1880); this PR is the wiring the CTA's own comment flagged as pending.

Verification gate

Full end-to-end verification (report actually generates + schedules) needs a populated roster, which is gated on api item 1b (api#777 — link the searched Spotify artist). Until 1b is live, a funnel signup can land on an empty roster and FirstTaskStep shows "Select an artist to generate your first report." The CTA rewire itself is complete and correct; the destination flow is exercised by the direct-signup path today.

Refs #1881

🤖 Generated with Claude Code


Summary by cubic

Reroutes the “Set up your weekly report” CTA to /onboarding/first-task instead of a blank /tasks. This runs the one‑click flow that pre‑generates the first weekly report and confirms Monday scheduling, matching the direct‑signup experience and addressing #1881 item 2b.

Written for commit 5808148. Summary will update on new commits.

Review in cubic

…sks (chat#1881 item 2b)

The "Set up your weekly report" CTA on the post-valuation catalog report
routed to a blank /tasks page. Point it at /onboarding/first-task — the
existing one-click first-task flow that pre-runs the first weekly report,
shows the finished output, then confirms the Monday schedule — so funnel
users get the same first-report moment as the direct signup.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@cursor

cursor Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Bugbot is not enabled for your account, so this pull request was not reviewed.

Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs.

@vercel

vercel Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
chat Ready Ready Preview Jul 22, 2026 1:42pm

Request Review

@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@sweetmantech, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 50 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: f74fbda3-1376-49cd-9126-4a25aa76c22d

📥 Commits

Reviewing files that changed from the base of the PR and between d258412 and 5808148.

📒 Files selected for processing (1)
  • components/Catalog/report/CatalogReportCta.tsx
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/report-cta-first-task

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 58081488d5

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

</p>
<Link
href="/tasks"
href="/onboarding/first-task"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve the report context in the first-task CTA

When a user has more than one artist/catalog, this generic link can pre-run and schedule a report for the wrong artist/catalog: the /catalogs/[catalogId] report is rendered for the route's catalogId, but /onboarding/first-task ignores that route context and derives the report from the global selectedArtist plus catalogs[0] in FirstTaskStep, and confirmation builds the task from selectedArtist again in useConfirmFirstTask. If the current header selection differs from the catalog being viewed, the CTA labeled as re-measuring “this” valuation takes the user to a flow that schedules a different weekly report; pass the catalog/artist context through the link or sync the destination to the viewed catalog.

Useful? React with 👍 / 👎.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 1 file

Confidence score: 4/5

  • In components/Catalog/report/CatalogReportCta.tsx, the hardcoded /onboarding/first-task link drops the current /catalogs/[catalogId] (and artist) context, so users can be sent to a generic onboarding path instead of a catalog-specific flow. This is likely a UX/navigation regression rather than a hard break—pass the active catalog/artist params in the CTA URL before merging.
Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="components/Catalog/report/CatalogReportCta.tsx">

<violation number="1" location="components/Catalog/report/CatalogReportCta.tsx:23">
P2: This hardcoded link doesn't carry the current catalog/artist context to the destination. `CatalogReportCta` is rendered inside a catalog-specific report (under `/catalogs/[catalogId]`), but `/onboarding/first-task` reportedly derives its report from global `selectedArtist` / `catalogs[0]` state. For users with multiple catalogs, if the header selection differs from the catalog being viewed, the CTA labeled "Set up your weekly report" for *this* valuation could schedule a report for a different catalog. Consider passing the catalog or artist ID as a query parameter (e.g., `/onboarding/first-task?catalogId=${catalogId}`) and having `FirstTaskStep` respect it.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

</p>
<Link
href="/tasks"
href="/onboarding/first-task"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: This hardcoded link doesn't carry the current catalog/artist context to the destination. CatalogReportCta is rendered inside a catalog-specific report (under /catalogs/[catalogId]), but /onboarding/first-task reportedly derives its report from global selectedArtist / catalogs[0] state. For users with multiple catalogs, if the header selection differs from the catalog being viewed, the CTA labeled "Set up your weekly report" for this valuation could schedule a report for a different catalog. Consider passing the catalog or artist ID as a query parameter (e.g., /onboarding/first-task?catalogId=${catalogId}) and having FirstTaskStep respect it.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At components/Catalog/report/CatalogReportCta.tsx, line 23:

<comment>This hardcoded link doesn't carry the current catalog/artist context to the destination. `CatalogReportCta` is rendered inside a catalog-specific report (under `/catalogs/[catalogId]`), but `/onboarding/first-task` reportedly derives its report from global `selectedArtist` / `catalogs[0]` state. For users with multiple catalogs, if the header selection differs from the catalog being viewed, the CTA labeled "Set up your weekly report" for *this* valuation could schedule a report for a different catalog. Consider passing the catalog or artist ID as a query parameter (e.g., `/onboarding/first-task?catalogId=${catalogId}`) and having `FirstTaskStep` respect it.</comment>

<file context>
@@ -19,7 +20,7 @@ const CatalogReportCta = () => {
       </p>
       <Link
-        href="/tasks"
+        href="/onboarding/first-task"
         className="mt-4 inline-flex items-center justify-center rounded-xl bg-primary px-5 py-2.5 font-heading text-sm font-semibold text-primary-foreground transition-colors duration-200 hover:opacity-90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"
       >
</file context>

@sweetmantech

Copy link
Copy Markdown
Collaborator Author

✅ Preview verification — CTA now routes to the first-task flow

Preview: https://chat-a9bwfbt5s-recoup.vercel.apptest-recoup-api. Signed in as a real account with a claimed catalog and drove it through Chrome DevTools.

The code change

components/Catalog/report/CatalogReportCta.tsx — the report's primary CTA:

-        href="/tasks"
+        href="/onboarding/first-task"

Verified in the UI

  1. Opened the catalog report (/catalogs/{id}), signed in → report rendered (Faye Webster, $6.9M, 67 tracks).
  2. DOM check: the "Set up your weekly report" link resolves to url=".../onboarding/first-task" (was /tasks).
  3. Clicked it → navigated to /onboarding/first-task, which shows the real one-click first-task flow — heading "Your first weekly report", subtitle "This week's catalog report for Faye Webster — the kind of update Recoup can send you every Monday," and it began pre-running ("Preparing your workspace…"). Not the old blank /tasks page.

1. The CTA on the catalog report (the changed component, rendered):

Report CTA — Set up your weekly report

2. Where it now lands — the first-task pre-run flow (not /tasks):

First-task destination

Verdict: 2b verified. The report CTA now delivers funnel users into the slick first-report moment. CI green, MERGEABLE. Tracking: chat#1881 2b. (Screenshots on the assets/pr1884-preview-verification branch.)

@sweetmantech
sweetmantech merged commit c477899 into main Jul 22, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant