Size: L — the "better understanding" payoff of onboarding image attachments.
Why
Beyond generic vision understanding, the highest-value case is an uploaded artifact that already encodes structure: a budget spreadsheet, a habit tracker, a class timetable, a training program, a chore roster. Instead of only nudging the free-text facets, we can read that artifact and pre-build the matching section — schema and initial rows — so the planner is populated on day one.
Scope
- Detect artifact-like images during onboarding (table/columns/list heuristics or a vision classification pass).
- Extract structure: column headers → field definitions (reuse the section field-def types), rows → candidate entries, recurring items → habits/recurring flags.
- Route through the existing generation path (
generate-sections.ts / persist-sections.ts) to create the section, then offer to import the extracted rows as CustomEntrys (with a preview/confirm — see the confirm-understanding issue).
- Overlaps with the standalone "Data import (CSV/XLSX)" issue — share the column→field mapping UI; this issue is the vision/OCR front-door to it during onboarding.
Notes
- Guard against hallucinated rows — show extracted data for confirmation before persisting; never silently create entries.
- Start with the top artifact types (budget, habits, schedule) and expand.
Depends on: multimodal callAI, onboarding image attachments.
Size: L — the "better understanding" payoff of onboarding image attachments.
Why
Beyond generic vision understanding, the highest-value case is an uploaded artifact that already encodes structure: a budget spreadsheet, a habit tracker, a class timetable, a training program, a chore roster. Instead of only nudging the free-text facets, we can read that artifact and pre-build the matching section — schema and initial rows — so the planner is populated on day one.
Scope
generate-sections.ts/persist-sections.ts) to create the section, then offer to import the extracted rows asCustomEntrys (with a preview/confirm — see the confirm-understanding issue).Notes
Depends on: multimodal
callAI, onboarding image attachments.