Der Vault-Root pusht ab jetzt nach jeder Änderung an CLAUDE.md, AI/Regelwerk/, .claude/agents/, .claude/skills/, .claude/settings.json oder .vault-tools/ selbsttätig nach Gitea. - .vault-tools/auto-push/auto_push.py: PostToolUse-Hook, committet und pusht. Fehlendes Token, fehlendes Remote und gescheiterter Push sind Befunde und gehen in den Kontext, nicht ins Schweigen. - .vault-tools/auto-push/askpass.py: reicht GITEA_TOKEN an git weiter, damit es weder in .git/config noch in einer Kommandozeile steht. - .vault-tools/auto-push/faelle_auto_push.py: 28 Fälle gegen ein echtes Wegwerf-Repo mit echtem Remote, alle bestanden. Der Lauf hat zwei Fehler gefunden, die jetzt behoben sind: die Pfadauflösung scheiterte an Windows-Kurznamen, und die Laufzeitsperre landete im Repo. - AI/Regelwerk/veroeffentlichung.md und ein Abschnitt im Stamm halten die Regel fest. Co-Authored-By: Claude Opus 5 <[email protected]>
4.6 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 nach jeder Änderung automatisch gepusht. Laden, wenn der Umfang geändert werden soll oder wenn eine Auto-Push-Meldung im Kontext 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/claude-regelwerk.git |
| Zweig | main |
| Sichtbarkeit | Repo auf public, aber die Organisation Nexhorizons ist privat und die Instanz verlangt für jede Ansicht eine Anmeldung. Faktisch ist es damit nur für angemeldete Nutzer der Instanz sichtbar. |
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 — nicht die Pfadliste im Hook. Die Liste dort entscheidet nur, ob der Hook überhaupt anläuft.
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.
Der automatische Push
.vault-tools/auto-push/auto_push.py, eingetragen als PostToolUse-Hook auf Edit|Write|MultiEdit. Nach jeder Änderung an einer eingeschlossenen Datei: git add -A, Commit, Push. 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.
Eine fehlende Voraussetzung ist ein Befund, kein Grund zu schweigen. Fehlendes Token, fehlendes Remote, gescheiterter Push: Der Hook meldet das in den Kontext. Ein gescheiterter Push verliert nichts — der Commit bleibt lokal, der nächste Lauf schiebt ihn mit.
Wenn eine Auto-Push-Meldung kommt, ist sie zu lesen und nicht wegzuklicken. Der häufigste Fall wird ein Push-Fehler bei fehlendem Netz sein; dann genügt es, später eine beliebige eingeschlossene Datei erneut zu speichern.
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 der Hook auslöst 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