@warnyin/agents 0.18.0 → 0.19.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.
Files changed (87) hide show
  1. package/CHANGELOG.md +173 -162
  2. package/README.md +160 -160
  3. package/package.json +38 -38
  4. package/src/.claude/agents/warnyin-infra.md +13 -13
  5. package/src/.claude/agents/warnyin-qa.md +13 -13
  6. package/src/.claude/agents/warnyin-sa.md +13 -13
  7. package/src/.claude/agents/warnyin-security.md +13 -13
  8. package/src/.claude/agents/warnyin-tech-lead.md +13 -13
  9. package/src/.claude/agents/warnyin-ux.md +14 -14
  10. package/src/.claude/commands/warnyin/build.md +31 -31
  11. package/src/.claude/commands/warnyin/design.md +27 -27
  12. package/src/.claude/commands/warnyin/discovery.md +22 -22
  13. package/src/.claude/commands/warnyin/explore.md +14 -14
  14. package/src/.claude/commands/warnyin/feedback/issue.md +14 -14
  15. package/src/.claude/commands/warnyin/init.md +12 -12
  16. package/src/.claude/commands/warnyin/install-skill.md +19 -19
  17. package/src/.claude/commands/warnyin/next.md +17 -17
  18. package/src/.claude/commands/warnyin/ship.md +28 -28
  19. package/src/.claude/commands/warnyin/triage.md +14 -14
  20. package/src/.claude/commands/warnyin/update-codemaps.md +12 -12
  21. package/src/.claude/commands/warnyin/verify.md +20 -20
  22. package/src/.claude/skills/explore/SKILL.md +8 -8
  23. package/src/.claude/skills/next/SKILL.md +8 -8
  24. package/src/.claude/skills/update-codemaps/SKILL.md +8 -8
  25. package/src/.warnyin/installer/templates/CLAUDE.global.md +5 -5
  26. package/src/.warnyin/installer/templates/CLAUDE.md +35 -35
  27. package/src/.warnyin/template/docs/codemap/index.md +18 -18
  28. package/src/.warnyin/template/docs/features/[feature-name]/business.md +5 -5
  29. package/src/.warnyin/template/docs/features/[feature-name]/feature.md +5 -5
  30. package/src/.warnyin/template/docs/features/[feature-name]/spec.md +16 -16
  31. package/src/.warnyin/template/docs/infra.md +16 -16
  32. package/src/.warnyin/template/docs/project.md +18 -18
  33. package/src/.warnyin/template/docs/rule.md +7 -7
  34. package/src/.warnyin/template/docs/techstack/[component]/about.md +6 -6
  35. package/src/.warnyin/template/docs/techstack/[component]/rule.md +6 -6
  36. package/src/.warnyin/template/docs/techstack/[component]/standard.md +6 -6
  37. package/src/.warnyin/template/docs/techstack/[component]/structure.md +7 -7
  38. package/src/.warnyin/template/docs/techstack/[component]/test.md +7 -7
  39. package/src/.warnyin/template/docs/troubleshooting.md +32 -32
  40. package/src/.warnyin/template/stages/[topic]/build.md +58 -58
  41. package/src/.warnyin/template/stages/[topic]/business.md +21 -21
  42. package/src/.warnyin/template/stages/[topic]/design.md +63 -63
  43. package/src/.warnyin/template/stages/[topic]/discovery.md +69 -69
  44. package/src/.warnyin/template/stages/[topic]/proposal.md +43 -43
  45. package/src/.warnyin/template/stages/[topic]/research.md +49 -49
  46. package/src/.warnyin/template/stages/[topic]/ship.md +32 -32
  47. package/src/.warnyin/template/stages/[topic]/tasks/[task-name]/issue.md +19 -19
  48. package/src/.warnyin/template/stages/[topic]/tasks/[task-name]/rule.md +13 -13
  49. package/src/.warnyin/template/stages/[topic]/tasks/[task-name]/spec.md +36 -36
  50. package/src/.warnyin/template/stages/[topic]/tasks/[task-name]/standard.md +21 -21
  51. package/src/.warnyin/template/stages/[topic]/tasks/[task-name]/task.md +40 -40
  52. package/src/.warnyin/template/stages/[topic]/test.md +46 -46
  53. package/src/.warnyin/template/stages/[topic]/troubleshooting.md +34 -34
  54. package/src/.warnyin/template/stages/[topic]/verify.md +44 -44
  55. package/src/.warnyin/template/stages/[topic]/wireframe.md +104 -104
  56. package/src/.warnyin/workflow/README.md +107 -106
  57. package/src/.warnyin/workflow/api-doc.md +93 -93
  58. package/src/.warnyin/workflow/codemap.md +91 -91
  59. package/src/.warnyin/workflow/contexts/README.md +51 -51
  60. package/src/.warnyin/workflow/contexts/build.md +26 -25
  61. package/src/.warnyin/workflow/contexts/research.md +25 -25
  62. package/src/.warnyin/workflow/contexts/review.md +29 -25
  63. package/src/.warnyin/workflow/explore.md +32 -32
  64. package/src/.warnyin/workflow/feedback.md +212 -212
  65. package/src/.warnyin/workflow/init.md +136 -136
  66. package/src/.warnyin/workflow/minimalism.md +63 -0
  67. package/src/.warnyin/workflow/next.md +48 -48
  68. package/src/.warnyin/workflow/roles/README.md +52 -52
  69. package/src/.warnyin/workflow/roles/ba.md +25 -25
  70. package/src/.warnyin/workflow/roles/developer.md +32 -31
  71. package/src/.warnyin/workflow/roles/infra.md +24 -24
  72. package/src/.warnyin/workflow/roles/po.md +28 -28
  73. package/src/.warnyin/workflow/roles/qa.md +36 -36
  74. package/src/.warnyin/workflow/roles/sa.md +28 -28
  75. package/src/.warnyin/workflow/roles/security.md +39 -39
  76. package/src/.warnyin/workflow/roles/tech-lead.md +28 -28
  77. package/src/.warnyin/workflow/roles/ux.md +76 -76
  78. package/src/.warnyin/workflow/scripts/build-wave.mjs +145 -145
  79. package/src/.warnyin/workflow/scripts/validate-topic.mjs +378 -378
  80. package/src/.warnyin/workflow/stages/build.md +98 -98
  81. package/src/.warnyin/workflow/stages/design.md +174 -174
  82. package/src/.warnyin/workflow/stages/discovery.md +256 -256
  83. package/src/.warnyin/workflow/stages/ship.md +94 -94
  84. package/src/.warnyin/workflow/stages/verify.md +82 -82
  85. package/src/.warnyin/workflow/triage.md +74 -74
  86. package/src/AGENTS.md +54 -54
  87. package/src/bin/cli.mjs +357 -333
