Context

Semantic task matching is needed but ML inference deps are too heavy for zero-dep policy.

Decision

Implement TF-IDF scoring in pure JS. cosine similarity for task→phase matching. Vocabulary built incrementally.

Consequences

~5ms lookup vs 50ms for ML. Lower recall on novel phrasing. Acceptable for routing heuristics.

← ADR-003ADR-005