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

Update CLAUDE.md Otomatis dengan Spec Kit: Konteks AI Selalu Akurat

Cara menjaga CLAUDE.md tetap akurat dan up-to-date menggunakan GitHub Spec Kit. Auto-update konteks AI setelah setiap fitur selesai untuk workflow SDD yang konsisten.

IH
Ihsan Arif
Penulis di Santekno · Backend Engineer

Update CLAUDE.md Otomatis: Menjaga Konteks AI Tetap Akurat

Update CLAUDE.md otomatis dengan Spec Kit adalah kunci menjaga konteks AI tetap akurat di proyek Golang jangka panjang. CLAUDE.md adalah “memori proyek” untuk Claude — dokumen yang memberikan konteks tentang arsitektur, konvensi, dan keputusan teknis. Tapi ada masalah: saat proyek berkembang, CLAUDE.md sering tidak ikut berkembang. Di artikel ini kita bahas bagaimana GitHub Spec Kit mengotomasi update tersebut agar Claude Code selalu bekerja dengan gambaran proyek yang terkini.


14.1 Problem: CLAUDE.md Drift

Sebelum masuk ke solusinya, penting memahami akar masalahnya. Skenario berikut menggambarkan bagaimana CLAUDE.md perlahan menjadi usang seiring proyek tumbuh.

Bayangkan ini: proyek dimulai 6 bulan lalu dengan CLAUDE.md yang solid. Sejak saat itu:

  • 12 fitur baru di-implement
  • 3 pattern baru muncul di codebase
  • 2 external service baru di-integrate
  • 1 architectural decision berubah

CLAUDE.md masih sama seperti 6 bulan lalu. Claude Code yang berjalan dengan CLAUDE.md ini akan:

  • Menggunakan pattern lama yang sudah tidak dipakai
  • Tidak tahu tentang service baru
  • Mungkin menghasilkan kode yang tidak konsisten dengan apa yang ada

Ini yang disebut CLAUDE.md drift — satu dari masalah terbesar dalam SDD jangka panjang, karena AI yang bekerja dengan konteks basi akan menyeret seluruh codebase ke arah yang tidak konsisten.


14.2 speckit dan CLAUDE.md: Dua Cara Update

Spec Kit menyediakan dua mekanisme untuk mengatasi drift. Perintah berikut memperlihatkan mekanisme pertama, yaitu update otomatis setelah implementasi selesai.

bash
 1# Setelah specify implement selesai, update CLAUDE.md
 2specify claude-update --feature product-review
 3
 4# Spec Kit menganalisis:
 5# - File baru yang dibuat
 6# - Pattern baru yang digunakan
 7# - Interface baru yang di-introduce
 8# - Decision yang dibuat di plan.md
 9
10# Dan menghasilkan suggestion untuk CLAUDE.md

Mekanisme pertama ini mengekstrak perubahan langsung dari hasil implementasi, sehingga update CLAUDE.md selalu berbasis kode nyata, bukan asumsi. Mekanisme kedua bekerja dari arah berbeda: menyelaraskan konstitusi proyek dengan CLAUDE.md, seperti perintah berikut.

bash
1# Sync constitution.md ke CLAUDE.md
2specify claude-sync
3
4# Menjamin bahwa prinsip di constitution.md
5# tercermin di CLAUDE.md (dan vice versa)

Dua mekanisme ini saling melengkapi: claude-update menangkap detail teknis per fitur, sedangkan claude-sync menjaga prinsip tingkat proyek tetap konsisten di kedua dokumen.


14.3 Menjalankan specify claude-update

Mari lihat output nyata saat perintah update dijalankan setelah sebuah fitur selesai. Sesi berikut memperlihatkan analisis yang dilakukan Spec Kit dan suggestion yang dihasilkannya.

bash
 1# Jalankan setelah feature selesai diimplement
 2specify claude-update --feature product-review
 3
 4# Output:
 5# 🔄 Analyzing implementation...
 6# ✓ Found 8 new files
 7# ✓ Detected 3 new patterns
 8# ✓ Found 2 new domain entities
 9# ✓ Identified 1 interface change
