go-help/TODO.md
Snider b6da16c717 docs: enrich TODO.md with Phase 0 hardening tasks
Add Phase 0 before existing phases: expand parser/search tests,
add benchmarks, vet clean. Specific test cases listed.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-20 00:28:43 +00:00

1.8 KiB

TODO.md — go-help

Dispatched from core/go orchestration. Pick up tasks in order.


Phase 0: Hardening & Test Coverage

  • Expand parser testsparser_test.go exists but coverage unknown. Add tests for: empty input, frontmatter-only (no body), malformed YAML frontmatter, deeply nested headings (####, #####), Unicode content, very long documents (10K+ lines).
  • Expand search testssearch_test.go exists. Add tests for: empty query, no results, case sensitivity, multi-word queries, special characters in query, overlapping matches, scoring boundary cases (exact title match vs partial body match).
  • Benchmark search — Add BenchmarkSearch with catalog of 100+ topics. Measure search latency and allocation count. Baseline for Phase 1 improvements.
  • go vet ./... clean — Verify no vet warnings. Fix any found.

Phase 1: Search Improvements

  • Add fuzzy matching (Levenshtein distance or similar)
  • Add stemming support for English search terms
  • Add phrase search (quoted multi-word queries)
  • Improve scoring weights — currently title +10, section +5, partial +0.5

Phase 2: core.help Integration

  • Feed CLI docs into help catalog (parse core subcommand help text)
  • Serve catalog via HTTP for the core.help domain
  • Add Markdown rendering for topic bodies in HTTP responses
  • Generate static site from catalog for BunnyCDN deployment
  • Embed help topics into go-rag collections for semantic search
  • Add vector similarity fallback when keyword search returns no results
  • Support natural language queries ("how do I push all repos?")

Workflow

  1. Virgil in core/go writes tasks here after research
  2. This repo's dedicated session picks up tasks in phase order
  3. Mark [x] when done, note commit hash