خواندن کا وقت: 12 minutes

آپ کی کوڈ بیس بڑھ رہی ہے۔ ماڈیولز کے درمیان وابستگییں ضاہر ہوتی جاتی ہیں۔ معماری کی ڈاکيومینٹیشن لکھنے سے پہلے ہی پرانے ہو جاتی ہے۔ اور اگر آپ کا Gradle build automatiquement ڈائجرام بنā sake, جو کوڈ کی اصل ساخت سے اپ‑ٹو‑ڈيٹ ہو؟ یہی точно Graphify + PlantUML Gradle Plugin pipeline karta hai :`graphify . --no-viz`Knowledge Graph نکال دیتا ہے,`./gradlew generateKnowledgeGraphDiagram`یہ PlantUML ڈائاگرام میں تبدیل کرتا ہے۔ صفر LLM، صفر دستیاب، 100% حتمی۔

المسئلة : ہمیشہ کُوڈ سے پیچھا ڈائاگرامات

کسی بھی منصوبے جو ہزاروں سطر سے زیادہ ہوتا ہے، اس سندرم کا سامنا کرتا ہے :

  1. ہم پروיקט کے ابتداء میں معماریت کا ڈائگرام بناتے ہیں

  2. کود تبدیل ہو رہا ہے، انحصارات بدل رہے ہیں

  3. ڈیگرام بنتا ہے زینت کا جھوٹ

  4. کسی نے اسے آپ ڈیٹ نہیں کیا کیونکہ یہ پریشان کن ہے

  5. نئے داخل ہونے والے اس پر مبنی رہتے ہیں اور غلطی کرتے ہیں

@startuml
skinparam backgroundColor #FEFEFE
skinparam ActivityBackgroundColor #FDEDEC
skinparam ActivityDiamondBackgroundColor #FFF3CD

start

:Diagramme d'architecture créé\n(manuellement, à la main);

:Le code évolue\n(nouvelles classes, nouvelles dépendances);

:Diagramme obsolète\n(ne reflète plus le code);

if (Qui met à jour ?) then (Personne)
    :Documentation mensongère;
    note right: Les nouveaux développeurs\nse basent dessus... et font des erreurs
