
kybes nima qiladi
kybes YAML maʼlumotlar bazasi sxemalaridan oldindan bashorat qilinadigan backend kodini yaratish uchun mo‘ljallangan Claude Code plaginidir. U C#, Python, TypeScript va Java loyihalarida papkalar, fayl nomlari, repository metodlari, validatsiya, sahifalash, tranzaksiyalar, indekslar va testlarni standartlashtiradi.
AI agentidan arxitektura hujjatini eslab qolishni so‘rash o‘rniga, kybes arxitekturani deterministik generatsiya, maxsus agentlar, papkaga xos qoidalar, hooklar va CI tekshiruvlari orqali majburiy qiladi. Bir xil sxema turli loyihalarda baytma-bayt bir xil generatsiya qilingan natijani hosil qiladi.
Asosiy qoida oddiy: sxema haqiqatning yagona manbai hisoblanadi, generatsiya qilingan fayllar qo‘lda tahrirlanmaydi, maxsus xatti-harakatlar esa jadval bilan bog‘langan model fayliga joylashtiriladi.
Generatsiya qilingan tuzilma qanday ishlaydi
Har bir jadval uchun kybes ikki qatlamli model yaratadi:
model/generated/<Table>generatsiya qilingan entitylar, CRUD amallari, aloqalar, eʼlon qilingan so‘rovlar, cursor orqali sahifalash va validatsiyani o‘z ichiga oladi. Bu fayllar qayta generatsiya qilinadi va ularni tahrirlash kerak emas.model/<Table>maxsus metodlar uchun xavfsiz joy hisoblanadi. C# partial classdan, Python, TypeScript va Java esa subclass asosidagi yondashuvdan foydalanadi.
Odatdagi loyihada generatsiya qilingan JSON Schema’lar, PostgreSQL DDL, indeks tahlili, model fayllari indeksi va generatsiya qilingan tekshiruv artefaktlari ham bo‘ladi.
kybesni o‘rnatish
Claude Code orqali o‘rnatish
Claude Code’dan marketplace’ni qo‘shing va plaginni o‘rnating:
/plugin marketplace add ivandilelio/kybes
/plugin install kybes@kybesMaqsadli loyiha ichida Claude Code’dan ushbu loyihada kybesni sozlashni so‘rang. kybes:kybes-init ko‘nikmasi sizga kerak bo‘lgan model tillarini so‘raydi va konfiguratsiya, yo‘l qoidalari, CLAUDE.md ko‘rsatmalari, ixtiyoriy skelet hamda CI workflow’ini yaratadi.
Hali ishga tushirilmagan repositorylarda hooklar faol bo‘lmaydi.
Buyruqlar satridan o‘rnatish
Shuningdek, repository’ni klonlab, o‘rnatuvchini ishga tushirishingiz mumkin:
git clone https://github.com/ivandilelio/kybes
kybes/install.sh --target /path/to/project --scaffold --examples \
--model-langs csharp,python,typescript,javaO‘rnatuvchi idempotent hisoblanadi. Sozlangan loyihani klonlagandan so‘ng, jamoa aʼzolari faqat tools/kybes/setup.shni bir marta ishga tushirishlari kerak.
Talablarni tekshirish
Hooklar va generator faqat standart kutubxonaga ega python3ni talab qiladi. Generatsiya qilingan runtime’lar tegishli til bog‘liqliklarini talab qiladi:
- C#:
net8.0, Entity Framework Core 8 va Npgsql kabi provider. - Python: Python 3.9 yoki undan yangiroq versiyasi va SQLAlchemy 2.
- TypeScript: TypeORM,
reflect-metadatahamda yoqilganexperimentalDecoratorsvaemitDecoratorMetadatakompilyator parametrlari. - Java: Jakarta Persistence 3.1, Hibernate 6.2 yoki undan yangiroq versiyasi va
jsonustunlari uchun Jackson.
Maʼlumotlar bazasi sxemasini aniqlash
schemas/db ichida YAML fayl yarating. Quyidagi misolda noyob buyurtma raqami, majburiy mijoz aloqasi, eʼlon qilingan so‘rov va saralash mumkin bo‘lgan cursor orqali sahifalashga ega buyurtmalar jadvali aniqlangan:
table: Ordini
columns:
- { name: Id, type: uuid, primary_key: true }
- { name: Numero, type: string, length: 20, required: true, unique: true }
- { name: ClienteId, type: uuid, required: true }
- { name: Data, type: date, required: true }
relations:
- { name: Cliente, kind: many_to_one, target: Clienti, foreign_key: ClienteId }
queries:
- name: DelClienteDal
where: [ClienteId, { column: Data, op: gte, param: DaData }]
order_by: [{ column: Data, dir: desc }]
pagination:
default_order: [{ column: Data, dir: desc }]
sortable: [Data, Numero]Faylni schemas/db/Ordini.yaml sifatida saqlang. Sxemadagi o‘zgarish sozlangan tillar uchun qayta generatsiyani ishga tushiradi, model indeksini yangilaydi va indeks tavsiyalarini qayta hisoblaydi.
Generatsiya qilingan API’dan foydalanish
Yuqoridagi sxema uchun kybes har bir tilda teng repository imkoniyatlarini yaratadi. Nomlash maqsadli til qoidalariga amal qiladi:
- Kalit bo‘yicha o‘qish: C#da
GetByIdAsync, Python’daget_by_id, TypeScript yoki Java’dagetById. - Cursor orqali sahifalash:
ListPageAsync,list_pageyokilistPage. - Noyob ustun bo‘yicha qidirish:
FindByNumeroAsync,find_by_numeroyokifindByNumero. - Foreign key bo‘yicha qidirish:
ListByClienteIdAsync,list_by_cliente_idyokilistByClienteId. - Eʼlon qilingan so‘rov:
ListDelClienteDalAsync,list_del_cliente_dalyokilistDelClienteDal.
Generatsiya qilingan API shuningdek validatsiyadan o‘tgan yaratish, yangilash va o‘chirish amallarini, aloqalarga kirish vositalarini hamda so‘rov va elementlar hamda keyingi cursorni o‘z ichiga olgan sahifadan iborat cursor asosidagi sahifalarni taqdim etadi.
Handlerlarda maʼlumotlarga kirish kodini yozish o‘rniga so‘rovlarni eʼlon qiling
ORM yoki maʼlumotlar bazasi drayverini Lambda, service yoki controller ichiga import qilish o‘rniga, qo‘llab-quvvatlanadigan so‘rov shartlarini sxemaga joylashtiring. kybes eq, ne, lt, lte, gt, gte, in, prefix va is_null kabi operatorlarni qo‘llab-quvvatlaydi.
Generator repository metodini yaratadi va uning maʼlumotlarga kirish yo‘lini tahlil qiladi. Misolda foreign key va sana shartlari (ClienteId, Data) bo‘yicha indeks yaratilishiga olib keladi. Qaror db/generated/indexes.md faylida qayd etiladi.
Maxsus model xatti-harakatlarini qo‘shish
Generatsiya qilingan metodlar yetarli bo‘lmaganda, generatsiya qilinmaydigan model fayliga, masalan, model/Fornitori.py yoki tanlangan til uchun unga mos faylga maxsus metodlar qo‘shing. Generatsiya qilingan implementatsiyani tahrirlamang.
Maxsus metodlar generatsiya qilingan metod nomlari bilan to‘qnashmasligi kerak. Ish yakunlanishidan oldin ular uchun tests/custom/ katalogida kuzatiladigan test ham bo‘lishi shart. Kutiladigan test identifikatori formati: TC-<Table>-….
Ma’lumotlarga kirishni model qatlamida saqlang. Handler o‘zining SQLAlchemy, Entity Framework, TypeORM yoki Hibernate so‘rovini yaratmasdan, generatsiya qilingan yoki maxsus model metodini chaqirishi kerak.
kybes cheklovlarini tushunish
kybes hook’lari ishlab chiqish jarayonining barcha bosqichlarida ishlaydi. Yozishdan oldin ular modeldan tashqaridagi ORM yoki ma’lumotlar bazasi drayveri importlarini, generatsiya qilingan fayllarni tahrirlashni, noto‘g‘ri model kataloglarini, metodlar to‘qnashuvini va ochiq matndagi maxfiy ma’lumotlarni bloklashi mumkin.
Sxemaga yozishdan keyin kybes modellarni qayta generatsiya qilishi, linterlarni ishga tushirishi va arxitektura muammolari haqida xabar berishi mumkin. Yakunlashdan oldin asosiy agent va har bir quyi agent arxitektura tekshiruvi, generator tekshiruvi, verifikatsiya skripti va loyiha test buyruqlaridan muvaffaqiyatli o‘tishi kerak.
Standart yakuniy nazorat tekshiruvlariga quyidagilar kiradi:
arch_check, jumladan sakkiz yoki undan ortiq qatordan iborat takroriy bloklarni aniqlash.- Generatsiya qilingan chiqishlar yangiligini tasdiqlash uchun
gen --check. - Model testlari va ASIL bo‘yicha qamrov chegaralari uchun
verify.py. - Loyihaning o‘z test buyruqlari.
Xuddi shu tekshiruvlar CI’da --strict parametri bilan ishlaydi. Qoidalarni .claude/kybes.config.json faylida block, warn yoki off sifatida sozlash mumkin. Agentga ushbu konfiguratsiya faylini o‘zgartirishga ruxsat berilmaydi.
Tranzaksiyalar, sahifalash va indekslardan xavfsiz foydalanish
kybes sxemaning standart tartiblash qoidasi va ruxsat etilgan tartiblash ustunlari asosida kursorli sahifalashni generatsiya qiladi. Natijada keyset asosidagi sahifa so‘rovi hamda elementlar va keyingi kursorni o‘z ichiga olgan sahifa hosil bo‘ladi. Kursor formatlari qo‘llab-quvvatlanadigan tillar orasida umumiy bo‘lib, bu turli xizmatlar va mijozlarning o‘zaro ishlashini osonlashtiradi.
Tranzaksiyalar har bir jadval uchun izolyatsiya darajalari va serializatsiya xatolari hamda deadlock’lar uchun avtomatik qayta urinish bilan Unit of Work’dan foydalanadi. E’lon qilingan kirish yo‘llari ideal indekslar uchun tahlil qilinadi; yetishmayotgan indekslar yaratiladi, ortiqcha indekslar esa belgilanadi. Prefiks qidiruvlari mos holatlarda PostgreSQL’ning varchar_pattern_ops operator sinfidan foydalanishi mumkin.
Ko‘p ijarachili tizimni sozlash
Ko‘p ijarachili tizimni har bir jadval uchun qo‘llab-quvvatlanadigan strategiyalardan biri yordamida sozlash mumkin:
- Ijarachi ustuni: bunda har bir generatsiya qilingan metod filtrlanadi va noyob cheklovlar ijarachi doirasida qo‘llanadi.
- PostgreSQL qator darajasidagi xavfsizligi.
- Har bir ijarachi uchun alohida sxema.
- Har bir ijarachi uchun alohida ma’lumotlar bazasi.
Ijarachi ORM sessiyasiga biriktiriladi va kybes sozlangan strategiya uchun izolyatsiya testlarini generatsiya qiladi.
Generatsiya qilingan loyiha tuzilmasini ko‘rib chiqish
Sozlangan loyiha quyidagi bashorat qilinadigan tuzilishga ega:
your-project/
├── schemas/db/<Table>.yaml
├── schemas/generated/json/<Table>.schema.json
├── libs/db-models/<language>/…/model/
│ ├── <Table>.{cs,py,ts} | <Table>Repository.java
│ └── generated/
├── libs/db-models/<language>/tests/
│ ├── generated/
│ └── custom/
├── docs/generated/verification/
├── db/generated/ddl/postgres/_all.sql
├── services/<context>/{functions,ms}/
├── jobs/
├── libs/utils/
├── libs/errors/
├── frontend/
├── infra/
├── MODEL_INDEX.md
└── .claude/kybes.config.jsongenerated/ katalogi ichidagi barcha narsalar kybes’ga tegishli. Boshqa model fayllari, maxsus testlar, sxemalar va dastur kodi sozlangan qoidalarga muvofiq jamoangiz tomonidan yuritiladi.
Natijani tekshirish
Repozitoriy generatsiya qilingan kod, hook’lar, SQL va tillararo xatti-harakatlar uchun verifikatsiyani o‘z ichiga oladi. Testlar CRUD, aloqalar, kaskadlar, noyob cheklovlar, sahifalashning chekka holatlari, so‘rov operatorlari va Unit of Work xatti-harakatini qamrab oladi.
Generatsiya qilingan birlik testlari talablar va test holatlarini har bir sxemadan hosil qiladi. Verifikatsiya jarayoni ekvivalentlik sinflari, chegaraviy qiymatlar, xatolarni taxmin qilish, ASIL C va D uchun MC/DC, kuzatiluvchanlik hamda har bir jadval bo‘yicha qamrov nazoratlarini o‘z ichiga oladi. Repozitoriy generatsiya qilingan PostgreSQL DDL to‘g‘ri tahlil qilinishini va qo‘llab-quvvatlanadigan tillardan birida hosil qilingan kursorlar boshqalari tomonidan qabul qilinishini ham tekshiradi.
Xavfsizlik nuqtayi nazaridan muhim ishlar uchun kybes dasturiy birlik darajasida ISO 26262-6 ning ayrim qismlarini avtomatlashtiradi, biroq u to‘liq xavfsizlik rejasi, xavflarni tahlil qilish, vositalarni kvalifikatsiyalash, mustaqil ko‘rib chiqish yoki tashkilot sertifikatsiyasi jarayonining o‘rnini bosa olmaydi.
Xulosa
kybes bashorat qilinadigan, sun’iy intellekt tomonidan generatsiya qilinadigan backend’lar uchun sxemaga asoslangan ish jarayonini taqdim etadi. Jadvallar, aloqalar, so‘rovlar, sahifalash va ijarachilik qoidalarini bir marta belgilang; deterministik generator tilga xos modellar, indekslar, DDL, validatsiya va testlarni yaratishiga imkon bering; keyin maxsus xatti-harakatni tasdiqlangan model qatlamiga joylashtiring.
Claude Code agentlari, yozish vaqtidagi hook’lar, takroriy kodni aniqlash, generatsiya qilingan verifikatsiya va qat’iy CI tekshiruvlari yordamida kod bazasi va AI konteksti kengaygan sari ham loyiha izchilligini saqlab qoladi. Batafsil ma’lumot uchun loyihaning hujjatlari va manba repozitoriysini ko‘rib chiqing.
