Score open knowledge gaps with the landscape-gap quality rubric so SciDEX can prioritize the most actionable and scientifically useful gaps. Component scores should reflect specificity, evidence coverage, hypothesis density, debate depth, and actionability.
gap_quality_score values between 0 and 1gap_quality_score, prioritizing high priority_score and importance_score.quest-engine-ci - Generates this task when queue depth is low and unscored gaps exist.gap_quality_score IS NULL.specificity, actionability, evidence each capped at 0.33), and mark gaps below 0.3 as quality_status='under_review' for closure/revision triage.python3 score_30_gaps.py --limit 100.specificity_score0.33 + actionability0.33 + evidence_coverage*0.33.quality_status='under_review' (gap-test-20260425-224949, gap-debate-20260426-011448-7c85f5dc).python3 -m py_compile score_30_gaps.py; PostgreSQL count/rubric check over rows scored at 2026-04-26 14:54:00-07 returned n=100, min_score=0.066, max_score=0.924, rubric_match=100.get_db() helper uses broken SQLite shimcompute_evidence_coverage had unused total_papers = float(total) line and was missing total_papers param; (2) compute_hypothesis_density used LOWER(evidence_for) LIKE on a jsonb column which fails on PostgreSQL — removed the jsonb path, kept only analysis_id FK lookup_PG_DSNimport psycopg + _PG_DSN = "dbname=scidex user=scidex_app password=scidex_local_dev host=localhost" with from scidex.core.db_connect import get_connection_pg_connect() to call get_connection() which uses SCIDEX_PG_DSN environment variable with safe default