You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Parent epic:#1446 (Amicus — AI Study Partner v1) Phase: 4 · Size: S · Depends on:#1465 (daily prompt), #1467 (deep link)
The "Amicus noticed..." card on the home screen. Renders the daily proactive prompt with a tap-to-open action, an "Ask Amicus anything..." input field, and an upgrade CTA for non-premium users.
Files to create
app/src/components/AmicusHomeCard.tsx — the card component
app/src/screens/HomeScreen.tsx — insert <AmicusHomeCard /> in the layout (see placement below)
Placement in HomeScreen
Current HomeScreen layout (per file header):
Greeting row (text + streak)
ContinueReadingHero (full-width image hero)
Verse of the Day
ActivePlanCard compact row (if active plan)
"From your study" image carousel
ProgressRow collapsible
Insert AmicusHomeCard between 4 and 5 (after plan, before carousel). Amicus feels natural alongside the "what to do next" section. Verify placement with Craig at implementation time if it feels off.
Parent epic: #1446 (Amicus — AI Study Partner v1)
Phase: 4 · Size: S · Depends on: #1465 (daily prompt), #1467 (deep link)
The "Amicus noticed..." card on the home screen. Renders the daily proactive prompt with a tap-to-open action, an "Ask Amicus anything..." input field, and an upgrade CTA for non-premium users.
Files to create
app/src/components/AmicusHomeCard.tsx— the card componentapp/src/components/__tests__/AmicusHomeCard.test.tsxFiles to modify
app/src/screens/HomeScreen.tsx— insert<AmicusHomeCard />in the layout (see placement below)Placement in HomeScreen
Current HomeScreen layout (per file header):
Insert AmicusHomeCard between 4 and 5 (after plan, before carousel). Amicus feels natural alongside the "what to do next" section. Verify placement with Craig at implementation time if it feels off.
Premium path (card content)
Visual
radii.lgcorners,base.bgElevatedbackgroundbase.gold)MessageSquareicon in top-left (gold, 16px)base.gold)prompt_textfrom daily prompt (ai-partner: daily proactive prompt generation job #1465)textMutedInteractions
seed_query(handed off to ai-partner: deep link into Partner tab with context #1467)NewThreadwith empty state (user types in the tab)Loading
getDailyPrompt()returns null (first launch, offline with no cache), render a fallback card:Non-premium path
Same visual but:
Hook usage
Conventions to follow
LoadingSkeletoncomponentany; logger for actions (e.g., "home card tapped")Acceptance criteria
amicus_enabledpreference (hidden when disabled)anytypes; lint cleanOut of scope