{ "0": "HTMX Library Internals", "1": "Cover Fetch Test Helpers", "2": "Manga Userscript Adapters", "3": "Novel Userscript Adapters", "4": "Series Acquisition Tests", "5": "Bookmarks API Tests", "6": "Storage Choice ADR", "7": "Cover & Acquire Internals", "8": "System Architecture Concepts", "9": "Session Middleware", "10": "Go Test Helpers", "11": "Store Tests", "12": "Bookmarks API Handler", "13": "Web UI Handlers", "14": "Go Error Handling", "15": "CDP Browser Client", "16": "Store", "17": "Go Code Style Guide", "18": "Agent Skills", "19": "Open", "20": "I/O Performance Patterns", "21": "CPU Optimization", "22": "Caching Patterns", "23": "Browser Entrypoint", "24": "Memory Allocation & GC", "25": "Cover Fetcher Tests", "26": "readSeries", "27": "Find Skills Guide", "28": "Allocation Patterns", "29": "Observability & Alerting", "30": "PG Test Infrastructure", "32": "Repo Hard Constraints", "33": "Go Testing Guide", "34": "Session Store", "35": "Web UI Filter Logic", "36": "Userscript Test Harness", "37": "Product & Security Context", "38": "novel-logic.test.js", "39": "UI Critique 2026-07-26A", "40": "UI Critique 2026-07-26B", "41": "DB Cutover Runbook", "42": "Memory Layout Patterns", "43": "Issue Tracker & Triage", "44": "Ticket Workflow", "45": "Go Perf Alert Rules", "46": "Userscript Display Logic", "47": "Go Perf Skill Docs", "48": "Login Page Art", "49": "BookmarkManager Logo", "50": "Skills CLI", "51": "Skills Leaderboard", "52": "Complex Condition Extraction", "53": "Sentinel Errors", "54": "errors.As Patterns", "55": "errors.Is Patterns", "56": "errors.Join Patterns", "57": "Error Wrapping", "58": "Single Error Handling", "59": "SIMD Optimizations", "60": "GOGC Tuning", "61": "GOMEMLIMIT", "62": "Bottleneck Decision Tree", "63": "pprof Profiling", "64": "Test Timeout Helper", "65": "httptest Patterns", "66": "testify Suite Pattern", "67": "go:embed Fixtures", "68": "clockwork Time Mocking", "69": "testify Mocking", "70": "t.ArtifactDir Helper", "71": "Subtests Pitfall", "72": "golang-benchmark Skill", "73": "golang-concurrency Skill", "74": "golang-ci Skill", "75": "golang-database Skill", "76": "golang-lint Skill", "77": "testify Skill", "78": "Build Tag Integration Tests", "79": "Test Naming Convention", "80": "UI Critique A Finding", "81": "UI Critique B Finding", "82": "P0 Overflow Bug", "83": "P1 hx-indicator Gap", "84": "golang-benchmark Skill (ext)", "85": "golang-concurrency Skill (ext)", "86": "golang-ci Skill (ext)", "87": "golang-data-structures Skill (ext)", "88": "golang-database Skill (ext)", "89": "golang-design-patterns Skill (ext)", "90": "golang-documentation Skill (ext)", "91": "golang-gopls Skill (ext)", "92": "golang-lint Skill (ext)", "93": "golang-naming Skill (ext)", "94": "golang-observability Skill (ext)", "95": "golang-refactoring Skill (ext)", "96": "golang-safety Skill (ext)", "97": "golang-samber-oops Skill (ext)", "98": "golang-samber-slog Skill (ext)", "99": "golang-structs-interfaces Skill (ext)", "100": "golang-troubleshooting Skill (ext)", "101": "promql-cli Skill", "102": "Backend Module", "103": "bookmark-api Service", "104": "AGENTS.md", "105": "reviewer.md", "106": "Redeploy runbook", "107": "1. Backend", "108": "Deployment", "109": "Cinder — BookmarkManager design system", "110": "Implement tickets", "111": "SQLite → Postgres cutover runbook", "112": "Testing the userscript", "113": "ADR-0007: The backend hosts every Site's Cover bytes", "114": "Issue tracker: Gitea (`tea` CLI)", "115": "ADR-0006: The browser runs on the home machine, over the tailnet", "116": "ADR-0008: A Series identity is discovered from the Site's links, never derived from an address", "117": "Domain Docs", "118": "ticket-implementer.md", "119": "implementer.md", "120": "Series is a shared entity, and only the Poll may update it", "121": "Postgres replaces SQLite as the primary datastore", "122": "Identity comes from Discord OAuth; we store no passwords and send no email", "123": "The wire format stays flat and deliberately does not mirror the schema", "124": "ADR-0005: On-demand browser sidecar", "126": "Bookmark Manager", "127": "triage-labels.md", "128": "Cross-Ticket Contract", "129": "Implement Tickets Skill", "130": "Orchestrator Role", "131": "resolving-merge-conflicts Skill", "132": "tdd Skill", "133": "Ticket Wave Batching", "134": "Four-Object Browser Stub", "135": "Module Export Hook", "136": "logic.test.js Test Harness", "137": "manga-bookmark.user.js", "138": "stripBuildHash", "139": "Testing the Userscript Skill", "140": "cr-spec Agent", "141": "cr-standards Agent", "142": "Escalate Rather Than Guess", "143": "Status Contract", "144": "Ticket Implementer Agent", "145": "Worktree Isolation", "146": "Escalate Rather Than Guess (opencode)", "147": "Implementer Subagent (opencode)", "148": "Subagent-Driven Development", "149": "Code Quality Review", "150": "Reviewer Subagent (opencode)", "151": "Finding Severity Rubric", "152": "Spec Compliance Review", "153": "CDP Browser Unit (chrome/)", "154": "Cinder Design System", "155": "Cloudflare Challenge Behaviour", "156": "Ember Means New Chapter Only", "157": "Gitea + tea CLI", "158": "Graphify Knowledge Graph", "159": "novel-bookmark.user.js", "160": "Security Invariants", "161": "Why Use samber/oops", "162": "singleflight Cache Stampede Prevention", "163": "Struct Field Alignment", "164": "testing/synctest Deterministic Goroutine Testing", "165": "API Package (Bookmark JSON Handlers)", "166": "Cover Acquisition & Serving Pipeline", "167": "Backend AGENTS.md Guidance", "168": "HTTP Middleware (Auth/Gzip/CORS)", "169": "Latest Package (Site Parsers & Poller)", "170": "Latest-Chapter Poller", "171": "Main Composition Root", "172": "Migration-Owned Schema", "173": "Session Package (Cookie Signing & Rate Limit)", "174": "updated_at List-Order Rule", "175": "Userscript Package (Serving Handler)", "176": "AGENTS.md", "177": "Backend CLAUDE.md Guidance", "178": "Graphify Knowledge Graph (graphify-out/)", "179": "CLAUDE.md (Symlink to AGENTS.md)", "192": "ADR-0001 (Drop modernc.org/sqlite)", "193": "ADR-0003 (Split Shared Series Facts)", "194": "SQLite-to-Postgres Cutover Runbook", "195": "Import SQL Generation Rules", "196": "Throwaway Import Generator", "197": "ADR-0002 (Discord OAuth Sign-In)", "198": "ADR-0006 (Browser Out of API Stack)", "199": "ADR-0007 (Absolute Cover URLs)", "200": "bookmark-api Service", "201": "Deployment Runbook", "202": "Issue #24 (Derived Credentials)", "203": "Tailscale ACL Tagging", "204": "TOKEN_KEY Credential Derivation", "205": "Traefik Reverse Proxy", "206": "Real scaling limit is the poller outbound fetch budget", "207": "PostgreSQL (jackc/pgx/v5)", "208": "SQLite (modernc.org/sqlite)", "209": "Postgres chosen for future supportability, not concurrency", "210": "Per-Reader bearer token for userscripts", "211": "Discord OAuth2 (authorization code grant)", "212": "ADR-0002: Discord OAuth, no passwords, no email", "213": "Discord snowflake is the sole identity (lock-in)", "214": "Bookmark (per-Reader state: Progress, Favourite, Lifecycle)", "215": "Deduplicate polling per Series (reader_count DESC queue)", "216": "ADR-0003: Series is shared, only the Poll updates it", "217": "Only the Poll writes Series fields (security boundary)", "218": "Series (shared entity keyed site+series_id)", "219": "ADR-0004: Wire format stays flat, does not mirror schema", "220": "Flat wire shape is a contract, not an implementation detail", "221": "Installed userscripts must keep working (14-day grace window)", "222": "CDP (Chrome DevTools Protocol) endpoint", "223": "headless-shell service (socat-fronted CDP)", "224": "Start Chrome on first CDP connection, reap after 300s idle", "225": "BROWSER_WS_URL configuration seam", "226": "ADR-0006: Browser runs on the home machine over the tailnet", "227": "Browser moved home: VPS memory pressure, no requests served", "228": "Tailnet (Tailscale network)", "229": "Content-addressed filesystem storage (SHA-256 of source URL)", "230": "Cover (Series image bytes)", "231": "Deny-class destination control for outbound fetch", "232": "ADR-0007: Backend hosts every Site's Cover bytes", "233": "kagane CORP same-origin cover restriction", "234": "Backend acquires, stores, serves every Cover (uniformity)", "235": "a[aria-label='All Chapter'] anchor pointer", "236": "Series identity is discovered from the Site's links", "237": "ADR-0008: Series identity discovered, never derived", "238": "Chapter slug vs series slug divergence (~7% measured)", "239": "Scan truncated at first wpd-threads marker", "240": "Surface ADR conflicts explicitly rather than silently overriding", "241": "Domain docs: single-context layout guidance", "242": "/domain-modeling skill (lazy CONTEXT.md creation)", "243": "CONTEXT.md glossary (ubiquitous language)", "244": "Gitea (tea CLI, gitea.violetcrown.my.id)", "245": "wayfinder map/ticket mechanism", "246": "Triage labels: canonical roles to tracker labels", "247": "Canonical triage role labels (needs-triage ... wontfix)", "248": "Cinder (BookmarkManager Web UI design system)", "249": "Heat is typographic: ember reserved for unread chapters", "250": "Design tokens (dark + light branches, no hardcoded hex)", "251": "Three type roles: display serif / mono small-caps / sans", "252": "a[aria-label='All Chapter'] priority pointer", "253": "Research: lightnovelworld chapter slug vs series slug", "254": "Gitea issue #77 (chapter vs series slug)", "255": "Slug divergence measurements (3/41 diverge, 1 split)", "256": "Unscoped chapter regex is SAFE, truncated at wpd-threads", "257": "BookmarkManager", "258": "Bromite (Primary Device)", "259": "Dark-First Design Constraint", "260": "Discord Guild Membership", "261": "Reader Isolation Invariant", "262": "Site Adapters", "263": "Go Backend (backend/)", "264": "localStorage Cache and Retry Queue", "265": "Latest Chapter Poller", "266": "Postgres Store (postgres:17-alpine)", "267": "README Config and Endpoint Reference", "268": "Browser Unit Redeploy", "269": "pg_dump Hot Backup", "270": "Redeploy Runbook", "271": "Rollback Strategy", "273": "AGENTS.md", "279": "Userscript CLAUDE guidance" }