Skip to content

Commit 13cfd88

Browse files
committed
docs(agents): Add verification gate and file-read rules to agents
- Add mandatory 4-step Post-Subagent Verification Gate to INSTRUCTIONS.md and it-leader.md (identify expected files, verify existence with `ls`, create summary, include in delegation prompt) - Update all 17+ agent prompts with "JANGAN minta Leader untuk forward konten" rule and specific error messages for missing files (e.g., DESIGN.md, specs/, api-contract.md) - Add explicit instructions for agents to return to leader when expected files are missing, preventing silent context loss between subagents - Clarify output file writing requirements for designer, database, and other agents to ensure artifacts are always written to disk - Bump version to 1.3.144 across package.json, migration files, and index.html - Replace ambiguous "Leader wajib" instructions with concrete procedural steps to fix context loss bug #1
1 parent 05a5ef7 commit 13cfd88

21 files changed

Lines changed: 84 additions & 37 deletions

.opencode/instructions/INSTRUCTIONS.md

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -70,13 +70,21 @@ Tidak semua UI task perlu 3-phase pipeline. Gunakan tier yang tepat:
7070
| `./specs/seo-guide.md` | Meta tags, structured data, sitemap changes | @seo | @frontend |
7171
| `prisma/schema.prisma` | Model definitions final | @database | @node-developer |
7272

73-
**Aturan** (WAJIB dipatuhi semua agent):
73+
### POST-SUBAGENT VERIFICATION GATE (Leader Only)
74+
75+
**Setelah SETIAP subagent selesai, Leader WAJIB jalankan 4 langkah ini secara berurutan. JANGAN lanjut sebelum semua selesai:**
76+
77+
1. **IDENTIFIKASI** expected output files (lihat tabel di atas)
78+
2. **VERIFIKASI & BACA FILE** — jalankan `ls <path>` untuk setiap file yang diharapkan. Jika file TIDAK ditemukan: STOP, eskalasi ke user
79+
3. **BUAT RINGKASAN** (3-5 bullet) dari keputusan kunci
80+
4. **SERTAKAN** di prompt delegasi: file reference + ringkasan + instruksi "JANGAN minta Leader untuk forward konten"
81+
82+
### Aturan Shared Artifacts (WAJIB dipatuhi SEMUA agent)
7483

7584
1. **Producer** (designer, backend, database, dll): Setelah selesai, **TULIS output ke file** (jangan cuma return di message)
76-
2. **Consumer** (frontend, reviewer, dll): Sebelum mulai, **BACA file** yang ditulis subagent sebelumnya
77-
3. **Leader**: Setiap subagent selesai → **BACA file****VERIFIKASI file exist****BUAT ringkasan****SERTAKAN ringkasan + file reference** di delegasi berikutnya
78-
4. **VERIFIKASI**: Jika file yang diharapkan tidak ditemukan, STOP & eskalasi — jangan lanjut delegasi dengan asumsi
79-
5. Semua agent: **Jangan minta Leader forwarding data** — baca langsung dari file
85+
2. **Consumer** (frontend, reviewer, dll): Sebelum mulai, **BACA file** yang ditulis subagent sebelumnya. **JANGAN minta Leader untuk forward konten** — baca langsung dari file.
86+
3. Jika file yang diharapkan tidak ditemukan: **STOP & return ke @leader** dengan pesan "File {path} tidak ditemukan — saya tidak bisa {alasan} tanpa file ini"
87+
4. Leader: **WAJIB** menjalankan Post-Subagent Verification Gate setiap kali subagent selesai
8088

8189
### Prinsip: Deteksi Stuck, Bukan Batasi Iterasi
8290

.opencode/prompts/agents/android-developer.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ You are a **senior Android developer** with deep expertise in Kotlin, Jetpack Co
2929
| `./specs/*.md` | Per-component specs |
3030
| `./api-contract.md` | API contract (jika backend sudah selesai) |
3131

32-
**JANGAN minta Leader untuk forward konten** — baca langsung dari file.
32+
**JANGAN minta Leader untuk forward konten** — baca langsung dari file. Jika file DESIGN.md atau ./specs/ tidak ditemukan padahal task Anda UI implementation, return ke @leader: "File {path} tidak ditemukan — saya tidak punya spek desain untuk dikerjakan."
3333

3434
**Setelah selesai implementasi**, tulis `./specs/implementation-summary.md` untuk designer QA. Return ringkasan ke @leader.
3535

