Stylistic Guidelines
Here's an example of a simple spec:
Todoer is a personal ToDo app.
### Tech Stack
- Django
- Tailwind CSS
### Data
- Todo list item
- content: plain text
- created_at
- marked_as_done_at
### Users and permissions
- users can sign in with Google (no email/password sign in)
- every user sees only their own todo items
### User stories
- add a new entry
- mark entry as Done (checkbox)
- remove an entryRecommended sections
The sections are not fixed, but it usually makes sense to specify:
- A short description of what the app is supposed to be โ adding the app's name is often helpful
- Tech stack โ what target language, frameworks and libraries you want to use. If you are using a popular framework like Django, the target language will be inferred from it
- Data โ if the app is data-centric, it's a good practice to specify what data (entities and attributes) you envision
- Users and permissions โ often helpful when you want to specify sign up/sign in behavior and permissions
- Functional requirements โ can be described in many ways:
- User stories work well for UI apps
- Sequences of operations / pseudocode works well for data processing apps
- Non-functional requirements โ can be captured in a separate section
General prompting techniques
CodeSpeak uses LLMs to process specs, so many prompt engineering techniques work well:
- Examples of scenarios and input-output pairs
- Prefer describing what to do (as opposed to what to not do)
- XML tags can be useful to mark blocks with different purposes
- Emphasizing importance with
**bold**andIMPORTANT