# 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