Install
openclaw skills install @pmuhammadagus-byte/skill-architecture-standardGunakan sebagai referensi saat user membuat, mereview, atau upgrade skill OpenClaw.
openclaw skills install @pmuhammadagus-byte/skill-architecture-standardStatus: Panduan referensi (recommended). Digunakan saat membuat skill baru. Skill yang mengikuti struktur ini lebih konsisten, tapi tidak wajib.
Versi: 1.1.0 — Peningkatan kelas profesional: trigger engine berbasis frasa konkret, tabel keputusan IF→MAKA, runbook eksekusi berurutan, engine verifikasi pasca-aksi nyata, hierarki recovery berjenjang, serta penambahan Edge Cases, Anti-Patterns, Concrete Examples, dan Failure Modes di setiap node relevan.
Nama: Skill Architecture Standard X∞
Peran: Kerangka arsitektur recommended yang berada di atas seluruh skill OpenClaw — baik skill baru maupun skill warisan (legacy). Mengikuti standard ini bersifat anjuran, bukan pemaksaan.
Tanggung jawab:
Otoritas: Dalam cakupan arsitektur skill sebagai rujukan. Agent disarankan memuat standard ini saat membuat/mereview skill. Standard ini tidak menjalankan tugas domain (debug, deploy, dsb) — ia menentukan bagaimana skill domain sebaiknya dibangun dan berperilaku.
Batas kewenangan: Standard ini tidak mengganti logika domain skill; ia menetapkan contract perilaku. Pelanggaran struktur = skill ditolak, bukan dijalankan sebagian.
Metadata statis tidak cukup untuk menghasilkan skill yang agentik. Skill taraf tinggi harus memenuhi empat kemampuan operasional:
| # | Kemampuan | Kriteria sukses terukur |
|---|---|---|
| 1 | Tahu kapan aktif | Mengaktivasi diri dari intent user tanpa menyebut nama skill (trigger engine). |
| 2 | Tahu bagaimana bertindak | Memiliki policy (IF→MAKA), bukan sekadar kumpulan pengetahuan pasif. |
| 3 | Tahu mengukur diri | Mengeksekusi verification, evaluation, dan observability setelah bertindak. |
| 4 | Tahu bereaksi saat berubah | Punya recovery, fallback, dan exit condition saat kondisi melenceng. |
Tujuan akhir: menaikkan seluruh skill ke taraf agen nyata — skill yang memutuskan, bertindak, memverifikasi, dan pulih — bukan dokumen pengetahuan yang hanya menunggu dibacakan.
Anti-pattern yang dicegah: skill "buku resep" yang hanya menjawab, tidak bertindak, tidak memverifikasi, dan tidak tahu kapan berhenti.
Setiap skill WAJIB membawa frontmatter YAML berikut:
---
name: <slug-konsisten-tanpa-spasi>
description: "<kalimat trigger-centric: kapan dipakai + kata kunci aktivasi + hasil yang diberikan>"
metadata:
openclaw:
version: <semver>
requires:
bins: [<binary eksternal jika wajib>]
env: [<environment variable yang dibutuhkan>]
os: [<sistem operasi yang didukung>]
---
Aturan ketat:
description wajib trigger-centric: sebutkan pola kalimat user yang mengaktifkan skill dan hasil yang dijanjikan. Ini bukan ringkasan fitur.version mengikuti SemVer (MAJOR.MINOR.PATCH).name konsisten dengan slug direktori; jangan gunakan spasi atau karakter aneh.Contoh description yang baik:
"Bantu debug error website pasca-deploy. Aktif saat user menyebut 'website error setelah deploy', 'aplikasi 500 setelah rilis', atau 'rollback gagal'. Menyediakan runbook diagnosis + verifikasi."
Failure mode: description yang hanya berisi "alat untuk X" menyebabkan trigger engine tidak bisa mengenali aktivasi otomatis → skill mati tak terpakai.
Skill harus tahu kapan harus dipakai sendiri, tanpa user menyebut nama file.
Gunakan kelas pola berikut, bukan daftar kata kunci longgar:
| Kalimat user | Taxonomy terdeteksi |
|---|---|
| "Web saya 502 setelah push ke prod." | WEB DEBUGGING + DEPLOYMENT + ERROR ANALYSIS |
| "Bikin skill buat format log JSON." | SKILL CREATION + FORMATTING |
| "Review SKILL.md ini, kurang apa?" | SKILL REVIEW + COMPLIANCE |
WEB, DEPLOYMENT, DEBUG, OBSERVABILITY, SKILL CREATION, SKILL REVIEW, SECURITY, PERFORMANCE, DATA, CONFIG. Setiap skill mendeklarasikan 1–3 taksonomi utama.
TERIMA INPUT
→ COCOK dengan positif trigger? → AKTIF
→ COCOK dengan negative trigger? → TIDAK AKTIF (serahkan ke skill lain / jawab langsung)
→ AMBIGU → muat context (node 5), lalu PUTUSKAN
Edge case: input ambigu ("bantu saya") → jangan asumsi aktif; tanyakan klarifikasi singkat atau muat context dulu.
Skill wajib memahami konteks sebelum memberi instruksi atau bertindak. Dimensi konteks:
| Dimensi | Contoh isi |
|---|---|
| USER | tingkat teknis, preferensi bahasa |
| TASK | tujuan spesifik, batas waktu |
| ENVIRONMENT | Termux Android ARM64 vs Ubuntu x86_64 |
| OS / ARCH | Linux 6.x / arm64 |
| TOOLS | binary tersedia atau tidak |
| AVAILABLE SKILLS | skill lain yang relevan & aktif |
| PREVIOUS ACTIONS | langkah sudah diambil |
| CURRENT STATE | status sistem saat ini |
| CONSTRAINTS | izin, kuota, kebijakan |
Contoh kritis: Jangan beri instruksi apt install atau systemctl ketika user berada di Termux Android ARM64 — gunakan pkg/termux-services. Instruksi yang salah environment = kegagalan langsung.
Failure mode: mengasumsikan environment desktop Linux → perintah gagal, user kehilangan kepercayaan.
Aturan: Baca konteks (termasuk session_status/uname -a bila relevan) sebelum bertindak, bukan sesudahnya.
Ini pembeda skill pasif vs skill agentik. Wajib berisi tabel KONDISI → MAKA + ALASAN.
| IF / KONDISI | MAKA | ALASAN |
|---|---|---|
| Kondisi cocok trigger positif | AKTIF & jalankan runbook | Hindari inaktivitas skill |
| Ketidakpastian tinggi | VERIFIK / Klarifikasi | Cegah asumsi berbahaya |
| Risiko TINGGI/CRITICAL | ASK / STOP + minta approval | Lindungi sistem user |
| Tool wajib tidak tersedia | PAKAI alternatif / beri tahu | Jangan gagal diam-diam |
| Aksi gagal | RECOVER (node 12) | Pulih, jangan menyerah |
| Sudah capai exit condition | BERHENTI & laporkan | Cegah loop tak berujung |
| Instruksi bertentangan dengan guardrail | TOLAK + jelaskan | Keamanan > kenyamanan |
Klasifikasi risiko (standar):
READ FILE → LOW
INSTALL PACKAGE → MEDIUM
MODIFY CONFIG → MEDIUM
DELETE / DROP → CRITICAL
Semakin tinggi risiko → verifikasi (node 11) dan approval (node 13) semakin ketat.
Anti-pattern: skill yang hanya berisi "lakukan X" tanpa cabang keputusan untuk kondisi gagal/ambiguitas.
Siklus berpikir wajib:
BELAJAR (kumpulkan fakta)
→ PAHAMI (bedakan fakta vs hipotesis)
→ RENCANAKAN (langkah + tool)
→ BERTINDAK (eksekusi)
→ PERIKSA (verifikasi)
→ PERBAIKI (recovery bila perlu)
→ SELESAI (exit condition)
Prinsip:
CONFIRMED / LIKELY / POSSIBLE / UNKNOWN. Jangan gunakan CONFIRMED tanpa bukti.Common mistake: melompat ke kesimpulan (CONFIRMED) dari gejala tunggal tanpa korelasi → diagnosis salah.
Runbook eksekusi berurutan (template):
Preferensi tool (urut prioritas):
read/write/edit, bukan membuka web.web_fetch/web_search, bukan menebak.exec, dengan penggunaan trash bukan rm saat memungkinkan.Anti-pattern: menjawab dengan teks panjang tanpa mengambil tindakan saat tugas jelas membutuhkan aksi (mis. user minta "perbaiki file ini").
Aturan emas: Jangan klaim sukses sebelum diverifikasi.
| Tool | GUNAKAN KETIKA | JANGAN GUNAKAN KETIKA |
|---|---|---|
SEARCH (web_search) | Info hilang / butuh sumber terkini | Fakta sudah ada di context lokal |
FILES (read/write/edit) | Dokumen/code lokal | Ingin mengubah sistem eksternal |
| GITHUB | Operasi repository | Tidak ada repo terkait |
WEB (web_fetch) | Ambil konten URL spesifik | Cukup baca file lokal |
TERMINAL (exec) | Operasi sistem/proses | Tugas murni pengetahuan |
Algoritma pemilihan:
BUTUH DATA?
→ lokal ada? → FILES
→ eksternal? → WEB / SEARCH
BUTUH AKSI SISTEM? → TERMINAL
JANGAN panggil semua tool sekaligus — pilih berdasar kebutuhan + context.
Edge case: tool gagal (timeout/permission) → lihat node 12, jangan lanjut asumsi sukses.
| Aspek | Kebijakan |
|---|---|
| WHAT to remember | Keputusan, preferensi user, konteks tugas, pelajaran (lessons learned) |
| WHAT NOT | Noise, log mentah, rahasia, data sesi sekali pakai |
| WHEN retrieve | Saat context relevan & usia masuk akal |
| WHEN update | Setelah tindakan terverifikasi & bernilai jangka panjang |
| WHEN ignore | Memory usang/bertentangan dengan state saat ini |
Tujuan: mencegah memory menjadi sampah (memory bloat). Simpan esensi, bukan log harian mentah.
Anti-pattern: menulis ulang memory dengan placeholder kosong ("akan diisi nanti") — itu bukan memori, itu noise.
Verifikasi bukan sekadar mengecek exit code 0. Bukti harus sesuai jenis aksi.
| Aksi | Cara verifikasi nyata |
|---|---|
| Tulis/edit file | read ulang bagian yang diubah, pastikan diff sesuai |
| Install package | jalankan <bin> --version / cek keberadaan binary |
| Modify config | muat ulang/validasi config (nginx -t, systemctl status) |
| Deploy | cek endpoint / log / health check |
| Delete | pastikan target benar-benar hilang & tidak ada dependency rusak |
Contoh konkret (input→output):
INPUT : user "hapus baris X di config nginx"
EKSEKUSI: edit config
VERIFIKASI: `nginx -t` → "syntax is ok" + `read` config → baris X tidak ada
OUTPUT: "Berhasil. nginx -t valid, baris X terhapus. (bukti: ...)"
Failure mode: klaim "sukses" karena exit 0 padahal file tidak berubah (permission silent fail).
ERROR
├── transient (jaringan/sempoyongan) → RETRY (max 3, exponential backoff)
├── timeout → BACKOFF + cek resource, lalu retry/alternatif
├── auth → CEK kredensial, minta user perbarui (jangan log)
├── dependency missing → DIAGNOSA dependency, pasang/alternatif
├── permission denied → DIAGNOSA izin, minta approval (node 13)
├── unsupported (os/arch) → GUNAKAN alternatif kompatibel (node 19)
└── unknown → INVESTIGATE (kumpulkan log), lalu PUTUSKAN/ASK
Contoh: exec gagal permission denied saat systemctl → cek apakah di Termux (tidak ada systemd) → gunakan termux-services sebagai alternatif, atau minta approval elevated.
Anti-pattern: retry tanpa batas (hang/loop) atau menyerah tanpa diagnosis.
WAJIB:
API KEY / TOKEN / PASSWORD / SECRET / PRIVATE KEY / COOKIE / SESSION / AUTHORIZATION / BEARER → [REDACTED].Edge case: token muncul di log tak terduga → redact seketika, jangan teruskan ke memory/output.
Hard rule: tidak ada PII (email pribadi, URL repo pribadi, token) yang ditulis ke dalam file skill.
Setelah selesai, skill menjalankan self-evaluation:
| Pertanyaan | Tindak lanjut bila "TIDAK" |
|---|---|
| Capai tujuan user? | Kembali ke decision policy |
| Hasil terverifikasi? | Jalankan verification engine |
| Ada asumsi tak terkonfirmasi? | Labeli UNKNOWN / klarifikasi |
| Ada yang gagal? | Catat di failure modes + recovery |
Skor kualitas (opsional): GOAL_MET, VERIFIED, ASSUMPTIONS_MINIMIZED, FAILURES_HANDLED → kirim ke Agent Evaluation Engine untuk regresi/benchmark.
Common mistake: melaporkan "selesai" tanpa mengevaluasi asumsi → bug terbawa.
Skill emit signal ke Observability & Trace Engine:
| Signal | Kapan |
|---|---|
| START | awal eksekusi |
| PROGRESS | tiap tahap runbook |
| TOOL CALL | sebelum/selesai panggil tool |
| ERROR | saat error terdeteksi |
| RETRY | saat recovery dijalankan |
| SUCCESS | exit sukses |
| FAILURE | exit gagal |
Setiap signal menyertakan: TRACE_ID, SPAN, STATUS, DURATION — tanpa secret.
Edge case: trace engine offline → fail-safe, lanjutkan tugas (node 13).
Metrik yang diukur: TOKEN, LATENCY, RESOURCE.
Mode adaptif:
FULL MODE (resource cukup)
↓ resource terbatas
OPTIMIZED MODE (potong verbose, batch tool call)
↓ kritis
LOW RESOURCE MODE (ringkas, eskalasi cepat)
Prioritas: TASK > SAFETY > RELIABILITY > observability berlebihan. Jangan bakar token untuk log yang tak perlu.
Anti-pattern: memanggil tool berulang untuk data yang sudah ada (pemborosan token/latency).
Loop:
USE → OBSERVE → EVALUATE → FIND WEAKNESS → IMPROVE → TEST → NEW VERSION
Batasan ketat: jangan ubah diri sendiri membabi buta. Setiap upgrade harus lewat:
Failure mode: mutasi struktur tanpa test → node hilang, compliance rusak.
MAJOR.MINOR.PATCH.
Template CHANGELOG:
## [1.1.0] - YYYY-MM-DD
### Added
- <elemen pro baru>
### Changed
- <peningkatan node X>
### Fixed
- <fluff/bug dihilangkan>
CHANGELOG
description diperbaiki jadi trigger nyata; Node 2 (PURPOSE) & Node 3 (METADATA) diisi bila stub; metadata.openclaw.version diset. Body domain dipertahankan.Skill tahu batasnya: OS, ARCHITECTURE, RUNTIME, VERSION, AVAILABLE TOOL, AVAILABLE API.
Contoh kritis:
Android ARM64 + Termux ≠ Ubuntu x86_64
(tanpa systemd) (systemd tersedia)
Setiap skill mendeklarasikan matriks kompatibilitas di metadata/context. Bila input berada di luar matriks → gunakan alternatif (node 12) atau tolak dengan penjelasan (node 6).
Hierarki kepercayaan (trust hierarchy):
OFFICIAL DOCUMENTATION (tertinggi)
↓
PRIMARY SOURCE (kode/resmi project)
↓
REPUTABLE TECH SOURCE (dokumen teknis terpercaya)
↓
COMMUNITY (forum, diskusi)
↓
UNKNOWN (tanpa rujukan)
Tagi setiap sumber: VERIFIED / LIKELY / UNCERTAIN / OUTDATED / CONFLICTING.
Aturan: sumber UNKNOWN/CONFLICTING wajib dikonfirmasi sebelum dijadikan keputusan CONFIRMED.
Anti-pattern: mengutip community tanpa verifikasi sebagai fakta mutlak.
Skill wajib tahu kapan berhenti (paling sering dilupakan — penyebab loop).
| Kondisi | Tindakan saat exit |
|---|---|
| SUCCESS | Laporkan hasil + bukti verifikasi |
| FAILURE | Laporkan diagnosis + apa yang sudah dicoba |
| BLOCKED | Jelaskan penghalang, serahkan ke user |
| NEED USER | Ajukan pertanyaan klarifikasi spesifik |
| NEED CREDENTIAL | Minta kredensial (jangan log) |
| NEED TOOL | Sebutkan tool yang kurang |
| NEED VERIFICATION | Minta user konfirmasi eksternal |
Tanpa exit condition, agent akan looping. Setiap runbook (node 8) harus berujung pada salah satu kondisi di atas.
| # | Prinsip | Node wajib |
|---|---|---|
| 1 | Trigger Intelligence | 4. Trigger Engine |
| 2 | Context Awareness | 5. Context Engine |
| 3 | Decision Policy (IF/THEN) | 6. Decision Policy |
| 4 | Verification Engine | 11. Verification Engine |
| 5 | Recovery Strategy | 12. Error Recovery |
| 6 | Risk Classification | 6 + 13 (LOW/MEDIUM/HIGH/CRITICAL) |
| 7 | Tool Selection Policy | 9. Tool Policy |
| 8 | Knowledge Hierarchy | 20. Knowledge Sources |
| 9 | Self-Evaluation | 14. Evaluation |
| 10 | Observability Hooks | 15. Observability |
| 11 | Memory Policy | 10. Memory Policy |
| 12 | Self-Improvement Loop | 17. Self-Improvement |
| 13 | Compatibility Layer | 19. Compatibility |
| 14 | Resource Awareness | 16. Performance Optimization |
| 15 | Exit Conditions | 21. Exit Conditions |
Risk Classification standar:
READ FILE → LOW
INSTALL PACKAGE → MEDIUM
MODIFY CONFIG → MEDIUM
DELETE DATABASE → CRITICAL
Semakin tinggi risiko → semakin ketat verifikasi + approval.
Gunakan ini untuk audit skill lama. Setara dengan 21-node di atas, hanya lebih rinci:
IDENTITY
MISSION
SCOPE
METADATA
TRIGGERS
CONTEXT
PRECONDITIONS
KNOWLEDGE
KNOWLEDGE SOURCES
DECISION POLICY
REASONING POLICY
TOOL POLICY
EXECUTION POLICY
RESOURCE POLICY
VERIFICATION
ERROR HANDLING
RECOVERY
FALLBACK
SECURITY
PERMISSION
RISK CONTROL
MEMORY
OBSERVABILITY
EVALUATION
SELF-IMPROVEMENT
VERSIONING
COMPATIBILITY
SUCCESS CONDITIONS
FAILURE CONDITIONS
EXIT CONDITIONS
CHANGELOG
Setiap kali agent akan:
Kriteria review yang disarankan (bukan penolakan otomatis):
description disarankan menyebutkan pola aktivasi user.