--- type: resource status: reference title: "Veröffentlichung der Anweisungsschicht" summary: "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." tags: [regelwerk, git, veroeffentlichung, werkzeuge] created: 2026-09-17 updated: 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|projekte.md]]: 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: 1. **Kundennamen, Domains, IP-Adressen, Snippet- und Ticket-IDs.** In `seo.md` stand 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. 2. **Zugangsdaten.** Skripte lesen Zugänge aus Umgebungsvariablen, nie aus einer Datei im Repo. Gilt auch für Standardwerte und Beispielaufrufe in Kommentaren. 3. **`__pycache__` und Laufzeitdateien.** `.pyc` trä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. **Der Hook pusht den ganzen Baum, nicht nur die ausgelöste Datei.** `git add -A` nimmt jede geänderte eingeschlossene Datei mit — auch die, an der gerade eine **zweite, parallel laufende Sitzung** arbeitet. Beim ersten scharfen Lauf am 2026-09-17 sind so zwei unfertige Zwischenstände aus einer Nachbarsitzung mitgegangen. Das ist gewollt (sonst bliebe bei jedem Lauf etwas liegen), aber es heißt: **wer parallel in zwei Sitzungen am Regelwerk arbeitet, veröffentlicht beide Stände.** **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 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 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|↑ Claude.md (Stamm)]] - [[AI/Regelwerk/pruefwerkzeuge|pruefwerkzeuge.md]]: Angriffsliste und „eine fehlende Voraussetzung ist ein Befund" - [[AI/Regelwerk/windows-shell|windows-shell.md]]: Geheimnisse nur als Länge ausgeben - [[AI/Regelwerk/projekte|projekte.md]]: die eigenen Repos der Code-Projekte