# chamnan — ให้ repository รู้จักตัวเอง

<sub>[🇬🇧 English](../../README.md) · [🇨🇳 中文](README.zh-CN.md) · [🇹🇼 繁體中文](README.zh-TW.md) · [🇯🇵 日本語](README.ja.md) · [🇰🇷 한국어](README.ko.md) · [🇻🇳 Tiếng Việt](README.vi.md) · [🇮🇩 Indonesia](README.id.md) · [🇮🇳 हिन्दी](README.hi.md) · [🇧🇩 বাংলা](README.bn.md) · [🇵🇰 اردو](README.ur.md) · [🇸🇦 العربية](README.ar.md) · [🇮🇱 עברית](README.he.md) · [🇹🇷 Türkçe](README.tr.md) · [🇷🇺 Русский](README.ru.md) · [🇺🇦 Українська](README.uk.md) · [🇵🇱 Polski](README.pl.md) · [🇨🇿 Čeština](README.cs.md) · [🇩🇪 Deutsch](README.de.md) · [🇳🇱 Nederlands](README.nl.md) · [🇫🇷 Français](README.fr.md) · [🇪🇸 Español](README.es.md) · [🇵🇹 Português](README.pt-PT.md) · [🇧🇷 Português (BR)](README.pt-BR.md) · [🇮🇹 Italiano](README.it.md) · [🇷🇴 Română](README.ro.md) · [🇬🇷 Ελληνικά](README.el.md) · [🇭🇺 Magyar](README.hu.md) · [🇸🇪 Svenska](README.sv.md) · [🇫🇮 Suomi](README.fi.md) · [🇩🇰 Dansk](README.da.md) · [🇳🇴 Norsk](README.no.md) · [🇵🇭 Tagalog](README.tl.md)</sub>

