I've been building and operating a personal software factory since May. Each instance of the factory is dedicated to a specific product’s codebase. Over time that instance gets better at maintaining the code of its product. Here’s how that works …
First, a coding agent interviews me to turn rough ideas into small and well-specified work items. Then, these work items are queued to be automatically built, tested, and reviewed by swarms of specialized agents until all reviewer agents are satisfied that a proposed merge candidate delivers specified functionality and meets the product's desired quality standards.
When a writer agent is building some functionality it loads a skill that tells it to read .fluent/expertise/index.md before it builds anything. When specialized reviewer agents are reviewing a change proposed by a writer, they also load a skill that tells them to refer to the same index that points to expertise about that product and codebase.
This index file is a simple bullet list where each bullet describes a learning in one or two sentences and links to a more detailed file about that learning. The more detailed file is stored inside .fluent/expertise. The one- or two-sentence description is designed to help an agent that has read the index decide when it should read the more detailed file.
Once a work item has a merge candidate, a learner agent reads the specified requirements, the review feedback of each round of review, and the agent traces of each writer agent to extract learnings that would help future writer agents avoid mistakes. It stores these learnings as expertise files and adds them to the expertise index. These learnings then live in the codebase with the rest of the code.
Every instance of my factory has recorded hundreds of such learnings about the product it is building and evals show that these memorized learnings help future writer and reviewer agents avoid past mistakes. Human feedback is also recorded as expertise. Over time this learned expertise enables the factory to get better at managing its codebase.
If you want to see an example, have a look at the .fluent/expertise directory in the fluent codebase on github: mrinalwadhwa/fluent

