[Atlas] Build automated gap scanner — analyze new papers for contradictions and unknowns
Quest: Gap Factory
Priority: P3
Status: open
Goal
Build automated gap scanner — analyze new papers for contradictions and unknowns
Context
This task is part of the Gap Factory quest (Atlas layer). It contributes to the broader goal of building out SciDEX's atlas capabilities.
Acceptance Criteria
☐ Implementation complete and tested
☐ All affected pages load (200 status)
☐ Work visible on the website frontend
☐ No broken links introduced
☐ Code follows existing patterns
Approach
Read relevant source files to understand current state
Plan implementation based on existing architecture
Implement changes
Test affected pages with curl
Commit with descriptive message and pushWork Log
2026-04-17 — Verification
- Status: Work already complete on main
- Verification:
scripts/gap_scanner.py exists on main with full implementation (623 lines)
- Analyzes new papers for contradictions and unknowns using Claude
- Uses landscape context (thin regions, domain whitespace) for targeted gap detection
- Creates knowledge gaps in database when significant gaps found
- Has artifact registry integration for governance/provenance
- Supports dry-run (--review) and execute (--execute) modes
- Commits on main:
41dc07b1b (Senate reorganization),
ba9292f41 (dedup governance)
- Note: No commits reference task ID
f456463e9e67 — work was absorbed into Senate reorganization
- Database issue: Pre-existing "malformed database schema" error unrelated to gap scanner code
2026-04-19 — Gap Scanner Shim Fix
- Status: Fixed broken backward-compat shim at root
gap_scanner.py
- Issue: The shim at
gap_scanner.py had hardcoded paths to another worktree (task-1f699995ef18) instead of using dynamic paths
- Fix: Updated
gap_scanner.py to use Path(__file__).resolve().parent for correct relative paths to scripts/deprecated/gap_scanner.py
- Verification:
python3 gap_scanner.py --help works correctly, script runs and imports modules properly
- Commit:
536ae1b22 [Atlas] Fix gap scanner shim with dynamic paths instead of hardcoded worktree [task:f456463e9e67]
- Note: Actual implementation is in
scripts/deprecated/gap_scanner.py (not scripts/gap_scanner.py as spec originally stated)