> หน้านี้ไม่มีตัวเลขโดยตั้งใจ ผลวัดทุกอย่างอยู่ใน README ภาษาอังกฤษและเปลี่ยนทุก release ส่วนหน้านี้ไม่เปลี่ยน → [Evidence](../../README.md#evidence)

## นี่คืออะไร

ปลั๊กอิน Claude Code ที่สร้างดัชนีของ repository ให้ agent อ่านแทนการไล่เปิดไฟล์ และเก็บบริบททางวิศวกรรมที่เกิดขึ้นระหว่างทำงาน — สถานะงาน บันทึกเซสชัน เหตุผลเบื้องหลังการตัดสินใจ และขั้นตอนที่ต้องคิดใหม่ทุกครั้ง

ทุกอย่างที่มันเขียนคือ markdown ธรรมดาที่ commit ไว้ข้างโค้ด ไม่มีการเรียกเครือข่ายตอนทำงาน ไม่มีฐานข้อมูล ไม่มี daemon ไม่มีโมเดล embedding — Python standard library ล้วน

## มันแก้ปัญหาอะไร

ทุกครั้งที่เปิดเซสชันใหม่ หรือทุกครั้งที่ context ถูกบีบ สิ่งที่ agent เข้าใจเกี่ยวกับโค้ดของคุณหายไปหมด แล้วมันก็เริ่มไล่อ่านไฟล์ใหม่ตั้งแต่ต้น

chamnan ทำให้การค้นพบซ้ำนั้นไม่ต้องเกิดขึ้น ดัชนีถูกยื่นให้ตอนเริ่มเซสชัน ด้วยต้นทุนที่มีขอบเขตแน่นอน แทนการอ่านไฟล์ที่ไม่มีขอบเขต

## ติดตั้ง

```bash
claude plugin marketplace add ArcticFox2029/chamnan
claude plugin install chamnan@chamnan
```

เปิดเซสชันใหม่ แล้วสั่ง `/chamnan:bootstrap` หนึ่งครั้งต่อ repository

<!-- generated: build_sections.py -->

## ฟีเจอร์ทั้งหมด

สี่ความสามารถหลัก ทุกอย่างในตารางนี้ทำงานจริงแล้วในรุ่นปัจจุบัน แต่ละส่วนปิดแยกกันได้ใน `.chamnan/config.json` และไม่มีส่วนไหนต้องพึ่งอีกส่วน

### เข้าใจ — มีอะไรอยู่บ้าง และอะไรเชื่อกับอะไร

| | |
|---|---|
| **ดัชนี** | `MAP.md` — หนึ่งบรรทัดต่อไฟล์ สร้างจากโค้ดจริง agent อ่านดัชนี แล้ว grep เอาเฉพาะรายละเอียดที่ต้องการ ไม่ต้องไล่เปิดทั้ง tree |
| **ผลกระทบ** | ใครพึ่งไฟล์นี้อยู่ และเทสตัวไหนคุมมัน ไฟล์บอก import ของตัวเองอยู่แล้วที่หัวไฟล์ แต่ "ใครเรียกฉัน" คือด้านที่ต้องค้นทุกครั้ง — grep หาก่อนแก้ |
| **โครงสร้างข้อมูล** | ชื่อตารางและ model พร้อมคำอธิบายบรรทัดเดียว ดึงจาก DDL, migration และ ORM ไม่ใช่ dump schema ทั้งก้อน จะมีเฉพาะ repo ที่นิยามไว้จริง |
| **API** | method, path และ handler จาก route decorator, เอกสาร OpenAPI และ `.proto` ไม่ใช่ spec ทั้งฉบับ |
| **ค่าคอนฟิก** | ชื่อ environment variable ที่ repo อ่าน **ชื่อเท่านั้น ไม่เคยเก็บค่า** และเตือนถ้า `.env` ไม่ได้อยู่ใน gitignore |
| **การ deploy** | สิ่งที่รันจริง อ่านจาก Kubernetes, Ansible, Compose, Helm และ CI manifest — kind, ชื่อ, image, role, pipeline ส่วน Secret ให้แค่ชื่อ ไม่แตะข้างใน |
| **ไฟล์ที่ไม่ใช่โค้ด** | เอกสารสแกน ไฟล์ export ไฟล์บีบอัด รายงานเป็นจำนวน ขนาด และนามสกุลที่พบมาก มีไว้เพื่อไม่ให้ agent เดินไปเปิดดูเอง ซึ่งแพงกว่ามาก **ไม่เคยถูกเปิด ไม่เคยถูกอ่าน** |

### จำ — กำลังทำอะไรค้างอยู่ และทำไปทำไม

| | |
|---|---|
| **สถานะงาน** | `STATE.md` — งานที่กำลังทำอยู่ตอนนี้ ถูกยื่นให้ตอนเริ่มเซสชัน เพื่อให้การบีบ context ไม่ลบมันทิ้ง |
| **บันทึกเซสชัน** | หนึ่งไฟล์ต่อเซสชันใน `.chamnan/sessions/` **เฉพาะงานที่ยังไม่จบ** เท่านั้นที่ส่งต่อไปเซสชันหน้า เซสชันที่ปิดงานเรียบร้อยจะไม่ส่งอะไรเลย |
| **ความทรงจำ** | `decisions/`, `lessons/`, `rules/` — rule คือข้อบังคับถาวร จึงอยู่ต่อหน้า agent ทุกเซสชัน ส่วน decision กับ lesson ส่งแค่หัวข้อ แล้วค่อยถูกอ่านเมื่อหัวข้อดูเกี่ยว |
| **เธรดที่เปิดค้าง** | สายงานที่ยังไม่จบ พร้อมประวัติว่าไฟล์ไหนถูกแตะไปแล้วบ้างในสายนั้น และตามต่อได้แม้ไฟล์จะถูกเปลี่ยนชื่อไปแล้ว |

### ใช้ซ้ำ — สิ่งที่แก้ไปแล้วครั้งหนึ่ง

| | |
|---|---|
| **ขั้นตอนงาน** | skill ที่ agent **เขียนเอง** เมื่อเจอเรื่องซับซ้อนหรือทำซ้ำ ไม่ใช่ไลบรารีสำเร็จรูปที่แถมมา แต่เป็นกลไก |
| **เครื่องมือ** | สังเกตว่าสคริปต์ชั่วคราวตัวเดิมถูกเขียนซ้ำอีกครั้ง แล้วเสนอให้เก็บไว้ พร้อมแนะนำมันก่อนที่คุณจะเขียนสคริปต์ใหม่ |
| **ลำดับงาน** | สังเกตว่าคำสั่งชุดเดิมถูกรันเรียงเหมือนกันในหลายวันที่แยกกัน แล้วเสนอให้จดไว้ |

### สะสม — สิ่งที่ repository เรียนรู้เกี่ยวกับตัวเอง

| | |
|---|---|
| **หมุดหมาย** | การเปลี่ยนแปลงไม่กี่ครั้งที่เปลี่ยนรูปร่าง repository — อะไรย้าย ทำไมถึงคุ้ม และกระทบส่วนไหนบ้าง |
| **ผู้สมัคร** | ลำดับคำสั่งที่ตรวจพบว่าทำซ้ำ ถูกพักไว้ให้คน **ยืนยันก่อนเสมอ** ไม่มีอะไรถูกเลื่อนขั้นอัตโนมัติ |
| **สภาพแวดล้อม** | ประกาศไว้ว่า production หรือ staging คืออะไร มีข้อห้ามอะไร แล้วเตือนเมื่อคำประกาศนั้นเก่าเกินไป |
| **รายงาน** | workspace เก็บอะไรไว้บ้าง เข้าถึงได้จริงไหม และ context ต่อเทิร์นของ repo คุณเปลี่ยนไปอย่างไร เป็นตัวเลขของคุณเอง ไม่ใช่ของเรา |

งานวิศวกรรมที่ทำซ้ำกลายเป็นความรู้ของ repository ที่ใช้ซ้ำได้ — **ไม่ใช่การเทรนโมเดล และไม่ใช่การแทนที่นักพัฒนา** มันคือกลไกรักษางานที่ปกติแล้วจะอยู่แค่ในหัวคนที่ทำ

## คำสั่ง

เรียกจากเชลล์ได้ทุกตัว และ agent ก็เรียกเองได้

| | |
|---|---|
| `chamnan-map` | สร้างและอัปเดตดัชนี |
| `chamnan-report` | workspace เก็บอะไรไว้ และ context ต่อเทิร์นเปลี่ยนไปอย่างไร |
| `chamnan-impact` | ใครพึ่งไฟล์นี้ และเทสไหนคุมมัน |
| `chamnan-timeline` | เกิดอะไรขึ้นกับไฟล์นี้มาแล้วบ้าง |
| `chamnan-peek` | บอกว่าไฟล์ใหญ่มีอะไรอยู่ข้างใน โดยไม่ต้องอ่านมันเข้า context |
| `chamnan-promote` | เก็บสคริปต์ไว้เป็นเครื่องมือประจำ repo |
| `chamnan-candidates` | ดู ยืนยัน หรือปัดตกสิ่งที่ระบบตรวจพบว่าทำซ้ำ |
| `chamnan-env` | ประกาศสภาพแวดล้อมและข้อห้ามของมัน แล้วตรวจว่าคำประกาศยังใหม่อยู่ไหม |
| `chamnan-age` | ความรู้ที่เก็บไว้เริ่มเก่าตรงไหนแล้ว |

และ skill ที่สั่งได้ในเซสชัน: `/chamnan:bootstrap` `/chamnan:remap` `/chamnan:resume` `/chamnan:remember` `/chamnan:milestone` `/chamnan:capture` `/chamnan:promote` `/chamnan:report`

## มันเขียนอะไร ไว้ที่ไหน

ทุกอย่างอยู่ใน `.chamnan/` เป็น markdown กับ JSON ธรรมดา อ่านเองได้ แก้ด้วยมือได้ ลบทิ้งได้โดยไม่พังอะไร

| | |
|---|---|
| `MAP.md` | มีอะไรอยู่ และอะไรพึ่งอะไร |
| `STATE.md` | กำลังทำอะไรอยู่ตอนนี้ |
| `sessions/` | งานรอบที่แล้วหยุดตรงไหน |
| `memory/` | การตัดสินใจ บทเรียน และข้อบังคับถาวร |
| `threads/` | สายงานที่ยังเปิดค้าง |
| `skills/` · `tools/` | ขั้นตอนและสคริปต์ที่คุ้มค่าจะเก็บ |
| `milestones.md` | การเปลี่ยนแปลงที่เปลี่ยนรูปร่าง repository |
| `config.json` | เปิดปิดแต่ละส่วน และเพดานขนาดของบล็อกที่ยื่นเข้าเซสชัน |

**สิ่งเดียวที่เขียนนอก `.chamnan/`** คือ Git pre-commit hook ที่ช่วยให้ดัชนีตามทันโค้ด ติดตั้งเฉพาะเมื่อคุณตอบตกลงเท่านั้น และถอนออกได้

**agent ไม่ได้เรียนรู้อะไร** ไม่มีการเทรน ไม่มีอะไรค้างอยู่นอกโฟลเดอร์นี้ เซสชันหน้ายังเริ่มจากศูนย์เหมือนเดิม แค่เริ่มจากศูนย์ *ใน repository ที่อธิบายตัวเองได้* ความต่อเนื่องอยู่ในไฟล์ ไม่ได้อยู่ในโมเดล

## ความปลอดภัย

| | |
|---|---|
| **ไม่เรียกเครือข่ายตอนทำงาน** | ไม่มีเลย ไม่ต้องมี API key ไม่มีอะไรถูกส่งออกไปไหน |
| **ไม่แก้ซอร์สโค้ดของคุณ** | มันรายงาน ไม่แก้ ดัชนีคัดลอกคอมเมนต์ที่คุณเขียนไว้แล้ว ไม่ได้แต่งขึ้นเอง ไฟล์ที่ไม่มีคอมเมนต์จะถูกระบุชื่อไว้ให้คุณไปเติมเอง |
| **ไม่มี daemon ไม่มีงานเบื้องหลัง** | ไม่มีโปรเซสค้างอยู่ ไม่มีฐานข้อมูล ไม่มีโมเดล embedding — Python standard library ล้วน |
| **ค่าลับถูกกรองก่อนเสมอ** | ทุกอย่างที่จะเขียนหรือยื่นเข้าเซสชันผ่านตัวกรองค่าลับก่อน เก็บ *ชื่อ* ตัวแปร ไม่เก็บค่า และเพดานที่ตัวกรองนี้ทำไม่ได้ก็เขียนไว้ตรงๆ ข้างตัวเลขใน README ภาษาอังกฤษ |
| **ปลั๊กอินที่ติดตั้งแล้วทำอะไรได้บ้าง** | อธิบายไว้ครบใน README ภาษาอังกฤษ รวมถึงจุดที่ chamnan ตัดสายโซ่การรั่วไหลออก |

## ความต้องการของระบบ

Claude Code · Python · Git · macOS, Linux หรือ Windows

ไม่ต้องมีอย่างอื่นอีก ไม่มี dependency ที่ต้องลงเพิ่ม เวอร์ชันขั้นต่ำของ Python ระบุไว้ใน [README › Requirements](../../README.md#requirements) หน้านี้ไม่เขียนตัวเลขไว้ เพราะตัวเลขคือสิ่งที่เปลี่ยน

## ปิดหรือถอนการติดตั้ง

ปิดทีละส่วนได้ใน `.chamnan/config.json` · ปิดทั้ง repository ได้ · ถอนปลั๊กอินออกทั้งเครื่องได้ · ลบ `.chamnan/` ทิ้งได้ทุกเมื่อ ไม่มีอะไรพัง — ขั้นตอนละเอียดอยู่ใน [README › Update, disable, uninstall](../../README.md#update-disable-uninstall)

<!-- /generated -->

## อ่านก่อนติดตั้ง

**chamnan เหมาะกับโฟลเดอร์หลักที่คุณกลับมาทำงานซ้ำๆ** ทุกอย่างที่มันทำคือการลงทุนที่คืนทุนในเซสชันถัดๆ ไป — ถ้าเป็น repo ที่เปิดครั้งเดียว คุณจ่ายไปทั้งหมดแล้วไม่ได้อะไรกลับ

**มันรายงาน ไม่แก้โค้ดให้** ดัชนีคัดลอกคอมเมนต์ที่คุณเขียนไว้แล้ว ไม่ได้แต่งขึ้นเอง ไฟล์ที่ไม่มีคอมเมนต์จะถูกระบุชื่อไว้ให้คุณไปเติมเอง

**ข้อจำกัดถูกวัดและเขียนไว้แล้ว** รวมถึงผลวัดที่ค้านฟีเจอร์หลักของมันเอง และฟีเจอร์ที่วัดแล้วตัดสินใจไม่สร้าง — อยู่ใน Evidence ของ README ภาษาอังกฤษ

## รายละเอียดอยู่ที่ไหน

| | |
|---|---|
| ตัวเลขทุกตัว และวิธีที่วัดมันมา | [README › Evidence](../../README.md#evidence) |
| ชุดทดสอบถดถอย — รันเองได้ | [`tests/run_tests.py`](../../tests/run_tests.py) |
| แต่ละรุ่นแก้อะไร และทำไม | [CHANGELOG.md](../../CHANGELOG.md) |
| ทุกอย่าง | [README.md](../../README.md) |

---

<sub>MIT · [github.com/ArcticFox2029/chamnan](https://github.com/ArcticFox2029/chamnan)</sub>