10#
11# Generating CLAUDE.md update suggestions...
12#
13# Suggested additions to CLAUDE.md:
14#
15# [1] New domain: Review
16#     Add to "Domain Model" section
17# [2] New pattern: Atomic read-modify-write for counters
18#     Add to "Patterns" section
19# [3] New dependency: pgx advisory locks
20#     Add to "Database" section
21#
22# Apply all? [y/n/select]: y

Perhatikan bahwa Spec Kit tidak langsung menimpa file — ia menyajikan suggestion yang bisa kamu terima seluruhnya, tolak, atau pilih sebagian, sehingga kontrol akhir tetap di tangan developer.


14.4 Contoh CLAUDE.md Sebelum dan Sesudah

Perbandingan sebelum-sesudah adalah cara terbaik memahami nilai update ini. Blok berikut menunjukkan kondisi CLAUDE.md setelah Topik 1, saat baru berisi model domain dasar.

markdown
 1# CLAUDE.md — Santekno Shop
 2
 3## Domain Model
 4- Order: status (PENDING → CONFIRMED → SHIPPED → DELIVERED → CANCELLED)
 5- Product: catalog items dengan stock management
 6- User: customer dengan auth JWT
 7
 8## Patterns
 9- Repository pattern dengan interface di domain layer
10- Clean Architecture: handler → usecase → repository → domain
11
12## Database
13- pgx/v5 untuk PostgreSQL
14- UUID untuk semua primary keys
15- int64 cents untuk monetary values

Versi awal ini ringkas tapi generik. Setelah menjalankan specify claude-update --feature product-review, dokumen berkembang dengan detail spesifik seperti berikut.

markdown
 1# CLAUDE.md — Santekno Shop
 2
 3## Domain Model
 4- Order: status (PENDING → CONFIRMED → SHIPPED → DELIVERED → CANCELLED)
 5- Product: catalog items dengan stock management + **AverageRating, TotalReviewCount** (added: SHOP-789)
 6- User: customer dengan auth JWT
 7- **Review**: rating (1-5) + content + soft delete + purchase verification (added: SHOP-789)
 8  - Status: PUBLISHED | DELETED
 9  - Constraint: satu customer, satu review, per product (unique index)
10
11## Patterns
12- Repository pattern dengan interface di domain layer
13- Clean Architecture: handler → usecase → repository → domain
14- **Atomic counter update pattern**: UPDATE aggregate (AverageRating) dalam TX yang sama dengan INSERT entity
15  Contoh: CreateReview + UPDATE products.average_rating dalam satu pgx.Tx
16  Reference: internal/repository/postgres/review_repository.go CancelWithStockRestore
17- **Admin-only operation pattern**: usecase cek `input.RequestingUserRole == "admin"`
18  Return ErrForbidden jika bukan admin → handler return 403
19
20## Database
21- pgx/v5 untuk PostgreSQL
22- UUID untuk semua primary keys
23- int64 cents untuk monetary values
24- **Soft delete pattern**: `deleted_at TIMESTAMPTZ, deleted_by UUID`
25  Jangan gunakan `is_deleted boolean` (inkonsisten)
26- **Unique constraint dengan partial index**: `WHERE deleted_at IS NULL`
27  Ini memungkinkan re-create setelah soft delete
28
29## Implemented Features
30- Cancel Order (SHOP-456): atomic cancellation + stock restore
31- **Product Review (SHOP-789)**: review dan rating sistem
32  - Spec: .specify/features/product-review/spec.md
33  - Pattern: atomic counter, admin-only delete, purchase verification

Perhatikan bagaimana specify claude-update menambahkan informasi yang spesifik dan actionable — bukan hanya “ada domain Review” tapi bagaimana menggunakannya dengan benar, lengkap dengan referensi file dan anti-pattern yang harus dihindari.


