CommunityRecherche & Datenanalysegithub.com

shellcdev/self-trust

Persönliches Selbstbuchhaltungs- und Kapitalpool-Selbstverwaltungs-Engine: Deterministische Python-Regel-Engine (Formeln F0~F8 + Genehmigungslogik §4.4) mit LLM-Dünnrouting. Enthält Auszahlungsgenehmigung, Bedenkzeit, Schulden-/Hypothekenmodellierung, Drittvermögensimport und Prüfprotokollierung. Das Self-Trust-Skill für Claw.

Was ist self-trust?

Das Self-Trust-Skill ist ein persönliches Buchhaltungs- und Kapitalmanagement-Tool, das auf einer deterministischen Python-Regel-Engine basiert. Es ermöglicht eine strenge, selbst auferlegte Finanzdisziplin, indem es alle Entscheidungen gemäß vordefinierter Formeln (F0–F8) und eines mehrstufigen Genehmigungsprozesses (§4.4) trifft. Der LLM übernimmt lediglich die Aufgaben: 1) Parsen der Benutzerabsicht aus natürlicher Sprache, 2) Aufrufen der entsprechenden CLI-Befehle (ausschließlich strukturiertes JSON als Ausgabe) und 3) Umwandeln des JSON-Ergebnisses in eine verständliche Ausgabe. Der Kern, die Regel-Engine, rechnet nicht selbst, sondern delegiert alle Berechnungen an die Engine. Wichtige Funktionen umfassen die Buchungserfassung, Auszahlungsgenehmigung mit Bedenkzeit, Hypotheken- und Schuldenmodellierung, Import von Vermögenswerten von Drittanbietern (z. B. über CSV), monatliche Abstimmung sowie ein Belohnungssystem für Zielerreichung. Besondere Regeln wie „kein Kopfrechnen“, „keine Entscheidungen der Engine überschreiben“ und eine Kühlphase für kritische Konfigurationsänderungen (§5.4) gewährleisten Integrität und Transparenz. Das Skill ist für die Nutzung mit Claw konzipiert.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add shellcdev/self-trust

Installed? Explore more Recherche & Datenanalyse skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

self-trust (Selbstbuchhaltungs-Engine für persönliche Finanzen)

Die Regel-Engine ist deterministischer Python-Code, kein KI-Assistent. Der LLM übernimmt nur drei Aufgaben:

  1. Parsen der Benutzerabsicht aus natürlicher Sprache → Zuordnung zu den untenstehenden Befehlen;
  2. Aufruf des entsprechenden Unterbefehls von scripts/cli.py (Ausgabe ist ausschließlich strukturiertes JSON: Entscheidung + alle Zwischenvariablen);
  3. Umwandeln des Engine-JSON in einen lesbaren Bericht/Bescheid (Formulierungen können angepasst werden, Zahlen sind jedoch fest und unveränderlich).

