Interesting... need to read the paper, but yes, typically my instructions include parts of the program structure, they are not limited to "pure specification". And typically this is developed as a back-and-forth, starting with pure spec, ending with a "skeleton".
Amazon researchers recently published a paper which I think is notable considering that Amazon has put a lot of effort into spec-driven development.
The paper argues that specifying how a model should implement a specific solution is significantly superior to writing prose.
@EnoReyes@poteto It is not clear, if this is the natural evolution of orgs using AI for software dev, why a category of things called a "software factory" is required.
Using TLA+ for catching edge cases like this is new, I think? And tuning difficulty with AI players is also interesting. Formal verification and bot users are becoming part of software dev.
trivia:
• started working on the game as a side project 4 days ago, landing ~1,150 PRs
• every time i found an issue in the code i asked bot to make a lint rule against it
• used TLA+ heavily to find bugs in the game's various state machines: the story, cutscenes, the game's systems. there are many formal verification skills, one for each major system
• i put context into the filepaths: code that runs every frame or every tick gets a .hot.ts extension, and a lint rule bans allocating in it (no object literals, closures, new, etc.), so the game loop creates almost no garbage and GC doesn't cause stutters
• game engine is mostly custom. three.js draws the 3D scene, but the simulation, post-processing and audio are all ours
• the simulation is fully deterministic, so every run replays exactly from its inputs. when you post a high score, the server replays your whole run to check it isn't cheated
• we generate dynamic og:images for every run based on your final stats, and it's all localized too! the game supports 10 languages
• my favorite feature: the music seamlessly transitions into different music for the various biomes, continuing the previous melody
• no audio files. all the music and sound effects are synthesized live in the browser by a custom Game Boy-style chip (two pulse voices, a wave voice, noise) plus a synthwave layer. the songs are written as text in code
• all the pixel art is code. every sprite is a file drawn with one shared palette and packed into a sprite atlas at build time
• it runs inside an X post, from the 245px card up to full screen. the bar is 60 fps with 500 enemies on a mid-range phone
• the build fails if the first download goes over budget. it's about 124 KB gzipped right now
• bots play the game headless to tune each difficulty against target survival rates
• comments are banned by a lint rule. if code needs explaining, the fix is a better name or a test
Day 28/ tibo's game has landed
i spent $5.99 on this domain, but i had a blast making it with grok bot and cursor! i hope you enjoy it and find all the easter eggs 🤍
if i did it right you should be able to play it inside of X too
https://t.co/diV7PyPaqv
@DavidKPiano Thanks, this was helpful! (I have previously run into these issues while making state machine diagrams and made my own handwavey extensions which are not as good and crisp as this.)
@Steve_Yegge@GergelyOrosz I have always been bad at writing. I'm trying to get better. I think the biggest effect I'm observing is that it really forces me to get inside the head of my target audience.
@danluu There's factors pushing in both directions. My gut feeling is "increase", but I'm really curious how, say, higher-level programming languages impacted the relative returns to long hours.