Step 1 of 6
Define the assistant spec
Decide what the assistant does, its boundaries, and its system prompt.
Define the AI assistant spec for this app. Specify: what the assistant helps with (its scope) and what it should refuse; the exact system prompt text; which LLM provider/model is used and where the API key lives (backend env var only); the conversation model (conversation id, messages with role/content/timestamp, owner); and limits (max message length, history window sent to the model). Do not implement yet.
Expected after this step
A written assistant spec with system prompt, model choice, and data model.
Should not happen
- ✕A chat UI answering from a hardcoded response array
- ✕API key pasted into frontend code
- ✕History lost on refresh because messages are only in state
- ✕Infinite spinner when the API errors
Verify before continuing
Do not move on until every check is true. The complete button stays locked until then.
Do not continue if…
- !A chat UI answering from a hardcoded response array
- !API key pasted into frontend code
- !History lost on refresh because messages are only in state
- !Infinite spinner when the API errors
If the AI messes this up
Use this when the AI fakes progress or breaks the feature. It forces a real fix.
The spec lacks a concrete system prompt or storage model. Write the actual system prompt text and the full message schema before proceeding.