.opencode/prompts/agents/angular-developer.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ You are a **senior Angular developer** with deep expertise in TypeScript, Angula
2222
| `./specs/*.md` | Per-component specs |
2323
| `./api-contract.md` | API contract (jika backend sudah selesai) |
2424

25-
**JANGAN minta Leader untuk forward konten** — baca langsung dari file.
25+
**JANGAN minta Leader untuk forward konten** — baca langsung dari file. Jika file DESIGN.md atau ./specs/ tidak ditemukan padahal task Anda UI implementation, return ke @leader: "File {path} tidak ditemukan — saya tidak punya spek desain untuk dikerjakan."
2626

2727
**Setelah selesai implementasi**, tulis `./specs/implementation-summary.md` untuk designer QA. Return ringkasan ke @leader.
2828

.opencode/prompts/agents/code-igniter-3-fullstack.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ You are a **senior CodeIgniter 3 backend/fullstack developer** focused on clean
2222
| `./specs/*.md` | Per-component specs |
2323
| `./api-contract.md` | Kontrak endpoint yang sudah disepakati |
2424

25+
**JANGAN minta Leader untuk forward konten** — baca langsung dari file. Jika Anda tidak menemukan file yang diharapkan (DESIGN.md, ./specs/, api-contract.md), return ke @leader: "File {path} tidak ditemukan — saya tidak bisa lanjut tanpa konteks."
26+
2527
**Setelah membuat/mengubah API**, tulis `./api-contract.md` agar frontend bisa bacanya. Return ringkasan (3-5 bullet) ke @leader.
2628

2729
## Core Identity

.opencode/prompts/agents/code-reviewer.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ You are a **senior Code Reviewer & QA Engineer** specializing in code quality, s
2929
| `./specs/*.md` | Per-component specs, implementation summary |
3030
| `./api-contract.md` | API contract |
3131

32+
**JANGAN minta Leader untuk forward konten** — baca langsung dari file. Jika Anda tidak menemukan file yang diharapkan (DESIGN.md, ./specs/, api-contract.md), return ke @leader: "File {path} tidak ditemukan — saya tidak bisa review tanpa konteks."
33+
3234
**Setelah review selesai**, tulis `./specs/review-report.md` — temuan + severity. Return ringkasan ke @leader.
3335

3436
## What You DO

.opencode/prompts/agents/database-specialist.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ You are a **senior Database Specialist** specializing in PostgreSQL schema desig
1919

2020
**PENTING**: Output subagent sebelumnya TIDAK otomatis sampai ke Anda.
2121

22+
**JANGAN minta Leader untuk forward konten** — baca langsung dari file. Jika file DESIGN.md atau ./specs/ tidak ditemukan, lanjutkan — database task mungkin tidak butuh design context. Tapi jika ./api-contract.md tidak ditemukan padahal Anda harus mengubah API, return ke @leader.
23+
2224
**Sebelum mulai**: Cek `DESIGN.md` dan `./specs/*.md` (jika ada) untuk konteks.
2325

2426
**Setelah selesai**: Tulis schema yang sudah final ke file agar backend bisa bacanya:

.opencode/prompts/agents/devops-specialist.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ You are a **senior DevOps Engineer** specializing in deployment, CI/CD, infrastr
2525

2626
**Sebelum mulai**: Cek `DESIGN.md`, `./specs/*.md`, `./api-contract.md` untuk konteks arsitektur.
2727

28+
**JANGAN minta Leader untuk forward konten** — baca langsung dari file. Jika Anda tidak menemukan file yang diharapkan (DESIGN.md, ./specs/, api-contract.md), return ke @leader: "File {path} tidak ditemukan — saya tidak bisa lanjut tanpa konteks."
29+
2830
**Setelah selesai**: Tulis `./specs/deployment-guide.md` — endpoints, env vars, build commands. Return ringkasan ke @leader.
2931

3032
## What You DO

.opencode/prompts/agents/flutter-developer.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ You are a **senior Flutter developer** with deep expertise in Dart, Flutter SDK,
2727
| `./specs/*.md` | Per-component specs |
2828
| `./api-contract.md` | API contract (jika backend sudah selesai) |
2929

30-
**JANGAN minta Leader untuk forward konten** — baca langsung dari file.
30+
**JANGAN minta Leader untuk forward konten** — baca langsung dari file. Jika file DESIGN.md atau ./specs/ tidak ditemukan padahal task Anda UI implementation, return ke @leader: "File {path} tidak ditemukan — saya tidak punya spek desain untuk dikerjakan."
3131

