Scout currently reads Discord, Farcaster, and Bluesky. All adapters normalize
source records into scout.config.Message, allowing prefiltering, evaluation,
storage, and digest generation to remain platform-independent.
Bluesky replies include immediate-parent context when
app.bsky.feed.getPosts can retrieve it. A compact unavailable marker tells
the model when that lookup fails. Farcaster parent-context retrieval is not
currently implemented.
src/scout/platforms/ that returns list[Message].platform value on every message.src/scout/scanning/runner.py alongside the existing
sources.Adapters are responsible for fetching and normalizing source data. They must not bypass the shared scanner, dossier-readiness checks, state manager, or grading paths.