else (Quelqu'un)
    :Mise à jour manuelle\n(2-3 heures de travail);
    note right: Déjà obsolète\nà la prochaine PR
endif

stop

@enduml

سوال یہ نہیں ہے کیا ڈائگرامز لازمی ہیں؟ — سب جانتے ہیں کہ ہاں۔ سوال یہ ہے :کون انھیںمحدث رکھتا ہے؟

جواب: کوئی نہیں۔ سिवائے اس کے کے یہ خودکار ہو۔

حل: ایک یقینی پائلائن Knowledge Graph → PlantUML

اصول سادہ ہے: ہاتھ سے diagram بنانے کی جگہ، ہم ان کوکوڈ کی حقیقی ڈھانچے سے پیداہوا.

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

actor Développeur
component "Graphify\n(pip install graphifyy)" as Graphify
collections "graphify-out/graph.json\n(Knowledge Graph)" as KGJSON
component "PlantUML Gradle Plugin\n(generateKnowledgeGraphDiagram)" as Plugin
component "KnowledgeGraphParser" as Parser
component "KnowledgeGraphRenderer" as Renderer
component "PlantumlService\n(validation + rendu PNG)" as PS
collections "diagrams/knowledge-graph/\n(.puml + .png)" as Output

Développeur --> Graphify : graphify . --no-viz
Graphify --> KGJSON : extrait la structure\ndu code source
Développeur --> Plugin : ./gradlew generateKnowledgeGraphDiagram
Plugin --> Parser : parse(graph.json)
Parser --> Plugin : KnowledgeGraph\n(noeuds + arêtes + communautés)
Plugin --> Renderer : render(graph, filters)
Renderer --> Plugin : code PlantUML\ndéterministe
Plugin --> PS : validateSyntax + generateImage
PS --> Output : .puml + .png

note bottom of Plugin
  Pipeline DÉTERMINISTE
  Aucun appel LLM
  Résultat reproductible
end note

@enduml

دو کمانڈز. یہ سب ہے.

# Étape 1 : extraire le Knowledge Graph
graphify . --no-viz

# Étape 2 : générer les diagrammes PlantUML
./gradlew generateKnowledgeGraphDiagram

نتیجہ؟ فائلیں`.puml` et .png`داخل`diagrams/knowledge-graph/, Git میں ورژنڈ، ہمیشہ کوڈ کے ساتھ اپ‑ٹو‑ڈیت

مرحلہ 1: Graphify انسٹال کریں اور Knowledge Graph نکالیں

تنصیب

Graphify ایک Python اَalat ہے جو آپ کے codebase کا تجزیہ کرتا ہے اور ایک منظم علم کا گراف بناتا ہے :

# Méthode recommandée
uv tool install graphifyy && graphify install --platform opencode

# Alternative avec pip
pip install graphifyy && graphify install --platform opencode

استثنیات کو کنفیگر کریں

فائل بنانا`.graphifyignore`پروجیکٹ کی جڑ پر، وہ فائلیں خارج کرنے کے لئے جو کاروباری منطق کا حصہ نہیں ہیں:

# Secrets — JAMAIS dans le graphe
*-context.yml
*.env

# Fichiers générés
build/
.gradle/

# Tests fonctionnels
src/functionalTest/

Knowledge Graph نکالیں

graphify . --no-viz

فلیگ`--no-viz`یہ HTML کی تولید (Gradle پائلائن میں غیر ضروری) کو چھوڑ دیتا ہے۔ نتیجہ ایک فائل ہے`graphify-out/graph.json`شامل :

  • بند: کلاسز، فنکشنز، فائلیں — ان کے ٹائپ اور کمیونٹی کے ساتھ

  • کنارے: نڈوں کے درمیان تعلقات (EXTRACTED کوڈ سے, INFERRED LLM کے ذریعے)

  • سماج: مرتبط نودز کے خودکار گروپنگ

مثال ساخت`graph.json`
{
  "nodes": [
    {"id": "0", "label": "LlmService", "file_type": "code", "community": 0},
    {"id": "1", "label": "ApiKeyPool", "file_type": "code", "community": 0},
    {"id": "2", "label": "PlantumlService", "file_type": "code", "community": 1}
  ],
  "links": [
    {"source": "1", "target": "0", "relation": "uses", "confidence": "EXTRACTED", "weight": 0.9},
    {"source": "0", "target": "2", "relation": "calls", "confidence": "INFERRED", "weight": 0.7}
  ]
}

سورس کوڈ (.kt, .java) tree-sitter کے ذریعے مقامی طور پر تجزیہ کیا جاتا ہے,قابل اعتراض نہ ہونے والی LLM. صرف دستاویزات کے فائلوں (.adoc, .md) ضرور ہیں ایک LLM کال معنوی اخراج کے لیے. لہٰذا`--update`Kotlin کوڈ پر تقریباً فوری ہے.

مرحلہ 2 : Gradle پلاگین Knowledge Graph کو PlantUML میں بدل دیتا ہے

پائلائن کی معماری

پلاگین`com.cheroliv.plantuml`ایک کام شامل کرتا ہے`generateKnowledgeGraphDiagram`جو تبدیل کرتا ہے`graph.json`PlantUML ڈائگراموں میںکاملاً تعییناتی:

@startuml
skinparam backgroundColor #FEFEFE

participant "Gradle" as G
participant "GenerateKnowledgeGraphDiagramTask" as Task
participant "KnowledgeGraphParser" as Parser
participant "KnowledgeGraphRenderer" as Renderer
participant "PlantumlService" as PS

collections "graphify-out/graph.json" as JSON

G -> Task : execute
Task -> JSON : read
Task -> Parser : parse(graph.json)
Parser --> Task : KnowledgeGraph\n(noeuds + arêtes + communautés)
Task -> Renderer : render(graph, filters)
Renderer --> Task : code PlantUML\n(déterministe)
Task -> PS : validateSyntax(plantumlCode)
alt syntaxe valide
    Task -> PS : generateImage → .png
else syntaxe invalide
    Task -> Task : save .puml avec warning
end

@enduml

اندرونی اجزاء

جز رول

KnowledgeGraphParser

پارس کریں`graph.json`— تین فارمٹس سپورٹ کرتا ہے: نیٹیف گرافی (nodes+links), legacy (communities), flat. عددī IDs کو لیبلز میں حل کرتا ہے۔

KnowledgeGraphRenderer

ایک کو ڈیٹرمنسٹ طور پر تبدیل کرتا ہے`KnowledgeGraph`پلنٹ یو ایم کے کوڈ میں. قسم کے حسب گروپ، پیکجوں میں کوميونیٹیز، خودکار لیجند۔

GenerateKnowledgeGraphDiagramTask

Gradle کام جو منظم کرتا ہے: parse → render → validate → PNG. Gradle properties کے ذریعے قابلِ تنظیم.

kgmodels.kt

ڈیٹا ماڈلز :`KnowledgeGraph`, KnowledgeGraphNode, KnowledgeGraphEdge, KnowledgeGraphCommunity, EdgeType.

PlantumlService

نحوی تصدیق + PNG رینڈر (پلاگїн کے تمام کاموں میں دوبارہ استعمال ہوتا ہے).

rendering کے قواعد

renderer بصری deterministic conventions لاگو کرتا ہے:

کنار کی قسم نوٹیشن PlantUML معنی

نقل کردہ

-→(خط, مستمر, سیاہ)

سورس کوڈ سے نکالا گیا رابطہ (یقین)

نتیجہ نکالا

..>(نقطہ دار خط)

استنتاج کردہ رابطہ LLM کے ذریعے (اعتماد کا امتیاز)

مبہم

--x(سرخ نقطہ دار لائن)

مبہم رابطہ (جانچ کے لیے)

کمیونٹیز PlantUML پیکیج کے طور پر render (دکھائی) جاتی ہیں، جس میں خودکار رنگ پالیٹ ہوتی ہے۔

مرحلہ 3 : روزانہ استعمال

مکمل ڈائاگرام

# Générer le diagramme du Knowledge Graph complet
./gradlew generateKnowledgeGraphDiagram

خروج :`diagrams/knowledge-graph/knowledge-graph-full.puml`+.png

کميونٹی حسب فیلٹر کریں

# Une seule communauté
./gradlew generateKnowledgeGraphDiagram \
  -Pplantuml.kg.community=community_0

# Limiter le nombre de noeuds (lisibilité)
./gradlew generateKnowledgeGraphDiagram \
  -Pplantuml.kg.community=community_0 \
  -Pplantuml.kg.maxNodes=15

کینارے کے نوع کے مطابق فیلٹر کریں

# Uniquement les relations certaines (EXTRACTED)
./gradlew generateKnowledgeGraphDiagram \
  -Pplantuml.kg.edgeTypes=EXTRACTED

# Relations certaines + inférées
./gradlew generateKnowledgeGraphDiagram \
  -Pplantuml.kg.edgeTypes=EXTRACTED,INFERRED

فلٹر حسب نوع عقده اور اعتماد

# Uniquement les classes de code
./gradlew generateKnowledgeGraphDiagram \
  -Pplantuml.kg.nodeTypes=code

# Seuil de confiance minimum (pour les INFERRED)
./gradlew generateKnowledgeGraphDiagram \
  -Pplantuml.kg.minConfidence=0.7

شخصی آؤٹ پٹ ڈائریکٹری

./gradlew generateKnowledgeGraphDiagram \
  -Pplantuml.kg.outputDir=docs/architecture

خواص کی مکمل حوالہ

مملکت پیش‌فرض وصف

plantuml.kg.community

(سب)

نام کے مطابق سماجی گروہوں کو فیلٹر کریں (حصے کی مطابقت)

plantuml.kg.edgeTypes

(تمام)

کمی سے جداسے کردہ کنارے کے نوع :`EXTRACTED`, INFERRED, AMBIGUOUS

plantuml.kg.minConfidence

0.0

Edges کے لیے حد أدنى اعتماد

plantuml.kg.maxNodes

(لامحدود)

نمائش کے لیے زیادہ سے زیادہ نوڈز

plantuml.kg.nodeTypes

(تمام)

گہنچوں کے انواع کما سے الگ (مثلاً`class`, code)

plantuml.kg.outputDir

diagrams/knowledge-graph

فائلوں کے لیے آؤٹ پٹ ڈائریکٹری`.puml` et .png

Gradle workflow میں مکمل پائپ لائن

ورک فلو کی قسم

@startuml
skinparam backgroundColor #FEFEFE
skinparam ActivityBackgroundColor #E8F4FD
skinparam ActivityDiamondBackgroundColor #FFF3CD
skinparam ActivityBorderColor #2C3E50

start

partition "EXTRACTION" {
    :graphify . --no-viz;
    note right: Analyse le code source\ntree-sitter (local, pas de LLM)

    :graphify-out/graph.json;
    note right: Noeuds + arêtes\n+ communautés
}

partition "GÉNÉRATION" {
    :./gradlew generateKnowledgeGraphDiagram;
    note right: Pipeline déterministe\nparse → render → validate → PNG

    if (Filtres actifs ?) then (Oui)
        :Appliquer filtres\n(community, edgeTypes,\nmaxNodes, nodeTypes);
    else (Non)
        :Diagramme complet;
    endif

    :diagrams/knowledge-graph/\nknowledge-graph-full.puml\nknowledge-graph-full.png;
}

partition "INTÉGRATION" {
    :git add diagrams/knowledge-graph/;
    :git commit;
    note right: Diagrammes versionnés\ntoujours à jour avec le code
}

stop

@enduml

ترقیاتی سیکل میں شامل

پاپ لائن ترقی کے اہم مراحل میں ذاتی طور پر شامل ہوتا ہے :

@startuml
skinparam backgroundColor #FEFEFE

state "Développement" as dev
state "Extraction\ngraphify . --no-viz" as extract
state "Génération\n./gradlew generateKnowledgeGraphDiagram" as generate
state "Commit\ndiagrammes versionnés" as commit

[*] --> dev
dev --> extract : Code modifié
extract --> generate : graph.json à jour
generate --> commit : .puml + .png générés
commit --> dev : Diagrammes dans le repo

note right of extract
  Quasi instantané sur du code Kotlin
  (tree-sitter, pas de LLM)
end note

note right of generate
  Déterministe
  Pas de LLM
  Résultat reproductible
end note

@enduml

انکریمنٹل اپ ڈیٹ

جب کڈ بدل جاتا ہے، تو ہم gesamte graf سے sıfr سے دوبارہ بناتے نہیں ہیں :

# Mise à jour incrémentale (fichiers modifiés uniquement)
graphify . --update

# Puis régénérer les diagrammes
./gradlew generateKnowledgeGraphDiagram

--update`ye صرف تبدیل شدہ فائلوں کو دوبارہ نکالتا ہے (SHA256 سے متعین میں`graphify-out/cache/) Kotlin کوڈ پر، یہ تقریباً فوری ہے کیونکہ tree-sitter مقامی طور پر کام کرتا ہے بلا LLM کال.