14.5 Konfigurasi Auto-Update

Perilaku update bisa dikendalikan lewat konfigurasi. Blok YAML berikut menentukan section mana yang dikelola Spec Kit, mana yang dilindungi, hingga format entri fitur.

yaml
 1# .speckit-config.yaml
 2
 3claude_md:
 4  # File CLAUDE.md (bisa custom path)
 5  file: CLAUDE.md
 6
 7  # Auto-run claude-update setelah setiap implement
 8  auto_update_on_implement: false  # true untuk otomatis, false untuk manual trigger
 9
10  # Section di CLAUDE.md yang di-manage Spec Kit
11  managed_sections:
12    - "Domain Model"
13    - "Patterns"
14    - "Database"
15    - "Implemented Features"
16
17  # Section yang tidak boleh di-touch oleh Spec Kit (manual saja)
18  protected_sections:
19    - "Project Overview"
20    - "Development Setup"
21    - "Architecture Decision Records"
22
23  # Format untuk "Implemented Features" section
24  feature_format: |
25    - **{feature_name}** ({ticket}): {one_line_description}
26      - Spec: {spec_path}
27      - Key patterns: {key_patterns}
28
29  # Tambahkan "Added: {ticket}" annotation ke setiap perubahan
30  annotate_with_ticket: true

Pemisahan managed_sections dan protected_sections adalah inti dari konfigurasi ini: bagian yang butuh narasi manusia tetap aman, sementara bagian yang bersifat faktual di-update otomatis tanpa risiko menimpa tulisan penting.


14.6 Selective Update: Pilih Section yang Di-update

Kadang kamu hanya ingin memperbarui sebagian dokumen atau melihat preview lebih dulu. Perintah berikut membatasi update ke section tertentu dan menampilkan dry-run sebelum apply.

bash
 1# Update hanya section tertentu
 2specify claude-update --feature product-review \
 3                      --sections "Domain Model,Patterns"
 4
 5# Preview tanpa apply
 6specify claude-update --feature product-review --dry-run
 7
 8# Output preview:
 9# === Proposed CLAUDE.md changes ===
10#
11# Section: Domain Model
12# + Review: rating (1-5) + content + soft delete
13# + Product: added AverageRating, TotalReviewCount
14#
15# Section: Patterns
16# + Atomic counter update pattern (example: review rating)
17# + Admin-only operation pattern
18#
19# === End of preview ===
20# Apply these changes? [y/n]:

Dengan --dry-run, kamu bisa mereview persis apa yang akan ditambahkan sebelum menyentuh file — kebiasaan yang wajib mengingat suggestion AI kadang terlalu verbose atau terlalu spesifik.


14.7 Constitution Sync: Spec Kit → CLAUDE.md

constitution.md dan CLAUDE.md harus konsisten satu sama lain. Perintah claude-sync berikut membandingkan keduanya dan menawarkan arah sinkronisasi saat ada perbedaan.

bash
 1specify claude-sync
 2
 3# Output:
 4# Comparing constitution.md with CLAUDE.md...
 5#
 6# Found in constitution.md but NOT in CLAUDE.md:
 7# - "Monetary values: int64 cents, never float64"
 8# - "All SQL queries: explicit timeout via context"
 9#
10# Found in CLAUDE.md but NOT reflected in constitution.md:
11# - "Use pgx advisory locks for distributed locking"
12#
13# Sync direction?
14# [1] Add constitution items to CLAUDE.md
15# [2] Add CLAUDE.md items to constitution.md
16# [3] Both
17# [4] Manual — show diffs only

Menariknya, sinkronisasi bisa dua arah: prinsip yang ditemukan di kode (advisory locks) bahkan bisa diangkat kembali ke konstitusi — memastikan aturan resmi proyek mencerminkan praktik nyata, bukan hanya sebaliknya.


14.8 CLAUDE.md Drift Detection

