Add AST JSON file for blog category breadcrumb and filter prompt with detailed nodes and edges

This commit is contained in:
hamed
2026-07-30 12:22:55 +03:30
parent 8a24579a50
commit 29881eede0
9 changed files with 1828 additions and 225 deletions
+7 -1
View File
@@ -405,5 +405,11 @@
"403": "Community 403",
"404": "Community 404",
"405": "Community 405",
"406": "Community 406"
"406": "Community 406",
"407": "Community 407",
"408": "Community 408",
"409": "Community 409",
"410": "Community 410",
"411": "Community 411",
"412": "Community 412"
}
+66 -40
View File
@@ -1,16 +1,16 @@
# Graph Report - nobat724_front (2026-07-27)
# Graph Report - nobat724_front (2026-07-30)
## Corpus Check
- 639 files · ~576,045 words
- 642 files · ~582,216 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 2422 nodes · 2500 edges · 407 communities (372 shown, 35 thin omitted)
- 2473 nodes · 2548 edges · 413 communities (377 shown, 36 thin omitted)
- Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 176 edges (avg confidence: 0.8)
- Token cost: 0 input · 0 output
## Graph Freshness
- Built from commit: `19ae08c0`
- Built from commit: `8a24579a`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
@@ -177,6 +177,12 @@
- [[_COMMUNITY_Community 398|Community 398]]
- [[_COMMUNITY_Community 402|Community 402]]
- [[_COMMUNITY_Community 403|Community 403]]
- [[_COMMUNITY_Community 407|Community 407]]
- [[_COMMUNITY_Community 408|Community 408]]
- [[_COMMUNITY_Community 409|Community 409]]
- [[_COMMUNITY_Community 410|Community 410]]
- [[_COMMUNITY_Community 411|Community 411]]
- [[_COMMUNITY_Community 412|Community 412]]
## God Nodes (most connected - your core abstractions)
1. `getStateInfo()` - 29 edges
@@ -205,7 +211,7 @@
## Import Cycles
- None detected.
## Communities (407 total, 35 thin omitted)
## Communities (413 total, 36 thin omitted)
### Community 0 - "Community 0"
Cohesion: 0.05
@@ -224,8 +230,8 @@ Cohesion: 0.23
Nodes (16): getCurrentDomain(), robots(), cityFilterParams(), fetchAllPages(), getBlogUrls(), getCityScope(), getClinicUrls(), getCurrentDomain() (+8 more)
### Community 4 - "Community 4"
Cohesion: 0.06
Nodes (22): ContentDetail(), About(), ListBime(), Services(), Specialties(), TextDetail(), listTab, AddComment() (+14 more)
Cohesion: 0.05
Nodes (33): ContentDetail(), About(), ListBime(), Services(), Specialties(), TextDetail(), listTab, AddComment() (+25 more)
### Community 5 - "Community 5"
Cohesion: 0.07
@@ -240,8 +246,8 @@ Cohesion: 0.07
Nodes (4): degreeVal, NAME_HONORIFICS, normalizeBlog(), removeTokenHead
### Community 8 - "Community 8"
Cohesion: 0.07
Nodes (28): devDependencies, babel-plugin-react-compiler, cross-env, eslint, eslint-config-next, @eslint/eslintrc, jsdom, prettier (+20 more)
Cohesion: 0.13
Nodes (15): devDependencies, babel-plugin-react-compiler, cross-env, eslint, eslint-config-next, @eslint/eslintrc, jsdom, prettier (+7 more)
### Community 9 - "Community 9"
Cohesion: 0.07
@@ -324,8 +330,8 @@ Cohesion: 0.12
Nodes (16): دیپلوی nobat724_front روی Liara (پلتفرم Next.js), زمینه, فایل‌های مرتبط, مشکل / هدف, نکات مهم, وضعیت فعلی, وظایف, پروژه (+8 more)
### Community 29 - "Community 29"
Cohesion: 0.08
Nodes (20): generateMetadata(), Blogs(), generateMetadata(), Clinics(), Appointment(), metadata, Doctors(), generateMetadata() (+12 more)
Cohesion: 0.13
Nodes (11): generateMetadata(), Blogs(), generateMetadata(), Appointment(), metadata, fetchSiteContext(), getStateInfo(), siteContextCache (+3 more)
### Community 30 - "Community 30"
Cohesion: 0.12
@@ -388,8 +394,8 @@ Cohesion: 0.14
Nodes (13): `hours/List.js`, آبجکت اسلات (از `adaptSlots` / API), تأیید و سخت‌سازی غیرفعال‌بودن اسلات‌های گذشته در صفحه‌ی نوبت, زمینه, فایل‌های مرتبط, مشکل / هدف, نکات مهم, وضعیت فعلی (کد واقعی) (+5 more)
### Community 45 - "Community 45"
Cohesion: 0.40
Nodes (9): generateMetadata(), blogCover(), imageUrl(), domainScopeCityId(), findCityById(), isBlogVisibleOnDomain(), Blog(), getBlog (+1 more)
Cohesion: 0.20
Nodes (20): generateMetadata(), generateMetadata(), generateMetadata(), DoctorPage(), blogCover(), doctorTitle(), imageUrl(), domainScopeCityId() (+12 more)
### Community 46 - "Community 46"
Cohesion: 0.22
@@ -488,8 +494,8 @@ Cohesion: 0.20
Nodes (9): رفع جهت تبدیل تاریخ تولد هنگام ایجاد پروفایل, زمینه, فایل‌های مرتبط, مشکل / هدف, نکات مهم, وضعیت فعلی (کد واقعی), وظایف, پروژه (+1 more)
### Community 70 - "Community 70"
Cohesion: 0.13
Nodes (13): ClinicsPage(), AutoComplete(), ButtonFilter(), Content(), ModalSearchCity(), AutoSearch(), FilterButton(), SearchBar() (+5 more)
Cohesion: 0.20
Nodes (7): AutoComplete(), ButtonFilter(), Content(), ModalSearchCity(), AutoSearch(), FilterButton(), SearchBar()
### Community 71 - "Community 71"
Cohesion: 0.22
@@ -520,8 +526,8 @@ Cohesion: 0.17
Nodes (11): زمینه, سایت دامنه اختصاصی نماینده سراسری — تشخیص دامنه، فیلتر پزشکان/کلینیک‌ها, فایل‌های مرتبط, مشکل / هدف, نکات مهم, وضعیت فعلی, وظایف, پروژه (+3 more)
### Community 81 - "Community 81"
Cohesion: 0.24
Nodes (14): generateMetadata(), Detail(), getClinicAddress(), getClinicCity(), getClinicPhone(), getClinicState(), hasClinicContact(), telHref() (+6 more)
Cohesion: 0.07
Nodes (28): cross-repo — بررسی دستی اجباری, تست خودکار محدود است, تسک ۰۰ب — سازگارسازی سایت عمومی با نوبت‌دهی سرویسی, تشخیص حالت — `components/appointment/index.js:125` (درست، دست‌نخورده بماند), ⛔ خط سرخ — مسیر اسلاتی سایت, دامنه را گسترش نده, زمینه, فایل‌های مرتبط (+20 more)
### Community 82 - "Community 82"
Cohesion: 0.17
@@ -532,8 +538,8 @@ Cohesion: 0.24
Nodes (5): Head(), Article(), LatestArticles(), Title(), ItemTitle()
### Community 86 - "Community 86"
Cohesion: 0.16
Nodes (15): RootLayout(), generateMetadata(), safeJsonLd(), bodyVariants(), buildSpecialtyFaq(), buildSpecialtyIntro(), closingVariants(), openingVariants() (+7 more)
Cohesion: 0.27
Nodes (10): generateMetadata(), bodyVariants(), buildSpecialtyFaq(), buildSpecialtyIntro(), closingVariants(), openingVariants(), pick(), findSpecialty() (+2 more)
### Community 87 - "Community 87"
Cohesion: 0.33
@@ -608,8 +614,8 @@ Cohesion: 0.15
Nodes (12): اصلاح بخش «اطلاعات تماس» صفحه کلینیک, زمینه, فایل‌های مرتبط, مشکل / هدف, نکات مهم, وضعیت فعلی, وظایف, پروژه (+4 more)
### Community 140 - "Community 140"
Cohesion: 0.53
Nodes (4): Pageguide(), absoluteUrl(), buildBreadcrumbJsonLd(), normalizeBreadcrumb()
Cohesion: 0.36
Nodes (6): RootLayout(), Pageguide(), absoluteUrl(), buildBreadcrumbJsonLd(), normalizeBreadcrumb(), safeJsonLd()
### Community 354 - "Community 354"
Cohesion: 0.11
@@ -632,16 +638,16 @@ Cohesion: 0.19
Nodes (9): Card(), PAYMENT_STATUS, TYPE_LABELS, Head(), listTab, Transactions(), List(), PAYMENT_STATUS (+1 more)
### Community 369 - "Community 369"
Cohesion: 0.33
Nodes (5): buildDoctorParams(), normalizeDoctorNameQuery(), QueryForDoctorsClinicReq(), QueryForDoctorsReq(), buildSearchUrl()
Cohesion: 0.29
Nodes (6): Doctors(), buildDoctorParams(), normalizeDoctorNameQuery(), QueryForDoctorsClinicReq(), QueryForDoctorsReq(), buildSearchUrl()
### Community 370 - "Community 370"
Cohesion: 0.29
Nodes (4): ProvinceContext, ProvinceProvider(), Probe(), useProvince()
Cohesion: 0.25
Nodes (5): ProvinceContext, ProvinceProvider(), Probe(), useProvince(), SubmitData()
### Community 372 - "Community 372"
Cohesion: 0.22
Nodes (14): generateMetadata(), DoctorPage(), doctorTitle(), hasRealName(), isNoindexDoctor(), isThinClinic(), isThinDoctor(), isUnclaimedDoctor() (+6 more)
Cohesion: 0.48
Nodes (6): hasRealName(), isNoindexDoctor(), isThinClinic(), isThinDoctor(), isUnclaimedDoctor(), PLACEHOLDER_NAMES
### Community 373 - "Community 373"
Cohesion: 0.12
@@ -683,10 +689,6 @@ Nodes (10): زمینه, فعال‌سازی بلاگ شهر-محور (بعد ا
Cohesion: 0.20
Nodes (9): زمینه, ساده‌سازی sitemap با شهرِ موجود در پاسخ + آستانهٔ sitemap-index, نکات مهم, وضعیت فعلی, وظایف, پروژه, ۱. حذف ۳۵ sweep و یکسان‌سازی با الگوی کلینیک, ۲. آستانهٔ sitemap-index (مستقل از backend) (+1 more)
### Community 388 - "Community 388"
Cohesion: 0.36
Nodes (3): Form(), SubmitData(), ButtonFixed()
### Community 390 - "Community 390"
Cohesion: 0.40
Nodes (3): Allergies(), ItemAllergie(), ModalAddAlergie()
@@ -703,37 +705,61 @@ Nodes (3): ModalAddRelatives(), Relatives(), ItemRelatives()
Cohesion: 0.40
Nodes (3): ModalAddSurgeries(), Surgeries(), ItemSurgeries()
### Community 395 - "Community 395"
Cohesion: 0.31
Nodes (3): Content(), Form(), EditField()
### Community 397 - "Community 397"
Cohesion: 0.50
Nodes (3): formatToman(), rialToToman(), Paying()
### Community 402 - "Community 402"
Cohesion: 0.38
Nodes (4): DoctorsPage(), resolveCityDisplayName(), isRootCity(), ListDoctors()
Cohesion: 0.21
Nodes (10): ClinicsPage(), DoctorsPage(), resolveCityDisplayName(), buildClinicsIntro(), buildDoctorsIntro(), CLINIC_INTROS(), DOCTOR_INTROS(), pick() (+2 more)
### Community 403 - "Community 403"
Cohesion: 0.29
Nodes (6): CARD, lines, mark, OUT, PARAGRAPH, ROOT
### Community 407 - "Community 407"
Cohesion: 0.10
Nodes (19): زمینه, صفحهٔ بلاگ: بردکرامب دسته‌بندی، فیلتر دسته‌بندی، و اصلاح ستون «مطالب مرتبط», فایل‌های مرتبط, مشکل / هدف, معیار پذیرش, نکات مهم, وضعیت فعلی, وظایف (+11 more)
### Community 408 - "Community 408"
Cohesion: 0.17
Nodes (8): Clinics(), generateMetadata(), buildClinicParams(), isMaintenanceError(), isNextRedirectError(), axiosInstance, fetchReq(), getClinicDoctors()
### Community 409 - "Community 409"
Cohesion: 0.25
Nodes (8): scripts, build, dev, lint, start, test, test:cov, test:watch
### Community 410 - "Community 410"
Cohesion: 0.33
Nodes (5): engines, node, name, private, version
### Community 411 - "Community 411"
Cohesion: 0.67
Nodes (3): IDS_WITH_ACTIVE_CHILDREN, isCategorySpecialty(), isIndexableSpecialty()
## Knowledge Gaps
- **904 isolated node(s):** `metadata`, `fallbackLabels`, `MaterialUISwitch`, `fixedIconData`, `metadata` (+899 more)
- **945 isolated node(s):** `metadata`, `fallbackLabels`, `MaterialUISwitch`, `fixedIconData`, `metadata` (+940 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **35 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
- **36 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
- **Why does `imageUrl()` connect `Community 45` to `Community 0`, `Community 4`, `Community 7`, `Community 392`, `Community 81`, `Community 83`, `Community 372`, `Community 55`, `Community 56`, `Community 380`?**
- **Why does `imageUrl()` connect `Community 45` to `Community 0`, `Community 4`, `Community 7`, `Community 392`, `Community 83`, `Community 55`, `Community 56`, `Community 380`?**
_High betweenness centrality (0.028) - this node is a cross-community bridge._
- **Why does `getStateInfo()` connect `Community 29` to `Community 0`, `Community 6`, `Community 72`, `Community 377`, `Community 45`, `Community 14`, `Community 16`, `Community 81`, `Community 402`, `Community 51`, `Community 372`, `Community 86`, `Community 89`?**
_High betweenness centrality (0.023) - this node is a cross-community bridge._
- **Why does `doctorTitle()` connect `Community 372` to `Community 5`, `Community 7`?**
- **Why does `getStateInfo()` connect `Community 29` to `Community 89`, `Community 0`, `Community 6`, `Community 72`, `Community 140`, `Community 45`, `Community 14`, `Community 16`, `Community 369`, `Community 402`, `Community 51`, `Community 86`, `Community 408`, `Community 377`?**
_High betweenness centrality (0.025) - this node is a cross-community bridge._
- **Why does `doctorTitle()` connect `Community 45` to `Community 5`, `Community 7`?**
_High betweenness centrality (0.012) - this node is a cross-community bridge._
- **Are the 27 inferred relationships involving `getStateInfo()` (e.g. with `generateMetadata()` and `AboutUsPage()`) actually correct?**
_`getStateInfo()` has 27 INFERRED edges - model-reasoned connections that need verification._
- **Are the 14 inferred relationships involving `imageUrl()` (e.g. with `generateMetadata()` and `generateMetadata()`) actually correct?**
_`imageUrl()` has 14 INFERRED edges - model-reasoned connections that need verification._
- **What connects `metadata`, `fallbackLabels`, `MaterialUISwitch` to the rest of the system?**
_904 weakly-connected nodes found - possible documentation gaps or missing edges._
_945 weakly-connected nodes found - possible documentation gaps or missing edges._
- **Should `Community 0` be split into smaller, more focused modules?**
_Cohesion score 0.05263157894736842 - nodes in this community are weakly interconnected._
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1136 -146
View File
File diff suppressed because it is too large Load Diff
+48 -33
View File
@@ -35,8 +35,8 @@
"semantic_hash": ""
},
"app/blog/[slug]/page.js": {
"mtime": 1785166314.496041,
"ast_hash": "32f4bfdb268aa713430b5c767d00d3f5",
"mtime": 1785321773.581832,
"ast_hash": "63829871fbd0997f501943a7d7bd8434",
"semantic_hash": ""
},
"app/blogs/loading.js": {
@@ -45,8 +45,8 @@
"semantic_hash": ""
},
"app/blogs/page.js": {
"mtime": 1784832329.025042,
"ast_hash": "97b0d9e4eba0d139778da068d733a73f",
"mtime": 1785321715.0718546,
"ast_hash": "4e3ad910d597037910ed57005169e2f8",
"semantic_hash": ""
},
"app/clinic/[slug]/page.js": {
@@ -405,7 +405,7 @@
"semantic_hash": ""
},
"app/doctor/[slug]/page.js": {
"mtime": 1785044477.0383642,
"mtime": 1785390286.0929785,
"ast_hash": "bf73e97801745d1f7d3c5b5b8d2bc8de",
"semantic_hash": ""
},
@@ -625,13 +625,13 @@
"semantic_hash": ""
},
"components/blog/detail/index.js": {
"mtime": 1785166238.324126,
"ast_hash": "9ac790637a46dc59c6b5e5c3faf539d1",
"mtime": 1785321814.7924728,
"ast_hash": "129d178826d0458b8359d378325e98fb",
"semantic_hash": ""
},
"components/blog/head/index.js": {
"mtime": 1785166181.3036282,
"ast_hash": "95505c8593f351fc86101198f4a0394e",
"mtime": 1785321745.6454604,
"ast_hash": "41c7e5db9766de55d3ba5de70e637f79",
"semantic_hash": ""
},
"components/blog/index.js": {
@@ -640,13 +640,13 @@
"semantic_hash": ""
},
"components/blog/relatedContent/Item.js": {
"mtime": 1785166045.5371826,
"ast_hash": "6d256c5de1f7663a2f6a8f76e8181caf",
"mtime": 1785321808.3911443,
"ast_hash": "e4d7207096bcb103da6a9d624ffafd6b",
"semantic_hash": ""
},
"components/blog/relatedContent/index.js": {
"mtime": 1783776875.690278,
"ast_hash": "5ab9429569a0f2ddcd3f7bc953262012",
"mtime": 1785321794.1455808,
"ast_hash": "1adc88c1ddf1e380ee7a05e48707cc7b",
"semantic_hash": ""
},
"components/blogs/Head.js": {
@@ -655,28 +655,28 @@
"semantic_hash": ""
},
"components/blogs/index.js": {
"mtime": 1784454676.4674513,
"ast_hash": "fbe480d6e3d2de8a89333ba113ee9984",
"mtime": 1785321684.1219358,
"ast_hash": "f882d5b7eb1f62d05e9e60675d0fe5ab",
"semantic_hash": ""
},
"components/blogs/latestArticles/Article.js": {
"mtime": 1785166038.3059208,
"ast_hash": "f46ca7aa88bbfd03bb9b5656e85801b4",
"mtime": 1785321822.4066951,
"ast_hash": "afdbb1a204687a130f1f8212a9f9d9e8",
"semantic_hash": ""
},
"components/blogs/latestArticles/index.js": {
"mtime": 1764813617.2898006,
"ast_hash": "21e130dc1ae1b1218de92cff9139884c",
"mtime": 1785321827.7459514,
"ast_hash": "64e96debcd5a9e024d9333aa6f3f5243",
"semantic_hash": ""
},
"components/blogs/title/ItemTitle.js": {
"mtime": 1783776875.6916404,
"ast_hash": "8e75e6d66e4b33b852dfcc568cd0d702",
"mtime": 1785321700.8509915,
"ast_hash": "9e480559035e25659cf372a2374108b9",
"semantic_hash": ""
},
"components/blogs/title/index.js": {
"mtime": 1783776875.6919754,
"ast_hash": "3bd4a6959c2aa3260e457fd85bc89d15",
"mtime": 1785321694.6543539,
"ast_hash": "3caabfa8aec534e4d966eec221a105d5",
"semantic_hash": ""
},
"components/clinic/components/about/ContentDetail.js": {
@@ -1290,7 +1290,7 @@
"semantic_hash": ""
},
"components/doctor/detailDoctor/Title.js": {
"mtime": 1784463399.0264654,
"mtime": 1785390230.8862507,
"ast_hash": "7c0add5b45ac48be79694fa07cc369ac",
"semantic_hash": ""
},
@@ -1310,7 +1310,7 @@
"semantic_hash": ""
},
"components/doctor/detailDoctor/cards/comments/index.js": {
"mtime": 1783837705.9181259,
"mtime": 1785390248.517856,
"ast_hash": "2441bb0ee5b5ce732c025c9d62a29a85",
"semantic_hash": ""
},
@@ -1350,18 +1350,18 @@
"semantic_hash": ""
},
"components/doctor/detailDoctor/index.js": {
"mtime": 1784454676.4695086,
"mtime": 1785390198.6057413,
"ast_hash": "8ac9b7256d5ced072351f10dc9fdfe67",
"semantic_hash": ""
},
"components/doctor/index.js": {
"mtime": 1784463423.1275866,
"mtime": 1785390214.3664908,
"ast_hash": "f74f47d714f1bd3fe0f8e8a5fa01824e",
"semantic_hash": ""
},
"components/doctor/poster/PosterLight.js": {
"mtime": 1784463446.2595298,
"ast_hash": "3685d1d29a7e24be560cb6f994f55bb9",
"mtime": 1785389990.876683,
"ast_hash": "8f392954b0d988237663ad0b9c791a3d",
"semantic_hash": ""
},
"components/doctor/poster/QrImg.js": {
@@ -1375,8 +1375,8 @@
"semantic_hash": ""
},
"components/doctor/poster/index.js": {
"mtime": 1784463446.2592826,
"ast_hash": "619b989fd7baba15912b62db0da2d78f",
"mtime": 1785389974.6539223,
"ast_hash": "9394bebdf67e38f37b3b83954b2892d5",
"semantic_hash": ""
},
"components/doctors/head/FilterLocate.js": {
@@ -2695,8 +2695,8 @@
"semantic_hash": ""
},
"services/response.js": {
"mtime": 1784454676.5209222,
"ast_hash": "def782ce4b119ca064b7fed204b04271",
"mtime": 1785321664.0579662,
"ast_hash": "9aeb29f5aaa325343aa5a10fdecccd1d",
"semantic_hash": ""
},
"services/services.test.js": {
@@ -3648,5 +3648,20 @@
"mtime": 1785167425.6682634,
"ast_hash": "38eecafd2e27b74b36fe34e820c479b8",
"semantic_hash": ""
},
"config/features.js": {
"mtime": 1785389938.8777816,
"ast_hash": "c437c1b648577f0ba38c46a58ab89f27",
"semantic_hash": ""
},
".claude/prompt/blog-category-breadcrumb-and-filter.md": {
"mtime": 1785321252.4877784,
"ast_hash": "4187e1c0548086a6381c3705170ee6aa",
"semantic_hash": ""
},
".claude/prompt/booking-engine-task-00b-service-mode.md": {
"mtime": 1785401488.2600272,
"ast_hash": "6f6014815f282908ac95eb61125f1af0",
"semantic_hash": ""
}
}