Research Ingestion
This skill runs FactorMiner's Report-to-Memory Absorption (RMA) service — a scoped-down implementation of the RMA layer from XAlpha (arXiv:2607.08332): it screens external research fragments for OHLCV-representability, classifies the survivors into a broad mechanism family, and extracts reusable research-path hypothesis cues. It does not mine, generate, or backtest factors; it turns raw research text into structured input for factor-mining's generation prompts.
Why absorption instead of raw text
Feeding report text directly into a generation prompt lets ungrounded or OHLCV-infeasible claims (analyst EPS revisions, order-book microstructure, fundamentals) leak into hypothesis generation. RMA gates every fragment first, so only price/volume-representable mechanisms reach the mining loop.
The A/B/C pipeline
| Layer | Question | Output |
|---|---|---|
| A (eligibility) | Can this mechanism be observed, inferred, or proxied from daily OHLCV bars alone? | KEEP/DROP + reason |
| B (mechanism family) | Which broad mechanism bucket does it belong to? | One of factorminer.architecture.families.MECHANISM_FAMILIES |
| C (archetype) | What's the reusable research cue? | A ResearchArchetype record with research_paths |
DROPped fragments (fundamentals, analyst estimates, order-book state, news/sentiment, macro releases) are discarded — they are not representable under the daily OHLCV factor contract.
Workflow
1. Ingest a research note
factorminer ingest-research path/to/report_fragment.txt
Add --mock to run offline with the deterministic mock LLM provider (no API calls) — useful for smoke tests, never as a research result.
2. Read the classification
The command prints the KEEP/DROP verdict and reason. For a KEPT fragment it also prints the assigned mechanism family, fine-grained family, mechanism role, and research-path cues.
3. Hand off to mining
The resulting ResearchArchetype records are meant to be threaded into PromptContextBuilder.build(..., research_archetypes=[...]) so factor-mining's generation prompts carry the research-path text alongside memory and family context. Absorption itself never calls the mining loop — invoke factor-mining separately once you have archetypes worth exploring.
Guardrails
- A-layer eligibility is a feasibility gate, not a quality signal — a KEPT fragment is not yet a validated hypothesis, only one that could become an OHLCV factor.
- Never present a
ResearchArchetype'sresearch_pathsas a factor formula; it is a hypothesis cue forfactor-mining, not executable code. --mockclassification is deterministic keyword heuristics, not real research judgment — never cite mock output as evidence.
MCP alternative
When the FactorMiner MCP server is connected, ingest_research_note exposes the same workflow as a tool, returning the KEEP/DROP verdict and (for KEEP) the archetype record directly.