Files
grok-bot 9b5db2d3eb Fix: Markdown-Downloads nicht mehr als application/zip ausliefern
Ursache: nginx location /downloads/ mit default_type application/zip —
.md fehlt in mime.types, Browser speichern Listen als .zip.

- fulfill/nginx.snippet.conf: types für zip/md/txt/pdf, default octet-stream
- HTML: download="<dateiname>.md" an allen Markdown-Links (33)
- HANDOFF Abschnitt 13, README-Hinweis

Live-Site-Config (/etc/nginx/sites-available/ki-buch-archive) braucht
noch sudo-Anpassung + nginx reload; nicht in diesem Commit.
2026-11-09 09:17:01 +01:00

20 KiB
Raw Permalink Blame History

HANDOFF — KI-Buch-Archive

Stand

Datum: 2026-11-07 · Branch: main (ff-Merge von coding-agents-buchseite-2026-11-07, 0291fff..c629a55) plus dieser HANDOFF-Nachzug · gemergt, nicht deployt Domain: https://books.maatini.space · Origin: Gitea http://10.27.27.139:3000/admin/ki-buch-archive.git Modell: YAML in content/<slug>/status.yaml ist SSOT; HTML in projects/ und Hub-Tags sind Spiegel. Kein CMS, kein Shop. Begleit-ZIPs unter /downloads/ bleiben öffentlich.

Letzte Arbeit (committed)

13. Markdown-Downloads als ZIP (09.11., Branch md-download-2026-11-09, nicht gepusht)

  • Symptom: Listen wie „Drei Fragen an das System“ speichern der Browser als .zip, Inhalt ist .md.
  • Ursache Live (nginx VM 300, /etc/nginx/sites-available/ki-buch-archive): location /downloads/ { default_type application/zip; … } — .md fehlt in mime.types, landet deshalb als ZIP; Content-Disposition: attachment ohne Dateiname.
  • Repo-Fix: fulfill/nginx.snippet.conf mit korrekten types (zip/md/txt/pdf) und default_type application/octet-stream; alle Markdown-Links bekommen download="<dateiname>.md" (33 Stellen in 14 HTML-Dateien).
  • Live-Schaltung braucht zusätzlich sudo-Edit der Site-Config + nginx -t + reload (siehe Commit/HANDOFF); Snippet allein ändert den laufenden nginx nicht.

