1 poin oleh GN⁺ 3 jam lalu | 1 komentar | Bagikan ke WhatsApp
  • Claude Code 2.1.87 memiliki banyak pengaturan yang tidak terdokumentasi, dan Hooks, Skills, serta Agents bisa dipisahkan dan diterapkan melalui file .claude/ per pengguna maupun per proyek
  • Hook tidak hanya memakai stdin JSON dan exit code, tetapi juga field JSON per event di stdout untuk memodifikasi perintah, menentukan izin, menyuntikkan konteks, hingga memantau file
  • Dengan field Hook yang tidak ada di dokumentasi seperti once, async, dan asyncRewake, kita bisa membuat eksekusi sekali jalan, audit log di background, dan alur pemblokiran keamanan asinkron
  • Skills dan Agents mengontrol model, effort, Hook dengan scope tertentu, delegasi Agent, memori persisten, pengabaian CLAUDE.md, serta dependensi MCP melalui frontmatter tersembunyi
  • Auto Mode, memori otomatis, Dream, Magic Docs, permission glob, dan context: fork membuat Claude Code bisa dikonfigurasi mendekati lingkungan pengembangan yang belajar sendiri

Versi acuan dan lokasi file

  • Isi artikel ini mengacu pada @anthropic-ai/claude-code@2.1.87, dan fitur yang tidak terdokumentasi dapat berubah antar rilis
  • Field yang namanya mengandung EXPERIMENTAL ditandai oleh engineer Anthropic sebagai tidak stabil, sehingga bisa dihapus atau diganti namanya
  • Lokasi file konfigurasi
    • Pengaturan pribadi: ~/.claude/settings.json
    • Pengaturan proyek: .claude/settings.json
  • Lokasi Skills
    • Pribadi: ~/.claude/skills/<name>/SKILL.md
    • Proyek: .claude/skills/<name>/SKILL.md
  • Lokasi Agents
    • Pribadi: ~/.claude/agents/<name>.md
    • Proyek: .claude/agents/<name>.md
  • Menaruh skrip Hook di ~/.claude/hooks/ adalah konvensi yang cocok, dan agar bisa dijalankan diperlukan chmod +x
  • File .claude/ tingkat proyek bisa di-commit ke Git dan dibagikan ke tim, sedangkan file pribadi di bawah ~/.claude/ hanya berlaku untuk pengguna tersebut

Hook bisa mengubah perilaku Claude Code lewat stdout JSON

  • Dokumentasi resmi hanya membahas alur Hook yang menerima JSON lewat stdin dan memblokir pekerjaan dengan exit code 2, tetapi pada praktiknya perilaku Claude Code juga bisa diubah secara real-time melalui field JSON per event di stdout
  • Field yang bisa dikembalikan dari PreToolUse

    • updatedInput: bisa menulis ulang input sebelum tool dijalankan untuk mengubah perintah
    • permissionDecision: bisa memaksa allow atau deny tanpa bertanya ke pengguna
    • permissionDecisionReason: alasan keputusan bisa ditampilkan di UI
    • additionalContext: bisa menyuntikkan teks ke konteks percakapan
  • Field yang bisa dikembalikan dari SessionStart

    • watchPaths: bisa mengatur pemantauan file otomatis untuk memicu event FileChanged
    • initialUserMessage: bisa menambahkan isi sebelum pesan pengguna pertama di sesi
    • additionalContext: bisa menyuntikkan konteks yang bertahan sepanjang sesi
  • Field yang bisa dikembalikan dari PostToolUse

    • updatedMCPToolOutput: bisa memodifikasi respons tool MCP yang dilihat Claude
    • additionalContext: bisa menyuntikkan konteks setelah eksekusi tool
  • Field yang bisa dikembalikan dari PermissionRequest

    • decision: bersama updatedInput atau updatedPermissions, bisa mengizinkan atau menolak secara terprogram
  • Hook yang otomatis mengubah git push menjadi --dry-run

    • Hook PreToolUse bisa memeriksa perintah Bash, lalu jika ada git push, menambahkan --dry-run di akhir perintah melalui updatedInput
    • Claude tampak mengeksekusi git push origin main, tetapi Hook mengubahnya menjadi git push origin main --dry-run sebelum benar-benar dijalankan
{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/dry-run-pushes.sh"
      }]
    }]
  }
}
#!/bin/bash
INPUT=$(jq -r '.tool_input.command' < /dev/stdin)
if echo "$INPUT" | grep -q 'git push'; then
  jq -n --arg cmd "$INPUT --dry-run" '{"updatedInput": {"command": $cmd}}'
