MILAGPT
«Biznes uchun»dan boshlang: ishga tushirishgacha uch qadam.
Tahlilga yozilishTelegram ochiladi
RU·EN·UZ
Hujjatlar · Mijoz siri

Mijoz siri: har bir xabar tekshiriladi

Telegramga har bir xabar ketishidan oldin Milaning matni qoʻriqchidan oʻtadi. Notoʻgʻri chat, kalit, karta raqami, boshqa mijoz chatining nomi — va xabar ketmaydi. Mila sababini oladi va qaytadan yozadi. Quyidagi har bir qatorda kodga havola bor.

Bitta Milada koʻp mijozi bor agentlik va maslahatchi uchun.

Qanday ishlaydi

Har bir xabardan oldin tekshiruv

Qoʻriqchi — kichik skript. Mila Telegramga biror narsa yuborishidan oldin Claude Code uni ishga tushiradi. Promptdagi qoidani unutish mumkin, chiqishda turgan skriptni — yoʻq. send-guard.py:1-5 settings.json:35-46

01 · HAR SAFAR

Javob va tahrirdan oldin

Yangi xabarda ham, yuborilgan xabarni tahrirlashda ham ishga tushadi. Boshqa vositalarga tegmaydi.

send-guard.py:13-15
02 · NIMANI KOʻRADI

Chat va matn

Xabar qaysi chatga ketayotganini va matnning oʻzini koʻradi, ikkalasini oʻz qoidalari bilan solishtiradi.

send-guard.py:16-21
03 · YOʻQ

Yuborish oʻrniga sabab

Biror narsa notoʻgʻri boʻlsa, xabar qoladi. Mila «Yubormayman:» va hamma sabablarni oladi, matnni qaytadan yozadi.

send-guard.py:179-187
04 · NOSOZLIK

Qoʻriqchi yiqilsa — hech narsa ketmaydi

Qoʻriqchida onFailure: block turadi: sozlamalar shablonida, oʻrnatuvchi yozuvida va yangilanishdan keyin allaqachon oʻrnatilgan hooklarda (Claude Code 2.1.295 va yangisi). U yiqilsa yoki qotib qolsa, xabar tekshiruvsiz ketmaydi. Qoʻriqchi testi repozitoriydagi har bir oʻzgarishda ishga tushadi.

settings.json:42 install/install.sh:305 update.py:381-383 skills.yml:12 CHANGELOG.md:137
Mijoz siri

Begona ish oʻz chatida qoladi

Milada hamma chatlar uchun bitta seans, ular orasida ichki devor yoʻq. Shuning uchun qulf chiqishda turadi: tekshiruv yuborish paytida boʻladi. Bu uning konstitutsiyasidagi birinchi qonun: bir ishning tafsiloti boshqa ish haqidagi suhbatda tilga olinmaydi. send-guard.py:116-120 CONSTITUTION.md:15

Kim qayerdaligini qoʻriqchi kiruvchi xabarlar jurnalidan biladi: qaysi chatda kimlar yozgan va har bir chatning nomi qanday. send-guard.py:137-155

Bu chatga ketmaydi
U kimga yozadi

Faqat ulangan joyga

Xabar egasiga, egasi uni ulagan guruhlarga va ruxsat roʻyxatidagi odamlarning shaxsiy chatiga ketadi. Boshqa har qanday chatga — hech narsa: «faqat meni ulagan joyda gapiraman». send-guard.py:23-36 test_send_guard.py:23-24

Egasining id raqami berilmagan boʻlsa, ruxsat roʻyxati yetarli. Ikkalasi ham boʻlmasa — hali ulanmagan Milada boʻlgani kabi — qabul qiluvchi tekshirilmaydi. send-guard.py:33-35 test_send_guard.py:44-49

✓ egasi (OWNER_ID)
✓ access.json dagi guruhlar
✓ allowFrom dagi odamlar
✗ boshqa har qanday chat
Yana nima ketmaydi

Kalitlar, kartalar, ichki tafsilotlar tashqariga chiqmaydi

Oʻsha qoʻriqchi xabar kimga boʻlishidan qatʼi nazar, chatda boʻlmasligi kerak narsani qidiradi.

01 · KALITLAR

Kalitlar va tokenlar

Provayderlar kalitlari, Telegram-bot tokeni, AWS, GitHub va Slack kalitlari, API tokenlari. Xabar qoladi, maslahat esa — «kalitni qayta chiqaring».

send-guard.py:38-48 test_send_guard.py:26
02 · KARTALAR

Karta raqamlari

Karta raqami tekshiruvidan oʻtadigan 13–19 raqam guruhga hech qachon ketmaydi. Shaxsiy chatga raqam ****1234 niqobi bilan ketadi. Oʻz rekvizitlaringizga ruxsat berish mumkin; «+» bilan boshlangan telefon raqami — karta emas.

send-guard.py:49-83 send-guard.py:179-184 test_send_guard.py:59-75
03 · ICHKI TAFSILOTLAR