13. Coding-Agents-Buchseite 07.11. (Branch coding-agents-buchseite-2026-11-07, ff nach main, gemergt, nicht deployt)

  • Auftrag: Buchseite im Schwesterprojekt aktualisieren (Richie 07.11.2026).
  • Buch-Repo main = origin/main = a1b2505 (AP4–AP8 + BP-07 gepusht). eBook 252 S., Print 300 S., Wörter 58 389. Behebungsplan abgeschlossen; Ampel GELB (AP3-Band 214 Rest; Rescore 81,3 als Untergrenze).
  • Pack: MATERIAL_VERSION=material-2026-11-07 COMPANION_VERSION=0.1.6 ./scripts/pack-coding-agents-praxis.sh; Quelle a1b2505. SHA256 im MANIFEST (vorlagen 538ffa55…, checklisten 76657b78…, stack 1443cebf…).
  • Inhalt: A.8 numerische Schwellen, AGENTS.md-Beispiel Regel 40–80, Anhang-B-Nachtrag dbt v2.0 / Airflow 2 EOL / TanStack Start 1.0 / SvelteKit 3.
  • Seiten: status.yaml (Datum 2026-11-07, nächste Prüfung 2026-12-05), sync-companion-status.py (8 Dateien), Material-Seite (Paketstand, SHA256, Changelog), Übersicht (7.-November-Eintrag), Stand (Prüfumfang, Versand-Zeile), Changelog C-010, material-changelog.md, README-Versionstabelle.
  • Versand-PDF unangetastet (Host bleibt A4 245 S., AP3). Kein Deploy. Keine Errata/Drift. sync --check ok, 27 Tests grün.
  • Push 07.11.2026: origin/coding-agents-buchseite-2026-11-07 = c629a55 (Inhalt 9da3d77). ff-Merge nach main 07.11.2026 (0291fff..c629a55). Deploy und Versand-PDF-Tausch (A4 252 S. aus dist/coding-agents-praxis.pdf, SHA256 1a48e184…) nur mit Auftrag.
  • Fall: martin.richard@edeka.de + coding-agents-praxis. Ursache Konfiguration: Allowlist VM hat *.edeka.de nur für was-bleibt-vom-menschen und ki-hinterm-vorhang, nicht für coding-agents-praxis → Server antwortet still mit der Standardbestätigung, kein SMTP-Versuch. Brevo (30 Tage): keine einzige Coding-Agents-Mail, kein Event für die Adresse; Menschen/Vorhang an *.edeka.de laufen (zuletzt 04.11. 07:58).
  • Geprüft ok: PDF (8.716.857 Bytes, 6da5995b…, 644, lesbar für www-data), Slug überall coding-agents-praxis, Dienst active, Live-Code = main (SMTP), Versand via Brevo funktioniert. Mailjet-Branch nicht relevant.
  • Branch: Journal-Logzeile pro Entscheidung (decision=not-allowlisted|unknown-slug|rate-limited, nur Domain), SMTP-Fehlertext ohne Passwort, server.py --check EMAIL SLUG (sendet nichts). Tests 27 grün.
  • Fix ohne Code (Richie): Zeile *.edeka.de coding-agents-praxis (oder exakt martin.richard@edeka.de coding-agents-praxis) in private/allowlist.txt; kein Neustart nötig.

11. Coding-Agents-Versand-PDF AP3 als Vorabexemplar (03.11., Branch coding-agents-pdf-ap3-2026-11-03, nicht gepusht)

  • Auftrag: Richie 03.11.2026, 07:51 – Versand-PDF durch den AP3-Stand ersetzen (A4, 245 S.) und auf der Site als Vorabexemplar kennzeichnen. Entscheidet AE-Archiv-11.
  • Quelle: Buch-Repo ki-coding-agents-praxis main = origin/main = 22ddedc (AP2+AP3 gepusht), dist/coding-agents-praxis.pdf aus 212634a (AP3), Build 02.11. 23:03, A4, 245 S., 8.716.857 Bytes, SHA256 6da5995bb48d30b4…36ad3. Manuskript 212634a..22ddedc unverändert (nur HANDOFF/Audit). Buch-Status GELB, AP4–AP7 offen. Buch-Repo nur gelesen (lokal 169636f, 1 HANDOFF-Commit vor origin/main, nicht von diesem Lauf).
  • Host (VM 300, 03.11. ca. 07:53): Alt-Datei gemessen = Buch ccd78ad (8.719.658 Bytes, SHA256 32b23a45249fbc3c…f9981e5, A4 248 S. per pdfinfo am Mac aus git show ccd78ad:; auf der VM kein pdfinfo). Backups: private/books/coding-agents-praxis.pdf.bak-2026-11-01 und ~/backups/coding-agents-praxis.pdf.bak-2026-11-01-ccd78ad (beide Hash geprüft). Neu per scp als Temp-Datei, Hash geprüft, mv an private/books/coding-agents-praxis.pdf; Hash Host = Quelle, martin:martin 644, Pfad bis dahin 755 → lesbar für www-data. Kein Test-Versand, env/Allowlist/Dienste unberührt (ki-buch-fulfill active).
  • Seiten: Übersicht (Eintrag 3. November), Stand (Zeile „Buch-PDF (Versand)“), Changelog C-009, beziehen.html (Hinweis Vorabexemplar). Companion bleibt 0.1.5, Material material-2026-11-02, status.yaml und last_reviewed unverändert (keine inhaltliche Prüfung). Kein CSS, kein ?v=-Bump, Flyer unverändert.
  • Site-Deploy der Texte steht aus (Merge/Push/Deploy nur mit Auftrag); bis dahin liefert der Host schon das neue PDF, die Seite nennt es noch nicht.