Sebelum memutuskan untuk update, kamu bisa mengukur seberapa parah drift yang terjadi. Perintah audit berikut menganalisis selisih antara kondisi CLAUDE.md dan fitur yang sudah merge.

bash
 1# Deteksi CLAUDE.md drift setelah banyak fitur merge
 2specify audit --claude-drift
 3
 4# Output:
 5# CLAUDE.md Drift Analysis
 6#
 7# Last CLAUDE.md update: 2025-06-01 (31 days ago)
 8# Features merged since then: 4 features
 9#
10# Potentially outdated sections:
11#
12# HIGH: Domain Model
13#   - Review domain added (SHOP-789) but not in CLAUDE.md
14#   - Product entity changed (2 new fields)
15#
16# MEDIUM: Patterns
17#   - Atomic counter pattern used 3 times but not documented
18#
19# LOW: Database
20#   - 2 new partial indexes not mentioned
21#
22# Recommendation: Run 'specify claude-update --all-features' to catch up

Laporan drift dengan level HIGH/MEDIUM/LOW ini memberi prioritas jelas: kamu tahu persis section mana yang paling mendesak diperbarui alih-alih menebak-nebak sendiri.


14.9 Batch Update: Catch Up Setelah Banyak Feature

Untuk proyek yang sudah lama tidak di-update, mengejar satu per satu tidak praktis. Perintah batch berikut memperbarui CLAUDE.md dari banyak fitur sekaligus.

bash
1# Update CLAUDE.md dari semua feature yang belum di-update
2specify claude-update --all-features --since "2025-06-01"
3
4# Atau dari feature list tertentu
5specify claude-update --features "product-review,cancel-order,flash-sale"
6
7# Ini berguna untuk:
8# - Onboarding proyek yang belum pakai Spec Kit dari awal
9# - Catch up setelah sprint yang banyak fiturnya

Batch update sangat berguna saat mengadopsi Spec Kit di proyek yang sudah berjalan — satu perintah bisa merekonstruksi konteks dari banyak fitur historis tanpa harus mengetik ulang manual.


14.10 CLAUDE.md sebagai Living Document

Dengan update rutin, CLAUDE.md berevolusi menjadi living document. Perintah berikut memperlihatkan bagaimana dokumen tumbuh dari waktu ke waktu tapi tetap terstruktur.

bash
 1# 3 bulan setelah setup
 2cat CLAUDE.md | wc -l
 3# 847 lines (dari 120 lines di awal)
 4
 5# Tapi tidak kehilangan struktur:
 6grep "^## " CLAUDE.md
 7# ## Project Overview
 8# ## Domain Model
 9# ## Patterns (12 patterns documented)
10# ## Database
11# ## Implemented Features (8 features)
12# ## Testing Guidelines
13# ## Error Handling
14# ## Performance Considerations
15# ## Architecture Decision Records

Meski jumlah baris bertambah tujuh kali lipat, kerangka section-nya tetap sama — pertumbuhan yang terkelola inilah yang membedakan living document dari file yang sekadar membengkak tak terkendali.


14.11 Versioning CLAUDE.md

Karena CLAUDE.md di-commit setelah setiap update, git menyimpan evolusinya. Perintah berikut menelusuri riwayat perubahan file tersebut per fitur.

bash
 1# CLAUDE.md di-commit setelah setiap update
 2git log --oneline CLAUDE.md
 3
 4# Expected:
 5# abc1234 docs: update CLAUDE.md — add product review patterns
 6# def5678 docs: update CLAUDE.md — add cancel order patterns
 7# ghi9012 docs: initial CLAUDE.md from Topik 1
 8
 9# Lihat perubahan per feature
10git diff abc1234 ghi9012 -- CLAUDE.md

Git history CLAUDE.md menjadi sejarah evolusi arsitektur proyek — kamu bisa menelusuri kapan sebuah pattern diperkenalkan dan fitur mana yang membawanya masuk.


14.12 Multi-Developer CLAUDE.md Updates

