Skip to content
Apothem
Harness-Adapter

Claude Code

Apothem-Harness-Adapter für Claude Code (GA).

Anbieter: Anthropic Installationsname: claude-code Status: GA Native Konfiguration: ~/.claude/

Installation

apothem install --harness claude-code

Der claude-code-Adapter installiert den gemeinsamen Apothem-Korpus in den nativen Discovery-Baum von Claude Code. Markdown-definierte Agenten, Regeln, Skills, Output-Styles und Einstellungen werden an ihren nativen Orten installiert; Command-Prompts werden in Skills umgewandelt, damit wiederverwendbare Workflows über die aktuelle Skill-Oberfläche von Claude Code sichtbar bleiben. Der Statusline-Renderer wird nach ~/.claude/statuslines/ kopiert, aber nicht eingebunden: Claude Code liest seine Statuszeile aus der Einstellung statusLine, die der Adapter nicht setzt. Um sie einzuschalten, ergänze in settings.json einen Eintrag statusLine mit "type": "command", der ~/.claude/statuslines/render.py ausführt. Der Wert commandWindows des Snippets läuft unter Windows und nennt den Interpreter ohne Anführungszeichen. Enthält der Interpreter-Pfad ein Leerzeichen, schreibt die Installation in diesen Wert die Windows-8.3-Kurzform, sofern das Volume eine besitzt. Die Hook-Einträge in settings.json behalten den vollständigen Pfad bei.

Geschriebene Dateien: settings.json, der Apothem-Block in CLAUDE.md, agents/, rules/, skills/, statuslines/, output-styles/ sowie der Unterstützungs-Teilbaum .apothem/support/ (.apothem/support/hooks/, .apothem/support/conformity/, .apothem/support/schemas/, .apothem/support/templates/) unter ~/.claude/. Command-Dateien werden in untergeordnete Skill-Verzeichnisse umgewandelt. Der Hook-Dispatcher und das Konformitäts-Gate laufen aus ihren materialisierten Kopien — die Hook-Einträge in settings.json rufen ~/.claude/.apothem/support/hooks/dispatch.py und ~/.claude/.apothem/support/conformity/gate.py über den absoluten Pfad auf, sodass auf dem Host kein importierbares apothem-Paket benötigt wird.

~/.claude/CLAUDE.md bleibt im Besitz des Operators. Der Adapter schreibt einen einzelnen, durch Sentinels begrenzten Apothem-Block hinein, der die Profilprojektion (Identität, Präferenzen, Regeln, Ernsthaftigkeit und per Opt-in aktivierte Verhaltensweisen) und einen Abschnitt zu den Apothem-Unterstützungsdateien enthält, und bewahrt jede Zeile außerhalb der Sentinels wörtlich. Der Abschnitt zu den Unterstützungsdateien nennt das absolute Verzeichnis, gegen das jeder Verweis im Repository-Stil in den installierten Regeln, Skills und Agenten aufgelöst wird: rules/<name>.md unter ~/.claude/rules/ sowie templates/..., schemas/..., hooks/... und conformity/... unter ~/.claude/.apothem/support/. Außerdem verweist er auf den Regelindex, ~/.claude/rules/apothem-rule-index.md. Der Rest der Governance-Oberfläche von Apothem erreicht Claude Code über den propagierten rules/-Baum und den SessionStart-Hook. OpenCode lädt ~/.claude/CLAUDE.md ebenfalls, wenn keine ~/.config/opencode/AGENTS.md existiert, daher nennt der Block kein einzelnes Werkzeug als Leser.

Zuordnung von Profil zu nativer Konfiguration

Bei jedem apothem install oder apothem update propagiert der Adapter den gemeinsamen apothem-Korpus gemäß dem Propagation-Manifest nach ~/.claude/. Der Adapter verwendet native Verzeichnisse direkt, wo dies möglich ist, und wandelt Command-Prompts in Skill-Ordner um. Bereits vorhandene, übereinstimmende, von Apothem verwaltete Kindelemente werden vor dem Ersetzen gesichert; nicht zugehörige, vom Operator verfasste Einträge bleiben erhalten. settings.json wird zusammengeführt, sodass vom Operator verfasste Schlüssel wiederherstellbar bleiben.

