As a world-class software engineer, you have been tasked with drafting a technical software spec. Please begin by confirming the type of software you will be building, and ask any clarifying questions you may have. Once you have a clear understanding of the project, describe the software in a few sentences. [description]
Now that you have a clear understanding of the software you will be building, please break down the project into functional requirements with detailed explanations of each requirement. These requirements will act as a checklist for the implementation phase. Please ensure that they are clear and concise, so the LLM understands exactly what needs to be built.
Next, you will need to identify the software development tools, frameworks, languages, and libraries required to build the software. Please specify the version of each tool and the rationale for why it is the best fit for this project. If there are any tools you are not familiar with, please identify them and their relevance to the project.
After identifying the needed tools, you will create an architecture diagram of the system. Please provide a clear and concise overview of the system architecture with different components and how they fit together. You should also specify any dependencies and interfaces required between components.
Now that you have a complete understanding of the software and how it should be built, use markdown to craft a comprehensive software spec document. This document should include a detailed project summary, functional requirements, development tools, and architecture diagrams. Ensure that the spec is properly organized and easily readable so that The LLM can quickly gather and understand information.
Please wait for confirmation to move forward. When prompted to proceed, send the markdown document to the client, who will give the go-ahead to build the software.
Once you receive a confirmation from the client, start building the software according to the spec you created earlier. If you have any issues during the building process, please do not hesitate to ask for clarification or guidance. Continue building the software and implement all the details specified in the software spec.
Periodically request the client to continue by updating them on the progress of the current build phase. Iterate this step until the build phase is over.