fi
  • Hook yang menyuntikkan pemantauan file dan konteks Git saat sesi dimulai

    • Hook SessionStart bisa menetapkan package.json, .env, dan tsconfig.json sebagai target pemantauan, lalu memasukkan branch saat ini dan jumlah file yang belum di-commit sebagai konteks sesi
{
  "hooks": {
    "SessionStart": [{
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/session-context.sh",
        "statusMessage": "Loading project context..."
      }]
    }]
  }
}
#!/bin/bash
BRANCH=$(git branch --show-current 2>/dev/null)
CHANGES=$(git status --porcelain 2>/dev/null | wc -l | tr -d ' ')

jq -n \
  --arg branch "$BRANCH" \
  --arg changes "$CHANGES" \
  '{
    "watchPaths": ["package.json", ".env", "tsconfig.json"],
    "additionalContext": "Current branch: \($branch). Uncommitted changes: \($changes) files."
  }'
  • Hook yang otomatis menyetujui perintah Bash read-only

    • Perintah seperti ls, cat, echo, pwd, whoami, date, git status, git log, dan git diff bisa langsung lolos tanpa konfirmasi pengguna dengan permissionDecision: "allow"
{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/auto-approve-readonly.sh"
      }]
    }]
  }
}
#!/bin/bash
CMD=$(jq -r '.tool_input.command' < /dev/stdin)
if echo "$CMD" | grep -qE '^(ls|cat|echo|pwd|whoami|date|git status|git log|git diff)'; then
  echo '{"permissionDecision": "allow", "permissionDecisionReason": "Safe read-only command"}'
fi

3 field konfigurasi Hook yang tidak ada di dokumentasi

  • Field Hook yang terdokumentasi adalah type, command, matcher, timeout, if, statusMessage, tetapi parser source code juga menerima once, async, dan asyncRewake
  • once: true

    • Menjalankan Hook tepat satu kali lalu menghapusnya secara otomatis, sehingga cocok untuk setup sesi pertama
    • Anda bisa membuat alur yang menyalin .env.example ke .env jika .env belum ada, lalu tidak menjalankannya lagi setelah itu
{
  "hooks": {
    "SessionStart": [{
      "hooks": [{
        "type": "command",
        "command": "[ -f .env ] || cp .env.example .env && echo 'Created .env from template'",
        "once": true,
        "statusMessage": "First-time setup..."
      }]
    }]
  }
}
  • async: true

    • Menjalankan Hook di background sehingga tidak menghambat progres Claude
    • Bisa digunakan untuk mencatat semua perintah Bash ke ~/.claude/audit.jsonl tanpa menambah latensi sesi
{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "jq '{timestamp: now, command: .tool_input.command, session: .session_id}' < /dev/stdin >> ~/.claude/audit.jsonl",
        "async": true
      }]
    }]
  }
}
  • asyncRewake: true

    • Pada jalur normal, ini berjalan di background seperti async, tetapi jika berakhir dengan exit code 2, model akan dibangunkan kembali dan pekerjaan diblokir
    • Ini memungkinkan pemblokiran jika pola password, secret, api_key yang di-hardcode terdeteksi di setiap file yang ditulis Claude
{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Write|Edit",
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/scan-secrets.sh",
        "asyncRewake": true,
        "statusMessage": "Scanning for secrets..."
      }]
    }]
  }
}
#!/bin/bash
FILE=$(jq -r '.tool_input.file_path // .tool_response.filePath' < /dev/stdin)
if grep -qE '(password|secret|api_key)\s*=' "$FILE" 2>/dev/null; then
  exit 2
fi
exit 0

Field tersembunyi di frontmatter Skill

  • Dokumentasi membahas name, description, allowed-tools, argument-hint, when_to_use, context, tetapi parser aktual menerima 6 field tambahan
  • model

    • Anda dapat mengganti model eksekusi Skill; gunakan haiku untuk tugas yang cepat dan murah, dan opus untuk analisis yang kompleks
