@warnyin/agents 0.15.0 → 0.17.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 (83) hide show
  1. package/CHANGELOG.md +153 -139
  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/commands/warnyin/build.md +31 -31
  10. package/src/.claude/commands/warnyin/design.md +27 -27
  11. package/src/.claude/commands/warnyin/discovery.md +22 -22
  12. package/src/.claude/commands/warnyin/explore.md +14 -14
  13. package/src/.claude/commands/warnyin/feedback/issue.md +14 -0
  14. package/src/.claude/commands/warnyin/init.md +12 -12
  15. package/src/.claude/commands/warnyin/install-skill.md +14 -14
  16. package/src/.claude/commands/warnyin/next.md +17 -17
  17. package/src/.claude/commands/warnyin/ship.md +28 -28
  18. package/src/.claude/commands/warnyin/triage.md +14 -14
  19. package/src/.claude/commands/warnyin/update-codemaps.md +12 -12
  20. package/src/.claude/commands/warnyin/verify.md +20 -20
  21. package/src/.claude/skills/explore/SKILL.md +8 -8
  22. package/src/.claude/skills/next/SKILL.md +8 -8
  23. package/src/.claude/skills/update-codemaps/SKILL.md +8 -8
  24. package/src/.warnyin/installer/templates/CLAUDE.global.md +5 -5
  25. package/src/.warnyin/installer/templates/CLAUDE.md +35 -34
  26. package/src/.warnyin/template/docs/codemap/index.md +18 -18
  27. package/src/.warnyin/template/docs/features/[feature-name]/business.md +5 -5
  28. package/src/.warnyin/template/docs/features/[feature-name]/feature.md +5 -5
  29. package/src/.warnyin/template/docs/features/[feature-name]/spec.md +16 -16
  30. package/src/.warnyin/template/docs/infra.md +16 -16
  31. package/src/.warnyin/template/docs/project.md +18 -18
  32. package/src/.warnyin/template/docs/rule.md +7 -7
  33. package/src/.warnyin/template/docs/techstack/[component]/about.md +6 -6
  34. package/src/.warnyin/template/docs/techstack/[component]/rule.md +6 -6
  35. package/src/.warnyin/template/docs/techstack/[component]/standard.md +6 -6
  36. package/src/.warnyin/template/docs/techstack/[component]/structure.md +7 -7
  37. package/src/.warnyin/template/docs/techstack/[component]/test.md +7 -7
  38. package/src/.warnyin/template/docs/troubleshooting.md +32 -32
  39. package/src/.warnyin/template/stages/[topic]/build.md +58 -58
  40. package/src/.warnyin/template/stages/[topic]/business.md +21 -21
  41. package/src/.warnyin/template/stages/[topic]/design.md +63 -63
  42. package/src/.warnyin/template/stages/[topic]/discovery.md +69 -69
  43. package/src/.warnyin/template/stages/[topic]/proposal.md +43 -43
  44. package/src/.warnyin/template/stages/[topic]/research.md +49 -49
  45. package/src/.warnyin/template/stages/[topic]/ship.md +32 -32
  46. package/src/.warnyin/template/stages/[topic]/tasks/[task-name]/issue.md +19 -19
  47. package/src/.warnyin/template/stages/[topic]/tasks/[task-name]/rule.md +13 -13
  48. package/src/.warnyin/template/stages/[topic]/tasks/[task-name]/spec.md +36 -36
  49. package/src/.warnyin/template/stages/[topic]/tasks/[task-name]/standard.md +21 -21
  50. package/src/.warnyin/template/stages/[topic]/tasks/[task-name]/task.md +40 -40
  51. package/src/.warnyin/template/stages/[topic]/test.md +46 -46
  52. package/src/.warnyin/template/stages/[topic]/troubleshooting.md +34 -34
  53. package/src/.warnyin/template/stages/[topic]/verify.md +44 -44
  54. package/src/.warnyin/workflow/README.md +106 -105
  55. package/src/.warnyin/workflow/api-doc.md +93 -93
  56. package/src/.warnyin/workflow/codemap.md +91 -91
  57. package/src/.warnyin/workflow/contexts/README.md +51 -51
  58. package/src/.warnyin/workflow/contexts/build.md +25 -25
  59. package/src/.warnyin/workflow/contexts/research.md +25 -25
  60. package/src/.warnyin/workflow/contexts/review.md +25 -25
  61. package/src/.warnyin/workflow/explore.md +32 -32
  62. package/src/.warnyin/workflow/feedback.md +212 -0
  63. package/src/.warnyin/workflow/init.md +136 -136
  64. package/src/.warnyin/workflow/next.md +48 -48
  65. package/src/.warnyin/workflow/roles/README.md +47 -47
  66. package/src/.warnyin/workflow/roles/ba.md +25 -25
  67. package/src/.warnyin/workflow/roles/developer.md +31 -31
  68. package/src/.warnyin/workflow/roles/infra.md +24 -24
  69. package/src/.warnyin/workflow/roles/po.md +28 -28
  70. package/src/.warnyin/workflow/roles/qa.md +35 -35
  71. package/src/.warnyin/workflow/roles/sa.md +28 -28
  72. package/src/.warnyin/workflow/roles/security.md +39 -39
  73. package/src/.warnyin/workflow/roles/tech-lead.md +28 -28
  74. package/src/.warnyin/workflow/scripts/build-wave.mjs +145 -145
  75. package/src/.warnyin/workflow/scripts/validate-topic.mjs +378 -378
  76. package/src/.warnyin/workflow/stages/build.md +98 -98
  77. package/src/.warnyin/workflow/stages/design.md +154 -154
  78. package/src/.warnyin/workflow/stages/discovery.md +256 -256
  79. package/src/.warnyin/workflow/stages/ship.md +94 -94
  80. package/src/.warnyin/workflow/stages/verify.md +82 -82
  81. package/src/.warnyin/workflow/triage.md +74 -74
  82. package/src/AGENTS.md +54 -54
  83. package/src/bin/cli.mjs +333 -310
