Skip to content
Build your own tools

← Build guide

Documenting the tool

Before you hand anything over. Applies to every tool, however small.

Section 11 Plain text (.md)

The person using this will come back to it in eight months, having forgotten everything, possibly having lost the conversation. Someone else may inherit it entirely. Documentation is what makes that survivable — and almost none of it belongs in a separate file.

Order of priority: in the tool, then one readme next to it, then comments in the code. Most tools need only the first two.

1. In the tool itself

This is the only documentation that is certain to be read, because it is on screen while the tool is being used. Five things, none of them long:

A one-line purpose under the title. What it does and who it is for, in the user’s language.

<h1>Voranschlag-Vergleich</h1>
<p class="fm-subline">
  Zwei Voranschläge als PDF gegenüberstellen — Abweichungen je Ansatz,
  für die Vorbereitung der Gemeinderatssitzung.
</p>

Help where the question arises, not in a manual. At the drop zone, say which format is expected; at an unusual field, say what it means. Use fm-field__hint for a field, fm-dropzone__hint for a drop zone.

<p class="fm-dropzone__hint">
  VRV-2015-Voranschlag als PDF. Gescannte Dokumente funktionieren nicht.
</p>

The data-handling sentence, visibly, once. Word it as a claim about the user’s files, which is the part you can actually stand behind — see Data protection before you write it:

<p class="fm-callout fm-callout--info">
  Deine Dateien werden nur in diesem Browser gelesen und nirgendwohin
  übertragen.
</p>

A date and a source. Put it in the footer of the tool. Without it nobody can tell whether they are looking at something current:

<footer>
  Stand: 18.09.2026 · Datengrundlage: eigene Eingabe ·
  Rundung: kaufmännisch auf ganze Euro
</footer>

If any data is built into the tool, name where it came from and when it was retrieved. This is what makes a figure quotable — see Making the result checkable.

What it does not do. One short “Hinweise” or “Grenzen” block, collapsed if you like, listing the two or three things people will otherwise assume: which cases are not covered, which browser is required for a feature, what gets lost when browser data is cleared.

2. One readme next to it

A single plain-text file in the folder, in the user’s language, written for someone who does not code. LIESMICH.txt for German users, README.txt otherwise. Five lines is a good length, fifteen is the limit.

Voranschlag-Vergleich
=====================

Was das ist
  Stellt zwei Gemeindevoranschläge (PDF, VRV 2015) gegenüber und zeigt
  die Abweichungen je Ansatz.

Starten
  index.html doppelklicken. Chrome oder Edge empfohlen — nur dort kann
  das Ergebnis direkt in eine bestehende Datei zurückgeschrieben werden.

Dateien
  index.html   die Oberfläche, hier doppelklicken
  app.js       die Auswertung
  daten.js     die Ansatz-Bezeichnungen, hier ändern
  stil.css     das Aussehen

Daten
  Deine Dateien werden nur in diesem Browser gelesen und nirgendwohin
  übertragen. Zum Laden von Design und Diagramm-Bibliothek braucht die
  Seite eine Internetverbindung; deine Dateien gehen dabei nicht mit.

Stand
  18.09.2026

Use .txt, not .md — it opens by double-click on every system and renders as what it is. Name the file the user should open, and name the file they are most likely to want to change.

In chat mode, offer this as the second file after the tool, and say it is optional. In file-access mode, just write it.

3. Comments in the code

Comment the domain decisions, not the JavaScript. Nobody needs // loop over the rows. What people need eight months later:

// Spalte 3 ist beim Rechnungsabschluss die Abweichung RA-VA, beim
// Voranschlag dagegen der Rechnungsabschluss des Vorvorjahres.
// Verifiziert an den Seitenköpfen, nicht geraten.

// Auf ganze Euro gerundet wird erst bei der Anzeige. Die Summen
// rechnen auf Cent, sonst geht die Kontrollsumme nicht auf.

Rule of thumb: if the comment explains why it is that way, or records something that was checked against a real document, keep it. If it restates the code, delete it.

Put a short block at the top of each file saying what the file is for. Three lines, not a header ceremony.

What not to do

The rules file is something else

CLAUDE.md / AGENTS.md is documentation for the next assistant, not for the user — what the tool is, what is fixed, what must not change. Write it yourself when the tool will be worked on again; never ask the user to compose one. It is separate from the readme and may be more technical. See How you are delivering.