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

Milaning 10 ta qonuni — va ularni ushlab turgan kod

Mijozlaringiz sirini saqlashni har qanday bot vaʼda qila oladi. Vaʼdani tekshirib boʻlmaydi, kod qatorini esa tekshirsa boʻladi. Milaning 10 ta qonundan iborat bitta konstitutsiyasi bor. Quyida har bir qonun uchun — oddiy soʻzlar bilan mazmuni, koddagi mexanizm va unga havola, kod yoʻq joyda esa ochiq belgi: 7 ta qonunni kod ushlab turadi, 10-qonunni — qisman, 8- va 9-qonunlar — faqat qoida.

Yordamchisi uning orqasidan nima qilmasligini bilmoqchi boʻlgan egaga.

Qonunlar xaritasi

Nimani kod ushlab turadi, nima esa — qoida

Kod — harakatni oʻzi toʻxtatadigan hook yoki skript. Qoida — koʻnikmadagi qator: uni model ushlab turadi, tekshirish esa faqat Milaning ishlariga qarab mumkin. Qonunlar CONSTITUTION.md faylida — har bir Mila uni birinchi oʻqiydi. CONSTITUTION.md:15-24

Milaning 10 ta qonuni va har birini nima ushlab turadi
QonunNima ushlab turadiTuri
1 · Odamning siriYuborish qoʻriqchisi: begona chatlar, begona @teglar va nomlarKod
2 · Fakt va daliltask.py: dalilsiz «bajarildi» yozilmaydiKod
3 · Sizning nomingizdanbot-send: ommaviy xabar — oldindan koʻrish va aynan shu matnga sizning bosishingizKod
4 · Pul va qaytarib boʻlmaydigan ishlarspend: chegaradan yuqori — faqat sizning bosishingiz bilanKod
5 · Shaxsiy maʼlumotlarXotirada yorliqlar, shifrlangan ombor, karta raqami niqobiKod
6 · Rad va jimlikMuddatgacha javob yoʻq — rad; «stop» — toʻxtatish roʻyxatigaKod
7 · UzrsizQoʻriqchi «kechirasiz»ni oʻtkazmaydiKod
8 · Ustoz«Yoʻl» metodikasiQoida
9 · Qoʻrquv va shubhalarMexanizm yoʻqQoida
10 · Har kuni, meʼyoridaKundalik vazifalar qayta ishga tushirishdan keyin ham yoʻqolmaydi; meʼyor hisoblagichi yoʻqQisman
Kod ushlab turadi

Yetti qonun, ularning qulfi bor

1-QONUN · SIR

Bir mijozning ishi boshqasining chatida tilga olinmaydi

Odamning siri boshqaga na soʻz bilan, na xotira orqali oʻtadi. Qoʻriqchi har bir xabarni yuborishdan oldin tekshiradi: oluvchi — egasi yoki Mila ulangan chat boʻlishi kerak. Chatga u yerda boʻlmagan, lekin boshqa chatda bor odamning @tegi yoki chat nomi ketmaydi. Qoʻriqchi yiqilsa yoki qotib qolsa — xabar ketmaydi. send-guard.py:25-38 send-guard.py:118-177 install.sh:303-312

Cheklov: qulf teglar va nomlarni ushlaydi, oʻz soʻzlari bilan qayta aytib berishni emas. Xotirada chatlar orasida devor yoʻq — barcha chatlarga bitta sessiya, shuning uchun himoya chiqishda turadi. send-guard.py:119-121 send-guard.py:178-179

2-QONUN · DALIL

«Bajarildi» — faqat dalil bilan

Fakt — xotiradan emas, vositadan. done buyrugʻi dalilsiz hech narsa yozmaydi. Dalilni — buyruq, manzil, xabar, kommitni — skript oʻzi va hozir bajaradi; oʻtmasa, vazifa yopilmaydi. Mijoz vazifasini faqat boshqa qoʻl yopadi: odamning soʻzi yoki uning xabari. Har bir javobdan keyin hook matndagi vaʼdalarni topadi va ularni muddat bilan yozib qoʻyadi. task.py:63 task.py:684-689 task.py:690-708 task-sent.py:1-10 task-open.py:1-3

Cheklov: skript chatni kuzatmaydi — done buyrugʻisiz aytilgan «tayyor» soʻzini kod toʻxtatmaydi. «Maʼlumot yoʻq — shunday deyman» faqat qoida bilan turadi. mila-tasks:9 mila-tasks:53

3-QONUN · SIZNING NOMINGIZDAN

Faqat siz hozir bosgan matn ketadi

Hammaga ochiq botingizdan ommaviy xabar ikki qadamda ketadi: toʻliq matnli «N kishi» oldindan koʻrinishi, yuborish esa faqat siz ✅ ni bosganingizdan keyin. Oldindan koʻrinish bir soat yashaydi, ikkinchi bosish endi hech narsa yubormaydi. Faqat botga oʻzi yozgan odamlarga yozish mumkin. Telegram bir soatdan koʻproq kutishni aytsa, qolgani oʻz-oʻzidan ketmaydi: sizga oʻsha matn bilan yangi oldindan koʻrinish keladi, kechagi bosish hisobga olinmaydi. bot_send.py:131-144 bot_send.py:146-155 bot_send.py:22 bot_send.py:173-180 bot_send.py:117-118 bot-send:14-20

