Instalasi GitHub Spec Kit CLI: Setup Persistent untuk Golang Developer
Panduan lengkap instalasi specify CLI untuk GitHub Spec Kit. Setup persistent di semua project Go, konfigurasi API key, dan troubleshooting masalah instalasi yang umum.
Instalasi specify CLI: Persistent vs One-time Setup
Sebelum bisa menjalankan satu perintah Spec Kit pun, kita perlu install specify CLI dan mengkonfigurasinya dengan benar. Ini terdengar sederhana, tapi ada beberapa pilihan setup yang punya implikasi berbeda — terutama untuk developer yang bekerja di banyak project secara bersamaan.
Di artikel ini kita bahas semua opsi, dari yang paling sederhana sampai yang paling robust, plus troubleshooting untuk masalah yang paling umum ditemui.
02.1 Dua Mode Instalasi: Global vs Project-Level
Sebelum install, putuskan dulu mau pakai mode yang mana.
Mode Global (direkomendasikan untuk kebanyakan developer): specify CLI di-install secara global di sistem dan bisa dipanggil dari direktori project mana saja. Perintah berikut memasang dan memverifikasinya.
1# Install global
2npm install -g @github/spec-kit
3
4# Verifikasi
5specify --version
6# Output: @github/spec-kit v1.x.xJika specify --version mencetak nomor versi, satu binary itu kini tersedia di semua project tanpa perlu install ulang.
Mode Project-Level (untuk tim yang ingin lock versi): specify CLI di-install sebagai dev dependency di project tertentu dan dijalankan lewat npx. Blok berikut menunjukkan caranya.
1# Install di project
2npm install --save-dev @github/spec-kit
3
4# Jalankan via npx
5npx specify --versionDengan mode ini versi CLI ter-pin di package.json, jadi setiap anggota tim menjalankan versi yang persis sama. Untuk seri ini, kita gunakan mode global karena lebih praktis dan Spec Kit adalah tool yang digunakan lintas project.
02.2 Prasyarat: Node.js dan npm
Specify CLI dibangun di atas Node.js, jadi langkah pertama adalah memastikan versi runtime-nya sesuai. Perintah berikut mengecek versi Node.js dan npm yang terpasang.
1# Cek versi Node.js
2node --version
3# Minimum: v18.0.0
4# Recommended: v20.x.x (LTS terbaru)
5
6# Cek versi npm
7npm --version
8# Minimum: 8.x.xJika angka yang muncul di bawah minimum, kamu perlu meng-upgrade sebelum lanjut. Cara paling bersih untuk mengelola versi Node.js adalah lewat Node Version Manager (nvm) seperti berikut.
1# Install nvm (Mac/Linux)
2curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
3
4# Restart terminal, lalu install Node.js LTS
5nvm install --lts
6nvm use --lts
7
8# Verifikasi
9node --version # v20.x.x
10npm --version # 10.x.xDengan nvm kamu bisa berpindah versi Node.js kapan saja tanpa merusak instalasi global. Untuk Windows, gunakan nvm-windows atau download langsung dari nodejs.org.
02.3 Install specify CLI
Dengan Node.js terinstall, sekarang saatnya memasang specify CLI dan memverifikasi perintahnya. Blok berikut melakukan instalasi global sekaligus menampilkan daftar perintah.
1# Global install
2npm install -g @github/spec-kit
3
4# Verifikasi instalasi
5specify --version
6
7# Lihat semua perintah yang tersedia
8specify --helpSetelah instalasi sukses, specify --help akan mencetak ringkasan seluruh perintah dan opsi seperti output berikut.
1GitHub Spec Kit CLI
2
3Commands:
4 specify constitution [init|update] Manage project constitution
5 specify feature <name> Create a new feature specification
6 specify clarify <name> Clarify specification with Q&A
7 specify plan <name> Generate technical implementation plan
8 specify tasks <name> Break plan into actionable tasks
9 specify implement <name> Execute implementation from tasks
10
11Options:
12 --phase <number> Run specific phase only
13 --task <id> Run specific task only
14 --all Run all phases (use with caution)
15 --dry-run Show what would be done without executing
16 --model <model> Claude model to use (default: claude-sonnet-4-20250514)
17 --verbose Show detailed output
18 -h, --help Show helpOutput ini adalah peta cepat: enam perintah inti di bagian atas dan opsi umum seperti --phase serta --dry-run di bawahnya yang akan sering kita pakai sepanjang seri.
02.4 Konfigurasi API Key: Tiga Cara
Specify CLI perlu Anthropic API key untuk berkomunikasi dengan Claude. Ada tiga cara mengkonfigurasi ini, masing-masing dengan trade-off keamanan dan kepraktisan.
Cara 1: Environment Variable (Recommended)
Cara paling aman dan paling umum adalah menaruh key di environment variable shell. Blok berikut menambahkannya ke config shell agar persistent.
1# Tambahkan ke ~/.bashrc atau ~/.zshrc
2export ANTHROPIC_API_KEY="sk-ant-api03-..."
3
4# Reload shell config
5source ~/.bashrc # atau source ~/.zshrc
6
7# Verifikasi
8echo $ANTHROPIC_API_KEYPendekatan ini paling aman karena key tidak ada di file yang mungkin di-commit, berlaku untuk semua session terminal, dan mudah di-rotate jika perlu.
Cara 2: .env File (Per-Project)
Jika kamu butuh key berbeda per project, simpan di file .env yang selalu di-ignore git. Blok berikut membuatnya sekaligus mengamankannya.
1# Di root project
2echo "ANTHROPIC_API_KEY=sk-ant-api03-..." > .env
3
4# Pastikan .env ada di .gitignore!
5echo ".env" >> .gitignore
6
7# Specify CLI otomatis baca .env jika adaCara ini berguna jika kamu punya API key berbeda per project — misalnya satu key untuk development dan satu untuk production billing — asalkan .env tidak pernah ikut ter-commit.
Cara 3: specify config (Global Config File)
Alternatif ketiga adalah menyimpan key lewat perintah bawaan Spec Kit sendiri. Blok berikut menaruhnya di config global ~/.specify/config.json.
1# Setup via specify config command
2specify config set api-key sk-ant-api03-...
3
4# Tersimpan di ~/.specify/config.json
5# Berlaku untuk semua project
6
7# Verifikasi
8specify config get api-keyCara ini paling praktis untuk single-user, tapi ingat: jangan pernah commit API key ke repository, bahkan repository private, karena file config global tetap bisa bocor jika ter-copy ke tempat lain.
02.5 Mendapatkan Anthropic API Key
Jika belum punya API key, kamu perlu membuatnya dulu di console. Langkah-langkah berikut merangkum prosesnya dari login sampai menyimpan key dengan aman.
11. Buka console.anthropic.com
22. Login atau buat akun baru
33. Navigasi ke "API Keys"
44. Klik "Create Key"
55. Beri nama yang deskriptif: "specify-cli-dev"
66. Copy key yang dihasilkan (hanya ditampilkan sekali!)
77. Simpan ke password manager sebelum menutup halamanKarena key hanya ditampilkan sekali, langkah menyimpan ke password manager di poin 7 itu wajib — bukan opsional. Selain key, kamu juga perlu memilih model yang sesuai kebutuhan:
claude-sonnet-4-20250514→ direkomendasikan (balance antara kualitas dan kecepatan)claude-opus-4-6→ untuk spec yang sangat kompleks (lebih lambat, lebih mahal)claude-haiku-4-5-20251001→ untuk operasi sederhana (lebih cepat, lebih murah)
Specify CLI default ke claude-sonnet-4-20250514, tapi bisa di-override per perintah seperti berikut.
1specify plan product-service --model=claude-opus-4-6Dengan flag --model kamu bisa menaikkan model hanya untuk tahap yang butuh reasoning lebih dalam, tanpa mengubah default untuk perintah lain.
02.6 Verifikasi Setup: First Run Test
Setelah install dan konfigurasi API key, lakukan test pertama di direktori sementara agar tidak mengotori project asli. Blok berikut menyiapkan folder test dan menjalankan perintah dry-run.
1# Buat temporary directory untuk test
2mkdir /tmp/specify-test && cd /tmp/specify-test
3git init
4
5# Jalankan perintah sederhana
6specify --version
7
8# Test koneksi ke API
9specify constitution init --dry-runJika koneksi dan API key sudah benar, kamu akan melihat konfirmasi sukses beserta preview aksi yang akan dilakukan tanpa benar-benar menulis file, seperti output berikut.
1✓ Connecting to Anthropic API...
2✓ API connection successful (model: claude-sonnet-4-20250514)
3
4[DRY RUN] Would create .specify/constitution.md
5[DRY RUN] Would initialize project constitution
6
7Run without --dry-run to execute.Output “API connection successful” adalah sinyal bahwa setup dasar sudah beres; jika muncul error, lihat bagian troubleshooting di bawah.
02.7 Setup untuk Project Santekno Shop
Sekarang kita setup specify CLI untuk project aktual kita. Blok berikut menyiapkan repo, Go module, dan struktur folder dasar Santekno Shop.
1# Clone atau buat project Santekno Shop
2git clone git@github.com:santekno/shop.git
3# atau
4mkdir santekno-shop && cd santekno-shop && git init
5
6# Masuk ke direktori project
7cd santekno-shop
8
9# Inisialisasi Go module jika belum ada
10go mod init github.com/santekno/santekno-shop
11
12# Buat struktur dasar project
13mkdir -p internal/{domain,usecase,repository,delivery/http}
14mkdir -p cmd/server
15mkdir -p .specify/features
16
17# Verifikasi specify bisa berjalan di project ini
18specify --version
19# Output: @github/spec-kit v1.x.x ✓Setelah langkah ini, project sudah punya kerangka clean architecture dan folder .specify/ yang siap diisi. Di sesi berikutnya (artikel 05) kita akan run specify constitution init, tapi dulu kita perlu pahami apa saja yang dihasilkan — itulah artikel 03.
02.8 Konfigurasi specify.config.json
Untuk project-level customization, buat file specify.config.json di root project. Blok berikut adalah contoh konfigurasi lengkap dengan model, arsitektur, path, dan hooks.
1{
2 "model": "claude-sonnet-4-20250514",
3 "language": "go",
4 "architecture": "clean",
5 "output": {
6 "spec_dir": ".specify",
7 "code_dir": "internal",
8 "verbose": false
9 },
10 "hooks": {
11 "post_implement": "go build ./... && go vet ./..."
12 },
13 "templates": {
14 "constitution": ".specify/_templates/constitution.md",
15 "spec": ".specify/_templates/spec.md"
16 }
17}Beberapa konfigurasi paling penting dari file di atas:
model: Model Claude yang digunakan. Default: claude-sonnet-4-20250514.
language: Bahasa pemrograman. Spec Kit punya optimasi khusus untuk go, typescript, python.
architecture: Arsitektur yang digunakan. clean menghasilkan plan dengan folder structure sesuai Clean Architecture.
hooks.post_implement: Perintah yang dijalankan setelah setiap implementasi. Sangat berguna untuk langsung verify bahwa kode yang di-generate bisa di-build.
output.verbose: Set true untuk debug mode — menampilkan semua prompt yang dikirim ke Claude.
02.9 Auto-completion untuk Shell
Untuk pengalaman development yang lebih smooth, aktifkan shell autocomplete. Blok berikut menambahkan completion sesuai shell yang kamu pakai.
1# Bash
2specify completion bash >> ~/.bashrc
3source ~/.bashrc
4
5# Zsh
6specify completion zsh >> ~/.zshrc
7source ~/.zshrc
8
9# Fish
10specify completion fish > ~/.config/fish/completions/specify.fishSetelah completion aktif, kamu bisa tekan TAB untuk melengkapi perintah, nama fitur, maupun opsi — seperti contoh interaktif berikut.
1specify <TAB>
2# constitution clarify feature implement plan tasks config
3
4specify implement <TAB>
5# product-service cancel-order get-order ...
6
7specify implement product-service --<TAB>
8# --phase --task --all --dry-run --model --verboseCompletion ini mengurangi typo dan membuat kamu tidak perlu menghafal nama fitur atau flag — terutama berguna saat project sudah punya banyak fitur.
02.10 Update specify CLI
Spec Kit terus berkembang, jadi sesekali kamu perlu meng-update-nya. Blok berikut menunjukkan cara update, mengecek changelog, dan mem-pin versi tertentu.
1# Update ke versi terbaru
2npm update -g @github/spec-kit
3
4# Cek changelog sebelum update
5specify changelog
6
7# Update tapi keep versi yang sama (pin version)
8npm install -g @github/spec-kit@1.x.xSelalu cek changelog sebelum update, terutama jika kamu punya project yang sudah punya .specify/ folder — breaking changes bisa mempengaruhi format file yang sudah ada.
02.11 Setup untuk CI/CD Environment
Jika ingin menjalankan Spec Kit dalam pipeline CI, kamu perlu meng-install CLI dan menyuntikkan API key lewat secret. Blok workflow berikut memvalidasi spec pada setiap pull request.
1# .github/workflows/spec-validation.yml
2name: Spec Validation
3
4on:
5 pull_request:
6 paths:
7 - '.specify/**'
8 - 'internal/**'
9
10jobs:
11 validate-spec:
12 runs-on: ubuntu-latest
13 steps:
14 - uses: actions/checkout@v4
15
16 - uses: actions/setup-node@v4
17 with:
18 node-version: '20'
19
20 - name: Install specify CLI
21 run: npm install -g @github/spec-kit
22
23 - name: Validate spec compliance
24 env:
25 ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
26 run: |
27 # Check if implementation matches spec
28 specify validate --feature=product-servicePerhatikan bahwa API key diambil dari secrets.ANTHROPIC_API_KEY, bukan hardcoded — inilah pola aman untuk CI. Kita akan cover ini lebih detail di Artikel 19 (Spec Kit + GitHub Actions).
02.12 Multi-Project Setup: Satu CLI, Banyak Project
Jika kamu bekerja di banyak project yang berbeda, satu CLI global bisa melayani semuanya. Struktur direktori berikut menggambarkan tiga project dengan arsitektur berbeda.
1~/projects/
2├── santekno-shop/ ← E-commerce (Go, Clean Architecture)
3├── dashboard/ ← Internal tool (Go, layered)
4└── mobile-api/ ← Mobile backend (Go, hexagonal)Kuncinya: meski CLI-nya satu, setiap project punya specify.config.json sendiri yang mendefinisikan model, architecture, dan path yang berbeda. Perintah berikut menunjukkan CLI yang sama menghasilkan perilaku berbeda tergantung config lokal.
1# Di santekno-shop
2cd ~/projects/santekno-shop
3specify constitution init
4# Menggunakan config dari santekno-shop/specify.config.json
5
6# Di dashboard
7cd ~/projects/dashboard
8specify constitution init
9# Menggunakan config dari dashboard/specify.config.jsonDengan pola ini kamu cukup memelihara satu instalasi CLI, sementara karakter tiap project tetap terjaga lewat config masing-masing.
02.13 Troubleshooting: Masalah yang Paling Umum
Error: command not found: specify
Biasanya ini karena folder bin global npm belum ada di PATH. Blok berikut mengecek prefix npm dan menambahkannya ke PATH.
1# Cek apakah npm global bin ada di PATH
2npm config get prefix
3# Output: /usr/local (atau sejenisnya)
4
5# Tambahkan ke PATH jika belum ada
6export PATH="$(npm config get prefix)/bin:$PATH"
7
8# Atau install ulang dengan sudo (tidak direkomendasikan)
9sudo npm install -g @github/spec-kitSetelah PATH benar, specify akan dikenali dari direktori mana pun tanpa perlu sudo.
Error: ANTHROPIC_API_KEY not set
Error ini muncul jika environment variable kosong. Blok berikut mengeceknya lalu men-set ulang.
1# Cek apakah variable sudah di-set
2echo $ANTHROPIC_API_KEY
3# Jika kosong, set dulu
4
5export ANTHROPIC_API_KEY="sk-ant-api03-..."
6# Atau tambahkan ke ~/.bashrc/.zshrc untuk persistentAgar tidak berulang setiap buka terminal baru, pastikan export ditaruh di ~/.bashrc atau ~/.zshrc, bukan hanya di session aktif.
Error: Connection timeout
Timeout umumnya masalah jaringan atau proxy. Blok berikut menguji konektivitas dan men-set proxy bila diperlukan.
1# Cek koneksi internet
2curl -I https://api.anthropic.com
3
4# Jika ada proxy, set:
5export HTTPS_PROXY=http://proxy.company.com:8080Jika curl sendiri gagal, masalahnya di jaringan/proxy — bukan di Spec Kit — jadi selesaikan konektivitas dulu.
Error: Invalid API key
Untuk memastikan key valid, uji langsung ke API tanpa perantara Spec Kit. Blok berikut melakukan request minimal ke endpoint messages.
1# Verifikasi key dengan curl langsung
2curl -X POST https://api.anthropic.com/v1/messages \
3 -H "x-api-key: $ANTHROPIC_API_KEY" \
4 -H "Content-Type: application/json" \
5 -d '{"model":"claude-haiku-4-5-20251001","max_tokens":10,"messages":[{"role":"user","content":"Hi"}]}'
6
7# Jika error, buat API key baru di console.anthropic.comKalau request langsung ini pun ditolak, berarti key-nya memang bermasalah dan harus dibuat ulang di console.
Error: Permission denied on .specify directory
Masalah izin file bisa terjadi di environment multi-user. Blok berikut memperbaiki permission folder dan file.
1# Fix permissions
2chmod 755 .specify
3chmod 644 .specify/constitution.mdDengan permission 755 untuk folder dan 644 untuk file, Spec Kit bisa membaca dan menulis output tanpa error akses.
Error: Node.js version terlalu lama
Jika versi Node.js di bawah 18, CLI bisa gagal berjalan. Blok berikut mengecek versi lalu meng-upgrade via nvm.
1# Cek versi
2node --version
3# Jika < 18, update via nvm
4nvm install --lts && nvm use --ltsSetelah berpindah ke LTS terbaru, jalankan ulang instalasi specify agar terpasang di versi Node.js yang baru.
02.14 Validasi Instalasi Lengkap
Daripada mengecek satu per satu, lebih efisien membuat script validasi. Blok berikut adalah script bash yang memeriksa Node.js, specify CLI, API key, dan Go sekaligus.
1#!/bin/bash
2# Simpan sebagai check-specify-setup.sh
3
4echo "=== Specify CLI Setup Check ==="
5
6# Check Node.js
7NODE_VERSION=$(node --version 2>/dev/null)
8if [ -z "$NODE_VERSION" ]; then
9 echo "❌ Node.js not found"
10else
11 echo "✅ Node.js: $NODE_VERSION"
12fi
13
14# Check specify CLI
15SPECIFY_VERSION=$(specify --version 2>/dev/null)
16if [ -z "$SPECIFY_VERSION" ]; then
17 echo "❌ specify CLI not found"
18else
19 echo "✅ specify CLI: $SPECIFY_VERSION"
20fi
21
22# Check API key
23if [ -z "$ANTHROPIC_API_KEY" ]; then
24 echo "❌ ANTHROPIC_API_KEY not set"
25else
26 echo "✅ ANTHROPIC_API_KEY: set (${#ANTHROPIC_API_KEY} chars)"
27fi
28
29# Check go
30GO_VERSION=$(go version 2>/dev/null)
31if [ -z "$GO_VERSION" ]; then
32 echo "❌ Go not found"
33else
34 echo "✅ Go: $GO_VERSION"
35fi
36
37echo ""
38echo "=== Result ==="
39echo "If all checks show ✅, you're ready to start!"Setelah script tersimpan, jadikan executable lalu jalankan; kamu akan melihat ringkasan status seperti output berikut.
1chmod +x check-specify-setup.sh
2./check-specify-setup.sh
3
4# Expected output:
5# === Specify CLI Setup Check ===
6# ✅ Node.js: v20.15.0
7# ✅ specify CLI: @github/spec-kit v1.x.x
8# ✅ ANTHROPIC_API_KEY: set (108 chars)
9# ✅ Go: go version go1.22.3 linux/amd64
10#
11# === Result ===
12# If all checks show ✅, you're ready to start!Selama semua baris menampilkan tanda centang, artinya fondasi tooling kamu sudah lengkap dan siap dipakai membuat constitution di artikel berikutnya.
02.15 Persistent vs One-time: Ringkasan Perbandingan
Untuk memutuskan mode instalasi yang tepat, bandingkan kedua pendekatan berdampingan. Tabel berikut merangkum perbedaan global install dan project-level.
| Aspek | Global Install | Project-Level |
|---|---|---|
| Install command | npm install -g | npm install --save-dev |
| Run command | specify | npx specify |
| Versi | Single global version | Per-project version |
| Update | npm update -g | npm update (di project) |
| Cocok untuk | Individual developer | Tim yang perlu version lock |
| API key scope | Global env var | .env per project |
| Rekomendasi | ✅ Default choice | 🔧 When version consistency critical |
Kesimpulan dari tabel ini sederhana: pilih global install kalau kamu berpindah-pindah project sebagai individu, dan project-level kalau konsistensi versi antar anggota tim adalah prioritas.
02.16 Security Best Practices untuk API Key
API key Anthropic adalah kredensial yang memberikan akses billing, jadi harus diperlakukan seperti password. Blok berikut merangkum apa yang harus dihindari dan apa yang sebaiknya dilakukan.
1# ❌ JANGAN: Hardcode di kode atau config yang di-commit
2const apiKey = "sk-ant-api03-..."
3
4# ❌ JANGAN: Tambahkan ke shell history
5export ANTHROPIC_API_KEY=sk-ant-api03-... # visible in history!
6
7# ✅ DO: Simpan di password manager (1Password, Bitwarden, dll)
8# ✅ DO: Gunakan environment variable dari ~/.bashrc (tidak di history)
9# ✅ DO: Rotate key secara berkala
10# ✅ DO: Buat key terpisah per environment (dev, staging, prod)
11# ✅ DO: Set spending limit di Anthropic console
12
13# Set limit pengeluaran
14# console.anthropic.com → Usage → Monthly Budget
15# Recommended: start dengan $10/bulan untuk developmentPoin terpenting: satu key yang bocor bisa menghabiskan budget dengan cepat, jadi kombinasi password manager, rotasi berkala, dan spending limit adalah pertahanan minimum yang wajib.
02.17 Menggunakan Specify dengan Model Berbeda
Spec Kit mendukung beberapa model Claude dengan karakteristik berbeda, dan kamu bisa memilihnya per perintah. Blok berikut menunjukkan cara menetapkan model untuk kebutuhan yang berbeda.
1# Default: Sonnet (balance terbaik untuk everyday use)
2specify plan product-service
3# atau
4specify plan product-service --model=claude-sonnet-4-20250514
5
6# Untuk spec yang sangat kompleks: Opus (lebih powerful, lebih mahal)
7specify plan product-service --model=claude-opus-4-6
8
9# Untuk task sederhana: Haiku (lebih cepat, lebih murah)
10specify tasks product-service --model=claude-haiku-4-5-20251001Pemilihan model bukan soal “mana yang terbaik” tapi “mana yang pas untuk tahap ini”. Tabel berikut memberi rekomendasi model per perintah.
| Perintah | Model Rekomendasi | Alasan |
|---|---|---|
constitution init | Sonnet | Nuanced architectural thinking |
feature | Haiku | Simple Q&A capture |
clarify | Sonnet | Requires good reasoning |
plan | Opus atau Sonnet | Complex technical planning |
tasks | Sonnet | Moderate breakdown task |
implement | Sonnet | Code generation |
Pola dari tabel ini jelas: pakai Haiku untuk tahap ringan, Sonnet untuk mayoritas pekerjaan, dan naikkan ke Opus hanya saat perencanaan teknis benar-benar kompleks.
02.18 Tips & Gotchas
💡 Tip 1: Gunakan nvm untuk manajemen Node.js version
nvm memudahkan switch antara versi Node.js jika kamu punya project yang memerlukan versi berbeda.
💡 Tip 2: Setup alias untuk workflow yang lebih cepat
Mengetik specify berulang kali cepat melelahkan; alias pendek menghemat banyak ketukan. Blok berikut mendefinisikan alias untuk perintah yang paling sering dipakai.
1# Tambahkan ke ~/.bashrc atau ~/.zshrc
2alias spc="specify"
3alias spcf="specify feature"
4alias spcc="specify clarify"
5alias spcp="specify plan"
6alias spct="specify tasks"
7alias spci="specify implement"Setelah alias aktif, spcp product-service sama dengan specify plan product-service — lebih ringkas untuk pemakaian harian.
💡 Tip 3: Gunakan –dry-run sebelum implementasi yang besar
specify implement product-service --all --dry-run akan menampilkan apa yang akan dilakukan tanpa mengeksekusi apapun. Sangat berguna sebelum menjalankan implementasi yang panjang.
💡 Tip 4: Log all specify commands
Untuk audit atau debugging, semua perintah specify bisa dicatat otomatis. Blok berikut membungkus specify dengan fungsi yang mencatat setiap invokasi ke file log.
1# Tambahkan ke ~/.bashrc
2SPECIFY_LOG_DIR="$HOME/.specify-logs"
3mkdir -p "$SPECIFY_LOG_DIR"
4
5specify() {
6 echo "[$(date)] specify $@" >> "$SPECIFY_LOG_DIR/commands.log"
7 command specify "$@"
8}Dengan wrapper ini kamu punya jejak lengkap kapan dan perintah apa saja yang dijalankan — berguna saat menelusuri “kapan fitur ini terakhir di-generate”.
⚠️ Gotcha 1: npm global install butuh PATH yang benar
Pada beberapa sistem, npm install -g berhasil tapi specify tidak ditemukan karena global npm bin folder tidak ada di PATH. Fix dengan menambahkan $(npm config get prefix)/bin ke PATH.
⚠️ Gotcha 2: Jangan share API key di Slack/Discord/Teams
Developer sering share error message yang berisi API key secara tidak sengaja. Gunakan asterisk untuk mask key: sk-ant-api03-****.
⚠️ Gotcha 3: Rate limiting pada API key gratis
API key di tier free mempunyai rate limit yang ketat. Jika kamu sering kena rate limit, pertimbangkan upgrade ke paid tier atau kurangi frekuensi penggunaan.
⚠️ Gotcha 4: Version mismatch antara specify CLI dan spec format
Jika update specify CLI tapi project mempunyai .specify/ folder yang lama, mungkin ada format yang tidak kompatibel. Selalu baca changelog sebelum update.
02.19 Setup Environment Variable yang Benar
Cara set environment variable berbeda antar OS dan shell, jadi berikut detail untuk masing-masing. Untuk macOS/Linux dengan bash, tambahkan ke ~/.bashrc seperti blok berikut.
1# Edit ~/.bashrc (bash) atau ~/.zshrc (zsh)
2echo 'export ANTHROPIC_API_KEY="sk-ant-api03-..."' >> ~/.bashrc
3source ~/.bashrc
4
5# Verifikasi
6echo $ANTHROPIC_API_KEYUntuk pengguna macOS modern yang default-nya zsh, targetnya adalah ~/.zshrc seperti blok berikut.
1echo 'export ANTHROPIC_API_KEY="sk-ant-api03-..."' >> ~/.zshrc
2source ~/.zshrcUntuk Windows dengan PowerShell, environment variable di-set secara permanen di level user lewat perintah berikut.
1# Set permanent environment variable
2[System.Environment]::SetEnvironmentVariable('ANTHROPIC_API_KEY', 'sk-ant-api03-...', 'User')
3
4# Verifikasi (restart PowerShell dulu)
5$env:ANTHROPIC_API_KEYSedangkan untuk Command Prompt klasik, gunakan setx seperti blok berikut.
1setx ANTHROPIC_API_KEY "sk-ant-api03-..."
2:: Restart cmd untuk efekPerbedaan utamanya: di Windows, perubahan environment variable baru berlaku setelah shell di-restart — jadi jangan lupa tutup dan buka ulang terminalnya.
02.20 Ringkasan
Instalasi specify CLI adalah proses yang straightforward tapi punya beberapa pilihan yang mempengaruhi workflow jangka panjang.
Rekomendasi setup untuk kebanyakan developer:
- Install Node.js 20 LTS via nvm
npm install -g @github/spec-kituntuk global install- Set
ANTHROPIC_API_KEYdi~/.bashrcatau~/.zshrc - Jalankan
specify --versionuntuk verifikasi - Buat
specify.config.jsondi setiap project dengan konfigurasi spesifik
Perbedaan kunci: Global install untuk individual developer yang berpindah-pindah project; project-level untuk tim yang perlu version consistency.
Security: Treat API key seperti password — simpan di password manager, set spending limit, dan rotate secara berkala.
Di artikel berikutnya, kita akan lihat secara detail semua file yang dihasilkan Spec Kit — anatomy dari setiap output dan bagaimana mereka saling berhubungan.