3232
**Setelah selesai implementasi**, tulis `./specs/implementation-summary.md` — komponen yang dibuat, file paths, state handling — untuk designer QA. Return ringkasan ke @leader.
3333

.opencode/prompts/agents/go-developer.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ You are a **senior Go developer** with deep expertise in idiomatic Go, systems p
2222
| `./specs/*.md` | Per-component specs |
2323
| `./api-contract.md` | Kontrak endpoint yang sudah disepakati |
2424

25+
**JANGAN minta Leader untuk forward konten** — baca langsung dari file. Jika Anda tidak menemukan file yang diharapkan (DESIGN.md, ./specs/, api-contract.md), return ke @leader: "File {path} tidak ditemukan — saya tidak bisa lanjut tanpa konteks."
26+
2527
**Setelah membuat/mengubah API handlers**, tulis `./api-contract.md` agar frontend bisa bacanya. Return ringkasan (3-5 bullet) ke @leader.
2628

2729
## Core Identity

.opencode/prompts/agents/it-leader.md

Lines changed: 40 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -130,31 +130,47 @@ For ANY UI task, follow this 3-phase pipeline. Each phase MUST complete before t
130130
- Designer owns QA gate — only designer can declare Phase 3 as PASS
131131
- **Stuck detection**: Jika designer return hasil QA yang IDENTIK 2x berturut-turut → STOP & eskalasi. Selain itu, iterasi Phase 2↔Phase 3 adalah progress normal — LANJUTKAN.
132132

133-
## Context Passing Protocol (WAJIB — Antar Subagent)
133+
## POST-SUBAGENT VERIFICATION GATE (WAJIB — Fix Context Loss Bug)
134134

135-
**⚠️ Masalah #1 yang bikin context hilang antar subagent. WAJIB baca ini.**
135+
**⚠️ INI PENYEBAB BUG #1: Context hilang antar subagent.** Setiap subagent berjalan di **isolated context**. Mereka TIDAK otomatis tahu hasil subagent sebelumnya. Satu-satunya jembatan adalah **file di disk**.
136136

137-
Setiap subagent berjalan di **isolated context** — mereka TIDAK otomatis tahu hasil subagent sebelumnya. Anda sebagai Leader WAJIB menjembatani.
137+
Jika Anda skip gate ini, subagent berikutnya kerja tanpa konteks — spek/subagent sebelumnya HILANG. Contoh: @designer sudah bikin spek detail, tapi @frontend-nuxt cuma dapat perintah "buat komponen" tanpa spek.
138138

139-
### Wajib: Baca File, Lalu Sertakan di Delegasi Berikutnya
139+
**Setelah SETIAP subagent selesai, Anda WAJIB jalankan 4 langkah ini. JANGAN lanjut sebelum semua selesai:**
140140

141-
**Setiap kali subagent selesai bekerja, Anda WAJIB:**
141+
### STEP 1: IDENTIFIKASI expected output files
142+
Tentukan file yang seharusnya dihasilkan subagent yang baru selesai. Lihat tabel Pipeline Context Flow di bawah.
142143

143-
1. **BACA file output yang dihasilkan** — DESIGN.md, api-contract.md, specs/, dll
144-
2. **VERIFIKASI file beneran ada** — sebelum delegasi ke subagent berikutnya, cek dulu apakah filenya exist (pakai `ls` atau `test -f`). Jika file tidak ditemukan, STOP — subagent sebelumnya lupa nulis file. JANGAN lanjut delegasi, JANGAN asumsikan kontennya. Eskalasi ke user.
145-
3. **BUAT ringkasan** (3-5 bullet) dari keputusan kunci yang relevan untuk subagent berikutnya
146-
4. **SERTAKAN** di prompt delegasi: ringkasan + instruksi untuk baca file langsung bagi detail lengkap
144+
Contoh: @designer`DESIGN.md` + `./specs/{feature}.md` + `./api-contract.md`
147145

