> Basically the old theory is true - the code IS the specification.
The spec is whatever I write by hand. The code is what the LLM writes for me. The spec could be anything depending on how much detail you want.
The problem with the "code IS the spec" in the age of LLMs is that they will change stuff without telling you while hitting their immediate goal. Six months ago, I used to review every single change. Now I get the LLM to audit the code to compare against the spec. Any divergence means one of two things:
I don't think your dichotomy works. When an LLM is reaching into agents.md it is absolutely modifying the specs. Who cares about original providence when it ends up in agents.md?
- Wanted to start blogging. So built an SSG for that.
- Have an ink tank printer that must be used a few times each month or bad things happen. Have been printing Sanskrit stories instead of test pages. Was manually building booklets with typst and then using pdfimpose. Finally, decided to write an app that does MD -> booklet.
- Decided that running harnesses directly on my machine is a bad idea. Docker/Podman are too complicated for the task at hand. So I built Adamant. It started out as a basic wrapper around Bubblewrap. Then I added networking via a socat proxy. Now it can do this:[1]
# Runs a webserver inside the sandbox that is accessible from outside
adamant --profile minimal prepare -- ls sh fish ncdu fastfetch uname mkdir python echo
adamant --profile minimal probe -- python 'print("Hello, World!")'
adamant --profile minimal run --ingress 45678:45678 -- fish -c "mkdir -p /tmp/www; echo '<p>Hello, World!</p>' >> /tmp/www/ index.html; python -m http.server -b 127.0.0.1 -d /tmp/www 45678"
# Runs headless Firefox inside the sandbox and takes a screenshot
adamant --profile ff prepare -- ls sh uname mkdir fish firefox
adamant --profile ff probe --timeout 60 --host bhashika.org.in -- curl https://bhashika.org.in
adamant --profile ff probe --timeout 60 --host bhashika.org.in -- firefox --headless --no-remote --screenshot https://bhashika.org.in
# screenshot.png is produced in $PWD
adamant --profile ff run --host bhashika.org.in -- firefox --headless --no-remote --screenshot https://bhashika.org.in
- Building an actual harness called PonderCode for personal use that uses ideas similar to Adamant as I find TUIs irritating for the text heavy work I do. Copy-pasting is a nightmare as almost everything is space-padded.
- Building a language learning product for Indic languages. Monetization is difficult due to the tiny market plus self-imposed restrictions like "only serious learners/readers need to pay." Only time will tell if it works out.
- My Python-replacement VM+PL project is on a bit of a hiatus. Will probably revisit it in a couple of months. Had made a lot of progress in April till I decided to expand the scope and got burnt out. Never do that.
You have to wonder why someone did not think of this form factor sooner. I have the original X4 and have been enjoying it a lot. My Kobo mostly lies unused because I do most of my reading in bed and the X4, even with a clip-on light, is so much easier on the wrists.
Dual core Arm CPUs, Android etc used by mainstream readers are a serious waste of resources. A microcontroller paired with the SD card is more than enough. And CrossPoint is a gem! The list of pros is long and the device recommends itself. But there is one con that you must watch out for:
The screen is delicate.
I love cases but hate screen protectors, and tend to use my devices with care. So it has worked out fairly well for me the past few months. But you might have a different experience.
I subscribed to Claude Pro for one month earlier this year. The subscription lasts as long as you chat with it in the UI. The moment you use Claude Code, it becomes useless and you keep hitting limits. So, great for hammering out a specification, not so great for actually writing and debugging code.
I have a lot of hobby projects and cannot afford to drop $200/m for assistance from LLMs with above average intelligence. The Chinese models work quite well, and are cost effective, in comparison. My usage over the last few months:
- Gemini / AI Studio = translations
- Kimi 2.5 / OpenCode Go = Compiler/VM project, AI for some board games, a new document format and compiler for it,
- DS4 Flash / DeepSeek (had some credits lying around) + OpenCode Go = Template-based OCR engine
- MiMo 2.5 and MuseSpark 1.2 Contributor = The OCR engine + a product I am brainstorming + a lot of single page tools
If you select models judiciously, and can write good AGENTS.md and extremely short but potent ARCHITECTURE.md documents, the $10 you pay to OpenCode Go will last a long while even when you consume a hundreds of millions of tokens (mostly cache hits) a day. You can get multiple models to perform code review of modules against the ARCHITECTURE you have specified and get other models to execute the fixes.
> Overall, our results suggest that context files don’t improve coding agent performance, and should only contain specific additional instructions beyond what is already available in the codebase
That's what the study says.
I recently did a much smaller scale test. Some coworker was pestering me about some brilliant skill file so i backed up Claude's state and told it to make a plan for some refactoring task with and without those skills installed.
The results were identical. I didn't measure token use though.
For me, an average long session results in about 200-300M cached input, 4-800K input, 2-400K output. Mostly the lower bound. Output depends on how much the model thinks.
There are two problems here:
- cache hit pricing (both Muse Spark 1.2 Contributor and MiMo 2.5 are around the $0.002-3/M mark)
- cache persistence time
Muse Spark drops the cache in less than 5m. MiMo keeps it around for at least an hour based on my experience with whoever is serving it for OpenCode. This difference itself will inflate bills massively.
A 500K token input repeatedly read by MS 1.2 for full input price 12 times an hour = $0.60. You would be expecting $0.012. So a 50x difference. Same thing on MiMo 2.5 is $0.018 because of longer cache times.
I have used all three extensively. DS4 Flash is quite smart. I would rank MS 1.2 below it. MiMo is the dumbest of them all but good enough for basic stuff.
MiMo wins handsomely if you want to think about your code for minutes at a time as you write. I use it to make changes as I think. I know it will screw up some stuff. I then switch to MS/DS4 once every few hours and have it do a code review and fix the broken stuff. So much cheaper than getting MS to do it on its own.
I am using the Xteink X4 as my primary e-reader now-a-days. Simple ESP32 microcontroller. Plastic+glass shell with an e-ink screen. MicroSD card works like a cache. Battery lasts for weeks. Works great.
Don't get me wrong. I like modern CPUs with huge caches and incredible power, but you do not need this for most devices. Also leads to lazy programming practices and calculators consuming hundreds of megabytes of RAM.
Size is pretty similar to the original iPhone. The actual screen is the size of a credit card. You do not really notice the size once you get reading. It is light enough to be carried anywhere.
But you need a strategy to protect the screen which is the most delicate part of the entire assembly. They do sell screen protectors of various kinds and even supply one in the original box. I bought their magnetic case which works for my use case (I do not store it in a pocket with keys and other objects that might damage the screen).
Physical books and digital content is special in that you can mostly archive their content almost permanently for cheap. Buildings, paintings, idols, living things, natural features of the environment ... not so much.
So the solution is:
- mandatory copyright registration and renewal with links to where the work can be acquired
- a blanket carve out for any non-commercial trust-style org so that they can scan books etc and keep the data on their servers. They should be able to issue digital membership cards for a fee so that patrons can access the archives. Any work that is "live" based on the registration database will be locked. All "dead" material can be shared with members.
In this way, a hundred digital preservation societies can bloom.
This is what caused the problem in the first place. If people had unrestricted access to content then the world would be a better place. And works wouldn't be so rare that it's worth AI companies buying and destroying them to gain some edge, as well as remain in legal compliance.
I completely agree. IPR as a concept is suspect. But it is the world we live in, with timelines extending like crazy. There are works produced before I was born that will remain under protection till long after I am dead.
A targeted modification to the laws could produce most of the benefits for a minor cost.
Copyright should be globally determined so that if I cant pay fair market value for a piece of content, it's deemed out of copyright protection and I can use whatever means to get it digitally.
Like if a game isn't available for sale anywhere in my region, I can get it without breaking any laws. A book is out of print and I can't pay money for it digitally -> free game.
(Why "fair market value?": So that skeezy publishers don't have an online shop with one physical copy of every book they own for $1Trillion just to fulfill the law)
Copyright should be banished out of existence so information, which is a trivially reproduced intangible, can be freely copied and distributed anywhere it can be useful. Instead of having the crap like what happened with the Internet Archive during/after Covid.
Bought an LFP battery+inverter set recently to replace an old dying lead acid based system. We need this kind of AC-DC roundtrip systems in India because of the unreliability of grid power (random power cuts, seconds/minutes to hours long).
Chinese cells (EVE etc) and BMSes (Daly etc) are easily available and all kinds of workshops build batteries at small to medium scale for all kinds of uses: electric auto rickshaws, power backup, sink for off-grid solar. Prices are $100-200/kWh for the battery depending on V, Ah and brand.
Every couple of years, I revisit my PL dev hobby and this time I decided to create a language/runtime with pre-emptive scheduling using instruction fuel. While I always do freestanding builds, this time I decided that I also wanted to support native FFI.
That is when I realized the true horror of (g)libc. It wants to inject itself at the root of the library/program and everything from threading to dlopen/dlsym is impacted. I tried a lot of workarounds including trying to implement a loader myself, but the complexity (and fragility) grew so much that I felt it was not worth it.
Finally, I retreated into the safe world of a freestanding runtime + syscalls. FFI, if it has to happen, will occur via IPC of some kind. A second process linked against glibc that will manage calls on behalf of the clean first one.
Right, this has second and third order effects. I am sure this must have been brought up during the discussions and overruled for whatever reason. The bureaucrats and politicos involved are not stupid. But there is some game being played here.
The spec is whatever I write by hand. The code is what the LLM writes for me. The spec could be anything depending on how much detail you want.
The problem with the "code IS the spec" in the age of LLMs is that they will change stuff without telling you while hitting their immediate goal. Six months ago, I used to review every single change. Now I get the LLM to audit the code to compare against the spec. Any divergence means one of two things:
- either I have to update the spec, or
- the LLM has to update the code.
reply