La Granularisation OSS/CSS — Pourquoi J'ai Coupé foundry/ en Deux
شائع شدہ: 03 May 2026
foundry/— فنکشنل زون جس میں میرے وورک سпис کا کوڈ ہوسٹ ہوتا ہے — یہ 18 proyectoں شامل کرتا ہے۔ آٹھ اوپن سروسز آپاچی 2.0 کے تحت ہیں۔ صرف ایک closed source — یہ SaaS Edster. ماہوں تک، یہ نو پراجیکٹس ایک ساتھ رہے ایک ہی فولدِر میں، صرف … کچھ نہیں سے. ان کی عام/خصوصی حالت یہ میری دماغ میں ایک معلومات تھی، فائل سسٹم میں نہیں۔
میں نے ایک RAG کو جوڑنا چاہا۔ اور پھر، سب کچھ تباہ ہو گیا۔
کائنے والی حادثہ
اپریل 2026 میں، میں نے slider-gradle کے لیے pgvector RAG کا تطبيق کرنا شروع کیا۔ مبدأ: تمام ڈپوزٹس کا انڈیکس کریں`foundry/, پیدا کرنا ایمبڈنگس، اور انہیں LLM کے سیاق میں داخل کر دیں تاکہ اس کے پاس ایک perception" کا ملف`foundry/.
پائپ لائن سادہ تھا :
val repos = fileTree(rootDir) {
include("**/*.adoc", "**/*.kts", "**/*.kt", "**/*.json", "**/*.yml")
}
val chunks = repos.map { chunk(it) }
val embeddings = chunks.map { embed(it) }
pgvector.insert(embeddings)
سادہ. مؤثر. اورخطرناک.
کیونکہ یہ`fileTree`فرق نہیں کرتا`plantuml-gradle/` (Apache 2.0, public) اور`edster/`(closed source, private). وہ سب کچھ کھاتا ہے. اور اگر ایک دن میں ان امبیڈنگز کو جاری کر دوں — ایک ڈیش بورڈ پر، ایک جواب میں LLM, ایک تربیت ڈیٹاسेट میں — ایڈسٹار کا مالکانه کود لیک ہو رہا ہے۔
|
مسئلہ یہ نہیں ہے کہ ایک LLM بند سرسورس کوڈ پڑے۔ مسئلہ, یہ ہے کہ یہ کوڈ ختم ہو ایک ویکٹر ایمبڈنگ عام — نا-قابلِ واپسی، غیر قابلِ حذف، غیر قابلِ جانچ |
حقیقی سوال
یہ نہیں "کیسے LLM کو کوڈ لیک کرنے سے روک سکتے ہیں؟"۔ یہ ہے "کیسے فرار کو ساختا ناممکن بنانا؟
جواب ایک پرامپٹ نہیں۔ جواب ڈائریکٹری کو دو حصوں میں قطع کرنا ہے۔
حل: OSS/ و CSS/
پہلے :
foundry/
├── plantuml-gradle/ ← public
├── bakery-gradle/ ← public
├── magic-stick/ ← public
├── edster/ ← PRIVÉ
├── slider-gradle/ ← public
└── ... ← mélange invisible
بعد :
foundry/
├── OSS/ ← tout est Apache 2.0
│ ├── plantuml-gradle/
│ ├── bakery-gradle/
│ ├── magic-stick/
│ ├── slider-gradle/
│ └── ...
└── CSS/ ← tout est closed source / private
└── edster/
Le `fileTree`بنتا ہے :
val ossRepos = fileTree(File(rootDir, "OSS")) {
include("**/*.adoc", "**/*.kts", "**/*.kt", "**/*.json", "**/*.yml")
}
val cssRepos = fileTree(File(rootDir, "CSS")) {
include("**/*.adoc", "**/*.kts", "**/*.kt", "**/*.json", "**/*.yml")
}
// Embeddings publics — OSS seulement
pgvectorPublic.insert(ossRepos.map { chunk(it) }.map { embed(it) })
// Dataset fine-tuning privé — CSS seulement
fineTuningDataset.insert(cssRepos.map { chunk(it) }) // jamais publié
|
عامی رِیجِی کبھی نہیں dekhtā`CSS/`.بند سرچ code closed source ایک ڈیٹا سیٹ کو چلاتا ہے فائن‑ٹوننگ سے محروم — ایک اندرونی ماڈل جو کبھی میرے گھر سے نکلتا نہیں۔ تفریق مکانیکی ہے، اعلانیہ نہیں۔ |
کیوں "OSS" اور "CSS" اور نہیں "Public" اور "Private
OSS (Open Source Software) اور CSS (Closed Source Software) کے اختصاروں کا انتخاب فیصلہ کیا گیا :
-
Public"/"Private" بیان کرتا ہےدیکھائیگِٹ ہب کیا دیکھتا ہے
-
OSS"/"CSS" بیان کرتا ہےفtratetکوڈ (جِسے LLM کو جاننا چاہئے)
GitHub کی رؤیا ایک ریموٹ ریpo کا متا ڈیٹا ہے۔ کُود کی فطرت ہے۔ مضمون کی ایک خصوصیت۔ LLM کو GitHub API تک رسائی نہیں ہے — لیکن اس کے پاس رسائی ہے فائل سسٹم پر.CSS/`اسکو کہا "ذہان دیں، یہ کڈ لائسنس نہیں ہے مفت پڑھنے کی ضرورت nélkül ایک`LICENSE`یا ایک کو پارس کرنے کا`package.json`.
|
فولڈر کا نام سب سے مضبوط میٹا ڈیٹا ہے جس کو آپ دے سکتے ہیں ایک LLM. اسے غلط طور سے پارس نہیں کیا جا سکتا، نادیده نہیں لیا جا سکتا، یا غلط طریقے سے سمجھا نہیں جا سکتا. یہ LLM دیکھتا ہے`CSS/edster/`فائل کے پاتھ میں — وہ جانتا ہے |
مکمل درخت — چار علاقے، تین نہیں
OSS/CSS گرانیولیشن تین زون کی اونٹولوجیا مکمل کرتی ہے۔ زون `foundry/`ایک سے دو فنکشنل زیر-مناطق تک پہنچتا ہے:
@startuml
skinparam backgroundColor #FEFEFE
skinparam defaultTextAlignment center
skinparam wrapWidth 260
title Organisation de foundry/ — Granularisation OSS/CSS
package "foundry/" {
package "Cercle 0 — La Racine" #FFCCCC {
rectangle "PICTURE_ME_ROLLIN_*.adoc" as STIM
rectangle "WORKSPACE_*.adoc" as VISION_DOC
note right of STIM
Brain dump libre
Jamais versionné
[LLM : interdit d'indexer]
end note
}
package "Cercle 1 — configuration/" #FFD9CC {
rectangle "Secrets, tokens" as SECRETS
rectangle "Spring Cloud Config" as SCC
note right of SECRETS
Privé-CVS, solo access
[LLM : INTERDIT]
end note
}
package "Cercle 2 — office/" #FFFFCC {
rectangle "Articles, cadrages" as DATA
rectangle "Formations, SPG/SPD" as FORM
note right of DATA
Privé-CVS
[LLM : filtré Vision/Opinion]
end note
}
package "Cercle 3 — foundry/" #CCE5FF {
package "OSS/ — Apache 2.0" #CCFFCC {
rectangle "Plugins Gradle" as PLUGINS
rectangle "engine" as ENGINE
}
package "CSS/ — Closed Source" #CCDDFF {
rectangle "edster/" as EDSTER
}
}
}
@enduml
| زون | RGPD | پبلک RAG انڈیکسیشن | ڈیٹا سیٹ فائن ٹیوننگ | | Racine | لیول 0 — نجی | ✗ | ✗ | |configuration/| لیول 1 — محدود | ✗ | ✗ | |office/| لیول 2 — تعاون | ✓ فلٹر شدہ | ✓ فلٹر شدہ | |foundry/private/| لیول 3 — مشروط کھلا | ✗ | ✓ نجی | |foundry/public/| لیول 4 — نیٹو پبلک | ✓ آزاد | ✓ پبلک |
خاص کیس: cheroliv.com
جب میں وہاں تھا، میں نے ایک دیگر عدم سازگاری درست کی۔ میرا سائٹ cheroliv.com`میں رہا تھا`foundry/`ایک سافٹ ویئر پروجیکت کی طرح مکمل طور پر — اس کیاپنا Gradle بیلڈ، اس کیاپنی سی آئی، اس کیاپنی حکمرانی.agents/`.
لیکن بلاگ کے مضامین کوڈ نہیں ہیں۔ یہ ڈیٹا ہیں۔ Cercle 2 کے تحریری** — ke barabar framing ke`office/pilotage/` یا تربیتوں کا`office/formations/`.
AVANT APRÈS
foundry/ office/
cheroliv.com/ sites/
site/jbake/content/blog/ cheroliv.com/
2026/0117_....adoc 2026/0117_....adoc
جو بدل رہا ہے :
-
چیزیں داخل ہیں`office/`→ Cercle 2 کی رازداری
-
کام`publishSite`ایک قابلیت کا بن جاتا ہے`engine`
کے ذریعے`bakery-gradle`— پلاگین ایک دریافت کرتا ہے`FileTree`، وہ نہیں جانتا کہ مضامین آتے ہیں`office/`
-
ایک سی، ایک حکمرانی — صفر ڈاپلیکیشن
-
ویژن/راے کلاسیفائر (قاعدہ 2bis) خودکار طور پر لاگو ہوتا ہے :
مضامین میں`office/`پیشِ اشاعت سے قبل فیلتر کیے جاتے ہیں
bakery-gradle اس کا کوئی فَرَق نہیں پڑتا
اور یہ ہی ہے جو خوبصورت ہے۔ پلاگین`bakery-gradle`یہ تبدیلی نہیں کی گئی۔ یہ AsciiDoc محتوائے ڈائریکٹری کو وصول کرتا ہے، اس سے HTML بناتا ہے، یہ push کرتا ہے GitHub Pages پر. کہ یہ ڈائریکٹری نام ہے`site/jbake/content/` ou office/sites/cheroliv/— پلگین کو کسی چیز کی فکر نہیں۔
// engine/build.gradle.kts
task("publishBlog") {
doLast {
val articles = fileTree("../../office/sites/cheroliv/2026/")
bakery.generate(articles) // ← bakery ne sait pas d'où ça vient
}
}
انٹرفیس کنٹریکٹ ایک Gradle ٹاسک ہے۔ کوئی REST API نہیں ہے۔ کوئی webhook نہیں ہے۔ ایک ٹاسک — ٹائپڈ (typed)، قابلِ ٹیسٹ، مقامی طور پر اور CI میں قابلِ اجرا۔
گورننس ایجنٹ پر اثر
OSS/CSS کی گرانولرائزیشن ایجن گورننس کے تین نکات کو تبدیل کرتی ہے :
-
RAG public : ان ڈیکس کرنے کا حاشیہ سے`foundry/**`
à foundry/public/+`office/Vision/`بند سورس کوڈ اس کو ٹاسک کنفیگریشن کے ذریعے انڈکس سے اخراج کیا جاتا ہے، پرامپٹ سے نہیں.
-
Knowledge Graph : graphify-gradle دو گراف پیدا کرتا ہے :
*office/graph.json(عام) — OSS آرٹیفیکٹس + office/Vision کے درمیان تعلقات *configuration/graph_private.json(gitignored, خصوصی) — رابطوں کے درمیان CSS آرٹیفیکٹس، کبھی نہیں منتشر
-
ڈیٹا فائن-ٹوننگ :`codebase-gradle`ابھی دو источниے ہیں :
*OSS/→ عوامی ڈیٹساٹس (کمیونٹی موڈلز، بینچمارکس) *CSS/→خصوصی ڈیٹ سیٹس (اندرونی مودیل، ملکی ٹوننگ)
ہم جیتتے ہیں ( اور ہم ہرتے ہیں )
| پہلے (فلیٹ فولڈر) | بعد (OSS/CSS + office/sites) |
|---|---|
|
|
RAG بلا کسی امتیاز کے سب کچھ انڈیکس کرتا ہے |
RAG انڈیکس`OSS/`+`office/Vision`صرف |
یہ معلوم کرنا ناممکن ہے کہ آیا کوئی پروجیکٹ open source ہے |
راستہ`OSS/` ou `CSS/`کہا گیا |
cheroliv.com کا اپنا CI اور اپنی گورننس ہے |
CI اور گورننس کو |
بلاگ کے مضامین ایک "code" ریپوزٹری میں ہیں |
بلاگ کے مضامین اس میں ہیں`office/sites/`— ڈیٹا، کوڈ نہیں |
پبلک ایمبیڈنگز (embeddings) میں کلوزڈ سورس کوڈ کے لیک ہونے کا خطرہ |
ساختی طور پر ناممکن —`CSS/`RAG کے دائرہ کار سے باہر |
صرف ایک لاگت : ایک`git mv`17 OSS ریپوزٹریز پر عالمی + ایک ری فیکٹر کا build.gradle.kts de engine. یہ ایک سرد مائگریشن — ہوا میں ڈیٹا نہیں، کوئی متاثر صارف نہیں۔
نتیجہ: فزیکل سیگنل سافٹ ویئر سیگنل پر غالب ہے
جب نے اس دوپہر کیا، وہ ایک غیر مرئی کنونشن کو بدلنا تھا منطقہ میں واضح تفریق`foundry/. پہلے، آپ کو جاننا کہ`edster/`یہ بند سورس تھا۔ اب آپ dekhte hain — فائل کا نام`CSS/.
یہ ایک ہی اصول ہے جس طرح یونیکس کی اجازتات، نیٹ ورک وی لان، یا آگ سے محفوظ اقسام ڈیٹا بیس میں۔ حفاظت نہیں کرنی چاہیے ایک معلومات جو آپ کو یاد رکھنا ضروری ہے۔ اس کو ایک خاصیت ہونا چاہیے۔ جسمنظام کا.
OSS/CSS کی گرانولائزیشن اس اصول کی ترجمہ ہے اس شعبے میں LLM کی governance۔ LLM کو معلوم کرنے کی ضرورت نہیں ہے کہ Edster ہے رازدار. اس کی ضرورت ہے کہ وہ اس کا انڈیکس نہیں کر سکتا۔
اور یہ بالکل وہ ہے`CSS/`ضمانت دیتا ہے۔
حوالہ جات
-
بند 0117 — LLM گورننس میٹرکس
-
مکمل 0108 — AsciiDoc کے ساتھ AI ایجن کی حکمرانی