Nima qiladi
Kod nima qilinganini ko’rsatadi, lekin negaligini aytmaydi. /mradkhh-adr-generator muhim arxitektura va biznes qarorlarini ADR (Architecture Decision Record) sifatida yozadi. Har bir ADR’da quyidagilar bo’ladi:
- muammo va kontekst;
- tanlangan yechim va uning sababi;
- oqibatlar — foyda, xarajat va cheklovlar;
- tekshiruv dalillari: qaysi test qaysi revision’da o’tgani;
- havolalar: kod, reja, commit va oldingi ADR’lar.
Skill dalilga asoslanadi. U sabab, test yoki tasdiqni o’ylab topmaydi. Ma’lumot yetishmasa, “noma’lum” deb yozadi.
Qachon ishlatiladi
| Vaziyat | Misol so’rov |
|---|---|
| Rejada yoki muhokamada muhim qaror qabul qilindi | ”Kesh uchun Redis tanladik, buni ADR qilib yoz” |
| Push qilinmagan o’zgarishlarda yangi arxitektura qarori bor | ”Hali push qilinmagan o’zgarishlardan ADR yarat” |
| Eski qaror o’zgardi | ”003-ADR’ni almashtiradigan yangi qaror yoz” |
| Kodga aloqasi yo’q biznes qoidasi | ”Qaytarish muddati 14 kun bo’ldi, qarorni qayd et” |
Skill avtomatik ishga tushadi: agent so’rovingiz ADR haqida ekanini tushunsa, uni o’zi yuklaydi. Uni nomi bilan ham chaqirish mumkin.
Eslatma: oddiy refaktoring, formatlash yoki changelog so’rovi ADR uchun sabab emas. Bunday holatda skill yangi fayl yaratmaydi va sababini tushuntiradi.
Talablar
- Hech qanday qo’shimcha dastur kerak emas.
- Git faqat git’ga asoslangan so’rovlar uchun kerak (“push qilinmagan o’zgarishlar”, commit oralig’i).
Asosiy tushunchalar
Katalog qayerda?
Skill ADR’larni qaysi papkaga yozishni quyidagi tartibda aniqlaydi:
- Siz aniq ko’rsatgan papka.
- Loyiha qoidalari, masalan
AGENTS.md. - Loyihada allaqachon mavjud ADR katalogi.
- Standart:
<loyiha-ildizi>/docs/adr/.
Yozishdan oldin agent tanlangan papkani va sababini aytadi.
Statuslar halol qo’yiladi
| Status | Qachon |
|---|---|
Proposed | Qoralama, tasdiq aniq emas yoki kerakli dalil yo’q |
Accepted | Aniq tasdiq bor. Amalga oshirilgan deyilsa, muvaffaqiyatli tekshiruv ham bor |
Rejected | Taklif rad etilgan |
Deprecated | Qaror bekor qilingan |
Faqat testlarning o’tgani qarorni tasdiqlamaydi. Accepted esa “deploy qilingan” degani emas.
Tarix faqat qo’shiladi
Qabul qilingan ADR o’zgartirilmaydi. Qaror o’zgarsa, yangi ADR yoziladi. Unda Supersedes havolasi va Change bo’limi (Before / After / Reason) bo’ladi. Yozishdan oldin skill tarixni tekshiradi:
- takrorlangan raqamlar;
- mavjud bo’lmagan
Supersedesnishonlari; - o’ziga yoki aylanma havolalar;
- bir xil doirada bir-biriga zid ikkita
Acceptedqoida.
Misol
/mradkhh-adr-generator sessiyalarni JWT'dan server-side sessiyaga o'tkazish qarorini yoz
Natija — masalan, docs/adr/007-server-side-sessions.md:
# ADR 007: Server-side sessions
- **Date:** 2026-10-12
- **Status:** Proposed
- **Supersedes:** [ADR 002](002-jwt-auth.md)
## Context
...
## Decision
### Change
- **Before:** Stateless JWT (ADR 002)
- **After:** Redis'da saqlanadigan server-side sessiya
- **Reason:** Tokenni darhol bekor qilish talabi
## Consequences
## Verification
## References
Ko’p beriladigan savollar
ADR qaysi tilda yoziladi? Loyihada qoida bo’lsa, o’sha tilda. Bo’lmasa, siz yozgan tilda.
Monorepo’da har bir paket uchun alohida katalog yaratiladimi? Yo’q. Standart holatda bitta ildiz katalog ishlatiladi. Alohida katalog faqat loyiha qoidasi yoki sizning so’rovingiz bo’lsa yaratiladi.
Bir xil qaror ikki marta so’ralsa nima bo’ladi? Skill mavjud ADR’ni topadi va yangisini yaratish o’rniga uning yo’lini qaytaradi.
Ishlayotganini qanday bilasiz
- Fayl to’g’ri katalogda, keyingi bo’sh raqam bilan yaratildi.
- Status va uning asosi aniq yozilgan.
- Shablondagi barcha
{{placeholder}}lar to’ldirilgan yoki keraksiz bo’limlar olib tashlangan. - Eski ADR o’zgartirilmagan; almashtirish
Supersedesorqali qilingan. - To’qilgan sabab yoki test yo’q, bo’shliqlar “noma’lum” deb belgilangan.
Qayerga mos keladi
reja → qaror → implementatsiya → tekshiruv → /mradkhh-adr-generator → keyingi agent sessiyasi ADR'larni o'qiydi
ADR’lar keyingi agent sessiyalari uchun xotira vazifasini bajaradi. Agent nega shunday qilinganini biladi va eski qarorni bilmasdan buzib qo’ymaydi.