Re-extracted 42 changed code files via AST and 3 changed docs (README, DEPLOYMENT, drizzle/README) via one semantic subagent. Merged into the existing graph: 453→555 nodes, 486→633 edges, 137 communities. Top god nodes now reflect the new shape: load() at the center of every page-server route, buildfor_life_ops as the doc-side anchor, and Drizzle ORM + Zod as the bridge between expenses and the rest of the service layer. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
40 KiB
Graph Report - . (2026-04-27)
Corpus Check
- 47 files · ~0 words
- Verdict: corpus is large enough that graph structure adds value.
Summary
- 555 nodes · 633 edges · 137 communities detected
- Extraction: 83% EXTRACTED · 17% INFERRED · 0% AMBIGUOUS · INFERRED: 109 edges (avg confidence: 0.8)
- Token cost: 0 input · 0 output
Community Hubs (Navigation)
- _COMMUNITY_Page Server Loaders
- _COMMUNITY_Stack & Deployment Concepts
- _COMMUNITY_Documents & Storage Adapters
- _COMMUNITY_Auth Sessions & Catalog
- _COMMUNITY_CSV & API Endpoints
- _COMMUNITY_Expenses Service
- _COMMUNITY_Email & Markdown Rendering
- _COMMUNITY_Projects Service
- _COMMUNITY_Bootstrap Scripts
- _COMMUNITY_Maintenance Schedules
- _COMMUNITY_Assets Service
- _COMMUNITY_App Shell & Bootstrap
- _COMMUNITY_Checklists Service
- _COMMUNITY_Rooms & Floors Service
- _COMMUNITY_Tasks & Subtasks
- _COMMUNITY_Work Packages
- _COMMUNITY_Signed URL Storage Layer
- _COMMUNITY_Drizzle Migration Conventions
- _COMMUNITY_Auth Model
- _COMMUNITY_Companies Service
- _COMMUNITY_JSONB Custom Fields Policy
- _COMMUNITY_Cluster 21
- _COMMUNITY_Cluster 22
- _COMMUNITY_Cluster 23
- _COMMUNITY_Cluster 24
- _COMMUNITY_Cluster 25
- _COMMUNITY_Cluster 26
- _COMMUNITY_Cluster 27
- _COMMUNITY_Cluster 28
- _COMMUNITY_Cluster 29
- _COMMUNITY_Cluster 30
- _COMMUNITY_Cluster 31
- _COMMUNITY_Cluster 32
- _COMMUNITY_Cluster 33
- _COMMUNITY_Cluster 34
- _COMMUNITY_Cluster 35
- _COMMUNITY_Cluster 36
- _COMMUNITY_Cluster 37
- _COMMUNITY_Cluster 38
- _COMMUNITY_Cluster 39
- _COMMUNITY_Cluster 40
- _COMMUNITY_Cluster 41
- _COMMUNITY_Cluster 42
- _COMMUNITY_Cluster 43
- _COMMUNITY_Cluster 44
- _COMMUNITY_Cluster 45
- _COMMUNITY_Cluster 46
- _COMMUNITY_Cluster 47
- _COMMUNITY_Cluster 48
- _COMMUNITY_Cluster 49
- _COMMUNITY_Cluster 50
- _COMMUNITY_Cluster 51
- _COMMUNITY_Cluster 52
- _COMMUNITY_Cluster 53
- _COMMUNITY_Cluster 54
- _COMMUNITY_Cluster 55
- _COMMUNITY_Cluster 56
- _COMMUNITY_Cluster 57
- _COMMUNITY_Cluster 58
- _COMMUNITY_Cluster 59
- _COMMUNITY_Cluster 60
- _COMMUNITY_Cluster 61
- _COMMUNITY_Cluster 62
- _COMMUNITY_Cluster 63
- _COMMUNITY_Cluster 64
- _COMMUNITY_Cluster 65
- _COMMUNITY_Cluster 66
- _COMMUNITY_Cluster 67
- _COMMUNITY_Cluster 68
- _COMMUNITY_Cluster 69
- _COMMUNITY_Cluster 70
- _COMMUNITY_Cluster 71
- _COMMUNITY_Cluster 72
- _COMMUNITY_Cluster 73
- _COMMUNITY_Cluster 74
- _COMMUNITY_Cluster 75
- _COMMUNITY_Cluster 76
- _COMMUNITY_Cluster 77
- _COMMUNITY_Cluster 78
- _COMMUNITY_Cluster 79
- _COMMUNITY_Cluster 80
- _COMMUNITY_Cluster 81
- _COMMUNITY_Cluster 82
- _COMMUNITY_Cluster 83
- _COMMUNITY_Cluster 84
- _COMMUNITY_Cluster 85
- _COMMUNITY_Cluster 86
- _COMMUNITY_Cluster 87
- _COMMUNITY_Cluster 88
- _COMMUNITY_Cluster 89
- _COMMUNITY_Cluster 90
- _COMMUNITY_Cluster 91
- _COMMUNITY_Cluster 92
- _COMMUNITY_Cluster 93
- _COMMUNITY_Cluster 94
- _COMMUNITY_Cluster 95
- _COMMUNITY_Cluster 96
- _COMMUNITY_Cluster 97
- _COMMUNITY_Cluster 98
- _COMMUNITY_Cluster 99
- _COMMUNITY_Cluster 100
- _COMMUNITY_Cluster 101
- _COMMUNITY_Cluster 102
- _COMMUNITY_Cluster 103
- _COMMUNITY_Cluster 104
- _COMMUNITY_Cluster 105
- _COMMUNITY_Cluster 106
- _COMMUNITY_Cluster 107
- _COMMUNITY_Cluster 108
- _COMMUNITY_Cluster 109
- _COMMUNITY_Cluster 110
- _COMMUNITY_Cluster 111
- _COMMUNITY_Cluster 112
- _COMMUNITY_Cluster 113
- _COMMUNITY_Cluster 114
- _COMMUNITY_Cluster 115
- _COMMUNITY_Cluster 116
- _COMMUNITY_Cluster 117
- _COMMUNITY_Cluster 118
- _COMMUNITY_Cluster 119
- _COMMUNITY_Cluster 120
- _COMMUNITY_Cluster 121
- _COMMUNITY_Cluster 122
- _COMMUNITY_Cluster 123
- _COMMUNITY_Cluster 124
- _COMMUNITY_Cluster 125
- _COMMUNITY_Cluster 126
- _COMMUNITY_Cluster 127
- _COMMUNITY_Cluster 128
- _COMMUNITY_Cluster 129
- _COMMUNITY_Cluster 130
- _COMMUNITY_Cluster 131
- _COMMUNITY_Cluster 132
- _COMMUNITY_Cluster 133
- _COMMUNITY_Cluster 134
- _COMMUNITY_Cluster 135
- _COMMUNITY_Cluster 136
God Nodes (most connected - your core abstractions)
load()- 95 edgesbuildfor_life_ops- 26 edgesGET()- 23 edgesDrizzle ORM + Zod- 14 edgesLocalDiskStorage- 10 edgesload()- 9 edgesS3Storage- 8 edgesbuildfor_life_ops- 8 edgesDrizzle migrations (drizzle/)- 8 edgesfanOutExternal()- 7 edges
Surprising Connections (you probably didn't know these)
load()--calls-->renderMarkdown()[INFERRED] src\routes(app)\properties[id]\todos+page.server.ts → src\lib\server\markdown.tsload()--calls-->listTemplates()[INFERRED] src\routes(app)\properties[id]\todos+page.server.ts → src\lib\server\services\checklists.tsload()--calls-->getCompany()[INFERRED] src\routes(app)\properties[id]\todos+page.server.ts → src\lib\server\services\companies.tsload()--calls-->listDocumentsForScope()[INFERRED] src\routes(app)\properties[id]\todos+page.server.ts → src\lib\server\services\documents.tsload()--calls-->countOverdueForCompany()[INFERRED] src\routes(app)\properties[id]\todos+page.server.ts → src\lib\server\services\maintenance.ts
Hyperedges (group relationships)
- Session auth flow (cookie, hash, hook, gate) — readme_auth_model, readme_sha256_cookie_hash, readme_sliding_renewal, readme_hooks_server, readme_layout_app_group [EXTRACTED 0.95]
- Storage abstraction (adapter, local impl, signed URLs, file route) — readme_storage_adapter, readme_local_disk_storage, readme_hmac_signed_urls, readme_api_files_route, readme_storage_model [EXTRACTED 0.95]
- Cross-sibling theme propagation via localStorage — readme_decision_theme_key, apphtml_theme_bootstrap, readme_buildfor_life_budget, readme_buildfor_life_repair [INFERRED 0.80]
Communities
Community 0 - "Page Server Loaders"
Cohesion: 0.04 Nodes (15): requireAdmin(), requireCompany(), e2n(), flattenTree(), load(), parseRange(), parseSettings(), getPageWithCurrentRevision() (+7 more)
Community 1 - "Stack & Deployment Concepts"
Cohesion: 0.04 Nodes (59): Argon2id sessions (@node-rs/argon2), asset_location_history (movable assets), XOR location: asset at project OR property (CHECK), Blob storage snapshot/rsync backup, 10M upload size cap (BODY_SIZE_LIMIT + client_max_body_size), buildfor_life_budget (sibling), buildfor_life_ops, buildfor_life_repair (sibling) (+51 more)
Community 2 - "Documents & Storage Adapters"
Cohesion: 0.07 Nodes (13): assertScope(), deleteDocument(), getDocument(), listDocumentsForScope(), signedUrlForDocument(), uploadDocument(), getStorage(), LocalDiskStorage (+5 more)
Community 3 - "Auth Sessions & Catalog"
Cohesion: 0.1 Nodes (20): assertProperty(), createAccount(), deleteAccount(), listAccounts(), addFieldDef(), createCompanyAssetType(), deleteCompanyAssetType(), loadEditableType() (+12 more)
Community 4 - "CSV & API Endpoints"
Cohesion: 0.11 Nodes (12): csvResponse(), toCsv(), gatherCustomFieldsFromForm(), createDecision(), decisionScopeLink(), listDecisionsForScope(), clamp(), GET() (+4 more)
Community 5 - "Expenses Service"
Cohesion: 0.12 Nodes (13): Drizzle ORM + Zod, assertAccountInProperty(), assertProperty(), createExpense(), importExpenses(), listExpensesForProperties(), listExpensesForProperty(), monthlySeriesForProperties() (+5 more)
Community 6 - "Email & Markdown Rendering"
Cohesion: 0.13 Nodes (15): getTransport(), isEmailConfigured(), sendEmail(), escapeHtml(), html(), renderMarkdown(), buildBodies(), isMatrixConfigured() (+7 more)
Community 7 - "Projects Service"
Cohesion: 0.11 Nodes (13): load(), unreadCountForUser(), getProject(), listProjects(), assertNoCycle(), assertParentInCompany(), createProperty(), getAncestorIds() (+5 more)
Community 8 - "Bootstrap Scripts"
Cohesion: 0.15 Nodes (17): main(), readArg(), slugify(), stripSurroundingQuotes(), main(), readArg(), stripSurroundingQuotes(), normalizeEmail() (+9 more)
Community 9 - "Maintenance Schedules"
Cohesion: 0.18 Nodes (15): addInterval(), assertAsset(), countOverdueForCompany(), createSchedule(), deleteSchedule(), getSchedule(), listDueAndOverdue(), listEventsForAsset() (+7 more)
Community 10 - "Assets Service"
Cohesion: 0.2 Nodes (11): assertContainer(), createAsset(), listAssets(), loadTypeWithFields(), moveAsset(), updateAsset(), validateCustomFields(), buildCustomFieldsSchema() (+3 more)
Community 11 - "App Shell & Bootstrap"
Cohesion: 0.13 Nodes (16): data-sveltekit-preload-data=hover, app.html root document, %sveltekit.head% / %sveltekit.body% placeholders, Tailwind body classes with dark: variants, Dark-mode bootstrap inline script (localStorage['theme']), Argon2id sessions (@node-rs/argon2 + @oslojs/crypto), buildfor_life_budget (sibling), buildfor_life_ops (+8 more)
Community 12 - "Checklists Service"
Cohesion: 0.19 Nodes (7): addTemplateItem(), getInstance(), getTemplate(), listInstancesForProperties(), listTemplates(), removeTemplateItem(), setItemDone()
Community 13 - "Rooms & Floors Service"
Cohesion: 0.29 Nodes (9): assertProperty(), createFloor(), createRoom(), deleteFloor(), getRoom(), listFloors(), listRoomsWithCounts(), softDeleteRoom() (+1 more)
Community 14 - "Tasks & Subtasks"
Cohesion: 0.36 Nodes (9): addSubtask(), assertWorkPackage(), createTask(), getTaskWithSubtasks(), listTasksForWorkPackage(), removeSubtask(), softDeleteTask(), toggleSubtask() (+1 more)
Community 15 - "Work Packages"
Cohesion: 0.48 Nodes (6): assertProject(), createWorkPackage(), getWorkPackage(), listWorkPackagesForProject(), softDeleteWorkPackage(), updateWorkPackage()
Community 16 - "Signed URL Storage Layer"
Cohesion: 0.38 Nodes (7): /api/files route (signature verification + streaming), HMAC-signed short-lived file URLs, LocalDiskStorage, Phase 5: QR, notifications, S3, S3Storage (future), StorageAdapter interface, Storage model (opaque storage_key)
Community 17 - "Drizzle Migration Conventions"
Cohesion: 0.29 Nodes (7): Use CONCURRENTLY on large-table index changes, Drizzle migrations directory, Review SQL after generate: enum/index/custom_fields, npm run db:generate, npm run db:migrate, npm run db:push (dev only), npm run db:studio (Drizzle Studio)
Community 18 - "Auth Model"
Cohesion: 0.33 Nodes (6): Auth model (sessions + hashed cookies), company_users role mapping, hooks.server.ts (session validation), (app) route group (authed shell), SHA-256 cookie hashing before DB lookup, Sliding session renewal (30d/15d)
Community 19 - "Companies Service"
Cohesion: 0.6 Nodes (4): createCompanyWithAdmin(), getCompany(), slugify(), updateCompany()
Community 20 - "JSONB Custom Fields Policy"
Cohesion: 0.5 Nodes (4): Immutable-key policy reference, Decision: immutable custom-field keys, Decision: JSONB custom fields + asset_field_defs, Phase 1: Properties + Assets
Community 21 - "Cluster 21"
Cohesion: 1.0 Nodes (2): parseCsv(), parseCsvDict()
Community 22 - "Cluster 22"
Cohesion: 1.0 Nodes (0):
Community 23 - "Cluster 23"
Cohesion: 1.0 Nodes (2): .env configuration, env.ts (Zod-validated process.env)
Community 24 - "Cluster 24"
Cohesion: 1.0 Nodes (2): npm run create-user script, src/lib/server/db/schema/
Community 25 - "Cluster 25"
Cohesion: 1.0 Nodes (2): Decision: decisions scoped to project/property/asset/work_package, Phase 3: Projects + structured decisions
Community 26 - "Cluster 26"
Cohesion: 1.0 Nodes (2): Decision: asset_location_history (movable assets), Decision: XOR asset location (project XOR property)
Community 27 - "Cluster 27"
Cohesion: 1.0 Nodes (0):
Community 28 - "Cluster 28"
Cohesion: 1.0 Nodes (0):
Community 29 - "Cluster 29"
Cohesion: 1.0 Nodes (0):
Community 30 - "Cluster 30"
Cohesion: 1.0 Nodes (0):
Community 31 - "Cluster 31"
Cohesion: 1.0 Nodes (0):
Community 32 - "Cluster 32"
Cohesion: 1.0 Nodes (0):
Community 33 - "Cluster 33"
Cohesion: 1.0 Nodes (0):
Community 34 - "Cluster 34"
Cohesion: 1.0 Nodes (0):
Community 35 - "Cluster 35"
Cohesion: 1.0 Nodes (0):
Community 36 - "Cluster 36"
Cohesion: 1.0 Nodes (0):
Community 37 - "Cluster 37"
Cohesion: 1.0 Nodes (0):
Community 38 - "Cluster 38"
Cohesion: 1.0 Nodes (0):
Community 39 - "Cluster 39"
Cohesion: 1.0 Nodes (0):
Community 40 - "Cluster 40"
Cohesion: 1.0 Nodes (0):
Community 41 - "Cluster 41"
Cohesion: 1.0 Nodes (0):
Community 42 - "Cluster 42"
Cohesion: 1.0 Nodes (0):
Community 43 - "Cluster 43"
Cohesion: 1.0 Nodes (0):
Community 44 - "Cluster 44"
Cohesion: 1.0 Nodes (0):
Community 45 - "Cluster 45"
Cohesion: 1.0 Nodes (0):
Community 46 - "Cluster 46"
Cohesion: 1.0 Nodes (0):
Community 47 - "Cluster 47"
Cohesion: 1.0 Nodes (0):
Community 48 - "Cluster 48"
Cohesion: 1.0 Nodes (0):
Community 49 - "Cluster 49"
Cohesion: 1.0 Nodes (0):
Community 50 - "Cluster 50"
Cohesion: 1.0 Nodes (0):
Community 51 - "Cluster 51"
Cohesion: 1.0 Nodes (0):
Community 52 - "Cluster 52"
Cohesion: 1.0 Nodes (0):
Community 53 - "Cluster 53"
Cohesion: 1.0 Nodes (0):
Community 54 - "Cluster 54"
Cohesion: 1.0 Nodes (0):
Community 55 - "Cluster 55"
Cohesion: 1.0 Nodes (0):
Community 56 - "Cluster 56"
Cohesion: 1.0 Nodes (0):
Community 57 - "Cluster 57"
Cohesion: 1.0 Nodes (0):
Community 58 - "Cluster 58"
Cohesion: 1.0 Nodes (0):
Community 59 - "Cluster 59"
Cohesion: 1.0 Nodes (0):
Community 60 - "Cluster 60"
Cohesion: 1.0 Nodes (0):
Community 61 - "Cluster 61"
Cohesion: 1.0 Nodes (0):
Community 62 - "Cluster 62"
Cohesion: 1.0 Nodes (0):
Community 63 - "Cluster 63"
Cohesion: 1.0 Nodes (0):
Community 64 - "Cluster 64"
Cohesion: 1.0 Nodes (0):
Community 65 - "Cluster 65"
Cohesion: 1.0 Nodes (0):
Community 66 - "Cluster 66"
Cohesion: 1.0 Nodes (0):
Community 67 - "Cluster 67"
Cohesion: 1.0 Nodes (0):
Community 68 - "Cluster 68"
Cohesion: 1.0 Nodes (0):
Community 69 - "Cluster 69"
Cohesion: 1.0 Nodes (0):
Community 70 - "Cluster 70"
Cohesion: 1.0 Nodes (0):
Community 71 - "Cluster 71"
Cohesion: 1.0 Nodes (0):
Community 72 - "Cluster 72"
Cohesion: 1.0 Nodes (0):
Community 73 - "Cluster 73"
Cohesion: 1.0 Nodes (0):
Community 74 - "Cluster 74"
Cohesion: 1.0 Nodes (0):
Community 75 - "Cluster 75"
Cohesion: 1.0 Nodes (0):
Community 76 - "Cluster 76"
Cohesion: 1.0 Nodes (0):
Community 77 - "Cluster 77"
Cohesion: 1.0 Nodes (0):
Community 78 - "Cluster 78"
Cohesion: 1.0 Nodes (0):
Community 79 - "Cluster 79"
Cohesion: 1.0 Nodes (0):
Community 80 - "Cluster 80"
Cohesion: 1.0 Nodes (0):
Community 81 - "Cluster 81"
Cohesion: 1.0 Nodes (0):
Community 82 - "Cluster 82"
Cohesion: 1.0 Nodes (0):
Community 83 - "Cluster 83"
Cohesion: 1.0 Nodes (0):
Community 84 - "Cluster 84"
Cohesion: 1.0 Nodes (0):
Community 85 - "Cluster 85"
Cohesion: 1.0 Nodes (0):
Community 86 - "Cluster 86"
Cohesion: 1.0 Nodes (0):
Community 87 - "Cluster 87"
Cohesion: 1.0 Nodes (0):
Community 88 - "Cluster 88"
Cohesion: 1.0 Nodes (0):
Community 89 - "Cluster 89"
Cohesion: 1.0 Nodes (0):
Community 90 - "Cluster 90"
Cohesion: 1.0 Nodes (0):
Community 91 - "Cluster 91"
Cohesion: 1.0 Nodes (0):
Community 92 - "Cluster 92"
Cohesion: 1.0 Nodes (0):
Community 93 - "Cluster 93"
Cohesion: 1.0 Nodes (0):
Community 94 - "Cluster 94"
Cohesion: 1.0 Nodes (0):
Community 95 - "Cluster 95"
Cohesion: 1.0 Nodes (0):
Community 96 - "Cluster 96"
Cohesion: 1.0 Nodes (0):
Community 97 - "Cluster 97"
Cohesion: 1.0 Nodes (0):
Community 98 - "Cluster 98"
Cohesion: 1.0 Nodes (0):
Community 99 - "Cluster 99"
Cohesion: 1.0 Nodes (0):
Community 100 - "Cluster 100"
Cohesion: 1.0 Nodes (0):
Community 101 - "Cluster 101"
Cohesion: 1.0 Nodes (0):
Community 102 - "Cluster 102"
Cohesion: 1.0 Nodes (0):
Community 103 - "Cluster 103"
Cohesion: 1.0 Nodes (0):
Community 104 - "Cluster 104"
Cohesion: 1.0 Nodes (0):
Community 105 - "Cluster 105"
Cohesion: 1.0 Nodes (0):
Community 106 - "Cluster 106"
Cohesion: 1.0 Nodes (0):
Community 107 - "Cluster 107"
Cohesion: 1.0 Nodes (0):
Community 108 - "Cluster 108"
Cohesion: 1.0 Nodes (0):
Community 109 - "Cluster 109"
Cohesion: 1.0 Nodes (0):
Community 110 - "Cluster 110"
Cohesion: 1.0 Nodes (0):
Community 111 - "Cluster 111"
Cohesion: 1.0 Nodes (0):
Community 112 - "Cluster 112"
Cohesion: 1.0 Nodes (0):
Community 113 - "Cluster 113"
Cohesion: 1.0 Nodes (0):
Community 114 - "Cluster 114"
Cohesion: 1.0 Nodes (0):
Community 115 - "Cluster 115"
Cohesion: 1.0 Nodes (0):
Community 116 - "Cluster 116"
Cohesion: 1.0 Nodes (0):
Community 117 - "Cluster 117"
Cohesion: 1.0 Nodes (0):
Community 118 - "Cluster 118"
Cohesion: 1.0 Nodes (1): npm run db:seed
Community 119 - "Cluster 119"
Cohesion: 1.0 Nodes (1): npm run validate (check + build)
Community 120 - "Cluster 120"
Cohesion: 1.0 Nodes (1): (auth) route group (login shell)
Community 121 - "Cluster 121"
Cohesion: 1.0 Nodes (1): Phase 0: scaffold (shipped)
Community 122 - "Cluster 122"
Cohesion: 1.0 Nodes (1): Phase 2: Checklists + maintenance
Community 123 - "Cluster 123"
Cohesion: 1.0 Nodes (1): Decision: UUID v7 primary keys
Community 124 - "Cluster 124"
Cohesion: 1.0 Nodes (1): Decision: timestamptz UTC everywhere
Community 125 - "Cluster 125"
Cohesion: 1.0 Nodes (1): Decision: soft delete (deleted_at)
Community 126 - "Cluster 126"
Cohesion: 1.0 Nodes (1): Decision: numeric(18,4) + char(3) currency
Community 127 - "Cluster 127"
Cohesion: 1.0 Nodes (1): Decision: company default currency in settings_json
Community 128 - "Cluster 128"
Cohesion: 1.0 Nodes (1): Decision: tabs = nested routes (not query-string)
Community 129 - "Cluster 129"
Cohesion: 1.0 Nodes (0):
Community 130 - "Cluster 130"
Cohesion: 1.0 Nodes (0):
Community 131 - "Cluster 131"
Cohesion: 1.0 Nodes (0):
Community 132 - "Cluster 132"
Cohesion: 1.0 Nodes (0):
Community 133 - "Cluster 133"
Cohesion: 1.0 Nodes (0):
Community 134 - "Cluster 134"
Cohesion: 1.0 Nodes (0):
Community 135 - "Cluster 135"
Cohesion: 1.0 Nodes (0):
Community 136 - "Cluster 136"
Cohesion: 1.0 Nodes (0):
Knowledge Gaps
- 73 isolated node(s):
buildfor_life_budget (sibling),buildfor_life_repair (sibling),PostgreSQL 16+ via Drizzle ORM + Zod,Argon2id sessions (@node-rs/argon2 + @oslojs/crypto),Sharp image thumbnails(+68 more) These have ≤1 connection - possible missing edges or undocumented components. - Thin community
Cluster 22(2 nodes):needsEnumValues(),field-types.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 23(2 nodes):.env configuration,env.ts (Zod-validated process.env)Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 24(2 nodes):npm run create-user script,src/lib/server/db/schema/Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 25(2 nodes):Decision: decisions scoped to project/property/asset/work_package,Phase 3: Projects + structured decisionsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 26(2 nodes):Decision: asset_location_history (movable assets),Decision: XOR asset location (project XOR property)Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 27(1 nodes):drizzle.config.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 28(1 nodes):svelte.config.jsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 29(1 nodes):vite.config.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 30(1 nodes):app.d.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 31(1 nodes):accounts.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 32(1 nodes):notifications.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 33(1 nodes):roles.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 34(1 nodes):CustomFieldsForm.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 35(1 nodes):Sidebar.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 36(1 nodes):TabNav.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 37(1 nodes):ThemeToggle.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 38(1 nodes):TopBar.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 39(1 nodes):env.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 40(1 nodes):types.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 41(1 nodes):client.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 42(1 nodes):accounts.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 43(1 nodes):assets.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 44(1 nodes):checklists.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 45(1 nodes):decisions.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 46(1 nodes):documents.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 47(1 nodes):index.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 48(1 nodes):maintenance.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 49(1 nodes):notifications.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 50(1 nodes):projects.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 51(1 nodes):properties.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 52(1 nodes):rooms.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 53(1 nodes):tenancy.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 54(1 nodes):wiki.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 55(1 nodes):+error.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 56(1 nodes):+layout.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 57(1 nodes):+layout.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 58(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 59(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 60(1 nodes):+page.server.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 61(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 62(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 63(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 64(1 nodes):+page.server.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 65(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 66(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 67(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 68(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 69(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 70(1 nodes):+layout.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 71(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 72(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 73(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 74(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 75(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 76(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 77(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 78(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 79(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 80(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 81(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 82(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 83(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 84(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 85(1 nodes):+layout.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 86(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 87(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 88(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 89(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 90(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 91(1 nodes):+page.server.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 92(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 93(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 94(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 95(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 96(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 97(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 98(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 99(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 100(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 101(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 102(1 nodes):+layout.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 103(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 104(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 105(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 106(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 107(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 108(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 109(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 110(1 nodes):+page.server.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 111(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 112(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 113(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 114(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 115(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 116(1 nodes):+layout.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 117(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 118(1 nodes):npm run db:seedToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 119(1 nodes):npm run validate (check + build)Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 120(1 nodes):(auth) route group (login shell)Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 121(1 nodes):Phase 0: scaffold (shipped)Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 122(1 nodes):Phase 2: Checklists + maintenanceToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 123(1 nodes):Decision: UUID v7 primary keysToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 124(1 nodes):Decision: timestamptz UTC everywhereToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 125(1 nodes):Decision: soft delete (deleted_at)Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 126(1 nodes):Decision: numeric(18,4) + char(3) currencyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 127(1 nodes):Decision: company default currency in settings_jsonToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 128(1 nodes):Decision: tabs = nested routes (not query-string)Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 129(1 nodes):expenses.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 130(1 nodes):ExpenseChart.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 131(1 nodes):expenses.tsToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 132(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 133(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 134(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 135(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Cluster 136(1 nodes):+page.svelteToo small to be a meaningful cluster - may be noise or needs more connections extracted.
Suggested Questions
Questions this graph is uniquely positioned to answer:
- Why does
load()connectPage Server LoaderstoDocuments & Storage Adapters,Auth Sessions & Catalog,CSV & API Endpoints,Expenses Service,Email & Markdown Rendering,Projects Service,Bootstrap Scripts,Maintenance Schedules,Assets Service,Checklists Service,Rooms & Floors Service,Tasks & Subtasks,Work Packages,Companies Service? High betweenness centrality (0.308) - this node is a cross-community bridge. - Why does
Drizzle ORM + ZodconnectExpenses ServicetoPage Server Loaders,Stack & Deployment Concepts,Projects Service,Bootstrap Scripts,Maintenance Schedules,Assets Service,Checklists Service? High betweenness centrality (0.173) - this node is a cross-community bridge. - Why does
buildfor_life_opsconnectStack & Deployment ConceptstoExpenses Service? High betweenness centrality (0.137) - this node is a cross-community bridge. - Are the 41 inferred relationships involving
load()(e.g. withrenderMarkdown()andrequireCompany()) actually correct?load()has 41 INFERRED edges - model-reasoned connections that need verification. - Are the 15 inferred relationships involving
GET()(e.g. withsyncFieldDefs()andhandle()) actually correct?GET()has 15 INFERRED edges - model-reasoned connections that need verification. - What connects
buildfor_life_budget (sibling),buildfor_life_repair (sibling),PostgreSQL 16+ via Drizzle ORM + Zodto the rest of the system? 73 weakly-connected nodes found - possible documentation gaps or missing edges. - Should
Page Server Loadersbe split into smaller, more focused modules? Cohesion score 0.04 - nodes in this community are weakly interconnected.