@warnyin/agents 0.15.0 → 0.16.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 CHANGED
@@ -23,7 +23,13 @@
23
23
 
24
24
  ## [Unreleased]
25
25
 
26
+ ## [0.16.0] - 2026-06-12
27
+
28
+ ### Added
29
+ - **Command `/warnyin:feedback:issue`** — เปิด GitHub issue ที่ `warnyin/warnyin-agents` เพื่อแจ้งปรับปรุง/ปัญหา/feature ใหม่ (gh + fallback URL)
30
+
26
31
  ### Fixed
32
+ - **`setup:dogfood` refresh root dogfood CORE ได้จริงทุก release** — แก้ 2 root cause: (1) เพิ่ม `--update` flag ใน `installViaNpx`/`installViaPack` → cli `copyTree({overwrite:true})` เขียนทับ CORE เดิม; (2) เปลี่ยน success-detection จาก "เชื่อ exit 0" เป็น `verifyInstalled(repoRoot)` — ตรวจ side-effect จริง (`.warnyin/workflow/stages/discovery.md` + `.claude/commands/warnyin`) กัน false-green (npx exit 0 โดยไม่ install จริง). เพิ่ม `export function verifyInstalled(root)` + main-guard (import ไม่ trigger install) + unit test 3 เคส พิสูจน์ false-green guard.
27
33
  - **`build-wave.mjs` launch ผ่าน Workflow tool ได้** — ลบ top-level `export function normalizeTasks`/`buildOpts` (คง `export const meta`) ที่ทำให้ Workflow loader พังด้วย `SyntaxError: Unexpected keyword 'export'` (runtime wrap body เป็น async fn) → BUILD fan-out wave ทำงานผ่าน Workflow script ได้โดยไม่ต้อง fallback. **behavior identical** (function ใช้ภายใน script, unit test สกัดด้วย extraction ไม่ต้องแก้). ปิดบั๊กที่ documented ค้างไว้ (`installer/rule.md` §build orchestration · troubleshooting #16/#20).
28
34
 
29
35
  ### Changed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@warnyin/agents",
3
- "version": "0.15.0",
3
+ "version": "0.16.0",
4
4
  "description": "Warnyin Standard Workflow installer — 5-stage ways of work (Discovery/DESIGN/BUILD/VERIFY/SHIP) สำหรับทุกโปรเจกต์",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -0,0 +1,14 @@
1
+ ---
2
+ description: เปิด GitHub issue ที่ warnyin/warnyin-agents — แจ้งปรับปรุง/ปัญหา/feature ใหม่ (gh + fallback URL)
3
+ argument-hint: "[ประเภท หรือ ข้อความ feedback สั้นๆ]"
4
+ ---
5
+
6
+ ทำหน้าที่เป็น feedback assistant ตาม **playbook กลาง** ของ workflow มาตรฐาน
7
+
8
+ 1. อ่าน `.warnyin/workflow/feedback.md` ให้ครบก่อน แล้วทำตามทุกหลักการในนั้นอย่างเคร่งครัด
9
+ (**confirm gate บังคับ — ห้ามยิง issue ก่อน user ยืนยัน preview**, ไม่ดึง session context เองโดยไม่ได้รับอนุญาต)
10
+ 2. seed จาก argument: $ARGUMENTS
11
+ - ถ้าไม่ระบุ หรือยังไม่ชัดเจนพอ → ถาม user ว่าเป็นประเภทใด (Bug / Feature / Improvement)
12
+ 3. สัมภาษณ์สั้นตาม template ของประเภทนั้น (ตาม playbook §3)
13
+ 4. เรียบเรียง title (มี prefix) + body → แสดง preview + ขอ confirm
14
+ 5. ยิง issue ผ่าน gh หรือ fallback URL ตาม detect ladder (ตาม playbook §4–§6) → คืน link / URL ให้ user
@@ -16,6 +16,7 @@
16
16
  - `/warnyin:explore [คำถาม]` → สำรวจ/ตอบคำถามแบบ read-only — ไม่สร้าง artifact (`.warnyin/workflow/explore.md`)
17
17
  - `/warnyin:next [slug]` → เช็คงานค้าง + แนะนำ command ถัดไป แบบ read-only (`.warnyin/workflow/next.md`)
18
18
  - `/warnyin:triage [คำอธิบาย change]` → ประเมินขนาด + แนะนำ path (read-only) (`.warnyin/workflow/triage.md`)
19
+ - `/warnyin:feedback:issue [ประเภท/ข้อความ]` → เปิด GitHub issue แจ้ง feedback ที่ warnyin/warnyin-agents (`.warnyin/workflow/feedback.md`)
19
20
  - `/warnyin:discovery [topic]` → Discovery stage (`.warnyin/workflow/stages/discovery.md`)
20
21
  - `/warnyin:design [slug] [change]` → DESIGN stage (`.warnyin/workflow/stages/design.md`)
21
22
  - `/warnyin:build [slug]` → BUILD stage — fan-out sub-agent ตาม dependency (`.warnyin/workflow/stages/build.md` + `.warnyin/workflow/scripts/build-wave.mjs`)
@@ -43,6 +43,7 @@ Discovery (optional) ──▶ DESIGN ──▶ BUILD ──▶ VERIFY ──▶
43
43
  next.md # playbook: NEXT — เช็คงานค้าง + แนะนำขั้นตอนถัดไป (read-only)
44
44
  triage.md # capability: TRIAGE — ประเมินขนาด change → tier + route (read-only)
45
45
  api-doc.md # capability: API-DOC — adaptive OpenAPI 3.1 contract (DESIGN/VERIFY/SHIP เรียกเอง)
46
+ feedback.md # capability: FEEDBACK — เปิด GitHub issue แจ้ง feedback (gh + fallback URL)
46
47
  stages/ # discovery ✅ · design ✅ · build ✅ · verify ✅ · ship ✅
47
48
  # discovery: mode ปรับความเข้ม {ไว|สมดุล|ละเอียด|โต้วาที|ไต่สวน} + auto-suggest + debate
48
49
  # → taxonomy + behavior + auto-suggest signal อยู่ใน section "Discovery modes (ความเข้มของ Discovery)" ของ discovery.md
@@ -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