@warnyin/agents 0.4.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/commands/warnyin/build.md +29 -29
- package/.claude/commands/warnyin/design.md +24 -24
- package/.claude/commands/warnyin/discovery.md +17 -17
- package/.claude/commands/warnyin/explore.md +14 -0
- package/.claude/commands/warnyin/init.md +1 -1
- package/.claude/commands/warnyin/next.md +16 -0
- package/.claude/commands/warnyin/verify.md +19 -19
- package/AGENTS.md +48 -38
- package/CLAUDE.md +40 -38
- package/package.json +1 -1
- package/warnyin/installer/templates/CLAUDE.md +2 -0
- package/warnyin/template/stages/[topic]/build.md +58 -58
- package/warnyin/template/stages/[topic]/business.md +21 -21
- package/warnyin/template/stages/[topic]/design.md +42 -42
- package/warnyin/template/stages/[topic]/discovery.md +69 -69
- package/warnyin/template/stages/[topic]/proposal.md +43 -43
- package/warnyin/template/stages/[topic]/research.md +49 -49
- package/warnyin/template/stages/[topic]/tasks/[task-name]/rule.md +13 -13
- package/warnyin/template/stages/[topic]/tasks/[task-name]/spec.md +36 -36
- package/warnyin/template/stages/[topic]/tasks/[task-name]/standard.md +21 -21
- package/warnyin/template/stages/[topic]/tasks/[task-name]/task.md +39 -39
- package/warnyin/template/stages/[topic]/test.md +46 -46
- package/warnyin/template/stages/[topic]/troubleshooting.md +34 -34
- package/warnyin/template/stages/[topic]/verify.md +44 -44
- package/warnyin/workflow/README.md +94 -92
- package/warnyin/workflow/explore.md +32 -0
- package/warnyin/workflow/init.md +45 -4
- package/warnyin/workflow/next.md +47 -0
- package/warnyin/workflow/scripts/build-wave.mjs +107 -107
- package/warnyin/workflow/stages/build.md +94 -94
- package/warnyin/workflow/stages/design.md +116 -116
- package/warnyin/workflow/stages/discovery.md +77 -77
- package/warnyin/workflow/stages/verify.md +71 -71
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
# Task — <ชื่อ task>
|
|
2
|
-
|
|
3
|
-
> Output ของ DESIGN stage · playbook: `warnyin/workflow/stages/design.md`
|
|
4
|
-
> หน่วยที่ **โยนให้ sub-agent ทำใน BUILD ได้** — self-contained แต่เชื่อมกับ task อื่นผ่าน dependency
|
|
5
|
-
|
|
6
|
-
| | |
|
|
7
|
-
|---|---|
|
|
8
|
-
| **Task** | `<kebab-case>` |
|
|
9
|
-
| **Slice อ้างอิง** | `design.md` slice #__ |
|
|
10
|
-
| **Component** | `admin-console` / `api-service` / ... |
|
|
11
|
-
| **สถานะ** | `รอ build` / `กำลังทำ` / `เสร็จ` |
|
|
12
|
-
|
|
13
|
-
## 1. เป้าหมายของ task (vertical slice)
|
|
14
|
-
> task นี้ส่งมอบคุณค่า end-to-end อะไร
|
|
15
|
-
|
|
16
|
-
## 2. Dependency (เชื่อมต่อกับ task อื่น)
|
|
17
|
-
- ต้องทำหลัง: `tasks/<...>` (เพราะ ...)
|
|
18
|
-
- ปลดล็อกให้: `tasks/<...>`
|
|
19
|
-
- ส่ง output อะไรต่อให้ task ถัดไป:
|
|
20
|
-
|
|
21
|
-
## 3. Sub-tasks (แตกย่อยถ้าซับซ้อน)
|
|
22
|
-
> sub-task ต้องเชื่อมต่อกัน — ระบุลำดับ/สิ่งที่ส่งต่อกัน
|
|
23
|
-
|
|
24
|
-
- [ ] 1. <sub-task> — _ผลลัพธ์:_
|
|
25
|
-
- [ ] 2. <sub-task> — _ขึ้นกับ 1:_
|
|
26
|
-
- [ ] 3. <sub-task>
|
|
27
|
-
|
|
28
|
-
## 4. ขอบเขตไฟล์/โค้ดที่จะแตะ
|
|
29
|
-
- ไฟล์/โมดูล:
|
|
30
|
-
|
|
31
|
-
## 5. Acceptance criteria (เกณฑ์ว่า task เสร็จ)
|
|
32
|
-
- [ ]
|
|
33
|
-
- [ ] ผ่าน test ตาม `spec.md` (test-flow)
|
|
34
|
-
- [ ] ทำตาม `rule.md` และ `standard.md`
|
|
35
|
-
|
|
36
|
-
## 6. อ้างอิงในโฟลเดอร์ task นี้
|
|
37
|
-
- Spec: `./spec.md`
|
|
38
|
-
- Standard (pattern โค้ด): `./standard.md`
|
|
39
|
-
- Rule ที่ต้อง follow: `./rule.md`
|
|
1
|
+
# Task — <ชื่อ task>
|
|
2
|
+
|
|
3
|
+
> Output ของ DESIGN stage · playbook: `warnyin/workflow/stages/design.md`
|
|
4
|
+
> หน่วยที่ **โยนให้ sub-agent ทำใน BUILD ได้** — self-contained แต่เชื่อมกับ task อื่นผ่าน dependency
|
|
5
|
+
|
|
6
|
+
| | |
|
|
7
|
+
|---|---|
|
|
8
|
+
| **Task** | `<kebab-case>` |
|
|
9
|
+
| **Slice อ้างอิง** | `design.md` slice #__ |
|
|
10
|
+
| **Component** | `admin-console` / `api-service` / ... |
|
|
11
|
+
| **สถานะ** | `รอ build` / `กำลังทำ` / `เสร็จ` |
|
|
12
|
+
|
|
13
|
+
## 1. เป้าหมายของ task (vertical slice)
|
|
14
|
+
> task นี้ส่งมอบคุณค่า end-to-end อะไร
|
|
15
|
+
|
|
16
|
+
## 2. Dependency (เชื่อมต่อกับ task อื่น)
|
|
17
|
+
- ต้องทำหลัง: `tasks/<...>` (เพราะ ...)
|
|
18
|
+
- ปลดล็อกให้: `tasks/<...>`
|
|
19
|
+
- ส่ง output อะไรต่อให้ task ถัดไป:
|
|
20
|
+
|
|
21
|
+
## 3. Sub-tasks (แตกย่อยถ้าซับซ้อน)
|
|
22
|
+
> sub-task ต้องเชื่อมต่อกัน — ระบุลำดับ/สิ่งที่ส่งต่อกัน
|
|
23
|
+
|
|
24
|
+
- [ ] 1. <sub-task> — _ผลลัพธ์:_
|
|
25
|
+
- [ ] 2. <sub-task> — _ขึ้นกับ 1:_
|
|
26
|
+
- [ ] 3. <sub-task>
|
|
27
|
+
|
|
28
|
+
## 4. ขอบเขตไฟล์/โค้ดที่จะแตะ
|
|
29
|
+
- ไฟล์/โมดูล:
|
|
30
|
+
|
|
31
|
+
## 5. Acceptance criteria (เกณฑ์ว่า task เสร็จ)
|
|
32
|
+
- [ ]
|
|
33
|
+
- [ ] ผ่าน test ตาม `spec.md` (test-flow)
|
|
34
|
+
- [ ] ทำตาม `rule.md` และ `standard.md`
|
|
35
|
+
|
|
36
|
+
## 6. อ้างอิงในโฟลเดอร์ task นี้
|
|
37
|
+
- Spec: `./spec.md`
|
|
38
|
+
- Standard (pattern โค้ด): `./standard.md`
|
|
39
|
+
- Rule ที่ต้อง follow: `./rule.md`
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
# Test Plan — <ชื่อ change>
|
|
2
|
-
|
|
3
|
-
> Output ของ VERIFY stage · playbook: `warnyin/workflow/stages/verify.md`
|
|
4
|
-
> แผน/วิธีเทสของ topic นี้ — ตอน **SHIP** จะ merge เข้า `docs/techstack/<component>/test.md`
|
|
5
|
-
> อิง guideline จาก `docs/techstack/<component>/test.md` (ถ้าไม่มี = เสนอวิธีใหม่ที่นี่)
|
|
6
|
-
|
|
7
|
-
| | |
|
|
8
|
-
|---|---|
|
|
9
|
-
| **Slug** | `<kebab-case>` |
|
|
10
|
-
| **Component** | `api-service` / `admin-console` |
|
|
11
|
-
| **จุดประสงค์ที่ต้อง verify** | (สรุปจาก spec/tasks) |
|
|
12
|
-
|
|
13
|
-
## 1. ขอบเขตการเทส (ตามจุดประสงค์ topic)
|
|
14
|
-
- สิ่งที่ต้องยืนยันว่าทำงานถูก:
|
|
15
|
-
|
|
16
|
-
## 2. ชนิดการเทส
|
|
17
|
-
- [ ] Functional (ตาม test-flow ใน `tasks/*/spec.md`)
|
|
18
|
-
- [ ] E2E smoke — เครื่องมือ: `playwright-cli` (ถ้าเป็น FE)
|
|
19
|
-
- [ ] Integration / API
|
|
20
|
-
- [ ] UX/UI verify (ถ้าเป็น FE)
|
|
21
|
-
- [ ] อื่นๆ:
|
|
22
|
-
|
|
23
|
-
## 3. Local env ที่ต้องรัน (จาก `docs/infra.md`)
|
|
24
|
-
| Service | คำสั่งรัน | port / หมายเหตุ |
|
|
25
|
-
|---|---|---|
|
|
26
|
-
| | | |
|
|
27
|
-
|
|
28
|
-
## 4. Test cases
|
|
29
|
-
| # | สถานการณ์ (อิงจุดประสงค์) | ขั้นตอน | ผลที่คาดหวัง |
|
|
30
|
-
|---|---|---|---|
|
|
31
|
-
| 1 | | | |
|
|
32
|
-
|
|
33
|
-
## 5. E2E smoke (FE)
|
|
34
|
-
- flow ที่ smoke:
|
|
35
|
-
- คำสั่ง playwright-cli:
|
|
36
|
-
|
|
37
|
-
## 6. UX/UI checklist (FE)
|
|
38
|
-
- [ ] layout ตรงตาม spec/wireframe
|
|
39
|
-
- [ ] states: loading / empty / error / success
|
|
40
|
-
- [ ] responsive
|
|
41
|
-
- [ ] interaction / user-flow ลื่นไหล
|
|
42
|
-
|
|
43
|
-
## 7. วิธีรันเทส (reproducible)
|
|
44
|
-
```
|
|
45
|
-
<คำสั่ง / ขั้นตอน>
|
|
46
|
-
```
|
|
1
|
+
# Test Plan — <ชื่อ change>
|
|
2
|
+
|
|
3
|
+
> Output ของ VERIFY stage · playbook: `warnyin/workflow/stages/verify.md`
|
|
4
|
+
> แผน/วิธีเทสของ topic นี้ — ตอน **SHIP** จะ merge เข้า `docs/techstack/<component>/test.md`
|
|
5
|
+
> อิง guideline จาก `docs/techstack/<component>/test.md` (ถ้าไม่มี = เสนอวิธีใหม่ที่นี่)
|
|
6
|
+
|
|
7
|
+
| | |
|
|
8
|
+
|---|---|
|
|
9
|
+
| **Slug** | `<kebab-case>` |
|
|
10
|
+
| **Component** | `api-service` / `admin-console` |
|
|
11
|
+
| **จุดประสงค์ที่ต้อง verify** | (สรุปจาก spec/tasks) |
|
|
12
|
+
|
|
13
|
+
## 1. ขอบเขตการเทส (ตามจุดประสงค์ topic)
|
|
14
|
+
- สิ่งที่ต้องยืนยันว่าทำงานถูก:
|
|
15
|
+
|
|
16
|
+
## 2. ชนิดการเทส
|
|
17
|
+
- [ ] Functional (ตาม test-flow ใน `tasks/*/spec.md`)
|
|
18
|
+
- [ ] E2E smoke — เครื่องมือ: `playwright-cli` (ถ้าเป็น FE)
|
|
19
|
+
- [ ] Integration / API
|
|
20
|
+
- [ ] UX/UI verify (ถ้าเป็น FE)
|
|
21
|
+
- [ ] อื่นๆ:
|
|
22
|
+
|
|
23
|
+
## 3. Local env ที่ต้องรัน (จาก `docs/infra.md`)
|
|
24
|
+
| Service | คำสั่งรัน | port / หมายเหตุ |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| | | |
|
|
27
|
+
|
|
28
|
+
## 4. Test cases
|
|
29
|
+
| # | สถานการณ์ (อิงจุดประสงค์) | ขั้นตอน | ผลที่คาดหวัง |
|
|
30
|
+
|---|---|---|---|
|
|
31
|
+
| 1 | | | |
|
|
32
|
+
|
|
33
|
+
## 5. E2E smoke (FE)
|
|
34
|
+
- flow ที่ smoke:
|
|
35
|
+
- คำสั่ง playwright-cli:
|
|
36
|
+
|
|
37
|
+
## 6. UX/UI checklist (FE)
|
|
38
|
+
- [ ] layout ตรงตาม spec/wireframe
|
|
39
|
+
- [ ] states: loading / empty / error / success
|
|
40
|
+
- [ ] responsive
|
|
41
|
+
- [ ] interaction / user-flow ลื่นไหล
|
|
42
|
+
|
|
43
|
+
## 7. วิธีรันเทส (reproducible)
|
|
44
|
+
```
|
|
45
|
+
<คำสั่ง / ขั้นตอน>
|
|
46
|
+
```
|
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
# Troubleshooting — <ชื่อ change>
|
|
2
|
-
|
|
3
|
-
> Log ปัญหา **ยาก/ซ้ำ** ที่เจอระหว่างทำงาน topic นี้ (ส่วนใหญ่ตอน BUILD) แล้วแก้สำเร็จ
|
|
4
|
-
> ตอน **SHIP** จะยกรายการที่มีค่าขึ้นไปรวมที่ KB กลาง `docs/troubleshooting.md`
|
|
5
|
-
> เจอปัญหาใหม่ → อ่าน `docs/troubleshooting.md` ก่อนเสมอ เผื่อเคยแก้แล้ว
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## วิธีบันทึก
|
|
10
|
-
บันทึกเฉพาะปัญหาที่ **ยากจะแก้** หรือ **เจอซ้ำ** (ไม่ใช่ทุก error เล็กน้อย) — หนึ่งปัญหา = หนึ่ง entry
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
### TS-1: <ชื่อปัญหาสั้นๆ>
|
|
15
|
-
| | |
|
|
16
|
-
|---|---|
|
|
17
|
-
| **วันที่** | `YYYY-MM-DD` |
|
|
18
|
-
| **Component / Task** | `api-service` / `tasks/<task>` |
|
|
19
|
-
| **ความถี่** | เจอครั้งเดียว (ยากมาก) / เจอซ้ำ __ ครั้ง |
|
|
20
|
-
| **ยกขึ้น KB กลางตอน SHIP?** | ✅ / ❌ |
|
|
21
|
-
|
|
22
|
-
- **อาการ / error message:**
|
|
23
|
-
```
|
|
24
|
-
<paste error>
|
|
25
|
-
```
|
|
26
|
-
- **บริบทที่ทำให้เกิด (trigger):**
|
|
27
|
-
- **สาเหตุที่แท้จริง (root cause):**
|
|
28
|
-
- **วิธีแก้ที่ได้ผล (solution):**
|
|
29
|
-
- **วิธีสังเกต/ป้องกันไม่ให้เกิดซ้ำ:**
|
|
30
|
-
|
|
31
|
-
---
|
|
32
|
-
|
|
33
|
-
### TS-2: <...>
|
|
34
|
-
> (คัดลอกบล็อกด้านบน)
|
|
1
|
+
# Troubleshooting — <ชื่อ change>
|
|
2
|
+
|
|
3
|
+
> Log ปัญหา **ยาก/ซ้ำ** ที่เจอระหว่างทำงาน topic นี้ (ส่วนใหญ่ตอน BUILD) แล้วแก้สำเร็จ
|
|
4
|
+
> ตอน **SHIP** จะยกรายการที่มีค่าขึ้นไปรวมที่ KB กลาง `docs/troubleshooting.md`
|
|
5
|
+
> เจอปัญหาใหม่ → อ่าน `docs/troubleshooting.md` ก่อนเสมอ เผื่อเคยแก้แล้ว
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## วิธีบันทึก
|
|
10
|
+
บันทึกเฉพาะปัญหาที่ **ยากจะแก้** หรือ **เจอซ้ำ** (ไม่ใช่ทุก error เล็กน้อย) — หนึ่งปัญหา = หนึ่ง entry
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
### TS-1: <ชื่อปัญหาสั้นๆ>
|
|
15
|
+
| | |
|
|
16
|
+
|---|---|
|
|
17
|
+
| **วันที่** | `YYYY-MM-DD` |
|
|
18
|
+
| **Component / Task** | `api-service` / `tasks/<task>` |
|
|
19
|
+
| **ความถี่** | เจอครั้งเดียว (ยากมาก) / เจอซ้ำ __ ครั้ง |
|
|
20
|
+
| **ยกขึ้น KB กลางตอน SHIP?** | ✅ / ❌ |
|
|
21
|
+
|
|
22
|
+
- **อาการ / error message:**
|
|
23
|
+
```
|
|
24
|
+
<paste error>
|
|
25
|
+
```
|
|
26
|
+
- **บริบทที่ทำให้เกิด (trigger):**
|
|
27
|
+
- **สาเหตุที่แท้จริง (root cause):**
|
|
28
|
+
- **วิธีแก้ที่ได้ผล (solution):**
|
|
29
|
+
- **วิธีสังเกต/ป้องกันไม่ให้เกิดซ้ำ:**
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
### TS-2: <...>
|
|
34
|
+
> (คัดลอกบล็อกด้านบน)
|
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
# Verify Report — <ชื่อ change>
|
|
2
|
-
|
|
3
|
-
> Output ของ VERIFY stage · playbook: `warnyin/workflow/stages/verify.md`
|
|
4
|
-
> สรุปผลการ verify ตามจุดประสงค์ของ topic + การแก้ไขที่เกิดขึ้น
|
|
5
|
-
|
|
6
|
-
| | |
|
|
7
|
-
|---|---|
|
|
8
|
-
| **Slug** | `<kebab-case>` |
|
|
9
|
-
| **วันที่** | `YYYY-MM-DD` |
|
|
10
|
-
| **ผลรวม** | ผ่าน / ไม่ผ่าน |
|
|
11
|
-
| **จำนวนรอบการแก้ไข (fix iterations)** | __ รอบ |
|
|
12
|
-
| **จำนวนจุดที่แก้** | __ จุด |
|
|
13
|
-
|
|
14
|
-
## 1. จุดประสงค์ที่ verify (จาก spec/tasks)
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
## 2. ผลการเทส
|
|
18
|
-
| # | Test case / flow | ชนิด | ผล | หมายเหตุ |
|
|
19
|
-
|---|---|---|---|---|
|
|
20
|
-
| 1 | | functional / e2e / uxui | ✅ / ❌→✅ (แก้แล้ว) | |
|
|
21
|
-
|
|
22
|
-
## 3. UX/UI verify (ถ้าเป็น FE)
|
|
23
|
-
- [ ] layout / states / responsive / user-flow — ผล:
|
|
24
|
-
|
|
25
|
-
## 4. รายการแก้ไข (สรุปการแก้ระหว่าง verify)
|
|
26
|
-
> นับรวมเป็น "จำนวนการแก้ไข" ด้านบน
|
|
27
|
-
|
|
28
|
-
| รอบ | ปัญหาที่เจอ | วิธีแก้ | ไฟล์ที่แก้ |
|
|
29
|
-
|---|---|---|---|
|
|
30
|
-
| 1 | | | |
|
|
31
|
-
|
|
32
|
-
## 5. ปัญหายาก/ซ้ำ → troubleshooting
|
|
33
|
-
- บันทึกไว้ที่ `./troubleshooting.md` (SHIP ยกขึ้น `docs/troubleshooting.md`): มี/ไม่มี
|
|
34
|
-
|
|
35
|
-
## 6. หมายเหตุถึง user (ถ้าถามระหว่างทาง)
|
|
36
|
-
> กรณีวนแก้นาน/หลายรอบ แล้วถาม user — สรุปคำถาม/คำตอบ/การตัดสินใจ
|
|
37
|
-
-
|
|
38
|
-
|
|
39
|
-
## ✅ Gate → SHIP (ดู `warnyin/workflow/stages/verify.md` ข้อ 6)
|
|
40
|
-
- [ ] เทสตามจุดประสงค์ครบ (functional)
|
|
41
|
-
- [ ] FE: UX/UI verify ผ่าน
|
|
42
|
-
- [ ] ทุกข้อที่ไม่ผ่านถูกแก้จนผ่าน
|
|
43
|
-
- [ ] test.md + verify.md เขียนครบ
|
|
44
|
-
- [ ] ปัญหายากบันทึก troubleshooting.md แล้ว
|
|
1
|
+
# Verify Report — <ชื่อ change>
|
|
2
|
+
|
|
3
|
+
> Output ของ VERIFY stage · playbook: `warnyin/workflow/stages/verify.md`
|
|
4
|
+
> สรุปผลการ verify ตามจุดประสงค์ของ topic + การแก้ไขที่เกิดขึ้น
|
|
5
|
+
|
|
6
|
+
| | |
|
|
7
|
+
|---|---|
|
|
8
|
+
| **Slug** | `<kebab-case>` |
|
|
9
|
+
| **วันที่** | `YYYY-MM-DD` |
|
|
10
|
+
| **ผลรวม** | ผ่าน / ไม่ผ่าน |
|
|
11
|
+
| **จำนวนรอบการแก้ไข (fix iterations)** | __ รอบ |
|
|
12
|
+
| **จำนวนจุดที่แก้** | __ จุด |
|
|
13
|
+
|
|
14
|
+
## 1. จุดประสงค์ที่ verify (จาก spec/tasks)
|
|
15
|
+
-
|
|
16
|
+
|
|
17
|
+
## 2. ผลการเทส
|
|
18
|
+
| # | Test case / flow | ชนิด | ผล | หมายเหตุ |
|
|
19
|
+
|---|---|---|---|---|
|
|
20
|
+
| 1 | | functional / e2e / uxui | ✅ / ❌→✅ (แก้แล้ว) | |
|
|
21
|
+
|
|
22
|
+
## 3. UX/UI verify (ถ้าเป็น FE)
|
|
23
|
+
- [ ] layout / states / responsive / user-flow — ผล:
|
|
24
|
+
|
|
25
|
+
## 4. รายการแก้ไข (สรุปการแก้ระหว่าง verify)
|
|
26
|
+
> นับรวมเป็น "จำนวนการแก้ไข" ด้านบน
|
|
27
|
+
|
|
28
|
+
| รอบ | ปัญหาที่เจอ | วิธีแก้ | ไฟล์ที่แก้ |
|
|
29
|
+
|---|---|---|---|
|
|
30
|
+
| 1 | | | |
|
|
31
|
+
|
|
32
|
+
## 5. ปัญหายาก/ซ้ำ → troubleshooting
|
|
33
|
+
- บันทึกไว้ที่ `./troubleshooting.md` (SHIP ยกขึ้น `docs/troubleshooting.md`): มี/ไม่มี
|
|
34
|
+
|
|
35
|
+
## 6. หมายเหตุถึง user (ถ้าถามระหว่างทาง)
|
|
36
|
+
> กรณีวนแก้นาน/หลายรอบ แล้วถาม user — สรุปคำถาม/คำตอบ/การตัดสินใจ
|
|
37
|
+
-
|
|
38
|
+
|
|
39
|
+
## ✅ Gate → SHIP (ดู `warnyin/workflow/stages/verify.md` ข้อ 6)
|
|
40
|
+
- [ ] เทสตามจุดประสงค์ครบ (functional)
|
|
41
|
+
- [ ] FE: UX/UI verify ผ่าน
|
|
42
|
+
- [ ] ทุกข้อที่ไม่ผ่านถูกแก้จนผ่าน
|
|
43
|
+
- [ ] test.md + verify.md เขียนครบ
|
|
44
|
+
- [ ] ปัญหายากบันทึก troubleshooting.md แล้ว
|
|
@@ -1,92 +1,94 @@
|
|
|
1
|
-
# Warnyin Standard Workflow
|
|
2
|
-
|
|
3
|
-
มาตรฐานกลางของ "วิธีทำงาน" (ways of work) สำหรับทุกโปรเจกต์ — สร้างทีม ผลิตผลงานคุณภาพ และเร็ว
|
|
4
|
-
โดยเดินผ่าน 5 stage:
|
|
5
|
-
|
|
6
|
-
```
|
|
7
|
-
Discovery (optional) ──▶ DESIGN ──▶ BUILD ──▶ VERIFY ──▶ SHIP
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
แต่ละ stage มี **playbook กลางหนึ่งชุด** เป็น single source of truth ที่ AI ทุกเจ้าอ่านเหมือนกัน
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## หลักการออกแบบ: Tool-agnostic, single source of truth
|
|
15
|
-
|
|
16
|
-
แก่นของ workflow (กฎ / ขั้นตอน / เกณฑ์ผ่าน) เขียน **ครั้งเดียว** เป็น markdown ใน `warnyin/workflow/stages/`
|
|
17
|
-
ส่วน AI แต่ละเครื่องมีแค่ **adapter บางๆ** ที่ "ชี้กลับ" มาที่ playbook กลางชุดเดียวกัน
|
|
18
|
-
|
|
19
|
-
| AI tool | Adapter (จุดเชื่อม) | อ่าน playbook จาก |
|
|
20
|
-
|---|---|---|
|
|
21
|
-
| **Claude Code** | `.claude/commands/*.md` + `CLAUDE.md` | `warnyin/workflow/stages/*.md` |
|
|
22
|
-
| **Codex** | `AGENTS.md` | `warnyin/workflow/stages/*.md` |
|
|
23
|
-
| **Antigravity** | `AGENTS.md` | `warnyin/workflow/stages/*.md` |
|
|
24
|
-
| เครื่องอื่นๆ | ชี้มาที่ `warnyin/workflow/stages/` ได้ทันที | `warnyin/workflow/stages/*.md` |
|
|
25
|
-
|
|
26
|
-
> แก้กฎที่ `warnyin/workflow/stages/` ที่เดียว → ทุกเครื่องได้เหมือนกันทันที
|
|
27
|
-
> เพิ่ม AI เจ้าใหม่ = เพิ่ม adapter บางๆ อีกหนึ่งไฟล์ ไม่ต้องแตะ logic
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## โครงสร้าง repo
|
|
32
|
-
|
|
33
|
-
```
|
|
34
|
-
bin/cli.mjs # npx installer — ติดตั้ง workflow ลงโปรเจกต์อื่น
|
|
35
|
-
|
|
36
|
-
warnyin/ # ★ ทุกอย่างของ workflow รวมใต้โฟลเดอร์เดียว
|
|
37
|
-
installer/templates/ # template CLAUDE.md สำหรับโปรเจกต์ปลายทาง (installer ใช้เอง — ไม่ถูก copy ไป target)
|
|
38
|
-
workflow/ # playbook กลาง — single source of truth
|
|
39
|
-
README.md # ไฟล์นี้ — ภาพรวม + วิธีรองรับหลาย AI
|
|
40
|
-
init.md # playbook: INIT — วิเคราะห์โปรเจกต์ + เติม docs/ ครั้งแรก
|
|
41
|
-
codemap.md # playbook: CODEMAP — สแกน + สร้าง codemap แบบ token-lean
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
npx @warnyin/agents
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
1
|
+
# Warnyin Standard Workflow
|
|
2
|
+
|
|
3
|
+
มาตรฐานกลางของ "วิธีทำงาน" (ways of work) สำหรับทุกโปรเจกต์ — สร้างทีม ผลิตผลงานคุณภาพ และเร็ว
|
|
4
|
+
โดยเดินผ่าน 5 stage:
|
|
5
|
+
|
|
6
|
+
```
|
|
7
|
+
Discovery (optional) ──▶ DESIGN ──▶ BUILD ──▶ VERIFY ──▶ SHIP
|
|
8
|
+
```
|
|
9
|
+
|
|
10
|
+
แต่ละ stage มี **playbook กลางหนึ่งชุด** เป็น single source of truth ที่ AI ทุกเจ้าอ่านเหมือนกัน
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## หลักการออกแบบ: Tool-agnostic, single source of truth
|
|
15
|
+
|
|
16
|
+
แก่นของ workflow (กฎ / ขั้นตอน / เกณฑ์ผ่าน) เขียน **ครั้งเดียว** เป็น markdown ใน `warnyin/workflow/stages/`
|
|
17
|
+
ส่วน AI แต่ละเครื่องมีแค่ **adapter บางๆ** ที่ "ชี้กลับ" มาที่ playbook กลางชุดเดียวกัน
|
|
18
|
+
|
|
19
|
+
| AI tool | Adapter (จุดเชื่อม) | อ่าน playbook จาก |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| **Claude Code** | `.claude/commands/*.md` + `CLAUDE.md` | `warnyin/workflow/stages/*.md` |
|
|
22
|
+
| **Codex** | `AGENTS.md` | `warnyin/workflow/stages/*.md` |
|
|
23
|
+
| **Antigravity** | `AGENTS.md` | `warnyin/workflow/stages/*.md` |
|
|
24
|
+
| เครื่องอื่นๆ | ชี้มาที่ `warnyin/workflow/stages/` ได้ทันที | `warnyin/workflow/stages/*.md` |
|
|
25
|
+
|
|
26
|
+
> แก้กฎที่ `warnyin/workflow/stages/` ที่เดียว → ทุกเครื่องได้เหมือนกันทันที
|
|
27
|
+
> เพิ่ม AI เจ้าใหม่ = เพิ่ม adapter บางๆ อีกหนึ่งไฟล์ ไม่ต้องแตะ logic
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## โครงสร้าง repo
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
bin/cli.mjs # npx installer — ติดตั้ง workflow ลงโปรเจกต์อื่น
|
|
35
|
+
|
|
36
|
+
warnyin/ # ★ ทุกอย่างของ workflow รวมใต้โฟลเดอร์เดียว
|
|
37
|
+
installer/templates/ # template CLAUDE.md สำหรับโปรเจกต์ปลายทาง (installer ใช้เอง — ไม่ถูก copy ไป target)
|
|
38
|
+
workflow/ # playbook กลาง — single source of truth
|
|
39
|
+
README.md # ไฟล์นี้ — ภาพรวม + วิธีรองรับหลาย AI
|
|
40
|
+
init.md # playbook: INIT — วิเคราะห์โปรเจกต์ + เติม docs/ ครั้งแรก
|
|
41
|
+
codemap.md # playbook: CODEMAP — สแกน + สร้าง codemap แบบ token-lean
|
|
42
|
+
explore.md # playbook: EXPLORE — สำรวจ/ตอบคำถามแบบ read-only ไม่สร้าง artifact
|
|
43
|
+
next.md # playbook: NEXT — เช็คงานค้าง + แนะนำขั้นตอนถัดไป (read-only)
|
|
44
|
+
roles/ # role card กลาง: ba, po, sa, tech-lead, developer, qa, security, infra
|
|
45
|
+
stages/ # discovery ✅ · design ✅ · build ✅ · verify ✅ · ship ✅
|
|
46
|
+
scripts/
|
|
47
|
+
build-wave.mjs # Workflow script: fan-out sub-agent ต่อ task ใน wave (worktree)
|
|
48
|
+
template/ # ★ template ทั้งหมดรวมที่เดียว
|
|
49
|
+
stages/[topic]/ # หนึ่งหน่วยงาน — copy เป็น warnyin/stages/<slug>
|
|
50
|
+
discovery.md research.md # output ของ Discovery
|
|
51
|
+
business.md proposal.md design.md # output ของ DESIGN
|
|
52
|
+
tasks/[task-name]/... build.md # output ของ DESIGN (tasks) + BUILD
|
|
53
|
+
test.md verify.md # output ของ VERIFY
|
|
54
|
+
troubleshooting.md ship.md # KB ระหว่างงาน + สรุปส่งมอบของ SHIP
|
|
55
|
+
docs/ # โครง docs — installer seed เข้า docs/ ตอนติดตั้ง
|
|
56
|
+
project.md rule.md infra.md troubleshooting.md codemap/index.md
|
|
57
|
+
techstack/[component]/ # copy เป็น docs/techstack/<component> (โดย /warnyin:init)
|
|
58
|
+
features/[feature-name]/ # copy เป็น docs/features/<feature-name> (โดย SHIP)
|
|
59
|
+
stages/ # พื้นที่ทำงานจริง ตาม topic
|
|
60
|
+
context.md
|
|
61
|
+
achieved/ # archive หลัง SHIP (<YYYY-MM-DD>-<slug>/)
|
|
62
|
+
|
|
63
|
+
docs/ # ความรู้ถาวรระดับโปรเจกต์ — ของจริงล้วน (seed จาก warnyin/template/docs)
|
|
64
|
+
project.md # ★ จุดเริ่มของ Discovery — อ่านก่อนเสมอ
|
|
65
|
+
rule.md infra.md
|
|
66
|
+
troubleshooting.md # ★ KB ปัญหา-วิธีแก้ (อ่านก่อนเมื่อ build เจอ error; SHIP ป้อนเข้า)
|
|
67
|
+
codemap/ features/ techstack/
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## การติดตั้งไปโปรเจกต์อื่น
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
cd my-project
|
|
76
|
+
npx @warnyin/agents # ติดตั้ง (ข้ามไฟล์ที่มีอยู่ ไม่เขียนทับ)
|
|
77
|
+
npx @warnyin/agents --update # อัปเดต playbook กลางเป็นเวอร์ชันล่าสุด
|
|
78
|
+
npx @warnyin/agents --dry-run # ดูก่อนว่าจะสร้าง/อัปเดตอะไร
|
|
79
|
+
# ทางสำรอง (ไม่ผ่าน npm): npx github:warnyin/warnyin-agents
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
- โปรเจกต์ที่มี `CLAUDE.md`/`AGENTS.md` อยู่แล้ว → installer ต่อท้ายเป็น section ไม่เขียนทับ
|
|
83
|
+
- `--update` เขียนทับเฉพาะ core (`warnyin/workflow/`, `.claude/commands/warnyin/`, template ใน `warnyin/template/`) — ไม่แตะ `docs/` และงานจริง
|
|
84
|
+
- หลังติดตั้ง → เปิด Claude Code แล้วรัน `/warnyin:init` ให้ agent วิเคราะห์โปรเจกต์ + เติม `docs/` (playbook: `warnyin/workflow/init.md`)
|
|
85
|
+
|
|
86
|
+
## วิธีใช้
|
|
87
|
+
|
|
88
|
+
1. เริ่มงานใหม่ → copy `warnyin/template/stages/[topic]/` เป็น `warnyin/stages/<ชื่อ-งาน-kebab-case>/`
|
|
89
|
+
2. รัน stage ตามลำดับ (Discovery ข้ามได้ถ้าเข้าใจ scope ชัดแล้ว)
|
|
90
|
+
- Claude Code: `/warnyin:discovery <topic>`, `/warnyin:design <slug> <change>`
|
|
91
|
+
- Codex / Antigravity: บอกให้ทำตาม `warnyin/workflow/stages/<stage>.md`
|
|
92
|
+
3. ผ่าน "gate" ของแต่ละ stage แล้วจึงไป stage ถัดไป
|
|
93
|
+
4. เมื่อ SHIP (`/warnyin:ship <slug>`) → promote ความรู้ของ topic ขึ้นเอกสารกลางใน `docs/`
|
|
94
|
+
แล้วย้าย topic ไป `warnyin/stages/achieved/<YYYY-MM-DD>-<topic>/`
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# EXPLORE — สำรวจ/ตอบคำถามแบบ read-only (ไม่สร้าง artifact)
|
|
2
|
+
|
|
3
|
+
> **Playbook กลาง — AI ทุกเจ้าทำตามไฟล์นี้ชุดเดียวกัน** (Claude Code / Codex / Antigravity / อื่นๆ)
|
|
4
|
+
> เป้าหมาย: ตอบคำถาม/สำรวจข้อมูล โค้ด และเอกสารของโปรเจกต์แบบ **grounded** โดย **ไม่สร้างหรือแก้ไฟล์ใดๆ** — จบที่คำตอบในแชท
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. EXPLORE คืออะไร / ใช้เมื่อไหร่
|
|
9
|
+
|
|
10
|
+
EXPLORE คือโหมด **อ่านอย่างเดียว (read-only)** — ไม่ใช่ stage ใน workflow, ไม่มี gate, ไม่มี output ไฟล์
|
|
11
|
+
|
|
12
|
+
- ใช้เมื่อ: อยากเข้าใจข้อมูล/โค้ด/พฤติกรรมระบบ, ถามเช็คความเข้าใจ, หาว่าอะไรอยู่ตรงไหน, เปรียบเทียบทางเลือกแบบเร็วๆ — **ยังไม่แน่ใจว่าจะกลายเป็นงานจริงหรือไม่**
|
|
13
|
+
- ต่างจาก Discovery: Discovery เป็น stage ที่ผลิต `discovery.md` + `research.md` เพื่อเข้า DESIGN — EXPLORE แค่ตอบ ไม่จดอะไรลงไฟล์
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 2. Input ที่อ่านเพื่อ ground ตัวเอง (เท่าที่เกี่ยวกับคำถาม — ไม่ต้องครบทุกไฟล์)
|
|
18
|
+
|
|
19
|
+
1. `docs/project.md` — โปรเจกต์นี้คืออะไร เป้าหมาย ขอบเขต
|
|
20
|
+
2. `docs/codemap/index.md` — แผนที่โค้ด (ไปอ่านโค้ดจริงต่อได้)
|
|
21
|
+
3. `docs/rule.md`, `docs/infra.md`, `docs/features/*`, `docs/techstack/*` — ตามที่คำถามแตะ
|
|
22
|
+
4. `warnyin/stages/context.md` + topic ใน `warnyin/stages/` และ `achieved/` ที่ใกล้เคียง — งานที่เคยทำ/กำลังทำ
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 3. หลักการทำงาน
|
|
27
|
+
|
|
28
|
+
1. **Read-only เด็ดขาด:** ใช้เฉพาะการอ่าน/ค้น (read, grep, glob, sub-agent แบบ read-only) — **ห้ามสร้าง แก้ หรือลบไฟล์ใดๆ** รวมถึงไฟล์ใน `warnyin/stages/` และ `docs/`
|
|
29
|
+
2. **โค้ดตอบได้ → ไปอ่านโค้ด:** อ้างอิงคำตอบด้วย `path:line` หรือชื่อไฟล์จริงเสมอ ไม่ตอบจากการเดา
|
|
30
|
+
3. **คำถามกว้าง → fan-out:** ถ้าต้องกวาดหลายพื้นที่ ให้กระจาย sub-agent แบบ read-only (เช่น Explore) ขนานกัน แล้วสังเคราะห์คำตอบเดียว
|
|
31
|
+
4. **ตอบในแชทเท่านั้น:** สรุปกระชับ ชี้ไฟล์/บรรทัดให้ user ไปต่อเองได้
|
|
32
|
+
5. **เจอประเด็นที่ควรเก็บเป็นงาน → เสนอ ไม่ทำเอง:** ถ้าการสำรวจชี้ว่าควรเปิด topic จริง ให้เสนอ `/warnyin:discovery <topic>` (scope ยังกว้าง) หรือ `/warnyin:design <slug> <change>` (scope ชัดแล้ว) — ให้ user เป็นคนตัดสินใจ
|