luciazero 2.2.0 → 2.4.1

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