Vom Operator verfasste Dateien bleiben nur außerhalb der unten genannten Ordner erhalten. Jede Installation und jede Aktualisierung entfernt jeden dieser Ordner unter ~/.claude/, der vorhanden ist, unabhängig davon, ob Apothem ihn geschrieben hat: src/, conformity/, schemas/, hooks/, config/, scripts/, tools/, lib/, templates/, docs/, tests/, packaging/, mcp/, examples/, assets/, site/, public/ und commands/. Außerdem entfernt sie statuslines/__init__.py sowie die Dateien AGENTS.md in agents/, rules/, skills/, statuslines/ und output-styles/. Ein entfernter Ordner wird als Ganzes entfernt, einschließlich der Dateien, die Sie darin abgelegt haben. Slash-Befehle, die Sie in commands/ behalten, werden ebenfalls entfernt, und Apothem installiert seine eigenen Befehlsvorlagen als Skills unter skills/. Ein Hook-Skript, das Sie in hooks/ behalten, wird entfernt, wodurch jeder Eintrag in settings.json, der es aufruft, ins Leere zeigt. Die Bereinigung läuft, bevor die Installation ihre eigenen Dateien schreibt. Jeder entfernte Pfad wird zuvor nach ~/.apothem/backups/ kopiert, und der Installationsdatensatz nennt diese Kopie. Die Deinstallation stellt sie nicht wieder her. Um einen entfernten Pfad wiederherzustellen, führen Sie für die Installation, die ihn entfernt hat, apothem rollback --harness claude-code --install-id ID aus, wie in der Rollback-Referenz beschrieben. Ein einfaches apothem rollback macht nur die letzte Installation rückgängig. Installationsdatensätze und ihre Kopien werden für die neuesten 10 Installationen aufbewahrt; ein entfernter Pfad kann daher nur wiederhergestellt werden, solange seine Installation zu diesen gehört. apothem diff --harness claude-code führt diese Entfernungen vor der Installation als Prune stale files auf.

Installierte Skills und die im Claude Code-Plugin gebündelten Skills tragen user-invocable statt des userInvocable aus dem Quellkorpus, weil Claude Code nur den Schlüssel mit Bindestrich liest. Die beiden Template-Container (plan-suite, research-suite) setzen ihn auf false, sodass sie nicht im /-Menü erscheinen. Jeder Output-Style setzt keep-coding-instructions: true, sodass bei der Auswahl eines Output-Styles die integrierten Softwareentwicklungs-Anweisungen von Claude Code erhalten bleiben.

Beide tragen außerdem die nur für Apothem bestimmten Frontmatter-Schlüssel (version, updated, archetype, portability) unter einer abschließenden metadata:-Map aus Zeichenketten in Anführungszeichen, in dieser festen Reihenfolge. Claude Code ignoriert unbekannte Schlüssel auf oberster Ebene, und das offene Skill-Format hält clientspezifische Extras in metadata. Die Quelldateien ändern sich nicht. Die Skill-Ordner auf Benutzerebene (~/.agents/skills/, ~/.codebuddy/skills/, ~/.kiro/skills/ und ~/.trae/skills/) verwenden dieselbe metadata-Form, sodass Installationen, die sich einen Ordner teilen, nie gegenseitig ihre Dateien neu schreiben. Jeder andere Harness erhält die Schlüssel wie bisher auf oberster Ebene.

Regeln und was beim Start geladen wird

Claude Code lädt eine Regeldatei beim Start, sofern ihr Frontmatter keine paths:-Liste trägt, die ihren Geltungsbereich eingrenzt. Mit paths: lädt es die Regel, wenn es eine passende Datei liest oder bearbeitet. Eine Liste, die nur aus ** besteht, grenzt nichts ein, daher wird auch diese Regel beim Start geladen; keine Apothem-Regel verwendet eine solche. Die Installation wandelt den pathFilter jeder Regel in diese Liste um. Fünf Regeln haben keinen und werden in jeder Sitzung geladen: agnostic-posture, authority-inquiry, session-closure, context-management und der Regelindex, apothem-rule-index. Jede andere Regel wird unter ~/.claude/rules/ mit paths: installiert und bei einem passenden Dateizugriff geladen.

