# Graph Report - mangaBookmark (2026-08-11) ## Corpus Check - 108 files · ~265,471 words - Verdict: corpus is large enough that graph structure adds value. ## Summary - 1644 nodes · 3206 edges · 277 communities (62 shown, 215 thin omitted) - Extraction: 90% EXTRACTED · 10% INFERRED · 0% AMBIGUOUS · INFERRED: 312 edges (avg confidence: 0.77) - Token cost: 0 input · 0 output ## Graph Freshness - Built from commit: `27dda601` - 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_Cover Fetch Test Helpers|Cover Fetch Test Helpers]] - [[_COMMUNITY_Manga Userscript Adapters|Manga Userscript Adapters]] - [[_COMMUNITY_Novel Userscript Adapters|Novel Userscript Adapters]] - [[_COMMUNITY_Series Acquisition Tests|Series Acquisition Tests]] - [[_COMMUNITY_Bookmarks API Tests|Bookmarks API Tests]] - [[_COMMUNITY_Storage Choice ADR|Storage Choice ADR]] - [[_COMMUNITY_Cover & Acquire Internals|Cover & Acquire Internals]] - [[_COMMUNITY_System Architecture Concepts|System Architecture Concepts]] - [[_COMMUNITY_Session Middleware|Session Middleware]] - [[_COMMUNITY_Go Test Helpers|Go Test Helpers]] - [[_COMMUNITY_Store Tests|Store Tests]] - [[_COMMUNITY_Bookmarks API Handler|Bookmarks API Handler]] - [[_COMMUNITY_Web UI Handlers|Web UI Handlers]] - [[_COMMUNITY_Go Error Handling|Go Error Handling]] - [[_COMMUNITY_CDP Browser Client|CDP Browser Client]] - [[_COMMUNITY_Go Code Style Guide|Go Code Style Guide]] - [[_COMMUNITY_Agent Skills|Agent Skills]] - [[_COMMUNITY_IO Performance Patterns|I/O Performance Patterns]] - [[_COMMUNITY_CPU Optimization|CPU Optimization]] - [[_COMMUNITY_Caching Patterns|Caching Patterns]] - [[_COMMUNITY_Browser Entrypoint|Browser Entrypoint]] - [[_COMMUNITY_Memory Allocation & GC|Memory Allocation & GC]] - [[_COMMUNITY_Cover Fetcher Tests|Cover Fetcher Tests]] - [[_COMMUNITY_Deployment & Cover ADRs|Deployment & Cover ADRs]] - [[_COMMUNITY_Find Skills Guide|Find Skills Guide]] - [[_COMMUNITY_Allocation Patterns|Allocation Patterns]] - [[_COMMUNITY_Observability & Alerting|Observability & Alerting]] - [[_COMMUNITY_PG Test Infrastructure|PG Test Infrastructure]] - [[_COMMUNITY_Domain Concepts|Domain Concepts]] - [[_COMMUNITY_Repo Hard Constraints|Repo Hard Constraints]] - [[_COMMUNITY_Go Testing Guide|Go Testing Guide]] - [[_COMMUNITY_Session Store|Session Store]] - [[_COMMUNITY_Web UI Filter Logic|Web UI Filter Logic]] - [[_COMMUNITY_Userscript Test Harness|Userscript Test Harness]] - [[_COMMUNITY_Product & Security Context|Product & Security Context]] - [[_COMMUNITY_UI Critique 2026-07-26A|UI Critique 2026-07-26A]] - [[_COMMUNITY_UI Critique 2026-07-26B|UI Critique 2026-07-26B]] - [[_COMMUNITY_DB Cutover Runbook|DB Cutover Runbook]] - [[_COMMUNITY_Memory Layout Patterns|Memory Layout Patterns]] - [[_COMMUNITY_Issue Tracker & Triage|Issue Tracker & Triage]] - [[_COMMUNITY_Ticket Workflow|Ticket Workflow]] - [[_COMMUNITY_Go Perf Alert Rules|Go Perf Alert Rules]] - [[_COMMUNITY_Userscript Display Logic|Userscript Display Logic]] - [[_COMMUNITY_Go Perf Skill Docs|Go Perf Skill Docs]] - [[_COMMUNITY_Login Page Art|Login Page Art]] - [[_COMMUNITY_BookmarkManager Logo|BookmarkManager Logo]] - [[_COMMUNITY_Skills CLI|Skills CLI]] - [[_COMMUNITY_Skills Leaderboard|Skills Leaderboard]] - [[_COMMUNITY_Complex Condition Extraction|Complex Condition Extraction]] - [[_COMMUNITY_Sentinel Errors|Sentinel Errors]] - [[_COMMUNITY_errors.As Patterns|errors.As Patterns]] - [[_COMMUNITY_errors.Is Patterns|errors.Is Patterns]] - [[_COMMUNITY_errors.Join Patterns|errors.Join Patterns]] - [[_COMMUNITY_Error Wrapping|Error Wrapping]] - [[_COMMUNITY_Single Error Handling|Single Error Handling]] - [[_COMMUNITY_SIMD Optimizations|SIMD Optimizations]] - [[_COMMUNITY_GOGC Tuning|GOGC Tuning]] - [[_COMMUNITY_GOMEMLIMIT|GOMEMLIMIT]] - [[_COMMUNITY_Bottleneck Decision Tree|Bottleneck Decision Tree]] - [[_COMMUNITY_pprof Profiling|pprof Profiling]] - [[_COMMUNITY_Test Timeout Helper|Test Timeout Helper]] - [[_COMMUNITY_httptest Patterns|httptest Patterns]] - [[_COMMUNITY_testify Suite Pattern|testify Suite Pattern]] - [[_COMMUNITY_goembed Fixtures|go:embed Fixtures]] - [[_COMMUNITY_clockwork Time Mocking|clockwork Time Mocking]] - [[_COMMUNITY_testify Mocking|testify Mocking]] - [[_COMMUNITY_t.ArtifactDir Helper|t.ArtifactDir Helper]] - [[_COMMUNITY_Subtests Pitfall|Subtests Pitfall]] - [[_COMMUNITY_golang-benchmark Skill|golang-benchmark Skill]] - [[_COMMUNITY_golang-concurrency Skill|golang-concurrency Skill]] - [[_COMMUNITY_golang-ci Skill|golang-ci Skill]] - [[_COMMUNITY_golang-database Skill|golang-database Skill]] - [[_COMMUNITY_golang-lint Skill|golang-lint Skill]] - [[_COMMUNITY_testify Skill|testify Skill]] - [[_COMMUNITY_Build Tag Integration Tests|Build Tag Integration Tests]] - [[_COMMUNITY_Test Naming Convention|Test Naming Convention]] - [[_COMMUNITY_UI Critique A Finding|UI Critique A Finding]] - [[_COMMUNITY_UI Critique B Finding|UI Critique B Finding]] - [[_COMMUNITY_P0 Overflow Bug|P0 Overflow Bug]] - [[_COMMUNITY_P1 hx-indicator Gap|P1 hx-indicator Gap]] - [[_COMMUNITY_golang-benchmark Skill (ext)|golang-benchmark Skill (ext)]] - [[_COMMUNITY_golang-concurrency Skill (ext)|golang-concurrency Skill (ext)]] - [[_COMMUNITY_golang-ci Skill (ext)|golang-ci Skill (ext)]] - [[_COMMUNITY_golang-data-structures Skill (ext)|golang-data-structures Skill (ext)]] - [[_COMMUNITY_golang-database Skill (ext)|golang-database Skill (ext)]] - [[_COMMUNITY_golang-design-patterns Skill (ext)|golang-design-patterns Skill (ext)]] - [[_COMMUNITY_golang-documentation Skill (ext)|golang-documentation Skill (ext)]] - [[_COMMUNITY_golang-gopls Skill (ext)|golang-gopls Skill (ext)]] - [[_COMMUNITY_golang-lint Skill (ext)|golang-lint Skill (ext)]] - [[_COMMUNITY_golang-naming Skill (ext)|golang-naming Skill (ext)]] - [[_COMMUNITY_golang-observability Skill (ext)|golang-observability Skill (ext)]] - [[_COMMUNITY_golang-refactoring Skill (ext)|golang-refactoring Skill (ext)]] - [[_COMMUNITY_golang-safety Skill (ext)|golang-safety Skill (ext)]] - [[_COMMUNITY_golang-samber-oops Skill (ext)|golang-samber-oops Skill (ext)]] - [[_COMMUNITY_golang-samber-slog Skill (ext)|golang-samber-slog Skill (ext)]] - [[_COMMUNITY_golang-structs-interfaces Skill (ext)|golang-structs-interfaces Skill (ext)]] - [[_COMMUNITY_golang-troubleshooting Skill (ext)|golang-troubleshooting Skill (ext)]] - [[_COMMUNITY_promql-cli Skill|promql-cli Skill]] - [[_COMMUNITY_Backend Module|Backend Module]] - [[_COMMUNITY_bookmark-api Service|bookmark-api Service]] - [[_COMMUNITY_AGENTS|AGENTS.md]] - [[_COMMUNITY_reviewer|reviewer.md]] - [[_COMMUNITY_Redeploy runbook|Redeploy runbook]] - [[_COMMUNITY_1. Backend|1. Backend]] - [[_COMMUNITY_Deployment|Deployment]] - [[_COMMUNITY_Cinder — BookmarkManager design system|Cinder — BookmarkManager design system]] - [[_COMMUNITY_Implement tickets|Implement tickets]] - [[_COMMUNITY_SQLite → Postgres cutover runbook|SQLite → Postgres cutover runbook]] - [[_COMMUNITY_Testing the userscript|Testing the userscript]] - [[_COMMUNITY_ADR-0007 The backend hosts every Site's Cover bytes|ADR-0007: The backend hosts every Site's Cover bytes]] - [[_COMMUNITY_Issue tracker Gitea (`tea` CLI)|Issue tracker: Gitea (`tea` CLI)]] - [[_COMMUNITY_ADR-0006 The browser runs on the home machine, over the tailnet|ADR-0006: The browser runs on the home machine, over the tailnet]] - [[_COMMUNITY_ADR-0008 A Series identity is discovered from the Site's links, never derived from an address|ADR-0008: A Series identity is discovered from the Site's links, never derived from an address]] - [[_COMMUNITY_Domain Docs|Domain Docs]] - [[_COMMUNITY_ticket-implementer|ticket-implementer.md]] - [[_COMMUNITY_implementer|implementer.md]] - [[_COMMUNITY_Series is a shared entity, and only the Poll may update it|Series is a shared entity, and only the Poll may update it]] - [[_COMMUNITY_Postgres replaces SQLite as the primary datastore|Postgres replaces SQLite as the primary datastore]] - [[_COMMUNITY_Identity comes from Discord OAuth; we store no passwords and send no email|Identity comes from Discord OAuth; we store no passwords and send no email]] - [[_COMMUNITY_The wire format stays flat and deliberately does not mirror the schema|The wire format stays flat and deliberately does not mirror the schema]] - [[_COMMUNITY_ADR-0005 On-demand browser sidecar|ADR-0005: On-demand browser sidecar]] - [[_COMMUNITY_AGENTS|AGENTS.md]] - [[_COMMUNITY_Bookmark Manager|Bookmark Manager]] - [[_COMMUNITY_triage-labels|triage-labels.md]] - [[_COMMUNITY_Cross-Ticket Contract|Cross-Ticket Contract]] - [[_COMMUNITY_Implement Tickets Skill|Implement Tickets Skill]] - [[_COMMUNITY_Orchestrator Role|Orchestrator Role]] - [[_COMMUNITY_resolving-merge-conflicts Skill|resolving-merge-conflicts Skill]] - [[_COMMUNITY_tdd Skill|tdd Skill]] - [[_COMMUNITY_Ticket Wave Batching|Ticket Wave Batching]] - [[_COMMUNITY_Four-Object Browser Stub|Four-Object Browser Stub]] - [[_COMMUNITY_Module Export Hook|Module Export Hook]] - [[_COMMUNITY_logic.test.js Test Harness|logic.test.js Test Harness]] - [[_COMMUNITY_manga-bookmark.user.js|manga-bookmark.user.js]] - [[_COMMUNITY_stripBuildHash|stripBuildHash]] - [[_COMMUNITY_Testing the Userscript Skill|Testing the Userscript Skill]] - [[_COMMUNITY_cr-spec Agent|cr-spec Agent]] - [[_COMMUNITY_cr-standards Agent|cr-standards Agent]] - [[_COMMUNITY_Escalate Rather Than Guess|Escalate Rather Than Guess]] - [[_COMMUNITY_Status Contract|Status Contract]] - [[_COMMUNITY_Ticket Implementer Agent|Ticket Implementer Agent]] - [[_COMMUNITY_Worktree Isolation|Worktree Isolation]] - [[_COMMUNITY_Escalate Rather Than Guess (opencode)|Escalate Rather Than Guess (opencode)]] - [[_COMMUNITY_Implementer Subagent (opencode)|Implementer Subagent (opencode)]] - [[_COMMUNITY_Subagent-Driven Development|Subagent-Driven Development]] - [[_COMMUNITY_Code Quality Review|Code Quality Review]] - [[_COMMUNITY_Reviewer Subagent (opencode)|Reviewer Subagent (opencode)]] - [[_COMMUNITY_Finding Severity Rubric|Finding Severity Rubric]] - [[_COMMUNITY_Spec Compliance Review|Spec Compliance Review]] - [[_COMMUNITY_CDP Browser Unit (chrome)|CDP Browser Unit (chrome/)]] - [[_COMMUNITY_Cinder Design System|Cinder Design System]] - [[_COMMUNITY_Cloudflare Challenge Behaviour|Cloudflare Challenge Behaviour]] - [[_COMMUNITY_Ember Means New Chapter Only|Ember Means New Chapter Only]] - [[_COMMUNITY_Gitea + tea CLI|Gitea + tea CLI]] - [[_COMMUNITY_Graphify Knowledge Graph|Graphify Knowledge Graph]] - [[_COMMUNITY_novel-bookmark.user.js|novel-bookmark.user.js]] - [[_COMMUNITY_Security Invariants|Security Invariants]] - [[_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_API Package (Bookmark JSON Handlers)|API Package (Bookmark JSON Handlers)]] - [[_COMMUNITY_Cover Acquisition & Serving Pipeline|Cover Acquisition & Serving Pipeline]] - [[_COMMUNITY_Backend AGENTS.md Guidance|Backend AGENTS.md Guidance]] - [[_COMMUNITY_HTTP Middleware (AuthGzipCORS)|HTTP Middleware (Auth/Gzip/CORS)]] - [[_COMMUNITY_Latest Package (Site Parsers & Poller)|Latest Package (Site Parsers & Poller)]] - [[_COMMUNITY_Latest-Chapter Poller|Latest-Chapter Poller]] - [[_COMMUNITY_Main Composition Root|Main Composition Root]] - [[_COMMUNITY_Migration-Owned Schema|Migration-Owned Schema]] - [[_COMMUNITY_Session Package (Cookie Signing & Rate Limit)|Session Package (Cookie Signing & Rate Limit)]] - [[_COMMUNITY_updated_at List-Order Rule|updated_at List-Order Rule]] - [[_COMMUNITY_Userscript Package (Serving Handler)|Userscript Package (Serving Handler)]] - [[_COMMUNITY_Backend CLAUDE.md Guidance|Backend CLAUDE.md Guidance]] - [[_COMMUNITY_Graphify Knowledge Graph (graphify-out)|Graphify Knowledge Graph (graphify-out/)]] - [[_COMMUNITY_CLAUDE.md (Symlink to AGENTS.md)|CLAUDE.md (Symlink to AGENTS.md)]] - [[_COMMUNITY_Chapter Slug|Chapter Slug]] - [[_COMMUNITY_CONTEXT.md Ubiquitous Language|CONTEXT.md Ubiquitous Language]] - [[_COMMUNITY_Favourite|Favourite]] - [[_COMMUNITY_Latest Chapter|Latest Chapter]] - [[_COMMUNITY_Library|Library]] - [[_COMMUNITY_Lifecycle Bucket|Lifecycle Bucket]] - [[_COMMUNITY_New Chapter|New Chapter]] - [[_COMMUNITY_Poll|Poll]] - [[_COMMUNITY_Progress|Progress]] - [[_COMMUNITY_Reader|Reader]] - [[_COMMUNITY_Series|Series]] - [[_COMMUNITY_Site|Site]] - [[_COMMUNITY_ADR-0001 (Drop modernc.orgsqlite)|ADR-0001 (Drop modernc.org/sqlite)]] - [[_COMMUNITY_ADR-0003 (Split Shared Series Facts)|ADR-0003 (Split Shared Series Facts)]] - [[_COMMUNITY_SQLite-to-Postgres Cutover Runbook|SQLite-to-Postgres Cutover Runbook]] - [[_COMMUNITY_Import SQL Generation Rules|Import SQL Generation Rules]] - [[_COMMUNITY_Throwaway Import Generator|Throwaway Import Generator]] - [[_COMMUNITY_ADR-0002 (Discord OAuth Sign-In)|ADR-0002 (Discord OAuth Sign-In)]] - [[_COMMUNITY_ADR-0006 (Browser Out of API Stack)|ADR-0006 (Browser Out of API Stack)]] - [[_COMMUNITY_ADR-0007 (Absolute Cover URLs)|ADR-0007 (Absolute Cover URLs)]] - [[_COMMUNITY_bookmark-api Service|bookmark-api Service]] - [[_COMMUNITY_Deployment Runbook|Deployment Runbook]] - [[_COMMUNITY_Issue 24 (Derived Credentials)|Issue #24 (Derived Credentials)]] - [[_COMMUNITY_Tailscale ACL Tagging|Tailscale ACL Tagging]] - [[_COMMUNITY_TOKEN_KEY Credential Derivation|TOKEN_KEY Credential Derivation]] - [[_COMMUNITY_Traefik Reverse Proxy|Traefik Reverse Proxy]] - [[_COMMUNITY_Real scaling limit is the poller outbound fetch budget|Real scaling limit is the poller outbound fetch budget]] - [[_COMMUNITY_PostgreSQL (jackcpgxv5)|PostgreSQL (jackc/pgx/v5)]] - [[_COMMUNITY_SQLite (modernc.orgsqlite)|SQLite (modernc.org/sqlite)]] - [[_COMMUNITY_Postgres chosen for future supportability, not concurrency|Postgres chosen for future supportability, not concurrency]] - [[_COMMUNITY_Per-Reader bearer token for userscripts|Per-Reader bearer token for userscripts]] - [[_COMMUNITY_Discord OAuth2 (authorization code grant)|Discord OAuth2 (authorization code grant)]] - [[_COMMUNITY_ADR-0002 Discord OAuth, no passwords, no email|ADR-0002: Discord OAuth, no passwords, no email]] - [[_COMMUNITY_Discord snowflake is the sole identity (lock-in)|Discord snowflake is the sole identity (lock-in)]] - [[_COMMUNITY_Bookmark (per-Reader state Progress, Favourite, Lifecycle)|Bookmark (per-Reader state: Progress, Favourite, Lifecycle)]] - [[_COMMUNITY_Deduplicate polling per Series (reader_count DESC queue)|Deduplicate polling per Series (reader_count DESC queue)]] - [[_COMMUNITY_ADR-0003 Series is shared, only the Poll updates it|ADR-0003: Series is shared, only the Poll updates it]] - [[_COMMUNITY_Only the Poll writes Series fields (security boundary)|Only the Poll writes Series fields (security boundary)]] - [[_COMMUNITY_Series (shared entity keyed site+series_id)|Series (shared entity keyed site+series_id)]] - [[_COMMUNITY_ADR-0004 Wire format stays flat, does not mirror schema|ADR-0004: Wire format stays flat, does not mirror schema]] - [[_COMMUNITY_Flat wire shape is a contract, not an implementation detail|Flat wire shape is a contract, not an implementation detail]] - [[_COMMUNITY_Installed userscripts must keep working (14-day grace window)|Installed userscripts must keep working (14-day grace window)]] - [[_COMMUNITY_CDP (Chrome DevTools Protocol) endpoint|CDP (Chrome DevTools Protocol) endpoint]] - [[_COMMUNITY_headless-shell service (socat-fronted CDP)|headless-shell service (socat-fronted CDP)]] - [[_COMMUNITY_Start Chrome on first CDP connection, reap after 300s idle|Start Chrome on first CDP connection, reap after 300s idle]] - [[_COMMUNITY_BROWSER_WS_URL configuration seam|BROWSER_WS_URL configuration seam]] - [[_COMMUNITY_ADR-0006 Browser runs on the home machine over the tailnet|ADR-0006: Browser runs on the home machine over the tailnet]] - [[_COMMUNITY_Browser moved home VPS memory pressure, no requests served|Browser moved home: VPS memory pressure, no requests served]] - [[_COMMUNITY_Tailnet (Tailscale network)|Tailnet (Tailscale network)]] - [[_COMMUNITY_Content-addressed filesystem storage (SHA-256 of source URL)|Content-addressed filesystem storage (SHA-256 of source URL)]] - [[_COMMUNITY_Cover (Series image bytes)|Cover (Series image bytes)]] - [[_COMMUNITY_Deny-class destination control for outbound fetch|Deny-class destination control for outbound fetch]] - [[_COMMUNITY_ADR-0007 Backend hosts every Site's Cover bytes|ADR-0007: Backend hosts every Site's Cover bytes]] - [[_COMMUNITY_kagane CORP same-origin cover restriction|kagane CORP same-origin cover restriction]] - [[_COMMUNITY_Backend acquires, stores, serves every Cover (uniformity)|Backend acquires, stores, serves every Cover (uniformity)]] - [[_COMMUNITY_aaria-label='All Chapter' anchor pointer|a[aria-label='All Chapter'] anchor pointer]] - [[_COMMUNITY_Series identity is discovered from the Site's links|Series identity is discovered from the Site's links]] - [[_COMMUNITY_ADR-0008 Series identity discovered, never derived|ADR-0008: Series identity discovered, never derived]] - [[_COMMUNITY_Chapter slug vs series slug divergence (~7% measured)|Chapter slug vs series slug divergence (~7% measured)]] - [[_COMMUNITY_Scan truncated at first wpd-threads marker|Scan truncated at first wpd-threads marker]] - [[_COMMUNITY_Surface ADR conflicts explicitly rather than silently overriding|Surface ADR conflicts explicitly rather than silently overriding]] - [[_COMMUNITY_Domain docs single-context layout guidance|Domain docs: single-context layout guidance]] - [[_COMMUNITY_domain-modeling skill (lazy CONTEXT.md creation)|/domain-modeling skill (lazy CONTEXT.md creation)]] - [[_COMMUNITY_CONTEXT.md glossary (ubiquitous language)|CONTEXT.md glossary (ubiquitous language)]] - [[_COMMUNITY_Gitea (tea CLI, gitea.violetcrown.my.id)|Gitea (tea CLI, gitea.violetcrown.my.id)]] - [[_COMMUNITY_wayfinder mapticket mechanism|wayfinder map/ticket mechanism]] - [[_COMMUNITY_Triage labels canonical roles to tracker labels|Triage labels: canonical roles to tracker labels]] - [[_COMMUNITY_Canonical triage role labels (needs-triage ... wontfix)|Canonical triage role labels (needs-triage ... wontfix)]] - [[_COMMUNITY_Cinder (BookmarkManager Web UI design system)|Cinder (BookmarkManager Web UI design system)]] - [[_COMMUNITY_Heat is typographic ember reserved for unread chapters|Heat is typographic: ember reserved for unread chapters]] - [[_COMMUNITY_Design tokens (dark + light branches, no hardcoded hex)|Design tokens (dark + light branches, no hardcoded hex)]] - [[_COMMUNITY_Three type roles display serif mono small-caps sans|Three type roles: display serif / mono small-caps / sans]] - [[_COMMUNITY_aaria-label='All Chapter' priority pointer|a[aria-label='All Chapter'] priority pointer]] - [[_COMMUNITY_Research lightnovelworld chapter slug vs series slug|Research: lightnovelworld chapter slug vs series slug]] - [[_COMMUNITY_Gitea issue 77 (chapter vs series slug)|Gitea issue #77 (chapter vs series slug)]] - [[_COMMUNITY_Slug divergence measurements (341 diverge, 1 split)|Slug divergence measurements (3/41 diverge, 1 split)]] - [[_COMMUNITY_Unscoped chapter regex is SAFE, truncated at wpd-threads|Unscoped chapter regex is SAFE, truncated at wpd-threads]] - [[_COMMUNITY_BookmarkManager|BookmarkManager]] - [[_COMMUNITY_Bromite (Primary Device)|Bromite (Primary Device)]] - [[_COMMUNITY_Dark-First Design Constraint|Dark-First Design Constraint]] - [[_COMMUNITY_Discord Guild Membership|Discord Guild Membership]] - [[_COMMUNITY_Reader Isolation Invariant|Reader Isolation Invariant]] - [[_COMMUNITY_Site Adapters|Site Adapters]] - [[_COMMUNITY_Go Backend (backend)|Go Backend (backend/)]] - [[_COMMUNITY_localStorage Cache and Retry Queue|localStorage Cache and Retry Queue]] - [[_COMMUNITY_Latest Chapter Poller|Latest Chapter Poller]] - [[_COMMUNITY_Postgres Store (postgres17-alpine)|Postgres Store (postgres:17-alpine)]] - [[_COMMUNITY_README Config and Endpoint Reference|README Config and Endpoint Reference]] - [[_COMMUNITY_Browser Unit Redeploy|Browser Unit Redeploy]] - [[_COMMUNITY_pg_dump Hot Backup|pg_dump Hot Backup]] - [[_COMMUNITY_Redeploy Runbook|Redeploy Runbook]] - [[_COMMUNITY_Rollback Strategy|Rollback Strategy]] - [[_COMMUNITY_Bearer-token API client (apiGetapiPutapiDelete)|Bearer-token API client (apiGet/apiPut/apiDelete)]] - [[_COMMUNITY_Userscript AGENTS guidance|Userscript AGENTS guidance]] - [[_COMMUNITY_manga-bookmark.user.js (single-IIFE manga script)|manga-bookmark.user.js (single-IIFE manga script)]] - [[_COMMUNITY_novel-bookmark.user.js (novel script, bmgrnovel)|novel-bookmark.user.js (novel script, bmgr:novel:)]] - [[_COMMUNITY_Offline retry queue (bmgrmangaqueue markers)|Offline retry queue (bmgr:manga:queue markers)]] - [[_COMMUNITY_Shadow DOM UI isolation from site CSS|Shadow DOM UI isolation from site CSS]] - [[_COMMUNITY_Site adapters (URL-regex detect, ogtitle)|Site adapters (URL-regex detect, og:title)]] - [[_COMMUNITY_Userscript CLAUDE guidance|Userscript CLAUDE guidance]] ## 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()` - 33 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) - `Browser Sidecar Service` --semantically_similar_to--> `Browser Sidecar (BROWSER_WS_URL)` [INFERRED] [semantically similar] chrome/docker-compose.yml → backend/AGENTS.md - `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 ## Import Cycles - None detected. ## Hyperedges (group relationships) - **Batch Ticket Implementation Pipeline** — _claude_skills_implement_tickets_skill_implement_tickets, _omp_agents_ticket_implementer_ticket_implementer, _omp_agents_ticket_implementer_cr_spec, _omp_agents_ticket_implementer_cr_standards [INFERRED 0.85] - **Subagent-Driven Development Pipeline** — _opencode_agent_implementer_implementer, _opencode_agent_reviewer_reviewer, _opencode_agent_implementer_subagent_driven_development [INFERRED 0.85] - **Deployment Runbook Family** — cutover_cutover, deploy_deploy, redeploy_redeploy [INFERRED 0.85] - **Go HTML Template Family** — backend_internal_web_templates_app_doc, backend_internal_web_templates_card_doc, backend_internal_web_templates_list_doc, backend_internal_web_templates_chrome_doc, backend_internal_web_templates_login_doc, backend_internal_web_templates_setup_doc, backend_internal_web_templates_readers_doc, backend_internal_web_templates_icons_doc [INFERRED 0.95] - **htmx Fragment Swap Flow** — backend_internal_web_templates_app_doc, backend_internal_web_templates_card_doc, backend_internal_web_templates_chrome_doc, backend_internal_web_templates_setup_doc, backend_internal_web_templates_readers_doc [INFERRED 0.95] - **Deployment Topology** — docker_compose_bookmark_api, docker_compose_postgres, docker_compose_prod_traefik, chrome_docker_compose_browser, docker_compose_db_network [INFERRED 0.95] - **Backend owns the truth (single-writer ownership of shared facts)** — docs_adr_0003_series_shared_and_poll_owned_poll_owned_writes, docs_adr_0004_wire_format_does_not_mirror_the_schema_flat_wire_contract, docs_adr_0007_backend_hosts_cover_bytes_server_side_covers [INFERRED 0.85] - **Headless browser infrastructure (sidecar, on-demand, home deployment)** — docs_adr_0005_on_demand_browser_headless_shell, docs_adr_0005_on_demand_browser_cdp, docs_adr_0005_on_demand_browser_on_demand_start, docs_adr_0006_browser_on_the_home_machine_home_machine_rationale [INFERRED 0.85] - **lightnovelworld series-identity investigation and fix** — docs_research_lightnovelworld_chapter_vs_series_slug_issue_77, docs_research_lightnovelworld_chapter_vs_series_slug_unscoped_regex, docs_adr_0008_series_identity_is_discovered_not_derived_discovered_identity [INFERRED 0.85] ## Communities (277 total, 215 thin omitted) ### Community 0 - "HTMX Library Internals" Cohesion: 0.08 Nodes (101): A(), ae(), an(), at(), B(), be(), bn(), bt() (+93 more) ### Community 1 - "Cover Fetch Test Helpers" Cohesion: 0.10 Nodes (84): floatPtr(), testConfig(), getCover(), Cookie, Handler, ResponseRecorder, T, TestListRendersAcquiredCover() (+76 more) ### Community 2 - "Manga Userscript Adapters" Cohesion: 0.06 Nodes (76): adapterFor(), anchorsFromDocument(), anchorsFromHTML(), apiDelete(), apiGet(), apiPut(), applyFabPos(), applyLatestChapterIfChanged() (+68 more) ### Community 3 - "Novel Userscript Adapters" Cohesion: 0.06 Nodes (79): adapterFor(), anchorsFromDocument(), anchorsFromHTML(), apiDelete(), apiGet(), apiPut(), applyFabPos(), applyLatestChapterIfChanged() (+71 more) ### Community 4 - "Series Acquisition Tests" Cohesion: 0.10 Nodes (67): bookmarkNewKaganeSeries(), bookmarkNewNovelfullSeries(), bookmarkNewSeries(), Context, Store, T, newAcquirer(), readBookmark() (+59 more) ### Community 5 - "Bookmarks API Tests" Cohesion: 0.08 Nodes (67): auth(), getBookmarks(), Handler, Request, Store, T, newTestServer(), newTestStore() (+59 more) ### Community 7 - "Cover & Acquire Internals" Cohesion: 0.08 Nodes (40): Addr, Context, Store, defaultCoverResolver(), fetchCoverBytes(), Client, Context, NewCoverFetcher() (+32 more) ### Community 8 - "System Architecture Concepts" Cohesion: 0.10 Nodes (26): Confirm-Gated Destructive Actions, Discord OAuth & Guild-Membership Gate, Lifecycle Buckets (reading/archived/finished), Reader-Owned Store, HMAC-Derived Reader Credentials, Web Package (Browser UI + Templates), app.html — App Shell Template, Manga/Novel Library Switch (+18 more) ### Community 9 - "Session Middleware" Cohesion: 0.08 Nodes (35): ClearCookie(), ClientIP(), Duration, Mutex, Request, ResponseWriter, Time, isHTTPS() (+27 more) ### Community 10 - "Go 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 11 - "Store Tests" Cohesion: 0.05 Nodes (75): T, TestCreateAndGetSession(), TestDeleteSessionIsPerReader(), TestDeleteSessionRevokes(), TestExpiredSessionIsGone(), TestGetSessionUnknownID(), applyMigration(), CoverContentType() (+67 more) ### Community 12 - "Bookmarks API Handler" Cohesion: 0.08 Nodes (32): Handler, Request, ResponseWriter, Store, Healthz(), writeJSON(), Auth(), compressible() (+24 more) ### Community 13 - "Web UI Handlers" Cohesion: 0.14 Nodes (18): currentLib(), currentTab(), filterBookmarks(), Client, HandlerFunc, Request, ResponseWriter, Store (+10 more) ### Community 14 - "Go Error Handling" 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 15 - "CDP Browser Client" Cohesion: 0.08 Nodes (29): Action, awaitPromise(), browserConnectionLost(), classifyBrowserError(), Context, Mutex, isInterstitial(), jsString() (+21 more) ### Community 17 - "Go Code Style Guide" 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 20 - "I/O Performance Patterns" 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 21 - "CPU Optimization" 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 22 - "Caching 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 23 - "Browser Entrypoint" Cohesion: 0.35 Nodes (14): browser_alive(), connection(), connection_signal(), finish_connection(), has_connections(), lock(), reaper(), entrypoint.sh script (+6 more) ### Community 24 - "Memory Allocation & GC" 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 25 - "Cover Fetcher Tests" Cohesion: 0.33 Nodes (12): coverResponse(), Request, T, TestCoverFetcherCanonicalisesJpgAlias(), TestCoverFetcherFetchesPublicHTTPSImage(), TestCoverFetcherRefusesUnsafeDestinationsBeforeRequest(), TestCoverFetcherRejectsNonImage(), TestCoverFetcherRejectsOversizedBody() (+4 more) ### Community 27 - "Find Skills Guide" 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 28 - "Allocation Patterns" 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 29 - "Observability & Alerting" 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 30 - "PG Test Infrastructure" Cohesion: 0.18 Nodes (12): M, TestMain(), M, TestMain(), M, Main(), start(), URL() (+4 more) ### Community 33 - "Go Testing Guide" 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 34 - "Session Store" Cohesion: 0.28 Nodes (4): Duration, Store, Time, Session ### Community 35 - "Web UI Filter Logic" Cohesion: 0.31 Nodes (5): closeCardPanels(), setActiveTab(), toggleChapterForm(), toggleConfirmRow(), togglePanel() ### Community 37 - "Product & Security Context" Cohesion: 0.17 Nodes (11): Accessibility & Inclusion, Brand Commitments, Capabilities and Constraints, Evidence on Hand, Operating Context, Platform, Positioning, Product (+3 more) ### Community 39 - "UI Critique 2026-07-26A" Cohesion: 0.29 Nodes (6): Design Health Score, Design Specificity Verdict, Minor Observations, Persona Red Flags, Priority Issues, Questions to Consider ### Community 40 - "UI Critique 2026-07-26B" Cohesion: 0.29 Nodes (6): Design Health Score, Design Specificity Verdict, Minor Observations, Persona Red Flags, Priority Issues, Questions to Consider ### Community 42 - "Memory Layout Patterns" 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 45 - "Go Perf Alert Rules" Cohesion: 0.50 Nodes (4): Prometheus Alerting Rules (Go Performance), GoroutineLeak Alert, HighGCPauseTime Alert, MemoryNearLimit Alert ### Community 46 - "Userscript Display Logic" 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 47 - "Go Perf Skill Docs" 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 48 - "Login Page Art" Cohesion: 0.67 Nodes (3): Fantasy Sword, Fiery Volcanic Scene, Login Art: Sword in Volcanic Rock ### Community 49 - "BookmarkManager Logo" Cohesion: 1.00 Nodes (3): Mirrored Double Bookmark Mark, Ember Flame Accent, BookmarkManager Logo ### Community 103 - "bookmark-api Service" Cohesion: 0.18 Nodes (16): Backend Go Service (stdlib net/http), Browser Sidecar (BROWSER_WS_URL), Store Package (Postgres Persistence), Browser Sidecar Service, CDP Endpoint (Tailnet-Bound :9222), Persistent Chrome Profile Volume, chrome/docker-compose.yml — Browser Deployable Unit, bookmark-api Service (+8 more) ### Community 104 - "AGENTS.md" Cohesion: 0.12 Nodes (15): Agent skills, AGENTS.md, Architecture, Commands, Comments, Design system, Domain docs, Forge: Gitea, not GitHub (+7 more) ### Community 105 - "reviewer.md" Cohesion: 0.12 Nodes (15): Assessment, Calibration, Critical (Must Fix), Do Not Trust the Report, Important (Should Fix), Inputs, Issues, Method (+7 more) ### Community 106 - "Redeploy runbook" 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 107 - "1. Backend" 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 108 - "Deployment" 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 109 - "Cinder — BookmarkManager design system" 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 110 - "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 # — ### Community 111 - "SQLite → Postgres cutover runbook" 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 112 - "Testing the userscript" Cohesion: 0.29 Nodes (6): Adding a test, Commands, Gotchas, How the harness works, Testing the userscript, What is NOT testable here ### Community 113 - "ADR-0007: The backend hosts every Site's Cover bytes" 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 114 - "Issue tracker: Gitea (`tea` CLI)" 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 115 - "ADR-0006: The browser runs on the home machine, over the tailnet" Cohesion: 0.33 Nodes (5): ADR-0006: The browser runs on the home machine, over the tailnet, Consequences, Constraints, Decision, Why ### Community 116 - "ADR-0008: A Series identity is discovered from the Site's links, never derived from an address" 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 117 - "Domain Docs" Cohesion: 0.33 Nodes (5): Before exploring, read these, Domain Docs, File structure, Flag ADR conflicts, Use the glossary's vocabulary ### Community 118 - "ticket-implementer.md" Cohesion: 0.33 Nodes (5): Escalate rather than guess, Order of work, Report, Review, The worktree is your whole world ### Community 119 - "implementer.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 120 - "Series is a shared entity, and only the Poll may update it" 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 121 - "Postgres replaces SQLite as the primary datastore" Cohesion: 0.50 Nodes (3): Consequences, Considered options, Postgres replaces SQLite as the primary datastore ### Community 122 - "Identity comes from Discord OAuth; we store no passwords and send no email" Cohesion: 0.50 Nodes (3): Consequences, Considered options, Identity comes from Discord OAuth; we store no passwords and send no email ### Community 123 - "The wire format stays flat and deliberately does not mirror the schema" 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 124 - "ADR-0005: On-demand browser sidecar" Cohesion: 0.50 Nodes (3): ADR-0005: On-demand browser sidecar, Constraints, Decision ### Community 125 - "AGENTS.md" 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`) ## Knowledge Gaps - **545 isolated node(s):** `bookmarkmanager/backend`, `ctxKey`, `loginView`, `ctxKey`, `test` (+540 more) These have ≤1 connection - possible missing edges or undocumented components. - **215 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 `Series Acquisition Tests` to `Bookmarks API Tests`, `Cover & Acquire Internals`, `Session Middleware`, `Store Tests`, `Web UI Handlers`?** _High betweenness centrality (0.041) - this node is a cross-community bridge._ - **Why does `Open()` connect `Store Tests` to `Cover Fetch Test Helpers`, `Series Acquisition Tests`, `Bookmarks API Tests`, `PG Test Infrastructure`?** _High betweenness centrality (0.035) - this node is a cross-community bridge._ - **Why does `newRouter()` connect `Bookmarks API Tests` to `Cover Fetch Test Helpers`, `Bookmarks API Handler`, `Series Acquisition Tests`?** _High betweenness centrality (0.022) - 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?** _589 weakly-connected nodes found - possible documentation gaps or missing edges._