ڈاگفوڈنگ : پلاگائن خود خود کو دستاویز بناتا ہے

پلاگ ان PlantUML پروپمپٹس کو ڈائیاگراموں میں تبدیل کرنے کے لیے موجود ہے۔ یہ بھی اپنی propre کوڈ بیس کو دستاویزاتی ڈائیاگراموں میں تبدیل کر سکتا ہے۔ یہ dogfooding ہے: پلاگ ان اپنی خدمت خود استعمال کرتا ہے۔

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

package "نارمل پائپ لائن\n(صارف → ڈائیگرامز)" as normal {
    [Fichier .prompt] as prompt
    [LlmService\n+ ApiKeyPool] as llm1
    [ProcessPlantumlPromptsTask] as task1
    [Diagramme PNG] as out1

    prompt --> task1
    task1 --> llm1
    llm1 --> out1
}

package "نالج گراف پائپ لائن\n(ڈیٹرمینسٹک، کوئی LLM نہیں)" as kg {
    [graphify-out/graph.json] as kgjson
    [KnowledgeGraphParser] as parser
    [KnowledgeGraphRenderer] as renderer
    [PlantumlService] as ps
    [Diagramme PNG\n(documentation du plugin)] as out2

    kgjson --> parser
    parser --> renderer
    renderer --> ps
    ps --> out2
}

