- .claude/settings.json - AI/Regelwerk/veroeffentlichung.md - CLAUDE.md - README.md Erzeugt vom PostToolUse-Hook .vault-tools/auto-push/auto_push.py. Co-Authored-By: Claude Opus 5 <[email protected]>
6.8 KiB
type, status, title, summary, tags, created, updated
| type | status | title | summary | tags | created | updated | ||||
|---|---|---|---|---|---|---|---|---|---|---|
| resource | reference | Veröffentlichung der Anweisungsschicht | Welcher Teil des Vaults in das Gitea-Repo claude-regelwerk geht, wie die Positivliste funktioniert und was der automatische Push tut. Laden, bevor der veröffentlichte Umfang geändert wird oder wenn ein Auto-Push-Befund im Kontext steht. |
|
2026-09-17 | 2026-09-17 |
Veröffentlichung der Anweisungsschicht
Angeordnet am 2026-09-17. Die Anweisungsschicht des Vaults liegt seitdem in einem eigenen Git-Repo und wird täglich um 04:00 gepusht. Laden, wenn der Umfang geändert werden soll oder wenn im Laufprotokoll ein Befund steht.
Der Vault-Root ist jetzt ein Git-Repo. Das war er vorher nicht, und es widerspricht nicht AI/Regelwerk/projekte: Die Projekte unter Code Projekte/ behalten ihre eigenen Repos, die von diesem hier nicht berührt werden.
| Remote | https://git.nexhorizons.de/Nexhorizons-Public/claude-regelwerk.git |
| Zweig | main |
| Sichtbarkeit | Organisation Nexhorizons-Public und Repo sind beide public. Anonym trotzdem gesperrt: Die Instanz verlangt für jede Ansicht eine Anmeldung (REQUIRE_SIGNIN_VIEW), gemessen am 2026-09-17 mit 403 auf der API und einer Weiterleitung auf den Login im Web. Das lässt sich nur in der app.ini am Server ändern, nicht über die API. |
Was hinausgeht — und warum die Liste so herum steht
Die .gitignore im Vault-Root ist eine Positivliste: Sie schließt mit /* erst alles aus und nimmt dann einzeln wieder auf. Eine Ausschlussliste wäre hier falsch herum — sie müsste jede künftige Notiz, jeden neuen Kundenordner und jede Depotdatei vorhersehen, und die erste vergessene Zeile ist eine Veröffentlichung.
Eingeschlossen sind: CLAUDE.md, README.md, AI/Regelwerk/, .claude/agents/, .claude/skills/, .claude/settings.json, .vault-tools/.
Draußen bleibt damit alles andere, insbesondere Inbox/, Code Projekte/, Security - Compliance Projekte/, Finanzen/, IT Workspace/, AI/sessions/, AI/secondbrain/, Bookstack/, Import/ und .claude/settings.local.json.
Wer den Umfang ändern will, ändert die .gitignore. Die Pfadliste in auto_push.py entscheidet nichts darüber — sie gehört zum Hook-Betrieb, der seit dem 2026-09-17 nicht mehr eingetragen ist. Der Code bleibt trotzdem stehen, weil der Fallkatalog ihn fährt und ein Hook-Betrieb jederzeit wieder eingetragen werden kann.
Was vor der Aufnahme einer Datei geprüft wird
Vor jeder Erweiterung der Positivliste, von Hand:
- Kundennamen, Domains, IP-Adressen, Snippet- und Ticket-IDs. In
seo.mdstand ein Kundenname im Klartext; er ist am 2026-09-17 durch eine neutrale Bezeichnung ersetzt worden. Die Fallgeschichte gehört ins Harness-Gedächtnis, nicht ins Regelwerk. - Zugangsdaten. Skripte lesen Zugänge aus Umgebungsvariablen, nie aus einer Datei im Repo. Gilt auch für Standardwerte und Beispielaufrufe in Kommentaren.
__pycache__und Laufzeitdateien..pycträgt kompilierte Zeichenketten, unter anderem URLs, und ist bereits einmal aufgefallen.
Wann gepusht wird
Täglich um 04:00 über die Windows-Aufgabenplanung, Aufgabe Claude-Vault Auto-Push. Sie startet python .vault-tools/auto-push/taeglich_push.py, und das Skript ruft dieselbe Arbeitsfunktion auf, die vorher am PostToolUse-Hook hing.
Was das kostet: Eine Änderung liegt bis zu 24 Stunden ungepusht herum. Wer sie sofort draußen haben will, startet den Lauf von Hand — python .vault-tools/auto-push/taeglich_push.py oder in der Aufgabenplanung „Ausführen".
Keine Cowork-Routine. Cloud-Routinen laufen in Anthropics Cloud und haben weder Zugriff auf D:\Claude noch auf die Umgebungsvariable GITEA_TOKEN dieser Maschine — steht so in der Routinen-Doku und deckt sich mit dem Depotbericht-Lauf vom 2026-09-07, der ohne Ergebnis blieb. Eine Routine dafür wäre eine Attrappe.
Jeder Lauf schreibt eine Zeile nach .vault-tools/auto-push/lauf.log, auch ein Lauf ohne Änderung. Ein Protokoll, das nur bei Erfolg schreibt, lässt sich von einer nie gestarteten Aufgabe nicht unterscheiden. Exit 0 heißt gepusht oder nichts zu tun, Exit 1 ist ein Befund mit Text im Protokoll.
Was der Push tut
git add -A, Commit, Push — die Arbeitsfunktion steht in .vault-tools/auto-push/auto_push.py. Das Token kommt über .vault-tools/auto-push/askpass.py aus der Umgebungsvariable GITEA_TOKEN; in .git/config steht nur der Benutzername.
Es gibt keine Freigabe und keinen Geheimnis-Scan. Was in einer eingeschlossenen Datei steht, geht heraus, sobald sie geschrieben wird — auch ein halbfertiger Zwischenstand. Das ist so angeordnet und der Grund, warum die Positivliste die einzige Schranke ist.
Der Lauf pusht den ganzen Baum. git add -A nimmt jede geänderte eingeschlossene Datei mit, egal aus welcher Sitzung sie stammt. Beim Hook-Betrieb am 2026-09-17 sind so zwei unfertige Zwischenstände einer Nachbarsitzung mitgegangen. Bei einem Lauf um 04:00 fällt das weniger auf und wiegt schwerer: Was um 03:59 halbfertig auf der Platte liegt, ist um 04:00 draußen.
Eine fehlende Voraussetzung ist ein Befund, kein Grund zu schweigen. Fehlendes Token, fehlendes Remote, gescheiterter Push: Der Lauf schreibt den Befund ins Protokoll und endet mit Exit 1, den die Aufgabenplanung als „Letztes Ergebnis" führt. Ein gescheiterter Push verliert nichts — der Commit bleibt lokal, der nächste Lauf schiebt ihn mit.
Das Protokoll ist die einzige Stelle, an der ein Fehler auftaucht. Niemand sitzt um 04:00 davor. Der häufigste Fall wird ein Push-Fehler bei fehlendem Netz oder ausgeschaltetem Rechner sein; beides holt der nächste Lauf nach. Wer wissen will, ob die Aufgabe überhaupt läuft, liest lauf.log — dort steht auch jeder Lauf ohne Änderung.
Der Watermark-Hook meldet diese Datei als KI-markiert. Das ist ein Fehlalarm. Ausgelöst hat ihn das Wort „claude" im Frontmatter-Feld summary — der Repo-Name claude-regelwerk genügt dafür. Am 2026-09-17 mit drei Proben eingegrenzt: dieselbe Zeile mit gitea-export statt claude-regelwerk läuft durch. Die Datei enthält keine auffälligen Codepunkte. Nicht bereinigen.
Der Fallkatalog liegt daneben: python .vault-tools/auto-push/faelle_auto_push.py fährt 28 Fälle gegen ein echtes Wegwerf-Repo mit echtem Remote. Er ist ein Fangnetz, kein Nachweis — er sieht, ob ausgelöst wird und ob die Positivliste hält, und nicht, ob eine eingeschlossene Datei etwas enthält, das niemand veröffentlichen wollte.
Referenzen
- CLAUDE
- AI/Regelwerk/pruefwerkzeuge: Angriffsliste und „eine fehlende Voraussetzung ist ein Befund"
- AI/Regelwerk/windows-shell: Geheimnisse nur als Länge ausgeben
- AI/Regelwerk/projekte: die eigenen Repos der Code-Projekte