Claude Code gleicht diese Globs mit .gitignore-Semantik gegen den Pfad der Datei relativ zum Arbeitsverzeichnis ab und nie gegen eine Datei außerhalb davon. Das Auto-Memory-Verzeichnis liegt unter ~/.claude/projects/, daher werden auto-memory und auto-memory-topic-files nie über einen Pfadtreffer geladen. Auch das Bearbeiten von ~/.claude/CLAUDE.md oder einer Datei unter ~/.claude/rules/ aus einem anderen Projekt heraus lädt die auf diese Dateien eingegrenzten Regeln nicht. Diese Regeln erreichen eine Sitzung über den Index.

Der Index nennt jede Regel und die Situation, die sie erfordert. Ein Schritt, der rules/<name>.md als sein Verfahren zitiert, liest diese Datei zuerst. Lesen Sie nach einer Kontextkomprimierung jede Regel erneut, die Sie gerade angewendet haben: Claude Code fügt eine pfadgebundene Regel erst wieder ein, wenn erneut auf eine passende Datei zugegriffen wird. Der Name apothem-rule-index.md ist reserviert, weil eine Installation eine Regeldatei mit diesem Namen sichert und überschreibt.

Die Regeln, die Apothems eigene Oberflächen steuern, sind auf CLAUDE.md, AGENTS.md und das Markdown unter rules/, commands/, skills/, agents/, hooks/ und output-styles/ eingegrenzt. Ein Anwendungs-Repository enthält diese Dateien selten, daher erreichen diese Regeln dort eine Sitzung über den Index, über einen Skill, einen Befehl oder einen Helfer, der sie zitiert, und über die Hooks, nicht über einen Pfadtreffer.

Die Regelkopien werden ohne ihren abschließenden Abschnitt ## Bindings geschrieben, wie es auch bei Command-Skills der Fall ist. Der Abschnitt enthält wechselseitige Verweise für Maintainer und das Konformitäts-Gate. Die Quelldateien behalten ihn, ebenso die Kopien, die andere Harnesses erhalten.

Um eine eingegrenzte Regel in jeder Sitzung aktiv zu halten, können Sie versuchen, sie aus Text außerhalb des Apothem-Blocks in ~/.claude/CLAUDE.md zu importieren, zum Beispiel @rules/definitiveness.md. Die Memory-Seite von Claude Code dokumentiert den Import und sagt, dass ein importierter Pfad relativ zur importierenden Datei aufgelöst wird. Sie sagt nicht, wie die paths-Liste einer importierten Regel behandelt wird, und Apothem hat das nicht verifiziert. Prüfen Sie mit dem Hook InstructionsLoaded, dass die Regel beim Start geladen wird und bei einem Pfadtreffer nicht ein zweites Mal geladen wird.

Command-Skills und Referenzdateien

Nach einer Kontextkomprimierung hängt Claude Code nur die ersten 5.000 Tokens jedes aufgerufenen Skills wieder an, und es empfiehlt eine SKILL.md von etwa 500 Zeilen oder weniger mit Details in benachbarten Dateien. Die Command-Prompts umfassen bis zu 67 KB, daher teilt die Ausgabe für Claude Code jeden davon in eine schlanke SKILL.md plus Dateien unter references/ auf:

  • Der Abschnitt ## Bindings entfällt. Er ist Maintainer-Text für das Konformitäts-Gate, und das Modell benötigt ihn nie.
  • Der Pipeline Contract, die Foundational Stanzas, der Decision Tree, Beispiele, Modus-Abschnitte und einige zitierte Inventare wandern in Referenzdateien. Die Überschrift bleibt, und ein einzeiliger Verweis darunter nennt die Datei und sagt, wann sie zu lesen ist. Die Verweise für den Pipeline Contract und die Foundational Stanzas führen außerdem auf, was die Datei abdeckt.
  • Ist SKILL.md danach noch größer als 15.800 Bytes, wandern die größten Workflow-Schritte nach references/step-NN-<slug>.md, die größten zuerst, bis sie passt. Der Slug ist der Schritttitel ohne sein Präfix Step N: und ohne eine abschließende eingeklammerte Mandats- oder Disziplin-ID. Schritte unter 600 Bytes bleiben inline. Reicht das nicht, wandern die Abschnitte Output, Mandates, Critical Rules und Instructions in dieser Reihenfolge.
  • Ein kurzer Hinweis nach der Präambel sagt dem Modell, wo die Dateien liegen (${CLAUDE_SKILL_DIR}/references/) und dass es diejenigen, die seinen aktuellen Schritt steuern, nach einer Komprimierung erneut lesen MUSS.