package "ڈاگ فوڈنگ پائپ لائن\n(LLM → پلگ ان کی دستاویزات)" as dogfood {
    [GraphifyPromptAdapter] as gpa
    [Fichiers .prompt\nauto-générés] as auto_prompt
    [LlmService\n+ ApiKeyPool] as llm2
    [ProcessPlantumlPromptsTask] as task2
    [Diagramme PNG\n(documentation LLM)] as out3

    kgjson --> gpa
    gpa --> auto_prompt
    auto_prompt --> task2
    task2 --> llm2
    llm2 --> out3
}

note "وہی LlmService، وہی ApiKeyPool،\nوہی PlantumlService\n— زیرو ڈپلیکیشن" as N

@enduml

مرتبطہ گریڈل ٹاسک:

کام LLM ? تفصیل

generateKnowledgeGraphDiagram

نہیں

بدل`graph.json`PlantUML میں (تعیینی)

generateDiagramDocs

ہاں

پیدا کریں کچھ`.prompt`گراف سے، انہیں LLM (dogfooding) کے ذریعے پروسیس کیا جاتا ہے

# Documentation déterministe (rapide, pas de LLM)
./gradlew generateKnowledgeGraphDiagram

# Documentation LLM (plus riche, consomme des tokens)
./gradlew generateDiagramDocs