Saat banyak developer sama-sama mengupdate CLAUDE.md, konflik merge bisa terjadi. Alur berikut menunjukkan skenario konflik dan cara meresolvenya.

bash
 1# Developer A: merge feature/SHOP-789-product-review
 2# Developer B: merge feature/SHOP-790-shipping-calculator
 3# Keduanya update Domain Model section
 4
 5# Conflict di CLAUDE.md saat salah satu merge:
 6git merge feature/SHOP-790-shipping-calculator
 7# CONFLICT: CLAUDE.md — Domain Model section
 8
 9# Resolve: tambahkan keduanya
10git checkout --merge CLAUDE.md  # buka conflict markers
11# Tambahkan keduanya ke Domain Model section
12# Commit merge resolution

Konflik seperti ini hampir selalu berupa penambahan (bukan perubahan yang bertabrakan), sehingga resolusinya biasanya cukup dengan mempertahankan kedua entri. Untuk mencegahnya sama sekali, konfigurasi berikut memecah section per domain.

yaml
1# .speckit-config.yaml
2claude_md:
3  # Gunakan section yang spesifik per domain (mencegah conflict)
4  domain_sections: true
5  # CLAUDE.md akan punya section "## Domain: Review", "## Domain: Order" dst

Dengan domain_sections, setiap domain punya section terpisah sehingga dua developer yang mengerjakan domain berbeda tidak akan pernah menyentuh baris yang sama — konflik merge nyaris hilang total.


14.13 AI-Assisted CLAUDE.md Review

Setelah update otomatis, langkah bijak adalah meminta Claude sendiri mereview hasilnya. Prompt berikut meminta AI mengevaluasi kualitas CLAUDE.md tanpa mengubahnya.

bash
1claude
2
3> Baca CLAUDE.md yang terbaru. Apakah ada:
4  1. Informasi yang kontradiktif?
5  2. Pattern yang tidak konsisten dengan yang lain?
6  3. Section yang terlalu panjang dan bisa di-summarize?
7  4. Informasi yang penting tapi belum ada?
8
9  Jangan buat perubahan, hanya berikan feedback.

Menjadikan AI sebagai reviewer (bukan editor) di tahap ini menangkap kontradiksi dan redundansi yang mudah terlewat mata manusia — sambil tetap menjaga developer sebagai pengambil keputusan akhir.


14.14 Template CLAUDE.md yang Optimal

Agar auto-update bekerja mulus, struktur CLAUDE.md perlu dirancang sejak awal. Template berikut menandai dengan jelas section yang di-manage Spec Kit dan yang manual.

markdown
 1# CLAUDE.md — Santekno Shop
 2# Last updated: [auto-filled by Spec Kit]
 3# Version: [auto-incremented]
 4
 5## Project Overview
 6[Manual — protected from Spec Kit edits]
 7
 8## Domain Model
 9[Managed by Spec Kit — DO NOT EDIT MANUALLY]
10[Updated via: specify claude-update]
11
12## API Contracts
13[Managed by Spec Kit — DO NOT EDIT MANUALLY]
14
15## Patterns & Conventions
16[Managed by Spec Kit — partially manual]
17
18## Database Schema
19[Managed by Spec Kit — partially manual]
20
21## Testing Guidelines
22[Manual — protected from Spec Kit edits]
23
24## Architecture Decision Records (ADRs)
25[Manual — protected from Spec Kit edits]
26
27## Implemented Features
28[Fully managed by Spec Kit — DO NOT EDIT MANUALLY]

Anotasi eksplisit “Managed” versus “Manual” di setiap heading berfungsi sebagai kontrak visual — baik developer maupun Spec Kit tahu persis batas wilayah masing-masing, mencegah override yang tidak disengaja.


14.15 Spec Kit Update vs Manual Update: Kapan Yang Mana

Tidak semua bagian CLAUDE.md cocok di-update otomatis. Panduan berikut memetakan kapan menggunakan Spec Kit dan kapan harus menulis manual.

