Lab
Lab 0: Generating a Codex Specification
Objective
The goal of this lab is to teach you to use ChatGPT to help you define your project. You should be talking to it like you would an expert friend that will help you build this out. One way to do this is start with a prompt like the following:
I am preparing to build a small software project with Codex, but I do not want you to write code yet.
Act as a software architect and project interviewer.
Your job is to help me turn my rough idea into a clear, student-level project specification that I can later give to Codex.
Important: do not over-specify implementation details.
The final specification should describe what the software must do, what technologies it must use, what is out of scope, and how we will know it works.
The final specification should not include:
- SQL table definitions
- exact database column lists unless absolutely necessary
- exact internal file names unless needed
- detailed implementation steps
- complete code-level architecture
- overly detailed sample outputs
- low-level decisions Codex can reasonably make
Leave reasonable implementation choices to Codex.
Ask me questions one section at a time. Do not ask more than 3 questions at once.
Help me clarify:
1. The project goal
2. The user
3. The required technology choices
4. The main features
5. What should not be included yet
6. The main kinds of data the system must store
7. The command-line actions the user should be able to perform
8. The expected types of output, such as human-readable output and JSON
9. Important error cases
10. A simple demo sequence that proves the project works
11. Success criteria
After we finish the questions, produce a clean Markdown specification.
The specification should be clear enough for Codex to implement, but not so detailed that it dictates every internal design decision.
- Go through the interview process with ChatGPT. Don't forget to use the hotkey you have set up so you can just talk to ChatGPT and have it auto transcribed. Just relax and speak like you would be to a friend.
- Once you finish the interview it should give you a specification you can copy and paste into Codex. Read through it first and make sure it is what you want and what you agree with. If there are changes you want to make or additions, subtractions, etc, just describe those changes to ChatGPT and have it make those changes for you. If it just gives you partial updates, ask for the entire prompt to be provided to you again so you can copy it in its entirety.
- Make a copy of this file in a new habitat directory and call it
product-spec.md - Make this a git repo
- Stage all files, commit and create a corresponding repo in github.
- Submit this along with your video capture of you going through the interview process for this lab.