Skip to content
Apothem
Adaptor harness

Claude Code

Adapter harness Apothem untuk Claude Code (GA).

Vendor: Anthropic Nama instalasi: claude-code Status: GA Konfigurasi native: ~/.claude/

Instalasi

apothem install --harness claude-code

Adapter claude-code memasang korpus Apothem bersama ke dalam pohon penemuan native Claude Code. Agen Markdown, aturan, skill, output-style, dan pengaturan dipasang di lokasi native-nya; prompt command dikonversi menjadi skill sehingga alur kerja yang dapat digunakan ulang tetap terlihat melalui permukaan skill Claude Code saat ini. Perender statusline disalin ke ~/.claude/statuslines/ tetapi tidak disambungkan: Claude Code membaca baris statusnya dari pengaturan statusLine, yang dibiarkan tidak disetel oleh adapter. Untuk mengaktifkannya, tambahkan ke settings.json sebuah entri statusLine dengan "type": "command" yang menjalankan ~/.claude/statuslines/render.py. Nilai commandWindows pada cuplikan tersebut dijalankan di Windows dan menyebut interpreter tanpa tanda kutip. Ketika jalur interpreter mengandung spasi, pemasangan menulis bentuk pendek 8.3 Windows pada nilai itu jika volume memilikinya. Entri hook di settings.json tetap menggunakan jalur lengkap.

Berkas yang ditulis: settings.json, blok Apothem di CLAUDE.md, agents/, rules/, skills/, statuslines/, output-styles/, dan pohon pendukung .apothem/support/ (.apothem/support/hooks/, .apothem/support/conformity/, .apothem/support/schemas/, .apothem/support/templates/) di bawah ~/.claude/. Berkas command dikonversi menjadi direktori skill anak. Dispatcher hook dan gerbang konformitas berjalan dari salinan termaterialisasinya — entri hook di settings.json memanggil ~/.claude/.apothem/support/hooks/dispatch.py dan ~/.claude/.apothem/support/conformity/gate.py melalui jalur absolut, sehingga tidak diperlukan paket apothem yang dapat diimpor di host.

~/.claude/CLAUDE.md tetap milik operator. Adapter menulis satu blok Apothem yang dibatasi sentinel ke dalamnya, yang memuat proyeksi profil (identitas, preferensi, aturan, tingkat keseriusan, dan perilaku yang dipilih untuk diaktifkan) serta bagian berkas pendukung Apothem, dan mempertahankan setiap baris di luar sentinel apa adanya. Bagian berkas pendukung menyebutkan direktori absolut tempat setiap kutipan bergaya repositori dalam aturan, skill, dan agen yang terpasang di-resolve: rules/<name>.md di bawah ~/.claude/rules/, serta templates/..., schemas/..., hooks/..., dan conformity/... di bawah ~/.claude/.apothem/support/. Bagian itu juga menunjuk ke indeks aturan, ~/.claude/rules/apothem-rule-index.md. Bagian lain dari permukaan tata kelola Apothem menjangkau Claude Code melalui pohon rules/ yang dipropagasikan dan hook SessionStart. OpenCode juga memuat ~/.claude/CLAUDE.md ketika tidak ada ~/.config/opencode/AGENTS.md, sehingga blok tersebut tidak menyebut satu alat pun sebagai pembacanya.

Pemetaan profil ke konfigurasi native

Pada setiap apothem install atau apothem update, adapter mempropagasikan korpus apothem bersama ke ~/.claude/ sesuai manifest propagasi. Adapter menggunakan direktori native secara langsung bila memungkinkan dan mengonversi prompt command menjadi folder skill. Anak terkelola-Apothem yang sudah ada dan cocok dicadangkan sebelum penggantian; entri tak terkait yang ditulis operator dipertahankan. settings.json digabungkan sehingga kunci yang ditulis operator tetap dapat dipulihkan.

Berkas yang ditulis operator hanya dipertahankan di luar folder di bawah ini. Setiap pemasangan dan pembaruan menghapus setiap folder ini di bawah ~/.claude/ yang ada, apakah Apothem yang menulisnya atau bukan: src/, conformity/, schemas/, hooks/, config/, scripts/, tools/, lib/, templates/, docs/, tests/, packaging/, mcp/, examples/, assets/, site/, public/, dan commands/. Ia juga menghapus statuslines/__init__.py serta berkas AGENTS.md di agents/, rules/, skills/, statuslines/, dan output-styles/. Folder yang dihapus ikut terhapus seluruhnya, termasuk berkas yang Anda taruh di dalamnya. Perintah slash yang Anda simpan di commands/ juga dihapus, dan Apothem memasang prompt perintahnya sendiri sebagai skill di bawah skills/. Skrip hook yang Anda simpan di hooks/ dihapus, sehingga entri settings.json yang memanggilnya menunjuk ke berkas yang sudah tidak ada. Penyapuan berjalan sebelum pemasangan menulis berkasnya sendiri. Setiap jalur yang dihapus disalin ke ~/.apothem/backups/ terlebih dahulu, dan catatan pemasangan menyebutkan salinan itu. Pencopotan tidak memulihkannya. Untuk memulihkan jalur yang dihapus, jalankan apothem rollback --harness claude-code --install-id ID untuk pemasangan yang menghapusnya, seperti dijelaskan dalam referensi rollback. apothem rollback biasa hanya membalikkan pemasangan terbaru. Catatan pemasangan dan salinannya disimpan untuk 10 pemasangan terbaru, sehingga jalur yang dihapus hanya dapat dipulihkan selama pemasangannya masih termasuk di antara 10 tersebut. apothem diff --harness claude-code mencantumkan penghapusan ini sebagai Prune stale files sebelum Anda memasang.

Skill yang terpasang, dan skill yang dibundel dalam plugin Claude Code, membawa user-invocable alih-alih userInvocable milik korpus sumber, karena Claude Code hanya membaca kunci yang memakai tanda hubung. Dua kontainer templat (plan-suite, research-suite) menyetelnya ke false, sehingga keduanya tidak muncul di menu /. Setiap output style menyetel keep-coding-instructions: true, sehingga memilih salah satunya tetap mempertahankan instruksi rekayasa perangkat lunak bawaan Claude Code.

Keduanya juga membawa kunci frontmatter khusus Apothem (version, updated, archetype, portability) di bawah map metadata: penutup berisi string berkutip, dalam urutan tetap tersebut. Claude Code mengabaikan kunci tingkat atas yang tidak dikenal, dan format skill terbuka menyimpan tambahan khusus klien di metadata. Berkas sumber tidak berubah. Folder skill tingkat pengguna (~/.agents/skills/, ~/.codebuddy/skills/, ~/.kiro/skills/, dan ~/.trae/skills/) memakai bentuk metadata yang sama, sehingga instalasi yang berbagi folder tidak pernah saling menulis ulang berkas satu sama lain. Setiap harness lain menerima kunci-kunci itu di tingkat atas seperti sebelumnya.

Aturan dan apa yang dimuat saat peluncuran

Claude Code memuat berkas aturan saat peluncuran kecuali frontmatter-nya membawa daftar paths: yang membatasi lingkupnya. Dengan paths:, Claude Code memuat aturan itu ketika membaca atau menyunting berkas yang cocok. Daftar yang hanya berisi ** tidak membatasi apa pun, sehingga aturan itu juga dimuat saat peluncuran; tidak ada aturan Apothem yang memakainya. Instalasi mengubah pathFilter setiap aturan menjadi daftar tersebut. Lima aturan tidak membawanya dan dimuat di setiap sesi: agnostic-posture, authority-inquiry, session-closure, context-management, dan indeks aturan, apothem-rule-index. Setiap aturan lain dipasang di bawah ~/.claude/rules/ dengan paths: dan dimuat ketika berkas yang cocok disentuh.

Claude Code mencocokkan glob tersebut, dengan semantik .gitignore, terhadap path berkas relatif terhadap direktori kerja, dan tidak pernah terhadap berkas di luarnya. Direktori memori otomatis berada di bawah ~/.claude/projects/, sehingga auto-memory dan auto-memory-topic-files tidak pernah dimuat lewat kecocokan path. Menyunting ~/.claude/CLAUDE.md atau berkas di bawah ~/.claude/rules/ dari proyek lain juga tidak memuat aturan yang lingkupnya dibatasi pada berkas-berkas itu. Aturan-aturan ini menjangkau sesi melalui indeks.

Indeks menyebutkan setiap aturan dan situasi yang memerlukannya. Langkah yang mengutip rules/<name>.md sebagai prosedurnya membaca berkas itu terlebih dahulu. Setelah pemadatan konteks, baca lagi setiap aturan yang sedang Anda terapkan: Claude Code tidak menyuntikkan ulang aturan berlingkup path sampai berkas yang cocok disentuh lagi. Nama apothem-rule-index.md direservasi, karena instalasi mencadangkan dan menimpa berkas aturan dengan nama itu.

Aturan yang mengatur permukaan Apothem sendiri dibatasi lingkupnya pada CLAUDE.md, AGENTS.md, dan Markdown di bawah rules/, commands/, skills/, agents/, hooks/, dan output-styles/. Repositori aplikasi jarang memuat berkas-berkas itu, sehingga di repositori semacam itu aturan-aturan ini menjangkau sesi melalui indeks, melalui skill, command, atau helper yang mengutipnya, dan melalui hook, bukan melalui kecocokan path.

Salinan aturan ditulis tanpa bagian penutup ## Bindings, sama seperti skill command. Bagian itu memuat rujukan timbal balik untuk pemelihara dan gerbang konformitas. Berkas sumber mempertahankannya, demikian pula salinan yang diterima harness lain.

Agar aturan berlingkup tetap aktif di setiap sesi, Anda dapat mencoba mengimpornya dari teks di luar blok Apothem di ~/.claude/CLAUDE.md, misalnya @rules/definitiveness.md. Halaman memori Claude Code mendokumentasikan impor tersebut dan menyatakan bahwa path yang diimpor di-resolve relatif terhadap berkas yang mengimpornya. Halaman itu tidak menyatakan bagaimana daftar paths milik aturan yang diimpor diperlakukan, dan Apothem belum memverifikasi hal ini. Periksa dengan hook InstructionsLoaded bahwa aturan itu dimuat saat peluncuran dan tidak dimuat untuk kedua kalinya lewat kecocokan path.

Skill command dan berkas referensi

Setelah pemadatan konteks, Claude Code hanya melampirkan ulang 5.000 token pertama dari setiap skill yang dipanggil, dan merekomendasikan SKILL.md sekitar 500 baris atau kurang dengan detail di berkas-berkas saudara. Prompt command mencapai 67 KB, sehingga emisi Claude Code memecah masing-masing menjadi SKILL.md yang ramping ditambah berkas di bawah references/:

  • Bagian ## Bindings dibuang. Bagian itu adalah teks pemelihara untuk gerbang konformitas dan model tidak pernah membutuhkannya.
  • Pipeline Contract, Foundational Stanzas, Decision Tree, contoh, bagian mode, dan beberapa inventaris yang dikutip dipindahkan ke berkas referensi. Judulnya tetap, dan penunjuk satu baris di bawahnya menyebutkan berkas itu dan kapan harus membacanya. Penunjuk untuk Pipeline Contract dan Foundational Stanzas juga mencantumkan apa yang dicakup berkas tersebut.
  • Ketika SKILL.md masih melebihi 15.800 bita, langkah Workflow terbesar dipindahkan ke references/step-NN-<slug>.md, dimulai dari yang terbesar, sampai muat. Slug adalah judul langkah tanpa awalan Step N: dan tanpa id mandat atau disiplin dalam kurung di akhir. Langkah di bawah 600 bita tetap inline. Jika itu belum cukup, bagian Output, Mandates, Critical Rules, dan Instructions dipindahkan dalam urutan itu.
  • Catatan singkat setelah pembuka memberi tahu model di mana berkas-berkas itu berada (${CLAUDE_SKILL_DIR}/references/) dan bahwa model MUST membaca ulang berkas yang mengatur langkahnya saat ini setelah pemadatan.

Setiap SKILL.md yang diemisikan, termasuk catatan ## Installed Reference Paths yang ditambahkan instalasi, tetap berukuran paling banyak 17.000 bita untuk akar instalasi hingga 140 karakter. Plugin mengirimkan berkas yang sama tanpa catatan itu, dan command-nya adalah skill di bawah skills/, sehingga plugin tidak memiliki folder commands/; pemanggilan /apothem:<name> tidak berubah. Pemecahan ini deterministik dan dapat dibalik: teks SKILL.md dan berkas referensinya membangun kembali command sumber tanpa Bindings. Berkas sumber, dan keluaran untuk setiap harness lain, tidak berubah. Alat lain juga membaca skill dari ~/.claude/skills/, sehingga alat-alat itu melihat berkas yang sama; apothem install menyebutkan nama alat-alat tersebut.

Untuk melihat angka bagi setiap command, jalankan skrip pengukuran dari sebuah checkout:

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

Skrip ini melaporkan ukuran sumber, SKILL.md, dan referensi, ruang sisa terhadap anggaran, serta perkiraan jumlah token, dan mencantumkan skill native sebagai pembanding. research-suite, skill native yang sumbernya tidak dipecah, adalah satu-satunya skill yang melebihi batas.

Catatan kompatibilitas

Prompt command dikonversi menjadi direktori skill dan aturan dirender seperti dijelaskan di atas; skill dan output style disalin apa adanya, dan agen disalin sebagaimana ditulis kecuali bahwa helper yang dicantumkan oleh kunci agent_mcp_servers milik profil mendapat entri mcp__<server>__* per server yang disebutkan di baris tools-nya (lihat Server MCP). Instalasi memvalidasi bahwa profil terbentuk dengan baik dan semua ikatan hook di settings.json dapat di-resolve. Adapter tidak menulis entri server MCP apa pun: daftarkan server dengan claude mcp add (lihat Server MCP).