Gunakan specify claude-update (Spec Kit):

  • Setelah setiap feature implementation selesai
  • Untuk update domain model, pattern, dan implemented features list
  • Untuk informasi yang extracted dari spec + plan

Update manual:

  • ADR (Architecture Decision Records) — butuh narrative dan reasoning
  • Testing guidelines yang bersifat strategis
  • Project overview yang bersifat business context
  • Setup instructions (environment, tools)

Jangan update manual section “Managed” di CLAUDE.md:

  • Akan di-override saat specify claude-update berikutnya
  • Ubah di spec/plan jika ada yang perlu ditambahkan, bukan di CLAUDE.md langsung

Aturan pembagian ini berangkat dari satu prinsip: informasi faktual yang bisa diekstrak dari kode diserahkan ke Spec Kit, sedangkan narasi dan reasoning yang butuh penilaian manusia tetap ditulis tangan.


14.16 Integration dengan Claude Code Session

Update CLAUDE.md paling efektif jika dijadikan ritual di awal setiap sesi. Langkah-langkah berikut menggabungkan drift check, catch-up, commit, dan mulai sesi Claude Code.

bash
 1# 1. Cek apakah ada update CLAUDE.md yang perlu dilakukan
 2specify audit --claude-drift
 3
 4# 2. Jika ada drift:
 5specify claude-update --all-features
 6
 7# 3. Commit update
 8git add CLAUDE.md
 9git commit -m "docs: update CLAUDE.md with recent feature patterns"
10
11# 4. Baru mulai Claude Code session
12claude
13
14> Baca CLAUDE.md sebelum mulai. Konfirmasi pemahaman kamu tentang state proyek saat ini.

Menjadikan drift check sebagai langkah pertama setiap sesi memastikan Claude Code selalu berangkat dari konteks terkini — investasi satu menit yang mencegah berjam-jam koreksi kode yang mengikuti pattern usang.


14.17 Measuring CLAUDE.md Health

Selain drift, Spec Kit bisa mengukur kesehatan CLAUDE.md secara menyeluruh. Perintah berikut menghasilkan skor kelengkapan, kesegaran, dan konsistensi.

bash
 1# Metrics untuk CLAUDE.md health
 2specify claude-health
 3
 4# Output:
 5# CLAUDE.md Health Report
 6#
 7# Completeness:
 8# ✅ Domain Model: 100% (7/7 domains documented)
 9# ✅ Patterns: 92% (12/13 patterns in code documented)
10# ⚠️  Database: 78% (7/9 patterns documented)
11# ✅ Features: 100% (8/8 features documented)
12#
13# Freshness:
14# Last update: 2025-07-02 (2 days ago)
15# Features since last update: 0
16# Overall freshness: ✅ CURRENT
17#
18# Consistency with constitution.md:
19# ✅ No conflicts found
20#
21# CLAUDE.md health score: 94/100 (Excellent)

Skor kuantitatif seperti ini mengubah “apakah CLAUDE.md kita masih bagus?” dari pertanyaan subjektif menjadi metrik yang bisa dipantau — dan dijadikan gate di CI seperti akan kita lihat nanti.


14.18 Tips & Gotchas

Sebelum masuk ke otomasi CI, ada beberapa tips dan jebakan praktis yang perlu diperhatikan agar CLAUDE.md tetap efektif.

💡 Tip 1: Run specify claude-update sebelum mulai sesi baru

Sebelum buka Claude Code untuk fitur berikutnya, pastikan CLAUDE.md sudah ter-update dari fitur sebelumnya.

💡 Tip 2: Tambahkan specify claude-update ke PR merge checklist

markdown
1## PR Merge Checklist
2- [ ] CI passes
3- [ ] Code review approved
4- [ ] Spec compliance verified
5- [ ] **CLAUDE.md updated**: `specify claude-update --feature [feature-name]`

Menyisipkan update CLAUDE.md ke checklist merge menjadikannya kebiasaan tim, bukan sekadar niat baik yang mudah terlupa.

