Add JSON representation of search fix and SEO prompts for Nobat724

This commit is contained in:
hamed
2026-07-22 16:49:34 +03:30
parent a39b90c88c
commit ccbd028fee
6 changed files with 1289 additions and 433 deletions
+49 -51
View File
@@ -1,16 +1,16 @@
# Graph Report - nobat724_front (2026-07-19)
# Graph Report - nobat724_front (2026-07-22)
## Corpus Check
- 628 files · ~566,853 words
- 632 files · ~568,958 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 2339 nodes · 2396 edges · 401 communities (365 shown, 36 thin omitted)
- Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 158 edges (avg confidence: 0.8)
- 2379 nodes · 2439 edges · 401 communities (367 shown, 34 thin omitted)
- Extraction: 93% EXTRACTED · 7% INFERRED · 0% AMBIGUOUS · INFERRED: 160 edges (avg confidence: 0.8)
- Token cost: 0 input · 0 output
## Graph Freshness
- Built from commit: `daf38c86`
- Built from commit: `a39b90c8`
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
- Run `graphify update .` after code changes (no API cost).
@@ -157,7 +157,6 @@
- [[_COMMUNITY_Community 375|Community 375]]
- [[_COMMUNITY_Community 376|Community 376]]
- [[_COMMUNITY_Community 377|Community 377]]
- [[_COMMUNITY_Community 378|Community 378]]
- [[_COMMUNITY_Community 379|Community 379]]
- [[_COMMUNITY_Community 380|Community 380]]
- [[_COMMUNITY_Community 381|Community 381]]
@@ -174,7 +173,6 @@
- [[_COMMUNITY_Community 393|Community 393]]
- [[_COMMUNITY_Community 394|Community 394]]
- [[_COMMUNITY_Community 395|Community 395]]
- [[_COMMUNITY_Community 396|Community 396]]
- [[_COMMUNITY_Community 397|Community 397]]
- [[_COMMUNITY_Community 398|Community 398]]
@@ -191,6 +189,8 @@
10. `بهینه‌سازی SEO تک‌تک شهرها در city.json (سطح حرفه‌ای)` - 10 edges
## Surprising Connections (you probably didn't know these)
- `Clinic()` --calls--> `toE164Ir()` [INFERRED]
app/clinic/[slug]/page.js → lib/clinicContact.js
- `SpecialtyDetail()` --calls--> `buildSpecialtyFaq()` [INFERRED]
app/specialties/[slug]/page.js → lib/specialtyContent.js
- `AboutUsPage()` --calls--> `getStateInfo()` [INFERRED]
@@ -199,21 +199,19 @@
components/contactUs/index.js → lib/getStateInfo.js
- `SearchBar()` --calls--> `getStateInfo()` [INFERRED]
components/home/search/index.js → lib/getStateInfo.js
- `StLayout()` --calls--> `getStateInfo()` [INFERRED]
components/layout/StLayout.js → lib/getStateInfo.js
## Import Cycles
- None detected.
## Communities (401 total, 36 thin omitted)
## Communities (401 total, 34 thin omitted)
### Community 0 - "Community 0"
Cohesion: 0.05
Nodes (27): BgGray(), ButtonMenu(), Col(), ModalLogout(), Footer(), head, LogoNamad(), Namads (+19 more)
### Community 1 - "Community 1"
Cohesion: 0.24
Nodes (8): Head(), convertTimestampToJalali(), convertTimestampToTime(), ButtonData(), DetailLg(), DetailSm(), Head(), Card()
Cohesion: 0.07
Nodes (23): Head(), Head(), HeadTab(), convertTimestampToJalali(), convertTimestampToTime(), ButtonData(), DetailLg(), DetailSm() (+15 more)
### Community 2 - "Community 2"
Cohesion: 0.04
@@ -225,19 +223,23 @@ Nodes (16): getCurrentDomain(), robots(), cityFilterParams(), fetchAllPages(), g
### Community 4 - "Community 4"
Cohesion: 0.06
Nodes (21): ContentDetail(), About(), ListBime(), Services(), Specialties(), TextDetail(), listTab, AddComment() (+13 more)
Nodes (29): ContentDetail(), About(), ListBime(), Services(), Specialties(), TextDetail(), listTab, AddComment() (+21 more)
### Community 5 - "Community 5"
Cohesion: 0.06
Nodes (29): bookingState(), DAY_NAMES, formatJalali(), AppointmentList(), ItemAppointment(), AboutDcotor(), ClaimProfileSection(), currentUserMobile() (+21 more)
Cohesion: 0.07
Nodes (26): bookingState(), DAY_NAMES, formatJalali(), AppointmentList(), ItemAppointment(), AboutDcotor(), ClaimProfileSection(), currentUserMobile() (+18 more)
### Community 6 - "Community 6"
Cohesion: 0.22
Nodes (5): Dashboard(), metadata, buildPatientUser(), safeJsonParse(), getServerAccessToken()
### Community 7 - "Community 7"
Cohesion: 0.07
Nodes (3): degreeVal, NAME_HONORIFICS, removeTokenHead
### Community 8 - "Community 8"
Cohesion: 0.13
Nodes (15): devDependencies, babel-plugin-react-compiler, cross-env, eslint, eslint-config-next, @eslint/eslintrc, jsdom, prettier (+7 more)
Cohesion: 0.07
Nodes (28): devDependencies, babel-plugin-react-compiler, cross-env, eslint, eslint-config-next, @eslint/eslintrc, jsdom, prettier (+20 more)
### Community 9 - "Community 9"
Cohesion: 0.07
@@ -384,8 +386,8 @@ Cohesion: 0.14
Nodes (13): `hours/List.js`, آبجکت اسلات (از `adaptSlots` / API), تأیید و سخت‌سازی غیرفعال‌بودن اسلات‌های گذشته در صفحه‌ی نوبت, زمینه, فایل‌های مرتبط, مشکل / هدف, نکات مهم, وضعیت فعلی (کد واقعی) (+5 more)
### Community 45 - "Community 45"
Cohesion: 0.27
Nodes (13): generateMetadata(), generateMetadata(), imageUrl(), normalizeBlog(), extractEntityCityId(), findCityById(), getEntityOrigin(), Blog() (+5 more)
Cohesion: 0.30
Nodes (12): generateMetadata(), generateMetadata(), imageUrl(), normalizeBlog(), extractEntityCityId(), findCityById(), getEntityOrigin(), Blog() (+4 more)
### Community 46 - "Community 46"
Cohesion: 0.22
@@ -472,8 +474,8 @@ Cohesion: 0.36
Nodes (4): fixedIconData, nextIconData, prevIconData, LoadingDate()
### Community 67 - "Community 67"
Cohesion: 0.27
Nodes (12): generateMetadata(), Detail(), getClinicAddress(), getClinicCity(), getClinicPhone(), getClinicState(), hasClinicContact(), telHref() (+4 more)
Cohesion: 0.06
Nodes (30): اصلاحات Nobat724: رفع خطای جستجوی پزشک + بهینه‌سازی SEO صفحات لیست و تخصص, تست, تسک ۱ — رفع خطای `getOptionLabel` در جستجوی نام پزشک, تسک ۲ — `noindex, follow` برای همهٔ صفحات جستجوی `/doctors?...`, تسک ۳ — قابل‌ایندکس‌بودن `/specialties` و صفحات تخصص, تسک ۴ — فقط تخصص‌های **فرزند** ایندکس شوند (والدها noindex), تسک ۵ — اصلاح نگارشی متن SEO سوالات متداول تخصص + برند روی دامنهٔ ریشه, خواسته (+22 more)
### Community 68 - "Community 68"
Cohesion: 0.27
@@ -484,8 +486,8 @@ Cohesion: 0.20
Nodes (9): رفع جهت تبدیل تاریخ تولد هنگام ایجاد پروفایل, زمینه, فایل‌های مرتبط, مشکل / هدف, نکات مهم, وضعیت فعلی (کد واقعی), وظایف, پروژه (+1 more)
### Community 70 - "Community 70"
Cohesion: 0.11
Nodes (15): ClinicsPage(), DoctorsPage(), AutoComplete(), ButtonFilter(), Content(), ModalSearchCity(), AutoSearch(), FilterButton() (+7 more)
Cohesion: 0.20
Nodes (7): AutoComplete(), ButtonFilter(), Content(), ModalSearchCity(), AutoSearch(), FilterButton(), SearchBar()
### Community 71 - "Community 71"
Cohesion: 0.22
@@ -493,7 +495,7 @@ Nodes (7): degree, Form(), gender, degree, Form(), gender, filterList()
### Community 72 - "Community 72"
Cohesion: 0.27
Nodes (13): generateMetadata(), buildCanonicalPath(), buildCanonicalQuery(), buildCanonicalUrl(), buildMainCanonicalUrl(), buildSpecialtyCanonicalPath(), CANONICAL_QUERY_KEYS, getCanonicalUrl() (+5 more)
Nodes (13): generateMetadata(), buildCanonicalPath(), buildCanonicalQuery(), buildCanonicalUrl(), buildFilteredListingCanonical(), buildMainCanonicalUrl(), CANONICAL_QUERY_KEYS, getCanonicalUrl() (+5 more)
### Community 73 - "Community 73"
Cohesion: 0.32
@@ -508,33 +510,37 @@ Cohesion: 0.29
Nodes (7): Authentication & Authorization, Development Tools, Frontend Framework, State Management & Data Fetching, UI/UX, 🏗️ معماری و تکنولوژی, کتابخانه‌های تخصصی
### Community 76 - "Community 76"
Cohesion: 0.33
Nodes (5): HeadTab(), setNewData(), DetailUser(), Disease(), IsTurnsDetails()
Cohesion: 0.53
Nodes (3): setNewData(), DetailUser(), Disease()
### Community 79 - "Community 79"
Cohesion: 0.17
Nodes (11): زمینه, سایت دامنه اختصاصی نماینده سراسری — تشخیص دامنه، فیلتر پزشکان/کلینیک‌ها, فایل‌های مرتبط, مشکل / هدف, نکات مهم, وضعیت فعلی, وظایف, پروژه (+3 more)
### Community 81 - "Community 81"
Cohesion: 0.24
Nodes (5): Head(), Article(), LatestArticles(), Title(), ItemTitle()
Cohesion: 0.18
Nodes (11): ClinicsPage(), DoctorsPage(), findDomainByCityId(), resolveCityDisplayName(), buildClinicsIntro(), buildDoctorsIntro(), CLINIC_INTROS(), DOCTOR_INTROS() (+3 more)
### Community 82 - "Community 82"
Cohesion: 0.17
Nodes (11): رفع خطای `TypeError: fetch failed` در sitemap هنگام دیپلوی (Docker build), زمینه, فایل‌های مرتبط, مشکل / هدف, نکات مهم, وضعیت فعلی, وظایف, پروژه (+3 more)
### Community 83 - "Community 83"
Cohesion: 0.24
Nodes (6): STATUS_LABELS, Head(), listTab, Turns(), List(), STATUS_LABELS
Cohesion: 0.39
Nodes (8): generateMetadata(), DoctorPage(), doctorTitle(), buildDoctorFaq(), Doctor(), getBookingLocations, getDoctor, getDoctorAddresses
### Community 86 - "Community 86"
Cohesion: 0.36
Nodes (7): generateMetadata(), findDomainByCityId(), resolveCityDisplayName(), isRootCity(), findSpecialty(), getDoctors, SpecialtyDetail()
Nodes (7): generateMetadata(), IDS_WITH_ACTIVE_CHILDREN, isCategorySpecialty(), isIndexableSpecialty(), findSpecialty(), getDoctors, SpecialtyDetail()
### Community 87 - "Community 87"
Cohesion: 0.33
Nodes (6): 1. افزودن صفحه جدید, 2. افزودن API Endpoint جدید, 3. افزودن کامپوننت جدید, 4. کار با تاریخ شمسی, 5. استفاده از Context, 📝 نکات توسعه
### Community 89 - "Community 89"
Cohesion: 0.33
Nodes (4): generateMetadata(), hasListingFilters(), listingRobots(), NON_FILTER_KEYS
### Community 90 - "Community 90"
Cohesion: 0.50
Nodes (4): buildDays(), InlineJalaliMonth(), MONTHS, WEEKDAYS
@@ -604,8 +610,8 @@ Cohesion: 0.50
Nodes (4): RootLayout(), normalize(), Pageguide(), safeJsonLd()
### Community 354 - "Community 354"
Cohesion: 0.12
Nodes (13): Clinics(), generateMetadata(), Doctors(), generateMetadata(), buildClinicParams(), buildDoctorParams(), listingRobots(), USER_FILTER_KEYS (+5 more)
Cohesion: 0.17
Nodes (8): Clinics(), generateMetadata(), buildClinicParams(), isMaintenanceError(), isNextRedirectError(), axiosInstance, fetchReq(), getClinicDoctors()
### Community 365 - "Community 365"
Cohesion: 0.08
@@ -624,8 +630,8 @@ Cohesion: 0.19
Nodes (9): Card(), PAYMENT_STATUS, TYPE_LABELS, Head(), listTab, Transactions(), List(), PAYMENT_STATUS (+1 more)
### Community 369 - "Community 369"
Cohesion: 0.25
Nodes (8): scripts, build, dev, lint, start, test, test:cov, test:watch
Cohesion: 0.29
Nodes (6): Doctors(), buildDoctorParams(), normalizeDoctorNameQuery(), QueryForDoctorsClinicReq(), QueryForDoctorsReq(), buildSearchUrl()
### Community 370 - "Community 370"
Cohesion: 0.29
@@ -655,10 +661,6 @@ Nodes (10): راه‌حل, رفع نمایش نقشه صفحه پزشک + بهب
Cohesion: 0.36
Nodes (4): SearchBar(), ButtonFilter(), Fields(), RedirectLink()
### Community 378 - "Community 378"
Cohesion: 0.40
Nodes (3): KOHGILUYEH, scope, YASUJ
### Community 379 - "Community 379"
Cohesion: 0.29
Nodes (4): defineAbilitiesFor(), getUser(), LogIn(), metadata
@@ -703,33 +705,29 @@ Nodes (3): ModalAddRelatives(), Relatives(), ItemRelatives()
Cohesion: 0.40
Nodes (3): ModalAddSurgeries(), Surgeries(), ItemSurgeries()
### Community 396 - "Community 396"
Cohesion: 0.33
Nodes (5): engines, node, name, private, version
### Community 397 - "Community 397"
Cohesion: 0.50
Nodes (3): formatToman(), rialToToman(), Paying()
## Knowledge Gaps
- **860 isolated node(s):** `metadata`, `fallbackLabels`, `MaterialUISwitch`, `fixedIconData`, `metadata` (+855 more)
- **883 isolated node(s):** `metadata`, `fallbackLabels`, `MaterialUISwitch`, `fixedIconData`, `metadata` (+878 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **36 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
- **34 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 67`, `Community 4`, `Community 7`, `Community 81`, `Community 55`, `Community 56`, `Community 89`, `Community 380`?**
_High betweenness centrality (0.034) - this node is a cross-community bridge._
- **Why does `getStateInfo()` connect `Community 29` to `Community 0`, `Community 354`, `Community 67`, `Community 6`, `Community 72`, `Community 140`, `Community 45`, `Community 14`, `Community 16`, `Community 51`, `Community 86`, `Community 377`?**
_High betweenness centrality (0.033) - this node is a cross-community bridge._
- **Why does `isRootCity()` connect `Community 86` to `Community 3`, `Community 70`, `Community 45`, `Community 370`, `Community 29`?**
- **Why does `imageUrl()` connect `Community 45` to `Community 0`, `Community 1`, `Community 4`, `Community 7`, `Community 83`, `Community 55`, `Community 56`, `Community 380`?**
_High betweenness centrality (0.035) - this node is a cross-community bridge._
- **Why does `getStateInfo()` connect `Community 29` to `Community 89`, `Community 0`, `Community 354`, `Community 6`, `Community 72`, `Community 140`, `Community 45`, `Community 14`, `Community 16`, `Community 369`, `Community 81`, `Community 83`, `Community 51`, `Community 86`, `Community 377`?**
_High betweenness centrality (0.035) - this node is a cross-community bridge._
- **Why does `isRootCity()` connect `Community 81` to `Community 29`, `Community 370`, `Community 3`, `Community 45`?**
_High betweenness centrality (0.021) - this node is a cross-community bridge._
- **Are the 25 inferred relationships involving `getStateInfo()` (e.g. with `generateMetadata()` and `AboutUsPage()`) actually correct?**
_`getStateInfo()` has 25 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?**
_860 weakly-connected nodes found - possible documentation gaps or missing edges._
_883 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
+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
+1186 -349
View File
File diff suppressed because it is too large Load Diff
+48 -28
View File
@@ -60,8 +60,8 @@
"semantic_hash": ""
},
"app/clinics/page.js": {
"mtime": 1784485551.17231,
"ast_hash": "103fc4664c42844d34a76ea9d64a7a13",
"mtime": 1784530043.0266027,
"ast_hash": "024509f328560e13971e9b655a72b650",
"semantic_hash": ""
},
"app/component/AnimationTextHead.js": {
@@ -415,8 +415,8 @@
"semantic_hash": ""
},
"app/doctors/page.js": {
"mtime": 1784485536.8339767,
"ast_hash": "5f0ff2fd1a2fb283d1785ef657f21ae6",
"mtime": 1784530043.0271256,
"ast_hash": "e3138165fb42b7319b1b12763008b222",
"semantic_hash": ""
},
"app/error.js": {
@@ -470,8 +470,8 @@
"semantic_hash": ""
},
"app/sitemap.js": {
"mtime": 1784454676.4624598,
"ast_hash": "d39cc36c63881609f82a5bd1f06ef9fe",
"mtime": 1784535207.0520518,
"ast_hash": "88f456b387f2643d7a818788818de263",
"semantic_hash": ""
},
"app/specialties/page.js": {
@@ -1495,8 +1495,8 @@
"semantic_hash": ""
},
"components/home/search/Fields.js": {
"mtime": 1764813617.2971292,
"ast_hash": "d8033772440c1f5d9066dcdc48b40da7",
"mtime": 1784537778.4845924,
"ast_hash": "ebe62c1df36212d9aba7119b1dbff07f",
"semantic_hash": ""
},
"components/home/search/FilterText.js": {
@@ -1505,8 +1505,8 @@
"semantic_hash": ""
},
"components/home/search/RedirectLink.js": {
"mtime": 1783776875.7126963,
"ast_hash": "9efd3b13b8ff7c0b2141b81c4bc41c11",
"mtime": 1784537747.7336833,
"ast_hash": "1103a12ab59079cda4828106ef709f6a",
"semantic_hash": ""
},
"components/home/search/index.js": {
@@ -2475,8 +2475,8 @@
"semantic_hash": ""
},
"components/searchHead/smSearch/AutoCompleteSearch.js": {
"mtime": 1760953552.2611022,
"ast_hash": "fe357c9fe2d9c3a8e77ff61d4d7c1257",
"mtime": 1784537764.330398,
"ast_hash": "e13790c6b7292fc78e290b1525d0e595",
"semantic_hash": ""
},
"components/searchHead/smSearch/index.js": {
@@ -2550,8 +2550,8 @@
"semantic_hash": ""
},
"helper/index.js": {
"mtime": 1784462920.6154356,
"ast_hash": "cd615045ab24a33e43859f41a9131f92",
"mtime": 1784538069.5351331,
"ast_hash": "dc62c22e04a857e228a39205f71b03ee",
"semantic_hash": ""
},
"helper/index.test.js": {
@@ -2590,8 +2590,8 @@
"semantic_hash": ""
},
"lib/getCanonicalUrl.js": {
"mtime": 1784454676.4886334,
"ast_hash": "609829af60b5c58314e83051eedf18b5",
"mtime": 1784530043.0310416,
"ast_hash": "29ab318c6e1e461b642536ea18bb8e71",
"semantic_hash": ""
},
"lib/getStateInfo.js": {
@@ -3465,8 +3465,8 @@
"semantic_hash": ""
},
"app/specialties/[slug]/page.js": {
"mtime": 1784485563.950513,
"ast_hash": "8e262dc5b40a251436efbe5a93401015",
"mtime": 1784535170.0003273,
"ast_hash": "8fef9bb3c7b1f655f8bb26b6c3e0b5f4",
"semantic_hash": ""
},
"components/doctor/appointmentList/bookingState.js": {
@@ -3490,8 +3490,8 @@
"semantic_hash": ""
},
"lib/canonicalStrategy.test.js": {
"mtime": 1784454676.487167,
"ast_hash": "2071f0a5b2e217101a01a02e3c0617d3",
"mtime": 1784530043.0304258,
"ast_hash": "0a47c01c26b7aba86f4593d07f74f196",
"semantic_hash": ""
},
"lib/domainHelpers.js": {
@@ -3515,23 +3515,23 @@
"semantic_hash": ""
},
"lib/listingRobots.js": {
"mtime": 1784454676.4892814,
"ast_hash": "c80b07a640e35536acf44404dde1076f",
"mtime": 1784530043.0317762,
"ast_hash": "ace54e16dfcc15903f141722680effc1",
"semantic_hash": ""
},
"lib/listingRobots.test.js": {
"mtime": 1784454676.4957364,
"ast_hash": "c85cc1f9006477adc1bc0fce070b74ae",
"mtime": 1784530043.0324912,
"ast_hash": "872d0a401cc0c8c198b28511a56d28d7",
"semantic_hash": ""
},
"lib/specialtyContent.js": {
"mtime": 1784462934.6980352,
"ast_hash": "3a5c203970e8e022717eb1d868d82a49",
"mtime": 1784530043.0331728,
"ast_hash": "046f5e23c7ea15205d6770b48cebc06f",
"semantic_hash": ""
},
"lib/specialtyContent.test.js": {
"mtime": 1784454676.5082412,
"ast_hash": "5312548dd11cc5207a3f53bd272c2d3b",
"mtime": 1784530043.0351021,
"ast_hash": "fcddf85c158a9910ef5f4dd618550914",
"semantic_hash": ""
},
".claude/prompt/doctor-profile-booking-state-from-locations.md": {
@@ -3588,5 +3588,25 @@
"mtime": 1784484136.3889596,
"ast_hash": "165c6d0db5a2f7117bfa570748201191",
"semantic_hash": ""
},
"lib/buildSearchUrl.js": {
"mtime": 1784538079.320804,
"ast_hash": "11f7de839098d4daf0afd4655403666a",
"semantic_hash": ""
},
"lib/specialtyIndexing.js": {
"mtime": 1784530043.0642629,
"ast_hash": "ea4f87ea38ab3f7a843e8f2a5fee1fbd",
"semantic_hash": ""
},
"lib/specialtyIndexing.test.js": {
"mtime": 1784530043.0650063,
"ast_hash": "ec4c5f080a912ea6e0bee9edbda7826d",
"semantic_hash": ""
},
".claude/prompt/nobat724-search-fix-and-seo.md": {
"mtime": 1784530043.061454,
"ast_hash": "d7bcbce7214619081f4d313b6cfa40fc",
"semantic_hash": ""
}
}