SignalNavigator
§18 · Build order
Open Cockpit

§18 · Concrete build order

Signal Navigator build order

Five phases, from the public-map substrate to a durable institution. Every line item is tagged with status and — where applicable — a code anchor that proves it exists. When in doubt we mark partial with an honest gap note rather than overclaim.

Legend:ShippedPartialPlanned

Phase 1 · Foundation

14 shipped4 partial0 planned

Sources, signals, field notes, evidence, claims — the public-map substrate.

  • sources

    Shipped
    • src/lib/sourceRegistry.ts
    • src/lib/sources.functions.ts
    • /app/sources
  • theater packs

    Partial

    Gap: Ukraine and Hormuz pack framework is wired; pack-specific live adapters and claim-graph UI are follow-on work.

    • supabase/migrations/20260608170000_theater_packs_catalog.sql
    • src/lib/theaterPacks/theaterPacks.functions.ts
    • /app/sources/theaters
    • docs/theater-packs.md
  • observations

    Shipped
    • src/lib/normalizeObservation.ts
    • src/lib/upsertSignal.server.ts
  • signals

    Shipped
    • src/lib/signalLifecycle.ts
    • src/lib/signalRecordModel.ts
    • /app/signals
  • field_notes

    Shipped
    • src/lib/fieldNotes/fieldNote.functions.ts
    • src/lib/fieldNotes/fieldNoteLifecycleV2.ts
    • /app/field-notes
  • evidence_items

    Partial

    Gap: Upload/link/archive is wired for map evidence; broader evidence item table + UI still thin.

    • src/lib/evidence/saveMapEvidence.ts
  • claims

    Shipped
    • src/lib/fieldNotes/promoteFieldNote.functions.ts
    • src/lib/intel/inspectableClaim.ts
    • promoted_claims_public (view)
  • provenance_events

    Shipped
    • src/lib/provenance/canonicalFieldNote.ts
    • src/lib/provenance/fieldNoteProvenance.test.ts
  • trust_events

    Partial

    Gap: Trust signals computed inline; no dedicated trust_events ledger yet.

    • src/lib/intel/trustMeta.ts
    • src/lib/fieldNotes/fieldNoteReputation.ts
  • moderation_actions

    Shipped
    • src/lib/fieldNotes/fieldNoteModeration.ts
    • src/lib/fieldNotes/fieldNoteReview.functions.ts
  • public map

    Shipped
    • /disruption-map
    • src/routes/disruption-map.tsx
  • source-fed signals

    Shipped
    • src/lib/upsertSignal.server.ts
    • src/adapters/*
  • field note submission

    Shipped
    • src/lib/fieldNotes/fieldNote.functions.ts
    • /app/field-notes
  • note attachment to signal/place

    Shipped
    • src/lib/fieldNotes/fieldNoteTargetAliases.ts
    • src/lib/fieldNotes/fieldNoteGraphObjectTargetsMigration.test.ts
  • evidence upload / link / archive metadata

    Partial

    Gap: Archive metadata recorded; richer file-upload UI pending.

    • src/lib/evidence/saveMapEvidence.ts
    • src/lib/archive.server.ts
  • basic moderation

    Shipped
    • src/lib/fieldNotes/fieldNoteModeration.ts
  • note status

    Shipped
    • src/lib/fieldNotes/fieldNoteLifecycleV2.ts
    • src/lib/fieldNotes/fieldNotePromotionStates.ts
  • simple confidence labels

    Shipped
    • src/lib/intel/confidenceLadder.ts
    • src/components/ai/AiProvenanceBadges.tsx

Phase 2 · Verification

2 shipped5 partial0 planned

Turn raw notes into corroborated claims with reputation, reliability, and change history.

  • verification queue

    Partial

    Gap: Review surface exists; a dedicated /verification queue with SLA timers is not built.

    • src/lib/fieldNotes/fieldNoteReview.functions.ts
    • /app/quarantine
  • corroboration / contradiction workflow

    Shipped
    • src/lib/fieldNotes/fieldNoteCorroboration.functions.ts
    • src/lib/fieldNotes/fieldNotePromotion.ts
  • contributor reputation

    Partial

    Gap: Reputation scored but not yet surfaced on a public contributor profile.

    • src/lib/fieldNotes/fieldNoteReputation.ts
    • src/lib/fieldNotes/contributorVerification.functions.ts
  • promoted notes

    Shipped
    • src/lib/fieldNotes/promoteFieldNote.functions.ts
    • promoted_claims_public
  • claim pages

    Partial

    Gap: Public note pages exist; first-class /claim/$id detail page TBD.

    • src/lib/intel/inspectableClaim.ts
    • src/routes/n.$handle.$slug.tsx
  • source reliability cards

    Partial

    Gap: Health data shown to operators; public per-source reliability card not yet shipped.

    • src/lib/sourceHealth.ts
    • src/lib/sourceTrustHandlingDecision.ts
    • /app/sources/health
  • transparent change history

    Partial

    Gap: Per-object diff/history UI is not surfaced publicly.

    • src/lib/provenance/canonicalFieldNote.ts
    • src/lib/intel/sharpeningTrail.ts

Phase 3 · Graph

7 shipped1 partial0 planned

FalkorDB-backed graph with entity extraction, neighborhood queries, and GraphRAG summaries.

  • FalkorDB materializer

    Shipped
    • src/lib/graph/graphMaterializer.server.ts
    • src/lib/graph/falkorClient.server.ts
  • graph side panel

    Shipped
    • /app/graph
    • src/lib/graph/graph.functions.ts
  • entity extraction

    Shipped
    • src/lib/graph/extractGraphFacts.ts
    • src/lib/ai/aiTaskRegistry.ts
  • relationship proposals

    Shipped
    • src/lib/graph/relationshipScoring.ts
  • neighborhood queries

    Shipped
    • src/lib/graph/getNodeNeighborhood.server.ts
    • src/lib/graph/getSignalNeighborhood.server.ts
  • related signals

    Shipped
    • src/lib/graph/signalRelationshipSummary.ts
  • related notes

    Shipped
    • src/lib/fieldNotes/fieldNoteContextStories.ts
  • GraphRAG summaries

    Partial

    Gap: Cypher generation + context formatting exist; end-to-end retrieval-augmented briefings still in progress.

    • src/lib/graph/nlCypher.server.ts
    • src/lib/graph/graphContextFormatters.ts

Phase 4 · Commons

1 shipped3 partial5 planned

Open the platform: public API, exports, partners, watch zones, governance.

  • public API

    Partial

    Gap: A handful of public endpoints exist; documented, versioned API surface not yet shipped.

    • src/routes/api/public/*
  • dataset exports

    Planned
  • partner workspaces

    Planned
  • maintainer program

    Planned
  • watch zones

    Shipped
    • src/lib/watchZones.functions.ts
    • /app/watchlists
  • public briefings

    Partial

    Gap: Daily briefing route shipped; per-topic public briefing index not yet.

    • src/routes/daily-briefing.tsx
    • src/lib/briefings
  • contributor profiles

    Planned
  • governance board

    Planned
  • open license / contributor terms

    Partial

    Gap: Scope + methodology published; explicit license and contributor terms pending.

    • src/routes/about.scope.tsx
    • src/routes/methodology.tsx

Phase 5 · Durable institution

0 shipped0 partial7 planned

Foundation governance, funding engine, enterprise support, audit and transparency.

  • foundation or public-benefit governance

    Planned
  • grants / sponsorship engine

    Planned
  • paid private deployments

    Planned
  • enterprise support

    Planned
  • audit / reporting

    Planned
  • security reviews

    Planned
  • transparency reports

    Planned