Ein Werkzeugkasten für die Arbeit mit Claude, der sich durch die Arbeit mit ihm selbst schärft.
Ein persönlicher Claude-Code-Marketplace mit einem Plugin, mats-tools: die Werkzeuge
(Commands, Agents, Skills) und der Loop, der sie besser macht — /optimieren schärft jeden
Baustein gegen einen Authoring-Standard und Outcome-Evals, /neudenken stellt bei jedem neuen
Modell die Prämissen infrage. Per git-SHA versioniert, auf jedem Rechner identisch: neuer Laptop,
Codespace oder Container — ein Befehl, und die Werkbank ist da.
Ein Befehl pro Plattform — installiert Claude Code (falls nötig), registriert den
Marketplace und installiert mats-tools (user-scope, idempotent — mehrfach
ausführen schadet nicht).
curl -fsSL https://raw.githubusercontent.com/MatsLuca/claude-config/master/bootstrap.sh | bashirm https://raw.githubusercontent.com/MatsLuca/claude-config/master/bootstrap.ps1 | iexImportant
claude starten (beim ersten Mal einloggen) — und als ersten Prompt schicken:
Führe das machine-setup durch.
Der machine-setup-Agent richtet dann alles ein: yolo-Alias, Status Line,
Plugin-Auto-Update beim Start und die settings.json-Defaults.
🔧 Manuell — Fallback (direkt aus einer laufenden Claude-Session)
/plugin marketplace add MatsLuca/claude-config # Marketplace registrieren (einmalig pro Rechner)
/plugin install mats-tools@claude-config # Plugin installieren(Im Terminal statt in der Session: dieselben Befehle als claude plugin marketplace add … / claude plugin install ….)
Ein Plugin, mats-tools — Commands für den Alltag, Agents für die schwere Arbeit. Commands sind
technisch Skills als flache Datei; Claude darf sie auch selbst starten, außer /finish und
/finish-lite (disable-model-invocation) — die laufen nur, wenn du sie tippst:
| Command | Zweck |
|---|---|
/finish |
Die Änderungen dieser Session seit letztem Push analysieren, README/CHANGELOG & zugehörige GitHub-Issues pflegen, committen & pushen — in einem Rutsch; Halbfertiges paralleler Sessions bleibt liegen und wird benannt (/finish alles nimmt es mit) |
/finish-lite |
Leichter /finish für Wissensprojekte: die Änderungen dieser Session committen mit Zeitstempel-Message, auf den Default-Branch rebasen & dorthin pushen — ohne Analyse & Doku-Pflege; identisch auf Laptop und in Cloud-Sessions (Session-Branch landet direkt auf main) |
/neues-projekt |
Aktuellen Ordner als Projekt einrichten: kurzes Interview, CLAUDE.md auf Projekt-Höhe, Zeiger in der Eltern-CLAUDE.md, optional Git/GitHub; --nachruesten für bestehende Ordner ohne CLAUDE.md; --einordnen <Name>: <Zweck> klärt erst den Ort im Ablagebaum (2–3 Kandidaten mit Begründung) und legt den Ordner dann selbst an |
/merken |
Session-Stand in CLAUDE.md / Kontextdateien festhalten — erntet dabei Zweck & gewachsene Konventionen des Wissenssystems; committet & pusht auf Zustimmung (holt vorher den Remote-Stand per Rebase), /merken und pushen stimmt gleich mit zu |
/xcode |
Xcode-Projekt aus dem aktuellen Verzeichnis öffnen |
/optimieren |
Einen Command, Agent, Skill oder eine Referenzdatei nach dem Authoring-Standard schärfen — mit Eval-Lauf vorher und nachher; ein fehlendes Runner-Szenario (Commands) oder einen nativen Eval-Fall (Skills) legt der Command selbst an, Befunde auch aus echten Läufen |
/destillieren |
Gewachsenes Wissenssystem pflegen: Drift (veraltete/widersprüchliche Querverweise) heilen, dann Redundanz verdichten & Ordnerstrukturen neu denken — strukturelle Eingriffe erst nach Plan-Zustimmung |
/neudenken |
Ein digitales System vom Zweck her neu denken: Ziele belegt rekonstruieren, Prämissen mit vollem Urteil hinterfragen und einschätzen, ob und wie tief sich ein Umbau lohnt — ohne selbst umzusetzen |
| Agent | Zweck |
|---|---|
machine-setup |
Frische Claude-Code-Installation einrichten wie zuhause — führt shell/setup.sh aus (yolo-Alias, Auto-Update-Wrapper, Status Line, settings.json-Defaults; VS Code in Codespaces; PowerShell-Profil auf Windows) und kümmert sich nur um das, was Urteil braucht: fremde Wrapper, angepasste Dateien, Terminal-Rendering. Idempotent, portabel |
| Skill | Zweck |
|---|---|
42 |
Vor-Erörterung einer neuen Idee in Wellen — verstehen, Befund über das eigene System (was gibt es schon, wo passt es hin, was würde davon besser), Warum, Fertig-Bild, Grenzen, Preis mit Urteil ohne Veto, Übergabe; Ergebnis ist Fazit, Erkenntnis oder Plan, nie ein Bau; lädt sich von selbst, sobald du eine Idee erörtern willst statt einen Auftrag zu geben (auch zu einem bestehenden Projekt), /42 <idee> manuell, „bau einfach“ beendet ihn |
claude-md |
Hält CLAUDE.md-Dateien auf der richtigen Höhe — Router / Bereich / Projekt nach der Verfassung in skills/claude-md/verfassung.md: prüft eine Datei oder inventarisiert einen Teilbaum, verschiebt Ballast nach unten, ergänzt Zeiger; lädt sich von selbst, sobald eine CLAUDE.md angelegt oder umgebaut wird |
Der Authoring-Standard und die Eval-Szenarien, gegen die /optimieren prüft,
liegen in mats-tools/reference/ (authoring-guide.md, evals.md).
Der Kasten verbessert sich durch die Arbeit mit sich selbst:
- Bauen: Was Konten oder Maschinenzustand braucht, entsteht in der privaten Werkstatt (Symlink
nach
~/.claude/skills); hierher gehört, was ohne beides läuft und auch für andere nützlich ist — Code inklusive (inventar.sh). - Schärfen:
/optimieren <baustein>prüft gegen den Authoring-Standard (mats-tools/reference/authoring-guide.md) und die Outcome-Evals (reference/evals.md) — die beschreiben beobachtbares Verhalten, nie Implementierung, damit eine bessere Umsetzung nie an alten Details scheitert. Seit Claude 5 gilt Auftrag vor Rezept: ein Baustein nennt Outcome und Regeln, den Weg findet das Modell; wörtliche Bash-Blöcke nur, wo ein Eval zeigt, dass es ohne sie scheitert.tools/eval.shlässt Szenarien headless im Wegwerf-Fixture laufen und prüft das Ergebnis auf der Platte; Skills, die der Runner nicht auslösen kann, belegt ein nativer Fall untermats-tools/evals/. - Neu denken: Neues Modell, neue Claude-Code-Fähigkeit →
/neudenkenüber den Kasten. Dazu gehört der Vergleichslauf mit und ohne Plugin per nativemclaude plugin eval(Fälle untermats-tools/evals/, gleiche Fixtures wieeval.sh): er zeigt, ob ein Baustein nacktes Claude überhaupt schlägt. - Absichern:
tools/validate.sh(lokal + GitHub Action bei jedem Push) prüft Manifeste, Frontmatter, README-Listing, Eval-Abdeckung, Plugin-Referenzen, Portabilität (BSD↔GNU), lässtshell/setup.shreal in einem Sandbox-HOME laufen und ruft lokal das nativeclaude plugin validatedazu.
Das Plugin hat bewusst keine feste Versionsnummer in plugin.json. Dadurch nutzt
Claude Code den Git-Commit-SHA als Version: jeder Push hierhin wird beim nächsten
/plugin update automatisch übernommen — kein manuelles Versions-Bumping nötig.
Nach dem machine-setup passiert das sogar von selbst: der Agent installiert einen
Shell-Wrapper, der das Plugin im Hintergrund aktualisiert (shell/sync.sh, höchstens alle
10 Minuten) — der Start wartet nicht aufs Netz, das Update wirkt ab der nächsten Session. Wer es
jetzt braucht (z. B. direkt nach einem Push): frisch = synchron syncen, dann yolo.
Derselbe Sync hält auch Claude Code selbst aktuell — aber nur bei tragfähigem Netz (kurzer
Versionsabgleich, dann Tempoprobe; unter 1 MB/s wird nichts geladen). Der eingebaute Auto-Updater
ist dafür abgeschaltet (DISABLE_AUTOUPDATER=1), damit er in schlechtem WLAN nicht bei jedem Start
„Auto-update failed" meldet. Aus: MATS_CC_UPDATE=0; Schwelle: CC_MIN_SPEED (Byte/s).
Manuell braucht es nur, falls der Wrapper (noch) nicht eingerichtet ist:
/plugin update mats-tools@claude-configWer das Plugin installiert hat, zieht es bei jedem Start. Das ist auch ein Nachrichtenkanal:
ein neuer Eintrag oben in mats-tools/NEWS.md (## <Datum> · <Titel> + kurzer Text) wird
beim nächsten Session-Start einmal im Terminal angezeigt und Claude als Kontext mitgegeben.
Ein Block <!-- claude: … --> (unsichtbar im Terminal) ist ein Hinweis an Claude — etwa wie man
einen neuen Skill benutzt —, nie ein Auftrag: nichts wird von selbst umgebaut. Gelesenes merkt
sich ~/.claude/mats-tools-news-seen; hooks/news.sh --reset zeigt alles erneut, --peek
zeigt ohne zu markieren, --context zeigt, was Claude bekommt.
Jeder Start wird still gemessen (Terminal-Zeile ⏱ Start 2,1 s (ab Tastendruck) · Kachel→Shell 0,3 · Shell-rc 0,2 · Wrapper 0,2 · Claude Code 1,4 nur mit MATS_START_TIMER_SHOW=1). Die Stempel setzt die Startkette (machine-setup:
Zeile 1 der rc-Datei = MATS_T_RC, der Wrapper = MATS_T_WRAP/MATS_T_EXEC; eine Oberfläche kann
MATS_START_T0=<ms> vor claude stellen), der SessionStart-Hook hooks/start-timer.sh rechnet
und protokolliert jeden Start ms-genau nach ~/.cache/mats-tools/start-timer.log
(start-timer.sh --tail). Ohne Wrapper-Stempel bleibt der Hook still.
claude-config/
├── bootstrap.sh # Einzeiler-Setup für neue Rechner (macOS/Linux)
├── bootstrap.ps1 # Einzeiler-Setup für neue Rechner (Windows)
├── tools/
│ ├── validate.sh # strukturelle Verifikation (lokal + CI)
│ └── eval.sh # Verhaltens-Evals headless im Fixture (echte Tokens, nicht in CI)
│ # Fixtures aus mats-tools/evals/<fall>/scaffold.sh (auch für claude plugin eval)
├── .github/workflows/
│ └── validate.yml # führt validate.sh bei jedem Push/PR aus
├── .claude-plugin/
│ └── marketplace.json # Marketplace-Manifest
└── mats-tools/ # das Plugin
├── .claude-plugin/
│ └── plugin.json # Plugin-Manifest
├── commands/ # Slash-Commands = Skills als flache Datei (*.md)
├── agents/ # Subagents (*.md)
├── skills/ # Skills (claude-md + dessen Verfassung)
├── hooks/ # SessionStart-Hooks: Start-Timer (Dauer je Phase → Terminal + ~/.cache/mats-tools/start-timer.log) und NEWS.md-Einträge einmal zeigen
├── shell/start.sh # Startzeile des claude()-Wrappers, ohne Netz (ändert sich per Plugin-Update; der Wrapper bleibt dünn)
├── shell/sync.sh # Hintergrund-Sync: Claude Code (nur bei gutem Netz) + Plugin-Update + Klone aus ~/.config/mats-tools/sync-repos; --now (frisch), --after-push (/finish)
├── shell/setup.sh # der Installer hinter machine-setup: Wrapper-Block, Status Line, settings.json, VS Code — idempotent, im Validator sandbox-getestet
├── NEWS.md # Nachrichten an alle Abonnenten (neuester Eintrag oben)
├── statusline/ # vendored Status-Line-Skript (vom machine-setup Agent installiert)
└── reference/ # Authoring-Standard + Eval-Szenarien