---
name: architecture-thinking
description: Activate BEFORE any system design decision, service boundary definition, database schema change, or technology selection. Ensures human reasoning leads, AI challenges.
---

# Architecture Thinking

## Core Principle
**Keputusan arsitektur adalah keputusan manusia. AI adalah reviewer, bukan arsitek.**

## Iron Law
```
JANGAN FINALISASI KEPUTUSAN ARSITEKTUR YANG TIDAK BISA KAMU JELASKAN TANPA BANTUAN AI
```

## When to Use
- Desain service boundary atau domain boundary
- Pemilihan pattern (clean arch, hexagonal, modular monolith)
- Schema database atau relasi tabel baru
- Pemilihan teknologi (library, queue, cache, dsb)
- API contract design

## The Process

### Step 1: Write Requirements (mandiri)
1. Functional requirements: apa yang sistem harus bisa lakukan?
2. Non-functional: performa, skalabilitas, keamanan, maintainability
3. Constraints: budget infra, team size, deadline

### Step 2: Sketch Solution (mandiri)
Gambar atau tulis draft arsitektur awalmu — diagram, pseudocode, atau deskripsi komponen.
Tidak harus sempurna; yang penting keluarkan ide dulu.

### Step 3: Self-Review Checklist
Sebelum ke AI, jawab sendiri:
- [ ] Apa failure mode utama dari desain ini?
- [ ] Apa bottleneck yang paling mungkin terjadi?
- [ ] Bagaimana cara menskalakan bagian terberat?
- [ ] Apa yang akan sulit diubah 6 bulan ke depan?

### Step 4: AI sebagai Challenger
Prompt template:
```
Ini rancangan arsitekturku untuk [konteks]:
[sketsa/deskripsi]

Jangan ubah dulu. Kritik:
1. Failure modes dan edge cases yang aku lewatkan
2. Bottleneck dan scaling problem
3. Security risk
4. Kapan desain ini tidak cocok?
5. Alternatif yang lebih baik dan trade-off-nya
```

### Step 5: Keputusan Final (manusia)
Keputusan akhir tetap berdasarkan:
- Konteks bisnis yang AI tidak tahu sepenuhnya
- Operational constraint tim
- Bisa dijelaskan ke engineer lain tanpa AI

## Go/Laravel Context
- Go: pertimbangkan concurrency model, interface design, dan dependency injection sebelum tanya AI
- Laravel: pertimbangkan Eloquent vs raw query, queue driver, dan cache strategy sebelum tanya AI
