luciazero 2.3.0 → 2.4.2

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/README.th.md DELETED
@@ -1,277 +0,0 @@
1
- <div align="center">
2
- <img src="https://raw.githubusercontent.com/ohm41321/luciazero/main/docs/assets/lucia.png" width="220" alt="Lucia — มาสคอตของ Luciazero">
3
- <h1>Luciazero</h1>
4
- <p>
5
- <strong>ชั้นวินัยที่พิสูจน์ได้ด้วยหลักฐานสำหรับ coding agent</strong><br>
6
- <code>วางแผน → แก้ → ตรวจ → แก้ซ้ำ</code>
7
- </p>
8
- <p>
9
- <a href="https://www.npmjs.com/package/luciazero"><img src="https://img.shields.io/npm/v/luciazero" alt="npm version"></a>
10
- <a href="https://github.com/ohm41321/luciazero/actions/workflows/ci.yml"><img src="https://github.com/ohm41321/luciazero/actions/workflows/ci.yml/badge.svg" alt="CI status"></a>
11
- <a href="LICENSE"><img src="https://img.shields.io/github/license/ohm41321/luciazero" alt="MIT license"></a>
12
- </p>
13
- </div>
14
-
15
- [English](README.md) · **ภาษาไทย**
16
-
17
- Luciazero เป็นชั้นวินัยขนาดเล็กสำหรับ coding agent รองรับ Claude Code,
18
- Codex CLI และ runtime ที่ใช้ skill ได้ ผ่านการติดตั้งแบบ plugin, CLI
19
- หรือเฉพาะ skill
20
-
21
- > งานเสร็จต้องพิสูจน์ด้วยคำสั่ง ไม่ใช่คำตัดสินของ agent
22
- > ถ้ายังไม่มีคำสั่งตรวจ นั่นคือบั๊กแรก
23
-
24
- ภายในมี [doctrine 9 ข้อ](claude/luciazero.md) ที่สั้น, skill แบบเรียกเมื่อจำเป็น
25
- 11 ตัว, hook ติดตามการ verify, reviewer ที่ route ตามความเสี่ยง และ eval harness
26
- นี่คือชั้นวินัยที่ทำให้คำกล่าวว่าเสร็จตรวจสอบได้ ไม่ใช่ agent runtime หรือระบบ
27
- orchestration สำหรับรันงานข้ามคืน
28
-
29
- ## ดูลูปการทำงาน
30
-
31
- GIF นี้ขับด้วย hook ที่ ship จริง ไม่ใช่ mockup:
32
-
33
- <p align="center">
34
- <img src="https://raw.githubusercontent.com/ohm41321/luciazero/main/docs/assets/statusline-demo.gif" width="720" alt="แก้ไฟล์แล้วขึ้น unverified, verify แดงยังคงแดง และเปลี่ยนเป็นเขียวเมื่อผ่าน">
35
- </p>
36
-
37
- ```text
38
- ✎ unverified → มีการแก้หลังการตรวจครั้งล่าสุด
39
- ❌ verify RED → การตรวจครั้งล่าสุดไม่ผ่าน
40
- ✅ verify 3m → การตรวจผ่านเมื่อสามนาทีก่อน
41
- ```
42
-
43
- ## ปกป้องอะไร
44
-
45
- | ความพัง | กลไกที่จับ |
46
- |---|---|
47
- | บอกว่า “เสร็จ” โดยไม่ตรวจ | Stop hook เตือน; strict gate แบบ opt-in บล็อกเมื่อผลแดง |
48
- | นับ `cat test.sh` ว่ารัน test | จับคู่ `LUCIAZERO_VERIFY_CMD` แบบ exact |
49
- | ลดความเข้ม test เพื่อให้เขียว | Doctrine ข้อ 3 + check-suppression guard |
50
- | Test ใหม่ผ่านแม้ไม่มี fix | `revert-probe.sh` รัน test กับโค้ดเก่า |
51
- | ทำ scope หายเงียบ ๆ | `/done` บังคับให้ส่งครบหรือระบุสิ่งที่เว้นไว้ |
52
- | เดินเข้าทางตันเดิมอีกรอบ | `/retro` บันทึก และ `/debug` อ่านก่อนเริ่ม |
53
- | Context หายตอนเปลี่ยน agent | `/lucia-relay` ส่งหลักฐาน next action และ negative knowledge |
54
-
55
- กลไกที่ตรวจด้วยเครื่องรันใน `test.sh`; ข้ออ้างด้านพฤติกรรมวัดด้วย
56
- [eval harness](eval/README.md)
57
-
58
- ## ส่งต่องานข้าม agent
59
-
60
- `/lucia-relay` ส่งต่อการตัดสินใจและหลักฐาน แทนการเท transcript ทั้งแชต
61
- Session A สร้าง `LUCIA_RELAY.json` ที่เป็น canonical พร้อม human view
62
- ที่ generate จากไฟล์นั้น ส่วน Session B ตรวจ Git fingerprint, อ่าน next action
63
- กับสมมติฐานที่ถูกหักล้าง, รัน verification ซ้ำ แล้ว consume relay อย่างชัดเจน
64
-
65
- Relay ต้องตัดสินก่อนว่าผู้รับอยู่ที่ไหน: ถ้าอยู่เครื่องเดิมใช้ full local path
66
- ได้ แต่ถ้าข้ามเครื่องต้องเป็น commit ที่ clean และ push แล้วเท่านั้น ตัวตรวจจะ
67
- ปฏิเสธ path เฉพาะเครื่อง และให้ใส่ความรู้ที่อยู่นอก repo ลงใน JSON โดยตรง
68
-
69
- <p align="center">
70
- <img src="https://raw.githubusercontent.com/ohm41321/luciazero/main/docs/assets/relay-demo.gif" width="720" alt="Session หนึ่งสร้าง Lucia Relay อีก session ตรวจสอบ พบ repository drift รันหลักฐานซ้ำ และ consume relay">
71
- </p>
72
-
73
- GIF นี้รัน [implementation ที่ ship จริง](docs/assets/relay-demo.sh) ใน Git
74
- repository ชั่วคราว Fixture `relay-transfer` ใน CI ให้ reference ที่สมบูรณ์
75
- 6/6 และปฏิเสธ handoff Markdown ทั่วไป (1/6) กับ relay ที่เนื้อหาครบแต่
76
- fingerprint เก่า (5/6) ตัวเลขเหล่านี้เป็นการตรวจ protocol ด้วยเครื่อง
77
- **ไม่ใช่ผล uplift ของโมเดล** อ่าน [วิธีวัดและข้อจำกัด](docs/benchmark.md#skill-protocol-evidence)
78
-
79
- ## ติดตั้ง
80
-
81
- Luciazero รองรับ Claude Code, Codex CLI และ agent ที่ใช้ skill ได้ เลือกช่องทาง
82
- ที่เหมาะกับ workflow ของคุณ
83
-
84
- <details>
85
- <summary><strong>แนะนำ · Claude Code plugin</strong></summary>
86
-
87
- ได้ doctrine, skill ทั้งหมด, reviewer และ hook ติดตาม verify:
88
-
89
- ```text
90
- /plugin marketplace add ohm41321/luciazero
91
- /plugin install luciazero@luciazero
92
- ```
93
-
94
- เริ่ม repo ด้วย `/luciazero:ready` ชื่อ skill แบบ plugin มี prefix
95
- `/luciazero:` และไม่มี statusline เพราะ Claude Code plugin ตั้งค่านี้ไม่ได้
96
-
97
- </details>
98
-
99
- <details>
100
- <summary><strong>เฉพาะ skill · agent ที่รองรับ</strong></summary>
101
-
102
- ```bash
103
- npx skills add ohm41321/luciazero
104
- ```
105
-
106
- ช่องทางนี้ติดตั้งเฉพาะ skill 11 ตัว ไม่มี doctrine, reviewer หรือ hook
107
-
108
- </details>
109
-
110
- <details>
111
- <summary><strong>Classic install · Claude Code หรือ Codex CLI</strong></summary>
112
-
113
- ```bash
114
- npx luciazero # Claude Code
115
- npx luciazero --with-hooks # Claude Code + hook/statusline; ต้องมี Python 3.9+
116
- npx luciazero codex # Codex CLI
117
-
118
- npx luciazero uninstall
119
- npx luciazero uninstall-codex
120
- ```
121
-
122
- ฝั่ง Claude Code ให้เลือก plugin หรือ classic อย่างใดอย่างหนึ่งเพื่อไม่ต่อ hook
123
- ซ้ำ Classic มี `--status`; Codex ได้ doctrine และ skill แต่ไม่มี hook/statusline
124
- เฉพาะ Claude Installer สำรองชื่อที่ชน และตอนถอนจะลบเฉพาะสำเนาที่ Luciazero
125
- ยืนยันความเป็นเจ้าของได้
126
-
127
- </details>
128
-
129
- ## อัปเดตอย่างปลอดภัย
130
-
131
- Luciazero จะไม่แก้ไฟล์ของ classic หรือ Codex อยู่เบื้องหลัง
132
-
133
- ```bash
134
- npx luciazero@latest check-update # อ่านอย่างเดียว ติดต่อ npm เฉพาะตอนนี้
135
- npx luciazero@latest update # อัปเดต classic/Codex ทุกชุดที่ตรวจพบ
136
- ```
137
-
138
- `update` รักษาโหมดเดิมว่า Claude classic ใช้ hook หรือไม่ ซ่อมไฟล์ managed ที่
139
- เก่า จะไม่เริ่มติดตั้งใหม่ถ้าหา installation เดิมไม่พบ และจะหยุดเมื่อพบเวอร์ชัน
140
- ที่ใหม่กว่าหรือข้อมูลเวอร์ชันเสีย หลังอัปเดตให้เริ่ม agent session ใหม่
141
-
142
- ช่องทางอื่นใช้ตัวอัปเดตของช่องทางนั้น:
143
-
144
- ```bash
145
- claude plugin update luciazero@luciazero # แล้วรัน /reload-plugins
146
- npx skills update # ตรวจ scope ใน prompt ก่อนยืนยัน
147
- ```
148
-
149
- คำสั่ง skills จะอัปเดต skill ทุกตัวใน scope ที่เลือก ไม่ใช่เฉพาะ Luciazero
150
- จึงควรตรวจ prompt ก่อนยืนยัน
151
-
152
- Claude Code อัปเดต plugin ตอนเริ่มโปรแกรมอัตโนมัติได้: เปิด `/plugin` →
153
- **Marketplaces** → **luciazero** → **Enable auto-update** โดย marketplace
154
- ภายนอกจะปิดตัวเลือกนี้เป็นค่าเริ่มต้น ถ้าต้องการเพียงการแจ้งเตือน release ให้ใช้
155
- GitHub **Watch → Custom → Releases**
156
-
157
- ## ภาพรวม skill ทั้ง 11 ตัว
158
-
159
- รัน `/ready` ก่อนหนึ่งครั้ง ที่เหลือใช้เมื่อถึงจังหวะของมัน
160
-
161
- | จังหวะ | Skill | ผลลัพธ์ |
162
- |---|---|---|
163
- | เข้า repository | `/ready` | หาหรือสร้างคำสั่ง verify และพิสูจน์ว่าแดงได้ |
164
- | โครงสร้างหรือหลักฐานไล่อ่านยาก | `/show` | แสดงความเชื่อมโยง สิ่งที่เปลี่ยน และหลักฐานด้วยภาพที่เล็กที่สุด |
165
- | อยากได้เสียงพูดแบบลูเซียระหว่างเขียนโค้ด | `/imouto-mode focus` | เพิ่มน้ำเสียงน้องสาวซึนเดเระแบบอ่อน ๆ; ต้องเปิดเองและค่าเริ่มต้นปิด |
166
- | ก่อนงานเสี่ยง กำกวม หรือแตะหลาย module | `/plan` | ล็อก scope และหลักฐานยอมรับที่สังเกตได้ |
167
- | บั๊กที่มองรอบแรกไม่ออก | `/debug` | Reproduction, hypothesis ledger, regression test |
168
- | รู้ revision ดีและเสีย | `/bisect` | หา first bad commit ใน worktree ชั่วคราว |
169
- | ก่อนบอกว่าเสร็จ | `/done` | Full verify, skeptic review และรายงาน scope |
170
- | ต้องส่งงานไปที่อื่น | `/lucia-relay` | State แบบ JSON + Markdown พร้อมตรวจ drift |
171
- | ปรับ performance | `/experiment` | Baseline, เกณฑ์ชนะ และการวัดแบบควบคุม |
172
- | ดูนิสัยการ verify ในเครื่อง | `/discipline-report` | รายงาน outcome กรองตามเวลา/โปรเจกต์ |
173
- | หลังงานยาก | `/retro` | เก็บบทเรียนและแนวทางที่พิสูจน์แล้วว่าไม่เวิร์ก |
174
-
175
- `/imouto-mode` จะไม่เปิดตัวเอง ใช้ `focus` (แนะนำ), `on` หรือ `off` โดยโหมดมีผล
176
- เฉพาะ invocation นั้น ไม่เขียน config และหลักฐานทางเทคนิคจะใช้ภาษาตรงเสมอ
177
- ผู้ใช้ plugin เรียก `/luciazero:imouto-mode focus`; ผู้ใช้ Codex เรียก
178
- `$imouto-mode focus`
179
-
180
- Diff เสี่ยงจะผ่าน `reviewer` แบบอ่านอย่างเดียวใน focus `security`, `contract`
181
- หรือ `general` ถ้าเสี่ยงทั้ง security และ contract จะตรวจแยกสองรอบ
182
-
183
- ## หลักฐานและข้อจำกัด
184
-
185
- <!-- BEGIN GENERATED: benchmark-evidence -->
186
-
187
- ### ผล Claude
188
-
189
- Snapshot: 2026-08-11 อัตราผ่านทุกเกณฑ์ สร้างจาก raw rows ที่ commit ไว้:
190
-
191
- | โมเดล Claude | Luciazero | Bare | ผลต่าง |
192
- |---|---:|---:|---:|
193
- | Haiku†, 10 valid/task | 36/60 (60%) | 27/60 (45%) | +15pp |
194
- | Sonnet, 4–5 valid/task* | 25/27 (93%) | 16/26 (62%) | +31pp |
195
-
196
- Arm `Luciazero` ติดตั้ง classic pack แบบไม่มี hook จึงไม่ใช่การแยกผลของ
197
- doctrine เพียงอย่างเดียว *Sonnet ยังเป็นผล preliminary เพราะ invalid 8 rows
198
- ทำให้หลาย arm มี valid run เพียง 4 รอบ ส่วนผล top-up `+37pp` เดิมถูกยกเลิก
199
- เพราะหา replacement raw rows ที่ใช้ตรวจสอบซ้ำไม่ได้
200
-
201
- †Provenance ของโมเดล Haiku ยังไม่สมบูรณ์: มีเพียง 70/140 rows ที่บันทึก
202
- model identity ส่วนอีก 70 rows ระบุได้แค่ระดับไฟล์/รายงานของ campaign
203
- จึงตรวจสอบโมเดลซ้ำแบบราย row ไม่ได้
204
-
205
- ### GPT/Codex pilot — ผลสำรวจเบื้องต้น
206
-
207
- Snapshot: 2026-08-12.
208
-
209
- | โมเดล | invocation ที่ valid | task ที่จับคู่ได้ | Luciazero | Bare | ผลต่างที่พบ |
210
- |---|---:|---:|---:|---:|---:|
211
- | GPT-5.6 Terra, medium | 11/12* | 5 | 5/5 runs, 28/28 criteria | 5/5 runs, 28/28 criteria | +0pp† |
212
-
213
- *Luciazero 1 run ถูกตัดเป็น invalid เพราะ model capacity เต็ม †นี่คือ
214
- **สัญญาณว่า benchmark อาจง่ายเกินไป ไม่ใช่หลักฐานว่ามีหรือไม่มี uplift** เพราะ
215
- pilot มีเพียง 1 run ต่อ arm ต่อ task ดู [ผลเต็ม](docs/benchmark.md),
216
- [campaign registry](eval/results/campaigns.json) และ
217
- [raw pilot](eval/results/gpt-5.6-terra-medium-pilot-2026-08-12.jsonl)
218
-
219
- <!-- END GENERATED: benchmark-evidence -->
220
-
221
- ## ความปลอดภัยและ requirement
222
-
223
- - Node.js 18+ สำหรับ CLI และ discipline report
224
- - Bash สำหรับ classic installer; Python 3.9+ สำหรับ hook และ Lucia Relay (`install.sh --with-hooks` ปฏิเสธเวอร์ชันเก่ากว่านี้)
225
- - Installer, hook, helper และ grader หลักรัน offline ส่วน behavioral eval จริง
226
- เรียก model CLI และใช้เครดิต API หรือโควตา subscription
227
- - Hook รันคำสั่งบนเครื่อง ควรอ่านก่อนเปิดใช้
228
- - Telemetry ของ hook อยู่ใน private state แยกตาม session ภายในเครื่อง เก็บเวลา
229
- wall time ของ turn/Bash และจำนวน Bash, verify, skill ที่ model/user เรียก
230
- โดยไม่เก็บ command, ชื่อ skill หรือ path ดิบ
231
- - ตั้ง `LUCIAZERO_VERIFY_CMD` เป็นคำสั่ง verify ระดับเร็วที่ exact ของ repo
232
- - ใส่ `LUCIAZERO_STRICT_VERIFY_CMD` ใน personal settings เท่านั้น ห้าม commit ลง
233
- config ของ repository; strict mode จะ fail open เมื่อเกิด internal error
234
- - `.claude/settings.json` ที่ commit ไว้ใน repository ตั้งค่า Luciazero ไม่ได้เลย:
235
- คีย์ `LUCIAZERO_*` ทุกตัว (รวม `CLAUDE_CONFIG_DIR`) ที่ประกาศไว้ที่นั่น — ทั้งใน
236
- ไดเรกทอรีที่เปิด session และไดเรกทอรีแม่จนถึง root ของ repo — จะถูกปฏิเสธ
237
- และแจ้งชื่อคีย์หนึ่งครั้งตอน `SessionStart` ส่วน settings ของคุณเองยังใช้ได้:
238
- การค้นหยุดที่ root ของ repo และที่ `$HOME` ไม่เคยอ่าน `~/.claude/settings.json`
239
- หรือ `.claude/settings.local.json` ของคุณ
240
- - Windows: installer และ hook เป็นสคริปต์ Bash ให้รันใน WSL;
241
- `npx luciazero discipline` ใช้ได้บน Node ปกติ
242
-
243
- อ่าน trust boundary ฉบับเต็มใน [SECURITY.md](SECURITY.md)
244
-
245
- ## พัฒนา Luciazero
246
-
247
- ```bash
248
- ./test.sh --fast # loop ระหว่างทำ: ตรวจ doctrine/hook/report/Relay ส่วนหลัก
249
- ./test.sh # ปิดงาน/CI: ตรวจ eval, packaging และ install แบบเต็ม
250
- ```
251
-
252
- fast tier เป็นคำสั่งระหว่างทำงานของ repo นี้; ถ้าแก้ส่วนที่ fast tier ไม่ครอบคลุม
253
- ให้ใช้คำสั่ง targeted ของส่วนนั้น ส่วน full tier (`./test.sh` หรือ
254
- `./test.sh --full`) ครอบคลุม script, state ของ hook, Relay, bisect, manifest ของ
255
- plugin/npm, eval grader ที่พิสูจน์ตัวเองได้ และ install → reinstall → uninstall
256
- แบบ sandbox ทั้ง Claude Code และ Codex โดย CI และ `/done` ใช้ full tier
257
-
258
- อ่านต่อ:
259
-
260
- - [สถาปัตยกรรมและ trade-off](docs/comparison.md)
261
- - [วิธีทำ eval](eval/README.md)
262
- - [ผล benchmark และแผน GPT](docs/benchmark.md)
263
- - [ทะเบียน raw campaign](eval/results/campaigns.json)
264
- - [บันทึกการทดลอง](docs/experiments.md)
265
- - [การ contribute](CONTRIBUTING.md)
266
- - [การ publish](docs/publishing.md)
267
- - [Changelog](CHANGELOG.md)
268
-
269
- ## สนับสนุนโปรเจกต์
270
-
271
- Luciazero ใช้มาสคอตร่วมกับ [Lucia](https://lucia-discord-bot.vercel.app)
272
- Discord bot ภาษาไทย ถ้า Luciazero ช่วยลดรอบ review ได้
273
- [สนับสนุนโปรเจกต์ได้ที่นี่](https://easydonate.app/itsathitz) 💚
274
-
275
- ## License
276
-
277
- [MIT](LICENSE)