Skip to content

title: UCCA — RTOpacks Legacy Cleanup Recon — what's left, tiered by risk doc_id: UCCA-RTOPACKS-CLEANUP-RECON-01 type: recon — read-only inventory of RTOpacks legacy content on the UCCA side, tiered for a cleanup brief. Decides nothing; recommends handling per tier. layer: ground (true-today; verify paths/sizes live before acting) canonical: false authored: 2026-07-03 (UCCA session; RTOpacks-cleared the sweep — 4 months post-untangle) relates_to: ADR-0002 (worlds/ severance = the proof event) · ADR-0003 (account boundary) · UCCA-INPUT-PATH-BUILD-BRIEF-01 §Step-5 · MIGRATE-02 (2026-04-08 DB migration) discipline: read-only recon. Tier 1 already executed (safe dead weight). Tiers 2–4 are handling recommendations for a brief — nothing in them is done. Full Cycle: every item notes its ripple.


UCCA — RTOpacks Legacy Cleanup Recon

Context. RTOpacks has cleared UCCA to sweep RTOpacks legacy content from the UCCA side (4 months post-untangle; the radar-recovery exchange is closed). This recon inventories what's left and tiers it by risk so the cleanup brief keeps the trivial deletes separate from the dangerous edges — the generator, the client's live DNS, and live worker redeploys.


Tier 1 — safe dead weight — ✅ DONE (2026-07-03)

Executed this session; zero ripple, nothing referenced them: - .migration-exports/ (21 GB, 79 files) — finished MIGRATE-02 export chunks (abs/nrt/scope/radar/ workspace-db SQL). Deleted. - .wrangler/state/…/radar-screenshots (46 MB) — local wrangler dev R2 stub (470 April-2 captures; RTOpacks confirmed recovered their side). Deleted (blobs + the 73a0b63… metadata sqlite).

Tier 2 — DO NOT blind-sweep — load-bearing + sequenced

  • engine/ucca-engine/worlds/ (~115 M: worlds/rtopacks + worlds/usa_for_later), plus tga_data/, tga_pdfs/.
  • Why not a cleanup: this is ADR-0002's neutrality violation and its proof event, and the live generator imports from itgenerator/generate_complete_course.py:46: from worlds.rtopacks.config.cultural_flavours import get_cultural_flavour. A naive rm breaks generation.
  • Handling: stays on its rails — UCCA-INPUT-PATH-BUILD-BRIEF-01 Step 5 (re-source the contextualisation mechanism into the engine → content goes payload-side → then sever worlds/ as its own reviewed diff). The cleanup brief should exclude this and defer to the build brief.

Tier 3 — a DECISION, not a sweep — client's live infra

Correction (2026-07-03, yellow-tape — Item 0 of the cleanup brief). This section read UCCA's Terraform rtopacks.com.au declarations as the client's live site. They are fossils. Live state confirms it: rtopacks.com.au is absent from the UCCA account's zones (only ucca.* present), and Tim ruled (confirmed with RTOpacks) that RTOpacks self-manages its own domain. So Tier 3 downgrades from "could drop a live site" to Terraform state hygiene — the .tf records declare a zone UCCA no longer runs. Handled by the follow-on TERRAFORM-RECONCILE brief (state list → state rm, never destroy → remove .tf), which waits for the proof-job deploy. Nothing in infra/ucca-infra/ was touched. (Terraform state itself was not reachable this session — the follow-on must list it with backend creds.)

  • infra/ucca-infra/dns_rtopacks.tf + RTOpacks refs in zones.tf, storage.tf, security.tf, dns_security.tf, imports.tf, outputs.tf, variables.tf.
  • Why not a cleanup: these declare the live rtopacks.com.au zone/DNS/storage in UCCA's Terraform. terraform destroy on them could take down the client's live site.
  • Handling: a Tim decision — does UCCA keep operating rtopacks.com.au DNS/infra (platform service), or hand it to the RTOpacks side? Ripple: whichever way, the Terraform state + the Infrastructure-State snapshot must be updated (Full Cycle). Not deletable without that ruling.

Tier 4 — config cleanups — per-item judgment + live redeploys

  • Stale DB bindings (bind DBs that migrated to the RTOpacks account on 2026-04-08 → likely broken):
  • surfaces/ucca-surfaces/apps/ops-v2/wrangler.jsoncrtopacks-db
  • surfaces/ucca-surfaces/workers/{stats-cache, qual-enrichment, backup, cricos-sync}rtopacks-db / rto-nrt-db / abs-db
  • Ripple: removing a binding = edit wrangler + redeploy the live worker. Audit each: is the worker still doing UCCA work (repoint/remove binding) or is it dead post-untangle (retire)?
  • Proxy workers: surfaces/ucca-surfaces/workers/{rtopacks-proxy, rtopacks-docs-proxy} — confirm live/used (doc-access relays?) before retiring.
  • ops-v2 RTOpacks world code: apps/ops-v2/lib/worlds/rtopacks, app/api/worlds/rtopacks, app/w/catalog/**/rtopacks*may be by design (L2 ops manages worlds, four-layer plane). A keep-or-cut call, not an obvious delete.
  • Docs (170 .md referencing rtopacks): not cleanup — this is the staged CANON-CULL-SPEC-2026-07-01 banner-sweep's domain (correct framing/naming, don't delete cross-references).

For the brief (what it should cover)

Scope the execution brief to Tier 4 (config audit → repoint/retire → redeploy), with Tier 3 as a decision to be taken first, and explicitly out of scope: Tier 2 (owned by the build brief) and Tier 1 (done). Every Tier-4 item: verify current state → decide keep/repoint/retire → apply → redeploy → update Infrastructure-State snapshot + any doc. No blanket rm; the dangerous edges are fenced off above.