Automatischer Push: 4 Datei(en) geändert
- .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]>
This commit is contained in:
1 parent
6b74d835f6
commit
3f2db1672b
4 files changed
+23
-21
No files matched your search
@@ -31,14 +31,6 @@
|
|||||||
"D:/Claude/.vault-tools/session-hooks/regelwerk_nach_edit.py"
|
"D:/Claude/.vault-tools/session-hooks/regelwerk_nach_edit.py"
|
||||||
],
|
],
|
||||||
"timeout": 30
|
"timeout": 30
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "command",
|
|
||||||
"command": "python",
|
|
||||||
"args": [
|
|
||||||
"D:/Claude/.vault-tools/auto-push/auto_push.py"
|
|
||||||
],
|
|
||||||
"timeout": 60
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,15 +10,15 @@ updated: 2026-09-17
|
|||||||
|
|
||||||
# Veröffentlichung der Anweisungsschicht
|
# 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.
|
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|projekte.md]]: Die Projekte unter `Code Projekte/` behalten ihre eigenen Repos, die von diesem hier nicht berührt werden.
|
**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` |
|
| Remote | `https://git.nexhorizons.de/Nexhorizons-Public/claude-regelwerk.git` |
|
||||||
| Zweig | `main` |
|
| 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.** |
|
| 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
|
## Was hinausgeht — und warum die Liste so herum steht
|
||||||
|
|
||||||
@@ -28,7 +28,7 @@ Eingeschlossen sind: `CLAUDE.md`, `README.md`, `AI/Regelwerk/`, `.claude/agents/
|
|||||||
|
|
||||||
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`.
|
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.
|
**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
|
## Was vor der Aufnahme einer Datei geprüft wird
|
||||||
|
|
||||||
@@ -38,21 +38,31 @@ Vor jeder Erweiterung der Positivliste, von Hand:
|
|||||||
2. **Zugangsdaten.** Skripte lesen Zugänge aus Umgebungsvariablen, nie aus einer Datei im Repo. Gilt auch für Standardwerte und Beispielaufrufe in Kommentaren.
|
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.
|
3. **`__pycache__` und Laufzeitdateien.** `.pyc` trägt kompilierte Zeichenketten, unter anderem URLs, und ist bereits einmal aufgefallen.
|
||||||
|
|
||||||
## Der automatische Push
|
## Wann gepusht wird
|
||||||
|
|
||||||
`.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.
|
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.
|
**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.**
|
**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 Hook meldet das in den Kontext. Ein gescheiterter Push verliert nichts — der Commit bleibt lokal, der nächste Lauf schiebt ihn mit.
|
**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.
|
||||||
|
|
||||||
**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.
|
**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 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.
|
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
|
## Referenzen
|
||||||
|
|
||||||
|
|||||||
@@ -94,11 +94,11 @@ Jede Datei triggert nur den betreffenden Teil — nicht bei jeder Aufgabe alles
|
|||||||
|
|
||||||
## Veröffentlichung
|
## Veröffentlichung
|
||||||
|
|
||||||
Der Vault-Root ist ein Git-Repo und pusht nach **jeder** Änderung automatisch nach `https://git.nexhorizons.de/Nexhorizons/claude-regelwerk.git`. Veröffentlicht wird nur die Anweisungsschicht: `CLAUDE.md`, `README.md`, `AI/Regelwerk/`, `.claude/agents/`, `.claude/skills/`, `.claude/settings.json` und `.vault-tools/`.
|
Der Vault-Root ist ein Git-Repo und pusht **täglich um 04:00** nach `https://git.nexhorizons.de/Nexhorizons-Public/claude-regelwerk.git` — über die Windows-Aufgabe `Claude-Vault Auto-Push`, nicht über eine Cloud-Routine. Veröffentlicht wird nur die Anweisungsschicht: `CLAUDE.md`, `README.md`, `AI/Regelwerk/`, `.claude/agents/`, `.claude/skills/`, `.claude/settings.json` und `.vault-tools/`.
|
||||||
|
|
||||||
Die `.gitignore` im Root ist eine **Positivliste** — sie schließt erst alles aus und nimmt dann einzeln wieder auf. Notizen, Projekte, Finanzen, Sitzungen und `settings.local.json` bleiben damit draußen, auch wenn morgen ein neuer Ordner dazukommt.
|
Die `.gitignore` im Root ist eine **Positivliste** — sie schließt erst alles aus und nimmt dann einzeln wieder auf. Notizen, Projekte, Finanzen, Sitzungen und `settings.local.json` bleiben damit draußen, auch wenn morgen ein neuer Ordner dazukommt.
|
||||||
|
|
||||||
**Es gibt keine Freigabe vor dem Push.** Was in einer eingeschlossenen Datei steht, ist nach dem Speichern draußen — auch ein Zwischenstand. Wer eine Datei neu in die Positivliste aufnimmt, prüft sie vorher auf Kundennamen, Domains und Zugangsdaten. Alles Weitere, auch die Fehlerfälle des Hooks: [[AI/Regelwerk/veroeffentlichung|veroeffentlichung.md]].
|
**Es gibt keine Freigabe vor dem Push.** Was in einer eingeschlossenen Datei steht, ist beim nächsten Lauf draußen — auch ein Zwischenstand, der um 03:59 halbfertig auf der Platte liegt. Wer eine Datei neu in die Positivliste aufnimmt, prüft sie vorher auf Kundennamen, Domains und Zugangsdaten. Alles Weitere, auch die Fehlerfälle des Hooks: [[AI/Regelwerk/veroeffentlichung|veroeffentlichung.md]].
|
||||||
|
|
||||||
## Selbstpflege des Regelwerks
|
## Selbstpflege des Regelwerks
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ Das Repo ist ein Ausschnitt eines größeren, privaten Vaults. Es enthält keine
|
|||||||
| `AI/Regelwerk/` | Eine Datei je Aufgabentyp — Schreibstil, Codeworkflow, Prompting, API-Mechanik, Frontmatter und weitere. Wird gezielt nachgeladen, nicht auf Vorrat. |
|
| `AI/Regelwerk/` | Eine Datei je Aufgabentyp — Schreibstil, Codeworkflow, Prompting, API-Mechanik, Frontmatter und weitere. Wird gezielt nachgeladen, nicht auf Vorrat. |
|
||||||
| `.claude/agents/` | Die drei festen Rollen: `planer`, `executer`, `pruefer`. Jede Rolle ist fest einem Modell zugeordnet. |
|
| `.claude/agents/` | Die drei festen Rollen: `planer`, `executer`, `pruefer`. Jede Rolle ist fest einem Modell zugeordnet. |
|
||||||
| `.claude/skills/` | Eigene Skills (BookStack-Upload, Plane-Abgleich, die Standardschleife aus Planen–Umsetzen–Prüfen). |
|
| `.claude/skills/` | Eigene Skills (BookStack-Upload, Plane-Abgleich, die Standardschleife aus Planen–Umsetzen–Prüfen). |
|
||||||
| `.claude/settings.json` | Hooks: Sitzungsstart, Regelwerk-Prüfung nach jedem Edit, automatischer Push. |
|
| `.claude/settings.json` | Hooks: Sitzungsstart und Regelwerk-Prüfung nach jedem Edit. |
|
||||||
| `.vault-tools/` | Prüf- und Wartungsskripte, unter anderem Linkcheck, Regelwerk-Check und Plan-Kopie. |
|
| `.vault-tools/` | Prüf- und Wartungsskripte, unter anderem Linkcheck, Regelwerk-Check und Plan-Kopie. |
|
||||||
|
|
||||||
## Die zwei Ideen, um die herum alles gebaut ist
|
## Die zwei Ideen, um die herum alles gebaut ist
|
||||||
|
|||||||
Reference in new issue
Block a user