Jede ausgegebene SKILL.md, einschließlich des Hinweises ## Installed Reference Paths, den die Installation anhängt, bleibt bei einem Installationswurzelpfad von bis zu 140 Zeichen bei höchstens 17.000 Bytes. Das Plugin liefert dieselben Dateien ohne diesen Hinweis aus, und seine Befehle sind Skills unter skills/, daher hat es keinen Ordner commands/; der Aufruf /apothem:<name> bleibt unverändert. Die Aufteilung ist deterministisch und umkehrbar: Der Text von SKILL.md und seinen Referenzdateien ergibt wieder den Quell-Command ohne Bindings. Die Quelldateien und die Ausgabe für jeden anderen Harness bleiben unverändert. Andere Werkzeuge lesen ebenfalls Skills aus ~/.claude/skills/ und sehen daher dieselben Dateien; apothem install nennt sie.

Um die Zahlen für jeden Command zu sehen, führen Sie das Messskript aus einem Checkout aus:

python scripts/dev/measure_claude_skills.py          # per-command table
python scripts/dev/measure_claude_skills.py --check  # exit 1 on a breach

Es meldet die Größen von Quelle, SKILL.md und Referenzen, den Spielraum bis zum Budget und eine geschätzte Tokenzahl, und es listet die nativen Skills zum Vergleich auf. research-suite, ein nativer Skill, dessen Quelle nicht aufgeteilt wird, ist der einzige Skill über der Obergrenze.

Kompatibilitätshinweise

Command-Prompts werden in Skill-Verzeichnisse umgewandelt, und Regeln werden wie oben beschrieben gerendert; Skills und Output-Styles werden unverändert kopiert, und Agenten werden wie geschrieben kopiert, außer dass ein Helfer, den der Profilschlüssel agent_mcp_servers aufführt, in seiner tools-Zeile pro benanntem Server einen Eintrag mcp__<server>__* erhält (siehe MCP-Server). Die Installation validiert, dass das Profil wohlgeformt ist und alle Hook-Bindungen in settings.json auflösbar sind. Der Adapter verfasst keine MCP-Server-Einträge: Registrieren Sie Server mit claude mcp add (siehe MCP-Server).

~/.claude/agents/ ist ein gemeinsames Wurzelverzeichnis, das Claude Code gehört, ebenso ~/.claude/skills/: Andere unterstützte Werkzeuge laden diese Ordner, daher erscheinen die Agenten und Skills, die eine Claude Code-Installation dort schreibt, auch in diesen Werkzeugen, und die Installation gibt einen Hinweis aus, der sie nennt. Die Harness-Registry listet die Leser jedes Wurzelverzeichnisses auf.

Claude Code wendet bei jedem Sitzungsstart alle Hook-Bindungen in settings.json an. Jeder Adapter wird gegen seinen eigenen nativen Harness verifiziert — es gibt keinen privilegierten „Referenz“-Harness.

Grenzen der Berechtigungsregeln

