Levee User Research
Levee User Research
A full-screen AI levee interface that guides users through building a complete user research plan and interview guide with lock-based progression.
Problems solved
- Guide research planning through lock-based stage progression
- Collect research context, questions, and interview guide content
- Generate a complete research plan from prior stage outputs
- Blend form inputs with conversational QA in a full-screen flow
Use cases
- User research planning tools
- Interview guide generators
- Research methodology builders
- Product research onboarding levees
Setup
Requirements, wiring steps, and what this pattern adds to your project.
Getting started
Pick how you want to pull this pattern in. Then wire env vars and routes the same way.
- 1
Download → Next.js app
Use Download → Next.js app in the preview toolbar. You get a zip scaffold (Pro downloads rewrite preview `/view/.../api/*` paths to `/api/*` automatically).
- 2
Extract the zip and install dependencies
Unzip the archive, then run `pnpm install` (or npm / yarn) in the project folder.
- 3
Fill .env.local
The download includes .env.local placeholders when needed. Add real values for: OPENAI_API_KEY.
- 4
Customize the agent and tool files
Adapt prompts, tools, and stop conditions in the generated project for your product.
- 5
Run the app and open the pattern route
Run `pnpm dev`, open the setup/checklist page if present, then navigate to the generated pattern route and verify responses.
Environment variables
OPENAI_API_KEYGet key
Capabilities
AI SDK APIs
useChatDefaultChatTransporttoolToolLoopAgenthasToolCallstepCountIscreateUIMessageStreamProviders
External services
Files added
21 filesapp/page.tsxapp/layout.tsxapp/api/levee/route.tscomponents/levee-user-research.tsxcomponents/stage-chat.tsxcomponents/empty-state.tsxcomponents/tool-views/multiple-choice-view.tsxcomponents/tool-views/rating-view.tsxcomponents/tool-views/text-input-view.tsxcomponents/tool-views/lock-update-view.tsxlib/types.tslib/stages.tslib/rate-limit.tslib/ai/levee-stream-config.tslib/ai/tools/ask-multiple-choice-tool.tslib/ai/tools/ask-rating-tool.tslib/ai/tools/ask-text-input-tool.tslib/ai/tools/complete-stage-tool.tslib/ai/tools/evaluate-lock-tool.tslib/ai/tools/index.tsREADME.md
Dependencies
17 totalnpm packages
7
Registry components
Critical files
lib/stages.tsStage configuration array defining 4 stages (Research Context form, Research Questions QA, Interview Guide QA, Research Plan Synthesis). Each stage has lock items, initial inputs, agent instructions, and tool sets.
ai/levee-stream-config.tsBuilds streamText config per stage mode. Contains system prompt construction with mode-specific rules (form, chat, synthesis), tool set selection, and stop conditions. Central orchestration logic.
levee/route.tsStreaming API endpoint. Validates with Zod, calls buildStreamConfig, uses prepareStep to force evaluateLock after tool calls, streams lock updates via onStepFinish, and generates synthesis document on completeStage.
Requirements
- Complexity
- Advanced
- Setup time
- ~10 minutes
- Node
- 24+
- Memory
- 256MB







