Quality & evidence

Documentation that knows when to ask for review

Published · 4 min read · Tim Witter

Outdated documentation rarely looks obviously broken. It usually remains fluent, uses familiar terms and explains an architecture that once existed. That is what makes it risky during a handover. New colleagues and external partners cannot easily tell which statements still describe the current system. The interesting engineering task is therefore not simply producing more text. It is making the next necessary review visible before a plausible old explanation becomes the basis for a new decision.

An explanation needs a connection to its source

In my open-source project Tabula, repository guides are linked to source files. The tool records their hashes and highlights sections that may need review after changes. It works offline, without a model or account, and does not execute project code. Tabula is an early project; packages prepared locally should not be confused with an official publication that has already taken place.

The useful point is not that a hash understands what a program means. It does not. It can only indicate that a linked foundation has changed. That creates a specific reason for review. Deciding whether a paragraph remains accurate still belongs to someone who can assess the relationship and accept responsibility for the explanation. The machine can raise the question without pretending to answer it.

Fresh does not automatically mean correct

An unchanged file may have been misunderstood when it was first documented. Conversely, an insignificant comment edit can change a hash without invalidating the explanation. A large green current label would therefore be misleading as a general quality seal. The technical status needs to say what was checked: the connection to unchanged files, not the truth of every sentence or the behaviour of the application.

This limited statement is still useful for a team leader. It offers a more focused way to allocate attention. Rather than treating all documentation as equally urgent, owners can begin where referenced foundations have moved. That does not establish a measured saving. It establishes a clearer assignment: review this explanation because something it depends on has changed, then decide what that change means for the reader.

Structure helps discovery, not the avoidance of judgment

My open-source project ast-index-nix builds a local structural index of source code. It captures definitions, call sites and imports, among other information, and makes them accessible to people and coding agents. This helps investigate which parts of a system may be affected by a change. It provides a different kind of orientation from collecting text passages that happen to use similar words.

Its limits remain important. Static resolution has language-specific restrictions, and the index can report unknown, stale or incomplete evidence. A dependency that was not found is therefore not proof that no dependency exists. For a consequential decision, the team should be able to explain what was covered and where dynamic behaviour or other limitations require additional investigation beyond what the index can establish.

Decisions can become outdated too

In my open-source project ichnora, the focus is local, project-scoped memory for coding agents. Decisions, checkpoints and claims can retain their provenance and supporting evidence. Dependencies can be checked for stale foundations, and retrieval works without model calls. The intention is not to turn old statements into permanent truth, but to make their context available when work continues in a later session.

If an earlier decision depended on an assumption that has since changed, remembering it is not enough. The uncertainty needs to remain visible. A historical statement can still explain why the team acted as it did without being valid guidance for today. This distinction guards against a particularly persuasive kind of outdated documentation: a well-supported answer to a question whose original conditions no longer hold.

A review still needs an owner

These tools do not create a self-maintaining knowledge system. A signal about changed foundations needs an owner and a decision: correct the text, confirm that the relationship still holds, or explicitly preserve the old statement as historical context. Without that step, a team merely accumulates notifications. Automation may have detected a discrepancy, but it has not organised responsibility for resolving what readers should now believe.

For procurement, I would therefore ask about more than search quality or the number of generated documentation pages. Can the system show the limits of its knowledge, and can a review reach a traceable conclusion? An honest incomplete status is more useful for a decision than apparent certainty. Good documentation does not promise never to be wrong. It makes the next necessary doubt easier to recognise and act upon.

Questions for your team or vendor

  1. Which explanations depend on a changed file or an outdated decision?
  2. Does current mean only unchanged bytes, or has someone reviewed the substance for correctness?
  3. How does the tool present unknown, stale and incomplete information?
  4. What limits affect dependency detection in the programming languages the team actually uses?
  5. Can the provenance and original assumptions of a stored decision still be understood later?
  6. Who takes ownership of a review signal, and how is its substantive conclusion recorded?

Derived from my open-source projects

All articles