scidex/agora/funding_proposal_generator.py already exists for ranked
hypotheses. Extend it to consume the new open_question artifact ranking
(per-field Elo from quest b307ad54-a95, q-openq) so that the highest
priority unsolved questions in each neuroscience subfield automatically
materialize as draft NIH-style proposals (R01 / R21 mechanisms), discoverable
on the Exchange as fundable artifacts. Each proposal cites the underlying
open_question as its parent.
python3 -m scidex.agora.funding_proposal_generator--dry-run, registers funding_proposal artifacts with requiredspecific_aims, significance, innovation, approach,preliminary_data, timeline, budget) within the page-length budgetsMECHANISM_PROFILES.
open_question via artifact_linkslink_type='derives_from', plus link_type='cites' to the top-3paper.
R21 if the question'sevidence_summary is short and exploratory, R01 otherwise.
(open_question_id, mechanism, quarter)).
--source open_questions mode to the CLI that queriesartifacts WHERE artifact_type='open_question' ordered bymetadata->>'importance_elo' and grouped by metadata->>'field_tag'.
MECHANISM_PROFILES and _select_persona.
scidex.agora.funding_proposal_generatorb307ad54-a95).Implemented --source open_questions mode in scidex/agora/funding_proposal_generator.py.
Added functions:
_select_mechanism_for_open_question: picks R21 if evidence_summary < 50 words, R01 otherwise; respects explicit --mechanism override_current_quarter: returns YYYY-QN string for dedup key_is_proposal_dedup: queries artifacts for existing (open_question_id, mechanism, quarter) combos_load_wiki_links_for_open_question: fetches artifact_links with derives_from to wiki_page artifacts (top 3)_find_related_papers: calls paper_cache.search_papers for related literature_build_prompt_from_open_question: adapted NIH prompt using open_question fieldsgenerate_funding_proposal_from_open_question: full pipeline — dedup, skills, LLM, normalize, register, linkgenerate_funding_proposals_from_open_questions: batch runner with daily budget gate; groups by field_tag, takes top N per field_main_cli / __main__: argparse CLI with --source, --top-n-per-field, --mechanism, --budget, --dry-run