> ## Continuous-process anchor
>
> This spec describes an instance of one of the retired-script themes
> documented in docs/design/retired_scripts_patterns.md. Before
> implementing, read:
>
> 1. The "Design principles for continuous processes" section of that
> atlas — every principle is load-bearing. In particular:
> - LLMs for semantic judgment; rules for syntactic validation.
> - Gap-predicate driven, not calendar-driven.
> - Idempotent + version-stamped + observable.
> - No hardcoded entity lists, keyword lists, or canonical-name tables.
> - Three surfaces: FastAPI + orchestra + MCP.
> - Progressive improvement via outcome-feedback loop.
> 2. The theme entry in the atlas matching this task's capability:
> AG3 (pick the closest from Atlas A1–A7, Agora AG1–AG5,
> Exchange EX1–EX4, Forge F1–F2, Senate S1–S8, Cross-cutting X1–X2).
> 3. If the theme is not yet rebuilt as a continuous process, follow
> docs/planning/specs/rebuild_theme_template_spec.md to scaffold it
> BEFORE doing the per-instance work.
>
> **Specific scripts named below in this spec are retired and must not
> be rebuilt as one-offs.** Implement (or extend) the corresponding
> continuous process instead.
Fetch new PubMed abstracts and update evidence links for SciDEX hypotheses on a daily recurring schedule. The pipeline searches for recent papers related to stalest hypotheses, classifies them as supporting/contradicting, and updates hypothesis evidence_for/evidence_against JSON arrays and the hypothesis_papers junction table.
pubmed_update_pipeline.py runs successfully against live DBpubmed_update_pipeline.py) is already implemented and was last run 2026-04-10. This recurring task executes it daily to keep hypothesis evidence fresh.last_evidence_update ASC NULLS FIRST, limit 20esearch.fcgi with date filter (mindate from last update, maxdate today)esummary.fcgi for title/authors/journal/year, efetch.fcgi for abstractspapers, hypothesis_papers, update evidence_for/evidence_against JSONpubmed_update_logpubmed_update_pipeline.py — the pipeline script (already exists)papers table, hypothesis_papers table, hypotheses tablepubmed_update_pipeline.py, pubmed_evidence_pipeline.py)PRAGMA, INSERT OR IGNORE, tuple unpacking) incompatible with PostgreSQLINSERT OR IGNORE/REPLACE to PostgreSQL INSERT ... ON CONFLICT DO NOTHING/DO UPDATE, fixed row unpacking for dict-like rows, fixed evidence_for/against type handling (already list in PostgreSQL)orchestra/task/61065e83-pubmed-evidence-update-pipeline has divergent history from another agent's commit (b42a72eee, "Restore PubMed evidence update pipeline on PostgreSQL") — both branches have different PostgreSQL fixes{
"command": "python3 pubmed_update_pipeline.py --limit 149",
"completion_shas": [
"43e3a2f981474bcd40b5cc5aa7845d25217d15d4",
"e40e5c7f320d93cd0830f56de2e171a5b892cbc8"
],
"completion_shas_checked_at": "2026-04-12T00:05:47.220859+00:00",
"requirements": {
"analysis": 7,
"reasoning": 7
},
"success_exit_codes": [
0
],
"timeout": 600,
"working_dir": "/home/ubuntu/scidex"
}