Yoʻllar, id, xom xatolar

Server yoʻllari, konteyner buyruqlari, provayderning xom xatolari, hooklarning ichki qismi, -100… koʻrinishidagi chat id raqamlari. Ularning oʻrniga — natija oddiy odam tilida.

send-guard.py:84-95 test_send_guard.py:27
04 · UZR

Ish kerak, «kechirasiz» emas

Rus va ingliz tilidagi uzr iboralari — «kechirasiz», «mening xatom», «afsuski, ulgurmadim» maʼnosidagi soʻzlar va «sorry» — na mijozga, na egasiga ketadi (oʻzbekcha uzrni qoʻriqchi hozircha tanimaydi): ularning oʻrniga fakt, xulosa va keyingi qadam. Konstitutsiyaning yettinchi qonuni. Istisnolar — dasturchilar chati va nuqson raqami yozilgan hisobot.

send-guard.py:97-104 CONSTITUTION.md:21 test_send_guard.py:25

Yana bir qoida: Telegram formatlashisiz qalin matn, roʻyxatlar yoki havolalar ham ketmaydi — hech kim xom yulduzchalarni koʻrmasin deb. Batafsil — Telegram haqidagi sahifada. send-guard.py:106-114

Oʻz serveringizda

Oʻrnatuvchi qoʻriqchini oʻzi qoʻyadi

Oʻrnatuvchi send-guard.pyni hooklar papkasiga qoʻyadi va uni Claude Code sozlamalariga javob va tahrir uchun onFailure: block bilan yozadi. Qayta ishga tushirilganda uni ikkinchi marta qoʻshmaydi, kalitsiz yozuvlarga esa kalitni yozib qoʻyadi; test bularning hammasini tekshiradi. install/install.sh:116-121 install/install.sh:292-312 test_install_hooks.sh:24-27 test_install_hooks.sh:28-33

Egasining id raqami MILA_OWNER_IDdan olinadi va sozlamalarga tushadi — shunda qoʻriqchi qaysi shaxsiy chat kimniki ekanini biladi. install/install.sh:320-324

Yangilanishlar qoʻriqchining yangi kodini yadroning boshqa hooklari bilan birga olib keladi. Sozlamalar faylini yangilanish hech qachon almashtirmaydi; undagi yagona oʻzgartirish — qoʻriqchi hooklariga onFailure: blockni yozib qoʻyish, avval zaxira nusxa olib. release.json:41-49 release.json:71 update.py:363-366 update.py:386-396 update.py:418

$ python3 templates/home/.claude/hooks/test_send_guard.py
✅ begona chatga — toʻxta
✅ egasiga uzr — toʻxta (7-qonun)
✅ uchinchi mijoz — baribir begona ish: toʻxta
✅ guruhga karta (boʻsh joylar bilan) — toʻxta
  jami 24/24
Ochigʻini aytsak

Qoʻriqchi nimani ushlamaydi

Repozitoriyda

Har bir qatorni oʻzingiz oʻqib chiqing

mila repozitoriysidagi yuborish qoʻriqchisi fayllari
FaylNima qiladi
send-guard.pyqoʻriqchi: qabul qiluvchi, kalitlar, kartalar, ichki tafsilotlar, uzrlar, begona ish
test_send_guard.pyqoʻriqchining 24 ta tekshiruvi
settings.jsonsozlamalar shabloni: javob va tahrirda qoʻriqchi, onFailure: block
install/install.shqoʻriqchini qoʻyadi va sozlamalarga onFailure: block bilan yozadi
test_install_hooks.shoʻrnatuvchi qoʻriqchini bir marta va onFailure: block bilan yozganini tekshiradi
release.jsonyangilanishlar hooklarni olib keladi, sozlamalar faylini hech qachon almashtirmaydi
update.pyallaqachon oʻrnatilgan qoʻriqchi hooklariga onFailure: block ni yozib qoʻyadi
CONSTITUTION.md1-qonun (sir) va 7-qonun (uzrsiz)
SECURITY.mdqoʻriqchidagi teshik haqida qanday xabar berish (ingliz tilida)
Ochiq kod · Apache-2.0

Fork qiling, oʻrgating, PR yuboring

Toʻplam ochiq: koʻnikmalar, hooklar, vositalar va shablonlar. test_send_guard.pyni oʻzingiz ishga tushiring; qoʻriqchida teshik topsangiz, qanday xabar berish SECURITY.md faylida yozilgan.

Sahifadagi faktlar: github.com/shakhruz/mila (main, 1b7251c, v1.5.3), 26.10.2026 da tekshirildi; test_send_guard.py — 24 tadan 24 tasi, test_install_hooks.sh — 12 tadan 12 tasi, test_update.sh — 32 tadan 32 tasi. Telefondagi yozishma — illyustratsiya. «Mila», «MILAGPT» va logotip — MILAGPT tovar belgilari.