Skip to content
Santekno.com | Level Up Your Engineering Skills
ID
📖 0%
13 Aug 2026 · 17 mnt baca ·Artikel 22 / 208
Go

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.

IH
Ihsan Arif
Penulis di Santekno · Backend Engineer

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.

bash
1# Install global
2npm install -g @github/spec-kit
3
4# Verifikasi
5specify --version
6# Output: @github/spec-kit v1.x.x

Jika 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.

bash
1# Install di project
2npm install --save-dev @github/spec-kit
3
4# Jalankan via npx
5npx specify --version

Dengan 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.

bash
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.x

Jika 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.

bash
 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.x

Dengan 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.

bash
1# Global install
2npm install -g @github/spec-kit
3
4# Verifikasi instalasi
5specify --version
6
7# Lihat semua perintah yang tersedia
8specify --help

Setelah instalasi sukses, specify --help akan mencetak ringkasan seluruh perintah dan opsi seperti output berikut.

text
 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 help

Output 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 paling aman dan paling umum adalah menaruh key di environment variable shell. Blok berikut menambahkannya ke config shell agar persistent.

bash
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_KEY

Pendekatan 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.

bash
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 ada

Cara 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.

bash
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-key

Cara 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.

text
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 halaman

Karena 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.

bash
1specify plan product-service --model=claude-opus-4-6

Dengan 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.

bash
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-run

Jika 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.

text
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.

bash
 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.

json
 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.

bash
 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.fish

Setelah completion aktif, kamu bisa tekan TAB untuk melengkapi perintah, nama fitur, maupun opsi — seperti contoh interaktif berikut.

text
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  --verbose

Completion 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.

bash
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.x

Selalu 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.

yaml
 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-service

Perhatikan 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.

text
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.

bash
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.json

Dengan 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.

bash
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-kit

Setelah 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.

bash
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 persistent

Agar 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.

bash
1# Cek koneksi internet
2curl -I https://api.anthropic.com
3
4# Jika ada proxy, set:
5export HTTPS_PROXY=http://proxy.company.com:8080

Jika 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.

bash
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.com

Kalau 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.

bash
1# Fix permissions
2chmod 755 .specify
3chmod 644 .specify/constitution.md

Dengan 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.

bash
1# Cek versi
2node --version
3# Jika < 18, update via nvm
4nvm install --lts && nvm use --lts

Setelah 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.

bash
 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.

text
 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.

AspekGlobal InstallProject-Level
Install commandnpm install -gnpm install --save-dev
Run commandspecifynpx specify
VersiSingle global versionPer-project version
Updatenpm update -gnpm update (di project)
Cocok untukIndividual developerTim yang perlu version lock
API key scopeGlobal 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.

bash
 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 development

Poin 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.

bash
 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-20251001

Pemilihan model bukan soal “mana yang terbaik” tapi “mana yang pas untuk tahap ini”. Tabel berikut memberi rekomendasi model per perintah.

PerintahModel RekomendasiAlasan
constitution initSonnetNuanced architectural thinking
featureHaikuSimple Q&A capture
clarifySonnetRequires good reasoning
planOpus atau SonnetComplex technical planning
tasksSonnetModerate breakdown task
implementSonnetCode 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.

bash
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.

bash
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.

bash
1# Edit ~/.bashrc (bash) atau ~/.zshrc (zsh)
2echo 'export ANTHROPIC_API_KEY="sk-ant-api03-..."' >> ~/.bashrc
3source ~/.bashrc
4
5# Verifikasi
6echo $ANTHROPIC_API_KEY

Untuk pengguna macOS modern yang default-nya zsh, targetnya adalah ~/.zshrc seperti blok berikut.

bash
1echo 'export ANTHROPIC_API_KEY="sk-ant-api03-..."' >> ~/.zshrc
2source ~/.zshrc

Untuk Windows dengan PowerShell, environment variable di-set secara permanen di level user lewat perintah berikut.

powershell
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_KEY

Sedangkan untuk Command Prompt klasik, gunakan setx seperti blok berikut.

bat
1setx ANTHROPIC_API_KEY "sk-ant-api03-..."
2:: Restart cmd untuk efek

Perbedaan 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:

  1. Install Node.js 20 LTS via nvm
  2. npm install -g @github/spec-kit untuk global install
  3. Set ANTHROPIC_API_KEY di ~/.bashrc atau ~/.zshrc
  4. Jalankan specify --version untuk verifikasi
  5. Buat specify.config.json di 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.

Artikel Terkait

💬 Komentar