So what did I do today? Other than data mining for fun?
Well, I finished writing out my Claude 3.5 context infrastructure stack. It does things like build representations of file trees, and tracks cognitive complexity and the tokenization of data. The idea here is really cool.
See, Claude is a great coder, but Anthropic didn't design the system for building out big apps. Honestly, the system isn't designed very well, and I think I can do better. But, it's the best tool we have for the workflow I like, and it brings my productivity way up.
To address some of the problems I ran into, trying to hold context, I fell back on some very formal product methodology. So formal in fact, that I've never seen a real world dev house in my 30 years of doing this that's as strict as the AI regime I've set up. Coding standards, a methodology I call "robot Kanban," a QA setup for ChatGPT that is truly freaking merciless, and relishes in finding mistakes and oversights.
Three layers of context
I keep context a few different ways.
1. Happy Trees - A crunchable light weight tree view markdown scheme I came up with that's half the weight of JSON, and focused on complex file structures.
2. Logic maps - A system for spidering a Golang application that reads out your types, your structs, functions, and puts them in a hierarchical JSON format, where you can get a birds eye view of every go module... without getting Claude to melt. The system also uses tokenization and scores the cognitive complexity of modules and files, which is also a good indication on when my concerns need to be broken up and modularized. Handy when your implementation can go 90 man hours in a day.
Wrote this piece of the infrastructure in PHP because it changes often enough that it needs to be written in a scripting language. But, the coding to do the cognitive weight calculation and tokenization is a lot of regular expressions. That means either write it out in Python and hope for the best, or do it in PHP, where the regular expressions are easier to read and work through.
3. Current state reports. I'm keeping Claude sessions at the max length, and not pushing them. So, I've developed a ceremony in the robot Kanban process, where I end the session by telling Claude to pedantically document every decision, piece of code, logic map, and file we interacted with.
And then I pass the machine the pieces that it needs to continue at the beginning of the next one.
This combination of things keeps Claude coherent, and on task. But I can admit that it's hard not to go off on tangents with Claude.
The QA loop
Using ChatGPT as QA is working out pretty well. Mini has less cognitive flexibility than Claude and needs a lot more formal process to do even basic things, but she's a really good code and documentation reviewer.
And that's about the size of it :)
Now to finish the Worm project!