Die Settings-Vorlage verweigert Read(...) für Geheimnis- und Cache-Pfade wie .env* und ~/.ssh/**. Claude Code wendet eine Read-Verweigerung auf seine Datei-Werkzeuge an, auf die Dateibefehle, die es in Bash erkennt (cat, head, tail, sed, tee), und auf Umleitungsziele. Es wendet die Verweigerung nicht auf eine Suche an, die Dateien liest, ohne sie zu benennen, etwa grep -r pattern ., und nicht auf ein Skript, das Dateien selbst öffnet (Berechtigungsreferenz). Unter macOS, Linux und WSL lässt Claude Code die Werkzeuge Glob und Grep aus dem Standard-Werkzeugsatz weg und sucht stattdessen über Bash, daher greifen die Erlaubniseinträge der Vorlage für Glob und Grep nur dort, wo diese Werkzeuge vorhanden sind. Um jedem Prozess das Lesen eines Pfads zu verwehren, aktivieren Sie die Sandbox von Claude Code.

Die Skills und Helferdefinitionen, die TodoWrite nennen, nennen auch TaskCreate, TaskGet, TaskList und TaskUpdate, weil Claude Code TodoWrite standardmäßig zugunsten dieser Werkzeuge abschaltet.

Verifizierung

apothem verify --harness claude-code

Der Befehl verify bestätigt Folgendes:

  1. Die native Konfiguration existiert am erwarteten Pfad.
  2. Jedes verwaltete Ziel existiert; verwaltete Dateien sind nicht leer, und JSON- oder YAML-Konfigurationen lassen sich parsen. Fügen Sie --profile PATH hinzu, um außerdem zu bestätigen, dass die installierten Dateien zu diesem Profil passen.
  3. Die adapterspezifische Verifizierungsroutine meldet Erfolg.

Aktualisierung

apothem update --harness claude-code

Leitet die native Konfiguration aus dem aktuellen gemeinsamen Profil neu ab. Führen Sie den Befehl aus, nachdem das installierte apothem-Paket aktualisiert wurde, damit die propagierte Konventions-Oberfläche (Agenten, Regeln, Skills, Statuslines, Output-Styles) die neue Version widerspiegelt. In CLAUDE.md schreibt update nur den Apothem-Block zwischen seinen Sentinels neu.

Deinstallation

apothem uninstall --harness claude-code

Entfernt den Apothem-Block aus ~/.claude/CLAUDE.md und behält jeden anderen Text darin. Die Datei wird nur gelöscht, wenn darin nichts anderes mehr übrig ist. Entfernt die Einträge, die der Adapter zu ~/.claude/settings.json hinzugefügt hat (Ihre eigenen Berechtigungsregeln, Schlüssel und Hook-Handler bleiben erhalten, und die Datei wird nur gelöscht, wenn Apothem sie angelegt hat und nichts von Ihnen übrig ist). Entfernt außerdem die Apothem-Dateien in ~/.claude/agents/, ~/.claude/rules/, ~/.claude/skills/, ~/.claude/statuslines/, ~/.claude/output-styles/ und ~/.claude/.apothem/support/; andere Dateien in diesen Ordnern bleiben bestehen. Jede Datei wird unter ~/.apothem/backups/ gesichert, bevor sie geändert oder entfernt wird. Das installierte apothem-Paket und das Quell-Repository bleiben unberührt.

Konformitäts-Gate

python -m apothem.conformity.gate --all .

Gegen das Repository ausgeführt, verlangt das Gate den Abschnitt ## Bindings in jeder Regel, jedem Befehl, jedem Helfer und jedem Skill. Gegen einen installierten ~/.claude/-Baum ausgeführt, akzeptiert es eine Regel- oder Skill-Kopie ohne diesen Abschnitt, weil die Installation ihn weglässt, und prüft einen vorhandenen Abschnitt weiterhin.

Fehlerbehebung

SymptomBehebung
Konfigurationsdatei nicht gefundenFühren Sie apothem install --harness claude-code erneut aus
Verifizierung fehlgeschlagenFühren Sie apothem update --harness claude-code aus und verifizieren Sie dann erneut
Unerwarteter KonfigurationsinhaltFühren Sie apothem update erneut aus; die Quelle der Wahrheit ist das gemeinsame apothem-Profil, nicht ~/.claude/

Konfigurationsschalter

FlagStandardBeschreibung
--dry-runfalseVorschau der Installation, ohne Dateien zu schreiben.

Siehe auch

On this page