9d roadmap · 4 milestones

9-Day Reset

A short sprint to break inertia. End the nine days with one real artifact — a working BM25 search — and the loop muscle memory restored.

Outcome: Rebuild learning momentum by taking one concept all the way to a shipped artifact.

Search & IR

How to work this roadmap

Treat each milestone as a claim that must be supported by evidence. Before reading, write what you think the mechanism does and where it will fail. After studying the linked concepts, run the drills without copying an answer, preserve the output, and revise the explanation. Move forward when you can connect the milestone goal to a working implementation, benchmark, architecture decision, or reviewable design artifact.

The 9d horizon is a sequencing aid, not a completion badge. Spend more time where your prediction and the observed behavior disagree. Keep a short decision log containing the mechanism selected, alternatives rejected, expected failure mode, measurement used, and remaining uncertainty. Review that log with FSRS prompts so the roadmap produces durable system judgment rather than a temporary tour of terminology.

At the end, explain Rebuild learning momentum by taking one concept all the way to a shipped artifact. from first principles to a reader outside the domain. A strong explanation should survive follow-up questions about correctness, cost, latency, resource use, security, recovery, and operational visibility. If it cannot, return to the milestone that contains the missing mechanism and build a smaller falsifiable example.

Milestones

Milestone 3

Days 4-6 — Build

Implement a working BM25 ranker on a real index.

Concepts

Build evidence

  • Implement BM25 search in HighSignal — Index a corpus of articles and serve ranked keyword search using BM25.

Milestone 4

Days 7-9 — Ship and review

Finish the artifact, write it up, and schedule reviews.

Concepts

Build evidence

  • Search eval harness — A reusable harness that scores any retriever against a labelled query set.

Start this roadmap in the interactive app →