---
name: quick-lint
description: Fast lint check using the cheapest model
model: haiku
effort: low
allowed-tools: Bash, Read
argument-hint: "[file]"
---
Run the project linter on: $ARGUMENTS
Detect the linter from config (eslint, ruff, clippy) and run it. Report only errors, not warnings.
  • effort

    • Mengatur seberapa dalam model akan berpikir, dengan nilai low, medium, high, max
    • Secara internal dipetakan ke sistem effort yang mengontrol kedalaman penalaran per respons
  • hooks

    • Anda dapat mendefinisikan Hook berscope yang hanya didaftarkan saat Skill aktif dan dilepas saat selesai
    • Ini bisa digunakan untuk melakukan type check secara sinkron setiap kali menulis file TypeScript, lalu menjalankan lint di background
---
name: strict-typescript
description: Write TypeScript with type checking on every save
allowed-tools: Bash, Read, Write, Edit, Grep, Glob
hooks:
  PostToolUse:
    - matcher: "Write|Edit"
      hooks:
        - type: command
          command: "~/.claude/hooks/typecheck-on-save.sh"
          statusMessage: "Type checking..."
        - type: command
          command: "~/.claude/hooks/lint-on-save.sh"
          async: true
---
Write TypeScript with strict enforcement. Every file you touch gets type-checked and linted automatically.
$ARGUMENTS
  • agent

    • Eksekusi Skill dapat didelegasikan ke Agent kustom
---
name: deep-review
description: Thorough security review delegated to the review agent
agent: security-review
---
Review the following: $ARGUMENTS
  • disable-model-invocation: true

    • Mencegah pemanggilan otomatis dan membuatnya hanya bisa dijalankan lewat pemanggilan /skill-name yang eksplisit, sehingga cocok untuk Skill yang destruktif
  • shell: bash

    • Menentukan shell yang akan digunakan untuk eksekusi

Field tersembunyi di frontmatter Agent

  • Agent kustom di .claude/agents/ juga mendukung field frontmatter yang tidak ada di dokumentasi
  • color

    • Warna UI dapat diatur ke salah satu dari red, orange, yellow, green, blue, purple, pink, gray
    • Membantu membedakan secara visual saat beberapa Agent berjalan
  • memory

    • Memberikan memori persisten pada Agent di antara pemanggilan
    • user: dipertahankan secara global di semua proyek
    • project: dipertahankan per proyek
    • local: memori privat per proyek yang dikecualikan dari Git
    • Reviewer keamanan dapat melacak temuan sebelumnya, dan reviewer kode dapat mengingat pola pengguna lintas sesi
---
name: codebase-guide
description: Answer questions about the codebase, learning more with each session
tools: [Read, Grep, Glob, Bash]
color: green
memory: project
---
You are a codebase guide with persistent memory. Check your memory first before exploring the code.
  • omitClaudeMd: true

    • Melewati pemuatan hierarki instruksi CLAUDE.md, sehingga cocok untuk reviewer “fresh eyes” yang melihat berdasarkan standar industri alih-alih kebiasaan proyek
---
name: fresh-eyes
description: Review code without project-specific biases
tools: [Read, Grep, Glob]
omitClaudeMd: true
effort: high
color: blue
---
Review this code purely from first principles. You have no project context. Focus on correctness, security, performance, and readability by industry standards.
  • criticalSystemReminder_EXPERIMENTAL

    • Menyuntikkan ulang pesan singkat sebagai pengingat sistem di setiap giliran, dan tetap berada dalam konteks bahkan setelah kompresi percakapan
    • Nama field itu sendiri mengandung EXPERIMENTAL, jadi tidak stabil dan lebih cocok dipakai hanya untuk pengingat keselamatan tambahan, bukan infrastruktur inti
---
name: prod-deployer
description: Manages production deployments with strict safety checks
tools: [Bash, Read, Grep]
color: red
criticalSystemReminder_EXPERIMENTAL: "Always run migrations with --dry-run first. Never skip the staging verification step."
---
  • requiredMcpServers

    • Mencantumkan pola nama server MCP yang diperlukan, dan jika server tersebut tidak ada maka Agent tidak akan muncul
    • Ini dapat mencegah Agent dimuat saat dependensinya belum siap