کیوں یہ محدد ہے (اور کیوں یہ اہم ہے)

پائپ لائن کا اہم نقطہ`generateKnowledgeGraphDiagram`:وہ کوئی LLM کو نہیں بلاتا. تبدیل`graph.json`→ PlantUML ایک خالص فنکشن ہے۔

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

rectangle "DÉTERMINISTE پائپ لائن\n(generateKnowledgeGraphDiagram)" as det {
    [graph.json] as json
    [KnowledgeGraphParser] as parser
    [KnowledgeGraphRenderer] as renderer
    [PlantUML code] as puml

    json --> parser : parse
    parser --> renderer : KnowledgeGraph
    renderer --> puml : render (fonction pure)
}

rectangle "LLM پائپ لائن\n(processPlantumlPrompts)" as llm {
    [.prompt] as prompt
    [LlmService] as llmSvc
    [ChatModel] as model
    [PlantUML code] as puml2

    prompt --> llmSvc
    llmSvc --> model : API call
    model --> puml2 : réponse non-déterministe
}

note bottom of det
ایک ہی ان پٹ → ایک ہی آؤٹ پٹ
نیٹ ورک لیٹنسی نہیں
ٹوکنز کی کوئی لاگت نہیں
CI میں ریپروڈیوس ایبل
end note

note bottom of llm
ایک ہی ان پٹ → متغیر آؤٹ پٹ
نیٹ ورک لیٹنسی (1-5s)
ٹوکنز کی قیمت
API کی (clave API) کی ضرورت ہے
end note

@enduml

ملموس فوائد :

فائدہ اثر

قابلیت تکثیر

بھی`graph.json`→ ایک ہی نمشہ. بالکل. ہر بار.

صفر لاگت

کسی LLM کے کال نہیں = نہ ٹوکنز = نہ_API بِل

صفر لاٹنسی

Parse + render تقریباً 100ms ملتا ہے، 1-5 ثوانی نہیں۔

مطابق CI

کلی API کی ضرورت نہیں۔ متغیر LLM کے جواب کی وجہ سے فلیکی ٹیسٹ نہیں۔

ورژن کرنے کے قابل

Le .puml`پیدا شدہ متن ہے. ہم یہ کر سکتے ہیں`diff, PR میں ریور، اس کو Git میں ورژن کرنا

خود کے پائپ لائن کے ڈائاگرام

