224 lines
9.0 KiB
JSON
224 lines
9.0 KiB
JSON
{
|
|
"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": "Cloudflare bot scoring and poll cadence — what is actually documented",
|
|
"17": "Go Code Style Guide",
|
|
"18": "Agent Skills",
|
|
"19": "Store",
|
|
"20": "I/O Performance Patterns",
|
|
"21": "CPU Optimization",
|
|
"22": "Caching Patterns",
|
|
"23": "Browser Entrypoint",
|
|
"24": "Memory Allocation & GC",
|
|
"25": "Cover Fetcher Tests",
|
|
"26": "Open",
|
|
"27": "Find Skills Guide",
|
|
"28": "Allocation Patterns",
|
|
"29": "Observability & Alerting",
|
|
"30": "AGENTS.md",
|
|
"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": "sessions_test.go",
|
|
"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",
|
|
"158": "T",
|
|
"161": "Why Use samber/oops",
|
|
"162": "singleflight Cache Stampede Prevention",
|
|
"163": "Struct Field Alignment",
|
|
"164": "testing/synctest Deterministic Goroutine Testing",
|
|
"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",
|
|
"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",
|
|
"273": "AGENTS.md",
|
|
"279": "Userscript CLAUDE guidance"
|
|
}
|