مرکزی مواد پر جائیں
اے آئی ٹیوٹوریلز

kybes کے ساتھ قابلِ پیش گوئی AI سے تیار کردہ بیک اینڈز بنائیں

یہ ٹیوٹوریل بتاتا ہے کہ kybes کس طرح YAML ڈیٹا بیس اسکیماز کو یکساں C#، Python، TypeScript اور Java ماڈلز میں تبدیل کرتا ہے۔ آپ Claude Code پلگ اِن انسٹال کریں گے، پروجیکٹ ترتیب دیں گے، ٹیبلز اور کوئریز کی وضاحت کریں گے، تیار کردہ ریپوزٹریز استعمال کریں گے، حسبِ ضرورت میتھڈز محفوظ طریقے سے شامل کریں گے، اور ہُکس و CI چیکس کے ذریعے آرکیٹیکچر نافذ کریں گے۔

kybes کے ساتھ قابلِ پیش گوئی AI سے تیار کردہ بیک اینڈز بنائیں

kybes کیا کرتا ہے

kybes ایک Claude Code پلگ اِن ہے جو YAML ڈیٹابیس اسکیماؤں سے قابلِ پیش گوئی بیک اینڈ کوڈ تیار کرتا ہے۔ یہ C#، Python، TypeScript اور Java پروجیکٹس میں فولڈرز، فائل ناموں، ریپوزٹری طریقوں، توثیق، صفحہ بندی، ٹرانزیکشنز، انڈیکسز اور ٹیسٹس کو یکساں بناتا ہے۔

کسی AI ایجنٹ سے آرکیٹیکچر دستاویز یاد رکھنے کا مطالبہ کرنے کے بجائے، kybes متعین جنریشن، مخصوص ایجنٹس، فولڈر کے مطابق قواعد، ہُکس اور CI چیکس کے ذریعے آرکیٹیکچر نافذ کرتا ہے۔ ایک ہی اسکیمہ مختلف پروجیکٹس میں بائٹ کے لحاظ سے یکساں تیار شدہ آؤٹ پٹ پیدا کرتا ہے۔

مرکزی اصول سادہ ہے: اسکیمہ اصل ماخذِ حقیقت ہے، تیار شدہ فائلوں میں دستی ترمیم نہیں کی جاتی، اور حسبِ ضرورت رویہ اس ٹیبل سے منسلک ماڈل فائل میں رکھا جاتا ہے۔

تیار شدہ ساخت کیسے کام کرتی ہے

ہر ٹیبل کے لیے kybes ماڈل کی دو پرتیں بناتا ہے:

  • model/generated/<Table> میں تیار شدہ entities، CRUD آپریشنز، relations، اعلان کردہ queries، cursor pagination اور validation شامل ہوتے ہیں۔ یہ فائلیں دوبارہ تیار کی جاتی ہیں، اس لیے ان میں ترمیم نہیں کی جانی چاہیے۔
  • model/<Table> حسبِ ضرورت طریقوں کے لیے محفوظ مقام ہے۔ C# میں partial class استعمال ہوتی ہے، جبکہ Python، TypeScript اور Java میں subclass پر مبنی طریقہ استعمال کیا جاتا ہے۔

ایک عام پروجیکٹ میں تیار شدہ JSON Schemas، PostgreSQL DDL، انڈیکس تجزیہ، ماڈل فائلوں کا اشاریہ اور تیار شدہ تصدیقی artifacts بھی شامل ہوتے ہیں۔

kybes انسٹال کریں

Claude Code کے ذریعے انسٹال کریں

Claude Code سے marketplace شامل کریں اور پلگ اِن انسٹال کریں:

/plugin marketplace add ivandilelio/kybes
/plugin install kybes@kybes

ہدفی پروجیکٹ کے اندر Claude Code سے کہیں کہ اس پروجیکٹ میں kybes سیٹ اپ کریں۔ kybes:kybes-init skill آپ سے مطلوبہ ماڈل زبانوں کے بارے میں پوچھتی ہے اور configuration، path rules، CLAUDE.md ہدایات، اختیاری scaffold اور CI workflow بناتی ہے۔

جن repositories کو initialize نہیں کیا گیا، ان میں hooks غیر فعال رہتے ہیں۔

کمانڈ لائن سے انسٹال کریں

آپ repository کو clone کر کے installer بھی چلا سکتے ہیں:

git clone https://github.com/ivandilelio/kybes
kybes/install.sh --target /path/to/project --scaffold --examples \
  --model-langs csharp,python,typescript,java

Installer بار بار چلائے جانے پر بھی محفوظ ہے۔ configured پروجیکٹ clone کرنے کے بعد ساتھیوں کو صرف ایک بار tools/kybes/setup.sh چلانا ہوگا۔

ضروریات چیک کریں

