The deliverable
The code, the diagram, the document. Clean, versioned, shipped. They say what was done.
A My Codeuse solution
A project produces two things: deliverables and reasoning. The first are archived with care. The second disappears with the working session that produced it.
The Engineering Memory System is a deterministic compiler. It does not search your documentation: it compiles it, verifies it, and derives from it whatever can be derived.
01 — The problem
The consequence is not forgetting. It is reopening a debate already settled.
The code, the diagram, the document. Clean, versioned, shipped. They say what was done.
The question asked, the paths considered, the one that was ruled out and the reason for ruling it out.
You read your own work as a stranger's. You re-reason what you had already settled, and sometimes you decide the other way.
02 — Engineering memory
Knowing that a path leads nowhere is worth as much as knowing which one works. A path ruled out is not wasted time. Provided it survives.
Originating question. A piece of reasoning keeps the question that gave rise to it. Without it, you read a decision without knowing what it answered.
Derived relations. A relation is declared once; its inverse is computed. Writing a decision never requires updating the sources it cites.
Cited authority. A refusal names the principle it rests on. A rule that changes without the check changing is a defect, and it shows.
03 — How it works
The reasoning as it happens, not afterwards once it has already been reconstructed from memory. A decision carries its originating question, its context, and what was ruled out.
Indexes, cross-citations and states are derived. Nothing that can be computed is written by hand: a fact declared twice ends up having two versions.
A task closed on an unmet criterion, a reference to an object that does not exist, an impossible state transition. The refusal names the rule, not a preference.
Same corpus, same output. No statistical model in the compilation path, no network call, no run timestamp that would move a report for no reason.
04 — Architecture
An assistant can read it, cite it, propose updates to it. It does not own it, and changing model does not make it disappear.
05 — The engineer decides
An artificial intelligence can help reason, write and retrieve. It does not settle anything, and nothing enters the corpus without an engineer having wanted it there.
The value of an engineering memory lies in remaining explainable, questionable and revisable by those who come after.
06 — Definition
07 — Roadmap
The compiler: compilation, verification of rules and references (lint), index derivation (index), corpus updates by diff (patch).
A local API relaying the compiler. The compiler proposes. The human decides. The API carries it out.
The console: where you read your engineering memory, where you discuss it with an assistant allowed to read it, and where you approve what will make it evolve.
Several memories that talk to each other. Each corpus has its own, and a decision can cite one from another.
A licence to use it. The tool has served a real project for months. Opening it up requires that it install, be understood and be repaired without the one who built it.
The discipline, written down. What underpins this compiler is not a file format: it is a way of handling reasoning. A book is in preparation.
08 — Questions
A RAG retrieves a passage that resembles your question. It does not know whether the decision it hands you is still in force, what it replaced, or who cites it. The Engineering Memory System compiles those links rather than searching for them.
No. The compiler makes no network call. The corpus, the compilation and the indexes live on the machine, and nothing is sent anywhere.
No. The compiler works on its own, from the command line, with no model. An assistant can read the compiled memory and propose changes, but that is an option. And in that setup, proposals go through the user's approval.
The memory does not move. It lives on your machine, in files the compiler reads; no assistant holds it. You are changing your reading tool, not your library.
Not publicly yet. The compiler and its API work ; the console is being built. This page exists to establish the approach, not to sell a finished product.