Back to Search-quality baseline: acronym / synonym recall (Phase 1.4, v1.2.0 candidate)

The `framework_aliases` table exists in the schema and contains 22 rows with a populated `synonyms` column (verified directly via `SELECT identifier, synonyms FROM framework_aliases WHERE synonyms IS NOT NULL`). The DATA is there.

But the ranking layer does not appear to consult `framework_aliases.synonyms` when scoring matches against a bare acronym query. The query `NFC` finds the literal-token `nfc` in `authenticationservices/.../transport/nfc` and ranks it at position 1 by BM25F because that page's `content` happens to contain the token in a deep authentication-flow paragraph. The `corenfc` framework root, which the synonyms table says is the canonical answer for `nfc`, is at rank 3 — likely retrieved via the framework-identifier-substring path, not the synonyms path.

This is not necessarily a bug. The synonyms table may be intentionally consulted only by `--framework <slug>` resolution (mapping `--framework nfc` to `corenfc` for explicit filtering), not by free-text query ranking. The code paths to verify are:

- `Search.Index.SearchByAttribute` for filter-time use
- `Search.Index.Search.swift` for query-time use
- `Search.Index.CountsAndAliases.swift` for alias-management
- `Search.SmartQuery` / `Search.CandidateFetcher` for cross-source synonym handling

A code reading would clarify whether the synonyms are wired into BM25F scoring at all, or only into framework-name normalisation at filter time.