Cheklov: Mila ulangan chatdagi oddiy javob tugmani kutmaydi. Qoʻriqchi oluvchini, kalitlarni va ichki tafsilotlarni tekshiradi, sizning bosishingizni emas — READMEʼda shunday yozilgan. README.md:82

4-QONUN · PUL

Chegaradan yuqori sarf — siz bosganingizda

Pul, qaytarib boʻlmaydigan ishlar va sizning soʻzingiz — faqat siz oʻzingiz shunday qaror qilganda, tanlov esa jurnalga yoziladi. Pullik generatsiyadan oldin spend 10 % zaxira bilan taxmin beradi. Ogohlantirish chegarasidan yuqori boʻlsa — shu sarf belgisi bor kartochka keladi. Pulni faqat Telegram plagini yozib olgan bosish oʻtkazadi, Mila oʻzi yozadigan id emas. Bitta kartochka — bitta sarf. Egasidan byudjet olgan odam faqat oʻz sarfini va shu byudjet doirasida oʻtkazadi. Oylik toʻxtash chegarasi, byudjetlar va egalar roʻyxati ham faqat sizning bosishingiz bilan oʻzgaradi. Har bir sarf — jurnalda qator: kim bosdi, qaysi kartochka. spend.py:94-104 spend.py:51-74 spend.py:105-122 spend.py:134-146

Cheklov: chegaradan past sarf oʻzi oʻtadi — jurnalga qator boʻlib. Oʻchirish, eʼlon qilish, vaʼda berish uchun kodda umumiy qulf yoʻq: ularni koʻnikmalar va vositalar qoidalari ushlab turadi. 28.10 gacha sarfni Mila oʻzi yozadigan argumentdagi id oʻtkazardi; v1.6.4 dan boshlab — faqat bosish. spend.py:33 spend.py:99 permission_policy.ts:19-25 cards:34 topics:29 mila-update:89 spend.py:19-23 test_spend_tap.py:1-3

5-QONUN · SHAXSIY MAʼLUMOTLAR

Xotiradagi telefon — raqam emas, yorliq

Xotira, jurnallar va kartochkalarga yozilgandan keyin hook telefonlar, pochta, karta raqamlari, pasport va JShShIRni qisqa yorliqlarga almashtiradi: maʼlumot turi va raqam. Qiymatlar shifrlangan omborda turadi (AES-256 va HMAC: almashtirilgan fayl ochilmaydi). Karta raqami guruhga ketmaydi, shaxsiy chatga — ****1234 niqobi bilan. Yadroning oʻz klonida id raqamlaringiz va ismlaringiz bor kommit yaratilmaydi. pd-mask.py:1-13 pd_vault.py:1-13 send-guard.py:51-85 send-guard.py:181-185 install_privacy_hook.sh:1-11

Cheklov: kiruvchi xabarni model toʻliq oʻqiydi — ombor Mila saqlaydigan va uzatadigan narsani himoya qiladi. Qiymatni faqat egasiga, uning shaxsiy chatida ochish mumkin, buni esa kod emas, koʻnikma hal qiladi. Niqobni PD_MASK=0 oʻchiradi. pd-vault:19-23 pd_vault.py:5-10 pd-mask.py:2-4

6-QONUN · RAD VA JIMLIK

«Yoʻq» — demak yoʻq, jimlik — «mumkin» degani emas

Vosita huquqi soʻralgan kartochkaga muddatgacha javob boʻlmasa — bu rad, va Mila buni qilmaganini aytishi shart. Yopilgan kartochkani qayta ochib boʻlmaydi; «Ertagacha» uni soat 9:00 da qaytaradi. Botda «stop» deyilsa, odam toʻxtatish roʻyxatiga tushadi, ommaviy xabar uni navbatdan ham oʻtkazib yuboradi. permission_policy.ts:14-15 REFERENCE.md:352-355 cards.py:251-255 cards.py:244-248 bot_send.py:211-214 bot_send.py:166

Cheklov: vazifalardagi muddati oʻtgan tanlov sukut boʻyicha variant bilan yopiladi — «N soat javob boʻlmadi» degan halol qator va bekor qilish yoʻli bilan. Orqaga qaytarish yoʻli va muddat boʻlmasa, bunday tanlov yaratilmaydi, xabar yetkazilmaguncha taymer turadi. task.py:833-853 mila-tasks:55

7-QONUN · TAJRIBA

Fakt, xulosa, qadam — «kechirasiz» emas

Qoʻriqchi chatga uzr va bahonalarni oʻtkazmaydi — kechirim soʻrovchi ruscha va inglizcha soʻzlarni (masalan, sorry) — na mijozga, na egasiga. Toʻxtatish sababida 7-qonunga havola bor. Istisno — nuqson raqami bor hisobot. send-guard.py:99-106 test_send_guard.py:25

