From fade91a4a023043024f76c16b30450a4f2e6407e Mon Sep 17 00:00:00 2001 From: Pavlov Alexandr Date: Mon, 15 Jun 2026 23:32:12 +0700 Subject: [PATCH] chore(gsd): enable mempalace + graphify, add named knowledge graph - mempalace.enabled + graphify.enabled gates in .planning/config.json - .planning/graphs/: named community index (GRAPH_COMMUNITIES.md), report, and label map; heavy graph.json/graph.html gitignored - gitignore graphify-out/ working dir Co-Authored-By: Claude Opus 4.8 (1M context) --- .gitignore | 6 + .planning/config.json | 6 + .planning/graphs/.graphify_labels.json | 1 + .planning/graphs/GRAPH_COMMUNITIES.md | 94 +++++ .planning/graphs/GRAPH_REPORT.md | 485 +++++++++++++++++++++++++ 5 files changed, 592 insertions(+) create mode 100644 .planning/graphs/.graphify_labels.json create mode 100644 .planning/graphs/GRAPH_COMMUNITIES.md create mode 100644 .planning/graphs/GRAPH_REPORT.md diff --git a/.gitignore b/.gitignore index 42cc7ae..f50b477 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,9 @@ coverage/ .agents/settings.json .agents/settings.local.json .agents/skills/gsd-*/ + +# graphify working dir (build + cache); canonical graph lives in .planning/graphs/ +graphify-out/ +# heavy regenerable graph artifacts (keep GRAPH_COMMUNITIES.md + GRAPH_REPORT.md) +.planning/graphs/graph.json +.planning/graphs/graph.html diff --git a/.planning/config.json b/.planning/config.json index 90c07e6..fd467d1 100644 --- a/.planning/config.json +++ b/.planning/config.json @@ -203,5 +203,11 @@ "standard": "medium", "heavy": "xhigh" } + }, + "graphify": { + "enabled": true + }, + "mempalace": { + "enabled": true } } diff --git a/.planning/graphs/.graphify_labels.json b/.planning/graphs/.graphify_labels.json new file mode 100644 index 0000000..d5f9f08 --- /dev/null +++ b/.planning/graphs/.graphify_labels.json @@ -0,0 +1 @@ +{"0":"Public Stats Routes API","1":"Player Request Repository","2":"Statistics Readiness Service","3":"Admin Rotation Repository","4":"Data Model Rows","5":"Public Stats Read Model","6":"Application Bootstrap","7":"Auth User Repository","8":"Statistics Test Fixtures","9":"Player Stats Payload Models","10":"Full Run Recalculation Service","11":"Repository Test Utilities","12":"Public Stats Database Queries","13":"Statistics Repository Core","14":"Ingest Query Builder","15":"Pagination and Filtering","16":"Player and Squad Aggregation","17":"Statistics Recalculation Adapter","18":"Legacy Stats Export","19":"Replay Event Mapper","20":"Steam Identity and Testing","21":"Filter and Sort Specification","22":"Legacy Database Export","23":"Game Type Classification","24":"Parser Runtime and Messaging","25":"Player Slug and Pagination State","26":"Parse Job Publisher","27":"Replay Promotion Workflow","28":"Parser Artifact Persistence","29":"Ingest Route Schemas","30":"Request and Action Routes","31":"Audit Patch Recalculator","32":"Parser Artifact Mapping","33":"Replay Promotion Service","34":"Ingest Database Adapter","35":"Admin Test Utilities","36":"Parity Diff Contract","37":"Workflow Action Application","38":"Infrastructure Bootstrap","39":"Database Schema and Migrations","40":"Game Type Detection","41":"Parse Job Publishing","42":"Parity Statistics SQL","43":"Authentication Routes","44":"Workflow Applier Tests","45":"Configuration and Operations","46":"Parser Result Status Tracking","47":"Ingest Action Routes","48":"Ingest Repository Tests","49":"Legacy Export Repository","50":"Parse Job Reconciler","51":"Bounty Point Calculation","52":"Health Checks and Operations","53":"Workflow Boundary Guards","54":"Full Run Statistics Repository","55":"Parity Score Formulas","56":"Workflow Tests","57":"Request Moderation Routes","58":"Keyset Cursor Pagination","59":"Cloud Client Factories","60":"Logging and Testing","61":"Player Identity Indexing","62":"Request Moderation Test Suite","63":"OpenAPI Contract Validation","64":"Request Workflow Schemas","65":"Reference Validator Database","66":"Interval Task Scheduler","67":"Commander Side Aggregation","68":"Audit Patch Moderation Routes","69":"Overview and Commander Statistics","70":"History Gap Detection","71":"Replay Sitemap Generation","72":"OpenAPI Pagination Schema","73":"Legacy Export Operation","74":"RabbitMQ Parser Runtime","75":"Admin Role Routes","76":"Steam OpenID Client","77":"Bounty Query Repository","78":"OpenAPI Schema Export","79":"Backup Runbook Validator","80":"Rotation Summary Queries","81":"Module Route Options","82":"Legacy Export Test Utilities","83":"RabbitMQ Topology Setup","84":"Ingest Command Handlers","85":"Action Routes Tests","86":"Show Classification","87":"Request Attachment Storage"} \ No newline at end of file diff --git a/.planning/graphs/GRAPH_COMMUNITIES.md b/.planning/graphs/GRAPH_COMMUNITIES.md new file mode 100644 index 0000000..4ba401f --- /dev/null +++ b/.planning/graphs/GRAPH_COMMUNITIES.md @@ -0,0 +1,94 @@ +# Graph Communities — server-2 + +_88 communities, named by member analysis (no LLM API used). Source: `.planning/graphs/graph.json`._ + +| # | Name | Purpose | Key files | +|---|------|---------|-----------| +| 0 | **Public Stats Routes API** | HTTP routes and schemas for public player, squad, and replay statistics endpoints. | src/modules/public-stats/routes/routes.ts
src/modules/public-stats/routes/schemas.ts
src/modules/public-stats/routes/models.ts | +| 1 | **Player Request Repository** | In-memory and database storage for player requests with CRUD operations and audit tracking. | src/modules/requests/routes/memory.ts
src/modules/requests/routes/postgres.ts
src/modules/requests/routes/models.ts | +| 2 | **Statistics Readiness Service** | Tracks player identity resolution status and readiness reporting for statistics computation. | src/modules/statistics/readiness/readiness.ts
src/modules/statistics/repository/readiness.ts | +| 3 | **Admin Rotation Repository** | In-memory rotation management with validation and persistent storage for administrative updates. | src/modules/admin/routes/memory.ts
src/modules/admin/routes/rotation-repository.ts | +| 4 | **Data Model Rows** | Database row types for players, squads, rotations, and bounty aggregation entities. | src/modules/public-stats/repository.ts
src/modules/statistics/bounty/bounty.ts | +| 5 | **Public Stats Read Model** | Query interface for public statistics with filtering, pagination, and leaderboard aggregation. | src/modules/public-stats/routes/empty-read-model.ts
src/modules/public-stats/repository.ts | +| 6 | **Application Bootstrap** | Express app factory, authentication config, metrics registry, and module route registration. | src/app.ts
src/infra/metrics/registry.ts | +| 7 | **Auth User Repository** | In-memory and database storage for Steam user identities and session management. | src/modules/auth/routes/memory.ts
src/modules/auth/routes/postgres.ts | +| 8 | **Statistics Test Fixtures** | Test data builders and database helpers for statistics integration tests. | src/modules/statistics/repository/tests/postgres.test.ts | +| 9 | **Player Stats Payload Models** | Response models for player weapons, vehicles, relationships, and weekly statistics. | src/modules/public-stats/routes/models.ts | +| 10 | **Full Run Recalculation Service** | Orchestrates full-scope statistics recalculation with coverage reporting. | src/modules/statistics/service/full-run-recalculation.ts | +| 11 | **Repository Test Utilities** | Test clients, fixtures, and assertion helpers for database repository tests. | src/modules/statistics/repository/tests/utilities.ts
src/modules/statistics/repository/tests/fixtures.ts | +| 12 | **Public Stats Database Queries** | PostgreSQL queries for player/squad data, replay history, and sitemap generation. | src/modules/public-stats/repository.ts | +| 13 | **Statistics Repository Core** | Parser event storage and rotation assignment for aggregation recalculation. | src/modules/statistics/repository/repository.ts | +| 14 | **Ingest Query Builder** | Dynamic SQL WHERE clause construction and record filtering for ingest operations. | src/modules/ingest/repository/repository.ts
src/modules/ingest/types.ts | +| 15 | **Pagination and Filtering** | Cursor-based keyset pagination, filter validation, and sort specification for list endpoints. | src/modules/public-stats/routes/pagination/cursor.ts
src/modules/public-stats/routes/filters.ts | +| 16 | **Player and Squad Aggregation** | Compute kill/death statistics and squad membership aggregates from replay events. | src/modules/statistics/service/service.ts | +| 17 | **Statistics Recalculation Adapter** | Delegates statistics recalculation across scopes (parser result, rotation, all-time). | src/modules/statistics/repository/repository.ts | +| 18 | **Legacy Stats Export** | Backward-compatible JSON export of player/squad/weapon/relationship statistics. | src/modules/statistics/export/legacy-public-export.ts | +| 19 | **Replay Event Mapper** | Transforms raw replay events into structured sides, participants, and map metadata. | src/modules/public-stats/replay-mapper.ts | +| 20 | **Steam Identity and Testing** | Steam OpenID authentication, test fixtures, and reference validation mocks. | src/modules/auth/routes/models.ts
src/modules/requests/routes/models.ts | +| 21 | **Filter and Sort Specification** | Defines allowed sort fields and filter logic for rotation, player, and commander endpoints. | src/modules/public-stats/routes/filters.ts
src/modules/public-stats/routes/pagination/sort.ts | +| 22 | **Legacy Database Export** | SQL queries extracting player/squad/weapon/relationship data for legacy format export. | src/modules/statistics/repository/legacy-export.ts | +| 23 | **Game Type Classification** | Classifies replays by game type and manages inclusion/exclusion list overrides. | src/modules/statistics/game-type/game-type-config.ts | +| 24 | **Parser Runtime and Messaging** | RabbitMQ queue integration and parse job lifecycle message handling. | src/infra/queue/rabbitmq.ts
src/modules/ingest/runtime.ts | +| 25 | **Player Slug and Pagination State** | Name-based player lookups with Cyrillic transliteration and pagination cursor state. | src/modules/public-stats/routes/slug.ts
src/modules/public-stats/routes/pagination/mask.ts | +| 26 | **Parse Job Publisher** | Publishes completed parse jobs to downstream consumers with status tracking. | src/modules/ingest/publisher.ts | +| 27 | **Replay Promotion Workflow** | Manages staging record deduplication and promotion to replay table with evidence tracking. | src/modules/ingest/repository/repository.ts | +| 28 | **Parser Artifact Persistence** | Persists normalized parser events and coordinates statistics recalculation. | src/modules/statistics/parser-artifact.ts | +| 29 | **Ingest Route Schemas** | OpenAPI schemas and filters for staging records and parse job list endpoints. | src/modules/ingest/routes/routes.ts | +| 30 | **Request and Action Routes** | HTTP endpoints for creating/listing player requests and ingest job actions. | src/modules/requests/routes/routes.ts
src/modules/ingest/routes/actions.ts | +| 31 | **Audit Patch Recalculator** | Applies audit patches to statistics after moderation actions on replay data. | src/modules/requests/routes/audit-recalculator.ts | +| 32 | **Parser Artifact Mapping** | Maps raw parser output to normalized kill/vehicle/diagnostic events and summaries. | src/modules/statistics/parser-artifact.ts | +| 33 | **Replay Promotion Service** | Handles source/checksum conflict detection and timestamp resolution for new replays. | src/modules/ingest/service.ts | +| 34 | **Ingest Database Adapter** | PostgreSQL operations for staging records, parse jobs, and history tracking. | src/modules/ingest/repository/repository.ts | +| 35 | **Admin Test Utilities** | Rotation management test helpers and admin app builders. | src/modules/admin/routes/tests/utilities.ts | +| 36 | **Parity Diff Contract** | Defines strict failure codes and known difference policies for statistics validation. | src/modules/statistics/diff/diff-contract.ts | +| 37 | **Workflow Action Application** | Applies player merge/split/link actions and legacy winner fixes to identity data. | src/modules/requests/routes/workflow-applier.ts | +| 38 | **Infrastructure Bootstrap** | Database pool creation, logging setup, server initialization and shutdown. | src/infra/db/client.ts
src/server.ts | +| 39 | **Database Schema and Migrations** | Schema validation, migration runner, and integration test infrastructure. | src/infra/db/migrate.ts | +| 40 | **Game Type Detection** | Extracts mission names and classifies replays by game type with override rules. | src/modules/statistics/game-type/classify-game-type.ts | +| 41 | **Parse Job Publishing** | Publishes parse completion messages to RabbitMQ with error handling. | src/infra/queue/messages.ts
src/modules/ingest/publisher.ts | +| 42 | **Parity Statistics SQL** | Dynamic SQL generation for player/squad/weapon/relationship statistics queries. | src/modules/statistics/repository/parity-sql.ts | +| 43 | **Authentication Routes** | Steam login/callback routes, session cookies, and role-based access control. | src/modules/auth/routes/routes.ts
src/modules/auth/routes/authorization.ts | +| 44 | **Workflow Applier Tests** | Test doubles and integration tests for workflow action application and recalculation. | src/modules/requests/routes/workflow-applier.test.ts | +| 45 | **Configuration and Operations** | Environment loading, statistics recalculation and readiness operations. | src/config/env.ts
src/operations/recalculate-statistics.ts | +| 46 | **Parser Result Status Tracking** | Query results for rotation assignment, status counts, and parser result metadata. | src/modules/statistics/repository/repository.ts | +| 47 | **Ingest Action Routes** | HTTP endpoints for parse job retry and manual reparse with role-based authorization. | src/modules/ingest/routes/actions.ts | +| 48 | **Ingest Repository Tests** | PostgreSQL test helpers for staging records and parse job operations. | src/modules/ingest/repository/tests/postgres.test.ts | +| 49 | **Legacy Export Repository** | Loads source data from database for legacy statistics export format. | src/modules/statistics/export/legacy-public-export.ts
src/modules/statistics/repository/legacy-export.ts | +| 50 | **Parse Job Reconciler** | Detects and reconciles stale published parse jobs with completion tracking. | src/modules/ingest/reconciler.ts | +| 51 | **Bounty Point Calculation** | Computes bounty points from kill events with effectiveness weighting. | src/modules/statistics/bounty/bounty.ts | +| 52 | **Health Checks and Operations** | System health status, storage client, and operations endpoints. | src/infra/health.ts
src/modules/operations/routes.ts | +| 53 | **Workflow Boundary Guards** | Validates that request workflow changes follow boundary rules and policies. | src/operations/check-app-boundary-guards.ts | +| 54 | **Full Run Statistics Repository** | Assigns rotations and classifies game types for full-scope recalculation. | src/modules/statistics/repository/full-run.ts | +| 55 | **Parity Score Formulas** | Calculates KD ratio, kill coefficients, and weekly score metrics. | src/modules/statistics/parity-formulas.ts | +| 56 | **Workflow Tests** | Test app builders and test doubles for workflow action application. | src/modules/requests/routes/workflows/tests/utilities.ts | +| 57 | **Request Moderation Routes** | HTTP endpoints for request approval/rejection and decision responses. | src/modules/requests/routes/moderation/moderation.ts | +| 58 | **Keyset Cursor Pagination** | Implements keyset-based pagination with sortable columns and state encoding. | src/modules/public-stats/routes/pagination/keyset.ts | +| 59 | **Cloud Client Factories** | Creates RabbitMQ queue and S3 storage client instances. | src/infra/queue/client.ts
src/infra/storage/client.ts | +| 60 | **Logging and Testing** | Logger configuration, app-level tests, and Steam ID leak detection. | src/infra/logging/logger.ts
src/test/app.test.ts | +| 61 | **Player Identity Indexing** | Indexes player identities with priority matching and steam ID validation. | src/modules/statistics/repository/repository.ts | +| 62 | **Request Moderation Test Suite** | Integration tests for request workflows, audit patches, and moderation. | src/modules/requests/routes/audit-patches/tests/index.test.ts
src/modules/requests/routes/moderation/tests/index.test.ts | +| 63 | **OpenAPI Contract Validation** | Validates OpenAPI schema for forbidden pagination keys and list schema compliance. | src/openapi/frozen-contract.test.ts | +| 64 | **Request Workflow Schemas** | OpenAPI schemas for request workflow actions and validation logic. | src/modules/requests/routes/workflows/workflows.ts | +| 65 | **Reference Validator Database** | PostgreSQL implementation of reference validation for player/squad identities. | src/modules/requests/routes/postgres.ts | +| 66 | **Interval Task Scheduler** | Periodic task execution with start/stop lifecycle and error handling. | src/infra/runtime/interval-task.ts | +| 67 | **Commander Side Aggregation** | Computes commander-specific statistics from replay events. | src/modules/statistics/service/commander.ts | +| 68 | **Audit Patch Moderation Routes** | HTTP endpoints for creating audit patches after request review. | src/modules/requests/routes/audit-patches/audit-patches.ts | +| 69 | **Overview and Commander Statistics** | Queries rotation overviews and commander side summaries. | src/modules/public-stats/repository.ts | +| 70 | **History Gap Detection** | Detects and tracks periods of missing player/squad history data. | src/modules/public-stats/routes/history-gaps.ts | +| 71 | **Replay Sitemap Generation** | Generates XML sitemaps for replay URLs with pagination support. | src/modules/public-stats/routes/sitemap.ts | +| 72 | **OpenAPI Pagination Schema** | Validates that paginated OpenAPI schemas use standard field conventions. | src/openapi/contract.test.ts | +| 73 | **Legacy Export Operation** | Orchestrates generation and export of legacy statistics format to output. | src/operations/export-legacy-public-stats.ts | +| 74 | **RabbitMQ Parser Runtime** | Consumes parser completion messages and routes to result handlers. | src/infra/queue/rabbitmq.ts | +| 75 | **Admin Role Routes** | HTTP endpoints for viewing and updating user roles. | src/modules/auth/routes/role-routes.ts | +| 76 | **Steam OpenID Client** | Steam authentication protocol implementation with signature verification. | src/modules/auth/routes/steam-openid.ts | +| 77 | **Bounty Query Repository** | Queries bounty input data and aggregates for statistics API. | src/modules/public-stats/repository.ts | +| 78 | **OpenAPI Schema Export** | Generates and exports OpenAPI schema documentation. | src/openapi/export-openapi.ts | +| 79 | **Backup Runbook Validator** | Ensures critical database backup terms exist in Docker Compose. | src/operations/check-backup-runbook.ts | +| 80 | **Rotation Summary Queries** | Queries for rotation details, summaries, and listing. | src/modules/public-stats/repository.ts | +| 81 | **Module Route Options** | Configuration interfaces for registering application modules. | src/app.ts | +| 82 | **Legacy Export Test Utilities** | Scripted database client for legacy export testing. | src/modules/statistics/repository/tests/legacy-export.test.ts | +| 83 | **RabbitMQ Topology Setup** | Tests queue and exchange topology configuration assertions. | src/infra/queue/rabbitmq.test.ts | +| 84 | **Ingest Command Handlers** | Implements retry and manual reparse commands for parse jobs. | src/modules/ingest/routes/actions.ts | +| 85 | **Action Routes Tests** | Integration tests for parse job retry and reparse endpoints. | src/modules/ingest/routes/tests/actions.test.ts | +| 86 | **Show Classification** | Computes whether a replay is from a show/tournament game. | src/modules/statistics/game-type/is-show.ts | +| 87 | **Request Attachment Storage** | Stores and manages file uploads for request moderation attachments. | src/modules/requests/routes/attachment-storage.ts | diff --git a/.planning/graphs/GRAPH_REPORT.md b/.planning/graphs/GRAPH_REPORT.md new file mode 100644 index 0000000..c8bd718 --- /dev/null +++ b/.planning/graphs/GRAPH_REPORT.md @@ -0,0 +1,485 @@ +# Graph Report - . (2026-06-15) + +## Corpus Check +- cluster-only mode — file stats not available + +## Summary +- 1820 nodes · 3855 edges · 88 communities (82 shown, 6 thin omitted) +- Extraction: 99% EXTRACTED · 1% INFERRED · 0% AMBIGUOUS · INFERRED: 28 edges (avg confidence: 0.8) +- Token cost: 0 input · 0 output + +## Graph Freshness +- Built from commit: `144e7350` +- 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) +- [[_COMMUNITY_TEST_ZERO_NAME|TEST_ZERO_NAME]] +- [[_COMMUNITY_Community 1|Community 1]] +- [[_COMMUNITY_Community 2|Community 2]] +- [[_COMMUNITY_Community 3|Community 3]] +- [[_COMMUNITY_Community 4|Community 4]] +- [[_COMMUNITY_Community 5|Community 5]] +- [[_COMMUNITY_Community 6|Community 6]] +- [[_COMMUNITY_Community 7|Community 7]] +- [[_COMMUNITY_Community 8|Community 8]] +- [[_COMMUNITY_Community 9|Community 9]] +- [[_COMMUNITY_Community 10|Community 10]] +- [[_COMMUNITY_Community 11|Community 11]] +- [[_COMMUNITY_Community 12|Community 12]] +- [[_COMMUNITY_Community 13|Community 13]] +- [[_COMMUNITY_Community 14|Community 14]] +- [[_COMMUNITY_Community 15|Community 15]] +- [[_COMMUNITY_Community 16|Community 16]] +- [[_COMMUNITY_Community 17|Community 17]] +- [[_COMMUNITY_Community 18|Community 18]] +- [[_COMMUNITY_Community 19|Community 19]] +- [[_COMMUNITY_Community 20|Community 20]] +- [[_COMMUNITY_Community 21|Community 21]] +- [[_COMMUNITY_Community 22|Community 22]] +- [[_COMMUNITY_Community 23|Community 23]] +- [[_COMMUNITY_Community 24|Community 24]] +- [[_COMMUNITY_Community 25|Community 25]] +- [[_COMMUNITY_Community 26|Community 26]] +- [[_COMMUNITY_Community 27|Community 27]] +- [[_COMMUNITY_Community 28|Community 28]] +- [[_COMMUNITY_Community 29|Community 29]] +- [[_COMMUNITY_Community 30|Community 30]] +- [[_COMMUNITY_Community 31|Community 31]] +- [[_COMMUNITY_Community 32|Community 32]] +- [[_COMMUNITY_Community 33|Community 33]] +- [[_COMMUNITY_Community 34|Community 34]] +- [[_COMMUNITY_Community 35|Community 35]] +- [[_COMMUNITY_Community 36|Community 36]] +- [[_COMMUNITY_Community 37|Community 37]] +- [[_COMMUNITY_Community 38|Community 38]] +- [[_COMMUNITY_Community 39|Community 39]] +- [[_COMMUNITY_Community 40|Community 40]] +- [[_COMMUNITY_Community 41|Community 41]] +- [[_COMMUNITY_Community 42|Community 42]] +- [[_COMMUNITY_Community 43|Community 43]] +- [[_COMMUNITY_Community 44|Community 44]] +- [[_COMMUNITY_Community 45|Community 45]] +- [[_COMMUNITY_Community 46|Community 46]] +- [[_COMMUNITY_Community 47|Community 47]] +- [[_COMMUNITY_Community 48|Community 48]] +- [[_COMMUNITY_Community 49|Community 49]] +- [[_COMMUNITY_Community 50|Community 50]] +- [[_COMMUNITY_Community 51|Community 51]] +- [[_COMMUNITY_Community 52|Community 52]] +- [[_COMMUNITY_Community 53|Community 53]] +- [[_COMMUNITY_Community 54|Community 54]] +- [[_COMMUNITY_Community 55|Community 55]] +- [[_COMMUNITY_Community 56|Community 56]] +- [[_COMMUNITY_Community 57|Community 57]] +- [[_COMMUNITY_Community 58|Community 58]] +- [[_COMMUNITY_Community 59|Community 59]] +- [[_COMMUNITY_Community 60|Community 60]] +- [[_COMMUNITY_Community 61|Community 61]] +- [[_COMMUNITY_Community 62|Community 62]] +- [[_COMMUNITY_Community 63|Community 63]] +- [[_COMMUNITY_Community 64|Community 64]] +- [[_COMMUNITY_Community 65|Community 65]] +- [[_COMMUNITY_Community 66|Community 66]] +- [[_COMMUNITY_Community 67|Community 67]] +- [[_COMMUNITY_Community 68|Community 68]] +- [[_COMMUNITY_Community 69|Community 69]] +- [[_COMMUNITY_Community 70|Community 70]] +- [[_COMMUNITY_Community 71|Community 71]] +- [[_COMMUNITY_Community 72|Community 72]] +- [[_COMMUNITY_Community 73|Community 73]] +- [[_COMMUNITY_Community 74|Community 74]] +- [[_COMMUNITY_Community 75|Community 75]] +- [[_COMMUNITY_Community 76|Community 76]] +- [[_COMMUNITY_Community 77|Community 77]] +- [[_COMMUNITY_Community 78|Community 78]] +- [[_COMMUNITY_Community 79|Community 79]] +- [[_COMMUNITY_Community 80|Community 80]] +- [[_COMMUNITY_Community 81|Community 81]] +- [[_COMMUNITY_Community 82|Community 82]] +- [[_COMMUNITY_Community 83|Community 83]] +- [[_COMMUNITY_Community 84|Community 84]] +- [[_COMMUNITY_Community 85|Community 85]] +- [[_COMMUNITY_Community 86|Community 86]] +- [[_COMMUNITY_Community 87|Community 87]] + +## God Nodes (most connected - your core abstractions) +1. `buildApp()` - 56 edges +2. `PgPublicStatsReadModel` - 41 edges +3. `FakePublicStatsReadModel` - 41 edges +4. `PgIngestRepository` - 30 edges +5. `InMemoryPlayerRequestRepository` - 29 edges +6. `PgStatisticsRepository` - 29 edges +7. `PgPlayerRequestRepository` - 24 edges +8. `ScriptedClient` - 24 edges +9. `InMemoryAuthUserRepository` - 23 edges +10. `IngestStagingRecord` - 23 edges + +## Surprising Connections (you probably didn't know these) +- `buildActionsApp()` --calls--> `buildApp()` [EXTRACTED] + src/modules/ingest/routes/tests/actions.test.ts → src/app.ts +- `buildRequestsApp()` --calls--> `buildApp()` [INFERRED] + src/modules/requests/routes/tests/fixtures.ts → src/app.ts +- `buildAdminApp()` --calls--> `buildApp()` [INFERRED] + src/modules/admin/routes/tests/utilities.ts → src/app.ts +- `buildAuditPatchApp()` --calls--> `buildApp()` [INFERRED] + src/modules/requests/routes/audit-patches/tests/utilities.ts → src/app.ts +- `buildModerationApp()` --calls--> `buildApp()` [INFERRED] + src/modules/requests/routes/moderation/tests/utilities.ts → src/app.ts + +## Import Cycles +- 1-file cycle: `src/modules/admin/routes/models.ts -> src/modules/admin/routes/models.ts` +- 1-file cycle: `src/modules/requests/routes/models.ts -> src/modules/requests/routes/models.ts` + +## Communities (88 total, 6 thin omitted) + +### Community 0 - "TEST_ZERO_NAME" +Cohesion: 0.03 +Nodes (84): PublicStatsRouteOptions, BountyListQuery, BountyListQueryType, BountyListResponse, BountySummaryResponse, CommanderSideQuery, CommanderSideResponse, LeaderboardQuery (+76 more) + +### Community 1 - "Community 1" +Cohesion: 0.07 +Nodes (37): InMemoryPlayerRequestRepository, isAttachmentInput(), AuditPatch, AuditPatchRepository, CreatePlayerRequestInput, CreateRequestAttachmentInput, CreateRequestWorkflowActionInput, DecideRequestInput (+29 more) + +### Community 2 - "Community 2" +Cohesion: 0.06 +Nodes (30): classifyNoSteamPlayer(), classifyNoSteamPlayers(), identityItem(), IdentityReference, IdentityResolutionStatus, matchingIdentityReferences(), NicknameConflictItem, nicknameConflictItems() (+22 more) + +### Community 3 - "Community 3" +Cohesion: 0.07 +Nodes (30): InMemoryAdminRotationRepository, invalidRange(), slugBase(), AdminRotationRepository, AdminRotationRow, CreateRotationInput, CreateRotationResult, DeleteRotationResult (+22 more) + +### Community 4 - "Community 4" +Cohesion: 0.05 +Nodes (47): BountyPointEventEvidence, addToRelationshipMap(), aggregateRelationshipEntries(), aggregateWeaponEntries(), aggregateWeekEntries(), BountyInputsRow, buildReplayWhere(), CommanderSideRow (+39 more) + +### Community 5 - "Community 5" +Cohesion: 0.12 +Nodes (28): composeBountyWhere(), keysetResult(), KeysetSeek, emptyLeaderboards(), emptySurface(), BountySummary, LeaderboardFilters, PageQuery (+20 more) + +### Community 6 - "Community 6" +Cohesion: 0.08 +Nodes (28): createMetricsRegistry(), OperationalMetrics, registerOperationalMetrics(), registerRequestModerationRoutes(), registerOpenApi(), registerOperationsRoutes(), createEmptyIngestCommandModel(), createEmptyPublicStatsReadModel() (+20 more) + +### Community 7 - "Community 7" +Cohesion: 0.10 +Nodes (18): InMemoryAuthUserRepository, InMemorySessionStore, AuthSession, AuthUser, AuthUserRepository, SessionStore, AuthSessionRow, AuthUserRow (+10 more) + +### Community 8 - "Community 8" +Cohesion: 0.07 +Nodes (30): config, env, pool, repository, aggregateScopePredicate(), aggregateSnapshot(), ClassifiableReplaySeed, CorpusReplayPlayer (+22 more) + +### Community 9 - "Community 9" +Cohesion: 0.05 +Nodes (26): BountyBreakdown, NameHistoryEntry, NameHistoryPayload, PlayerMembershipHistoryEntry, PlayerMembershipHistoryPayload, PlayerReferenceSlug, PlayerRelationshipEntry, PlayerRelationshipsPayload (+18 more) + +### Community 10 - "Community 10" +Cohesion: 0.08 +Nodes (27): ALL_TIME_GAME_TYPES, classifyTarget(), countReason(), failedItem(), FullRunAggregateRows, FullRunAllTimeAggregateRows, FullRunCoverageItem, FullRunCoverageReport (+19 more) + +### Community 11 - "Community 11" +Cohesion: 0.11 +Nodes (13): commanders(), CommanderScenario, eventRow(), parserArtifact(), parserResultRows(), player(), sideFacts(), bountyInsertRows() (+5 more) + +### Community 12 - "Community 12" +Cohesion: 0.14 +Nodes (9): sortRelationships(), sortWeapons(), sortWeeks(), PgPublicStatsReadModel, mapRelationships(), mapWeapons(), mapWeeks(), maxTimestamp() (+1 more) + +### Community 13 - "Community 13" +Cohesion: 0.08 +Nodes (33): aggregateInputsFromRows(), AggregateRecalculationResult, AggregateScope, AssignRotationResult, BountyRecalculationResult, buildPlayerIdentityIndex(), CommanderIdentity, commanderInputsFromRows() (+25 more) + +### Community 14 - "Community 14" +Cohesion: 0.10 +Nodes (24): IngestStatus, PageQuery, PageResult, ParseJobFilters, ParseJobHistoryAction, ParseJobHistoryEntry, ParseJobStatus, PromotionStatus (+16 more) + +### Community 15 - "Community 15" +Cohesion: 0.10 +Nodes (23): CursorPayload, decodeCursor(), encodeCursor(), isPrimitiveSortValue(), parseCursorJson(), ALLOWED_SORTS, BadCursorError, BountySortField (+15 more) + +### Community 16 - "Community 16" +Cohesion: 0.12 +Nodes (27): AggregatePlayerEvidence, AggregateReplayInput, applyAttackerEvent(), applyCounterEvent(), applySquadCounterEvent(), applySquadEvent(), applyVictimDeath(), artifactCounterDeaths() (+19 more) + +### Community 17 - "Community 17" +Cohesion: 0.13 +Nodes (14): assignReplayRotation(), auditScopes(), bountyKillInputs(), loadPreviousBountyEffectiveness(), loadScopedAggregateReplayInputs(), loadScopedCommanderReplayInputs(), PgStatisticsRepository, replaceBountyRows() (+6 more) + +### Community 18 - "Community 18" +Cohesion: 0.10 +Nodes (22): deaths(), LEGACY_PUBLIC_EXPORT_CONTRACT_VERSION, LegacyOtherPlayersExport, LegacyPlayerStatsExport, LegacyPublicStatsExport, LegacyPublicStatsExportOptions, LegacyPublicStatsExportService, LegacyRelationshipInput (+14 more) + +### Community 19 - "Community 19" +Cohesion: 0.13 +Nodes (24): maskSteamId(), buildParticipants(), buildSides(), extractMapName(), extractPlayers(), extractSideFacts(), MAP_CANDIDATE_KEYS, mapReplayDetail() (+16 more) + +### Community 20 - "Community 20" +Cohesion: 0.18 +Nodes (12): ReferenceValidator, SteamIdentity, SteamLoginUrlInput, SteamOpenIdAdapter, createRequest(), buildRequestsApp(), FakeSteamOpenIdAdapter, loginCookie() (+4 more) + +### Community 21 - "Community 21" +Cohesion: 0.11 +Nodes (25): SortDescriptor, assertCursorValueType(), commanderSideFilters(), decodeAfter(), DecodeAfterOptions, decodeFixedCursor(), emptyPage(), leaderboardFilters() (+17 more) + +### Community 22 - "Community 22" +Cohesion: 0.11 +Nodes (24): LegacyOtherPlayersInput, LegacyPlayerReference, LegacyPlayerStatsInput, LegacyRotationStatsInput, LegacySquadStatsInput, LegacyWeaponsInput, LegacyWeekInput, LegacyWeeksInput (+16 more) + +### Community 23 - "Community 23" +Cohesion: 0.12 +Nodes (7): GameType, FullRunLifecycleCounts, ParserResultRecalculationTarget, ScopedRecalculationResult, FakeFullRunRepository, generatedAt, lifecycle + +### Community 24 - "Community 24" +Cohesion: 0.13 +Nodes (18): createIngestRuntime(), IngestRuntime, IngestRuntimeOptions, ParserArtifactLoader, ParserResultRecalculator, completedMessage, failedMessage, parserArtifact (+10 more) + +### Community 25 - "Community 25" +Cohesion: 0.10 +Nodes (15): PageCursorState, CYRILLIC_TRANSLITERATION, shortSuffix(), slugify(), config, env, pool, ALL_SORTS (+7 more) + +### Community 26 - "Community 26" +Cohesion: 0.11 +Nodes (7): ParseJobRepository, FakeParseJobRepository, FakePublisherLogger, FakePublisherObserver, parseJob, ParseJobRecord, FakeReadModel + +### Community 27 - "Community 27" +Cohesion: 0.13 +Nodes (8): FakePromotionRepository, IngestStagingRecord, ReplayRecord, firstParserResultId(), mapReplayRow(), recordEvidence(), requiredRow(), StagingRow + +### Community 28 - "Community 28" +Cohesion: 0.13 +Nodes (9): FullRunRecalculationRepository, ParserResultRecalculationService, ParserResultRecalculationSummary, StatisticsRecalculationRepository, ParserArtifactPersistenceService, StatisticsRepository, NormalizedParserEvent, FakeStatisticsRepository (+1 more) + +### Community 29 - "Community 29" +Cohesion: 0.10 +Nodes (19): assignDefined(), JsonObject, MessageResponse, page(), PaginationQuery, parseJobFilters(), ParseJobHistoryListResponse, ParseJobHistoryResponse (+11 more) + +### Community 30 - "Community 30" +Cohesion: 0.12 +Nodes (20): requireActorUserId(), currentUser(), PlayerRequestType, ReferencedEntityType, AttachmentResponse, AttachmentUploadResponse, CreateAttachmentBody, CreateAttachmentBodyType (+12 more) + +### Community 31 - "Community 31" +Cohesion: 0.27 +Nodes (5): NoopAuditPatchRecalculator, PgAuditPatchRecalculator, AuditPatchRecalculator, CreateAuditPatchInput, FakeAuditPatchRecalculator + +### Community 32 - "Community 32" +Cohesion: 0.13 +Nodes (18): ArtifactStatus, CommanderSideFact, destroyedVehicleEvents(), DestroyedVehicleRow, diagnosticEvents(), DiagnosticRow, EventActorReference, killEvents() (+10 more) + +### Community 33 - "Community 33" +Cohesion: 0.19 +Nodes (10): deriveReplayTimestampFromSourceId(), resolveReplayTimestamp(), conflictDetails(), IngestPromotionService, PromotionRepository, replayRecord, stagingRecord, withResolvedReplayTimestamp() (+2 more) + +### Community 34 - "Community 34" +Cohesion: 0.15 +Nodes (5): mapParseJobRow(), mapStagingRow(), PgIngestRepository, recordParseJobHistory(), updateStagingStatus() + +### Community 35 - "Community 35" +Cohesion: 0.43 +Nodes (4): LoginInput, buildAdminApp(), createRotationId(), validBody() + +### Community 36 - "Community 36" +Cohesion: 0.16 +Nodes (16): createDiffReport(), defaultKnownDifferencePolicy(), DIFF_CONTRACT_VERSION, DiffCorpusScope, DiffInputMetadata, DiffSnapshotMetadata, DiffSummaryCounts, isDefaultKnownDifferenceCode() (+8 more) + +### Community 37 - "Community 37" +Cohesion: 0.20 +Nodes (18): applyLegacyWinnerFix(), applyPlayerMerge(), applyPlayerSplit(), applySteamLink(), assertPlayerExists(), firstId(), IdRow, LEGACY_WINNER_SIDES (+10 more) + +### Community 38 - "Community 38" +Cohesion: 0.14 +Nodes (13): createDatabaseHealthCheck(), createDatabasePool(), createDbClient(), auth, checks, config, databasePool, ingestRepository (+5 more) + +### Community 39 - "Community 39" +Cohesion: 0.13 +Nodes (14): MigrationRecord, migrationsDir, runMigrations(), aggregateTables, ColumnInfo, config, env, pool (+6 more) + +### Community 40 - "Community 40" +Cohesion: 0.20 +Nodes (13): applyIncludeOverride(), classifyGameType(), ClassifyGameTypeInput, extractMissionName(), isSmDateEligible(), MISSION_CANDIDATE_KEYS, unwrapMissionField(), assertExcludeListInvariant() (+5 more) + +### Community 41 - "Community 41" +Cohesion: 0.16 +Nodes (13): noopLogger, noopObserver, parseJobLogBindings(), ParseJobPublisher, ParseJobPublisherLogger, ParseJobPublisherObserver, ParseJobPublisherOptions, ParseJobPublisherRuntimeOptions (+5 more) + +### Community 42 - "Community 42" +Cohesion: 0.25 +Nodes (16): bucketPlaceholder(), bucketValues(), isShowSelect(), ParitySqlBucket, ParitySqlQuery, ParitySqlScope, playerStatsSql(), predicate() (+8 more) + +### Community 43 - "Community 43" +Cohesion: 0.15 +Nodes (14): RequiredRole, expiredSessionCookie(), readCookie(), sessionCookie(), SessionCookieOptions, authCallbackUrl(), CallbackQuery, CallbackQueryType (+6 more) + +### Community 44 - "Community 44" +Cohesion: 0.12 +Nodes (5): PgRequestWorkflowApplier, queryResult(), ScriptedCall, ScriptedClient, ScriptedClientOptions + +### Community 45 - "Community 45" +Cohesion: 0.21 +Nodes (10): AppEnvironment, loadConfig(), redactConfigForLogs(), redactUrl(), redactValue(), baseEnvironment, runStatisticsRecalculationOperation(), mocks (+2 more) + +### Community 46 - "Community 46" +Cohesion: 0.16 +Nodes (14): AssignedRotationRow, ClassificationInputRow, classifyReplay(), CurrentParserResultRow, distinctPlayerCount(), isStale(), mapCurrentParserResultRow(), PARSE_JOB_STATUSES (+6 more) + +### Community 47 - "Community 47" +Cohesion: 0.16 +Nodes (14): JsonObject, ManualReparseBody, ManualReparseBodyType, MessageResponse, ParseJobResponse, registerIngestActionRoutes(), registerManualReparseRoute(), registerRetryRoute() (+6 more) + +### Community 48 - "Community 48" +Cohesion: 0.14 +Nodes (10): config, env, pool, repository, checksumA, checksumB, checksumC, insertStaging() (+2 more) + +### Community 49 - "Community 49" +Cohesion: 0.22 +Nodes (4): LegacyPublicStatsExportData, LegacyPublicStatsExportRepository, PgLegacyPublicStatsExportRepository, FakeLegacyExportRepository + +### Community 50 - "Community 50" +Cohesion: 0.17 +Nodes (9): noopLogger, noopObserver, parseJobLogBindings(), ParseJobReconciler, ParseJobReconcilerLogger, ParseJobReconcilerObserver, ParseJobReconcilerOptions, ParseJobReconcilerRepository (+1 more) + +### Community 51 - "Community 51" +Cohesion: 0.21 +Nodes (12): BountyEffectivenessInput, BountyEventType, bountyEvidence(), BountyKillInput, BountyPointRow, bountyRow(), calculateBountyPoints(), effectiveness() (+4 more) + +### Community 52 - "Community 52" +Cohesion: 0.19 +Nodes (10): checkAll(), HealthCheckable, HealthCheckResult, HealthStatus, HealthSummary, HealthCheckResultSchema, LiveResponse, OperationsRouteOptions (+2 more) + +### Community 53 - "Community 53" +Cohesion: 0.22 +Nodes (10): checkAppWorkflowBoundary(), ForbiddenWorkflowRule, forbiddenWorkflowRules, isMissingDirectoryError(), isWorkflowFile(), readDirectoryEntries(), runAppWorkflowBoundaryGuardOperation(), temporaryDirectories (+2 more) + +### Community 54 - "Community 54" +Cohesion: 0.15 +Nodes (6): countStatuses(), PgFullRunStatisticsRepository, FullRunTargetRow, ScriptedFullRunPool, StatusRow, statusTable() + +### Community 55 - "Community 55" +Cohesion: 0.32 +Nodes (9): playerExport(), weekExport(), playerStats(), squadStats(), kdRatio(), killsFromVehicleCoef(), totalScore(), weeklyScore() (+1 more) + +### Community 56 - "Community 56" +Cohesion: 0.23 +Nodes (10): ApplyRequestWorkflowInput, RequestWorkflowApplier, MoveSelectedIdentityRowsInput, login(), LoginInput, requireCookie(), approveRequest(), buildWorkflowApp() (+2 more) + +### Community 57 - "Community 57" +Cohesion: 0.17 +Nodes (10): DecisionBody, DecisionBodyType, DecisionResponse, DetailResponse, ErrorResponse, ModerationActionResponse, RequestIdParameters, RequestIdParametersType (+2 more) + +### Community 58 - "Community 58" +Cohesion: 0.23 +Nodes (9): buildKeysetPredicate(), KeysetCursorState, KeysetDescriptor, KeysetOptions, KeysetPredicate, orderBy(), KILLS, NAME (+1 more) + +### Community 59 - "Community 59" +Cohesion: 0.27 +Nodes (6): AppConfig, env, createQueueClient(), createStorageClient(), awsMocks, config + +### Community 60 - "Community 60" +Cohesion: 0.22 +Nodes (6): createStaticHealthCheck(), PUBLIC_DETAIL_ROUTES, PUBLIC_LIST_ROUTES, WriteSweepHarness, WriteSweepSession, createLoggerOptions() + +### Community 61 - "Community 61" +Cohesion: 0.20 +Nodes (9): bestPlayerIdentityIndexed(), isNicknameActive(), playerIdentityMatchPriority(), PlayerIdentityRow, ArtifactPlayer, bestPlayerIdentityScan(), IDENTITIES, PLAYERS (+1 more) + +### Community 62 - "Community 62" +Cohesion: 0.15 +Nodes (14): buildWriteSweepApp(), EmptyReferenceValidator, createNoopRequestWorkflowApplier(), createDefaultRequestOptions(), loginAs(), LoginAsInput, requireCookie(), loginAs() (+6 more) + +### Community 63 - "Community 63" +Cohesion: 0.40 +Nodes (8): asJson(), collectListSchemas(), findPaginationOffenders(), FORBIDDEN_PAGINATION_KEYS, getJsonResponseSchema(), isListSchema(), Json, listOffenderKeys() + +### Community 64 - "Community 64" +Cohesion: 0.22 +Nodes (8): RequestWorkflowActionType, ErrorResponse, RequestIdParameters, RequestIdParametersType, WorkflowActionSchema, WorkflowBody, WorkflowBodyType, WorkflowResponse + +### Community 65 - "Community 65" +Cohesion: 0.20 +Nodes (6): PgReferenceValidator, config, env, pool, repository, references + +### Community 67 - "Community 67" +Cohesion: 0.29 +Nodes (8): calculateCommanderSideAggregates(), commanderAggregate(), CommanderEvidence, CommanderOutcomeEvidence, CommanderReplayInput, CommanderSideAggregateRow, MutableCommanderAggregate, normalizedSide() + +### Community 68 - "Community 68" +Cohesion: 0.25 +Nodes (8): AuditPatchBody, AuditPatchBodyType, AuditPatchResponse, ErrorResponse, registerAuditPatchRoutes(), RequestIdParameters, RequestIdParametersType, requireAnyRole() + +### Community 69 - "Community 69" +Cohesion: 0.25 +Nodes (5): rotationWhere(), CommanderSideSummary, OverviewFilters, StatsOverview, commanderSideSummary() + +### Community 70 - "Community 70" +Cohesion: 0.33 +Nodes (5): gapExists(), makeKnown(), TestWindow, UnknownGapEntry, withGaps() + +### Community 71 - "Community 71" +Cohesion: 0.42 +Nodes (6): childSitemapEntry(), escapeXml(), replayUrlEntry(), ReplaySitemapRouteOptions, sitemapIndexXml(), urlsetXml() + +### Community 72 - "Community 72" +Cohesion: 0.25 +Nodes (5): document, paginatedSchemas, REMOVED_OFFSET_FIELDS, SchemaObject, schemaObjects + +### Community 73 - "Community 73" +Cohesion: 0.46 +Nodes (6): argumentValue(), generatedAt(), LegacyExportOperationOptions, parseOperationArguments(), runLegacyPublicStatsExportOperation(), mocks + +### Community 75 - "Community 75" +Cohesion: 0.25 +Nodes (7): AuthErrorResponse, NotFoundResponse, RolesBody, RolesBodyType, UserIdParameters, UserIdParametersType, UserResponse + +### Community 77 - "Community 77" +Cohesion: 0.38 +Nodes (6): BountyRow, bountyRowWithInputs(), bountyRowWithRawInputs(), captureCommanderSidesSql(), CapturedQuery, readModelWithCapture() + +### Community 78 - "Community 78" +Cohesion: 0.47 +Nodes (3): outputPath, createOpenApiSchema(), schemaPath + +### Community 79 - "Community 79" +Cohesion: 0.33 +Nodes (4): missing, requiredComposeTerms, requiredEnvironmentTerms, requiredRunbookTerms + +### Community 80 - "Community 80" +Cohesion: 0.33 +Nodes (3): RotationDetail, RotationSummary, rotationSummary() + +### Community 81 - "Community 81" +Cohesion: 0.53 +Nodes (6): IngestCommandModel, AdminRouteOptions, AuthRouteOptions, RequestRouteOptions, IngestRouteOptions, BuildAppOptions + +### Community 84 - "Community 84" +Cohesion: 0.60 +Nodes (3): ManualReparseResult, RetryParseJobResult, FakeCommands + +### Community 85 - "Community 85" +Cohesion: 0.50 +Nodes (4): buildActionsApp(), job, loginCookie(), requireCookie() + +### Community 87 - "Community 87" +Cohesion: 0.38 +Nodes (6): InMemoryRequestAttachmentStorage, safeFileName(), CreateRequestAttachmentUploadInput, RequestAttachmentStorage, RequestAttachmentUpload, FakeRequestAttachmentStorage + +## Knowledge Gaps +- **427 isolated node(s):** `DefaultAuthConfig`, `baseEnvironment`, `AppEnvironment`, `MigrationRecord`, `migrationsDir` (+422 more) + These have ≤1 connection - possible missing edges or undocumented components. +- **6 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 `PgStatisticsRepository` connect `Community 17` to `Community 37`, `Community 38`, `Community 8`, `Community 11`, `Community 44`, `Community 13`, `Community 46`, `Community 54`, `Community 31`?** + _High betweenness centrality (0.139) - this node is a cross-community bridge._ +- **Why does `buildApp()` connect `Community 6` to `Community 35`, `Community 68`, `Community 38`, `Community 39`, `Community 78`, `Community 15`, `Community 20`, `Community 85`, `Community 30`, `Community 56`, `Community 60`, `Community 62`?** + _High betweenness centrality (0.057) - this node is a cross-community bridge._ +- **Why does `PgIngestRepository` connect `Community 34` to `Community 38`, `Community 14`, `Community 48`, `Community 24`, `Community 26`, `Community 27`?** + _High betweenness centrality (0.044) - this node is a cross-community bridge._ +- **Are the 5 inferred relationships involving `buildApp()` (e.g. with `buildRequestsApp()` and `buildAdminApp()`) actually correct?** + _`buildApp()` has 5 INFERRED edges - model-reasoned connections that need verification._ +- **What connects `DefaultAuthConfig`, `baseEnvironment`, `AppEnvironment` to the rest of the system?** + _427 weakly-connected nodes found - possible documentation gaps or missing edges._ +- **Should `TEST_ZERO_NAME` be split into smaller, more focused modules?** + _Cohesion score 0.033957553058676655 - nodes in this community are weakly interconnected._ +- **Should `Community 1` be split into smaller, more focused modules?** + _Cohesion score 0.06553128470936691 - nodes in this community are weakly interconnected._ \ No newline at end of file