# PR #4781 — remove dead knowledge-generator modules

Components deleted in this PR (see the PR diff / `git show <sha>:<path>` for the
full pre-deletion code — this file only summarises what was novel). Follows up on
the `section_links` vulture false positive whitelisted in #4755.

## Component: `BaseKnowledgeGenerator`

- File deleted: `advanced_search_system/knowledge/base_knowledge.py` (149 LOC).
- Reachability: **none in production**. Nothing under `src/` imports it,
  `knowledge/__init__.py` re-exports nothing, and the only live module in the
  package — `followup_context_manager.FollowUpContextHandler` — is standalone and
  explicitly does *not* inherit from it. Referenced only by its own unit tests.
- Closest reachable successor: none. The "generate / compress knowledge"
  abstraction was never wired into a strategy; strategies do their own synthesis
  and citation formatting inline (e.g. `base_strategy._format_citations`,
  `langgraph_agent_strategy`).

## Component: `StandardKnowledge`

- File deleted: `advanced_search_system/knowledge/standard_knowledge.py` (156 LOC).
- Reachability: same as above — the only concrete subclass of
  `BaseKnowledgeGenerator`, never instantiated outside its own tests.
- Closest reachable successor: none (see above).

### Useful ideas from the pre-deletion version

- **`compress_knowledge`** — single LLM call to compress accumulated knowledge,
  asked to retain facts/citations and drop redundancy, returning the *original*
  text on failure (fail-open). Exploratory; never benchmarked, never called by a
  strategy. Its `section_links` param was unused in the body — the leaf that
  vulture flagged and #4755 whitelisted.
- **`generate_knowledge` / `generate_sub_knowledge`** — generic LLM synthesis of
  knowledge from query+context, and a per-sub-question variant. Conceptually
  superseded by the strategies' own iterative synthesis steps; nothing
  distinctive in the prompts.
- **IEEE-style `format_citations` (implemented on `StandardKnowledge`; abstract
  on the base) + concrete base helpers** (`_validate_links`,
  `_validate_knowledge`, `_extract_key_points` on `BaseKnowledgeGenerator`) —
  small validation/formatting utilities. The IEEE citation formatting overlaps
  with the strategies' existing `_format_citations`.

All of the above were **exploratory**: no production caller, no benchmark or
live test fixture — only unit tests that mocked the model.

### Why deletion was safe

Zero production reachability: nothing imports either module, the package's one
live class is independent, and search strategies already own their synthesis and
citation formatting. Removing the modules also retires the now-redundant
`section_links` vulture whitelist entry (the false positive it suppressed lived
only in these files). The `pid` whitelist entry is unrelated and stays —
`faiss_safe_load.safe_load_faiss` is live.

### Recovery path

Do not restore the files. If knowledge compression/synthesis is ever wanted as a
shared step, add it as a method or small helper on the active strategy rather
than reviving an abstract base + concrete impl that nothing instantiated.
