Where the recorded outcome lives
Databased, searchable, immutable memory - so the third deficiency is closed forever.
Mark named three deficiencies. The third is recording the outcome. CODITECT records every test selection, every run, every result as a database row, retained without prune, signed and queryable forever.
"We and every other software company in the world are outstripping our ability to test what we're building."
Why now: the velocity of agentic coding has decoupled from the velocity of testing, auditing, and validation - the knowledge and proof that AI agents did what they were tasked to perform, i.e. testing, in this case. An AI agent can produce more code in a day than a team used to write in a sprint. The test, audit, and compliance layers did not get faster at the same rate. The gap is structural and widens with every model release.
Three deficiencies - in every company today - that no software addresses:
- determining which tests need to run for a particular release
- checking whether they ran
- recording the outcome
Mark Walker, nue.io - meeting transcript [00:46:36]
Memory is what makes the third action - recording the outcome - durable. Every test selection, every run, every result is a database row, retained forever, queryable by clause.
The third deficiency demands durable storage
Mark named three deficiencies. The third was 'no system for recording the outcome'. Recording requires storage that is structured, queryable, retained, and immutable. Files in a chat transcript or markdown notes do not satisfy this.
CODITECT writes every action to a database row from the moment an agent starts a step. Local SQLite per project today; the multi-tenant cloud Postgres SSOT and continuous local-to-cloud sync follow the same schema per ADR-301 per ADR-053.
Infinite retention by construction
There is no rolling window, no quota, no automatic prune in the audit-trail tables. Test selections, runs, results, model calls, approvals, and deploys are retained as long as the project exists. Storage is incremental - a row per event.
Retention is unbounded by design. Once the platform has been operating on a project, a query like "show every AI-assisted change to this code path" returns a complete answer over the project's full history. The retention pattern aligns with 21 CFR Part 11 audit-trail requirements and EU AI Act Article 12 logging.
Immutable, signed, replayable
Audit-trail tables in the local SQLite stores are append-only; database triggers reject UPDATE and DELETE on history rows. The same pattern extends to the cloud Postgres SSOT per ADR-301, with WORM lifecycle on evidence storage where regulation requires it. A signed row cannot be silently changed; corrections are amendments that supersede, not overwrites.
Every agent decision is logged with the model used, the prompt that produced it, the data the model saw, the alternatives considered, and the rationale. A reviewer can replay the decision step by step. Nothing is opaque.
Semantic search across everything
Semantic search runs today through dedicated MCP servers (`coditect-semantic-search`, `coditect-call-graph`) that index the audit and code stores. A query like "find every incident where an agent changed authentication code without a corresponding test update" combines a structured filter with a semantic match. Per-row embeddings stored alongside the structured data are part of the anti-forgetting memory architecture per ADR-021.
The same index gives a new agent its starting context: when an agent picks up a task, CODITECT loads the most semantically relevant prior decisions, code paths, and incidents. The agent does not start fresh; it starts with the project's accumulated knowledge.