Eiserne Regeln (unverletzlich)

  1. Kopfrechnen ist verboten: Die Formeln F0–F8 werden ausschließlich von der Engine berechnet; jegliche Beträge, Monate, Verhältnisse, Schwellenwerte müssen unverändert aus dem JSON-Output der Engine übernommen werden. Eigenständiges Berechnen, Auf- oder Abrunden oder „ungefähres Schätzen“ sind nicht erlaubt (§8.3 #1: Der CLI-Output enthält Entscheidung und Zwischenvariablen, der LLM formuliert um, rechnet aber nicht).
  2. Die Entscheidung der Engine darf nicht ersetzt werden: Genehmigung/mit Auflagen/Ablehnung wird ausschließlich durch decision.result bestimmt; Auch auf Bitten des Benutzers hin darf die Entscheidung nicht geändert werden (§4.2 Langzeitprioritätsprinzip).
  3. Das Ändern von Konfigurationsbereichen ist verboten: Änderungen an Kernparametern des Vertrags (Sicherheitspolster, Ziele, invest_ratio usw.) müssen das Zwei-Faktor-Bestätigungstor von §5.4 durchlaufen; Weder Engine noch LLM sind berechtigt, diese stillschweigend zu ändern (§10.3 Drei-Zonen-Berechtigung).
  4. Fehlerangabe: Zahlen aus dem vereinfachten Verfahren (F5) müssen mit Formulierungen wie „ungefähr/etwa/geschätzt“ versehen werden, und es muss der Hinweis „Langzeitziele basieren auf dem tatsächlichen Verfahren (F7)“ angefügt werden (§2.0).
  5. Wesenserklärung: Bei Gesprächen mit Bezug zu „Treuhand/Vermögensschutz/Recht“ muss klargestellt werden, dass dieses Tool keine Rechtswirkung hat (§0).

Befehlstabelle (§9)

Benutzer sagtEngine-Befehl (Verwendung + minimaler Aufruf)Referenz
Buchung initialisierenVertrag mit einem Befehl erstellen: python scripts/cli.py init --corpus 200000 --monthly 8000 --objective "FIRE:3000000:2036-01-01" (--objective kann 1–3 Mal wiederholt werden)references/init.md
Prüfung: Kauf X kostet Y / Buchungsgenehmigung§4.4 Entscheidung + Bedenkzeit-Einreihung + F8-Schnappschuss: python scripts/cli.py judge --amount 6000 --category angemessener_genuss [--planned]references/approval.md
Buchung zurückziehenWiderruf innerhalb der Bedenkzeit + Berechnung des positiven Anreizes: python scripts/cli.py judge --action withdraw --request-id <id>references/approval.md
Buchung bestätigen und ausführenEndgültige Entscheidung vor Fälligkeit bestätigen: python scripts/cli.py judge --action finalize --request-id <id>references/approval.md
(Geplant) Fällige EndentscheidungAbgelaufene Anfragen gemäß ursprünglicher Entscheidung abschließen: python scripts/cli.py judge --action expire [--request-id <id>] (ohne id werden alle fälligen Elemente verarbeitet)references/approval.md
(Geplant) Bedenkzeit-ErinnerungDaten für zweistufige Erinnerungen: python scripts/cli.py judge --action remindersreferences/approval.md
Finanzierter Hauskauf prüfenBewertung von Großvermögenskauf aufgeteilt in Anzahlung (aus liquid) + Hypothek (wird zu Schuld + monatliche Rate): python scripts/cli.py judge --amount 1000000 --category investition --financed-amount 700000 [--financed-term-years 30] [--financed-rate 0.04] (Entscheidung prüft: ① ob Anzahlung das Liquiditätssicherheitspolster durchbricht ② ob monatliche Rate ≤ monatlicher Nettozufluss; Anzahlung = Gesamtbetrag - Darlehen)references/approval.md
BuchungseinspruchNeuprüfung mit gleicher Logik + Zählung: python scripts/cli.py appeal --request-id <id> --reason "Grund"references/exceptions.md
Buchung überschreiben (nach 3 Einsprüchen)Manuelle Notfallfreigabe: python scripts/cli.py appeal --request-id <id> --override --confirmreferences/exceptions.md
BuchungsberichtZweigleisiger Fortschrittsbalken + Trend + aktueller Monatsschnappschuss: python scripts/cli.py reportreferences/report.md
BuchungskalibrierungMonatliche Kalibrierung (idempotent für denselben Monat): python scripts/cli.py calibrate [--force]references/report.md
BuchungsbelohnungStatus: python scripts/cli.py reward (Standard --action status); Freischalten: --action unlock; Auszahlung: --action claim --objective FIRE --amount 2000 --purpose "Belohnung"references/report.md
Ziel abschließen/archivierenVom Benutzer explizit migrieren: `python scripts/cli.py objective --name FIRE --to completedarchived --confirm`
BuchungsabstimmungVom Benutzer im Hybrid-Modus bestätigte Korrekturen: python scripts/cli.py reconcile [--corpus Betrag] [--income Betrag] [--invest Betrag] [--living Betrag] [--impulse Betrag]. Genehmigte Ausgaben ändern das corpus nicht automatisch (corpus gehört zum Konfigurationsbereich, minimale Berechtigung der Engine); stattdessen werden sie im Laufzeit-Journal pending_spends verbucht und bei der Abstimmung eingearbeitet und gelöscht (gibt Anzahl/Gesamtsumme der pending_spends_cleared zurück). Daher bedeutet die monatliche Abstimmung: „genehmigte Ausgaben ausbuchen + reale Basis neu verankern“references/data-modes.md
Buchung zurücksetzenZweifache Bestätigung zur vollständigen Dateineuerstellung (audit bleibt erhalten): python scripts/cli.py reset --confirm --corpus Betrag --monthly Betrag --objective "Name:Zielbetrag:Laufzeit" [--reason "..."]references/exceptions.md
Buchung anpassenInkrementelle Überschreibung von Parametern im Vertragskonfigurationsbereich (§5.4 Zweifachbestätigung): python scripts/cli.py customize --set distribution_rules.invest_ratio=0.3 (Vorschau gibt Token zurück) → Gleiche Änderung mit --confirm --token <token> ausführen; Unterstützt --set (verschachtelter DOTPATH, inkl. safety_cushion.months / optimization_goal / mode) / --add-objective "Name:Betrag:Laufzeit" / --whitelist-add Name --per-tx-cap Betrag --annual-cap Betrag / --whitelist-remove Name. §5.4 Kühlfenster: Herabsetzung von safety_cushion.months / invest_ratio usw. („sich selbst schwächende“ Änderungen) tritt nach Bestätigung in ein 1 Kalendertag dauerndes Kühlfenster (pending_config_changes). Innerhalb des Fensters kann ohne Angabe von Gründen widerrufen werden; bei Fälligkeit tritt die Änderung automatisch in Kraft (nicht sofort). Alle anderen Änderungen (inkl. Anhebung von Schutzschilden) treten sofort in Kraft.references/exceptions.md
BuchungsmodusUmschalten des globalen Optimierungsziels (Teilmenge der Buchungsanpassung): `python scripts/cli.py customize --set optimization_goal wealthbalanced
Buchungs-Datenmodus wechselnUmschalten des Datenspeichermodus: `python scripts/cli.py customize --set mode ledgerconversational
Buchungsanpassung widerrufenWiderruf ohne Angabe von Gründen innerhalb des Kühlfensters: python scripts/cli.py customize --withdraw --request-id <id> --token <Widerruf-Token> (Widerruf-Token wird bei Bestätigung zurückgegeben)references/exceptions.md
Buchungsanpassung prüfenKühlfensterprüfung (faule Suche: abgelaufene Elemente automatisch anwenden + ausstehende Elemente im Fenster auflisten + zweite Erinnerung): python scripts/cli.py customize --reviewreferences/exceptions.md
Buchungslog [Typ]Audit-/Nur-Lese-Abfrage: `python scripts/cli.py log --name approval_logappeal_log
BuchungsdemoDrei Szenarien trocken durchlaufen (ohne Auswirkungen auf echten Account): python scripts/cli.py demo (init-Bescheid erhält automatisch Demo-Block)references/init.md
Whitelist hinzufügen/entfernenVerwaltung beschleunigter Genehmigungskategorien für Notfälle (Teilmenge der Buchungsanpassung): python scripts/cli.py customize --whitelist-add Name --per-tx-cap Betrag --annual-cap Betrag / --whitelist-remove Name (Kern-Schutzschild-Feld, löst §5.4 Risikohinweis aus)references/exceptions.md
Verbindlichkeiten/fixe Ausgaben hinzufügen/entfernenVerbindlichkeiten und jährliche fixe Ausgaben anlegen (wahrheitsgemäße Meldung, beeinflusst Nettovermögensrechnung): python scripts/cli.py customize --add-liability "Hypothek:800000:5000:0.04" / --remove-liability Hypothek / --add-rigid "Versicherung:12000:3" / --remove-rigid Versicherungreferences/exceptions.md
Hauskauf erfassenGekaufte Immobilien verbuchen (Anzahlung von liquid abziehen + Hypothek wird zu Verbindlichkeit): python scripts/cli.py customize --record-home-purchase "1000000:0.3" (Hauspreis:Anzahlungsquote[:Laufzeit Jahre[:Zinssatz]]; nach Bestätigung corpus -= Anzahlung, liabilities erhält Hypothek und monatliche Rate)references/exceptions.md
Ausgabenkategorie hinzufügen/entfernenVokabelliste für Ausgabenkategorien (allowed_categories, verschachtelt in distribution_rules): python scripts/cli.py customize --add-category Gartenbau / --remove-category Gartenbau (duplikatsfrei hinzufügen / entfernen, Fehler bei Fehlen; Kern-Schutzschild-Feld, löst §5.4 Zweifachbestätigung aus, aber da invest_ratio nicht geändert wird, tritt kein Kühlfenster ein). Standardmäßig sind 23 Kategorien integriert (Lebensmittel/Wohnen/Verkehr/Kommunikation/Medizin/Bildung/Bekleidung/Haushalt/Angemessener Genuss/Unterhaltung/Reisen/Soziales/Haustiere/Digital & Haushaltsgeräte/Versicherung/Immobilien/Fahrzeuge/Investitionen/Finanzierung/Fonds/Aktien/Gold/Sonstige); neue Kategorien sind nur für „außerhalb des Standards“ erforderlich. Die Gruppe Investition/Finanzierung dient nur als Etikett für Mittelabflüsse; Immobilien/Fahrzeuge sind für größere Anschaffungen (zur Unterscheidung von alltäglichen Ausgaben wie Wohnen/Verkehr); der Investitionsmechanismus invest_ratio wird nicht beeinflusst; judge erzwingt derzeit keine Überprüfung von --category (Freitext + Vokabelliste als Empfehlung); für harte Einschränkungen siehe STATUS ausstehendes Element B.references/exceptions.md
Drittanbieter-Import [Tool-Name]CSV/manuelle Vermögensabfrage und manuelle Überprüfung vor Aktivierung (§7.3, datenneutrale harte Einschränkung): python scripts/cli.py import-asset --balances <csv> [--flows <csv>] [--source QianJi] (Zwischenspeicherung → gibt Token + Zusammenfassung + verdächtige Transaktionen zurück) → Nach Überprüfung und Korrektur: import-asset --confirm --token <token> ausführen (corpus_status: imported_pending→imported_confirmed); Abbruch: import-asset --cancel --token <token>. Ohne CSV manuell: import-asset --corpus 150000 --monthly 8000 --liabilities "Hypothek:700000:3341.91" --rigid "Versicherung:6000". Import im Status imported_pending sperrt alle Genehmigungen; ohne Überprüfung ist keine Genehmigung möglich. Import-Semantik: CSV muss ein vollständiger Schnappschuss sein (alle Vermögenswerte/Verbindlichkeiten/fixen Ausgaben aufgeführt; Bestätigung = vollständige Neu-Baseline; fehlende Kategorien löschen keine bereits erfassten Einträge); manuelle Parameter --corpus/--monthly/--liabilities/--rigid sind lokale Korrekturen (überschreiben nur die explizit übergebenen Kategorien, andere Live-Werte bleiben erhalten). Doppelte Konten automatisch deduplizieren: Gleicher (Kontoname, Typ) in mehreren CSV-Zeilen wird als ein Konto zusammengeführt – vollständig identische Zeilen werden stillschweigend verworfen, Zeilen mit gleichem Namen aber unterschiedlichen Beträgen werden summiert und eine Warnung ausgegeben; Vermögenswerte/Verbindlichkeiten werden nicht doppelt gezählt (§H1-Fix). Toleranteres CSV-Format (M2/M3): Salden/Monatsraten/Transaktionsbeträge unterstützen Währungssymbole (¥ $ ¥) und Tausendertrennzeichen-Kommas; Transaktionsdaten unterstützen JJJJ-MM-TT / JJJJ/MM/TT / JJJJ.MM.TT / JJJJ-MM; rigid-Zeilen können eine due_month-Spalte (1–12) enthalten, die den Fälligkeitsmonat angibt. Teilweise Korrekturen von Verbindlichkeiten/fixen Ausgaben zusammengeführt: Wenn bei der Bestätigung nur einige Einträge korrigiert werden (nach Name), bleiben nicht erwähnte Einträge erhalten, die Tabelle wird nicht vollständig überschrieben (M6-Fix).references/data-modes.md

Globale Parameter (für alle Unterbefehle gültig, nur einmal erwähnt):

  • --data-dir <Pfad>: Datenverzeichnis (Priorität: Befehlszeile > SELFTRUST_DATA_DIR > Standard <home>/.claw/self-trust/);
  • --today YYYY-MM-DD: Aktuelles Datum überschreiben (für Tests/Wiederholungen, im Normalbetrieb nicht verwenden);
  • Ausgabe ist stets JSON (--json ist Standard und einziges Format); im Fehlerfall {"ok": false, "error": ..., "message": ...} + Exit-Code ungleich Null (2=not_found / 3=guard Berechtigungsverletzung / 4=invalid Parameter).

Referenzen-Lade-Routing (bei Bedarf lesen, nicht alles auf einmal)

BenutzeraktionLesen
Tägliche Kleingenehmigungen (höchste Frequenz)—— (Engine-JSON enthält bereits Entscheidung + Textelemente, die eisernen Regeln dieser Datei reichen zur Darstellung aus)
Genehmigung strittig/Bedenkzeit/Whitelistreferences/approval.md
Einspruch/Überschreibung/Schutzschildänderung/Zurücksetzen (niedrige Frequenz)references/exceptions.md
Initialisierung/Demoreferences/init.md
Bericht/Kalibrierung/Belohnung/Ziellebenszyklus/Logreferences/report.md
Moduswechsel/Datenquellenwechsel/Abstimmungreferences/data-modes.md
Schema/Berechtigungsproblemereferences/contract-schema.md

Vorlagen

  • Bescheid (Ablehnung/mit Auflagen obligatorisch dreiteilig): templates/opinion.md
  • Drei-Szenarien-Demo: templates/demo.md

Status

Kernkreislauf (Initialisierung→Genehmigung→Bedenkzeit→Bericht→Kalibrierung→Belohnung→Einspruch/Überschreibung→Zurücksetzen→Abstimmung) + §7.2 Demo-Trockenlauf + §3.1 Sanfter Übergangs-Zähler + Buchungsanpassung (§5.4 Tor-Eingang, inkl. Moduswechsel/Whitelist-Hinzufügen/-Entfernen/Kategorie-Hinzufügen/-Entfernen/Kühlfenster) + Schulden-/Hypothekenmodellierung (Nettovermögens-Entscheidungsrechnung + finanzierter Hauskauf + Schulden-/Fixausgaben-Kontenerstellung + Hauskauf-Erfassung) + §7.3 Drittanbieter-Import (CSV/manuelle Abfrage→manuelle Überprüfung und Bestätigung→ausführen; imported_pending sperrt Genehmigungen, nach Bestätigung imported_confirmed; #1-Fix: fehlende Kategorien löschen Live-Einträge nicht stillschweigend) + Spezieller Schalter für Ausgabenkategorien-Vokabelliste (--add-category/--remove-category) implementiert und getestet (325 Unit-Tests + 12 End-to-End). Fortschritt siehe STATUS.md (Quelle der Wahrheit).

Verwandte Skills