10. Coding-Agents-Buchseite 02.11. (main, material-2026-11-02, companion-0.1.5, deployt)

  • Auftrag: Buchseite im Schwesterprojekt aktualisieren, Material mitziehen (Richie 02.11.2026).
  • Buch-Repo main @ a9e4efa (AP3-Handoff); AP1–AP3 fertig, am 02.11.2026 gepusht (origin/main = a9e4efa). Seit b1f9eb5 geändert: templates/ und checklists/ (Du-Ansprache, „Nebenbedingungen“, Handoff-Timing, Commit-SHA, HEAD-Check, Security-Verweise 18.2/18.9); Anhang B um B.1 „Methode und Grenzen“ und Stand-Zeile je Tabelle.
  • Pack: MATERIAL_VERSION=material-2026-11-02 COMPANION_VERSION=0.1.5 ./scripts/pack-coding-agents-praxis.sh; SHA256 im MANIFEST (vorlagen 91c18ff5…, checklisten 4a3c6b9e…, stack 3e7dc25a…).
  • Seiten: status.yaml (Datum 2026-11-02, nächste Prüfung 2026-11-30), sync-companion-status.py (8 Dateien), Material-Seite (Paketstand, SHA256, Changelog), Übersicht (2.-November-Eintrag), Stand (Prüfumfang, Drift-Text), Changelog C-008, material-changelog.md, README-Versionstabelle.
  • Kein PDF-Build, kein Deploy, kein Tausch des Versand-PDFs (private/books/coding-agents-praxis.pdf bleibt A4 248 S. aus ccd78ad), keine Errata/Drift.
  • Push nach origin/main am 02.11.2026 (bdeec6d..618a791). Korrektur 03.11.: VM am Morgen auf 618a791 geprüft – 0.1.5 ist deployt. Merge nicht nötig. AE-Archiv-11 am 03.11. entschieden (siehe Abschnitt 11).

9. Coding-Agents-PDF 02.11. — STOPP in § 1 (02.11., main, kein Build, kein Deploy)

  • Auftrag: eBook-PDF aus behebungsplan-2026-11-02 nach AP2 (AE-Archiv-08 C, Richie 02.11. 21:56) und Companion 0.1.5 veröffentlichen. Nichts davon ausgeführt; Befund nur im Chat.
  • Buch-Repo steht auf main 247b422 (Merge von behebungsplan-2026-11-02 2d43790, Tree da53b79 auf beiden). origin/main und origin/behebungsplan-2026-11-02 tragen diesen Stand. Merge und Push lagen vor Sitzungsbeginn und sind nicht von diesem Lauf.
  • AP2 nicht begonnen: audits/behebungsplan-2026-11-02.md:11 = „AP1 fertig, AP1-Gate offen“; kein audits/behebungsplan-ap2-*, kein Tag pre-ap2-* (nur pre-ap1-2026-11-02). .git/index.lock fehlt, kein fremder Agent-Prozess im Repo.
  • § 1 verlangt Branch behebungsplan-2026-11-02, HEAD-Betreff BP: HANDOFF, AP2-Bericht und pre-ap2-*; vier Punkte weichen ab. Deshalb kein Worktree, kein just pdf, kein Material-Neupacken, keine Errata/Drift, kein Versand-Tausch, kein C-008, kein Deploy.
  • Buch-Repo unverändert (247b422, status leer). Live bleibt companion-0.1.4 / material-2026-10-31 / C-007.
  • Deploy-Weg in diesem Lauf nicht belegt: README.md § Deploy nennt nur „Dateien so ausliefern“, keinen Befehl. Vor dem nächsten Veröffentlichungsversuch aus Host-Konfiguration und Reflog bestimmen.