لوپ کو بند کرنے کے لیے، یہ پائپ لائن کا ڈائیگرام ہے جس طرح یہ پلگ ان سے پیدا ہوگا:

@startuml
skinparam backgroundColor #FEFEFE

participant "Développeur" as Dev
participant "Gradle" as G
participant "GenerateKnowledgeGraphDiagramTask" as Task
participant "KnowledgeGraphParser" as Parser
participant "KnowledgeGraphRenderer" as Renderer
participant "PlantumlService" as PS
collections "graphify-out/graph.json" as JSON
collections "diagrams/knowledge-graph/" as Out

Dev -> G : ./gradlew generateKnowledgeGraphDiagram
G -> Task : execute
Task -> JSON : read
Task -> Parser : parse(graph.json)
Parser --> Task : KnowledgeGraph

alt filtres actifs
    Task -> Task : appliquer filtres\n(community, edgeTypes, maxNodes…)
end

Task -> Renderer : render(graph, filters)
Renderer --> Task : code PlantUML

Task -> PS : validateSyntax()
alt valide
    Task -> PS : generateImage()
    PS --> Out : .puml + .png
else invalide
    Task -> Out : .puml (avec warning)
end

@enduml

پروجیکٹ گورننس میں شامل ہونا

ہماری پروجيٽ میں، یہ پائپلاین EAGER/LAZY کنٹیکسٹ منیجمنٹ کی ایک استراتژی کے طور پر اے اے آجینٹ کے لیے شامل ہے۔ نالوج گراف (Knowledge Graph) ہینڈ‑میکڈ آرکیٹچر ڈاکمیونٹی کی جگہ ایک منظم، قابل کوئری اور خود‑آپ ڈیٹ ہونے والا گراف لے لیتی ہے۔

@startuml
skinparam backgroundColor #FEFEFE
skinparam componentStyle rectangle

