# Graph Report - khatibi (2026-10-10) ## Corpus Check - 160 files · ~127,728 words - Verdict: corpus is large enough that graph structure adds value. - Unclassified: 7 file(s) not represented in the graph (top: (none) 4, .env 2, .csv 1) ## Summary - 1280 nodes · 2237 edges · 140 communities (47 shown, 93 thin omitted) - Extraction: 94% EXTRACTED · 6% INFERRED · 0% AMBIGUOUS · INFERRED: 131 edges (avg confidence: 0.87) - Token cost: 0 input · 0 output ## Graph Freshness - Built from commit: `250cdbab` - Run `git rev-parse HEAD` and compare to check if the graph is stale. - Run `graphify update .` after code changes (no API cost). ## Community Hubs (Navigation) - views/store.py - project_tree.py - django_db - Customer ID Backup/New Factor Template - views/customers.py - cheque_inquiry.py - admin_panel/templates/admin_panel/baseHesabdari.html - django_db_models_deletion - 0051_auto_20260705_1356.py - admin_panel/storeBK1.html - ViewSmokeTests - admin_panel/templates/admin_panel/customerAction.html - User - run_all - admin_panel/admin.py - stock_in - admin_panel/templates/admin_panel/bedehi.html - hesabdariCheckPassFail.html - Reference guide - normalize_mobile - graphify - hesabdariResidNashode.html - 0017_factoriteam_garantyesh.py - scanner.py - 0002_auto_20220114_1616.py - SMSResult - Rip'n Fast. Fewer Tokens. Better Code. - models/sms.py - admin_panel/templates/admin_panel/baseStore.html - views/finance.py - Customer Modals UI - views/factors.py - 0034_alter_article_sarresid.py - views/sms.py - 0035_alter_article_sarresid.py - django_db_models - 0010_auto_20220122_1546.py - 0040_customer_laghv_bazdid.py - test_sms.py - 0048_alter_productinstore_options.py - 0032_article_paystatus.py - 0033_article_nahvepardakht.py - make_customer - sms0098.py - 0044_sarresid_desc.py - models/__init__.py - make_user - GEMINI.md - Customer Action Include - New Customer Base Template - Customer Feedback Partial - Customer Factor Detail - Customer Accounting Template - Customer Factor List - Customer Feedback Page - Action List Template - base.html - Customer New Factor - Customer New Factor V2 - Customer Satisfaction List - Customer Satisfaction Partial - Customer Check/Debt Management - admin_panel/templates/admin_panel/customerBaseNew.html - Customer List - Financial Dashboard - Accounting Main View - New Inventory Operation - Inventory Operations List - Operations Backup Template - Financial Report Template - Debt Collection Dashboard - Inventory Movement Report - Customer Satisfaction Dashboard - Check and Credit Report Template - Satisfaction List Template - Store Inventory Template - Store Transfers Template - Stores List Template - toCurrency - Extended Requirements File - Requirements File - django_shortcuts - resolve_recipients - factories.py - write_tree - TemplatesPageUITests - reconciliation_tool.py - ModelsPackageContractTests - django_conf - Command - UrlContractTests - customerIDFactorBackup.html - system.py - BehinSMSProvider - test_customers.py - Command - Command - 0061_sms_timing_and_primary.py - bale/providers.py - Command - 0058_seed_sms_templates.py - Customer - customerNewBackup.html - 0059_sms_flow_control.py - 0060_sms_permission_label.py - 0008_storeroom_user.py - 0013_alter_factor_options.py - 0018_alter_factoriteam_product.py - 0020_auto_20220126_1532.py - 0022_article_typepy.py - 0025_action_actiontype.py - 0028_action_grade.py - 0030_auto_20220414_1047.py - 0036_sarresid.py - 0037_sarresid_sarresiddt.py - 0039_customer_last_bazdid_dt.py - 0041_auto_20240216_1607.py - 0047_alter_productinstore_movement_type.py - 0049_alter_productinstore_options.py - 0057_sms.py ## God Nodes (most connected - your core abstractions) 1. `make_customer()` - 37 edges 2. `make_user()` - 24 edges 3. `Rip'n Fast. Fewer Tokens. Better Code.` - 23 edges 4. `User` - 22 edges 5. `create_transfer_request()` - 22 edges 6. `enqueue_sms()` - 21 edges 7. `SMSResult` - 20 edges 8. `normalize_mobile()` - 20 edges 9. `SMSProvider` - 19 edges 10. `Reference guide` - 18 edges ## Surprising Connections (you probably didn't know these) - `check_financial_discrepancy()` --uses--> `Customer` [INFERRED] check_finance.py → admin/models.py - `run_360_audit()` --uses--> `Customer` [INFERRED] ghost_hunter.py → admin/models.py - ``nest=` is a max, so it cannot tell a long function from a tangled one` --references--> `index()` [INFERRED] ripwire - README.md → admin/views.py - `VisitQueue` --uses--> `User` [INFERRED] admin_panel/models/actions.py → admin/models.py - `StoreTransferRequest` --uses--> `User` [INFERRED] admin_panel/models/store.py → admin/models.py ## Import Cycles - None detected. ## Hyperedges (group relationships) - **Customer Satisfaction & Collection** — admin_panel_templates_admin_panel_report_rezayat, admin_panel_templates_admin_panel_report_debtors_no_vosol, admin_panel_customer_customernazarinc [EXTRACTED 0.90] - **Customer Management Flow** — admin_panel_customer_base_new, admin_panel_customer_action_inc, admin_panel_customer_id_factor, admin_panel_customer_hesabdari [EXTRACTED 1.00] - **Financial & Debt Management** — admin_panel_templates_admin_panel_financial_dashboard, admin_panel_templates_admin_panel_hesabdari [EXTRACTED 1.00] - **Graphify Output Artifacts** — graphify-out_graph_json, graphify-out_wiki_index_md, graphify-out_graph_report_md [EXTRACTED 1.00] - **Graphify Subcommands** — graphify_query, graphify_path, graphify_explain [EXTRACTED 1.00] - **Inventory Management System** — admin_panel_templates_admin_panel_store, admin_panel_templates_admin_panel_store_transfers, admin_panel_templates_admin_panel_report_inventory_movements, admin_panel_templates_admin_panel_operationsbk [EXTRACTED 1.00] - **Bedehi Report Navigation** — django_urls_admin_panel_bedehi, django_urls_admin_panel_bedehikhadamat, django_urls_admin_panel_bedehinasb [EXTRACTED] - **Login Form** — admin_panel_templates_admin_panel_login, django_url_admin_panel_p_login, django_csrf_token, form_field_username, form_field_password [EXTRACTED] - **New Store Form** — admin_panel_templates_admin_panel_storebk1, django_url_admin_panel_newstore, django_csrf_token, form_field_storename [EXTRACTED] - **Store Inventory Display** — admin_panel_templates_admin_panel_storebk1, template_variable_productsum, product_property_product_name, product_property_mojodi [EXTRACTED] - **Customer List Page** — admin_panel_templates_admin_panel_entezar_html, concept_customer_data, concept_url_admin_panel_customers [INFERRED 0.80] - **Customer Lifecycle Management** — admin_panel_templates_admin_panel_customers [INFERRED 0.85] - **Customer Interaction Lifecycle** — admin_panel_templates_admin_panel_customers, admin_panel_templates_admin_panel_customerNew, admin_panel_templates_admin_panel_customerRezayat [INFERRED 0.85] - **New Factor Creation Flow** — admin_panel_templates_admin_panel_customernewbackup_html, admin_panel_urls_newfactor, concept_client_side_form_logic, concept_customer, concept_category [INFERRED 0.85] - **Customer Management UI Flow** — admin_panel_templates_admin_panel_customersbk_html, admin_panel_templates_admin_panel_customersbk_html_createcs, admin_panel_templates_admin_panel_customersbk_html_openrow, concept_customer_modal_ui [INFERRED 0.90] - **Financial & Debt Management Flow** — admin_panel_templates_admin_panel_customerSarresid, admin_panel_templates_admin_panel_hesabdari, admin_panel_templates_admin_panel_financial_dashboard [INFERRED 0.90] - **New Factor Item Creation Flow** — admin_panel_templates_admin_panel_customeridfactorbackup_html_js, panel_urls_productmojodi, concept_product, concept_productcategory [INFERRED 0.90] - **Settle Due Payment Flow** — admin_panel_templates_admin_panel_hesabdaricheckpassfail_html, admin_panel_url_passcheck, admin_panel_url_pardakhtnesiye [INFERRED 0.90] - **Accounting and Billing Flow** — admin_panel_templates_admin_panel_basehesabdari, concept_url_admin_panel_hesabdari, concept_url_admin_panel_bedehi [INFERRED] - **Bedehi Template Data Contract** — admin_panel_templates_admin_panel_bedehi_html, django_context_variable_mandehesabkp, django_context_variable_articls [INFERRED] - **Customer Action Creation Flow** — admin_panel_templates_admin_panel_customeraction, admin_panel_urls_customernewaction, concept_action_model [INFERRED] - **Customer Management UI** — admin_panel_templates_admin_panel_customeridbackup_html, concept_customer, django_url_admin_panel_customeredit, api_endpoint_panel_customer_del, django_url_admin_panel_customerfactors [INFERRED] - **Client-side Payment Processing Flow** — admin_panel_templates_admin_panel_hesabdaricheckpass_html, admin_panel_urls_passcheck, admin_panel_urls_pardakhtnesiye [INFERRED] - **Nesiye Payment Flow** — admin_panel_templates_admin_panel_hesabdariresidnashode, admin_panel_urls_pardakhtnesiye [INFERRED] - **New Factor Creation Flow** — admin_panel_templates_admin_panel_customeridbackup_html, django_url_admin_panel_productsjson, api_endpoint_panel_productmojodi, admin_panel_templates_admin_panel_customeridbackup_html_orderlist, admin_panel_templates_admin_panel_customeridbackup_html_buildorderlist, django_url_admin_panel_newfactor [INFERRED] - **Store and Inventory Management Flow** — admin_panel_templates_admin_panel_basestore, concept_url_admin_panel_stores, concept_url_admin_panel_productadd, concept_url_admin_panel_operations, concept_url_admin_panel_store_transfers [INFERRED] ## Communities (140 total, 93 thin omitted) ### Community 0 - "views/store.py" Cohesion: 0.07 Nodes (26): StoreTransferRequest, Meta, Status, approve_transfer_request(), cancel_transfer_request(), _check_source_store_permission(), _check_target_store_permission(), create_transfer_request() (+18 more) ### Community 1 - "project_tree.py" Cohesion: 0.21 Nodes (6): is_excluded_file(), main(), non_negative_integer(), parse_args(), sorted_entries(), warn() ### Community 3 - "django_db" Cohesion: 0.07 Nodes (14): Migration, Migration, Migration, Migration, Migration, Migration, Migration, Migration (+6 more) ### Community 4 - "Customer ID Backup/New Factor Template" Cohesion: 0.15 Nodes (4): Customer ID Backup/New Factor Template, all_products (JS variable), buildOrderList (JS function), orderList (JS variable) ### Community 5 - "views/customers.py" Cohesion: 0.13 Nodes (16): customer_toggle_map(), customer(), customerDel(), customerEdit(), customerFactor(), customerFactors(), customerHesabdari(), customerHesabdariAdd() (+8 more) ### Community 6 - "cheque_inquiry.py" Cohesion: 0.17 Nodes (6): api_check_sabt_inquiry(), api_check_status_inquiry(), parse_cheque_result_html(), run_bpi_cheque_inquiry_logic(), run_cbi_sayad_inquiry_logic(), solve_base64_captcha() ### Community 7 - "admin_panel/templates/admin_panel/baseHesabdari.html" Cohesion: 0.13 Nodes (14): URL: admin_panel:ActionListUserToday, URL: admin_panel:bedehi, URL: admin_panel:entezar, URL: admin_panel:hesabdari, URL: admin_panel:hesabdari_residnashone, URL: admin_panel:index, URL: admin_panel:p_logout, URL: admin_panel:rezayat (+6 more) ### Community 8 - "django_db_models_deletion" Cohesion: 0.06 Nodes (15): Migration, Migration, Migration, Migration, Migration, Migration, Migration, Migration (+7 more) ### Community 10 - "admin_panel/storeBK1.html" Cohesion: 0.11 Nodes (17): Django CSRF Token, Django Custom Tags, Django Static Files, Django URL: admin_panel:newStore, Django URL: admin_panel:operations, Django URL: admin_panel:p_login, Django URL: admin_panel:store, Form Field: password (+9 more) ### Community 12 - "admin_panel/templates/admin_panel/customerAction.html" Cohesion: 0.13 Nodes (13): admin_panel/templates/admin_panel/customerActionInc.html, admin_panel:customerNew, admin_panel:customerNewAction URL, Action Data Model, Articl Model, Customer Model, DataTables Library, jQuery (+5 more) ### Community 13 - "User" Cohesion: 0.07 Nodes (30): User, Action, VisitQueue, Factor, Meta, FactorIteam, Product, Meta (+22 more) ### Community 14 - "run_all" Cohesion: 0.05 Nodes (9): run_all(), activate_sms(), ColdStartTests, ConsoleEncodingTests, HttpProviderRobustnessTests, NormalizeTests, ScannerTests, WorkerTests (+1 more) ### Community 15 - "admin_panel/admin.py" Cohesion: 0.09 Nodes (10): CustomerSMSSettingAdmin, SMSLogAdmin, SMSProviderConfigAdmin, SMSProviderConfigForm, Meta, SMSQueueAdmin, SMSTemplateAdmin, StoreRoomAdmin (+2 more) ### Community 16 - "stock_in" Cohesion: 0.11 Nodes (11): Customer, Factor, FactorIteam, Product, ProductInStore, StoreRoom, VisitQueue, Command (+3 more) ### Community 17 - "admin_panel/templates/admin_panel/bedehi.html" Cohesion: 0.12 Nodes (11): admin_panel:pardakhtNesiye, /panel/passCheck/, all_sarresid, URL: admin_panel:newFactor, mandehesabKP, admin_panel.ViewReportMali, toJalali, admin_panel:bedehi (+3 more) ### Community 18 - "hesabdariCheckPassFail.html" Cohesion: 0.20 Nodes (9): Customer Data Object, Factor Data Object, Sarresid Data Object, admin_panel:customerNew URL, admin_panel:pardakhtNesiye URL, /panel/passCheck/ URL, admin_panel.ViewReportMali Permission, jQuery JS Library (+1 more) ### Community 19 - "Reference guide" Cohesion: 0.07 Nodes (27): 10. Quality evaluation, 11. Agent integration, 12. Supported languages and formats, 13. Performance, 14. Known limits, 15. Documentation, 16. Improvement, 17. License (+19 more) ### Community 20 - "normalize_mobile" Cohesion: 0.09 Nodes (12): customer_phone_entries(), _iter_sources(), normalize_primary_values(), PhoneEntry, primary_phones(), resolved_recipients(), save_primary_normalized(), stored_primary_normalized() (+4 more) ### Community 21 - "graphify" Cohesion: 0.22 Nodes (8): Copilot Chat, graphify, graphify-out/graph.json, graphify-out/GRAPH_REPORT.md, graphify-out/wiki/index.md, graphify explain, graphify path, graphify query ### Community 22 - "hesabdariResidNashode.html" Cohesion: 0.47 Nodes (5): jQuery, pDatepicker JS Library, custom_tags, toCurrency, toJalali ### Community 24 - "scanner.py" Cohesion: 0.13 Nodes (12): enqueue_sms(), _aware(), _Budget, scan_cheque_due(), scan_cheque_registration(), scan_debt_due(), scan_nesiye_due(), scan_survey() (+4 more) ### Community 25 - "0002_auto_20220114_1616.py" Cohesion: 0.29 Nodes (3): Migration, Migration, Migration ### Community 26 - "SMSResult" Cohesion: 0.13 Nodes (8): SMSDeliveryResult, SMSProvider, SMSResult, webotp_message(), console_write(), ConsoleSMSProvider, HTTPSMSProvider, _FailingProvider ### Community 27 - "Rip'n Fast. Fewer Tokens. Better Code." Cohesion: 0.05 Nodes (42): index(), 1. Codebase Navigation & Analysis (Ripwire vs. Graphify), 2. Dynamic Help, Self-Correction & Staleness, 3. Git Operations & Safety, 4. Development Server Lifecycle, 5. Environment, Frontend & PWA Safety, 6. End-to-End Browser Tests (Playwright), Project Operating & Agent Guidelines (+34 more) ### Community 28 - "models/sms.py" Cohesion: 0.08 Nodes (12): CustomerSMSSetting, Meta, SMSLog, Meta, SMSProviderConfig, Meta, SMSQueue, Meta (+4 more) ### Community 29 - "admin_panel/templates/admin_panel/baseStore.html" Cohesion: 0.13 Nodes (12): admin_panel/base.html, Customer Data Structure, Django Custom Tags: custom_tags, kamaDatepicker Library, URL: admin_panel:customers, URL: admin_panel:operations, URL: admin_panel:productAdd, URL: admin_panel:store (+4 more) ### Community 30 - "views/finance.py" Cohesion: 0.20 Nodes (18): Article, Meta, addSarresid(), bedehi(), bedehiKhadamat(), bedehiNasb(), financial_dashboard(), hesabdari() (+10 more) ### Community 31 - "Customer Modals UI" Cohesion: 0.67 Nodes (3): createCS click handler, openRow click handler, Customer Modals UI ### Community 32 - "views/factors.py" Cohesion: 0.16 Nodes (6): FactorDel(), newFactor2(), InventoryException, _parse_jalali_date(), _parse_timestamp(), _safe_int() ### Community 34 - "views/sms.py" Cohesion: 0.17 Nodes (12): parse_scan_since(), resolve_recipients_test(), _sample_context(), sms_customer_toggle(), sms_primary_toggle(), sms_queue(), sms_queue_retry(), sms_send_custom() (+4 more) ### Community 36 - "django_db_models" Cohesion: 0.15 Nodes (3): get_provider_class(), get_sms_provider(), reset_sms_provider() ### Community 39 - "test_sms.py" Cohesion: 0.14 Nodes (4): apply_timing(), current_timing_value(), timing_for(), TimingsTests ### Community 43 - "make_customer" Cohesion: 0.15 Nodes (6): PhoneNumber, make_customer(), PanelTestCase, PrimaryNumberPanelTests, RuleTests, WelcomeTriggerTests ### Community 44 - "sms0098.py" Cohesion: 0.15 Nodes (5): _clean(), to_local(), _configured_codes(), _response_code(), ZeroZeroNinetyEightSMSProvider ### Community 46 - "models/__init__.py" Cohesion: 0.15 Nodes (5): format_amount(), format_jalali(), render_template(), _SafeDict, is_sms_enabled() ### Community 93 - "django_shortcuts" Cohesion: 0.13 Nodes (3): Migration, ArticleType, Sarresid ### Community 94 - "resolve_recipients" Cohesion: 0.20 Nodes (3): resolve_recipients(), mark_primary(), RecipientTests ### Community 95 - "factories.py" Cohesion: 0.27 Nodes (5): ProductCategory, make_category(), make_product(), make_store(), _next() ### Community 96 - "write_tree" Cohesion: 0.21 Nodes (6): Counts, format_header(), generate_snapshot(), normalized_path(), write_tree(), visit() ### Community 98 - "reconciliation_tool.py" Cohesion: 0.19 Nodes (4): remove_query_param(), check_financial_discrepancy(), run_360_audit(), run_audit() ### Community 99 - "ModelsPackageContractTests" Cohesion: 0.05 Nodes (15): AdminConfig, AdminPanelConfig, make_std_streams_unicode_safe(), configure_sqlite_connection(), entrypoint.sh script, main(), run.sh script, start_service() (+7 more) ### Community 100 - "django_conf" Cohesion: 0.22 Nodes (4): AnnouncementRejected, place_announcement_call(), place_voip_call(), VoipCallResult ### Community 103 - "customerIDFactorBackup.html" Cohesion: 0.18 Nodes (8): Client-side script in customerIDFactorBackup.html, URL: admin_panel:customerEdit, Customer Data, Factor Data Model, Product Data Model, Product Category Data Model, User Data Model, URL: /panel/productMojodi/ ### Community 110 - "0061_sms_timing_and_primary.py" Cohesion: 0.22 Nodes (4): backfill_primary_phones(), Migration, _normalize(), normalize_template_timing() ### Community 111 - "bale/providers.py" Cohesion: 0.31 Nodes (4): BaleBotProvider, ConsoleBaleProvider, get_bale_provider(), NotificationResult ### Community 116 - "Customer" Cohesion: 0.29 Nodes (3): Customer, Meta, PhoneNumber ### Community 117 - "customerNewBackup.html" Cohesion: 0.29 Nodes (6): admin_panel:newFactor URL, Category Data, Client-side Form Logic, CSRF Token, custom_tags, static ## Ambiguous Edges - Review These - `admin_panel/base.html` → `admin_panel/templates/admin_panel/baseHesabdari.html` [AMBIGUOUS] admin_panel/templates/admin_panel/baseHesabdari.html · relation: conceptually_related_to ## Knowledge Gaps - **110 isolated node(s):** `DataTables Library`, `Customer Data Object`, `Factor Data Object`, `admin_panel:pardakhtNesiye URL`, `/panel/passCheck/ URL` (+105 more) These have ≤1 connection - possible missing edges or undocumented components. (Counts symbols only; 575 node(s) total have ≤1 connection when file, concept and rationale nodes are included.) - **93 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 `SMSProviderConfig` connect `models/sms.py` to `scanner.py`?** _High betweenness centrality (0.031) - this node is a cross-community bridge._ - **Are the 2 inferred relationships involving `make_customer()` (e.g. with `Customer` and `PhoneNumber`) actually correct?** _`make_customer()` has 2 INFERRED edges - model-reasoned connections that need verification._ - **What connects `DataTables Library`, `Customer Data Object`, `Factor Data Object` to the rest of the system?** _110 weakly-connected nodes found - possible documentation gaps or missing edges._ - **Should `views/store.py` be split into smaller, more focused modules?** _Cohesion score 0.06540825285338016 - nodes in this community are weakly interconnected._ - **Why does `Languages` connect `Rip'n Fast. Fewer Tokens. Better Code.` to `scanner.py`?** _High betweenness centrality (0.026) - this node is a cross-community bridge._ - **Should `django_db` be split into smaller, more focused modules?** _Cohesion score 0.06896551724137931 - nodes in this community are weakly interconnected._ ### Low-confidence Hints _AMBIGUOUS edges — the extractor was unsure. Verify before acting on these._ - **What is the exact relationship between `admin_panel/base.html` and `admin_panel/templates/admin_panel/baseHesabdari.html`?** _Edge tagged AMBIGUOUS (relation: conceptually_related_to) - confidence is low._