Fortschrittsverfolgung der Masterarbeit. Wortanzahl pro Kapitel, Fertigstellungsgrad, fehlende Elemente, Deadlines. Haelt den Ueberblick.
Maintains a comprehensive view of thesis progress. Tracks word counts, chapter statuses, TODO markers, citations, figures, and deadlines. Produces progress reports and warnings to keep the writing on track.
The tracker maintains thesis/progress.json as its central data store. This file is updated after every significant writing session.
{
"thesis_title": "Agentenbasierte KI-Systeme: Multi-Agent-Orchestrierung am Beispiel von juliaz_agents",
"target_words": 25000,
"deadline": "2026-04-30",
"last_updated": "2026-02-22T14:30:00Z",
"chapters": [
{
"id": "01-einleitung",
"title": "Einleitung",
"file": "chapters/01-einleitung.tex",
"status": "leer",
"word_count": 0,
"target_words": 3000,
"last_modified": null,
"sections_complete": 0,
"sections_total": 4,
"todos": [],
"uncited_claims": 0,
"figures": 0
},
{
"id": "02-verwandte-arbeiten",
"title": "Verwandte Arbeiten",
"file": "chapters/02-verwandte-arbeiten.tex",
"status": "leer",
"word_count": 0,
"target_words": 3000,
"last_modified": null,
"sections_complete": 0,
"sections_total": 5,
"todos": [],
"uncited_claims": 0,
"figures": 0
},
{
"id": "03-grundlagen",
"title": "Grundlagen",
"file": "chapters/03-grundlagen.tex",
"status": "leer",
"word_count": 0,
"target_words": 4000,
"last_modified": null,
"sections_complete": 0,
"sections_total": 6,
"todos": [],
"uncited_claims": 0,
"figures": 2
},
{
"id": "04-konzept",
"title": "Konzept und Entwurf",
"file": "chapters/04-konzept.tex",
"status": "leer",
"word_count": 0,
"target_words": 5000,
"last_modified": null,
"sections_complete": 0,
"sections_total": 5,
"todos": [],
"uncited_claims": 0,
"figures": 4
},
{
"id": "05-implementierung",
"title": "Implementierung",
"file": "chapters/05-implementierung.tex",
"status": "leer",
"word_count": 0,
"target_words": 5000,
"last_modified": null,
"sections_complete": 0,
"sections_total": 6,
"todos": [],
"uncited_claims": 0,
"figures": 4
},
{
"id": "06-evaluation",
"title": "Evaluation",
"file": "chapters/06-evaluation.tex",
"status": "leer",
"word_count": 0,
"target_words": 3000,
"last_modified": null,
"sections_complete": 0,
"sections_total": 4,
"todos": [],
"uncited_claims": 0,
"figures": 2
},
{
"id": "07-fazit",
"title": "Fazit und Ausblick",
"file": "chapters/07-fazit.tex",
"status": "leer",
"word_count": 0,
"target_words": 2000,
"last_modified": null,
"sections_complete": 0,
"sections_total": 3,
"todos": [],
"uncited_claims": 0,
"figures": 0
}
],
"overall": {
"total_words": 0,
"completion_percent": 0,
"uncited_claims": 0,
"todo_markers": 0,
"figures_count": 0,
"figures_target": 12,
"citations_count": 0,
"citations_target": 40
}
}
Each chapter progresses through five stages:
Uses texcount to parse .tex files and count words accurately, excluding LaTeX commands, comments, and environments like minted or lstlisting.
# Count words in a specific chapter
texcount -inc -total thesis/latex/chapters/04-konzept.tex
# Count all chapters
for f in thesis/latex/chapters/*.tex; do
echo "$(basename $f): $(texcount -total -brief $f 2>/dev/null | grep -oP '\d+' | head -1) words"
done
When texcount is unavailable, fall back to a rough estimate:
# Rough word count (less accurate, includes some LaTeX commands)
cat thesis/latex/chapters/04-konzept.tex | \
sed 's/\\[a-zA-Z]*\({[^}]*}\)*//g' | \
sed 's/%.*//g' | \
wc -w
Scans .tex files for TODO markers in various formats:
# Standard TODO comments
grep -rn "% TODO" thesis/latex/chapters/
# TODO in citation placeholders
grep -rn "\\\\cite{TODO" thesis/latex/chapters/
# Inline TODO notes (if using todonotes package)
grep -rn "\\\\todo{" thesis/latex/chapters/
grep -rn "\\\\todo\[" thesis/latex/chapters/
# Missing content markers
grep -rn "\\\\missingfigure" thesis/latex/chapters/
grep -rn "FIXME" thesis/latex/chapters/
Identifies claims that should have citations but do not. Heuristic detection:
# Find sentences with strong claims but no \cite nearby
# (Heuristic: lines containing "zeigt", "beweist", "ist bekannt" without \cite)
grep -n "zeigt\|beweist\|ist bekannt\|wurde gezeigt\|laut Studien" thesis/latex/chapters/*.tex | \
grep -v "\\\\cite"
Also detects placeholder citations:
grep -rn "\\\\cite{TODO" thesis/latex/chapters/
grep -rn "\\\\cite{?}" thesis/latex/chapters/
grep -rn "\[QUELLE\]" thesis/latex/chapters/
# Count figures defined
grep -c "\\\\begin{figure}" thesis/latex/chapters/*.tex
# Count figure references
grep -oP "\\\\ref\{fig:[^}]+\}" thesis/latex/chapters/*.tex | sort -u | wc -l
# Find figures that are defined but never referenced
comm -23 \
<(grep -oP "\\\\label\{fig:[^}]+\}" thesis/latex/chapters/*.tex thesis/latex/figures/*.tex | grep -oP "fig:[^}]+" | sort -u) \
<(grep -oP "\\\\ref\{fig:[^}]+\}" thesis/latex/chapters/*.tex | grep -oP "fig:[^}]+" | sort -u)
# Count unique citations used
grep -ohP "\\\\cite\{[^}]+\}" thesis/latex/chapters/*.tex | \
tr ',' '\n' | grep -oP "[a-zA-Z0-9_-]+" | sort -u | wc -l
# Find citations used but not in .bib file
grep -ohP "\\\\cite\{[^}]+\}" thesis/latex/chapters/*.tex | \
tr ',' '\n' | grep -oP "[a-zA-Z0-9_-]+" | sort -u | while read key; do
grep -q "@.*{${key}," thesis/latex/bibliography/references.bib || echo "MISSING: $key"
done
# Find .bib entries never cited
grep -oP "@\w+\{([^,]+)," thesis/latex/bibliography/references.bib | \
grep -oP "\{(.+)," | tr -d '{,' | while read key; do
grep -rq "\\\\cite{.*${key}" thesis/latex/chapters/*.tex || echo "UNUSED: $key"
done
Generated on demand, provides a snapshot of current progress.
=== Thesis Progress Report ===
Stand: 2026-02-22
Titel: Agentenbasierte KI-Systeme: Multi-Agent-Orchestrierung
am Beispiel von juliaz_agents
Gesamtfortschritt: 8,400 / 25,000 Woerter (33.6%)
Deadline: 2026-04-30 (67 Tage verbleibend)
Kapitel Woerter Ziel % Status
--------------------------------------------------------------
01 Einleitung 1,200 3,000 40% entwurf
02 Verwandte Arbeiten 800 3,000 27% notizen
03 Grundlagen 2,100 4,000 53% entwurf
04 Konzept und Entwurf 2,500 5,000 50% entwurf
05 Implementierung 1,800 5,000 36% notizen
06 Evaluation 0 3,000 0% leer
07 Fazit und Ausblick 0 2,000 0% leer
Offene Punkte:
- 12 TODO-Markierungen gesamt
- 5 unbelegte Behauptungen
- 3 fehlende Abbildungen
- 8 Zitate noch als Platzhalter
Naechste Prioritaeten:
1. Kapitel 06 (Evaluation) beginnen — noch leer
2. TODO-Markierungen in Kapitel 04 aufloesen (4 Stueck)
3. Fehlende Abbildungen in Kapitel 05 erstellen
=== Kapitel 04: Konzept und Entwurf ===
Status: entwurf
Woerter: 2,500 / 5,000 (50%)
Letzte Aenderung: 2026-02-20
Abschnitte:
[x] 4.1 Systemarchitektur
[x] 4.2 Agentenrollen
[ ] 4.3 Kommunikationsprotokoll
[ ] 4.4 Skill-System
[x] 4.5 Entwurfsentscheidungen
TODOs:
Zeile 45: % TODO: MCP-Vergleich mit REST ergaenzen
Zeile 78: % TODO: Diagramm Skill-Hierarchie einfuegen
Zeile 112: \cite{TODO:langchain-comparison}
Zeile 134: % TODO: Gegenargumente fuer Agent-Architektur
Abbildungen:
[x] fig:systemarchitektur (referenziert Zeile 52)
[x] fig:agentenrollen (referenziert Zeile 89)
[ ] fig:skill-hierarchie (referenziert Zeile 80, aber nicht erstellt)
[ ] fig:kommunikationsprotokoll (noch nicht referenziert)
Zitate: 8 verwendet, 1 Platzhalter
The tracker generates warnings when it detects potential issues.
WARNUNG: Kapitel 05 (Implementierung) wurde seit 7 Tagen nicht bearbeitet.
Status: notizen — noch kein Entwurf geschrieben.
Triggers when a chapter with status below "final" has not been modified in N days:
leer: warn after 3 daysnotizen: warn after 5 daysentwurf: warn after 7 daysueberarbeitet: warn after 14 daysWARNUNG: Kapitel 04 (5,200 Woerter) ist deutlich laenger als Kapitel 06 (800 Woerter).
Verhaeltnis zum Ziel: 104% vs. 27%. Moegliche Unausgewogenheit.
Triggers when a chapter exceeds its target by more than 20% while another chapter is below 30%.
WARNUNG: 30 Tage bis Deadline. Aktueller Fortschritt: 52%.
Benoetigt: ~400 Woerter/Tag um das Ziel zu erreichen.
Kapitel 06 und 07 sind noch leer.
Calculates required daily word count to meet the deadline, factoring in current completion rate.
WARNUNG: Folgende Abschnitte enthalten keinen Inhalt:
- 04-konzept, Section 4.3 (Kommunikationsprotokoll)
- 04-konzept, Section 4.4 (Skill-System)
- 06-evaluation, alle Abschnitte
WARNUNG: 2 Abbildungen definiert aber nie referenziert:
- fig:bridge-detail (figures/fig-05-bridge-detail.tex)
- fig:timeline-v1 (figures/fig-05-timeline-v1.tex)
WARNUNG: 3 Zitate in .bib aber nie verwendet:
- smith2024agents
- brown2023orchestration
- mueller2024thesis
5 Zitate verwendet aber fehlend in .bib:
- \cite{TODO:mcp-spec}
- \cite{TODO:openai-function-calling}
- \cite{langchain2024}
- \cite{autogen2024}
- \cite{dorri2018multiagent}
progress.json with new counts and timestamps# Quick update script concept:
for chapter in thesis/latex/chapters/*.tex; do
name=$(basename "$chapter" .tex)
words=$(texcount -total -brief "$chapter" 2>/dev/null | grep -oP '\d+' | head -1)
todos=$(grep -c "TODO\|FIXME\|\\\\todo{" "$chapter" 2>/dev/null)
modified=$(stat -f "%Sm" -t "%Y-%m-%dT%H:%M:%S" "$chapter" 2>/dev/null)
echo "$name: $words words, $todos TODOs, modified $modified"
done
The tracker can infer chapter status from observable metrics:
These are heuristics. The actual status can be overridden manually.
The thesis-tracker connects to the existing documentation infrastructure:
thesis/memory/session_buffer.md)progress.json across commits to see progress over timeFor quick overviews (e.g., in chat or documentation), generates a compact Markdown summary:
## Thesis Progress — 2026-02-22
| Kapitel | Woerter | Ziel | Fortschritt | Status |
|---------|---------|------|-------------|--------|
| 01 Einleitung | 1,200 | 3,000 | 40% | entwurf |
| 02 Verwandte Arbeiten | 800 | 3,000 | 27% | notizen |
| 03 Grundlagen | 2,100 | 4,000 | 53% | entwurf |
| 04 Konzept | 2,500 | 5,000 | 50% | entwurf |
| 05 Implementierung | 1,800 | 5,000 | 36% | notizen |
| 06 Evaluation | 0 | 3,000 | 0% | leer |
| 07 Fazit | 0 | 2,000 | 0% | leer |
| **Gesamt** | **8,400** | **25,000** | **33.6%** | |
**TODOs**: 12 | **Unbelegte Behauptungen**: 5 | **Deadline**: 67 Tage
Beyond snapshots, the tracker monitors writing velocity:
{
"velocity": {
"last_7_days": {
"words_written": 2400,
"words_per_day": 343,
"chapters_touched": ["03-grundlagen", "04-konzept"],
"todos_resolved": 4,
"todos_added": 2
},
"projected_completion": "2026-04-15",
"on_track": true
}
}
This requires storing historical snapshots. The tracker saves a daily snapshot to thesis/progress-history/YYYY-MM-DD.json for trend analysis.
Common operations the tracker supports: