### Jawaban Singkat: Apa Itu Claude Code Skills dan Bagaimana Cara Kerjanya?
Claude Code skills adalah paket kemampuan modular on-demand yang disimpan di
.claude/skills/untuk menggantikan system prompt monolitik yang boros token. Dipicu secara otomatis melalui intent model atau perintah slash (/SKILL.md /skill-name), skills mengeksekusi skrip lokal tervalidasi, memicu subagent terisolasi tanpa membebani konteks percakapan utama, dan terhubung mulus dengan plugin resmi JetBrains serta VS Code.
1. Pergeseran Arsitektur: Meninggalkan Monolitik CLAUDE.md
Pada era awal rekayasa perangkat lunak berbasis AI (2023–2025), developer mencoba mengendalikan agen otonom dengan menumpuk semua aturan penulisan kode, skema basis data, dan perintah build ke dalam satu file konfigurasi monolitik raksasa—umumnya CLAUDE.md atau .cursorrules.
Memasuki tahun 2026, ketika codebase berkembang menjadi jutaan baris dan agen beralih ke model penalaran multi-turn canggih (Claude 3.7 Sonnet, Claude 4.5, dan Claude 4.6), pendekatan monolitik ini kolaps karena tiga keterbatasan teknik:
Kegagalan Konfigurasi Monolitik (Anti-Pattern):
[Ratusan baris CLAUDE.md] ──> Disuntikkan ke SETIAP giliran ──> Boros 8k-15k token/prompt
│
├── Dilusi Konteks (Penurunan Atensi)
├── Hilangnya KV-Cache & Biaya Mahal ($$)
└── Halusinasi pada Tugas Kompleks
- Dilusi Jendela Konteks (Context Dilution): Memuat puluhan halaman aturan pada setiap percakapan menurunkan atensi LLM terhadap kode sumber yang sebenarnya perlu diperbaiki.
- Ekonomi Token & Pembatalan Cache: Perubahan satu baris perintah membatalkan seluruh prefix cache prompt, melenyapkan diskon 90% dari Prompt Caching.
- Ketiadaan Validasi Deterministik: Instruksi berbasis teks semata tidak dapat menjamin validasi parameter dengan JSON Schema atau penanganan exit code skrip.
Tiga Pilar Arsitektur Ekstensibilitas Modern
Anthropic memperkenalkan arsitektur terpisah di Claude Code CLI:
+-------------------------------------------------------------------------------+
| Runtime Central Dispatcher Claude Code |
+-------------------------------------------------------------------------------+
| | |
v v v
+------------------+ +------------------+ +------------------+
| Skills Engine | | Lapisan MCP | | Plugin IDE |
| (.claude/skills) | | (JSON-RPC Tools) | | (JetBrains/VSCode|
+------------------+ +------------------+ +------------------+
| • SOP Standar | | • Database Luar | | • Diff di Editor |
| • Loop Subagent | | • API GitHub/CI | | • Indeks AST |
| • Skrip Lokal | | • Cloud Gateway | | • Sinkronisasi IPC|
+------------------+ +------------------+ +------------------+
- Skills (
.claude/skills/): Standar Operasional Prosedur (SOP) ringan yang dimuat secara dinamis ke dalam konteks hanya saat dibutuhkan. - Model Context Protocol (MCP): Sambungan stateful JSON-RPC untuk berinteraksi dengan database eksternal dan API remote.
- Plugin IDE (JetBrains / VS Code): Jembatan IPC lokal yang menyinkronkan seleksi kursor dan tampilan diff interaktif langsung di dalam editor.
2. Matriks Kuantitatif: Skills vs. MCP vs. Subagent vs. Hooks
| Mekanisme Ekstensi | Mekanisme Eksekusi | Latensi Tambahan | Jejak Token Konteks | Tingkat Isolasi | Kasus Penggunaan Utama |
|---|---|---|---|---|---|
| Claude Code Skill | SOP on-demand (SKILL.md) + skrip lokal |
Sangat Minim (<15ms) | Dinamis (~800–2.500t saat dipanggil) | Isolasi level proses | Workflow standar, migrasi DB, audit CI |
| Server MCP | Stateful JSON-RPC 2.0 (stdio/SSE) | Rendah (~40–120ms) | Skema tool tetap di prompt (~1.500t) | Isolasi proses & jaringan | DB eksternal, API remote, cloud infra |
| Task Subagent | Loop konteks anak mandiri dengan handoff | Menengah (~1.5–3.5s) | 0 token pada thread utama | Kotak pasir memori penuh | Audit multi-file, refactoring besar |
| Lifecycle Hook | Skrip Bash berbasis event (pre-commit) |
Nir-latensi (<5ms) | 0 token (Eksekusi lokal murni) | Lingkungan shell host | Format kode, proteksi branch, linter |
| Plugin JetBrains | Socket IPC lokal dua arah | Instan (<8ms) | Buffer viewport aktif (~600 token) | UI IDE / Diff Gutter | Review diff interaktif, navigasi simbol |
Pengaruh Terhadap Benchmark dan Biaya
Pada repositori enterprise standar (1,8 juta baris TypeScript & Rust, 420 integration test, model Claude 3.7 Sonnet / 4.5 / 4.6):
| Konfigurasi | SWE-bench Verified (Tingkat Solusi) | LiveCodeBench Pass@1 | Rata-rata Token per PR | Biaya per PR Tuntas ($) | Rasio Cache Hit |
|---|---|---|---|---|---|
| Claude Code Standar (Tanpa Skill) | 64.2% | 68.1% | 684.000 | $2.05 | 74.2% |
CLAUDE.md Monolitik |
61.8% | 65.4% | 895.000 | $2.68 | 51.3% |
| Modular Skills + Subagent | 74.6% | 73.2% | 412.000 | $1.23 | 94.8% |
| Skills + Sinkronisasi JetBrains + MCP | 76.8% | 74.5% | 445.000 | $1.33 | 93.1% |
Skills modular meningkatkan penyelesaian SWE-bench sebesar +12.6% dan memangkas pengeluaran token hingga 39.8%.
3. Integrasi IDE JetBrains: IntelliJ, WebStorm, dan PyCharm
Plugin resmi JetBrains menghubungkan daemon terminal Claude Code dengan IntelliJ IDEA, PyCharm, WebStorm, GoLand, CLion, dan RustRover.
Arsitektur IPC JetBrains:
+------------------------------------+ Unix Domain Socket / TCP Loopback
| Proses IDE JetBrains | <========================================>
| - File aktif & seleksi kursor |
| - AST Simbol PSI (IntelliJ) |
| - Tampilan Diff Interaktif |
+------------------------------------+
|
v
+----------------------------------+
| Daemon CLI Claude Code |
| `claude --daemon --ide-bridge` |
| - Orkestrator subagent |
| - Mesin .claude/skills/ |
+----------------------------------+
Instalasi dan Konfigurasi
# Instalasi global Claude Code CLI
npm install -g @anthropic-ai/claude-code
# Atau via Homebrew di macOS
brew install claude-code
# Cek versi CLI (butuh v2.1.3+)
claude --version
Di dalam JetBrains IDE:
- Buka Settings / Preferences -> Plugins.
- Cari Claude Code di tab Marketplace dan pasang.
- Restart IDE dan buka jendela Claude Code (
Cmd+Alt+C). - Jalankan pengujian di terminal:
claude doctor
4. Pembuatan Custom Skill dengan Validasi Skema
---
name: db-migration-validator
description: Memvalidasi migrasi SQL/ORM untuk mencegah table lock berbahaya.
version: "1.2.0"
author: "Platform Engineering"
disable_auto_invoke: false
inputSchema:
type: object
properties:
migration_file:
type: string
description: Jalur relatif file migrasi SQL atau ORM.
pattern: "^(migrations|prisma|drizzle)/.*\.(sql|ts)$"
safety_level:
type: string
enum: ["strict", "permissive"]
default: "strict"
description: "strict memblokir semua ACCESS EXCLUSIVE lock pada tabel."
required: ["migration_file"]
---
# Prosedur Validasi Migrasi Database
1. **Baca Skema**: Muat file dari `{{migration_file}}`.
2. **Eksekusi Skrip Validasi**:
```bash
python3 .claude/skills/db-migration-validator/scripts/validate.py \
--file "{{migration_file}}" \
--level "{{safety_level}}"
```
3. **Analisis Penguncian**:
- Deteksi `ALTER TABLE ... ADD COLUMN ... NOT NULL` tanpa default.
- Pastikan indeks Postgres memakai kata kunci `CONCURRENTLY`.
Skrip Pemeriksa scripts/validate.py
#!/usr/bin/env python3
# Deterministic migration validator
import argparse
import json
import re
import sys
HAZARDS = [
(r"ALTER\s+TABLE\s+\w+\s+ADD\s+COLUMN\s+\w+.*NOT\s+NULL", "Lock ACCESS EXCLUSIVE mereset seluruh tabel"),
(r"CREATE\s+INDEX\s+(?!CONCURRENTLY)", "Indeks tanpa CONCURRENTLY mengunci penulisan tabel"),
(r"DROP\s+TABLE\s+", "Penghapusan tabel langsung tanpa proses arsip"),
(r"RENAME\s+COLUMN\s+", "Pengubahan nama kolom merusak kueri aktif"),
]
def check_migration(filepath: str, level: str):
violations = []
with open(filepath, "r", encoding="utf-8") as f:
content = f.read()
for pattern, warning in HAZARDS:
matches = re.finditer(pattern, content, re.IGNORECASE)
for m in matches:
line_no = content[:m.start()].count("\n") + 1
violations.append({"line": line_no, "hazard": warning, "snippet": m.group(0)})
result = {
"file": filepath,
"violations": violations,
"status": "FAILED" if (violations and level == "strict") else "PASSED"
}
print(json.dumps(result, indent=2))
if violations and level == "strict":
sys.exit(1)
sys.exit(0)
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--file", required=True)
parser.add_argument("--level", default="strict")
args = parser.parse_args()
check_migration(args.file, args.level)
5. Orkestrasi Subagent dalam Skills
Pendelegasian tugas ke subagent memungkinkan analisis puluhan file kode berjalan dalam proses mandiri. Subagent hanya mengembalikan ringkasan data terstruktur berupa JSON, sehingga konteks agen utama tetap bersih dan tajam.
6. 10 Skills Unggulan untuk Lingkungan Produksi 2026
pr-security-auditor: Audit statis AST sebelum PR untuk mencegah kebocoran kredensial dan injeksi.git-atomic-committer: Mengelompokkan refactoring besar menjadi commit atomik yang lolos uji coba.db-migration-guard: Deteksi risiko penguncian tabel pada migrasi Postgres dan ORM.playwright-e2e-verifier: Menjalankan pengujian e2e headless untuk memastikan tidak ada regresi UI.openapi-contract-sync: Memastikan kode routing selaras dengan dokumentasi OpenAPI.ast-grep-codemod: Penggantian pola kode multi-file secara akurat berbasis AST.docker-rootless-linter: Penegakan eksekusi non-root dan audit keamanan Dockerfile.prompt-cache-profiler: Monitoring efisiensi cache dan estimasi pengeluaran token.jetbrains-symbol-bridge: Membaca referensi simbol langsung dari indeks kompilasi IDE.pnpm-turborepo-orchestrator: Sinkronisasi dependensi dan pengelolaan monorepo.
7. Ekonomi Token, Cache Prompt, dan Keamanan
Menjaga aturan dasar tetap ringkas dan memanggil skills hanya saat diperlukan menghasilkan rasio cache hit stabil di kisaran 92% hingga 96%, menekan biaya rata-rata per tugas dari $2.40 menjadi $1.25. Atur izin keamanan di .claude/permissions.json.
8. Panduan Implementasi untuk Tim Developer
- Minggu 1: Bersihkan file
CLAUDE.mdmonolitik hingga tersisa di bawah 100 baris. - Minggu 2: Pasang plugin JetBrains dan VS Code untuk seluruh anggota tim.
- Minggu 3: Implementasikan skill keamanan dan proteksi migrasi database.
- Minggu 4: Manfaatkan subagent untuk tugas refactoring lintas modul.