|
| 1 | +# Graph Report - . (2026-08-17) |
| 2 | + |
| 3 | +## Corpus Check |
| 4 | +- cluster-only mode — file stats not available |
| 5 | + |
| 6 | +## Summary |
| 7 | +- 359 nodes · 594 edges · 30 communities (22 shown, 8 thin omitted) |
| 8 | +- Extraction: 99% EXTRACTED · 1% INFERRED · 0% AMBIGUOUS · INFERRED: 3 edges (avg confidence: 0.83) |
| 9 | +- Token cost: 1,005 input · 290 output |
| 10 | + |
| 11 | +## Graph Freshness |
| 12 | +- Built from commit: `917cb5e5` |
| 13 | +- Run `git rev-parse HEAD` and compare to check if the graph is stale. |
| 14 | +- Run `graphify update .` after code changes (no API cost). |
| 15 | + |
| 16 | +## Community Hubs (Navigation) |
| 17 | +- Link Redirection Logic |
| 18 | +- TypeScript Configuration |
| 19 | +- Static Content Pages |
| 20 | +- Project Dependencies |
| 21 | +- Link Creation API |
| 22 | +- Link Statistics UI |
| 23 | +- Database Migrations |
| 24 | +- Development Dependencies |
| 25 | +- Package Metadata |
| 26 | +- Global Analytics |
| 27 | +- Link Management Service |
| 28 | +- Internationalization and Locales |
| 29 | +- Input Validation Schemas |
| 30 | +- Project Documentation |
| 31 | +- Installation Scripts |
| 32 | +- Abuse Prevention |
| 33 | +- Root Layout Configuration |
| 34 | +- ESLint Configuration |
| 35 | +- Backup Scripts |
| 36 | +- Next.js Configuration |
| 37 | +- Update Scripts |
| 38 | +- Tailwind CSS Configuration |
| 39 | +- CodeQL Security Workflow |
| 40 | +- Dependency Review Workflow |
| 41 | +- Linting Workflow |
| 42 | +- Repository Mirroring Workflow |
| 43 | +- Release Automation Workflow |
| 44 | +- UI Screenshots |
| 45 | + |
| 46 | +## God Nodes (most connected - your core abstractions) |
| 47 | +1. `compilerOptions` - 20 edges |
| 48 | +2. `getLinkByCode()` - 15 edges |
| 49 | +3. `execute()` - 12 edges |
| 50 | +4. `getGlobalStats()` - 12 edges |
| 51 | +5. `hashIp()` - 11 edges |
| 52 | +6. `StatsPage()` - 10 edges |
| 53 | +7. `trackClick()` - 10 edges |
| 54 | +8. `isLinkExpired()` - 10 edges |
| 55 | +9. `ApiError` - 10 edges |
| 56 | +10. `getPool()` - 9 edges |
| 57 | + |
| 58 | +## Surprising Connections (you probably didn't know these) |
| 59 | +- `MSK Logo` --references--> `MSK Shortener README` [INFERRED] |
| 60 | + public/logo.png → README.md |
| 61 | +- `MSK Shortener UI Screenshot` --references--> `MSK Shortener README` [INFERRED] |
| 62 | + public/msk_shortener.png → README.md |
| 63 | +- `GET()` --calls--> `getLinkByCode()` [EXTRACTED] |
| 64 | + app/api/links/[code]/qr/route.ts → src/lib/links.ts |
| 65 | +- `GET()` --calls--> `getLinkByCode()` [EXTRACTED] |
| 66 | + app/api/links/[code]/stats/route.ts → src/lib/links.ts |
| 67 | +- `POST()` --calls--> `createLink()` [EXTRACTED] |
| 68 | + app/api/links/route.ts → src/lib/links.ts |
| 69 | + |
| 70 | +## Import Cycles |
| 71 | +- None detected. |
| 72 | + |
| 73 | +## Hyperedges (group relationships) |
| 74 | +- **MSK Ecosystem Documentation** — readme, contributing, code_of_conduct, security, license [EXTRACTED 1.00] |
| 75 | +- **CI/CD Pipeline** — github_workflows_deploy, github_workflows_codeql, github_workflows_eslint, github_workflows_dependency_review [EXTRACTED 1.00] |
| 76 | + |
| 77 | +## Communities (30 total, 8 thin omitted) |
| 78 | + |
| 79 | +### Community 0 - "Link Redirection Logic" |
| 80 | +Cohesion: 0.14 |
| 81 | +Nodes (25): GET(), POST(), POST(), PageProps, RedirectPage(), PageProps, PasswordPage(), PasswordPrompt() (+17 more) |
| 82 | + |
| 83 | +### Community 1 - "TypeScript Configuration" |
| 84 | +Cohesion: 0.06 |
| 85 | +Nodes (32): ./app/*, dom, dom.iterable, esnext, next-env.d.ts, .next/types/**/*.ts, node_modules, **/*.ts (+24 more) |
| 86 | + |
| 87 | +### Community 2 - "Static Content Pages" |
| 88 | +Cohesion: 0.08 |
| 89 | +Nodes (12): CreateLinkForm(), DeleteForm(), DeleteFormProps, State, DeleteLinkButton(), Header(), HeaderProps, Logo() (+4 more) |
| 90 | + |
| 91 | +### Community 3 - "Project Dependencies" |
| 92 | +Cohesion: 0.07 |
| 93 | +Nodes (28): GET(), bcryptjs, dotenv, mysql2, nanoid, next, next-intl, dependencies (+20 more) |
| 94 | + |
| 95 | +### Community 4 - "Link Creation API" |
| 96 | +Cohesion: 0.13 |
| 97 | +Nodes (16): QR_OPTIONS, RouteContext, DELETE(), RouteContext, LinkResult(), LinkResultProps, Props, jsonError() (+8 more) |
| 98 | + |
| 99 | +### Community 5 - "Link Statistics UI" |
| 100 | +Cohesion: 0.18 |
| 101 | +Nodes (19): GET(), RouteContext, formatDate(), PageProps, parseDays(), StatsPage(), QRCodeDisplay(), QRCodeDisplayProps (+11 more) |
| 102 | + |
| 103 | +### Community 6 - "Database Migrations" |
| 104 | +Cohesion: 0.15 |
| 105 | +Nodes (21): main(), ensureMigrationsTable(), getExecutedMigrations(), main(), MIGRATIONS_DIR, runMigration(), ClickContext, extractClickContext() (+13 more) |
| 106 | + |
| 107 | +### Community 7 - "Development Dependencies" |
| 108 | +Cohesion: 0.09 |
| 109 | +Nodes (23): autoprefixer, eslint, eslint-config-next, devDependencies, autoprefixer, eslint, eslint-config-next, postcss (+15 more) |
| 110 | + |
| 111 | +### Community 8 - "Package Metadata" |
| 112 | +Cohesion: 0.10 |
| 113 | +Nodes (20): description, engines, node, license, name, overrides, brace-expansion, eslint (+12 more) |
| 114 | + |
| 115 | +### Community 9 - "Global Analytics" |
| 116 | +Cohesion: 0.18 |
| 117 | +Nodes (14): GET(), GlobalStatsPage(), AggregateBars(), AggregateBarsProps, aggregateBrowsersGlobal(), aggregateOsGlobal(), countClicksLast7Days(), countClicksToday() (+6 more) |
| 118 | + |
| 119 | +### Community 10 - "Link Management Service" |
| 120 | +Cohesion: 0.25 |
| 121 | +Nodes (13): queryOne(), createLink(), CreateLinkOptions, CreateLinkResult, LinkServiceError, DEFAULT_LENGTH, generateDeleteToken(), generateShortCode() (+5 more) |
| 122 | + |
| 123 | +### Community 11 - "Internationalization and Locales" |
| 124 | +Cohesion: 0.28 |
| 125 | +Nodes (8): POST(), LanguageSwitcher(), isLocale(), Locale, LOCALE_FLAGS, LOCALE_LABELS, LOCALES, getCurrentLocale() |
| 126 | + |
| 127 | +### Community 12 - "Input Validation Schemas" |
| 128 | +Cohesion: 0.18 |
| 129 | +Nodes (10): CreateLinkInput, createLinkSchema, customCodeSchema, DeleteLinkInput, deleteLinkSchema, expiresAtSchema, passwordSchema, urlSchema (+2 more) |
| 130 | + |
| 131 | +### Community 13 - "Project Documentation" |
| 132 | +Cohesion: 0.25 |
| 133 | +Nodes (9): Code of Conduct, Contributing Guidelines, Deployment Guide, Deploy Workflow, GNU Affero General Public License v3.0, MSK Logo, MSK Shortener UI Screenshot, MSK Shortener README (+1 more) |
| 134 | + |
| 135 | +### Community 14 - "Installation Scripts" |
| 136 | +Cohesion: 0.43 |
| 137 | +Nodes (7): DEBIAN_FRONTEND, log_err(), log_info(), log_ok(), log_step(), log_warn(), install.sh script |
| 138 | + |
| 139 | +### Community 15 - "Abuse Prevention" |
| 140 | +Cohesion: 0.48 |
| 141 | +Nodes (6): AbuseCheckResult, addBlockedDomain(), BLOCKED_DOMAINS, BLOCKED_TLDS, checkUrlForAbuse(), SHORTENER_DOMAINS |
| 142 | + |
| 143 | +### Community 16 - "Root Layout Configuration" |
| 144 | +Cohesion: 0.33 |
| 145 | +Nodes (4): inter, jetbrainsMono, metadata, viewport |
| 146 | + |
| 147 | +### Community 17 - "ESLint Configuration" |
| 148 | +Cohesion: 0.40 |
| 149 | +Nodes (4): compat, __dirname, eslintConfig, __filename |
| 150 | + |
| 151 | +### Community 18 - "Backup Scripts" |
| 152 | +Cohesion: 0.83 |
| 153 | +Nodes (3): log_err(), log_ok(), backup.sh script |
| 154 | + |
| 155 | +### Community 19 - "Next.js Configuration" |
| 156 | +Cohesion: 0.50 |
| 157 | +Nodes (3): csp, nextConfig, withNextIntl |
| 158 | + |
| 159 | +## Knowledge Gaps |
| 160 | +- **127 isolated node(s):** `PageProps`, `PageProps`, `RouteContext`, `QR_OPTIONS`, `RouteContext` (+122 more) |
| 161 | + These have ≤1 connection - possible missing edges or undocumented components. |
| 162 | +- **8 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes. |
| 163 | + |
| 164 | +## Suggested Questions |
| 165 | +_Questions this graph is uniquely positioned to answer:_ |
| 166 | + |
| 167 | +- **Why does `dependencies` connect `Project Dependencies` to `Package Metadata`?** |
| 168 | + _High betweenness centrality (0.235) - this node is a cross-community bridge._ |
| 169 | +- **Why does `GET()` connect `Project Dependencies` to `Link Redirection Logic`, `Link Creation API`?** |
| 170 | + _High betweenness centrality (0.220) - this node is a cross-community bridge._ |
| 171 | +- **What connects `PageProps`, `PageProps`, `RouteContext` to the rest of the system?** |
| 172 | + _127 weakly-connected nodes found - possible documentation gaps or missing edges._ |
| 173 | +- **Should `Link Redirection Logic` be split into smaller, more focused modules?** |
| 174 | + _Cohesion score 0.14393939393939395 - nodes in this community are weakly interconnected._ |
| 175 | +- **Should `TypeScript Configuration` be split into smaller, more focused modules?** |
| 176 | + _Cohesion score 0.06060606060606061 - nodes in this community are weakly interconnected._ |
| 177 | +- **Should `Static Content Pages` be split into smaller, more focused modules?** |
| 178 | + _Cohesion score 0.08275862068965517 - nodes in this community are weakly interconnected._ |
| 179 | +- **Should `Project Dependencies` be split into smaller, more focused modules?** |
| 180 | + _Cohesion score 0.07142857142857142 - nodes in this community are weakly interconnected._ |
0 commit comments