8. Werbe-Flyer A5 (01.11., Branch flyer-2026-11-01 ab main 1fcc4af, nicht gepusht)

  • Je Buch projects/<slug>/flyer/index.html (A5 hoch, @page, ein Blatt), Stil css/flyer.css; Teaser auf den drei Übersichtsseiten, Cover + „Flyer“-Button in den Hub-Karten (Teaser-/Karten-CSS am Ende von styles.css).
  • Cover: Web-Kopien 600 px unter assets/covers/<slug>.jpg aus den Buch-Repos (Menschen/Vorhang assets/cover/cover.jpg, Coding Agents assets/cover/cover-front.jpg). QR-Codes offline (segno) unter assets/flyer/qr-<slug>.svg → Buchseite.
  • Texte nur aus Buchquellen: Vorwort/Klappentext (scripts/build_kdp_cover_wrap.py) Menschen, marketing/kdp-produkttexte.md Vorhang, README + assets/cover/cover-wrap.tex Coding Agents, Kapitel-Kernsätze und bestehende Site-Texte. Keine Preise, Rezensionen, Zahlen außer Kapitelzahl.
  • PDFs downloads/<slug>/flyer-<slug>.pdf per scripts/build-flyer-pdfs.sh (Headless Chrome, prüft „1 Seite“). Nach Textänderung am Flyer neu bauen. Nicht im MANIFEST (kein Material-Paket).
  • Kein Companion-Bump (kein Inhaltsstand), sync --check ok, 23 Tests grün, lokaler Linkcheck ok.

7. Menschen companion-0.1.2 (01.11., Branch was-bleibt-update-2026-11-01 ab main 988b34b)

  • Buch-Repo was-bleibt-vom-menschen main 7bcc129 (31.10., seit Site-Stand 922b100): Fälle-Einbau (reale Fälle/Studien in Prolog, Kap. 3, 5, 8, 10, 11, 15, 18, 19, 21), Kap. 12 Fakten, Kürzungen Prolog/15/18, Literatur. dist/was-bleibt-vom-menschen.pdf 164 S. (gebaut 31.10. 17:08), Print 266 S.
  • Kap. 1, 26, Glossar unverändert; Kap. 10 nur Obermeyer-Absatz → vier Spiegel/ZIP unverändert, kein Repack (material-2026-10-31, Paket-Companion 0.1.1). Hilfe H-01–H-09 passt weiter.
  • Übersicht (Seitenzahlen 164/266, Eintrag 1. November), Stand, Changelog C-003; last_reviewed 2026-11-01, nächste Prüfung 2026-11-29.
  • Versand-PDF auf VM 300 getauscht (01.11., Freigabe Richie): private/books/was-bleibt-vom-menschen.pdf = dist/was-bleibt-vom-menschen.pdf (A4, 164 S., Build 31.10. 17:08), SHA256 fa755cfc…3f632; Alt-Datei (A4, 30.10., b1df3d26…04ab9) als was-bleibt-vom-menschen.pdf.bak-2026-10-30 daneben. martin:martin 644, lesbar für www-data.

6. Coding Agents Prüfung 01.11. (Branch coding-agents-update-2026-11-01 ab main fa439d2)

  • Buch-Repo ki-coding-agents-praxis unverändert auf b1f9eb5 (release-prep, 30.10.); nur ungemergter Audit-Branch modellregel-2026-10-30 (f2e2e68, HANDOFF/Audit, kein Manuskript). Working tree des Buchs clean.
  • Abgleich: vorlagen.zip = templates/, checklisten.zip = checklists/, stack-orientierung.md = manuskript/kapitel-24-… (byte-gleich). Hilfe/Stand-Verweise (Kapitel, Thesen 7/9, Restore 4.3, Progressive Disclosure 6.3) passen zum Buchtext.
  • Kein Companion-Bump, kein Repack (Material bleibt material-2026-10-31 / companion-0.1.4). last_reviewed 2026-11-01, nächste Prüfung 2026-11-29, Changelog C-006.