@@ -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
- ## Do / Don't
10
- - รัน test / verify จริง ดูผลด้วยตา
11
- - ✅ ไล่ acceptance ทีละข้อ เทียบกับ spec
12
- - ตรวจ edge case + security
13
- - เชื่อว่าผ่านโดยไม่รัน
14
- - ปล่อย issue ระดับ CRITICAL / HIGH
15
- - แก้เยอะระหว่าง review (note ไว้ ให้กลับไป BUILD)
16
-
17
- ## Tool preference
18
- - **ควรใช้:** Read + Bash (รัน test/verify), reviewer sub-agents, `/code-review` `/security-review`
19
- - **เลี่ยง:** เขียน feature ใหม่ระหว่าง review, แก้ scope กว้างๆ
20
- - **Model tier:** `balanced+` — skeptical จับ bug/regression/edge case = **ไม่ควรลด tier** (พลาดของจริงแพงกว่าค่า token)
21
-
22
- ## ใช้คู่ stage ไหน
23
- - VERIFY [`stages/verify.md`](../stages/verify.md)
24
- - SHIP (ตรวจความครบก่อนส่งมอบ) [`stages/ship.md`](../stages/ship.md)
25
- - DESIGN review panel → [`stages/design.md`](../stages/design.md)
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) ขนานกัน แล้วสังเคราะห์คำตอบเดียว
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