Klasifikator Auto Mode menerima deskripsi lingkungan dalam bahasa natural

  • Field autoMode di settings.json mengatur klasifikator persetujuan otomatis yang secara internal di Anthropic disebut “YOLO Classifier”
  • Pola allow akan disetujui otomatis, dan pola soft_deny akan selalu meminta konfirmasi
  • Array environment bukan pola, melainkan konteks bahasa natural yang dibaca klasifikator, sehingga Anda dapat menjelaskan lingkungan proyek agar ikut dipertimbangkan saat menilai keamanan perintah yang ambigu
{
  "autoMode": {
    "allow": [
      "Bash(npm test)",
      "Bash(npm run *)",
      "Bash(git status)",
      "Bash(git diff *)",
      "Bash(git log *)",
      "Read",
      "Grep",
      "Glob"
    ],
    "soft_deny": [
      "Bash(git push *)",
      "Bash(rm *)",
      "Write(.env*)"
    ],
    "environment": [
      "NODE_ENV=development",
      "This is a local dev machine with no production database access",
      "All Docker containers use isolated networks",
      "The test suite is safe to run repeatedly, it uses a dedicated test database"
    ]
  }
}
  • Kalimat seperti This project uses Docker, all commands run in containers dipakai agar klasifikator memahami lingkungannya
  • No production access membuat respons terhadap pekerjaan destruktif menjadi kurang konservatif, dan Test database is isolated berfungsi sebagai sinyal bahwa menjalankan pengujian selalu aman

Memori otomatis dan loop integrasi Dream

  • Jika autoMemoryEnabled dan autoDreamEnabled diaktifkan di settings.json, sistem peningkatan diri Claude Code akan aktif
{
  "autoMemoryEnabled": true,
  "autoDreamEnabled": true
}
  • autoMemoryEnabled

    • Setelah setiap percakapan, Agent latar belakang mengekstrak informasi dari sesi yang layak dipertahankan untuk jangka panjang
    • Preferensi pengguna, pola codebase, dan keputusan akan ditulis ke ~/.claude/projects/<path>/memory/ dalam format frontmatter memory standar
  • autoDreamEnabled

    • Setiap 24 jam, jika ada 5 sesi atau lebih yang terakumulasi, Agent latar belakang meninjau transcript sesi sebelumnya untuk menggabungkan memori
    • Melakukan penggabungan duplikasi, penyelesaian kontradiksi, konversi tanggal relatif ke tanggal absolut, dan penghapusan item usang
    • Jika kedua pengaturan diaktifkan bersama, akan terbentuk loop pembelajaran: sesi membuat memori, Dream menggabungkan memori, dan memori yang telah digabungkan tercermin di sesi berikutnya
    • Setelah beberapa minggu, Claude Code dapat menunjukkan efek mengingat preferensi, kebiasaan, dan pola umum pengguna tanpa pelatihan ulang model

Format Magic Docs

  • Magic Docs dideteksi dengan regex /^#\s*MAGIC\s+DOC:\s*(.+)$/im
  • Harus berupa judul H1, dan tidak peka huruf besar/kecil
  • Di baris berikutnya, Anda dapat menaruh instruksi miring yang dibungkus dengan _underscores_ atau *asterisks*, yang membatasi cakupan fokus Agent pembaruan
# MAGIC DOC: API Endpoint Reference
_Only document public REST endpoints. Include method, path, request body, response schema, and auth requirements._

## Endpoints

(content auto-maintained by Claude Code)
  • Jika tidak ada instruksi, Agent akan mencoba memperbarui seluruh isi
  • Jika ada instruksi, ia akan mengikuti cakupan seperti only track public endpoints atau focus on breaking changes
  • Agent pembaruan berjalan di latar belakang dan dibatasi untuk hanya mengedit file tersebut
  • Jika header dihapus, pelacakan akan otomatis berhenti

Sintaks aturan izin secara lengkap

  • Dokumentasi menampilkan contoh dasar seperti Bash(git *), tetapi bahasa pola yang sebenarnya mencakup Bash, path file, dan alat MCP secara luas
