Skip to main content

Backlog — priority view

Purpose: triage tool, not a roadmap. Orders what to work on next by what it unblocks. Covers both PLANs and INVESTIGATEs — an earlier version of this doc covered only INVESTIGATEs, which left the whole data-platform workstream invisible here for months.

Last updated: 2026-08-30. Re-rank whenever something moves to completed/, a new item lands, or a blocker clears.

State: active/ is empty, and that is honest — PLAN-007 and the asgard deployment plan both closed. Everything below is backlog or parked.

How to read the tiers: tier order is the order to start, not to finish. Tier 1 is next on deck; Tier 4 means "don't open this yet".


🔴 Waiting on Terje — not startable by atlas

These are decisions, not work. Listed first because they are the largest source of stalled items, and several have been open for days. The remainder of the UIS-installability batch does not block Tier 1.

Two of these were answered on 2026-09-09, and how they got answered is the lesson. The schemas: posture (A — the public API serves api_v1 only, Terje, urb-agents #350) and TPL-Q3 (an application ships its install definition inside its published image; the catalogue holds an immutable pin and the pin PR is the review — #354, now PLAN-templates-002). Both had sat for days looking owned because two agents each recorded "waiting on Terje" in a status file. A status file is not a queue; only an auth-required hold reaches Terje's escalation. Filed as holds, both were answered within hours.

WhatFileSinceWhy it blocks
The Svalbard question — does Atlas cover Svalbard, or merely represent it?INVESTIGATE-ssb-pseudo-regions2026-08-25Decides whether pseudo-region data flows to marts and the map. Neither suggested fix works as posed until this is answered. Source of the 17 tolerated WARNs.
F1 redcross data delivery — blocked on an APIM credentialPLAN-redcross-branches-private-input2026-08-25Design settled; the blocker changed shape from a static dump to an API credential, which may reopen the design. Keeps 3 of 13 views empty.
Phase 5 frontendasgard deployment plan (in terchris/home)2026-08-25Held at Terje's request while he reads the code himself.
🔴 Is GitOps the direction for UIS? And should that investigation be opened?INVESTIGATE-atlas-as-a-uis-application2026-09-07The discussion Terje asked for has happened and produced an answer for everything except this. UIS has two deployment paths that do not meet and Atlas straddles them. If GitOps is the direction, per-workload secrets become prerequisites, not by-products. The UIS maintainer declined to open a Tier 1 platform-direction investigation on one message without Terje in it. Blocks nothing — A proceeds regardless.
Should imac's cluster start with its host?INVESTIGATE-atlas-as-a-uis-application2026-09-07The API disappears silently on every reboot and a frontend is about to be built against it. All cluster state survives; only the process does not. One host setting, ~5 minutes — Rancher Desktop autostart or k3s under systemd. Not platform work, queues behind nothing.
Public-docs topology — internal detail in a public reporaised in terchris/home talk2026-08-26asgard-performance-baseline.md is world-readable and names infrastructure. Proposed a platform-facts-to-home split. Still unanswered. Recurs every time a doc mentions infrastructure.

🔴 Fleet-wide constraint, recorded 2026-09-05

No one can observe asgard. kubectl is absent on tecMacDev and on the ops host; the ops host has the kubeconfig but no client; huginn runs inside the cluster but is excluded pending login. The tester's green Dagster verification of 2026-09-04 describes its own cluster, not ours. asgard's Dagster is unverified since 2026-08-30. The public API hostnames also do not resolve from this machine, so the data cannot be probed from outside either.

This is not an Atlas defect and not something Atlas can fix. It is recorded here because it bounds what any item below can claim: no plan may treat "verified" as meaning verified on the instance that serves data, unless it names who ran the check and where.

Tier 1 — do next

Data platform (from the 2026-08-30 Sunday tick)

#ItemEffortWhy this tier
0INVESTIGATE-atlas-as-a-uis-applicationL🔴 The product's target shape (Terje, 2026-09-06). Install Atlas on UIS with one command, using the Dagster/PostgreSQL/PostgREST it already ships and the config system it already has. Acceptance is stricter than anything before it: the API answers from tecMacDev over the LAN, because the frontend will be built against it from there. Two machines, one network — no public domain, no tunnel. Needs tor-agent — the platform may need an Application type it does not have.
0INVESTIGATE-atlas-data-as-deployable-applicationL🔴 The product's target shape (Terje, 2026-09-05). One installable application that gathers the data and makes it queryable, with the frontend as a forkable example. The container already exists and runs on UIS; what is missing is the installer, the declared query surface, and a repo split blocked by a build-time coupling from the docs site.
1INVESTIGATE-ingest-freshness-visibilityM🔴 Highest. On 2026-08-30, 15 of 41 sources silently did not refresh and every signal stayed green — the check suite returned identical numbers. We cannot currently tell "refreshed and unchanged" from "never refreshed". Monitoring that cannot distinguish those is not monitoring. The in-suite half now ships and has been seen to fail on-cluster (FAIL 28 → 24 → 2). 2026-09-08: its single 8-day threshold was wrong for the two monthly-polled KLASS sources and was measured to go falsely red from 09-13 until 10-01 — thresholds now derive from a declared meta.ingest_cadence, and brreg-enheter became a Dagster asset rather than being exempted. The remaining gap is unchanged and is what this item is still open for: if the daemon stalls, nothing runs, so nothing reports. That needs a reader outside the pipeline.
2PLAN-ingest-retry-budgetS-MA short Retry-After overrides the backoff ladder and collapses the retry budget to ~4s; two of three HTTP clients ignore Retry-After entirely. Decides whether the next weekly tick survives a wobble. Does not help against a multi-hour outage.
3PLAN-ingest-ci-gates phase 3SPhases 1–2 shipped 2026-08-25. Only the C12 move to Node 24 remains, and it needs a real Node 24 to validate rather than an assumption.
4INVESTIGATE-ssb-api-version-dependencyS-MAll SSB ingest depends on a beta API surface that was 503 for hours on 2026-08-30. /v2/ has now shipped and serves data identical to /v2-beta/, so moving is a durable-reliability improvement, not a fix. ⚠️ A 2026-09-05 claim that beta served stale data was wrong and has been retracted.

Semantics and catalogue

#ItemEffortWhy this tier
5INVESTIGATE-semantic-foundation-before-expansionLHighest unblocking ratio in the doc. Decides the concept-catalogue format and explicitly freezes NGO-supply expansion until resolved — blocks 4 other INVESTIGATEs from passing their own boundaries.
6INVESTIGATE-mart-meta-dimensions-cardinalityMCatalogue UX needs cardinality + example values to render "what each column actually contains". Small investigation gap, real ship-side gap. ⚠️ Its original justification was feeding PLAN-007 phase 4 — PLAN-007 has since shipped, so re-check that the need survives before starting.
7INVESTIGATE-felles-datakatalog-classificationSAlready half-shipped (eu_theme: landed in PLAN-007 phase 2.10). A few hours of LOS-vocabulary mapping buys one-line interop with data.norge.no.

Tier 2 — after Tier 1 (independent, ready, valuable)

#ItemEffortWhy this tier
8INVESTIGATE-transform-job-decompositionMRe-scoped 2026-08-24. The tactical unblock shipped; layer-splitting and the CI plan-size budget (~400) are deliberately parked pending the declarative-automation direction. Reopen when that direction settles — the durable fix, not the bump.
9INVESTIGATE-reports-and-indicators-from-catalogueXLSubstrate for prioritising new sources; without it "what to ingest next" is gut feel. Begin once Tier 1's catalogue shape settles.
10INVESTIGATE-multi-ngo-supply-model-extensionsMSmall schema change that unblocks two Tier-3 items together. Cheap, high downstream payoff.
11INVESTIGATE-developer-docs-surfaceMExternal developers will arrive at a public API without docs. Investigate the shape before users land, not after.
12INVESTIGATE-data-freshness-surfaceMReader-facing freshness — deliberately distinct from #1, which is operator-facing. The two may share a max(loaded_at) per-source model; keep them separate.
13INVESTIGATE-indicators-schema-coverageS-M249 of ~566 marts columns lack descriptions (25 % coverage), mostly indicators__* pass-throughs. Settles hand-fill vs generate-from-manifest vs punt. Related: PLAN-indicators-schema-generator.
14INVESTIGATE-sources-catalog-at-scaleMWas missing from this doc entirely. Catalogue behaviour as source count grows.
15PLAN-008-developer-discovery-surfaceMReady to execute — the Atlas-native subset of data-discovery (Scalar spec viewer, lineage panel, dbt docs hosting).

Tier 3 — defer until prereqs ship

#ItemWaits onWhy defer
16INVESTIGATE-new-norwegian-public-sources#9The 26-source pick is far cheaper once the report grammar says which gaps to fill.
17INVESTIGATE-supply-frontend-display#10URL structure and viewing layers depend on schema shape. UX before schema = rework.
18INVESTIGATE-folkehjelp-supply#10Schema lands first; the second-NGO ingest then validates it.
19INVESTIGATE-data-discovery-surface#5 for the OpenMetadata pathThe Atlas-native near-term path is split out as #15 and is ready now. Wider OpenMetadata adoption stays deferred.
20INVESTIGATE-cloud-agent-source-onboarding#16An agent that onboards sources needs a list of which sources first.
21INVESTIGATE-private-atlas-deploymentsproduct clarityWorth doing only against a concrete first private tenant. Speculative architecture rots fast.
22INVESTIGATE-deployment-pipelineUIS/dagster direction (external)⚠️ Partly overtaken: the asgard deployment shipped and dagster is live with automation running. Re-read before opening — its premise may already be answered.

Tier 4 — ideas, not investigations

#ItemWhat to do
23INVESTIGATE-ngo-events-and-minisitesParked in the file itself. Re-evaluate once a second NGO is in flight and the gap is visible rather than speculated.
24INVESTIGATE-tag-indicators-sdg-icnpoOverlaps #5's ICNPO tagging. Hold — #5's answer may absorb it entirely.

Recently closed

  • PLAN-007 (customer-frontend data display) — shipped; INVESTIGATE-customer-frontend-data-display needs no further investigation work.
  • The asgard deployment — Phase 2 complete (2.3: 649 checks, 629 dbt PASS, 17 known WARNs, 10/13 views, 0 orphans) and Phase 3.2's concurrency bound verified at 4 against a real weekly fan-out on 2026-08-30. ⚠️ The observed weekly cycle failed (15 SSB sources, HTTP 429), so the bound is proven but a clean end-to-end weekly cycle has not yet been observed.

Cross-cutting notes

  • The data-platform cluster (#1–#4) is new and currently the most urgent, all of it from one night's evidence. #1 is the one with teeth: #2 and #4 are about preventing a missed refresh, #1 is about noticing one.
  • Two long-standing workstreams still run in parallel: semantics/catalogue (#5, #9, #10) and frontend/UX (#6, #11, #12). Different files, different agents, no merge contention.
  • Supply-side chain: #10 → (#17, #18). Catalogue chain: #5 → (#19, #23, #24, parts of #9).
  • External blockers: only #22, and it may already be resolved by the deployment shipping.
  • Terje's queue is the real bottleneck, not the backlog — four items, three of them ≥4 days old.

How to use this doc

  1. Take the top unstarted Tier-1 item; if Tier 1 is in flight or done, drop to Tier 2.
  2. INVESTIGATEs stay in backlog/ until every child PLAN ships — update their Status: line rather than moving the file.
  3. When an INVESTIGATE spawns a PLAN, strike the row here and note the PLAN.
  4. When a Tier-3 prereq lands, promote its dependents at the next refresh.
  5. Re-rank after every 3 items ship, or whenever a blocker clears.