Files
GMW/docs/spec-template.md
T

2.7 KiB

Spec: <Judul singkat, aktif, deskriptif>

Status: DRAFT | APPROVED | IN PROGRESS | DONE Date: YYYY-MM-DD Author: <nama/agent> Related: <link ke spec/plan terkait jika ada> Todo: <link ke todo.md untuk tugas ini, jika ada>

Problem

<Deskripsi masalah atau keinginan. Apa yang rusak? Apa yang belum ada? Sebutkan siapa yang melaporkan (user/bot/audit) dan konteksnya. Gunakan evidence: log, error, metrik, atau observasi langsung.>

Root cause

<Analisis teknis mengapa masalah ini terjadi. Jika bug: trace dari symptom ke cause. Jika fitur baru: jelaskan gap saat ini. Referensikan file + line number yang relevan.>

Behavior target

<Deskripsi eksplisit perilaku yang diharapkan setelah fix/fitur. Buat list bernomor. Setiap item harus bisa di-verify.>

Verified facts

Fakta-fakta teknis yang sudah diverifikasi dari pembacaan kode, log produksi, atau eksperimen langsung. Setiap fakta harus citation ke file:line. Jika belum diverifikasi, tulis UNVERIFIED dan rencana verifikasi.

  • path/to/file.ts:42 —
  • path/to/file.ts:88 —
  • Kolom DB table.column — <tipe, constraint, index>
  • Config ENV_VAR default —

Keputusan desain

<Pilihan desain yang dibuat, beserta rationale (mengapa bukan alternatif lain). Format: nomor, judul singkat, penjelasan.>

  1. : <penjelasan + rationale>
    • Alternatif yang ditolak: <apa + mengapa ditolak>

Perubahan file

Daftar semua file yang perlu diubah/ditambah/dihapus, dikelompokkan per service. Untuk setiap file: sebutkan apa yang berubah (bukan copy-paste kode).

Gateway (services/discord-gateway/)

  • src/modules/<module>/<file>.ts —

Backend (services/backend/)

  • src/modules/<module>/<file>.ts —

Frontend (services/frontend/)

  • src/<path>/<file>.ts|tsx —

Database / Config

Schema/type changes

<Perubahan tipe, interface, atau DB schema. Jika tidak ada, tulis "TIDAK ada perubahan.">

Verification

Harus spesifik dan executable. Jangan tulis "works correctly". Tulis command yang bisa dijalankan dan expected outcome.

  • Typecheck: <service> pnpm typecheck — clean
  • Lint: <service> pnpm lint — no errors
  • Build: <service> pnpm build — compiles
  • Test: <service> pnpm test — all pass (+ test baru jika ada)
  • Smoke test: <langkah manual untuk verifikasi visual/behavioral>
  • DB:
  • Deploy: CI green → deploy → cek

Notes (opsional)

<Catatan tambahan: risiko, fallback, future work, atau hal yang sengaja di-scope-out.>