[Mission/feat] Landscape → Gap auto-extraction — surface gaps_indicators as actionable gap rows done

← Continuous Proposal Generation
Bridge step 1 of the SciDEX mission pipeline (landscapes → gaps → debates → ranking → action). Today landscape entries describe a domain but the gaps inside them are buried in prose. This task wires landscape rows to the gap registry. Acceptance: - New API: POST /api/landscapes/{id}/extract_gaps returns N proposed gaps; idempotent on re-run (uses content_hash). - For each landscape row, parse description/markdown for "Open questions", "Unanswered", "Gaps:", or LLM-classify if no explicit section. - Insert into gaps table with layer=Atlas, source_landscape_id=, status='proposed', priority derived from landscape.priority and gap_strength heuristic. - Backfill pass over current ~10 landscapes; report N gaps proposed. - UI: landscape detail page shows "Detected gaps (k)" link to filtered /gaps view. - Spec: docs/planning/specs/mission_landscape_to_gap_extraction.md (write as part of task). Why now: K-Dense skills wiring (b1a8e549) is shipping; we need a steady supply of *good* gaps to fuel debates. Landscapes are the densest source.

Completion Notes

Released by supervisor slot 52 because credential acquisition failed after pre-claim. Reason: worktree_creation_failed

Last Error

acquire_fail:worktree_creation_failed

Git Commits (2)

[Atlas] Landscape-gap extraction: add migration, API detail endpoint, gaps filter [task:4f9ab2b2-6fcd-4dc2-94a0-0620f7943e3e]2026-04-25
[Atlas] Extract actionable gaps from landscape analyses [task:4f9ab2b2-6fcd-4dc2-94a0-0620f7943e3e]2026-04-25
Payload JSON
{
  "_watchdog_repair_task_id": "57c3750f-32b1-4c05-bc25-086b0a9fa26c",
  "_watchdog_repair_created_at": "2026-04-26T05:05:13.080920+00:00"
}

Sibling Tasks in Quest (Continuous Proposal Generation) ↗

Task Dependencies

↓ Referenced by (downstream)