💡 Tip 3: Review auto-update sebelum commitspecify claude-update menggunakan AI untuk generate update suggestions. Review sebelum commit, kadang ada yang terlalu verbose atau terlalu spesifik.

💡 Tip 4: Jaga CLAUDE.md di bawah 1000 baris — CLAUDE.md yang terlalu panjang mengurangi efektivitasnya karena Claude hanya membaca sebagian dari context window. Jika sudah > 1000 baris, pertimbangkan untuk split menjadi beberapa file (CLAUDE.md, CLAUDE-patterns.md, CLAUDE-database.md).

⚠️ Gotcha 1: Auto-update bisa verbose — jika auto_update_on_implement: true, CLAUDE.md bisa tumbuh terlalu cepat. Pertimbangkan manual trigger saja.

⚠️ Gotcha 2: AI-generated updates bisa salahspecify claude-update menggunakan AI untuk ekstrak pattern dari kode. Kadang pattern yang di-ekstrak tidak akurat atau terlalu spesifik. Selalu review.

⚠️ Gotcha 3: Protected sections bisa di-override jika tidak dikonfigurasi — pastikan protected_sections dikonfigurasi dengan benar untuk section yang tidak boleh di-update otomatis.

⚠️ Gotcha 4: CLAUDE.md terlalu panjang mengurangi efektivitas AI — context window Claude terbatas. CLAUDE.md 500 baris lebih efektif daripada 2000 baris. Prune secara berkala.

Benang merah dari semua tips di atas: otomasi menghemat waktu, tapi review manusia tetap wajib — dan menjaga file tetap ringkas sama pentingnya dengan menjaganya tetap akurat.


14.19 Automated CLAUDE.md Review via CI

Enforcement terkuat datang dari otomasi terjadwal. Workflow berikut menjalankan health check CLAUDE.md setiap Senin dan membuat issue jika kesehatannya menurun.

yaml
 1# .github/workflows/claude-md-health.yml
 2name: CLAUDE.md Health Check
 3
 4on:
 5  schedule:
 6    - cron: '0 9 * * MON'  # Setiap Senin pagi
 7  workflow_dispatch:
 8
 9jobs:
10  claude-health:
11    runs-on: ubuntu-latest
12    steps:
13      - uses: actions/checkout@v4
14      - name: Install Spec Kit
15        run: npm install -g @github/spec-kit
16      - name: Check CLAUDE.md health
17        env:
18          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
19        run: |
20          specify claude-health --output github-summary
21          specify audit --claude-drift --output github-summary
22      - name: Create issue if health < 80
23        if: failure()
24        run: |
25          gh issue create --title "CLAUDE.md needs update" \
26            --body "$(specify claude-health --output markdown)"

Dengan cron mingguan ini, drift tidak akan diam-diam menumpuk berbulan-bulan — sistem sendiri yang mengingatkan tim lewat issue otomatis begitu kesehatan CLAUDE.md turun di bawah ambang.


14.20 Ringkasan

CLAUDE.md drift adalah silent killer dalam SDD jangka panjang — AI yang bekerja dengan konteks yang outdated menghasilkan kode yang tidak konsisten dan pattern yang sudah usang.

specify claude-update menyelesaikan masalah ini dengan mengekstrak pattern, domain model update, dan keputusan arsitektur dari setiap feature implementation dan menyarankan update ke CLAUDE.md yang relevan.

Living document mindset: CLAUDE.md bukan dokumen yang ditulis sekali — ini adalah representasi hidup dari state proyek yang perlu di-update setiap kali fitur baru selesai diimplementasikan.

Konfigurasi yang tepat menentukan section mana yang di-manage Spec Kit dan mana yang manual — mencegah override yang tidak disengaja.

Di artikel berikutnya, kita bahas debugging workflow — apa yang harus dilakukan ketika Claude Code tidak mengikuti instruksi spec, dan bagaimana Spec Kit membantu mendeteksi dan memperbaiki deviation.

Artikel Terkait

💬 Komentar