5. Vorhang companion-0.1.12 (01.11., Branch ki-hinterm-vorhang-update-2026-11-01 ab companion-update-2026-10-31 0c14c7d, nicht gepusht)

  • Buch-Repo unverändert auf a0dfe0a (30.10.); kein neuer Manuskriptstand. Abgleich der Material-Spiegel und Hilfe mit dem Buchtext: Ampel-Matrix (Farbregeln, Tabelle wer prüft, Lissabon raus), Lese-Checkliste (Abbruchregel, „Die KI hat geschrieben.“), Denk-Checkliste (Maximen 1–4, „Der eine Satz“), Kernbegriffe (Glossar), Hilfe H-04/05/06/09.
  • material-2026-11-01, last_reviewed 2026-11-01, nächste Prüfung 2026-11-29, Changelog C-013. ZIP per Pack-Script neu, SHA256 auf Material-Seite. Branch mailjet-versand-2026-11-01 bleibt getrennt.

4. Companion-Abgleich Menschen, Vorhang und Coding Agents (31.10., Branch companion-update-2026-10-31)

  • Menschen companion-0.1.1 / material-2026-10-31 aus Buch-Repo 922b100: Vorabexemplar, A4 163 / Print 262, Kernbegriffe (Agent, AGI, Freigabe, Transformer), „Fehlerregister“.
  • Vorhang companion-0.1.11 / material-2026-10-31 aus Buch-Repo a0dfe0a: Buchstand Oktober 2026 überall, Ampel-Matrix „Abstufung nach Folgen“, Lese-Checkliste „justiert“, Changelog welle-10 / C-012, eBook 150 / Print 220.
  • Coding Agents companion-0.1.4 / material-2026-10-31 aus Buch-Repo b1f9eb5 (release-prep): Pack-Script Anhang B unter manuskript/ mit Fallback (AE-Archiv-02 A), Security-Kurzcheckliste, Alignment-Pflicht, Anhang B Snapshot August 2026 / B.7, book_fact_cutoff 2026-08, Changelog C-005. Zweitleser grok-4.6 ohne Einwand.
  • last_reviewed 2026-10-31 für diese drei; nächste Prüfung 2026-11-28. ZIPs neu gepackt, SHA256 auf Material-Seiten. Hub-<title> ohne „Beispiel-Downloads“.
  • Commits auf dem Branch nach main: eb9978a Menschen, d278b28 Vorhang, 7e93f78 Hub/README/HANDOFF, 4622701 Pack-Script, 75690b1 Coding Agents 0.1.4, 29adfda Handoff nachgezogen, 41cb87b Tag-Zeile korrigiert. Arbeitsbranch ca-update-2026-10-31 und Tag pre-coding-agents-update-2026-10-31 nur lokal, nicht gepusht.
  • Abnahme 31.10. (deepseek-v4_1-flash, read-only geprüft): bash -n ok, sync-companion-status.py --check „ok“, 23 Unittests grün, MANIFEST source_commit: b1f9eb5 und alle drei SHA256 = Dateien = Material-Seite; 9527e5e, material-2026-08-25, 0.1.3, „Mitte 2026“ nur noch in C-004 und dem alten h3. Abnahme-Stand 41cb87b, gepusht.
  • Offen: Urteil statt Output später. Versand-PDFs und Allowlist liegen nicht in diesem Workspace (private/books/ nur README). Merge nach main entscheidet Richie.

3. Vier Titel vom Hub genommen (listed: false)

  • Ausgeblendet: Claude-Code-Harness, Copilot-CLI-Harness, Codex-Harness, Agents mit Angular/Spring/Quarkus.
  • Hub und /beziehen.html listen sie nicht. projects/, downloads/, Fulfill-Slugs bleiben.
  • Allowlist: Exact plus Pattern *@domain und *.domain (mind. zwei Labels). Beispiel enthält *.edeka.de.
  • Sichtbar: Menschen, Vorhang, Coding Agents in der Praxis.

