← Back to context

Comment by energy123

5 hours ago

This is what I've been doing. Iterating on specs is better than iterating on code. More token efficient and easier to review. Good code effortlessly follows from good specs. It's also a good way to stop the code turning into quicksand (aside from constraining the code with e2e tests, CLI shape, etc).

But what is your concept of "stages"? For me, the spec files are a MECE decomposition, each file is responsible for its unique silo (one file owns repo layout, etc), with cross references between them if needed to eliminate redundancy. There's no hierarchy between them. But I'm open to new approaches.

The stages are modelled after a kanban board. So you can have whichever stages you think are important for your LLM development workflow. These are mine:

00: Iterate on requirements with ChatGPT outside of the IDE. Save as a markdown requirements doc in the repo

01: Inside the IDE; Analysis of current codebase based on the scope of the requirements

02: Based on 00 and 01, write the implementation plan. Implement the plan

03: Verification of implementation coverage and testing

04: Implementation summary

05: Manual QA based on generated doc

06: Update global STATE.md and DECISIONS.md that documents the app, and the what and why of every requirement

Every stage has a single .md as output and after the stage is finished the doc is locked. Every stage takes the previous stages' docs as input.

I have a half-finished draft with more details and a benchmark (need to re-run it since a missing dependency interrupted the runs)

https://dilemmaworks.com/implementing-recursive-language-mod...