011e7a2165
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>
980 lines
40 KiB
Markdown
980 lines
40 KiB
Markdown
# 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|Page Server Loaders]]
|
|
- [[_COMMUNITY_Stack & Deployment Concepts|Stack & Deployment Concepts]]
|
|
- [[_COMMUNITY_Documents & Storage Adapters|Documents & Storage Adapters]]
|
|
- [[_COMMUNITY_Auth Sessions & Catalog|Auth Sessions & Catalog]]
|
|
- [[_COMMUNITY_CSV & API Endpoints|CSV & API Endpoints]]
|
|
- [[_COMMUNITY_Expenses Service|Expenses Service]]
|
|
- [[_COMMUNITY_Email & Markdown Rendering|Email & Markdown Rendering]]
|
|
- [[_COMMUNITY_Projects Service|Projects Service]]
|
|
- [[_COMMUNITY_Bootstrap Scripts|Bootstrap Scripts]]
|
|
- [[_COMMUNITY_Maintenance Schedules|Maintenance Schedules]]
|
|
- [[_COMMUNITY_Assets Service|Assets Service]]
|
|
- [[_COMMUNITY_App Shell & Bootstrap|App Shell & Bootstrap]]
|
|
- [[_COMMUNITY_Checklists Service|Checklists Service]]
|
|
- [[_COMMUNITY_Rooms & Floors Service|Rooms & Floors Service]]
|
|
- [[_COMMUNITY_Tasks & Subtasks|Tasks & Subtasks]]
|
|
- [[_COMMUNITY_Work Packages|Work Packages]]
|
|
- [[_COMMUNITY_Signed URL Storage Layer|Signed URL Storage Layer]]
|
|
- [[_COMMUNITY_Drizzle Migration Conventions|Drizzle Migration Conventions]]
|
|
- [[_COMMUNITY_Auth Model|Auth Model]]
|
|
- [[_COMMUNITY_Companies Service|Companies Service]]
|
|
- [[_COMMUNITY_JSONB Custom Fields Policy|JSONB Custom Fields Policy]]
|
|
- [[_COMMUNITY_Cluster 21|Cluster 21]]
|
|
- [[_COMMUNITY_Cluster 22|Cluster 22]]
|
|
- [[_COMMUNITY_Cluster 23|Cluster 23]]
|
|
- [[_COMMUNITY_Cluster 24|Cluster 24]]
|
|
- [[_COMMUNITY_Cluster 25|Cluster 25]]
|
|
- [[_COMMUNITY_Cluster 26|Cluster 26]]
|
|
- [[_COMMUNITY_Cluster 27|Cluster 27]]
|
|
- [[_COMMUNITY_Cluster 28|Cluster 28]]
|
|
- [[_COMMUNITY_Cluster 29|Cluster 29]]
|
|
- [[_COMMUNITY_Cluster 30|Cluster 30]]
|
|
- [[_COMMUNITY_Cluster 31|Cluster 31]]
|
|
- [[_COMMUNITY_Cluster 32|Cluster 32]]
|
|
- [[_COMMUNITY_Cluster 33|Cluster 33]]
|
|
- [[_COMMUNITY_Cluster 34|Cluster 34]]
|
|
- [[_COMMUNITY_Cluster 35|Cluster 35]]
|
|
- [[_COMMUNITY_Cluster 36|Cluster 36]]
|
|
- [[_COMMUNITY_Cluster 37|Cluster 37]]
|
|
- [[_COMMUNITY_Cluster 38|Cluster 38]]
|
|
- [[_COMMUNITY_Cluster 39|Cluster 39]]
|
|
- [[_COMMUNITY_Cluster 40|Cluster 40]]
|
|
- [[_COMMUNITY_Cluster 41|Cluster 41]]
|
|
- [[_COMMUNITY_Cluster 42|Cluster 42]]
|
|
- [[_COMMUNITY_Cluster 43|Cluster 43]]
|
|
- [[_COMMUNITY_Cluster 44|Cluster 44]]
|
|
- [[_COMMUNITY_Cluster 45|Cluster 45]]
|
|
- [[_COMMUNITY_Cluster 46|Cluster 46]]
|
|
- [[_COMMUNITY_Cluster 47|Cluster 47]]
|
|
- [[_COMMUNITY_Cluster 48|Cluster 48]]
|
|
- [[_COMMUNITY_Cluster 49|Cluster 49]]
|
|
- [[_COMMUNITY_Cluster 50|Cluster 50]]
|
|
- [[_COMMUNITY_Cluster 51|Cluster 51]]
|
|
- [[_COMMUNITY_Cluster 52|Cluster 52]]
|
|
- [[_COMMUNITY_Cluster 53|Cluster 53]]
|
|
- [[_COMMUNITY_Cluster 54|Cluster 54]]
|
|
- [[_COMMUNITY_Cluster 55|Cluster 55]]
|
|
- [[_COMMUNITY_Cluster 56|Cluster 56]]
|
|
- [[_COMMUNITY_Cluster 57|Cluster 57]]
|
|
- [[_COMMUNITY_Cluster 58|Cluster 58]]
|
|
- [[_COMMUNITY_Cluster 59|Cluster 59]]
|
|
- [[_COMMUNITY_Cluster 60|Cluster 60]]
|
|
- [[_COMMUNITY_Cluster 61|Cluster 61]]
|
|
- [[_COMMUNITY_Cluster 62|Cluster 62]]
|
|
- [[_COMMUNITY_Cluster 63|Cluster 63]]
|
|
- [[_COMMUNITY_Cluster 64|Cluster 64]]
|
|
- [[_COMMUNITY_Cluster 65|Cluster 65]]
|
|
- [[_COMMUNITY_Cluster 66|Cluster 66]]
|
|
- [[_COMMUNITY_Cluster 67|Cluster 67]]
|
|
- [[_COMMUNITY_Cluster 68|Cluster 68]]
|
|
- [[_COMMUNITY_Cluster 69|Cluster 69]]
|
|
- [[_COMMUNITY_Cluster 70|Cluster 70]]
|
|
- [[_COMMUNITY_Cluster 71|Cluster 71]]
|
|
- [[_COMMUNITY_Cluster 72|Cluster 72]]
|
|
- [[_COMMUNITY_Cluster 73|Cluster 73]]
|
|
- [[_COMMUNITY_Cluster 74|Cluster 74]]
|
|
- [[_COMMUNITY_Cluster 75|Cluster 75]]
|
|
- [[_COMMUNITY_Cluster 76|Cluster 76]]
|
|
- [[_COMMUNITY_Cluster 77|Cluster 77]]
|
|
- [[_COMMUNITY_Cluster 78|Cluster 78]]
|
|
- [[_COMMUNITY_Cluster 79|Cluster 79]]
|
|
- [[_COMMUNITY_Cluster 80|Cluster 80]]
|
|
- [[_COMMUNITY_Cluster 81|Cluster 81]]
|
|
- [[_COMMUNITY_Cluster 82|Cluster 82]]
|
|
- [[_COMMUNITY_Cluster 83|Cluster 83]]
|
|
- [[_COMMUNITY_Cluster 84|Cluster 84]]
|
|
- [[_COMMUNITY_Cluster 85|Cluster 85]]
|
|
- [[_COMMUNITY_Cluster 86|Cluster 86]]
|
|
- [[_COMMUNITY_Cluster 87|Cluster 87]]
|
|
- [[_COMMUNITY_Cluster 88|Cluster 88]]
|
|
- [[_COMMUNITY_Cluster 89|Cluster 89]]
|
|
- [[_COMMUNITY_Cluster 90|Cluster 90]]
|
|
- [[_COMMUNITY_Cluster 91|Cluster 91]]
|
|
- [[_COMMUNITY_Cluster 92|Cluster 92]]
|
|
- [[_COMMUNITY_Cluster 93|Cluster 93]]
|
|
- [[_COMMUNITY_Cluster 94|Cluster 94]]
|
|
- [[_COMMUNITY_Cluster 95|Cluster 95]]
|
|
- [[_COMMUNITY_Cluster 96|Cluster 96]]
|
|
- [[_COMMUNITY_Cluster 97|Cluster 97]]
|
|
- [[_COMMUNITY_Cluster 98|Cluster 98]]
|
|
- [[_COMMUNITY_Cluster 99|Cluster 99]]
|
|
- [[_COMMUNITY_Cluster 100|Cluster 100]]
|
|
- [[_COMMUNITY_Cluster 101|Cluster 101]]
|
|
- [[_COMMUNITY_Cluster 102|Cluster 102]]
|
|
- [[_COMMUNITY_Cluster 103|Cluster 103]]
|
|
- [[_COMMUNITY_Cluster 104|Cluster 104]]
|
|
- [[_COMMUNITY_Cluster 105|Cluster 105]]
|
|
- [[_COMMUNITY_Cluster 106|Cluster 106]]
|
|
- [[_COMMUNITY_Cluster 107|Cluster 107]]
|
|
- [[_COMMUNITY_Cluster 108|Cluster 108]]
|
|
- [[_COMMUNITY_Cluster 109|Cluster 109]]
|
|
- [[_COMMUNITY_Cluster 110|Cluster 110]]
|
|
- [[_COMMUNITY_Cluster 111|Cluster 111]]
|
|
- [[_COMMUNITY_Cluster 112|Cluster 112]]
|
|
- [[_COMMUNITY_Cluster 113|Cluster 113]]
|
|
- [[_COMMUNITY_Cluster 114|Cluster 114]]
|
|
- [[_COMMUNITY_Cluster 115|Cluster 115]]
|
|
- [[_COMMUNITY_Cluster 116|Cluster 116]]
|
|
- [[_COMMUNITY_Cluster 117|Cluster 117]]
|
|
- [[_COMMUNITY_Cluster 118|Cluster 118]]
|
|
- [[_COMMUNITY_Cluster 119|Cluster 119]]
|
|
- [[_COMMUNITY_Cluster 120|Cluster 120]]
|
|
- [[_COMMUNITY_Cluster 121|Cluster 121]]
|
|
- [[_COMMUNITY_Cluster 122|Cluster 122]]
|
|
- [[_COMMUNITY_Cluster 123|Cluster 123]]
|
|
- [[_COMMUNITY_Cluster 124|Cluster 124]]
|
|
- [[_COMMUNITY_Cluster 125|Cluster 125]]
|
|
- [[_COMMUNITY_Cluster 126|Cluster 126]]
|
|
- [[_COMMUNITY_Cluster 127|Cluster 127]]
|
|
- [[_COMMUNITY_Cluster 128|Cluster 128]]
|
|
- [[_COMMUNITY_Cluster 129|Cluster 129]]
|
|
- [[_COMMUNITY_Cluster 130|Cluster 130]]
|
|
- [[_COMMUNITY_Cluster 131|Cluster 131]]
|
|
- [[_COMMUNITY_Cluster 132|Cluster 132]]
|
|
- [[_COMMUNITY_Cluster 133|Cluster 133]]
|
|
- [[_COMMUNITY_Cluster 134|Cluster 134]]
|
|
- [[_COMMUNITY_Cluster 135|Cluster 135]]
|
|
- [[_COMMUNITY_Cluster 136|Cluster 136]]
|
|
|
|
## God Nodes (most connected - your core abstractions)
|
|
1. `load()` - 95 edges
|
|
2. `buildfor_life_ops` - 26 edges
|
|
3. `GET()` - 23 edges
|
|
4. `Drizzle ORM + Zod` - 14 edges
|
|
5. `LocalDiskStorage` - 10 edges
|
|
6. `load()` - 9 edges
|
|
7. `S3Storage` - 8 edges
|
|
8. `buildfor_life_ops` - 8 edges
|
|
9. `Drizzle migrations (drizzle/)` - 8 edges
|
|
10. `fanOutExternal()` - 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.ts
|
|
- `load()` --calls--> `listTemplates()` [INFERRED]
|
|
src\routes\(app)\properties\[id]\todos\+page.server.ts → src\lib\server\services\checklists.ts
|
|
- `load()` --calls--> `getCompany()` [INFERRED]
|
|
src\routes\(app)\properties\[id]\todos\+page.server.ts → src\lib\server\services\companies.ts
|
|
- `load()` --calls--> `listDocumentsForScope()` [INFERRED]
|
|
src\routes\(app)\properties\[id]\todos\+page.server.ts → src\lib\server\services\documents.ts
|
|
- `load()` --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.ts`
|
|
Too 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 decisions`
|
|
Too 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.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 28`** (1 nodes): `svelte.config.js`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 29`** (1 nodes): `vite.config.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 30`** (1 nodes): `app.d.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 31`** (1 nodes): `accounts.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 32`** (1 nodes): `notifications.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 33`** (1 nodes): `roles.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 34`** (1 nodes): `CustomFieldsForm.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 35`** (1 nodes): `Sidebar.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 36`** (1 nodes): `TabNav.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 37`** (1 nodes): `ThemeToggle.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 38`** (1 nodes): `TopBar.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 39`** (1 nodes): `env.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 40`** (1 nodes): `types.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 41`** (1 nodes): `client.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 42`** (1 nodes): `accounts.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 43`** (1 nodes): `assets.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 44`** (1 nodes): `checklists.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 45`** (1 nodes): `decisions.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 46`** (1 nodes): `documents.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 47`** (1 nodes): `index.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 48`** (1 nodes): `maintenance.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 49`** (1 nodes): `notifications.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 50`** (1 nodes): `projects.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 51`** (1 nodes): `properties.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 52`** (1 nodes): `rooms.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 53`** (1 nodes): `tenancy.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 54`** (1 nodes): `wiki.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 55`** (1 nodes): `+error.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 56`** (1 nodes): `+layout.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 57`** (1 nodes): `+layout.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 58`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 59`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 60`** (1 nodes): `+page.server.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 61`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 62`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 63`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 64`** (1 nodes): `+page.server.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 65`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 66`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 67`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 68`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 69`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 70`** (1 nodes): `+layout.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 71`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 72`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 73`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 74`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 75`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 76`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 77`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 78`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 79`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 80`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 81`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 82`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 83`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 84`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 85`** (1 nodes): `+layout.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 86`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 87`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 88`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 89`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 90`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 91`** (1 nodes): `+page.server.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 92`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 93`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 94`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 95`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 96`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 97`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 98`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 99`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 100`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 101`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 102`** (1 nodes): `+layout.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 103`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 104`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 105`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 106`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 107`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 108`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 109`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 110`** (1 nodes): `+page.server.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 111`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 112`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 113`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 114`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 115`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 116`** (1 nodes): `+layout.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 117`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 118`** (1 nodes): `npm run db:seed`
|
|
Too 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 + maintenance`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 123`** (1 nodes): `Decision: UUID v7 primary keys`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 124`** (1 nodes): `Decision: timestamptz UTC everywhere`
|
|
Too 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) currency`
|
|
Too 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_json`
|
|
Too 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.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 130`** (1 nodes): `ExpenseChart.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 131`** (1 nodes): `expenses.ts`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 132`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 133`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 134`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 135`** (1 nodes): `+page.svelte`
|
|
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
|
- **Thin community `Cluster 136`** (1 nodes): `+page.svelte`
|
|
Too 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()` connect `Page Server Loaders` to `Documents & 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 + Zod` connect `Expenses Service` to `Page 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_ops` connect `Stack & Deployment Concepts` to `Expenses Service`?**
|
|
_High betweenness centrality (0.137) - this node is a cross-community bridge._
|
|
- **Are the 41 inferred relationships involving `load()` (e.g. with `renderMarkdown()` and `requireCompany()`) actually correct?**
|
|
_`load()` has 41 INFERRED edges - model-reasoned connections that need verification._
|
|
- **Are the 15 inferred relationships involving `GET()` (e.g. with `syncFieldDefs()` and `handle()`) 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 + Zod` to the rest of the system?**
|
|
_73 weakly-connected nodes found - possible documentation gaps or missing edges._
|
|
- **Should `Page Server Loaders` be split into smaller, more focused modules?**
|
|
_Cohesion score 0.04 - nodes in this community are weakly interconnected._ |