Hooks اور generator کو صرف standard library کے ساتھ python3 درکار ہے۔ تیار شدہ runtimes کے لیے متعلقہ زبان کی dependencies درکار ہوتی ہیں:

  • C#: net8.0، Entity Framework Core 8 اور Npgsql جیسا کوئی provider۔
  • Python: Python 3.9 یا اس کے بعد کا ورژن اور SQLAlchemy 2۔
  • TypeScript: TypeORM، reflect-metadata، اور experimentalDecorators اور emitDecoratorMetadata compiler options فعال ہونا ضروری ہیں۔
  • Java: Jakarta Persistence 3.1، Hibernate 6.2 یا اس کے بعد کا ورژن، اور json columns کے لیے Jackson۔

ڈیٹابیس اسکیمہ متعین کریں

schemas/db کے تحت YAML فائل بنائیں۔ درج ذیل مثال ایک order ٹیبل متعین کرتی ہے جس میں منفرد order number، لازمی customer relationship، اعلان کردہ query اور قابلِ ترتیب cursor pagination شامل ہیں:

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]

فائل کو schemas/db/Ordini.yaml کے نام سے محفوظ کریں۔ اسکیمہ میں تبدیلی configured زبانوں کے لیے دوبارہ جنریشن شروع کرتی ہے، ماڈل انڈیکس اپ ڈیٹ کرتی ہے اور انڈیکس کی سفارشات دوبارہ شمار کرتی ہے۔

تیار شدہ API استعمال کریں

مثالی اسکیمہ کے لیے kybes ہر زبان میں مساوی repository صلاحیتیں تیار کرتا ہے۔ نام گذاری ہدفی زبان کے conventions کے مطابق ہوتی ہے:

  • کلید کے ذریعے پڑھنا: C# میں GetByIdAsync، Python میں get_by_id، اور TypeScript یا Java میں getById۔
  • Cursor pagination: ListPageAsync، list_page یا listPage۔
  • منفرد column سے تلاش: FindByNumeroAsync، find_by_numero یا findByNumero۔
  • Foreign-key سے تلاش: ListByClienteIdAsync، list_by_cliente_id یا listByClienteId۔
  • اعلان کردہ query: ListDelClienteDalAsync، list_del_cliente_dal یا listDelClienteDal۔

تیار شدہ API validated create، update اور delete operations، relation accessors اور cursor پر مبنی pages بھی فراہم کرتی ہے، جنہیں request اور items اور next cursor پر مشتمل page کے ذریعے ظاہر کیا جاتا ہے۔

Handlers میں data access لکھنے کے بجائے queries کا اعلان کریں

Lambda، service یا controller میں ORM یا database driver درآمد کرنے کے بجائے معاون query شرائط اسکیمہ میں رکھیں۔ kybes میں eq، ne، lt، lte، gt، gte، in، prefix اور is_null سمیت operators معاون ہیں۔

Generator repository method بناتا ہے اور اس کے access path کا تجزیہ کرتا ہے۔ مثال میں foreign-key اور date شرائط (ClienteId, Data) پر ایک انڈیکس کی ضرورت ظاہر کرتی ہیں۔ یہ فیصلہ db/generated/indexes.md میں درج کیا جاتا ہے۔

حسبِ ضرورت model behavior شامل کریں

جب تیار کردہ طریقے کافی نہ ہوں تو غیر تیار کردہ ماڈل فائل میں حسبِ ضرورت طریقے شامل کریں، جیسے model/Fornitori.py یا منتخب زبان کے لیے اس کے مساوی فائل میں۔ تیار کردہ implementation میں ترمیم نہ کریں۔

حسبِ ضرورت طریقوں کے نام تیار کردہ طریقوں کے ناموں سے متصادم نہیں ہونے چاہییں۔ کام مکمل کرنے سے پہلے tests/custom/ میں ان کے لیے ٹریس کیے گئے ٹیسٹ کی بھی ضرورت ہوتی ہے۔ متوقع ٹیسٹ شناخت کنندہ کا فارمیٹ TC-<Table>-… ہے۔

ڈیٹا تک رسائی ماڈل لیئر کے اندر رکھیں۔ ہینڈلر کو تیار کردہ یا حسبِ ضرورت ماڈل طریقہ کال کرنا چاہیے، اپنا SQLAlchemy، Entity Framework، TypeORM یا Hibernate کوئری نہیں بنانی چاہیے۔

kybes کے حفاظتی اصول سمجھیں

kybes hooks پورے development workflow کے دوران چلتے ہیں۔ کسی write سے پہلے یہ ماڈل کے باہر ORM یا database-driver imports، تیار کردہ فائلوں میں ترمیم، غیر معتبر model folders، طریقوں کے باہمی تصادم اور واضح متن میں secrets کو روک سکتے ہیں۔

schema write کے بعد kybes ماڈلز دوبارہ تیار کر سکتا ہے، linters چلا سکتا ہے اور architecture کے مسائل کی اطلاع دے سکتا ہے۔ تکمیل سے پہلے main agent اور ہر subagent کو architecture check، generator check، verification script اور project test commands کامیابی سے پاس کرنے ہوں گے۔

