The four heights
The same task, four distances: today's deadline, the next reviewer, the stuck moment, the pattern.
Execute — do the immediate task
+I need to convert this legacy C module used across our engine to idiomatic C++ so we can manage…
Execute — do the immediate task
+I need to convert this legacy C module used across our engine to idiomatic C++ so we can manage ownership and avoid leaks. Take the source files in src/legacy_audio.c and src/mixer.c, replace manual malloc/free with RAII—use std::unique_ptr or std::vector where sensible—turn struct-like APIs into small classes with clear private state, and keep the public functions compatible for now. Before finalizing, run the existing unit tests and point out any ABI-breaking changes.
Pasted it? When the reply comes back, push once: ask it to sharpen the weakest part. — Did this prompt help?
Improve — make it easier to accept
+Before I hand this to the game systems lead, make the migration easy to review and accept. Move…
Improve — make it easier to accept
+Before I hand this to the game systems lead, make the migration easy to review and accept. Move each resource allocation into a constructor, expose a clear destructor, show a one-page diff that surfaces ownership changes and newly added noexcept or deleted raw frees, highlight places where behavior might change (pointer aliasing, thread safety) and propose a compatibility shim when needed.
Pasted it? When the reply comes back, push once: ask it to sharpen the weakest part. — Did this prompt help?
Decide — diagnose the stuck moment
+I just replaced malloc/free in mixer.c with smart pointers and the tests still pass, but valgrind…
Decide — diagnose the stuck moment
+The build passed but valgrind shows retained memory from the mixer.
I just replaced malloc/free in mixer.c with smart pointers and the tests still pass, but valgrind reports retained blocks from the mixer subsystem. I am unsure whether leftover references are from external callers still holding raw pointers or from cycles created by callbacks. The lead expects zero leaks before the branch merges. What is the most likely cause and the minimal next steps to find and fix it?
Pasted it? When the reply comes back, push once: ask it to sharpen the weakest part. — Did this prompt help?
Become — change the pattern
+Over the last three projects I convert similar C subsystems and we repeatedly get ownership…
Become — change the pattern
+We keep rewriting the same C modules into C++ and re-fixing ownership bugs.
Over the last three projects I convert similar C subsystems and we repeatedly get ownership regressions and late leak fixes during QA. I lose time debugging, and reviewers complain about mixed styles. Which habit should I adopt across all migrations to stop rework—how to structure commits, tests, and a migration checklist so ownership issues are caught early and reviewers trust the changes?
Pasted it? When the reply comes back, push once: ask it to sharpen the weakest part. — Did this prompt help?
Next to this one
Other programming language work people do in C++.
Every task here came from the work, not from a feature list — which is why the prompts name what you want done and never the button that does it. The tool changes; the work does not.
Copyright © LLOS.ai · 2026 — original pedagogy, voice, and design — all rights reserved.
The rest of the map
Same library, five ways in.