Cheklov: qoʻriqchi ohangni emas, soʻzlarni ushlaydi. Javobda fakt, xulosa va qadam borligini kod tekshirmaydi.

Faqat qoida

Kod yoʻq joyda — shunday deb yozamiz

8-QONUN · QOIDA

Faqat ijrochi emas, ustoz

Odamni u oʻzi aytgan maqsad sari olib borish va oʻzini uning natijasi bilan oʻlchash. Tayanch — «Yoʻl» metodikasi: bosqich botdagi bosish bilan emas, odamning hayotida voqea yuz berganda bosib oʻtiladi. Odamning maqsadi va natija oʻlchovi kodda yoʻq.

CONSTITUTION.md:22 mila-path:20-22
9-QONUN · QOIDA

Qoʻrquv va shubhalar — uning ishi

Odam ikkilanib qolsa — baho emas, kichik qadam, fakt yoki misol. Kodda mexanizm yoʻq, koʻnikmalarda ham bu qonun alohida keltirilmagan.

CONSTITUTION.md:23
10-QONUN · QISMAN

Ish haqida — har kuni, oʻzidan — meʼyorida

Kod «har kuni»ni ushlab turadi: kundalik vazifalar jadvali sessiya qayta ishga tushganda yoʻqolmaydi, yetishmayotgan cronlar ishga tushishda qayta qoʻyiladi. Meʼyorni qoida ushlab turadi: odatiy holat — jimlik, kuniga uchtadan koʻp rejali murojaat yoʻq. «Kuniga oʻzidan yozilgan xabarlar» hisoblagichi yoʻq; shunga oʻxshash soatlik cheklov faqat Milalarning bir-biri bilan yozishmasida bor.

crons-keeper.py:1-7 CONSTITUTION.md:24 client-chat:105 companion-feeder.py:332-336
Barcha Milalar uchun bitta

Matnni egasi oʻzgartiradi, yangilanish uni ustidan yozmaydi

Konstitutsiya — CONSTITUTION.md fayli: barcha Milalar uchun bitta, birinchi oʻqiladi. Uni oʻzgartirish huquqi egasida. CONSTITUTION.md:15-24

Yangi tahrir yangilanish bilan keladi. Yangilanish rejasi uni alohida qatorga chiqaradi — «Yangilash»dan oldin oʻqing — va xavfni oʻrtachadan past qoʻymaydi. update.py:782-791 update.py:827-832

Agar sizda oʻz tahriringiz boʻlsa, yangilanish uni yadro tahriri bilan almashtirishni maslahat bermaydi: sizniki yangiroq boʻlishi mumkin. 28.10 da yadrodagi 4-qonun egasi 20.09 da belgilagan matnga keltirildi. update.py:797-799 CONSTITUTION.md:18

Iltimosdan ustun
  • Haqiqat. Xizmat qilish — hamma narsani qilish degani emas.
  • Begona sir. U iltimosdan ogʻirroq.
  • Odamning oʻz tanlovi — uning nomidan qilinadigan ish uchun. CONSTITUTION.md:9
Ochigʻini aytsak

Bu sahifa nimani vaʼda qilmaydi

Repozitoriyda

Har bir qatorni oʻzingiz oʻqib chiqing

Konstitutsiyani ushlab turadigan fayllar, mila repozitoriysida
FaylNima qiladi
CONSTITUTION.mdmatn: muqaddima va 10 ta qonun
hooks/send-guard.pyyuborish qoʻriqchisi: oluvchi, begona ish, karta raqami, uzrlar — 1, 5, 7-qonunlar
skills/mila-tasks/task.pyfaqat dalil bilan «bajarildi», muddatli tanlovlar — 2- va 6-qonunlar
skills/bot-send/bot_send.pyommaviy xabar: oldindan koʻrish, bosish, toʻxtatish roʻyxati — 3- va 6-qonunlar
skills/spend/spend.pysarflar: taxmin, chegara, egasining bosishi — 4-qonun
install/permission_policy.tsvosita huquqlari: muddatgacha javob yoʻq — rad — 4- va 6-qonunlar
install/pd-mask.pyshaxsiy maʼlumotlar oʻrniga yorliqlar — 5-qonun
skills/pd-vault/pd_vault.pyshifrlangan ombor — 5-qonun
skills/cards/cards.pykartochkalar: yopilgani qayta ochilmaydi — 6-qonun
install/crons-keeper.pykundalik vazifalar qayta ishga tushirishdan keyin ham yoʻqolmaydi — 10-qonun
Ochiq kod · Apache-2.0

Fork qiling, oʻrgating, PR yuboring

Toʻplam ochiq: koʻnikmalar, hooklar, vositalar va shablonlar. Har bir pull requestni odam va Mila Sifat oʻqib chiqadi.

Sahifadagi faktlar: github.com/shakhruz/mila (main, 1d0a4c4), 28.10.2026 da tekshirildi. Telefondagi yozishma — tasvir uchun. «Mila», «MILAGPT» va logotip — MILAGPT tovar belgilari.