Bash(npm *)              # wildcard setelah "npm "
Bash(git commit *)       # subperintah spesifik
Read(*.ts)               # ekstensi file
Read(src/**/*.ts)        # direktori rekursif dengan ekstensi
Write(src/**)            # rekursif, semua file
mcp__slack               # semua alat di server slack
mcp__slack__*            # wildcard eksplisit (efek yang sama)
mcp__slack__post_message # alat spesifik
Bash(npm:*)              # prefix titik dua lama (batas kata)
  • * dicocokkan di dalam batas seperti shell glob, dan ** mencocokkan direktori secara rekursif
  • Izin alat MCP menggunakan format garis bawah ganda yaitu mcp__<server>__<tool>
  • Field if pada Hook juga menggunakan sintaks yang sama, dan itu adalah glob, bukan regex
{
  "permissions": {
    "allow": [
      "Bash(npm *)", "Bash(git status)", "Bash(git diff *)",
      "Read(src/**)", "Read(tests/**)", "Grep", "Glob",
      "mcp__database__query"
    ],
    "deny": [
      "Bash(rm -rf *)", "Write(/etc/**)", "Write(.env*)",
      "mcp__slack__delete_*"
    ],
    "ask": [
      "Bash(git push *)", "Write(*.json)", "Write(*.lock)",
      "mcp__slack__post_message"
    ]
  }
}

Dampak cache dari context: fork dan pemilihan model

  • Jika context: fork diatur pada Skill, itu akan dijalankan sebagai forked subagent di latar belakang
  • Fork berbagi prompt cache milik induk melalui kontrak bertipe bernama CacheSafeParams, dan membuat prefix API request yang byte-identical untuk meningkatkan cache hit rate
  • Jika model yang berbeda ditentukan untuk Forked Skill, prefix akan berubah sehingga cache bisa rusak
  • Jika percakapan induk memakai Opus dan fork memakai Haiku, prefix akan berbeda, menyebabkan cache miss dan seluruh biaya akan dikenakan
  • Agar cache tetap terjaga, di Forked Skill field model harus dihilangkan atau gunakan model: inherit
  • context: fork cocok untuk tugas berat seperti pemindaian keamanan, analisis dependensi, pembuatan dokumentasi, atau menjalankan test suite, sementara percakapan utama tetap responsif
---
name: full-audit
description: Comprehensive codebase audit running in the background
context: fork
allowed-tools: Bash, Read, Grep, Glob, WebSearch
effort: high
---
Run a comprehensive audit:
- Security scan (grep for dangerous patterns, check dependencies for CVEs)
- Code quality (duplicated logic, dead code, missing error handling)
- Test coverage (untested critical paths)
- Dependency health (outdated packages, unused deps, license issues)

Write a detailed report to /tmp/audit-report.md when complete.

Contoh kombinasi fitur

  • Reviewer kode dengan memori persisten dan Hook scoping

    • Agent membaca memori per codebase, meninjau pola yang ditemukan sebelumnya bersama masalah baru, lalu menyimpan kembali temuan setelahnya ke memori
    • Setelah melalui beberapa review, ini membantu menangkap masalah berulang yang spesifik per proyek dan bisa terlewat oleh reviewer biasa
---
name: reviewer
description: Code reviewer that learns your codebase patterns over time
tools: [Read, Grep, Glob, Bash]
effort: high
color: yellow
memory: project
hooks:
  PostToolUse:
    - matcher: "Bash"
      hooks:
        - type: command
          command: "~/.claude/hooks/log-review.sh"
          async: true
---
Before reviewing, read your memory for past findings on this codebase.

Review git diff HEAD~1 for:
- Patterns you've flagged before (check memory)
- New issues worth flagging
- Resolved issues from past reviews

After review, save to memory:
- New patterns found (type: feedback)
- Recurring issues (type: project)

End with VERDICT: PASS, FAIL, or NEEDS_REVIEW.
  • Pengaturan sesi yang menggabungkan pemantauan file dan jaring pengaman asyncRewake

    • Saat sesi dimulai, konteks proyek dimuat, perintah Bash read-only langsung disetujui otomatis, dan perintah berbahaya diblokir dengan pemeriksaan keamanan asinkron
    • Perintah read-only lewat dengan cepat, perintah berbahaya diblokir, dan sisanya mengikuti alur izin biasa
{
  "hooks": {
    "SessionStart": [{
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/session-context.sh",
        "statusMessage": "Loading project context..."
      }]
    }],
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{
        "type": "command",
        "command": "~/.claude/hooks/auto-approve-readonly.sh"
      }, {
        "type": "command",
        "command": "~/.claude/hooks/block-dangerous.sh",
        "asyncRewake": true,
        "statusMessage": "Safety check..."
      }]
    }]
  }
}
#!/bin/bash
CMD=$(jq -r '.tool_input.command' < /dev/stdin)
echo "$CMD" | grep -qE '(rm -rf /|sudo rm|chmod 777|> /dev/)' && exit 2 || exit 0
  • Review arsitektur yang menggabungkan override model, kontrol effort, dan delegasi Agent

    • Menentukan analisis mendalam dengan effort: max, mendelegasikan ke Agent tertentu, dan mengurangi pengaruh kebiasaan proyek yang sudah ada dengan omitClaudeMd: true pada Agent tersebut
---
name: architecture-review
description: Deep architecture review using max effort, delegated to fresh-eyes agent
agent: fresh-eyes
effort: max
---
Review the architecture of this project. Ignore existing conventions (the agent has omitClaudeMd: true).
Focus on: $ARGUMENTS

Evaluate structural decisions, dependency graph health, separation of concerns, and scalability characteristics.

Makna dan batasan

  • Sistem Hook dengan field respons per event berfungsi sebagai lapisan middleware yang dapat diprogram untuk penggunaan alat AI
  • Memori Agent persisten memungkinkan pembuatan ahli AI yang mengakumulasi pengalaman lintas sesi
  • Sistem integrasi Dream menyediakan struktur yang belajar dari pengalaman sesi tanpa melatih ulang model
  • Classifier Auto Mode menerima deskripsi lingkungan dalam bahasa alami dan mencerminkannya dalam penilaian keamanan
  • Fitur-fitur ini bukan sekadar pengaturan tersembunyi atau easter egg, melainkan fungsi dasar untuk lingkungan pengembangan AI yang persisten, belajar, dan otonom, dan saat ini sudah termasuk dalam paket npm

1 komentar

 
GN⁺ 3 jam lalu
Komentar Hacker News
  • Setelah dicek dengan Pangram, ini tampak seperti tulisan yang jelas dibuat AI
    Mengejutkan melihat ini mendapat begitu banyak rekomendasi, dan jadi bertanya-tanya apakah orang-orang benar-benar membacanya. Saya tahu @dang sudah membuat aturan untuk konten buatan AI di komentar, tapi masih enggan menerapkannya pada artikel. Secara pribadi, saya berharap ada flag pelaporan juga untuk artikel agar kita tidak membuang waktu pada tulisan berkualitas rendah seperti ini

  • Semua ini sebenarnya sudah terdokumentasi [1]. Once juga sudah didokumentasikan [2], dan async serta asyncRewake juga sudah didokumentasikan [3]. Frontmatter untuk Skills juga didokumentasikan sepenuhnya [4], dan string lingkungan Automode juga ada di dokumentasi [5]
    Tulisan ini murni clickbait buatan AI, jadi mengejutkan melihat responsnya begitu bagus di sini
    [1] https://code.claude.com/docs/en/hooks#pretooluse-decision-co...
    [2] https://code.claude.com/docs/en/hooks#common-fields
    [3] https://code.claude.com/docs/en/hooks#command-hook-fields
    [4] https://code.claude.com/docs/en/skills#frontmatter-reference
    [5] https://code.claude.com/docs/en/auto-mode-config#define-trus...

  • Ini artikel dua bulan lalu, jadi sebagian isinya sudah usang, dan beberapa fiturnya sekarang memang sudah terdokumentasi
    Misalnya dokumentasi auto mode ada di sini: https://code.claude.com/docs/en/auto-mode-config#define-trus...

  • Paket claude merilis 10 versi baru setiap minggu, dan model baru juga muncul tiap beberapa bulan, jadi jangan bergantung pada trik tak terdokumentasi di sekitarnya
    Hal-hal itu bisa berubah, rusak, dan sangat mungkin merusak pengaturan yang terlalu detail

    • Menurut pengalaman saya, trik tak terdokumentasi rusak sama seringnya dengan fitur yang terdokumentasi
      Seperti ketika mereka merilis 1M Opus lalu menghapus opsi “clear context and execute plan” dengan alasan “jendela konteks bukan lagi masalah”
    • Setiap ada versi baru, kita bisa membuat otomatisasi untuk menangani pengaturan pengguna tingkat rendah secara efisien
    • Itu benar, tapi hack sementara kadang bisa menyelamatkan atau justru merusak workflow paling mutakhir
      Saya tidak mendesain ulang instruksi Claude di setiap rilis, tapi ada rilis tertentu yang memang layak dicek apakah instruksi lama masih cocok dengan model saat ini, dan itu benar-benar menghasilkan perbedaan yang terlihat
  • Jumlah fitur di Claude Code terasa sesak napas. Dengan laju seperti ini, paus berikutnya mungkin orang Anthropic

    • Di luar bercanda, Anthropic menggelontorkan terlalu banyak hal sampai sulit dipercaya
      Dengan pendekatan seperti ini, rasanya sulit menjadi produk yang cukup matang dan stabil
  • Mereka bilang “Honest status”, seolah-olah akan jujur menjelaskan kenapa tidak 100% dan kenapa mengambil jalur lebih panjang, https://github.com/user-attachments/assets/961eff6c-0060-45d...
    Saya cuma berharap Claude Code tidak menyerah dalam menyelesaikan tugas. Sangat menjengkelkan. Bahkan kalau pakai /goal atau ultracode baru pun tetap menyerah. Proyek saya memang cukup kompleks (https://github.com/mohsen1/tsz), tapi Codex tidak punya masalah untuk terus maju tanpa berhenti seperti itu

    • Sekarang saya pakai /loop untuk memberi prompt yang memotivasinya agar terus lanjut
      Goal juga bisa dipakai, tapi untuk beberapa tugas, loop sederhana lebih baik
    • Saya juga baru saja menyuruh Claude mengisi daftar tugas, lalu sebelum sampai akhir daftar itu dia malah bertanya apakah harus lanjut atau cukup sampai sebagian saja
  • Saya penasaran apakah mulai terbentuk semacam arsitektur aplikasi agen coding AI yang cukup universal di berbagai model LLM
    Saya juga penasaran apakah ada orang yang sedang mengumpulkan dan merapikan cara memahami gaya arsitektur seperti ini

    • Ini masih situs yang sama, kan? Memangnya sekarang ada orang yang pakai yang lain?
    • Pola di Claude Code, Codex, dan Cursor tampaknya mulai konvergen: pengumpulan konteks, penyusunan rencana, eksekusi, verifikasi
      Bagian yang kurang terstandarisasi adalah seberapa besar kontrol yang diberikan kepada pengguna di antara tiap tahap. Pengaturan seperti showClearContextOnPlanAccept atau disableAutoMode menarik karena menampakkan batas antara “agen yang memutuskan” dan “manusia yang meninjau sebelum eksekusi”. Dalam pengalaman penggunaan nyata, tampaknya di titik itulah agen coding akan terus sangat berbeda satu sama lain
  • Saya penasaran dengan fitur “magic doc”. Saya tidak tahu apakah ini dimasukkan ke CLAUDE.md, atau ke file proyek
    Saya juga penasaran apakah file itu harus disebutkan selama sesi, atau Claude otomatis mencari semua tempat di dalam proyek yang memiliki header “magic doc” seperti itu

  • Apakah mungkin menyuruh Claude membuat konfigurasinya sendiri? Sesuatu seperti, “anggap kamu adalah saya, lalu buat bundel file konfigurasi optimal yang kamu inginkan”

    • Menurut dokumentasi, jika CLAUDE_CODE_NEW_INIT disetel ke 1 maka /init berjalan sebagai alur setup interaktif
      Alur ini akan menjelajahi codebase dan menanyakan file apa saja yang ingin dibuat, seperti CLAUDE.md, skills, hooks, dan sebagainya sebelum menulis file. Tanpa variabel ini, /init akan otomatis membuat CLAUDE.md tanpa bertanya
    • Sepertinya bisa. Tampaknya ada alat bawaan untuk menjelajahi dokumentasinya sendiri, dan juga mode khusus untuk bekerja di direktori .claude/
      Kelihatannya memang dirancang agar pengguna melakukan itu
    • Akan bagus kalau ada proyek cookie cutter yang sudah berisi semua file boilerplate dengan best practice
    • Ada perintah slash yang menelusuri riwayat percakapan lalu menambahkan izin yang diperlukan
    • Bisa. Claude cukup mampu memodifikasi dirinya sendiri
  • Anda akan merasakan serunya menemukan fitur tak terdokumentasi yang Anda andalkan tiba-tiba berhenti bekerja

    • Kalau rekayasa perangkat lunak memang benar-benar sudah jadi masalah yang terpecahkan seperti klaim Anthropic, siapa pun seharusnya bisa membuatnya ulang hanya dengan vibe coding
      Kalau saja mereka tidak alergi pada kata “open”, mereka pasti sudah merilis Claude Code sebagai open source; pada titik ini sebenarnya tidak ada alasan praktis untuk tidak membukanya