package "EAGER\n(toujours chargé)" as eager {
    [PROMPT_REPRISE.adoc\n(contexte session)] as pr
    [INDEX.adoc\n(vue d'ensemble)] as idx
    [GRAPH_REPORT.adoc\n(~50 lignes)] as gr
}

package "LAZY — Stratégie\n(sur demande)" as lazy_strat {
    [Méthodologies] as meth
    [Archives sessions] as sessions
}

package "LAZY — Graphify\n(requêtes ciblées)" as lazy_graph {
    [graph.json] as gj
    [Queries\n(query/path/explain)] as queries
}

package "Pipeline PlantUML\n(auto-généré)" as puml {
    [generateKnowledgeGraphDiagram] as kgTask
    [generateDiagramDocs] as ddTask
    [Diagrammes PNG] as diagrams
}

Agent --> eager : Lit en début de session
Agent ..> lazy_strat : Charge si type détecté
Agent ..> lazy_graph : Query si besoin structurel
kgTask --> diagrams : Déterministe
ddTask --> diagrams : Via LLM

note right of gr
  Condensé du Knowledge Graph
  God nodes + communautés
  Remplace ECOSYSTEM_OVERVIEW
  (225 lignes → 50 lignes)
end note

@enduml

دو نظاموں کی شادی مکمل ہے :

  • استراتژی کس کی اور کیسے کی مدیریت کرتی ہے— حکمرانی, کام کی ترتیب, محفوظ کرد

  • Graphify کیا اور کہاں کا انتظام کرتا ہے— کد کی ساخت، رابطے، ہدف شدہ کوئری

_ سیشن کی اسٹریٹیجی اسےmanage کرتی ہےکب et le کیسے(حاکمرانی, workflow, حدود), مناجمنٹ کرتا ہےکیا et le کہاں(کوڈ کی ساخت, روابط, هدف کے کوئرئیز). PlantUML پائلائن یہ manage karti haiکسی کے ساتھ(حتمی ڈائاگرام، ورژنڈ، ہمیشہ اپ ڈیٹ). _

تیارکاری: 5 منٹ کی چیک لِسٹ

# مرحلہ آرڈر

1

Graphify کو انسٹال کریں

uv tool install graphifyy

2

الاستثناءات کو سيتاپ Karachi

بنانا`.graphifyignore`

3

Knowledge Graph نکالیں

graphify . --no-viz

4

ڈائگرامات بنائیں

./gradlew generateKnowledgeGraphDiagram

5

نتائج کو Submit کریں

git add diagrams/knowledge-graph/

# Script complet en 5 commandes
uv tool install graphifyy
cat > .graphifyignore << 'EOF'
*-context.yml
*.env
build/
.gradle/
EOF
graphify . --no-viz
./gradlew generateKnowledgeGraphDiagram
git add graphify-out/GRAPH_REPORT.adoc graphify-out/graph.json diagrams/knowledge-graph/

فخوں اور تخفیف کے اقدامات

فخ تفصیل تخفیف

بہت ضخیم گراف

ایک بڑا 프로ジェкт بہت سو نودیں پیدا کرتا ہے جو پڑھنے میں ناہم ہیں

استعمال کرنا`-Pplantuml.kg.maxNodes=30`اور کميونیٹی سے فیلٹر کریں

بہت وسیع استثناءات

بہت سے فائلز میں`.graphifyignore`граاف کی مقدار کو کم کرتا ہے

صرف credentials اور build کو buiten کرنے سے شروع کریں

تیروں کی سمت

INFERRED کنارے مبہم سمت رکھ سکتے ہیں

فیلٹر حسب`-Pplantuml.kg.edgeTypes=EXTRACTED`صرف یقینی تعلقات کے لیے

قدیمی گراف

کد تبدیل ہوتا ہے مگر گراف دوبارہ بنا نہیں جاتا

استعمال`graphify . --update`معمولاً یا گٹ ہُک`graphify hook install`

آپ ڈیٹ کردہ لاگت

اضافاتی اپ ڈیٹس تقریباً مفت ہیں (tree-sitter مقامی)

صرفڈاکس (.adoc) LLM ٹوکن کھرچ کرتے ہیں

آخر میں کیا حاصل ہوتا ہے

@startuml
skinparam backgroundColor #FEFEFE

rectangle "پہلے" as avant {
    card "ہاتھ سے بنے ہوئے ڈایاگرام\nہمیشہ پرانے\nکوئی بھی انہیں اپ ڈیٹ نہیں کرتا" as av1 #FDEDEC
}

rectangle "بعد میں" as apres {
    card "خودکار طریقے سے تیار کردہ ڈایاگرام\nہمیشہ کوڈ کے ساتھ اپ ٹو ڈیٹ\nGit میں ورژن شدہ\nڈیٹرمینسٹک اور قابلِتکrar (reproducible)" as ap1 #E8F8E8
}

avant --> apres : graphify . --no-viz\n+ ./gradlew generateKnowledgeGraphDiagram

@enduml

واقعی فائدے :

منافع تفصیل

ڈاکیومینٹیشن ہمیشه محدث

ڈیگرامات موجودہ کوڈ کو ظاہر کرتے ہیں، دستی سناپشاٹ نہیں۔

صفر نگاہی کا محنت

ڈیاگرام ہر بنڈ پر دوبارہ تیار ہو جاتے ہیں

تقنی قرض کی کسر

اب diagrammat کو ہاتھ سے محفوظ یا اپ ڈیٹ کرنے کی ضرورت نہیں

نئے کے لیے بصری سیاق

ایک نئے ڈیولپر ڈائاگرامات دیکھ کر آرکیٹیکچر سمجھتا ہے

فائن-ٹنیوگ کا امکان

جفت (زیر-گراف → ڈائگرام) AI کے تربیت کے مثال

خودکار تصدیق

`PlantumlService.validateSyntax()`ہر پیدا کیا گیا ڈئیاگرام جانچتا ہے

جلدی آئین بورڈنگ

5 ڈائگرامز = معماری کا مکمل نظر

_ جس کے پاس ایک _کیوں ہو، وہ تمام کسی طرح کو برداشت کر سکتا ہے۔ __

pourquoi : diagramمہ ہمیشہ اپ ڈیٹ. comment : گرادیل پائپ لائن میں دو فرمان.

روابط

متعلقہ مضامین