Size: M — improves onboarding understanding with or without images.
Why
Today the flow jumps straight from a short chat to generating a full planner once isProfileSufficient() heuristics pass (conversation.ts:30-40: ≥4 facets, ≥3 dimensions, one salient). The user never sees or corrects what we inferred, so wrong/low-confidence facets (and, once image attachments land, anything mis-read from a photo) silently shape the generated sections. A lightweight confirmation step measurably improves fit and trust.
Scope
- Before
/api/profile/generate, show a compact "Here's what I understand about you" summary: facets grouped by dimension with salience, plus the sections we're about to create.
- Let the user tweak: remove/soften a facet, add a missing one, correct an image-derived detail, rename/deselect a proposed section.
- Feed edits back into the profile (reuse
applyFacets) so generation and future reconciliation start from a corrected baseline.
- Flag low-confidence / image-derived facets distinctly so they're easy to verify.
Notes
- Keep it skippable ("Looks good, build it") to preserve the fast path.
- Naturally reuses the profile-editor and reconciliation-review surfaces once those exist — this is the onboarding-time entry point to the same idea.
Size: M — improves onboarding understanding with or without images.
Why
Today the flow jumps straight from a short chat to generating a full planner once
isProfileSufficient()heuristics pass (conversation.ts:30-40: ≥4 facets, ≥3 dimensions, one salient). The user never sees or corrects what we inferred, so wrong/low-confidence facets (and, once image attachments land, anything mis-read from a photo) silently shape the generated sections. A lightweight confirmation step measurably improves fit and trust.Scope
/api/profile/generate, show a compact "Here's what I understand about you" summary: facets grouped by dimension with salience, plus the sections we're about to create.applyFacets) so generation and future reconciliation start from a corrected baseline.Notes