
Kybes hufanya nini
kybes ni programu-jalizi ya Claude Code ya kuzalisha msimbo wa backend unaotabirika kutoka kwenye miundo ya hifadhidata ya YAML. Husawazisha folda, majina ya faili, mbinu za repository, uthibitishaji, upangaji wa kurasa, miamala, faharasa, na majaribio katika miradi ya C#, Python, TypeScript, na Java.
Badala ya kumwomba wakala wa AI akumbuke hati ya usanifu, kybes hulazimisha usanifu kupitia uzalishaji wa kuamua, mawakala maalum, sheria mahususi za folda, hooks, na ukaguzi wa CI. Schema hiyo hiyo huzalisha matokeo yanayofanana byte kwa byte katika miradi yote.
Kanuni kuu ni rahisi: schema ndiyo chanzo cha ukweli, faili zilizozalishwa hazihaririwi kwa mkono, na tabia maalum huwekwa kwenye faili ya model inayohusishwa na jedwali lake.
Muundo unaozalishwa hufanya kazi vipi
Kwa kila jedwali, kybes huunda tabaka mbili za model:
model/generated/<Table>ina entities zilizozalishwa, shughuli za CRUD, mahusiano, query zilizotangazwa, upangaji wa kurasa kwa cursor, na uthibitishaji. Faili hizi huzalishwa upya na hazipaswi kuhaririwa.model/<Table>ni mahali salama pa kuweka mbinu maalum. C# hutumia partial class, huku Python, TypeScript, na Java zikitumia mbinu inayotegemea subclass.
Mradi wa kawaida pia huwa na JSON Schemas zilizozalishwa, PostgreSQL DDL, uchanganuzi wa faharasa, faharasa ya faili za model, na vitu vya uthibitishaji vilivyozalishwa.
Sakinisha kybes
Sakinisha kupitia Claude Code
Kutoka Claude Code, ongeza marketplace kisha usakinishe programu-jalizi:
/plugin marketplace add ivandilelio/kybes
/plugin install kybes@kybesNdani ya mradi unaolengwa, mwambie Claude Code asanidi kybes katika mradi huu. Skill ya kybes:kybes-init huuliza ni lugha zipi za model unazohitaji na huunda usanidi, sheria za njia, maelekezo ya CLAUDE.md, scaffold ya hiari, na workflow ya CI.
Hooks hubaki bila kufanya kazi katika repository ambazo hazijaanzishwa.
Sakinisha kutoka kwenye mstari wa amri
Unaweza pia ku-clone repository na kuendesha kisakinishi:
git clone https://github.com/ivandilelio/kybes
kybes/install.sh --target /path/to/project --scaffold --examples \
--model-langs csharp,python,typescript,javaKisakinishi kinaweza kuendeshwa mara nyingi bila kusababisha mabadiliko yasiyo ya lazima. Baada ya ku-clone mradi uliosanidiwa, washiriki wa timu wanahitaji tu kuendesha tools/kybes/setup.sh mara moja.
Kagua mahitaji
Hooks na generator zinahitaji python3 yenye maktaba ya kawaida pekee. Runtimes zilizozalishwa zinahitaji utegemezi unaolingana wa lugha:
- C#:
net8.0, Entity Framework Core 8, na provider kama vile Npgsql. - Python: Python 3.9 au mpya zaidi na SQLAlchemy 2.
- TypeScript: TypeORM,
reflect-metadata, na chaguo za compilerexperimentalDecoratorsnaemitDecoratorMetadatazikiwa zimewezeshwa. - Java: Jakarta Persistence 3.1, Hibernate 6.2 au mpya zaidi, na Jackson kwa safu za
json.
Fafanua schema ya hifadhidata
Unda faili ya YAML chini ya schemas/db. Mfano ufuatao unafafanua jedwali la oda lenye nambari ya oda ya kipekee, uhusiano wa lazima na mteja, query iliyotangazwa, na upangaji wa kurasa kwa cursor unaoweza kupangwa:
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]Hifadhi faili hilo kama schemas/db/Ordini.yaml. Mabadiliko ya schema husababisha kuzalishwa upya kwa lugha zilizosanidiwa, husasisha faharasa ya model, na hukokotoa upya mapendekezo ya faharasa.
Tumia API iliyozalishwa
Kwa schema ya mfano, kybes huzalisha uwezo sawa wa repository katika kila lugha. Majina hufuata kanuni za lugha lengwa:
- Soma kwa ufunguo:
GetByIdAsynckatika C#,get_by_idkatika Python, nagetByIdkatika TypeScript au Java. - Upangaji wa kurasa kwa cursor:
ListPageAsync,list_page, aulistPage. - Utafutaji kwa safu ya kipekee:
FindByNumeroAsync,find_by_numero, aufindByNumero. - Utafutaji kwa foreign key:
ListByClienteIdAsync,list_by_cliente_id, aulistByClienteId. - Query iliyotangazwa:
ListDelClienteDalAsync,list_del_cliente_dal, aulistDelClienteDal.
API iliyozalishwa pia hutoa shughuli za kuunda, kusasisha, na kufuta zenye uthibitishaji, vifikiaji vya mahusiano, na kurasa zinazotegemea cursor zinazowakilishwa na ombi na ukurasa wenye vipengee na cursor inayofuata.
Tangaza query badala ya kuandika ufikiaji wa data katika handlers
Weka masharti ya query yanayoungwa mkono kwenye schema badala ya kuingiza ORM au driver ya hifadhidata kwenye Lambda, service, au controller. kybes inaunga mkono waendeshaji wakiwemo eq, ne, lt, lte, gt, gte, in, prefix, na is_null.
Generator huunda mbinu ya repository na kuchanganua njia yake ya ufikiaji. Katika mfano, masharti ya foreign key na tarehe husababisha faharasa kwenye (ClienteId, Data). Uamuzi huo huhifadhiwa kwenye db/generated/indexes.md.
Ongeza tabia maalum kwenye model
Mbinu zinazozalishwa zisipotosha, ongeza mbinu maalum kwenye faili la modeli lisilozalishwa, kama vile model/Fornitori.py au faili linalolingana kwa lugha iliyochaguliwa. Usihariri utekelezaji uliyozalishwa.
Mbinu maalum hazipaswi kugongana na majina ya mbinu zinazozalishwa. Pia zinahitaji jaribio lililofuatiliwa katika tests/custom/ kabla kazi haijakamilika. Muundo unaotarajiwa wa kitambulisho cha jaribio ni TC-<Table>-….
Weka ufikiaji wa data ndani ya safu ya modeli. Kishughulikiaji kinapaswa kuita mbinu ya modeli iliyozalishwa au maalum, si kuunda hoja yake ya SQLAlchemy, Entity Framework, TypeORM, au Hibernate.
Elewa vizuizi vya kybes
Hooks za kybes huendeshwa katika mtiririko mzima wa kazi ya uundaji. Kabla ya kuandika, zinaweza kuzuia uagizaji wa ORM au kiendeshi cha hifadhidata nje ya modeli, uhariri wa faili zilizozalishwa, folda batili za modeli, migongano ya mbinu, na siri zilizo katika maandishi wazi.
Baada ya kuandika schema, kybes inaweza kuzalisha upya modeli, kuendesha linters, na kuripoti masuala ya usanifu. Kabla ya kukamilisha, wakala mkuu na kila wakala mdogo lazima wapitishe ukaguzi wa usanifu, ukaguzi wa jenereta, hati ya uthibitishaji, na amri za majaribio za mradi.
Ukaguzi chaguo-msingi wa kizuizi cha kusimamisha unajumuisha:
arch_check, ikijumuisha utambuzi wa vizuizi vilivyorudiwa vyenye mistari minane au zaidi.gen --checkkuthibitisha kuwa matokeo yaliyotengenezwa yana hali ya sasa.verify.pykwa majaribio ya modeli na viwango vya ufunikaji kwa kila ASIL.- Amri za majaribio za mradi wenyewe.
Ukaguzi huo huo huendeshwa katika CI kwa --strict. Sheria zinaweza kusanidiwa kuwa block, warn, au off katika .claude/kybes.config.json. Wakala haruhusiwi kurekebisha faili hili la usanidi.
Tumia miamala, kurasa, na faharasa kwa usalama
kybes huzalisha upangaji wa kurasa kwa kutumia kielekezi kutoka kwa mpangilio chaguo-msingi wa schema na safu wima zinazoruhusiwa kupangwa. Hii hutengeneza ombi la ukurasa linalotegemea keyset na ukurasa wenye vipengee pamoja na kielekezi kinachofuata. Miundo ya vielekezi inashirikiwa katika lugha zinazotumika, jambo linalosaidia huduma na wateja tofauti kushirikiana.
Miamala hutumia Unit of Work yenye viwango vya kutenganisha kwa kila jedwali na ushughulikiaji wa kiotomatiki wa majaribio tena kwa hitilafu za usanifishaji na deadlock. Njia zilizotangazwa za ufikiaji huchanganuliwa ili kubaini faharasa bora; faharasa zinazokosekana huundwa na faharasa zisizo za lazima huashiriwa. Utafutaji wa viambishi awali unaweza kutumia varchar_pattern_ops ya PostgreSQL inapofaa.
Sanidi upangaji wa wapangaji wengi
Upangaji wa wapangaji wengi unaweza kusanidiwa kwa kila jedwali kwa kutumia mojawapo ya mikakati inayotumika:
- Safu wima ya mpangaji, ambapo kila mbinu inayozalishwa huchujwa na vizuizi vya kipekee huwekwa kwa kila mpangaji.
- Usalama wa kiwango cha safu wa PostgreSQL.
- Schema moja kwa kila mpangaji.
- Hifadhidata moja kwa kila mpangaji.
Mpangaji hufungamanishwa na kikao cha ORM, na kybes huzalisha majaribio ya utenganishaji kwa mkakati uliosanidiwa.
Kagua mpangilio wa mradi uliotengenezwa
Mradi uliosanidiwa hufuata muundo unaotabirika:
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.jsonKila kitu kilicho ndani ya folda ya generated/ ni mali ya kybes. Faili nyingine za modeli, majaribio maalum, schema, na msimbo wa programu hudumishwa na timu yako kulingana na sheria zilizosanidiwa.
Thibitisha matokeo
Hifadhi ya msimbo inajumuisha uthibitishaji wa msimbo uliotengenezwa, hooks, SQL, na tabia kati ya lugha. Majaribio yanashughulikia CRUD, mahusiano, cascades, vizuizi vya kipekee, hali za kipekee za upangaji wa kurasa, waendeshaji wa hoja, na tabia ya Unit of Work.
Majaribio ya kitengo yaliyotengenezwa hutoa mahitaji na visa vya majaribio kutoka kwa kila schema. Mtiririko wa uthibitishaji unajumuisha madarasa ya usawa, thamani za mipaka, kubashiri makosa, MC/DC kwa ASIL C na D, ufuatiliaji, na vizuizi vya ufunikaji kwa kila jedwali. Hifadhi pia hukagua kuwa DDL ya PostgreSQL iliyotengenezwa inaweza kuchanganuliwa kwa usahihi na kwamba vielekezi vilivyotengenezwa na lugha moja inayotumika vinaweza kukubaliwa na lugha nyingine.
Kwa kazi muhimu za usalama, kybes hujiendesha kiotomatiki katika sehemu za ISO 26262-6 kwenye kiwango cha kitengo cha programu, lakini haibadilishi mpango kamili wa usalama, uchanganuzi wa hatari, uhitimu huru wa zana, ukaguzi huru, au mchakato wa uidhinishaji wa shirika.
Hitimisho
kybes hutoa mtiririko wa kazi unaoanza na schema kwa ajili ya miundombinu ya nyuma inayozalishwa na AI kwa kutabirika. Fafanua jedwali, mahusiano, hoja, upangaji wa kurasa, na sheria za upangaji wa wapangaji mara moja; acha jenereta bainifu itengeneze modeli mahususi za lugha, faharasa, DDL, uthibitishaji, na majaribio; kisha weka tabia maalum katika safu ya modeli iliyoidhinishwa.
Kwa mawakala wa Claude Code, hooks za wakati wa kuandika, utambuzi wa msimbo unaorudiwa, uthibitishaji uliotengenezwa, na ukaguzi mkali wa CI, mradi hubaki thabiti hata kadiri hifadhi ya msimbo na muktadha wa AI vinavyokua. Kwa nyenzo za marejeo ya kina, chunguza nyaraka za mradi na hifadhi ya msimbo.
