tools/progress/ - Fortschrittsrechnung je Paragraph (Python 3)

Jeder Paragraph des Reference Papers, der Loti-Schichten (§20) und der RFC-001..003 ist in pruefbare Anforderungen ("Atome") zerlegt.
Ein Atom ist D (fertig: Code UND ein Test, der ihn abdeckt, zaehlt 1), P (teilweise, 0,5), O (offen, 0), X (ausserhalb der Software:
Hardware, echtes Netz, Audit, Recht - nicht mitgezaehlt) oder I (reiner Text, nicht gezaehlt).
Prozent = (D + 0,5 * P) / (D + P + O). Jedes Atom nennt Belege als (Datei unter lscoin/, regulaerer Ausdruck).

  fortschritt.py            Kern: Zustaende, Rechnung, Belegpruefung
  items_paper_*.py          die urspruengliche Zerlegung der Paper-Paragraphen
  items_rfc1/2/3.py         dasselbe fuer RFC-001, RFC-002, RFC-003
  items_zz_updates.py       alle Aenderungen seither: U(Dokument, Paragraph, Textanfang, Zustand, Belege...) aendert genau ein Atom,
                            A(...) haengt eines an; so bleibt sichtbar, was sich wann bewegt hat
  render.py                 schreibt docs/lsc-fortschritt.md (Tabellen) und docs/FORTSCHRITT-DETAILS.md (jedes Atom mit Beleg)

Aufruf (im Wurzelordner des Pakets):

  python3 tools/progress/fortschritt.py             Zahlen je Dokument
  python3 tools/progress/fortschritt.py --check     jeden Beleg gegen den Quelltext pruefen (Rueckgabewert 1 bei Fehlern);
                                                    laeuft auch als letzter Schritt von run_tests.sh (Modul tools.progress.check)
  python3 tools/progress/render.py --out docs [--facts facts.json]
                                                    Tabellen neu erzeugen; facts.json (optional) liefert die Zahlen des Abschnitts
                                                    "Pruefstand" (tests, builds, py27) und einige Anmerkungen der Projekttabelle

Wer einen Paragraphen aendert, schreibt eine U()-Zeile mit den neuen Belegen in items_zz_updates.py, startet --check und danach render.py.
Die Einteilung in Atome ist eine Lesart der Texte und ein Arbeitsmass, keine Zertifizierung.
