@12matve This looks incredible! I'm not very familiar with the Salyut space station, satellites as a whole, or SpaceFlightSimulator, but I can tell a lot of work went into this. Great job recreating it!
Agentic coding burns tokens on work that doesn’t need a frontier model: reading big files, boilerplate, mechanical edits.
So I built Puppet Master, a research concept for cutting that cost. It’s an MCP server where Claude plans and reviews, and a cheaper worker model does the grunt work. The worker can be local (llama.cpp, Ollama, LM Studio, vLLM) or hosted (OpenRouter).
Repo: Repo link in the replies
The guardrails are enforced in code:
• Reads only return claims whose quoted lines were found in the file
• Writes are staged as a patch and run through your tests in a throwaway worktree
• Nothing reaches the repo unless the check passed
Results on a 27-task benchmark, on an M3 Pro with 18 GB running a 2-bit 40B MoE model:
• about 74% fewer Claude tokens (estimated from character counts, not billed tokens)
• 85-90% of reads correct, 86% of writes passing their checks
Accuracy rises with a better worker model. I only tested a heavily quantized one, so treat these numbers as a floor.
Early, MIT licensed, and only tested end-to-end on llama.cpp on macOS. Feedback welcome.
Honestly, no. Quote validity is checked in code on every read. Completeness is only checked in my benchmark, by keyword match, so a real-but-partial answer would get through in normal use. I want to add a separate completeness check next, something like requiring each part of the question to be backed by a cited line. Any ideas on how you’d do it?
@harjjotsinghh Thanks, that’s a really useful data point. It matches what I’d hope for. If the tests are the gate, a smaller model’s mistakes get caught.
Good question. None of the wrong reads were paraphrased quotes, since those get dropped before Claude sees them. Some were my grader being picky (“rounding up” instead of “ceil”). One was a real miss: real quotes, but half the question unanswered. So yes, different fixes, and checking that a quote answers the question is what I’m working on next. Only 20 questions, so take it loosely.
Update: I re-checked my read numbers. After fixing a picky grader, reads come out at roughly 95-100% (20 questions, keyword-graded), not 85-90%. Also, tiny jobs aren’t worth delegating. The savings come from big files. Better worker models should help, but I’ve only tested one heavily quantized one.
@chasmmmmmmmmmmm If this is an issue, then there must have been a time when using a compiled language or assembly language instead of machine code was discouraged.