Dokumentation liegt verteilt gespeichert vor und wird mit dem mathcoach-resources-maven-plugin gebündelt. Dabei muss eine bestimmte Verzeichnisstruktur eingehalten werden. Es wird zwischen Autoren-Dokumentation und Entwickler-Dokumentation unterschieden. Weiterhin wird berücksichtigt, dass Teile der Dokumentation (z.B. Indexdateien, Groovy-API-Doku, …​) durch weitere Mechanismen (z.B. Annotationen) dynamisch erzeugt wird. Teile der statischen Dokumentation liegen im Artefakt mathcoach-docs bzw in den jeweiligen Artefakten. Die Verzeichnis-Struktur des finalen Dokumentations-Quellcodes sieht etwa wie folgt aus:

	mc-resources
	└── mc-docs
	    ├── author
	    │   ├── main.adoc          // Einstiegspunkt
	    │   ├── generated          // Zielort für generierte Dokumentation,...
	    │   │   └── groovy         // ...jeweils in einem eigenen Verzeichnis
	    │   │       ├── ...        // optional: weitere Dateien
	    │   │       └── main.adoc  // Einstiegspunkt! (i.d.R. generiert)
	    │   └── ...
	    └── developer
	        ├── main.adoc          // Einstiegspunkt
	        ├── modules			   // Zielort für Modul-Dokumentation
	        │   ├── [index.adoc]   // wird generiert!
	        │   ├── module-a
	        │   │   └── main.adoc  // Einstiegspunkt!
	        │   └── module-b
	        │       └── main.adoc  // Einstiegspunkt!
            └── ...

Da die verteilte Dokumentation aus vom mathcoach-resources-plugin "zusammenkopiert" wird, kann statische und dynamische Dokumentation an verschiedenen Stellen erstellt werden. Ein Artefakt, dass Dokumentation in den Resourcen anbietet, soll sich an folgende Konventionen (alle Angaben relativ zu src/main/resources/mc-resources/) halten, damit kein Durcheinander ensteht:

Autoren-Dokumentation (statisch)

Diese Autoren-Dokumentation (allgemeine Worte zu den Aufgaben-Entwickler-Werkzeugen, …​) sollte im Artefakt mathcoach-docs unter mc-docs/author/ abgelegt werden und im Einstiegspunkt mc-docs/author/main.adoc verlinkt werden.

Autoren-Dokumentation (statisch, Modul-Ebene)

Autoren-Dokumentation auf Modul-Ebene ist bisher nicht sinnvoll.

Autoren-Dokumentation (generiert)

Teile der Autoren-Dokumentation (z.B. die Groovy-API Doku) lassen sich generieren. Diese Doku soll vom Generierungs-Mechanismus (Maven-Plugin, …​) nach mc-docs/author/generated/<name>/ geschoben werden, wobei <name> ein eindeutiger Name für die Teildokumentation sein soll (z.B. groovy für die Groovy-API Doku). Der Einstiegspunkt muss jedoch händisch verlinkt werden (Artefakt mathcoach-docs, z.B. in mc-docs/author/main.adoc ), da die Autoren-Dokumentation besonders lesbar sein soll und diesen Freiheitsgrad benötigt.

Entwickler-Dokumentation (statisch)

Diese Autoren-Dokumentation (gesamte MathCoach-Architektur, usw.) sollte im Artefakt mathcoach-docs unter mc-docs/developer/ abgelegt werden (und im Einstiegspunkt mc-docs/developer/main.adoc verlinkt werden).

Entwickler-Dokumentation (statisch, Modul-Ebene)

Jedes Modul (mc-database, mc-lti, …​) hat die Möglichkeit eine eigene Teil-Dokumentation zu verfassen. Diese soll im jeweiligen Artefakt unter mc-docs/developer/modules/<name>/ abgelegt werden, wobei <name> eindeutig gewählt werden soll und i.d.R. dem Namen des Artefaktes (z.B. mc-lti) entspricht. Die Moduldokumentation wird automatisch indiziert. Dies setzt Vorraus, dass der Einstiegspunkt mc-docs/developer/modules/<name>/main.adoc angelegt wird.

Entwickler-Dokumentation (generiert)

bisher noch nicht notwendig (später evtl. Übersicht über @NeedConfig-Angaben, usw.)