~/.claude/agents/ adalah direktori akar bersama yang dimiliki Claude Code, demikian pula ~/.claude/skills/: alat lain yang didukung memuat folder-folder itu, sehingga agen dan skill yang ditulis instalasi Claude Code di sana juga muncul di alat-alat tersebut, dan instalasi mencetak catatan yang menyebutkan alat-alat itu. Registri harness mencantumkan pembaca setiap direktori akar.

Claude Code menerapkan semua ikatan hook di settings.json pada setiap awal sesi. Setiap adapter diverifikasi terhadap harness native-nya sendiri — tidak ada harness "referensi" yang diistimewakan.

Batas aturan izin

Templat pengaturan menolak Read(...) pada jalur rahasia dan cache seperti .env* dan ~/.ssh/**. Claude Code menerapkan penolakan Read pada alat berkasnya, pada perintah berkas yang dikenalinya di Bash (cat, head, tail, sed, tee), dan pada target pengalihan. Claude Code tidak menerapkan penolakan itu pada pencarian yang membaca berkas tanpa menyebut namanya, seperti grep -r pattern ., atau pada skrip yang membuka berkas sendiri (referensi izin). Di macOS, Linux, dan WSL, Claude Code tidak menyertakan alat Glob dan Grep dalam kumpulan alat default dan melakukan pencarian melalui Bash sebagai gantinya, sehingga entri allow Glob dan Grep milik templat hanya berlaku di tempat alat-alat tersebut tersedia. Untuk memblokir setiap proses agar tidak membaca suatu jalur, aktifkan sandbox Claude Code.

Skill dan definisi helper yang menyebut TodoWrite juga menyebut TaskCreate, TaskGet, TaskList, dan TaskUpdate, karena Claude Code menonaktifkan TodoWrite secara default dan mengutamakan alat-alat tersebut.

Verifikasi

apothem verify --harness claude-code

Perintah verify memastikan bahwa:

  1. Konfigurasi native ada di jalur yang diharapkan.
  2. Setiap target terkelola ada; berkas terkelola tidak kosong, dan konfigurasi JSON atau YAML dapat diurai. Tambahkan --profile PATH untuk juga memastikan bahwa berkas yang terpasang cocok dengan profil tersebut.
  3. Rutin verifikasi khusus adapter melaporkan keberhasilan.

Pembaruan

apothem update --harness claude-code

Menurunkan ulang konfigurasi native dari profil bersama saat ini. Jalankan setelah paket apothem yang terpasang diperbarui, sehingga permukaan konvensi yang dipropagasikan (agen, aturan, skill, statusline, output-style) mencerminkan versi baru. Di CLAUDE.md, perintah update hanya menulis ulang blok Apothem di antara sentinelnya.

Pencopotan

apothem uninstall --harness claude-code

Menghapus blok Apothem dari ~/.claude/CLAUDE.md dan mempertahankan teks lain di dalamnya. Berkas itu dihapus hanya jika tidak ada lagi isi lain di dalamnya. Menghapus entri yang ditambahkan adapter ke ~/.claude/settings.json (aturan izin, kunci, dan handler hook milik Anda tetap ada, dan berkas itu dihapus hanya jika Apothem yang membuatnya dan tidak ada lagi milik Anda yang tersisa). Juga menghapus berkas Apothem di ~/.claude/agents/, ~/.claude/rules/, ~/.claude/skills/, ~/.claude/statuslines/, ~/.claude/output-styles/, dan ~/.claude/.apothem/support/; berkas lain di folder-folder tersebut tetap ada. Setiap berkas dicadangkan di bawah ~/.apothem/backups/ sebelum diubah atau dihapus. Paket apothem yang terpasang dan repositori sumber tidak terpengaruh.

Gerbang konformitas

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

Saat dijalankan terhadap repositori, gerbang mewajibkan bagian ## Bindings pada setiap aturan, command, helper, dan skill. Saat dijalankan terhadap pohon ~/.claude/ yang terpasang, gerbang menerima salinan aturan atau skill yang tidak memiliki bagian tersebut, karena instalasi menghilangkannya, dan tetap memeriksa bagian yang ada.

Pemecahan masalah

GejalaPerbaikan
Berkas konfigurasi tidak ditemukanJalankan ulang apothem install --harness claude-code
Verifikasi gagalJalankan apothem update --harness claude-code, lalu verifikasi lagi
Konten konfigurasi tidak terdugaJalankan ulang apothem update; profil apothem bersama adalah sumber kebenaran, bukan ~/.claude/

Tombol konfigurasi

FlagDefaultDeskripsi
--dry-runfalsePratinjau instalasi tanpa menulis berkas.

Lihat juga

On this page