default stop-gate checks میں شامل ہیں:

  • arch_check، جس میں آٹھ یا اس سے زیادہ لائنوں کے نقل شدہ blocks کی نشاندہی بھی شامل ہے۔
  • gen --check، جو اس بات کی تصدیق کرتا ہے کہ تیار کردہ output موجودہ ہے۔
  • verify.py، جو model tests اور ہر ASIL کے مطابق coverage thresholds کے لیے ہے۔
  • پروجیکٹ کے اپنے test commands۔

یہی checks CI میں --strict کے ساتھ بھی چلتے ہیں۔ قواعد کو .claude/kybes.config.json میں block، warn یا off کے طور پر configure کیا جا سکتا ہے۔ agent کو اس configuration file میں ترمیم کرنے کی اجازت نہیں ہے۔

Transactions، pagination اور indexes محفوظ طریقے سے استعمال کریں

kybes schema کی default ordering اور اجازت یافتہ sortable columns سے cursor pagination تیار کرتا ہے۔ اس کے نتیجے میں keyset-based page request اور items پر مشتمل ایک page اور اگلا cursor حاصل ہوتا ہے۔ cursor formats معاونت یافتہ زبانوں میں مشترک ہوتے ہیں، جس سے مختلف services اور clients کو باہمی طور پر کام کرنے میں مدد ملتی ہے۔

Transactions میں ہر table کے لیے الگ isolation levels اور serialization failures اور deadlocks کے لیے خودکار retry handling کے ساتھ Unit of Work استعمال ہوتا ہے۔ اعلان کردہ access paths کا ideal indexes کے لیے تجزیہ کیا جاتا ہے؛ missing indexes بنائے جاتے ہیں اور redundant indexes کی نشاندہی کی جاتی ہے۔ جہاں مناسب ہو، prefix searches PostgreSQL varchar_pattern_ops استعمال کر سکتی ہیں۔

Multi-tenancy configure کریں

Multi-tenancy کو ہر table کے لیے درج ذیل معاونت یافتہ strategies میں سے کسی ایک کے ذریعے configure کیا جا سکتا ہے:

  • tenant column، جس میں ہر تیار کردہ طریقہ filter کیا جاتا ہے اور unique constraints ہر tenant کے دائرے تک محدود ہوتے ہیں۔
  • PostgreSQL row-level security۔
  • ہر tenant کے لیے الگ schema۔
  • ہر tenant کے لیے الگ database۔

tenant کو ORM session کے ساتھ bind کیا جاتا ہے، اور kybes configure کی گئی strategy کے لیے isolation tests تیار کرتا ہے۔

تیار کردہ project layout کا جائزہ لیں

ایک configured project کی structure قابلِ پیش گوئی ہوتی ہے:

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.json

generated/ folder کے اندر موجود ہر چیز kybes سے تعلق رکھتی ہے۔ دیگر model files، custom tests، schemas اور application code کو آپ کی team configured rules کے مطابق maintain کرتی ہے۔

نتیجے کی تصدیق کریں

repository میں generated code، hooks، SQL اور cross-language behavior کے لیے verification شامل ہے۔ Tests میں CRUD، relations، cascades، unique constraints، pagination edge cases، query operators اور Unit of Work behavior شامل ہیں۔

Generated unit tests ہر schema سے requirements اور test cases اخذ کرتے ہیں۔ Verification workflow میں equivalence classes، boundary values، error guessing، ASIL C اور D کے لیے MC/DC، traceability اور ہر table کے لیے coverage gates شامل ہیں۔ repository یہ بھی جانچتا ہے کہ generated PostgreSQL DDL درست طور پر parse ہو اور ایک معاونت یافتہ زبان سے تیار کیے گئے cursors دوسری زبانوں کے ذریعے قبول کیے جا سکیں۔

Safety-critical کام کے لیے kybes software-unit level پر ISO 26262-6 کے کچھ حصوں کو خودکار بناتا ہے، لیکن یہ مکمل safety plan، hazard analysis، tool qualification، independent review یا organizational certification process کا متبادل نہیں ہے۔

نتیجہ

kybes قابلِ پیش گوئی AI-generated backends کے لیے schema-first workflow فراہم کرتا ہے۔ tables، relations، queries، pagination اور tenancy rules ایک بار define کریں؛ deterministic generator کو language-specific models، indexes، DDL، validation اور tests بنانے دیں؛ پھر custom behavior کو منظور شدہ model layer میں رکھیں۔

Claude Code agents، write-time hooks، duplicate-code detection، generated verification اور strict CI checks کے ساتھ project اس وقت بھی consistent رہتا ہے جب codebase اور AI context بڑھتے جائیں۔ مزید reference material کے لیے project کی documentation اور source repository دیکھیں۔