@@ -1,51 +1,51 @@
1
- # Contexts — context profile กลางของ workflow
2
-
3
- > **แก่นกลาง tool-agnostic** — context card แต่ละใบคือ "posture ของทั้ง session" ในโหมดหนึ่ง
4
- > AI ทุกเจ้าใช้ไฟล์ชุดเดียวกัน: อ่านตอนเริ่ม stage เพื่อ set โหมดของ session แล้วทำงานตาม playbook เดิม
5
-
6
- ## หลักการ
7
-
8
- - **context = session-level posture** — วิธีคิด/ท่าทีรวมของ "ทั้ง session": ตอนนี้กำลังสำรวจ, กำลังสร้าง, หรือกำลังตรวจ
9
- - **role = task-level lens** ([`roles/`](../roles/README.md)) — มุมมอง/checklist ของ "หนึ่งบทบาทต่อหนึ่งงาน" (BA, Developer, QA, ...)
10
- - คนละมิติ ใช้คู่กันได้: เช่น session อยู่โหมด `build` (posture) + sub-agent สวม role `Developer` (lens ของงานนั้น)
11
- - context **ไม่ duplicate** checklist ของ stage playbook/role card — ชี้กลับ playbook เสมอ (single source of truth)
12
-
13
- ## ตาราง context ↔ stage
14
-
15
- | Stage playbook | Context ที่เข้าคู่ | เหตุผล |
16
- |---|---|---|
17
- | [`discovery.md`](../stages/discovery.md) | `research` | สำรวจ/เข้าใจก่อนตัดสิน |
18
- | [`design.md`](../stages/design.md) | `research` + `build` | ต้น = research (propose), ปลาย = build (แตก task) |
19
- | [`build.md`](../stages/build.md) | `build` | ลงมือสร้าง vertical slice |
20
- | [`verify.md`](../stages/verify.md) | `review` | ตรวจ/ยืนยันด้วยการรันจริง |
21
- | [`ship.md`](../stages/ship.md) | `review` | ตรวจความครบก่อนส่งมอบ/promote |
22
-
23
- ## วิธี activate (manual)
24
-
25
- - **AI หลัก:** ตอนเริ่ม stage → เปิด playbook stage นั้น เจอ callout "Context profile" ชี้มา → อ่าน context card → สวม posture แล้วทำงานตาม playbook
26
- - **User สั่งตรง:** บอกโหมดได้ชัดๆ เช่น "อยู่โหมด research" / "สวม build context" → AI อ่าน card ที่ตรง
27
- - playbook ทุก stage มี callout ชี้กลับมาที่ context ที่เข้าคู่ (reference graph วนกลับ ไม่ duplicate)
28
-
29
- ## โครงของ context card ทุกใบ
30
-
31
- 1. **Mindset** — วิธีคิดรวมของ session โหมดนี้ (2–4 บรรทัด)
32
- 2. **Do / Don't** — bullet สั้น 2 ฝั่ง: ทำ vs ห้าม
33
- 3. **Tool preference** — เครื่องมือที่ควรใช้ / เลี่ยง (read-only vs edit vs run) + **Model tier** (generic: deepest/balanced/cheap)
34
- 4. **ใช้คู่ stage ไหน** — ชี้ playbook stage ที่เข้าคู่ (→ ลิงก์)
35
-
36
- > เพิ่ม context ใหม่ = เพิ่มไฟล์ที่นี่ + ใส่ callout ใน playbook stage ที่เข้าคู่ + อัปเดตตารางด้านบน
37
- > (เก็บให้บาง opinionated — 3 context พอ; อย่าให้ไหลเป็น catalog)
38
-
39
- ## Model tier (generic — harness ตีเป็นรุ่นจริงเอง)
40
-
41
- แต่ละ context แนะนำ **model tier** ใน section "Tool preference" เพื่อคุม token/cost ตาม posture:
42
-
43
- | Context | Tier | งาน |
44
- |---|---|---|
45
- | `research` | `deepest reasoning` | สำรวจ / architecture / ตัดสินใจ trade-off |
46
- | `build` | `balanced` (worker เชิงกลไก → `cheap`) | implement vertical slice ตาม spec |
47
- | `review` | `balanced+` | ตรวจ/จับ bug — ไม่ลด (พลาดแพงกว่า token) |
48
-
49
- > **tool-agnostic:** ใช้ vocab generic **ไม่ผูกชื่อรุ่น/ผลิตภัณฑ์ของ harness ใด ๆ** — แต่ละ harness map tier → รุ่นเอง (เทียบแนวทาง model selection ของ harness เช่นไฟล์ rules ฝั่ง performance); เป็น **guidance** ไม่ใช่ enforce
50
-
51
- > **per-task ใน BUILD (เพิ่มจาก per-context):** นอกจาก tier ระดับ context ด้านบน BUILD ยังกำหนด **model tier ต่อ task** ได้ผ่าน field `Model tier` ใน `task.md` — ใช้ subset `{cheap, balanced, deepest}` (ไม่ระบุ = `balanced` ตาม context build); mapping: mechanical/scaffold/config → `cheap` · implement ตาม spec ปกติ → `balanced` · logic หนัก/security/algorithm/ไม่เคยทำ → `deepest`. orchestrator ใน command (adapter) map tier→รุ่นจริง แล้วส่งเข้า `build-wave` per task — payload คง generic ตามเดิม
1
+ # Contexts — context profile กลางของ workflow
2
+
3
+ > **แก่นกลาง tool-agnostic** — context card แต่ละใบคือ "posture ของทั้ง session" ในโหมดหนึ่ง
4
+ > AI ทุกเจ้าใช้ไฟล์ชุดเดียวกัน: อ่านตอนเริ่ม stage เพื่อ set โหมดของ session แล้วทำงานตาม playbook เดิม
5
+
6
+ ## หลักการ
7
+
8
+ - **context = session-level posture** — วิธีคิด/ท่าทีรวมของ "ทั้ง session": ตอนนี้กำลังสำรวจ, กำลังสร้าง, หรือกำลังตรวจ
9
+ - **role = task-level lens** ([`roles/`](../roles/README.md)) — มุมมอง/checklist ของ "หนึ่งบทบาทต่อหนึ่งงาน" (BA, Developer, QA, ...)
10
+ - คนละมิติ ใช้คู่กันได้: เช่น session อยู่โหมด `build` (posture) + sub-agent สวม role `Developer` (lens ของงานนั้น)
11
+ - context **ไม่ duplicate** checklist ของ stage playbook/role card — ชี้กลับ playbook เสมอ (single source of truth)
12
+
13
+ ## ตาราง context ↔ stage
14
+
15
+ | Stage playbook | Context ที่เข้าคู่ | เหตุผล |
16
+ |---|---|---|
17
+ | [`discovery.md`](../stages/discovery.md) | `research` | สำรวจ/เข้าใจก่อนตัดสิน |
18
+ | [`design.md`](../stages/design.md) | `research` + `build` | ต้น = research (propose), ปลาย = build (แตก task) |
19
+ | [`build.md`](../stages/build.md) | `build` | ลงมือสร้าง vertical slice |
20
+ | [`verify.md`](../stages/verify.md) | `review` | ตรวจ/ยืนยันด้วยการรันจริง |
21
+ | [`ship.md`](../stages/ship.md) | `review` | ตรวจความครบก่อนส่งมอบ/promote |
22
+
23
+ ## วิธี activate (manual)
24
+
25
+ - **AI หลัก:** ตอนเริ่ม stage → เปิด playbook stage นั้น เจอ callout "Context profile" ชี้มา → อ่าน context card → สวม posture แล้วทำงานตาม playbook
26
+ - **User สั่งตรง:** บอกโหมดได้ชัดๆ เช่น "อยู่โหมด research" / "สวม build context" → AI อ่าน card ที่ตรง
27
+ - playbook ทุก stage มี callout ชี้กลับมาที่ context ที่เข้าคู่ (reference graph วนกลับ ไม่ duplicate)
28
+
29
+ ## โครงของ context card ทุกใบ
30
+
31
+ 1. **Mindset** — วิธีคิดรวมของ session โหมดนี้ (2–4 บรรทัด)
32
+ 2. **Do / Don't** — bullet สั้น 2 ฝั่ง: ทำ vs ห้าม
33
+ 3. **Tool preference** — เครื่องมือที่ควรใช้ / เลี่ยง (read-only vs edit vs run) + **Model tier** (generic: deepest/balanced/cheap)
34
+ 4. **ใช้คู่ stage ไหน** — ชี้ playbook stage ที่เข้าคู่ (→ ลิงก์)
35
+
36
+ > เพิ่ม context ใหม่ = เพิ่มไฟล์ที่นี่ + ใส่ callout ใน playbook stage ที่เข้าคู่ + อัปเดตตารางด้านบน
37
+ > (เก็บให้บาง opinionated — 3 context พอ; อย่าให้ไหลเป็น catalog)
38
+
39
+ ## Model tier (generic — harness ตีเป็นรุ่นจริงเอง)
40
+
41
+ แต่ละ context แนะนำ **model tier** ใน section "Tool preference" เพื่อคุม token/cost ตาม posture:
42
+
43
+ | Context | Tier | งาน |
44
+ |---|---|---|
45
+ | `research` | `deepest reasoning` | สำรวจ / architecture / ตัดสินใจ trade-off |
46
+ | `build` | `balanced` (worker เชิงกลไก → `cheap`) | implement vertical slice ตาม spec |
47
+ | `review` | `balanced+` | ตรวจ/จับ bug — ไม่ลด (พลาดแพงกว่า token) |
48
+
49
+ > **tool-agnostic:** ใช้ vocab generic **ไม่ผูกชื่อรุ่น/ผลิตภัณฑ์ของ harness ใด ๆ** — แต่ละ harness map tier → รุ่นเอง (เทียบแนวทาง model selection ของ harness เช่นไฟล์ rules ฝั่ง performance); เป็น **guidance** ไม่ใช่ enforce
50
+
51
+ > **per-task ใน BUILD (เพิ่มจาก per-context):** นอกจาก tier ระดับ context ด้านบน BUILD ยังกำหนด **model tier ต่อ task** ได้ผ่าน field `Model tier` ใน `task.md` — ใช้ subset `{cheap, balanced, deepest}` (ไม่ระบุ = `balanced` ตาม context build); mapping: mechanical/scaffold/config → `cheap` · implement ตาม spec ปกติ → `balanced` · logic หนัก/security/algorithm/ไม่เคยทำ → `deepest`. orchestrator ใน command (adapter) map tier→รุ่นจริง แล้วส่งเข้า `build-wave` per task — payload คง generic ตามเดิม
@@ -1,25 +1,25 @@
1
- # Context — build (โหมดลงมือสร้าง vertical slice)
2
-
3
- > session-level posture · playbook: `.warnyin/workflow/stages/*`
4
-
5
- ## Mindset
6
- ส่งมอบ vertical slice ที่ทำงานจริง end-to-end — ทำตาม spec/standard/rule ของ task
7
- slice เล็กจบในตัว, "เขียว" ต้องเขียวจริงจากการรัน ไม่ใช่คาดว่าเขียว
8
-
9
- ## Do / Don't
10
- - ✅ ทำตาม task spec ครบทุกข้อ ไม่เกิน/ไม่ต่ำ
11
- - ✅ อ่าน `troubleshooting.md` ก่อนแก้ error
12
- - ✅ reuse shared component ใน standard ก่อนเขียนใหม่
13
- - ✅ commit เล็ก โฟกัสทีละ slice
14
- - ❌ หลุด scope ของ task
15
- - ❌ เดา spec — กลับไปอ่าน design / ถาม
16
- - ❌ แก้ rule กลาง (note ไว้ รอ SHIP)
17
-
18
- ## Tool preference
19
- - **ควรใช้:** Edit / Write / Bash, sub-agent fan-out, `build-wave`
20
- - **เลี่ยง:** แก้นอก scope task, แตะ rule/standard กลางใน `docs/`
21
- - **Model tier:** `balanced` (orchestrator/main loop ที่ตัดสินใจ integrate); **fan-out worker per task** ตาม field `Model tier` ใน `task.md` (subset `{cheap, balanced, deepest}`; ไม่ระบุ = `balanced`): mechanical/scaffold/config → `cheap` · implement ตาม spec ปกติ → `balanced` · logic หนัก/security/algorithm/ไม่เคยทำ → `deepest` (คุม token/cost ต่อ agent — ดู `contexts/README.md` §"Model tier")
22
-
23
- ## ใช้คู่ stage ไหน
24
- - ปลาย DESIGN (แตก task) → [`stages/design.md`](../stages/design.md)
25
- - BUILD → [`stages/build.md`](../stages/build.md)
1
+ # Context — build (โหมดลงมือสร้าง vertical slice)
2
+
3
+ > session-level posture · playbook: `.warnyin/workflow/stages/*`
4
+
5
+ ## Mindset
6
+ ส่งมอบ vertical slice ที่ทำงานจริง end-to-end — ทำตาม spec/standard/rule ของ task
7
+ slice เล็กจบในตัว, "เขียว" ต้องเขียวจริงจากการรัน ไม่ใช่คาดว่าเขียว
8
+
9
+ ## Do / Don't
10
+ - ✅ ทำตาม task spec ครบทุกข้อ ไม่เกิน/ไม่ต่ำ
11
+ - ✅ อ่าน `troubleshooting.md` ก่อนแก้ error
12
+ - ✅ reuse shared component ใน standard ก่อนเขียนใหม่
13
+ - ✅ commit เล็ก โฟกัสทีละ slice
14
+ - ❌ หลุด scope ของ task
15
+ - ❌ เดา spec — กลับไปอ่าน design / ถาม
16
+ - ❌ แก้ rule กลาง (note ไว้ รอ SHIP)
17
+
18
+ ## Tool preference
19
+ - **ควรใช้:** Edit / Write / Bash, sub-agent fan-out, `build-wave`
20
+ - **เลี่ยง:** แก้นอก scope task, แตะ rule/standard กลางใน `docs/`
21
+ - **Model tier:** `balanced` (orchestrator/main loop ที่ตัดสินใจ integrate); **fan-out worker per task** ตาม field `Model tier` ใน `task.md` (subset `{cheap, balanced, deepest}`; ไม่ระบุ = `balanced`): mechanical/scaffold/config → `cheap` · implement ตาม spec ปกติ → `balanced` · logic หนัก/security/algorithm/ไม่เคยทำ → `deepest` (คุม token/cost ต่อ agent — ดู `contexts/README.md` §"Model tier")
22
+
23
+ ## ใช้คู่ stage ไหน
24
+ - ปลาย DESIGN (แตก task) → [`stages/design.md`](../stages/design.md)
25
+ - BUILD → [`stages/build.md`](../stages/build.md)
@@ -1,25 +1,25 @@
1
- # Context — research (โหมดสำรวจ/เข้าใจก่อนตัดสิน)
2
-
3
- > session-level posture · playbook: `.warnyin/workflow/stages/*`
4
-
5
- ## Mindset
6
- เข้าใจก่อนตัดสิน — กว้างก่อนลึก ตั้งคำถาม > รีบสรุป
7
- สำรวจของจริง (โค้ด/เอกสาร) ไม่เดาจากความเคยชิน; สะสม evidence ให้พอก่อนเสนอทางเลือก
8
-
9
- ## Do / Don't
10
- - ✅ อ่านโค้ด/เอกสารจริง ก่อนสรุปทุกครั้ง
11
- - ✅ ถามทีละข้อ + เสนอคำตอบให้ user ยืนยัน
12
- - ✅ บันทึก evidence (path/บรรทัด) ที่อ้างอิง
13
- - ❌ เดา/สรุปจากความเคยชินโดยไม่ยืนยัน
14
- - ❌ แก้ไฟล์ production ระหว่างสำรวจ
15
- - ❌ รีบสรุปก่อน scope ชัด
16
-
17
- ## Tool preference
18
- - **ควรใช้:** read-only — Read / Grep / Glob / fast-context, `/warnyin:explore`
19
- - **เลี่ยง:** Edit / Write โค้ดจริง, คำสั่งที่เปลี่ยน state
20
- - **Model tier:** `deepest reasoning` — สำรวจ/architecture/ตัดสินใจ trade-off = งานคิดหนัก คุ้มใช้ตัวลึกสุด
21
-
22
- ## ใช้คู่ stage ไหน
23
- - Discovery → [`stages/discovery.md`](../stages/discovery.md)
24
- - ช่วงต้น DESIGN (เก็บ context ก่อน propose) → [`stages/design.md`](../stages/design.md)
25
- - เช็คงานค้าง → [`next.md`](../next.md)
1
+ # Context — research (โหมดสำรวจ/เข้าใจก่อนตัดสิน)
2
+
3
+ > session-level posture · playbook: `.warnyin/workflow/stages/*`
4
+
5
+ ## Mindset
6
+ เข้าใจก่อนตัดสิน — กว้างก่อนลึก ตั้งคำถาม > รีบสรุป
7
+ สำรวจของจริง (โค้ด/เอกสาร) ไม่เดาจากความเคยชิน; สะสม evidence ให้พอก่อนเสนอทางเลือก
8
+
9
+ ## Do / Don't
10
+ - ✅ อ่านโค้ด/เอกสารจริง ก่อนสรุปทุกครั้ง
11
+ - ✅ ถามทีละข้อ + เสนอคำตอบให้ user ยืนยัน
12
+ - ✅ บันทึก evidence (path/บรรทัด) ที่อ้างอิง
13
+ - ❌ เดา/สรุปจากความเคยชินโดยไม่ยืนยัน
14
+ - ❌ แก้ไฟล์ production ระหว่างสำรวจ
15
+ - ❌ รีบสรุปก่อน scope ชัด
16
+
17
+ ## Tool preference
18
+ - **ควรใช้:** read-only — Read / Grep / Glob / fast-context, `/warnyin:explore`
19
+ - **เลี่ยง:** Edit / Write โค้ดจริง, คำสั่งที่เปลี่ยน state
20
+ - **Model tier:** `deepest reasoning` — สำรวจ/architecture/ตัดสินใจ trade-off = งานคิดหนัก คุ้มใช้ตัวลึกสุด
21
+
22
+ ## ใช้คู่ stage ไหน
23
+ - Discovery → [`stages/discovery.md`](../stages/discovery.md)
24
+ - ช่วงต้น DESIGN (เก็บ context ก่อน propose) → [`stages/design.md`](../stages/design.md)
25
+ - เช็คงานค้าง → [`next.md`](../next.md)
@@ -1,25 +1,25 @@
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
+ ## 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,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 เป็นคนตัดสินใจ
@@ -0,0 +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