@warnyin/agents 0.18.1 → 0.20.0
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/CHANGELOG.md +178 -168
- package/README.md +160 -160
- package/package.json +38 -38
- package/src/.claude/agents/warnyin-infra.md +13 -13
- package/src/.claude/agents/warnyin-qa.md +13 -13
- package/src/.claude/agents/warnyin-sa.md +13 -13
- package/src/.claude/agents/warnyin-security.md +13 -13
- package/src/.claude/agents/warnyin-tech-lead.md +13 -13
- package/src/.claude/agents/warnyin-ux.md +14 -14
- package/src/.claude/commands/warnyin/build.md +31 -31
- package/src/.claude/commands/warnyin/design.md +27 -27
- package/src/.claude/commands/warnyin/discovery.md +22 -22
- package/src/.claude/commands/warnyin/explore.md +14 -14
- package/src/.claude/commands/warnyin/feedback/issue.md +14 -14
- package/src/.claude/commands/warnyin/init.md +12 -12
- package/src/.claude/commands/warnyin/install-skill.md +19 -19
- package/src/.claude/commands/warnyin/next.md +17 -17
- package/src/.claude/commands/warnyin/ship.md +28 -28
- package/src/.claude/commands/warnyin/triage.md +14 -14
- package/src/.claude/commands/warnyin/update-codemaps.md +12 -12
- package/src/.claude/commands/warnyin/verify.md +20 -20
- package/src/.claude/skills/explore/SKILL.md +8 -8
- package/src/.claude/skills/next/SKILL.md +8 -8
- package/src/.claude/skills/update-codemaps/SKILL.md +8 -8
- package/src/.warnyin/installer/templates/CLAUDE.global.md +5 -5
- package/src/.warnyin/installer/templates/CLAUDE.md +35 -35
- package/src/.warnyin/template/docs/codemap/index.md +18 -18
- package/src/.warnyin/template/docs/features/[feature-name]/business.md +5 -5
- package/src/.warnyin/template/docs/features/[feature-name]/feature.md +5 -5
- package/src/.warnyin/template/docs/features/[feature-name]/spec.md +16 -16
- package/src/.warnyin/template/docs/infra.md +16 -16
- package/src/.warnyin/template/docs/project.md +18 -18
- package/src/.warnyin/template/docs/rule.md +7 -7
- package/src/.warnyin/template/docs/techstack/[component]/about.md +6 -6
- package/src/.warnyin/template/docs/techstack/[component]/rule.md +6 -6
- package/src/.warnyin/template/docs/techstack/[component]/standard.md +6 -6
- package/src/.warnyin/template/docs/techstack/[component]/structure.md +7 -7
- package/src/.warnyin/template/docs/techstack/[component]/test.md +7 -7
- package/src/.warnyin/template/docs/troubleshooting.md +32 -32
- package/src/.warnyin/template/stages/[topic]/build.md +58 -58
- package/src/.warnyin/template/stages/[topic]/business.md +21 -21
- package/src/.warnyin/template/stages/[topic]/design.md +63 -63
- package/src/.warnyin/template/stages/[topic]/discovery.md +69 -69
- package/src/.warnyin/template/stages/[topic]/proposal.md +43 -43
- package/src/.warnyin/template/stages/[topic]/research.md +49 -49
- package/src/.warnyin/template/stages/[topic]/ship.md +32 -32
- package/src/.warnyin/template/stages/[topic]/tasks/[task-name]/issue.md +19 -19
- package/src/.warnyin/template/stages/[topic]/tasks/[task-name]/rule.md +13 -13
- package/src/.warnyin/template/stages/[topic]/tasks/[task-name]/spec.md +36 -36
- package/src/.warnyin/template/stages/[topic]/tasks/[task-name]/standard.md +21 -21
- package/src/.warnyin/template/stages/[topic]/tasks/[task-name]/task.md +40 -40
- package/src/.warnyin/template/stages/[topic]/test.md +46 -46
- package/src/.warnyin/template/stages/[topic]/troubleshooting.md +34 -34
- package/src/.warnyin/template/stages/[topic]/verify.md +44 -44
- package/src/.warnyin/template/stages/[topic]/wireframe.md +104 -104
- package/src/.warnyin/workflow/README.md +108 -106
- package/src/.warnyin/workflow/api-doc.md +93 -93
- package/src/.warnyin/workflow/codemap.md +92 -91
- package/src/.warnyin/workflow/contexts/README.md +51 -51
- package/src/.warnyin/workflow/contexts/build.md +26 -25
- package/src/.warnyin/workflow/contexts/research.md +25 -25
- package/src/.warnyin/workflow/contexts/review.md +29 -25
- package/src/.warnyin/workflow/explore.md +32 -32
- package/src/.warnyin/workflow/feedback.md +212 -212
- package/src/.warnyin/workflow/init.md +136 -136
- package/src/.warnyin/workflow/interop.md +59 -0
- package/src/.warnyin/workflow/minimalism.md +63 -0
- package/src/.warnyin/workflow/next.md +48 -48
- package/src/.warnyin/workflow/roles/README.md +54 -52
- package/src/.warnyin/workflow/roles/ba.md +25 -25
- package/src/.warnyin/workflow/roles/developer.md +32 -31
- package/src/.warnyin/workflow/roles/infra.md +24 -24
- package/src/.warnyin/workflow/roles/po.md +28 -28
- package/src/.warnyin/workflow/roles/qa.md +36 -36
- package/src/.warnyin/workflow/roles/sa.md +28 -28
- package/src/.warnyin/workflow/roles/security.md +39 -39
- package/src/.warnyin/workflow/roles/tech-lead.md +28 -28
- package/src/.warnyin/workflow/roles/ux.md +76 -76
- package/src/.warnyin/workflow/scripts/build-wave.mjs +145 -145
- package/src/.warnyin/workflow/scripts/validate-topic.mjs +378 -378
- package/src/.warnyin/workflow/stages/build.md +98 -98
- package/src/.warnyin/workflow/stages/design.md +174 -174
- package/src/.warnyin/workflow/stages/discovery.md +256 -256
- package/src/.warnyin/workflow/stages/ship.md +94 -94
- package/src/.warnyin/workflow/stages/verify.md +82 -82
- package/src/.warnyin/workflow/triage.md +74 -74
- package/src/AGENTS.md +54 -54
- package/src/bin/cli.mjs +357 -357
|
@@ -1,25 +1,29 @@
|
|
|
1
|
-
# Context — review (โหมดตรวจ/ยืนยันก่อนปล่อย)
|
|
2
|
-
|
|
3
|
-
> session-level posture · playbook: `.warnyin/workflow/stages/*`
|
|
4
|
-
|
|
5
|
-
## Mindset
|
|
6
|
-
หาจุดพลาดก่อนปล่อย — skeptical, ไม่เชื่อว่าผ่านจนกว่าจะรันจริง
|
|
7
|
-
ยืนยันด้วยหลักฐาน (test/verify เขียวจริง) ไม่ใช่คำสัญญาในโค้ด
|
|
8
|
-
|
|
9
|
-
##
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
|
|
1
|
+
# Context — review (โหมดตรวจ/ยืนยันก่อนปล่อย)
|
|
2
|
+
|
|
3
|
+
> session-level posture · playbook: `.warnyin/workflow/stages/*`
|
|
4
|
+
|
|
5
|
+
## Mindset
|
|
6
|
+
หาจุดพลาดก่อนปล่อย — skeptical, ไม่เชื่อว่าผ่านจนกว่าจะรันจริง
|
|
7
|
+
ยืนยันด้วยหลักฐาน (test/verify เขียวจริง) ไม่ใช่คำสัญญาในโค้ด
|
|
8
|
+
|
|
9
|
+
## Over-engineering lens
|
|
10
|
+
ถาม "มี abstraction / โค้ดที่ตัดได้โดยไม่เสีย acceptance ไหม?" — ดู [`minimalism`](../minimalism.md) สำหรับ decision hierarchy + guardrail กัน over-cut
|
|
11
|
+
|
|
12
|
+
## Do / Don't
|
|
13
|
+
- ✅ รัน test / verify จริง ดูผลด้วยตา
|
|
14
|
+
- ✅ ไล่ acceptance ทีละข้อ เทียบกับ spec
|
|
15
|
+
- ✅ ตรวจ edge case + security
|
|
16
|
+
- ✅ ใช้ over-engineering lens ตรวจ abstraction/โค้ดเกินจำเป็น
|
|
17
|
+
- ❌ เชื่อว่าผ่านโดยไม่รัน
|
|
18
|
+
- ❌ ปล่อย issue ระดับ CRITICAL / HIGH
|
|
19
|
+
- ❌ แก้เยอะระหว่าง review (note ไว้ ให้กลับไป BUILD)
|
|
20
|
+
|
|
21
|
+
## Tool preference
|
|
22
|
+
- **ควรใช้:** Read + Bash (รัน test/verify), reviewer sub-agents, `/code-review` `/security-review`
|
|
23
|
+
- **เลี่ยง:** เขียน feature ใหม่ระหว่าง review, แก้ scope กว้างๆ
|
|
24
|
+
- **Model tier:** `balanced+` — skeptical จับ bug/regression/edge case = **ไม่ควรลด tier** (พลาดของจริงแพงกว่าค่า token)
|
|
25
|
+
|
|
26
|
+
## ใช้คู่ stage ไหน
|
|
27
|
+
- VERIFY → [`stages/verify.md`](../stages/verify.md)
|
|
28
|
+
- SHIP (ตรวจความครบก่อนส่งมอบ) → [`stages/ship.md`](../stages/ship.md)
|
|
29
|
+
- DESIGN review panel → [`stages/design.md`](../stages/design.md)
|
|
@@ -1,32 +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. `docs/stages/context.md` + topic ใน `docs/stages/` และ `achieved/` ที่ใกล้เคียง — งานที่เคยทำ/กำลังทำ
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
## 3. หลักการทำงาน
|
|
27
|
-
|
|
28
|
-
1. **Read-only เด็ดขาด:** ใช้เฉพาะการอ่าน/ค้น (read, grep, glob, sub-agent แบบ read-only) — **ห้ามสร้าง แก้ หรือลบไฟล์ใดๆ** รวมถึงไฟล์ใน `docs/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 เป็นคนตัดสินใจ
|
|
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. `docs/stages/context.md` + topic ใน `docs/stages/` และ `achieved/` ที่ใกล้เคียง — งานที่เคยทำ/กำลังทำ
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 3. หลักการทำงาน
|
|
27
|
+
|
|
28
|
+
1. **Read-only เด็ดขาด:** ใช้เฉพาะการอ่าน/ค้น (read, grep, glob, sub-agent แบบ read-only) — **ห้ามสร้าง แก้ หรือลบไฟล์ใดๆ** รวมถึงไฟล์ใน `docs/stages/` และ `docs/`
|
|
29
|
+
2. **โค้ดตอบได้ → ไปอ่านโค้ด:** อ้างอิงคำตอบด้วย `path:line` หรือชื่อไฟล์จริงเสมอ ไม่ตอบจากการเดา
|
|
30
|
+
3. **คำถามกว้าง → fan-out:** ถ้าต้องกวาดหลายพื้นที่ ให้กระจาย sub-agent แบบ read-only (เช่น Explore) ขนานกัน แล้วสังเคราะห์คำตอบเดียว — ถ้ามี `.understand-anything/knowledge-graph.json` → อ่าน**ข้อเท็จจริงเชิงโครงสร้าง**เป็นเบาะแสเสริม (ยืนยันกับโค้ดจริงเสมอ); ไม่มี + repo ใหญ่/ไม่คุ้น → แนะนำรัน companion tool — ดู [`interop`](interop.md)
|
|
31
|
+
4. **ตอบในแชทเท่านั้น:** สรุปกระชับ ชี้ไฟล์/บรรทัดให้ user ไปต่อเองได้
|
|
32
|
+
5. **เจอประเด็นที่ควรเก็บเป็นงาน → เสนอ ไม่ทำเอง:** ถ้าการสำรวจชี้ว่าควรเปิด topic จริง ให้เสนอ `/warnyin:discovery <topic>` (scope ยังกว้าง) หรือ `/warnyin:design <slug> <change>` (scope ชัดแล้ว) — ให้ user เป็นคนตัดสินใจ
|
|
@@ -1,212 +1,212 @@
|
|
|
1
|
-
# FEEDBACK — เปิด GitHub Issue แจ้ง feedback ที่ warnyin/warnyin-agents
|
|
2
|
-
|
|
3
|
-
> **Playbook กลาง — AI ทุกเจ้าทำตามไฟล์นี้ชุดเดียวกัน** (Claude Code / Codex / Antigravity / อื่นๆ)
|
|
4
|
-
> เป้าหมาย: รับข้อมูลจาก user → สัมภาษณ์สั้น → เรียบเรียง title + body → **preview + confirm** → ยิงด้วย `gh` หรือ fallback URL → คืน link ให้ user
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## 1. FEEDBACK คืออะไร / ใช้เมื่อไหร่
|
|
9
|
-
|
|
10
|
-
FEEDBACK ช่วยให้ผู้ใช้ปลายทางของ Warnyin Standard Workflow **เปิด GitHub issue** กลับมาที่ทีมได้โดยไม่ต้องออกจาก flow
|
|
11
|
-
|
|
12
|
-
- ใช้เมื่อ: อยากแจ้ง **ปัญหา (Bug) / ฟีเจอร์ใหม่ที่อยากได้ (Feature) / จุดที่อยากปรับปรุง (Improvement)**
|
|
13
|
-
- ปลายทาง: repo `warnyin/warnyin-agents` เสมอ (hardcode)
|
|
14
|
-
- ต่างจากการเขียน issue เอง: AI ช่วยสัมภาษณ์สั้น เรียบเรียงรูปแบบมาตรฐาน และจัดการ title prefix + label ให้อัตโนมัติ
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## 2. Input ที่รับ
|
|
19
|
-
|
|
20
|
-
- **seed argument** (`$ARGUMENTS`) — ถ้า user ส่งมา ใช้เป็นจุดเริ่มต้น (อาจเป็นประเภท เช่น "Bug" หรือข้อความ feedback สั้นๆ)
|
|
21
|
-
- **คำตอบจาก user** — ข้อมูลที่ถามสัมภาษณ์เท่านั้น (**ห้ามดึง session context อัตโนมัติ** — กัน path/secret leak ขึ้น public issue)
|
|
22
|
-
- ถ้า user ไม่ส่ง seed → ถามประเภทก่อน
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
## 3. Flow หลัก (ทำตามลำดับ)
|
|
27
|
-
|
|
28
|
-
### ขั้นที่ 1 — เลือกประเภท
|
|
29
|
-
|
|
30
|
-
ถามหรืออ่านจาก seed ว่าเป็น:
|
|
31
|
-
|
|
32
|
-
| ประเภท | Title prefix | Label (best-effort) |
|
|
33
|
-
|---|---|---|
|
|
34
|
-
| Bug | `[Bug]` | `bug` |
|
|
35
|
-
| Feature | `[Feature]` | `enhancement` |
|
|
36
|
-
| Improvement | `[Improvement]` | `enhancement` |
|
|
37
|
-
|
|
38
|
-
ถ้า seed ชัดเจนพอ (เช่น "Bug" หรือข้อความที่บ่งชี้ประเภท) → ยืนยันกับ user แล้วข้ามไปขั้นที่ 2 ได้เลย
|
|
39
|
-
|
|
40
|
-
### ขั้นที่ 2 — สัมภาษณ์สั้น (ตามประเภท)
|
|
41
|
-
|
|
42
|
-
**Bug:**
|
|
43
|
-
1. สรุปปัญหา (อะไรผิดปกติ?)
|
|
44
|
-
2. ขั้นตอน reproduce (ทำอะไรแล้วเกิดปัญหา?)
|
|
45
|
-
3. ผลที่คาด vs ผลที่เกิดจริง
|
|
46
|
-
4. เวอร์ชัน/สภาพแวดล้อม (workflow version, OS, node — **ถามเฉพาะถ้า user อยากระบุ** ไม่บังคับ)
|
|
47
|
-
5. หมายเหตุเพิ่มเติม (optional)
|
|
48
|
-
|
|
49
|
-
**Feature:**
|
|
50
|
-
1. ปัญหา/ความต้องการ (อยากได้อะไรเพิ่ม?)
|
|
51
|
-
2. ข้อเสนอ (อยากได้อะไร ทำงานยังไง?)
|
|
52
|
-
3. คุณค่า/ใครได้ประโยชน์
|
|
53
|
-
4. ทางเลือกที่เคยลอง (optional)
|
|
54
|
-
|
|
55
|
-
**Improvement:**
|
|
56
|
-
1. จุดที่อยากปรับ (อะไรที่รู้สึกว่าควรดีกว่านี้?)
|
|
57
|
-
2. เหตุผล/ปัญหาปัจจุบัน
|
|
58
|
-
3. ผลที่คาดหลังปรับ
|
|
59
|
-
|
|
60
|
-
> **กฎ privacy (D4):** ใช้เฉพาะข้อมูลที่ user ให้ในการสัมภาษณ์ — **ห้ามแปะ error/โค้ด/path จาก session ลง body โดยไม่ได้รับอนุญาต** เว้นแต่ user พิมพ์ให้เองหรือสั่งชัดว่า "ใส่ error นี้ด้วย"
|
|
61
|
-
|
|
62
|
-
### ขั้นที่ 3 — เรียบเรียง title + body
|
|
63
|
-
|
|
64
|
-
**Title:** `<prefix> <สรุปสั้นๆ 1 บรรทัด>`
|
|
65
|
-
ตัวอย่าง: `[Bug] workflow verify ล้มเหลวเมื่อไม่มี git remote`
|
|
66
|
-
|
|
67
|
-
**Body:** markdown template ตามประเภท
|
|
68
|
-
|
|
69
|
-
สำหรับ **Bug:**
|
|
70
|
-
```
|
|
71
|
-
## สรุปปัญหา
|
|
72
|
-
<สรุป>
|
|
73
|
-
|
|
74
|
-
## ขั้นตอน Reproduce
|
|
75
|
-
1. <ขั้นตอน>
|
|
76
|
-
2. ...
|
|
77
|
-
|
|
78
|
-
## ผลที่คาด
|
|
79
|
-
<คาดหวัง>
|
|
80
|
-
|
|
81
|
-
## ผลที่เกิดจริง
|
|
82
|
-
<ที่เกิดขึ้นจริง>
|
|
83
|
-
|
|
84
|
-
## สภาพแวดล้อม
|
|
85
|
-
- Workflow version: <ถ้ามี>
|
|
86
|
-
- OS: <ถ้ามี>
|
|
87
|
-
- Node: <ถ้ามี>
|
|
88
|
-
|
|
89
|
-
## หมายเหตุ
|
|
90
|
-
<เพิ่มเติม ถ้ามี>
|
|
91
|
-
|
|
92
|
-
---
|
|
93
|
-
*สร้างผ่าน `/warnyin:feedback:issue`*
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
สำหรับ **Feature:**
|
|
97
|
-
```
|
|
98
|
-
## ปัญหา / ความต้องการ
|
|
99
|
-
<ปัญหา>
|
|
100
|
-
|
|
101
|
-
## ข้อเสนอ
|
|
102
|
-
<อยากได้อะไร ทำงานยังไง>
|
|
103
|
-
|
|
104
|
-
## คุณค่า / ใครได้ประโยชน์
|
|
105
|
-
<คุณค่า>
|
|
106
|
-
|
|
107
|
-
## ทางเลือกที่เคยลอง
|
|
108
|
-
<ถ้ามี>
|
|
109
|
-
|
|
110
|
-
---
|
|
111
|
-
*สร้างผ่าน `/warnyin:feedback:issue`*
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
สำหรับ **Improvement:**
|
|
115
|
-
```
|
|
116
|
-
## จุดที่อยากปรับ
|
|
117
|
-
<จุดที่อยากปรับ>
|
|
118
|
-
|
|
119
|
-
## เหตุผล / ปัญหาปัจจุบัน
|
|
120
|
-
<ปัญหา>
|
|
121
|
-
|
|
122
|
-
## ผลที่คาดหลังปรับ
|
|
123
|
-
<ผลที่คาด>
|
|
124
|
-
|
|
125
|
-
---
|
|
126
|
-
*สร้างผ่าน `/warnyin:feedback:issue`*
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
---
|
|
130
|
-
|
|
131
|
-
## 4. Detect Ladder — เลือก path ยิง issue
|
|
132
|
-
|
|
133
|
-
เดินตามลำดับนี้เสมอ:
|
|
134
|
-
|
|
135
|
-
```
|
|
136
|
-
1. มี gh ใน PATH ไหม?
|
|
137
|
-
└─ ไม่มี → fallback URL (แจ้งเหตุผล: "ไม่พบ gh CLI")
|
|
138
|
-
|
|
139
|
-
2. gh auth status ผ่านไหม?
|
|
140
|
-
└─ ไม่ผ่าน → fallback URL (แจ้งเหตุผล: "ยังไม่ได้ login gh")
|
|
141
|
-
|
|
142
|
-
3. พร้อม → ยิง gh issue create (ขั้นที่ 5)
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
**ไม่สอน/ติดตั้ง gh ให้** — แค่ detect แล้ว fallback
|
|
146
|
-
|
|
147
|
-
---
|
|
148
|
-
|
|
149
|
-
## 5. Confirm Gate (บังคับ — D5)
|
|
150
|
-
|
|
151
|
-
**ก่อนยิงทุกกรณี** แสดง preview ให้ user ดูก่อน:
|
|
152
|
-
|
|
153
|
-
```
|
|
154
|
-
📋 Preview issue ที่จะส่ง:
|
|
155
|
-
|
|
156
|
-
**Title:** [Bug] workflow verify ล้มเหลวเมื่อไม่มี git remote
|
|
157
|
-
|
|
158
|
-
**Body:**
|
|
159
|
-
---
|
|
160
|
-
## สรุปปัญหา
|
|
161
|
-
...
|
|
162
|
-
---
|
|
163
|
-
|
|
164
|
-
ยืนยันส่ง issue นี้? (ใช่ / แก้ไข / ยกเลิก)
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
- **ใช่ / ยืนยัน** → ยิง
|
|
168
|
-
- **แก้ไข** → รับข้อมูลเพิ่ม แล้วแสดง preview ใหม่
|
|
169
|
-
- **ยกเลิก** → หยุด ไม่ยิง
|
|
170
|
-
|
|
171
|
-
**ห้ามยิงก่อน user ยืนยัน** — ไม่มีข้อยกเว้น
|
|
172
|
-
|
|
173
|
-
---
|
|
174
|
-
|
|
175
|
-
## 6. ยิง issue
|
|
176
|
-
|
|
177
|
-
### Path สำเร็จ (มี gh + login แล้ว)
|
|
178
|
-
|
|
179
|
-
```bash
|
|
180
|
-
gh issue create \
|
|
181
|
-
--repo warnyin/warnyin-agents \
|
|
182
|
-
--title "<prefix> <สรุป>" \
|
|
183
|
-
--body "<body>" \
|
|
184
|
-
--label <label>
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
ถ้า `--label` fail เพราะ permission (non-collaborator) → **retry ยิงใหม่โดยไม่มี `--label`** แล้วแจ้ง user ว่า maintainer จะ label ทีหลัง
|
|
188
|
-
|
|
189
|
-
คืน URL ของ issue ที่สร้าง
|
|
190
|
-
|
|
191
|
-
### Path Fallback (ไม่มี gh หรือไม่ได้ login)
|
|
192
|
-
|
|
193
|
-
สร้าง URL พร้อมข้อมูล (urlencode title + body + labels):
|
|
194
|
-
|
|
195
|
-
```
|
|
196
|
-
https://github.com/warnyin/warnyin-agents/issues/new?title=<urlenc>&body=<urlenc>&labels=<urlenc>
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
แจ้ง user ว่า:
|
|
200
|
-
- เหตุผลที่ degrade (ไม่มี gh หรือ ยังไม่ได้ login)
|
|
201
|
-
- ให้เปิด URL นี้ใน browser เพื่อส่ง issue
|
|
202
|
-
|
|
203
|
-
---
|
|
204
|
-
|
|
205
|
-
## 7. กฎที่ต้องเคร่งครัด
|
|
206
|
-
|
|
207
|
-
1. **ไม่ดึง session context เองโดยไม่ได้รับอนุญาต** — body ประกอบจากข้อมูลที่ user ให้เท่านั้น
|
|
208
|
-
2. **Confirm gate บังคับ** — preview ก่อนยิงทุกกรณี ไม่มีข้อยกเว้น
|
|
209
|
-
3. **Footer ไม่ใส่ path/secret/ข้อมูลเครื่อง** — มีแค่ `*สร้างผ่าน /warnyin:feedback:issue*`
|
|
210
|
-
4. **repo hardcode** `warnyin/warnyin-agents` — ไม่ยิงไป repo อื่น
|
|
211
|
-
5. **title prefix บังคับ** — `[Bug]` / `[Feature]` / `[Improvement]` ขึ้นต้น title เสมอ
|
|
212
|
-
6. **label best-effort** — fail เงียบได้ retry ไม่มี label แล้วแจ้ง user
|
|
1
|
+
# FEEDBACK — เปิด GitHub Issue แจ้ง feedback ที่ warnyin/warnyin-agents
|
|
2
|
+
|
|
3
|
+
> **Playbook กลาง — AI ทุกเจ้าทำตามไฟล์นี้ชุดเดียวกัน** (Claude Code / Codex / Antigravity / อื่นๆ)
|
|
4
|
+
> เป้าหมาย: รับข้อมูลจาก user → สัมภาษณ์สั้น → เรียบเรียง title + body → **preview + confirm** → ยิงด้วย `gh` หรือ fallback URL → คืน link ให้ user
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 1. FEEDBACK คืออะไร / ใช้เมื่อไหร่
|
|
9
|
+
|
|
10
|
+
FEEDBACK ช่วยให้ผู้ใช้ปลายทางของ Warnyin Standard Workflow **เปิด GitHub issue** กลับมาที่ทีมได้โดยไม่ต้องออกจาก flow
|
|
11
|
+
|
|
12
|
+
- ใช้เมื่อ: อยากแจ้ง **ปัญหา (Bug) / ฟีเจอร์ใหม่ที่อยากได้ (Feature) / จุดที่อยากปรับปรุง (Improvement)**
|
|
13
|
+
- ปลายทาง: repo `warnyin/warnyin-agents` เสมอ (hardcode)
|
|
14
|
+
- ต่างจากการเขียน issue เอง: AI ช่วยสัมภาษณ์สั้น เรียบเรียงรูปแบบมาตรฐาน และจัดการ title prefix + label ให้อัตโนมัติ
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 2. Input ที่รับ
|
|
19
|
+
|
|
20
|
+
- **seed argument** (`$ARGUMENTS`) — ถ้า user ส่งมา ใช้เป็นจุดเริ่มต้น (อาจเป็นประเภท เช่น "Bug" หรือข้อความ feedback สั้นๆ)
|
|
21
|
+
- **คำตอบจาก user** — ข้อมูลที่ถามสัมภาษณ์เท่านั้น (**ห้ามดึง session context อัตโนมัติ** — กัน path/secret leak ขึ้น public issue)
|
|
22
|
+
- ถ้า user ไม่ส่ง seed → ถามประเภทก่อน
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 3. Flow หลัก (ทำตามลำดับ)
|
|
27
|
+
|
|
28
|
+
### ขั้นที่ 1 — เลือกประเภท
|
|
29
|
+
|
|
30
|
+
ถามหรืออ่านจาก seed ว่าเป็น:
|
|
31
|
+
|
|
32
|
+
| ประเภท | Title prefix | Label (best-effort) |
|
|
33
|
+
|---|---|---|
|
|
34
|
+
| Bug | `[Bug]` | `bug` |
|
|
35
|
+
| Feature | `[Feature]` | `enhancement` |
|
|
36
|
+
| Improvement | `[Improvement]` | `enhancement` |
|
|
37
|
+
|
|
38
|
+
ถ้า seed ชัดเจนพอ (เช่น "Bug" หรือข้อความที่บ่งชี้ประเภท) → ยืนยันกับ user แล้วข้ามไปขั้นที่ 2 ได้เลย
|
|
39
|
+
|
|
40
|
+
### ขั้นที่ 2 — สัมภาษณ์สั้น (ตามประเภท)
|
|
41
|
+
|
|
42
|
+
**Bug:**
|
|
43
|
+
1. สรุปปัญหา (อะไรผิดปกติ?)
|
|
44
|
+
2. ขั้นตอน reproduce (ทำอะไรแล้วเกิดปัญหา?)
|
|
45
|
+
3. ผลที่คาด vs ผลที่เกิดจริง
|
|
46
|
+
4. เวอร์ชัน/สภาพแวดล้อม (workflow version, OS, node — **ถามเฉพาะถ้า user อยากระบุ** ไม่บังคับ)
|
|
47
|
+
5. หมายเหตุเพิ่มเติม (optional)
|
|
48
|
+
|
|
49
|
+
**Feature:**
|
|
50
|
+
1. ปัญหา/ความต้องการ (อยากได้อะไรเพิ่ม?)
|
|
51
|
+
2. ข้อเสนอ (อยากได้อะไร ทำงานยังไง?)
|
|
52
|
+
3. คุณค่า/ใครได้ประโยชน์
|
|
53
|
+
4. ทางเลือกที่เคยลอง (optional)
|
|
54
|
+
|
|
55
|
+
**Improvement:**
|
|
56
|
+
1. จุดที่อยากปรับ (อะไรที่รู้สึกว่าควรดีกว่านี้?)
|
|
57
|
+
2. เหตุผล/ปัญหาปัจจุบัน
|
|
58
|
+
3. ผลที่คาดหลังปรับ
|
|
59
|
+
|
|
60
|
+
> **กฎ privacy (D4):** ใช้เฉพาะข้อมูลที่ user ให้ในการสัมภาษณ์ — **ห้ามแปะ error/โค้ด/path จาก session ลง body โดยไม่ได้รับอนุญาต** เว้นแต่ user พิมพ์ให้เองหรือสั่งชัดว่า "ใส่ error นี้ด้วย"
|
|
61
|
+
|
|
62
|
+
### ขั้นที่ 3 — เรียบเรียง title + body
|
|
63
|
+
|
|
64
|
+
**Title:** `<prefix> <สรุปสั้นๆ 1 บรรทัด>`
|
|
65
|
+
ตัวอย่าง: `[Bug] workflow verify ล้มเหลวเมื่อไม่มี git remote`
|
|
66
|
+
|
|
67
|
+
**Body:** markdown template ตามประเภท
|
|
68
|
+
|
|
69
|
+
สำหรับ **Bug:**
|
|
70
|
+
```
|
|
71
|
+
## สรุปปัญหา
|
|
72
|
+
<สรุป>
|
|
73
|
+
|
|
74
|
+
## ขั้นตอน Reproduce
|
|
75
|
+
1. <ขั้นตอน>
|
|
76
|
+
2. ...
|
|
77
|
+
|
|
78
|
+
## ผลที่คาด
|
|
79
|
+
<คาดหวัง>
|
|
80
|
+
|
|
81
|
+
## ผลที่เกิดจริง
|
|
82
|
+
<ที่เกิดขึ้นจริง>
|
|
83
|
+
|
|
84
|
+
## สภาพแวดล้อม
|
|
85
|
+
- Workflow version: <ถ้ามี>
|
|
86
|
+
- OS: <ถ้ามี>
|
|
87
|
+
- Node: <ถ้ามี>
|
|
88
|
+
|
|
89
|
+
## หมายเหตุ
|
|
90
|
+
<เพิ่มเติม ถ้ามี>
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
*สร้างผ่าน `/warnyin:feedback:issue`*
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
สำหรับ **Feature:**
|
|
97
|
+
```
|
|
98
|
+
## ปัญหา / ความต้องการ
|
|
99
|
+
<ปัญหา>
|
|
100
|
+
|
|
101
|
+
## ข้อเสนอ
|
|
102
|
+
<อยากได้อะไร ทำงานยังไง>
|
|
103
|
+
|
|
104
|
+
## คุณค่า / ใครได้ประโยชน์
|
|
105
|
+
<คุณค่า>
|
|
106
|
+
|
|
107
|
+
## ทางเลือกที่เคยลอง
|
|
108
|
+
<ถ้ามี>
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
*สร้างผ่าน `/warnyin:feedback:issue`*
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
สำหรับ **Improvement:**
|
|
115
|
+
```
|
|
116
|
+
## จุดที่อยากปรับ
|
|
117
|
+
<จุดที่อยากปรับ>
|
|
118
|
+
|
|
119
|
+
## เหตุผล / ปัญหาปัจจุบัน
|
|
120
|
+
<ปัญหา>
|
|
121
|
+
|
|
122
|
+
## ผลที่คาดหลังปรับ
|
|
123
|
+
<ผลที่คาด>
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
*สร้างผ่าน `/warnyin:feedback:issue`*
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## 4. Detect Ladder — เลือก path ยิง issue
|
|
132
|
+
|
|
133
|
+
เดินตามลำดับนี้เสมอ:
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
1. มี gh ใน PATH ไหม?
|
|
137
|
+
└─ ไม่มี → fallback URL (แจ้งเหตุผล: "ไม่พบ gh CLI")
|
|
138
|
+
|
|
139
|
+
2. gh auth status ผ่านไหม?
|
|
140
|
+
└─ ไม่ผ่าน → fallback URL (แจ้งเหตุผล: "ยังไม่ได้ login gh")
|
|
141
|
+
|
|
142
|
+
3. พร้อม → ยิง gh issue create (ขั้นที่ 5)
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
**ไม่สอน/ติดตั้ง gh ให้** — แค่ detect แล้ว fallback
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## 5. Confirm Gate (บังคับ — D5)
|
|
150
|
+
|
|
151
|
+
**ก่อนยิงทุกกรณี** แสดง preview ให้ user ดูก่อน:
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
📋 Preview issue ที่จะส่ง:
|
|
155
|
+
|
|
156
|
+
**Title:** [Bug] workflow verify ล้มเหลวเมื่อไม่มี git remote
|
|
157
|
+
|
|
158
|
+
**Body:**
|
|
159
|
+
---
|
|
160
|
+
## สรุปปัญหา
|
|
161
|
+
...
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
ยืนยันส่ง issue นี้? (ใช่ / แก้ไข / ยกเลิก)
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
- **ใช่ / ยืนยัน** → ยิง
|
|
168
|
+
- **แก้ไข** → รับข้อมูลเพิ่ม แล้วแสดง preview ใหม่
|
|
169
|
+
- **ยกเลิก** → หยุด ไม่ยิง
|
|
170
|
+
|
|
171
|
+
**ห้ามยิงก่อน user ยืนยัน** — ไม่มีข้อยกเว้น
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## 6. ยิง issue
|
|
176
|
+
|
|
177
|
+
### Path สำเร็จ (มี gh + login แล้ว)
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
gh issue create \
|
|
181
|
+
--repo warnyin/warnyin-agents \
|
|
182
|
+
--title "<prefix> <สรุป>" \
|
|
183
|
+
--body "<body>" \
|
|
184
|
+
--label <label>
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
ถ้า `--label` fail เพราะ permission (non-collaborator) → **retry ยิงใหม่โดยไม่มี `--label`** แล้วแจ้ง user ว่า maintainer จะ label ทีหลัง
|
|
188
|
+
|
|
189
|
+
คืน URL ของ issue ที่สร้าง
|
|
190
|
+
|
|
191
|
+
### Path Fallback (ไม่มี gh หรือไม่ได้ login)
|
|
192
|
+
|
|
193
|
+
สร้าง URL พร้อมข้อมูล (urlencode title + body + labels):
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
https://github.com/warnyin/warnyin-agents/issues/new?title=<urlenc>&body=<urlenc>&labels=<urlenc>
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
แจ้ง user ว่า:
|
|
200
|
+
- เหตุผลที่ degrade (ไม่มี gh หรือ ยังไม่ได้ login)
|
|
201
|
+
- ให้เปิด URL นี้ใน browser เพื่อส่ง issue
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## 7. กฎที่ต้องเคร่งครัด
|
|
206
|
+
|
|
207
|
+
1. **ไม่ดึง session context เองโดยไม่ได้รับอนุญาต** — body ประกอบจากข้อมูลที่ user ให้เท่านั้น
|
|
208
|
+
2. **Confirm gate บังคับ** — preview ก่อนยิงทุกกรณี ไม่มีข้อยกเว้น
|
|
209
|
+
3. **Footer ไม่ใส่ path/secret/ข้อมูลเครื่อง** — มีแค่ `*สร้างผ่าน /warnyin:feedback:issue*`
|
|
210
|
+
4. **repo hardcode** `warnyin/warnyin-agents` — ไม่ยิงไป repo อื่น
|
|
211
|
+
5. **title prefix บังคับ** — `[Bug]` / `[Feature]` / `[Improvement]` ขึ้นต้น title เสมอ
|
|
212
|
+
6. **label best-effort** — fail เงียบได้ retry ไม่มี label แล้วแจ้ง user
|