1. Ampel + YAML→HTML-Spiegel

  • Claude / Copilot / Codex: Ampel stale (90-Tage-Regel; last_reviewed unverändert 2026-07-29/30/31). Keine erfundene CLI-Nachprüfung.
  • Companion: Claude 0.1.2, Copilot 0.1.1, Codex 0.1.1. Praxis jetzt 0.1.4 current (Prüfung 2026-10-31). EIT 0.1.0 bleibt current (45-Tage-Review überfällig, 90 Tage noch nicht).
  • scripts/sync-companion-status.py (apply + --check). Hub-Tags, Prüfstatus-Karten, reviewed-line, Lesevertrag-Fuß. Changelog-Historie, SHA256, Paketstand-Karten unberührt.

2. Buch-PDF per E-Mail (Design A)

  • /beziehen.html → POST /api/beziehen → Allowlist private/allowlist.txt (Exact oder Pattern *@domain / *.domain, dann Slug) → HMAC-Link 24 h an die Adresse → GET /d/<token>.
  • Unbekannte Adresse: dieselbe Bestätigung, keine Mail. Rate-Limit 5/15 min pro IP. Python 3 stdlib, kein Pip.
  • PDFs: private/books/<slug>.pdf (gitignored). Nicht unter /downloads/.
  • Tests: python3 -m unittest fulfill.test_server (23, grün).
  • Deploy-Vorlagen: fulfill/fulfill.env.example, fulfill/ki-buch-fulfill.service, fulfill/nginx.snippet.conf (/api/ und /d/ → 127.0.0.1:8787). SMTP books@maatini.space.
  • Impressum: kurzer DSGVO-Satz (Art. 6 Abs. 1 lit. b).

Einstieg (neue Session)

Repo /Volumes/SSD2TB/books/ki-buch-archive, Branch main (ff von coding-agents-buchseite-2026-11-07, Inhalt 9da3d77).
C-010 / companion-0.1.6 / material-2026-11-07 aus Buch a1b2505 – gemergt, nicht deployt.
Live Host /var/www/books.maatini.space bleibt companion-0.1.5 / material-2026-11-02, Versand-PDF AP3 245 S.
Buch-Repo: origin/main = a1b2505 (AP1–AP8 + BP-07, eBook 252 / Print 300).
Nicht SMTP/Allowlist/PDFs erfinden.
Nächster Schritt nur mit Auftrag: auf VM nach /var/www/books.maatini.space deployen; Versand-PDF auf A4 252 S. tauschen.

