# Scoping and Requirements
- Determine the broad purpose of the application
- Document the value objective of the application
- Collaborate with LLMs to produce a set of the key features to include in the application
- Collaborate with LLMs to turn features into initial [[Project Requirements Document (PRD)]]
- Determine the [[Technical Stack]] for the development project
- Think about costs and do high-level cost analysis
# Repo and Coding Setup
- Create local folder for project and open in IDE
- Initialize a Git repository using `git init`
- Collaborate with LLMs to determine the initial file structure
- Setup key system prompts for [[Cursor]]:
- `.cursorrules`
- Provide high-level project context - a written explanation of what the application will do
- Provide technical stack and packages
- [[UI Component Libraries]]
- Provide coding guidance - using a pre-create template (e.g., [Cursor Directory](https://cursor.directory/)) or [[custom .cursorrules templates]] provide coding instructions based on your technical stack
- Provide initial file structure
- Use `tree` package
- `tree -L 2 -I 'node_modules|.git`
- Provide sample code, as needed
- Create additional fundamental files:
- `.env.local`
- `.gitignore`
- `README.md`
- `LICENSE.md`
# Prototyping
- [Magic Patterns](https://www.magicpatterns.com/)
# Development and Further Prompting
- Use your initial PRD, file structure, technical stack, and packages to with a reasoning LLM to create a detailed step-by-step development plan that can be iteratively fed into Cursor and propose a new file structure
- Save the step-by-step instructions as a `.md` file and iteratively have cursor make the updates
- For specialized packages, provide documentation using "add document" functionality and example code