Files
mangaBookmark/graphify-out/GRAPH_REPORT.md
T
sulthan 755462bc4a chore: track go.work and the graphify map
go.work and go.work.sum were ignored, which left gopls without a
workspace root — the LSP needs them checked in to resolve ./backend.

graphify-out/ is meant to be committed so a fresh checkout starts with
the map instead of rebuilding. Committed: graph.json, graph.html,
manifest.json (portable now — relative keys, re-anchored on load),
GRAPH_REPORT.md, .graphify_labels.json, .graphify_root.

Still ignored: cost.json (local), cache/ (13M, regenerable), the dated
snapshot dirs (glob, so future ones are covered too), .rebuild.lock.

.graphify_python holds an absolute interpreter path, so it looks
machine-local — but it is tracked deliberately. Every query helper
shells $(cat graphify-out/.graphify_python), and an ignored untracked
file does not materialize in a new `git worktree add` dir, which would
break the first query in every new worktree. A second dev whose
interpreter differs should skip-worktree it locally.
2026-08-11 10:28:54 +07:00

410 lines
21 KiB
Markdown

# Graph Report - mangaBookmark (2026-08-11)
## Corpus Check
- 107 files · ~261,472 words
- Verdict: corpus is large enough that graph structure adds value.
## Summary
- 1434 nodes · 3122 edges · 118 communities (57 shown, 61 thin omitted)
- Extraction: 91% EXTRACTED · 9% INFERRED · 0% AMBIGUOUS · INFERRED: 294 edges (avg confidence: 0.77)
- Token cost: 0 input · 0 output
## Graph Freshness
- Built from commit: `c400c91a`
- 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_HTMX Library Internals|HTMX Library Internals]]
- [[_COMMUNITY_Latest-Chapter Poller Tests|Latest-Chapter Poller Tests]]
- [[_COMMUNITY_Userscript Site Adapters|Userscript Site Adapters]]
- [[_COMMUNITY_Status Buckets Web UI|Status Buckets Web UI]]
- [[_COMMUNITY_Go HTTP Test Helpers|Go HTTP Test Helpers]]
- [[_COMMUNITY_Web UI Handler Tests|Web UI Handler Tests]]
- [[_COMMUNITY_Go Error Handling Patterns|Go Error Handling Patterns]]
- [[_COMMUNITY_Web UI ListLogin Views|Web UI List/Login Views]]
- [[_COMMUNITY_Latest-Chapter Fetch Logic|Latest-Chapter Fetch Logic]]
- [[_COMMUNITY_SessionAuth Handling|Session/Auth Handling]]
- [[_COMMUNITY_Go Code Style Guide|Go Code Style Guide]]
- [[_COMMUNITY_Latest-Chapter Poll Config|Latest-Chapter Poll Config]]
- [[_COMMUNITY_Store|Store]]
- [[_COMMUNITY_Go Allocation Patterns|Go Allocation Patterns]]
- [[_COMMUNITY_Open|Open]]
- [[_COMMUNITY_Go CPU Optimization|Go CPU Optimization]]
- [[_COMMUNITY_Skill Discovery Docs|Skill Discovery Docs]]
- [[_COMMUNITY_FavouriteDelete Fragments Task|Favourite/Delete Fragments Task]]
- [[_COMMUNITY_Status Bucket Backend Logic|Status Bucket Backend Logic]]
- [[_COMMUNITY_Deployment Guide|Deployment Guide]]
- [[_COMMUNITY_task-7-report|task-7-report.md]]
- [[_COMMUNITY_caching|caching.md]]
- [[_COMMUNITY_runtime|runtime.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_final-fix-report|final-fix-report.md]]
- [[_COMMUNITY_task-4-report|task-4-report.md]]
- [[_COMMUNITY_task-8-report|task-8-report.md]]
- [[_COMMUNITY_observability|observability.md]]
- [[_COMMUNITY_observability|observability.md]]
- [[_COMMUNITY_Poller|Poller]]
- [[_COMMUNITY_task-1-brief|task-1-brief.md]]
- [[_COMMUNITY_task-3-brief|task-3-brief.md]]
- [[_COMMUNITY_Store|Store]]
- [[_COMMUNITY_getCover|getCover]]
- [[_COMMUNITY_task-1-report|task-1-report.md]]
- [[_COMMUNITY_task-3-report|task-3-report.md]]
- [[_COMMUNITY_filter.js|filter.js]]
- [[_COMMUNITY_task-2-brief|task-2-brief.md]]
- [[_COMMUNITY_task-5-report|task-5-report.md]]
- [[_COMMUNITY_latest_sites.go|latest_sites.go]]
- [[_COMMUNITY_caching|caching.md]]
- [[_COMMUNITY_runtime|runtime.md]]
- [[_COMMUNITY_prometheus-alerts.yml|prometheus-alerts.yml]]
- [[_COMMUNITY_task-4-brief|task-4-brief.md]]
- [[_COMMUNITY_Implement tickets|Implement tickets]]
- [[_COMMUNITY_progress|progress.md]]
- [[_COMMUNITY_task-1-brief|task-1-brief.md]]
- [[_COMMUNITY_task-2-brief|task-2-brief.md]]
- [[_COMMUNITY_task-3-brief|task-3-brief.md]]
- [[_COMMUNITY_task-4-brief|task-4-brief.md]]
- [[_COMMUNITY_readBookmark|readBookmark]]
- [[_COMMUNITY_task-6-brief|task-6-brief.md]]
- [[_COMMUNITY_TLSFetcher|TLSFetcher]]
- [[_COMMUNITY_AGENTS|AGENTS.md]]
- [[_COMMUNITY_ADR-0005 On-demand browser sidecar|ADR-0005: On-demand browser sidecar]]
- [[_COMMUNITY_Handler|Handler]]
- [[_COMMUNITY_Time|Time]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_details|details.md]]
- [[_COMMUNITY_error-creation|error-creation.md]]
- [[_COMMUNITY_error-wrapping|error-wrapping.md]]
- [[_COMMUNITY_error-wrapping|error-wrapping.md]]
- [[_COMMUNITY_error-wrapping|error-wrapping.md]]
- [[_COMMUNITY_error-wrapping|error-wrapping.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_cpu|cpu.md]]
- [[_COMMUNITY_runtime|runtime.md]]
- [[_COMMUNITY_runtime|runtime.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_helpers|helpers.md]]
- [[_COMMUNITY_http-testing|http-testing.md]]
- [[_COMMUNITY_integration-testing|integration-testing.md]]
- [[_COMMUNITY_integration-testing|integration-testing.md]]
- [[_COMMUNITY_mocking|mocking.md]]
- [[_COMMUNITY_mocking|mocking.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_SKILL|SKILL.md]]
- [[_COMMUNITY_observability|observability.md]]
- [[_COMMUNITY_Allocation Patterns|Allocation Patterns]]
- [[_COMMUNITY_Task 2 report The single write path|Task 2 report: The single write path]]
- [[_COMMUNITY_Why Use samberoops|Why Use samber/oops]]
- [[_COMMUNITY_singleflight Cache Stampede Prevention|singleflight Cache Stampede Prevention]]
- [[_COMMUNITY_Struct Field Alignment|Struct Field Alignment]]
- [[_COMMUNITY_testingsynctest Deterministic Goroutine Testing|testing/synctest Deterministic Goroutine Testing]]
- [[_COMMUNITY_Impeccable critique 2026-07-26T155042Z (score 2140)|Impeccable critique 2026-07-26T15:50:42Z (score 21/40)]]
- [[_COMMUNITY_Impeccable critique 2026-07-26T170841Z (score 2640)|Impeccable critique 2026-07-26T17:08:41Z (score 26/40)]]
- [[_COMMUNITY_P0 chapter-edit form causes horizontal overflow on mobile|P0: chapter-edit form causes horizontal overflow on mobile]]
- [[_COMMUNITY_P1 no hx-indicator on htmx mutations, silent failure|P1: no hx-indicator on htmx mutations, silent failure]]
- [[_COMMUNITY_Dark-first, night-reading-optimized principle|Dark-first, night-reading-optimized principle]]
- [[_COMMUNITY_Single-user, no-accounts positioning|Single-user, no-accounts positioning]]
## God Nodes (most connected - your core abstractions)
1. `testConfig()` - 53 edges
2. `newWebTestServer()` - 49 edges
3. `newTestStore()` - 42 edges
4. `newTestStore()` - 41 edges
5. `e()` - 32 edges
6. `Handler` - 29 edges
7. `ne()` - 28 edges
8. `De()` - 28 edges
9. `Open()` - 27 edges
10. `se()` - 27 edges
## Surprising Connections (you probably didn't know these)
- `el()` --indirect_call--> `c()` [INFERRED]
userscript/manga-bookmark.user.js → backend/internal/web/static/htmx.min.js
- `el()` --indirect_call--> `c()` [INFERRED]
userscript/novel-bookmark.user.js → backend/internal/web/static/htmx.min.js
- `latestChapterFromAnchors()` --indirect_call--> `re()` [INFERRED]
userscript/manga-bookmark.user.js → backend/internal/web/static/htmx.min.js
- `el()` --indirect_call--> `k()` [INFERRED]
userscript/manga-bookmark.user.js → backend/internal/web/static/htmx.min.js
- `el()` --indirect_call--> `k()` [INFERRED]
userscript/novel-bookmark.user.js → backend/internal/web/static/htmx.min.js
## Import Cycles
- None detected.
## Communities (118 total, 61 thin omitted)
### Community 0 - "HTMX Library Internals"
Cohesion: 0.08
Nodes (101): A(), ae(), an(), at(), B(), be(), bn(), bt() (+93 more)
### Community 1 - "Latest-Chapter Poller Tests"
Cohesion: 0.07
Nodes (79): M, TestMain(), M, TestMain(), M, Main(), start(), URL() (+71 more)
### Community 2 - "Userscript Site Adapters"
Cohesion: 0.06
Nodes (77): adapterFor(), anchorsFromDocument(), anchorsFromHTML(), apiDelete(), apiGet(), apiPut(), applyFabPos(), applyLatestChapterIfChanged() (+69 more)
### Community 3 - "Status Buckets Web UI"
Cohesion: 0.06
Nodes (74): adapterFor(), anchorsFromDocument(), anchorsFromHTML(), apiDelete(), apiGet(), apiPut(), applyFabPos(), applyLatestChapterIfChanged() (+66 more)
### Community 4 - "Go HTTP Test Helpers"
Cohesion: 0.05
Nodes (39): Test Helpers, Test Timeout, Basic Handler Test, HTTP Handler Testing, Query Parameters and Headers, Docker Compose Fixture, Integration Testing, SQL Schema Fixture (+31 more)
### Community 5 - "Web UI Handler Tests"
Cohesion: 0.10
Nodes (67): bookmarkNewKaganeSeries(), bookmarkNewNovelfullSeries(), bookmarkNewSeries(), Context, Store, T, newAcquirer(), readBookmark() (+59 more)
### Community 6 - "Go Error Handling Patterns"
Cohesion: 0.06
Nodes (33): Creating Errors, Custom Error Types, Custom types that wrap other errors, Decision table: which error strategy to use, Error Creation, Error String Conventions, Errors as Values, `errors.New` — static error messages (+25 more)
### Community 7 - "Web UI List/Login Views"
Cohesion: 0.08
Nodes (32): Handler, Request, ResponseWriter, Store, Healthz(), writeJSON(), Auth(), compressible() (+24 more)
### Community 8 - "Latest-Chapter Fetch Logic"
Cohesion: 0.08
Nodes (23): Code Style Details, Extract Complex Conditions, Value vs Pointer Arguments, Code Organization Within Files, Complex Conditions & Init Scope, Composite Literals, Control Flow, Cross-References (+15 more)
### Community 9 - "Session/Auth Handling"
Cohesion: 0.14
Nodes (14): Allocation Patterns, Backing Array Leaks, Direct indexing vs append, Eliminate redundant map lookups, Interface boxing, Map never shrinks, Map size hints, Memory Optimization (+6 more)
### Community 10 - "Go Code Style Guide"
Cohesion: 0.11
Nodes (18): Avoid io.ReadAll for large payloads, Batch Operations, Buffered I/O, Cgo Overhead, Channel: batch processing from a stream, Concurrent Multi-Stage Pipelines, Connection pooling, Database: batch inserts over row-by-row (+10 more)
### Community 11 - "Latest-Chapter Poll Config"
Cohesion: 0.06
Nodes (25): CoverContentType(), coverRelativePath(), coverSourceAddress(), displayChapter(), Store, currentLib(), currentTab(), filterBookmarks() (+17 more)
### Community 12 - "Store"
Cohesion: 0.29
Nodes (6): ADR-0007: The backend hosts every Site's Cover bytes, Consequences, Considered options, Decision, Two deliberate relaxations, Why a future reader will find this surprising
### Community 13 - "Go Allocation Patterns"
Cohesion: 0.13
Nodes (14): Algorithmic Complexity, Avoid iterator chains, Caching Patterns, Compiled Pattern Caching, Early returns and short-circuit loops, LRU caches, Map lookups over slice scanning, Precomputed lookup tables (+6 more)
### Community 14 - "Open"
Cohesion: 0.11
Nodes (16): Agent skills, Architecture, Commands, Comments, Design system, Domain docs, Forge: Gitea, not GitHub, graphify (+8 more)
### Community 15 - "Go CPU Optimization"
Cohesion: 0.14
Nodes (13): Common Skill Categories, Find Skills, How to Help Users Find Skills, Step 1: Understand What They Need, Step 2: Check the Leaderboard First, Step 3: Search for Skills, Step 4: Verify Quality Before Recommending, Step 5: Present Options to the User (+5 more)
### Community 16 - "Skill Discovery Docs"
Cohesion: 0.12
Nodes (22): Action, awaitPromise(), browserConnectionLost(), classifyBrowserError(), Context, Mutex, isInterstitial(), jsString() (+14 more)
### Community 17 - "Favourite/Delete Fragments Task"
Cohesion: 0.07
Nodes (27): 1. Summary answer table, 2. The two reference pages, 3. Chapter page → series URL: every in-page pointer, in priority order, 4.1 Sample method, 4.2 Divergence results, 4.3 Is there a derivable rule? **No.**, 4.4 The split case — a slug can change *mid-series*, 4. The reverse direction, and how common divergence is (+19 more)
### Community 18 - "Status Bucket Backend Logic"
Cohesion: 0.12
Nodes (15): Assessment, Calibration, Critical (Must Fix), Do Not Trust the Report, Important (Should Fix), Inputs, Issues, Method (+7 more)
### Community 19 - "Deployment Guide"
Cohesion: 0.13
Nodes (14): 1. Backend, 2. Userscript, Adapter reference (verified live 2026-07-24), Config (env), Deploy behind your reverse proxy, Desktop iteration (optional), Develop / test, Endpoints (+6 more)
### Community 20 - "task-7-report.md"
Cohesion: 0.12
Nodes (15): 0. Preflight, 1. Back up the database, 2. Pull the new code, 3. Rebuild and restart, 4. Verify the deploy, 5. Smoke-test the full loop, 6. Rollback, 7. The whole thing, as one block (+7 more)
### Community 21 - "caching.md"
Cohesion: 0.14
Nodes (13): 0. Prerequisites, 1. Configure `.env`, 1b. Web UI, 2. Build + start, 3. Verify over HTTPS, 4. Configure the userscript, 5. Install on Bromite, 6. Smoke-test the full loop (+5 more)
### Community 22 - "runtime.md"
Cohesion: 0.17
Nodes (11): Accessibility & Inclusion, Brand Commitments, Capabilities and Constraints, Evidence on Hand, Operating Context, Platform, Positioning, Product (+3 more)
### Community 23 - "SKILL.md"
Cohesion: 0.13
Nodes (15): Cache Locality, Contiguous 2D allocation, CPU Optimization, False Sharing, Function Inlining, Handling CPU-specific instruction sets, Instruction-Level Parallelism, Monotonic Time (+7 more)
### Community 24 - "final-fix-report.md"
Cohesion: 0.20
Nodes (9): 1. The one idea, 2. Tokens, 3. Type, 4. Components (web UI), 5. Components (userscript panel), 6. Motion, 7. Accessibility floor (not negotiable), 8. Adding something new — checklist (+1 more)
### Community 25 - "task-4-report.md"
Cohesion: 0.28
Nodes (4): Duration, Store, Time, Session
### Community 26 - "task-8-report.md"
Cohesion: 0.13
Nodes (15): Allocation Rate Reduction, Ballast pattern (pre-Go 1.19), Garbage Collector Tuning, GC pacing, GC Profiling and Diagnostics, GODEBUG=gctrace=1, GOGC (default: 100), GOMAXPROCS in Containers (+7 more)
### Community 27 - "observability.md"
Cohesion: 0.20
Nodes (10): CI Regression Detection, Common Mistakes, Core Philosophy, Cross-References, Decision Tree: Where Is Time Spent?, Deep Dives, Go Performance Optimization, Iterative Optimization Methodology (+2 more)
### Community 28 - "observability.md"
Cohesion: 0.31
Nodes (5): closeCardPanels(), setActiveTab(), toggleChapterForm(), toggleConfirmRow(), togglePanel()
### Community 29 - "Poller"
Cohesion: 0.33
Nodes (5): ADR-0006: The browser runs on the home machine, over the tailnet, Consequences, Constraints, Decision, Why
### Community 30 - "task-1-brief.md"
Cohesion: 0.22
Nodes (8): 0. The generator is throwaway, 1. Stop the old API and take a fresh export, 2. Bring up Postgres with the schema and the owner Reader, 3. Generate the import SQL, 4. Review it by eye, 5. Apply it, 6. Afterwards, SQLite → Postgres cutover runbook
### Community 31 - "task-3-brief.md"
Cohesion: 0.29
Nodes (6): Conventions, Issue tracker: Gitea (`tea` CLI), Pull requests as a triage surface, Wayfinding operations, When a skill says "fetch the relevant ticket", When a skill says "publish to the issue tracker"
### Community 32 - "Store"
Cohesion: 0.40
Nodes (5): Map of pointers for large, frequently updated structs, Memory Layout, Pointer receivers for large structs, Struct field alignment, Zero-size field at end of struct
### Community 33 - "getCover"
Cohesion: 0.33
Nodes (12): coverResponse(), Request, T, TestCoverFetcherCanonicalisesJpgAlias(), TestCoverFetcherFetchesPublicHTTPSImage(), TestCoverFetcherRefusesUnsafeDestinationsBeforeRequest(), TestCoverFetcherRejectsNonImage(), TestCoverFetcherRejectsOversizedBody() (+4 more)
### Community 34 - "task-1-report.md"
Cohesion: 0.33
Nodes (5): Before exploring, read these, Domain Docs, File structure, Flag ADR conflicts, Use the glossary's vocabulary
### Community 35 - "task-3-report.md"
Cohesion: 0.33
Nodes (5): Before You Begin, Report Format, Self-Review Before Reporting, When You're in Over Your Head, Your Job
### Community 36 - "filter.js"
Cohesion: 0.08
Nodes (36): ClearCookie(), ClientIP(), Duration, Mutex, Request, ResponseWriter, Time, isHTTPS() (+28 more)
### Community 37 - "task-2-brief.md"
Cohesion: 0.40
Nodes (4): Consequences, Only the Poll writes Series fields, Series is a shared entity, and only the Poll may update it, Why
### Community 38 - "task-5-report.md"
Cohesion: 0.50
Nodes (3): Consequences, Considered options, Postgres replaces SQLite as the primary datastore
### Community 39 - "latest_sites.go"
Cohesion: 0.10
Nodes (83): floatPtr(), testConfig(), getCover(), Cookie, Handler, ResponseRecorder, T, TestListRendersAcquiredCover() (+75 more)
### Community 40 - "caching.md"
Cohesion: 0.50
Nodes (3): Consequences, Considered options, Identity comes from Discord OAuth; we store no passwords and send no email
### Community 41 - "runtime.md"
Cohesion: 0.22
Nodes (5): Continuous Profiling, Production Observability for Performance, Pyroscope pull mode (via Grafana Alloy), Pyroscope push mode, Real-Time Visualization (Development)
### Community 42 - "prometheus-alerts.yml"
Cohesion: 0.50
Nodes (4): Prometheus Alerting Rules (Go Performance), GoroutineLeak Alert, HighGCPauseTime Alert, MemoryNearLimit Alert
### Community 43 - "task-4-brief.md"
Cohesion: 0.50
Nodes (3): Consequence, The wire format stays flat and deliberately does not mirror the schema, Why a future reader will find this surprising
### Community 44 - "Implement tickets"
Cohesion: 0.22
Nodes (8): 1. Collect the tickets, 2. Plan the batch, 3. Get the plan approved, 4. Run a wave, 5. Land the wave, 6. Close the batch, Implement tickets, Ticket #<n> — <title>
### Community 46 - "task-1-brief.md"
Cohesion: 0.35
Nodes (14): browser_alive(), connection(), connection_signal(), finish_connection(), has_connections(), lock(), reaper(), entrypoint.sh script (+6 more)
### Community 47 - "task-2-brief.md"
Cohesion: 0.29
Nodes (6): Design Health Score, Design Specificity Verdict, Minor Observations, Persona Red Flags, Priority Issues, Questions to Consider
### Community 48 - "task-3-brief.md"
Cohesion: 0.29
Nodes (6): Design Health Score, Design Specificity Verdict, Minor Observations, Persona Red Flags, Priority Issues, Questions to Consider
### Community 50 - "readBookmark"
Cohesion: 0.33
Nodes (5): ADR-0008: A Series identity is discovered from the Site's links, never derived from an address, Consequences, Considered options, Decision, Why
### Community 52 - "TLSFetcher"
Cohesion: 0.33
Nodes (5): Escalate rather than guess, Order of work, Report, Review, The worktree is your whole world
### Community 54 - "AGENTS.md"
Cohesion: 0.29
Nodes (6): Adding a test, Commands, Gotchas, How the harness works, Testing the userscript, What is NOT testable here
### Community 55 - "ADR-0005: On-demand browser sidecar"
Cohesion: 0.50
Nodes (3): ADR-0005: On-demand browser sidecar, Constraints, Decision
### Community 56 - "Handler"
Cohesion: 0.50
Nodes (3): Live URL shapes (verified 2026-07-26, may drift — re-check against live pages before trust), Second script: `novel-bookmark.user.js`, Userscript structure (single IIFE, `manga-bookmark.user.js`)
### Community 60 - "Time"
Cohesion: 0.08
Nodes (41): Addr, Context, Store, defaultCoverResolver(), fetchCoverBytes(), Client, Context, NewCoverFetcher() (+33 more)
### Community 152 - "Allocation Patterns"
Cohesion: 0.22
Nodes (9): Alerting rules (examples), CPU saturation, GC pressure, Goroutine leaks, Grafana Dashboards, Memory leaks, Prometheus Metrics for Go, PromQL Queries for Performance Diagnosis (+1 more)
### Community 156 - "Task 2 report: The single write path"
Cohesion: 0.07
Nodes (71): auth(), getBookmarks(), Handler, Request, Store, T, newTestServer(), newTestStore() (+63 more)
## Knowledge Gaps
- **411 isolated node(s):** `bookmarkmanager/backend`, `ctxKey`, `loginView`, `ctxKey`, `test` (+406 more)
These have ≤1 connection - possible missing edges or undocumented components.
- **61 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 `New()` connect `Web UI Handler Tests` to `Latest-Chapter Poller Tests`, `filter.js`, `Latest-Chapter Poll Config`, `Task 2 report: The single write path`, `Time`?**
_High betweenness centrality (0.052) - this node is a cross-community bridge._
- **Why does `Open()` connect `Latest-Chapter Poller Tests` to `Latest-Chapter Poll Config`, `Task 2 report: The single write path`, `Web UI Handler Tests`, `latest_sites.go`?**
_High betweenness centrality (0.042) - this node is a cross-community bridge._
- **Why does `newRouter()` connect `Task 2 report: The single write path` to `Web UI List/Login Views`, `Web UI Handler Tests`, `latest_sites.go`?**
_High betweenness centrality (0.030) - this node is a cross-community bridge._
- **Are the 47 inferred relationships involving `testConfig()` (e.g. with `TestListRendersAcquiredCover()` and `TestPublicCoverNeverEchoesNonImage()`) actually correct?**
_`testConfig()` has 47 INFERRED edges - model-reasoned connections that need verification._
- **Are the 8 inferred relationships involving `newWebTestServer()` (e.g. with `TestListRendersAcquiredCover()` and `TestPublicCoverRejectsUnknownAddress()`) actually correct?**
_`newWebTestServer()` has 8 INFERRED edges - model-reasoned connections that need verification._
- **Are the 6 inferred relationships involving `newTestStore()` (e.g. with `TestCreateAndGetSession()` and `TestDeleteSessionIsPerReader()`) actually correct?**
_`newTestStore()` has 6 INFERRED edges - model-reasoned connections that need verification._
- **What connects `bookmarkmanager/backend`, `ctxKey`, `loginView` to the rest of the system?**
_420 weakly-connected nodes found - possible documentation gaps or missing edges._