Offene Reste (nur mit Auftrag)

  • Host: private/allowlist.txt, private/books/<slug>.pdf, /etc/ki-buch-archive/fulfill.env, nginx-Snippet, systemd-Unit. SMTP-Daten hat nur der Betreiber.

  • AE-Archiv-11: erledigt 03.11. (Richie, 07:51): nach Push von AP2/AP3 wird der AP3-Stand (212634a, Buch 22ddedc, A4 245 S.) als Vorabexemplar ausgeliefert; siehe Abschnitt 11. Ursprüngliche Frage: PDF-Quelle nach dem vorzeitigen Merge. A: AP2 abschließen, dann HEAD von behebungsplan-2026-11-02 als QSHA — AE-Archiv-08 C gilt unverändert (Empfehlung). B: 247b422 ohne AP2 ausliefern (Tree identisch, vier hohe Befunde der Vollprüfung offen) und auf der Seite als Arbeitsstand benennen. C: warten, bis ein Release-Stand gepusht ist (AE-Archiv-01 B). Stand 02.11.: AP2/AP3 sind auf main (a9e4efa), gepusht; origin/main = a9e4efa.

  • AE-Archiv-08 C: entschieden 02.11. 21:56, bisher nur hier dokumentiert. Die Changelog-Zeile C-008 entsteht in dem Lauf, der tatsächlich veröffentlicht.

  • AE-Archiv-09: In diesem Workspace keine Versand-PDFs. Menschen erledigt 01.11. (Host-Datei war A4, getauscht gegen A4 164 S.; siehe Abschnitt 7). Offen: Vorhang (Host 30.10., Quelle Print 220 S.). Coding Agents zuletzt getauscht 03.11.: private/books/coding-agents-praxis.pdf auf VM 300 = Buch 212634a dist/coding-agents-praxis.pdf (AP3, Vorabexemplar, A4, 245 S., 8.716.857 Bytes, SHA256 6da5995bb48d30b4…, Owner martin, 644; Hash Host = Quelle geprüft). Vorgänger (01.11., ccd78ad, A4 248 S., 32b23a45249fbc3c…) als coding-agents-praxis.pdf.bak-2026-11-01 daneben und in ~/backups/coding-agents-praxis.pdf.bak-2026-11-01-ccd78ad. Abgelegt ist die A4-Fassung, nicht Print. Bei ISBN-Vergabe neu bauen und erneut tauschen. Auf dem Host Alt-Datei-Typ (A4 vs Print) messen, dann tauschen. Empfehlung A.

  • AE-Archiv-08: Inventar-Sub-Agent DeepSeek 401; Fakten in der Hauptsession grok-4.6. Empfehlung A (gelten lassen).

  • AE-Archiv-10: Der Handoff nannte den Tag pre-companion-update-2026-10-31, der nie angelegt wurde. A: Zeile streichen, so umgesetzt in 41cb87b (Empfehlung). B: Tag rückwirkend auf 3ee30db setzen. C: anderer Name.

  • 45-Tage-Review EIT; echte CLI-Nachprüfung Claude/Copilot/Codex.

  • Formular-Klick im Browser nicht verifiziert (kein Browser-Tool); HTTP-Tests decken POST/GET.

  • Urteil statt Output: Companion-Abgleich später.

  • Coding Agents Re-Sync 01.11. (Branch coding-agents-update-2-2026-11-01): Buch b1f9eb5→ccd78ad nur redaktionell (5.13→5.8, pnpm-Coverage Kap. 10, Leitsatz-Boxen 16/19/21). Templates/Checklisten/Anhang A+B unverändert → kein Neupacken, companion bleibt 0.1.4, Changelog C-007. Flyer-Text passt, kein Neubau.

  • Layout kompakt 01.11. (Branch layout-kompakt-2026-11-01, nicht gemergt): body.page-wide auf Hub + drei Projekt-Übersichten (70rem). Hub: Buchkarten 3-spaltig, Cover 4,5rem. Übersicht: .book-head (Cover 7,5rem + Hero + Flyer-Hook + Prüfstatus rechts), .page-cols (Neuigkeiten links, Bereiche rechts), Downloads 3-spaltig. .flyer-teaser entfällt. Unterseiten unverändert 48rem.

  • Vorabexemplar 01.11. (Branch vorabexemplar-2026-11-01, nicht gemergt): Vorhang und Coding Agents wie Menschen gekennzeichnet – Hub-Karte, Übersicht-Lede, Stand „Buch“-Zeile, Flyer-Kicker + Flyer-PDF. Nicht: Changelog-Historie, Material-Downloads (Vorhang/Coding-ZIPs kommen per Pack-Script aus dem Buch-Repo), status.yaml (book_edition bei allen drei gleich, nicht gespiegelt). CSS unverändert, kein ?v=-Bump.

Nicht still

  • Kein erfundener Produkt-Review, last_reviewed nicht vordatieren.
  • Kein CMS/JS-Shop. Keine PDFs ins Git. Allowlist nicht committen.
  • Companion nur bei Inhaltsstand bump; Fulfill ist site-weit, nicht pro-Buch-companion.
  • Pack-Scripts nur mit Auftrag ändern; ZIPs nur per Pack-Script neu bauen. Grok: natives git/find/rg, kein rtk.
  • Errata/Drift-Listen sind leer – nicht füllen ohne Befund.
  • Menschen 0.1.1 und Vorhang 0.1.11 nicht anfassen. Entschiedene AEs nicht neu öffnen.

Verweise

README.md (Abschnitt „Buch-PDF per E-Mail“) · fulfill/server.py · scripts/sync-companion-status.py · content/*/status.yaml · beziehen.html