Documentation Index
Fetch the complete documentation index at: https://docs.founder-sherpa.com/llms.txt
Use this file to discover all available pages before exploring further.
Give PROJECT_INSIGHTS realistic timeout headroom
On the project tearsheet’s AI Insights tab, clicking the Refresh button (or auto-refreshing on stale insights) returns the user-facing error:Chat analysis background jobs
Part of #839. Follow-up to #848 (option 2 quick fix).Epic: workspace-wide CoPilot AI assistant
Convert the existing project-setup chat into a workspace-wide CoPilot accessible from a floating action button on every authenticated page.Raise INTERVIEWEE_DISCOVERY timeout from 60s to 90s
POST /api/ai/interviewees/[titleId] is intermittently returning 422 after ~60s when users click “Find Interviewees” from the persona prep tab.Constrain interview-question targetHypothesisType to selected types
In the interview guide AI question suggester, when a user selects only one hypothesis type (e.g.Enrich interview-guide question prompt context
The AI server actionsuggestInterviewQuestions (lib/ai/actions.ts:5203) and prompt builder buildInterviewQuestionSuggestionPrompt ([lib/ai/prompts.ts:879](lib/ai/prompts.Add CRUD tools for projects, personas, hypotheses, interviewees
Users who create or refine projects through the chat interface cannot update fields like project name, description, problem statement, personas, hypotheses, or interviewees.Add LinkedIn URL and custom links fields
Interviewee profiles currently store basic contact info (name, company, title, email, phone, notes) but lack any URL/link fields.Allow browsing all interviewees when AI extraction fails
When the AI transcript parser doesn’t identify an interviewee (empty name, “Unknown”, or very generic), theIntervieweeReview component only shows a “Create new” form.Add interviewee matching to batch review
The batch transcript import flow always creates new interviewees from AI-extracted data, with no option to match against existing workspace interviewees.Add per-file question review to batch transcript import
In the single-file transcript import, users get full interactive control over AI-extracted questions via theQuestionsReview component: include/exclude individual questions, edit text, change cat…Show batch imports in Import History page
The Import History page (/projects/[id]/import) only shows single-file transcript imports.AI-powered analysis for manual interview entries
🤖 Generated with Claude CodeFix full project ZIP export missing hypotheses and role data
When exporting a project via “Export Full Project” (ZIP), thetitles-hypotheses.csv file is missing data that users have created.Replace discovery journey diagram with setup-guide checklist
Replace the circular pentagon/ring “Your discovery journey” visualization on the Project Overview tab with a linear accordion checklist — the standard SaaS setup guide pattern.Deduplicate near-duplicate evidence in chunked transcript merging
When parsing long transcripts (>30K characters), the app splits them into overlapping chunks (20K chars, 2K overlap) and processes each chunk with AI in parallel.Move AI analysis calls to API routes to avoid Vercel 30s timeout
When running an insights analysis, it times out with the following error in Vercel logs:Interviewee suggestions crash — GPT-5.2 reasoning model truncates JSON output
The “Find Interviewees” AI feature on the Title Tearsheet page crashes with a JSON parse error. Users see a generic error instead of interviewee suggestions.Resolve Supabase auth token lock contention
Browser console floods withLock "lock:sb-...-auth-token" was released because another request stole it errors. Users intermittently see “Analysis not found” in the AI suggestion UI.Strip HTML tags from AI analysis quote displays
Evidencewhat_they_said and implications fields store HTML from the RichTextEditor (e.g., <ul><li><p>...</p></li></ul>).Migrate AI models to gpt-5.4 and fix reasoning model compat
The “Find Interviewees” AI feature on the Title Tearsheet page crashes with a JSON parse error. Users see a generic error instead of interviewee suggestions.Remove automatic hypothesis creation when adding personas
When a persona (title) is created, a PostgreSQL trigger (create_title_hypotheses_trg) automatically inserts 3 placeholder hypotheses (jtbd, current_approach, problem) with generic titles like “Jo…Improve linked problems readability on VP hypothesis cards
Linked problem statements on Value Proposition hypothesis cards render as truncated Badge chips (max 220px), making the problem text unreadable.Add Value Proposition hypothesis type with cross-persona problem linking
Add a newvalue_proposition hypothesis type that users can manually create and link to one or more problem hypotheses across personas.Allow personas to have multiple role types
Allow a single persona (title) to hold multiple buying-process roles (e.g., “VP of Engineering” as both Decider and User) instead of being limited to onerole_type.Added .env.test to the gitingore
Added .env.test to the gitingore.Move Find Interviewees AI call to API route to avoid Vercel timeout
The “Find Interviewees” AI feature times out in production (app.founder-sherpa.com), showing: “The AI returned an invalid response. Please try again.”Add hypothesis validation, notifications page, and fix changelog errors
🤖 Generated with Claude CodeEpic: Batch Transcript Import with Vercel Queues
#750 — Batch Transcript Import with Vercel QueuesIntegrate Sentry.io error tracking
Add real-time error tracking, performance monitoring, session replay, and structured logging to the production application using Sentry.io (@sentry/nextjs).Chat-First Setup Wizard (Epic #736)
Part of #736 — Chat-First Setup Wizard (Phase 1: Foundation)Add persona context to AI question suggestions and enforce concise format
AI-suggested interview questions are too long and complex, overwhelming users.Migrate Find Interviewees to Sheet + add persistent tab view
The “Find Interviewees” feature uses an old custom modal pattern (raw div overlay) instead of the app’s standard Sheet component.Auto-resize textareas and rich text editing for long-form fields
Users report that multi-line text boxes are hard to read because:Add Questions and Interviewees to sidebar navigation
Users can’t find the Question Catalog (/questions) or Interviewees list (/interviewees). Both pages exist but are completely absent from the sidebar.Improve worthiness score to penalize low hypothesis coverage
The current worthiness formulatrueCount / (trueCount + falseCount) × 100 completely ignores active hypotheses with dont_know status.Increase hypothesis character limit from 750 to 2000
Users report the 750-character hypothesis limit is too restrictive.Transcript import fails for chunked transcripts
When importing a ~34K-character interview transcript with all associated hypotheses selected, the user sees:{"success":false,"error":"AI failed to parse the transcript. Please try again."}.Resolve project logo upload freezing at ‘Uploading’ state
When editing a project’s tearsheet and uploading a logo image, the UI freezes at “Uploading” with a spinner that never resolves.Add E2E tests for project creation wizard
Add Playwright E2E tests for the Create Project wizard (modal on/dashboard). Tests cover the full creation flow, required-only fields, and validation error handling.Set up Playwright E2E testing with GitHub CI/CD
Set up Playwright as the E2E testing framework for the project. This is the foundational issue — no tests are written yet, just the infrastructure.Hide Expand All button when no hypotheses have analysis data
Hide Expand All button when no hypotheses have analysis data.Migrate modals to Sheet/Dialog components with draft persistence
Comprehensive refactoring of form modals to improve user experience, data persistence, and accessibility. Currently 22 modal/dialog/sheet components exist across the app, with several pain points:Resolve onboarding wizard cycling back to step 1
After completing a step in the project onboarding wizard (e.g., adding a persona in step 2), clicking Continue cycles the user back to step 1 (Problem Type) instead of advancing to the next step.Migrate Sidebar to Shadcn Sidebar
Audit of the current custom sidebar implementation identified 13 improvement opportunities.Resolve TitleTearsheet empty space via PageHeader ReactNode slots
The Title Tearsheet (persona detail page) has a large block of unused white space to the right of the persona description.Add super admin exemption to projects RLS policies
Super admins who are only a member (not admin/owner) in a workspace get the error “Cannot coerce the result to a single JSON object” when trying to update a project’s problem statement (or …Add missing FK constraints to profiles for PostgREST joins
Closes #694Design Polish and UI Design Consistency
Comprehensive design polish audit identifying inconsistencies across the application’s UI components, page layouts, design tokens, and accessibility patterns.RBAC UX polish — role-based permissions for workspace resources
Polish the role-based access control (RBAC) experience so that owners, admins, and team members have clear, consistent CRUD permissions across workspace/organization resources.Perf: Performance Optimization — Caching, Query Optimization & Database Tuning
Performance improvements including caching, query optimization, and database tuning for faster page loads and reduced server load.Add try-catch error handling to async operations
This PR adds comprehensive try-catch-finally error handling to async operations across multiple components, improving error resilience and user experience by catching unexpected errors that may occ…Hide archived hypotheses and empty groups in Interviews tab
The Interviews tab on the Project Tearsheet shows evidence grouped under archived hypotheses and also displays hypothesis groups with zero interviews, creating clutter.Check owner/admin role before project update to match RLS policy
When a regular workspace member (not owner/admin) tries to save a project’s description, the system returns a cryptic error: Cannot coerce the result to a single JSON objectAdd bulk archive action to Hypotheses tab
Add a “Bulk Archive” action to the Hypotheses tab on the Project Tearsheet.Cascade delete guide items when referenced question is deleted
Deleting a workspace as its owner fails with:new row for relation "interview_guide_items" violates check constraint "interview_guide_items_content_check"Add user-friendly duplicate error to updateTitle
Closes #632Allow same persona name with different role types in same organization
When adding personas during the project creation wizard for a work-related (corporations) project, creating two personas with the same name but different role types within the same organization thr…Use full page navigation after login to prevent redirect race condition
After logging in, the site sometimes does not automatically redirect to the dashboard. Users need to do a hard refresh to access the dashboard.Password update form loses state on auth-triggered remount
When resetting a password (especially after an invitation flow), the confirm new password form gets stuck — the user submits the form, sees a loading spinner, but never gets the success message or …Replace theme submenu with inline icon buttons
The current profile context menu uses a nested submenu (DropdownMenuSub) to expose Light / Dark / System theme options.Route auth email links through app callback instead of localhost
When creating a new account, the confirmation email contains a link pointing tohttp://127.0.0.1:3000, producing a “This site can’t be reached” error in the browser.Epic: Form UX Improvements — Visible Borders + Split Name Fields
Some form fields appear borderless — users only see placeholder text with no visual affordance indicating the field is interactive. The Create Account form’s Name field is one confirmed example.Include project problem statement in all AI features
Several AI-powered features either fail to include the project’s problem statement (projects.context column) or reference a non-existent column, resulting in less contextually accurate AI responses.Epic #611: Settings tab navigation + context-aware sidebar restructure
The Organization Settings page (/workspaces/[slug]/settings) currently renders all sections (General, Members, Danger Zone) as a single long scrolling form with no navigation.Invite Flow UX - Streamlined Onboarding for Invited Users
Streamline the invite-to-onboarding journey so invited users go from email to workspace access in a single, friction-free flow.Form UX improvements — visible borders and split name fields
Two quality-of-life improvements to forms across the app:- Visible input borders — Increased the contrast of the
--inputCSS token in both light and dark mode so all form inputs have a clearly visible border. Previously, borders were nearly invisible against the background. - First Name + Last Name on registration — The Create Account form now collects First Name and Last Name separately instead of a single “Full Name” field. This prevents incorrect name splitting for compound first names (e.g., “Mary Jane Watson”). The admin Create User and Edit User forms already used split fields; they now write
first_name/last_namedirectly rather than reconstructing afull_namestring. Welcome emails also use the stored first name directly.
Remove website folder
Moved webstie to report CustDis/websiteAdd Docs link to sidebar navigation
Add a “Docs” link to the app’s left sidebar navigation (SidebarNav) that opens the documentation site at docs.founder-sherpa.com in a new tab.Update logos for docs site
Update logos and favicon with place holder images.Workspace member management — roles, invitations, privacy & account lifecycle
Streamline workspace and project membership, invitation flows, ownership transfers, and account lifecycle.Epic: Inline hypothesis AI validation flow
Part of epic #581.Split Full Name into First Name + Last Name in admin user forms
The Create User and Edit User forms in the admin panel now use separate First Name and Last Name fields.Show workspace name in settings breadcrumb
The header breadcrumb on the workspace settings page (/workspaces/[slug]/settings) displays:Prevent false confetti/toast on first visit to existing projects
When opening an existing, fully set-up project, the confetti animation and “Setup complete!” success toast fire on first visit (new browser, new device, or cleared localStorage).Move Admin entry point from sidebar nav to header
The “Admin” link currently lives in the sidebar nav (SidebarNav.tsx) and is appended to the standard nav items when isSuperAdmin is true.Rename UI label “Workspace” -> “Organization” across user-facing copy
The term “Workspace” is used throughout the app to describe the entity that groups projects and members. User testing feedback suggests “Organization” is a more intuitive mental model for this concept.Rename app from “Customer Discovery” to “Founder Sherpa”
The app is named Founder Sherpa, but the codebase still uses “Customer Discovery” throughout — in page titles, metadata, email templates, auth screens, and UI copy.Move ‘Create Your First Project’ CTA above the fold on empty dashboard
When a user has no projects in their workspace, the dashboard shows an onboarding empty state.Move workspace settings from switcher dropdown to sidebar nav
Currently, the Workspace Settings link is buried inside the workspace switcher dropdown (SidebarWorkspaceSwitcher).Perf: optimize page performance with loading states, dynamic imports, and image optimization
interviewees, admin, and settings routes for instant visual feedback ProjectTearsheet, TitleTearsheet, QuestionsPageContent) to reduce initial bundle size via code splitting optimization, lazy load…Analyze All modal unmounts on completion, showing estimate instead of results
After running Analyze All on a project or title, the modal does not show the results/completion view.Add Founder Sherpa marketing website
Scaffold a new Next.js 16 project in /website as a separate Vercel project. Includes:Preserve partial results and isolate failures in Analyze All
When a user clicks Analyze All on the Project Tearsheet and the project has multiple titles, a single thrown error (server action timeout, network failure, unexpected exception) in any hypothes…Prevent infinite spinner on large transcript imports
When a user uploads a.txt interview transcript of ~60,000 characters, the system accepts the file but the analysis spinner runs indefinitely — in the reported case, for over 10 minutes until the…Add user account settings page with profile, avatar, and password management
[!NOTE] > Medium Risk > Touches authentication (password change flow) and introduces new database migrations and storage/RLS policies for avatar uploads; mistakes could impact account securit…
March 7, 2026
New FeatureImprovement
Email infrastructure, notification system, and documentation site
Email infrastructure and notification system
Added email infrastructure using Resend for transactional emails. Includes welcome emails on first sign-in, workspace activity digest emails (daily and weekly), and notification preferences in user settings.Documentation site launch
Launched the Founder Sherpa documentation site with comprehensive guides for all user roles, API reference, and changelog.Interview guides
Create structured interview prep guides scoped to personas. Select hypotheses to test, add catalog questions and custom notes, reorder items with drag-and-drop, and get AI-suggested questions.System question library
Super admins can now manage a global question catalog. Workspace members see suggested questions that auto-copy to their catalog on use. Includes CSV bulk upload and workspace sync.Persona descriptors
Personas now support three optional descriptor fields — description, demographics, and goals — for richer context when planning interviews.Transcript import
Upload.txt interview transcripts and let AI extract structured evidence, identify interviewees, and match questions from your catalog. Supports Zoom, Otter.ai, Rev, Google Meet, Microsoft Teams, and manual notes.