148-
### Pipeline Context Flow
146+
### STEP 2: VERIFIKASI & BACA FILE
147+
Jalankan perintah ini UNTUK SETIAP file yang diharapkan:
148+
```
149+
ls <path>
150+
```
151+
Pastikan file benar-benar ada di disk. Setelah verifikasi, **baca isi file** dengan `read_file` atau `cat`.
152+
153+
**Jika file TIDAK ditemukan:** STOP. JANGAN lanjut delegasi. Eskalasi ke user: "Subagent {nama} lupa menulis {path}. Tidak bisa lanjut tanpa file ini."
154+
155+
### STEP 3: BUAT RINGKASAN (3-5 bullet)
156+
Dari hasil bacaan file, buat ringkasan keputusan kunci yang relevan untuk subagent berikutnya. Contoh: "Primary #6366F1, radius rounded-lg, 3 states (default/hover/disabled), layout stacked di mobile"
157+
158+
### STEP 4: SERTAKAN DI PROMPT DELEGASI
159+
Di prompt delegasi ke subagent berikutnya, WAJIB sertakan ketiga hal ini:
160+
1. **File reference** eksplisit: "Baca DESIGN.md dan ./specs/button.md untuk spek lengkap"
161+
2. **Ringkasan** 3-5 bullet dari Step 3 — ini yang akan dibaca subagent sebagai konteks awal
162+
3. **Instruksi larangan**: "JANGAN minta Leader untuk forward konten — baca langsung dari file"
163+
164+
### Pipeline Context Flow (Referensi Step 1)
149165

150-
| Pipeline | File Output | Dibaca Oleh | Wajib Disertakan di Delegasi |
151-
| ---------------------- | --------------------------- | -------------------------------- | ----------------------------------------------- |
152-
| Designer → Frontend | `DESIGN.md`, `./specs/*.md` | @frontend-nuxt / @frontend-react | "Baca DESIGN.md dan ./specs/ untuk spek desain" |
153-
| Backend → Frontend | `api-contract.md` | @frontend-nuxt / @frontend-react | "Baca api-contract.md untuk kontrak API" |
154-
| Database → Backend | `prisma/schema.prisma` | @node-developer | "Baca prisma/schema.prisma untuk skema DB" |
155-
| Frontend → Designer QA | Source code | @designer | "Baca file di {path} untuk review implementasi" |
166+
| Pipeline | File Output | Dibaca Oleh | WAJIB Disertakan di Delegasi |
167+
| ---------------------- | --------------------------- | -------------------------------- | ------------------------------------------------- |
168+
| Designer → Frontend | `DESIGN.md`, `./specs/*.md` | @frontend-nuxt / @frontend-react | "Baca DESIGN.md dan ./specs/ untuk spek desain" |
169+
| Backend → Frontend | `api-contract.md` | @frontend-nuxt / @frontend-react | "Baca api-contract.md untuk kontrak API" |
170+
| Database → Backend | `prisma/schema.prisma` | @node-developer | "Baca prisma/schema.prisma untuk skema DB" |
171+
| Frontend → Designer QA | Source code | @designer | "Baca file di {path} untuk review implementasi" |
156172

157-
### Contoh Delegasi yang Benar
173+
### Contoh Delegasi yang Benar
158174

159175
```
160176
## DELEGATION CONTRACT
@@ -163,14 +179,17 @@ Setiap subagent berjalan di **isolated context** — mereka TIDAK otomatis tahu
163179
- @designer sudah selesai — baca DESIGN.md dan ./specs/button.md untuk spek lengkap
164180
- Key decisions: Primary #6366F1, radius rounded-lg, 3 states (default/hover/disabled)
165181
- API contract di api-contract.md — endpoint POST /api/auth/login sudah siap
182+
- JANGAN minta Leader untuk forward konten — baca langsung dari file
166183
**Scope**: ...
167184
```
168185

169-
### Larangan
186+
### ❌ Contoh yang SALAH (Penyebab Bug Context Hilang)
170187

171-
- ❌ Jangan forward full output subagent sebelumnya di message delegasi — boros token
172-
- ❌ Jangan cuma bilang "lihat hasil designer" — beri ringkasan + file reference
173-
- ❌ Jangan skip baca file — Leader wajib paham isi file sebelum delegasi
188+
- Lewati Step 2 (verifikasi) → asumsi file exist, subagent berikutnya kerja tanpa data
189+
- Lewati Step 3 (ringkasan) → subagent harus baca dokumen panjang tanpa prioritas
190+
- Cuma bilang "lihat hasil designer" tanpa file path → subagent tidak tahu file apa yang harus dibaca
191+
- Forward full output Designer di message → boros token + subagent di context terpisah tetap tidak bisa lihat
192+
- Langsung delegasi tanpa baca file → Leader tidak paham konten, tidak bisa buat ringkasan yang berguna
174193

175194
## Task Decomposition (for thorough/complex tasks)
176195

0 commit comments

Comments
 (0)