Skip to content

GATE6-CLOSE-01 — REPORT — 2026-08-14

Seat: Alex (bridge) · Lane: dead-window recon · Blast radius: zero. Read-only throughout. No TGA request of any kind. No PUT/POST/PATCH/DELETE against any Cloudflare resource. Every D1 statement a SELECT, every one returning rows_written: 0, changed_db: false. Credential: op://RTOpacks/cloudflare-api-token, id 76eb6809697eef0268c6de7f473d1f3d, verified active at job start. No token minted.

⚠ RETURNS TO TIM BEFORE THE V-P2P-009 ABANDONMENT IS FILED — see §1.5. The versions/ corpus did capture real observed change in the window. Five series differ, four of them genuine register events and one an upstream schema change. This is the outcome the brief named as requiring Tim's ruling prior to abandonment.


0 · INSTRUMENTS, DEMONSTRATED BEFORE ANY ZERO

R2 listing is available via the REST API. GET /accounts/{acc}/r2/buckets/{bucket}/objects, with prefix, per_page and cursor. This corrects a standing note that R2 has no list-objects — that is true of wrangler and the MCP tools, and false of the REST API.

Boundary-key discipline, proven before the crawl. The cursor is base64 of a JSON payload carrying startAfter. Across four consecutive pages: full cursors all distinct, boundary keys strictly ascending, and cursor.startAfter equals the last key of each page in every case. The enumerator raises on two consecutive non-advancing boundaries; it never fired.

Known-present control (Job 1 step 2). ACMAAS401, named in both TGA-VERSIONS-CENSUS-01-REPORT-2026-08-04 and TGA-CONTENT-BUCKET-RECON-2026-08-04. Re-found 5 keys, all 751 B: 2026-05-24, 2026-06-02, 2026-06-13, 2026-06-28, 2026-07-05.

One false zero caught mid-job and discarded. A grep --include=*.md run unquoted under zsh aborted and printed hits: 0. That is the known unquoted-glob trap; the figure was not a measurement. Every search below uses --include='*.md' quoted, and each demonstrates on a known-present hit first.


1 · JOB 1 — versions/ SIZE-DIFF CENSUS, COMPLETED

1.1 Population (step 3)

Measure Figure
Keys enumerated under versions/training/, to exhaustion 348,990
Keys not matching versions/training/{code}/{date}.json 0
Distinct codes 84,728
Codes with ≥2 snapshots 84,728
Codes with exactly 1 snapshot 0
Pages / API calls 349 / 350 · final boundary versions/training/ZWV60205/2026-07-05.json

Every code in the prefix carries at least two snapshots. There is no single-snapshot tail.

1.2 The prior census covered 8.32%, not ~20%

TGA-VERSIONS-CENSUS-01 enumerated 29,028 keys and estimated "roughly 20%" against a floor figure of ≥144,674 for the whole versions/ prefix. Measured against the actual versions/training/ total of 348,990, its coverage was 29,028 / 348,990 = 8.32%.

The ≥144,674 figure was explicitly a floor, so nothing was misstated — but the floor was low by a factor of ~2.4 for one sub-prefix alone, and the derived 20% was correspondingly optimistic. Any document carrying "roughly 20%" should be read as 8.3%.

1.3 Size-diff census (step 4)

Result Count
Codes with any size-differing pair 5
Codes all-equal size 84,723
Codes single-snapshot 0

1.4 Same-length sample (step 5) — previously UNRUN, now measured

Selection method, deterministic: the 84,723 all-equal-size codes sorted ascending; every 847th taken, index i × 847 for i in 0–99. First 2, last ZWACEN301B. No randomness.

Earliest and latest snapshot bodies fetched for each and compared by sha256.

Compared 100 · errors 0
Byte-identical earliest vs latest 100
Byte-differing at identical length 0
Same-length error rate, measured 0 / 100 = 0.0%

The size-only method's error rate is no longer assumed. At n=100, deterministically sampled across the full alphabetical range, it is zero. This was the stated point of the job and it is now closed.

1.5 ⚠ THE FIVE DIFFERING SERIES — REAL OBSERVED CHANGE

All five fetched and byte-compared. None is an artefact; all five are genuine content change.

Code Window Size What changed
DEF 2026-05-24 → 2026-06-28 4,966 → 5,190 B releases — approvalProcess nqcProcess → iscUpgrade, currencyChangeDate advanced
MSF 2026-05-25 → 2026-07-04 4,421 → 4,645 B releases — same shape, new release appended
UEE 2026-05-26 → 2026-07-05 4,260 → 4,559 B releases — currencyChangeDate advanced
MSFGG3027 2026-05-25 → 2026-07-04 931 → 1,091 B releases — new release; currencyChangeDate 2018-12-03 → 2026-06-01
PSPMGT003 2026-05-25 → 2026-07-05 1,393 → 1,412 B schema change — keys status / statusLabel removed, usageRecommendation / usageRecommendationLabel added

DEF, MSF and UEE are Training Package codes; MSFGG3027 and PSPMGT003 are units.

Four are register events — new releases appended upstream during the observation window. These are exactly the class of thing the versions/ corpus exists to witness, and it witnessed them.

PSPMGT003 is different in kind. It is not a content change; it is TGA changing the shape of its own payload, retiring status in favour of usageRecommendation. That is upstream API drift captured incidentally, and it is arguably the most valuable single object in the corpus.

Consequence for V-P2P-009. The abandonment argument rests on the corpus holding no observed change worth keeping. It holds five, in a 6-week window, at a 0.0% same-length error rate — so the count is 5 and not "5 plus an unknown tail of same-length edits." Whether five events across 84,728 codes is material enough to preserve is Tim's judgment, not a measurement, and the brief reserves it to him.


2 · JOB 2 — THE PER-CODE JOIN

training/ enumerated to exhaustion: 84,728 keys, 85 pages, final boundary training/ZWV60205/raw.json. Zero keys failed the training/{code}/raw.json shape. This confirms the prior reported figure of 84,728 by measurement rather than carrying it.

Current-unit code set. Database rto-nrt-db (1249760d-070a-43f8-81d7-de462b626cdf). Exact query, paged at 4,000 with ORDER BY code:

SELECT code FROM tga_training_components WHERE type_slug='unit' AND status_slug='current'

Returned 15,169 rows / 15,169 distinct codes — matching the brief's figure exactly. Vocabulary was established first by SELECT type_slug, status_slug, COUNT(*) … GROUP BY, so the filter is measured, not guessed. Cumulative rows_written across all pages: 0.

The number the recon left uncomputed

Direction Count
Current codes with NO training/ object 78
Coverage against the 15,169 15,091 / 15,169 = 99.49%
training/ objects whose code is not a Current unit 69,637 (69,559 alphabetic, 78 numeric)

The 78 missing are clustered — AURETH017/018, AURETR052/053/054/249, AURHTJ008/009/107/202/203/204 and others, i.e. concentrated in the AUR (Automotive) package rather than scattered.

The 69,637 excess is expected and not a defect: the bucket holds superseded, deleted and non-unit components, and was never scoped to Current units. TGA-CONTENT-BUCKET-RECON said as much.


3 · JOB 3 — ORGANISATIONS RECONCILIATION

Answer: none found.

Population searched: the whole repository excluding .git, node_modules and docs/site, across *.md, *.py, *.ts, *.json. Searched without assuming a name: tga_organisations (literal), organisation facet / organisations facet / orgFacet, totalCount … organisation, and every file matching reconcil (746 files) filtered by content.

Instrument demonstrated: the same quoted grep returns the known-present control outputs/TGA-REGISTER-RECONCILIATION-2026-08-06.md plus five other live-facet documents.

Every hit is the question, not an answer:

  • outputs/ANCHOR-ONE-GATHER-01-VERDICTS-2026-08-14.md:142 — "reconciles tga_organisations against a live TGA organisation facet — rides with the GATE6-CLOSE-01"
  • outputs/ANCHOR-ONE-GATHER-01-INVENTORY-2026-08-14.md:849 — the least-sure item itself
  • outputs/GATE6-CLOSE-01-BRIEF-2026-08-14.md — this brief

No document performs, for organisations, what TGA-REGISTER-RECONCILIATION-2026-08-06 performs for training components. The Driver's least-sure item is confirmed: the reconciliation has never been done.

Related but not the same thing: docs/docs/data-sources.md and docs/docs/infrastructure/tga-ingest.md record rtos at 12,515 rows, and standing-rules records that only 72 of 12,515 were ever enriched by tga-ingest (0.58% coverage). That is an internal coverage figure, not a reconciliation against a live register total.


Answer: none found.

Instruments demonstrated before the zero, each term class returning known-present hits across *.md: licence 146 files · license 117 · copyright 67 · creative commons 10 · sharealike 4 · DEWR 53 · intellectual property 3. Also searched: legal advice/opinion/clearance/position/review, cleared for use, counsel, solicitor, lawyer.

The four sharealike files are the two CVIG-LANDSCAPE-RECON-01 documents, this job's brief, and ANCHOR-ONE-GATHER-01-INVENTORY — i.e. the recon and the question, not a position.

Two copyright documents exist and neither mentions CVIGs at all (cvig|companion volume → 0 hits in both):

  • docs/docs/briefs/copyright-disclaimer.md — public-facing, effective 19 March 2026
  • trust-docs/docs/legal/copyright.md — the trust-site legal page

outputs/CVIG-RING2-RESOURCES-RECON-01-DOSSIER-2026-08-08.md matches on licenc/licens, but the hits are about occupational licensing content inside the CVIGs (ASIC licence exemptions, education-care National Law), not about the licensing of the CVIG documents themselves.

CVIG-LANDSCAPE-RECON-01's statement stands: no written legal position on CVIG licensing exists in the repo. Tim's recollection is most plausibly of the TGA training-package clearance, which does exist and is recorded — a different corpus from the CVIGs.

Document Claimed licence for National Register / TGA content
docs/docs/briefs/copyright-disclaimer.md CC BY-ND 3.0 AU — "No derivatives are permitted — unit descriptors and qualification content must not be modified, reworded, or adapted"
trust-docs/docs/legal/copyright.md CC BY 4.0 — "This licence permits sharing and adaptation of the data provided attribution is given"

ND versus BY 4.0 is the difference between "must not be modified" and "may be adapted." Both are public-facing. RTOpacks generates derived material from TGA descriptors, so which one is correct is load-bearing, and the two live pages currently give opposite answers. Out of this brief's scope; flagged because it surfaced while searching and because it bears directly on V-P2P-010.


5 · WHAT WAS NOT DONE, AND WHY

  1. versions/ prefixes other than training/ were not enumerated. The brief scoped Job 1 to versions/training/. The ≥144,674 whole-prefix figure therefore remains unclosed for versions/organisations/ and any sibling.
  2. The same-length sample is n=100, as specified. It bounds the error rate at that size; it does not prove zero across 84,723.
  3. last_modified was not used. The list API returns last_modified, not uploaded; snapshot dates in this report come from the key itself ({code}/{YYYY-MM-DD}.json), which is the authored snapshot date rather than the object's write time. Where those differ, this report reflects the key.
  4. The 78 missing Current codes were not investigated — whether they are genuinely absent upstream, or absent from our capture, is a further question and requires a TGA call, which is forbidden here.
  5. The 69,637 excess codes were not classified against the mirror's non-Current statuses. Their shape (69,559 alphabetic / 78 numeric) is reported; their composition is not.

6 · JOB ACCOUNTING

R2 list calls: 435 · R2 object GETs: 210 (5 differing series × 2, plus 100 sample × 2) · D1 SELECTs: 8, all rows_written: 0. Zero writes of any kind. Zero TGA requests. Zero 429. Crawl wall-clock 467 s.


Least sure, and what would make this wrong. §1.5's materiality claim rests on five objects read once each; if the four releases changes are re-serialisations rather than genuine new releases — i.e. TGA re-emitting the same release set in a different order or with a refreshed currencyChangeDate — then the count of real events is lower than five and possibly zero, and only PSPMGT003 survives as a true capture. Distinguishing those needs a field-level diff of the releases arrays, which I did not run. Second, §1.4's 0.0% rests on a deterministic every-847th sample; a systematic edit affecting only codes that sampling stride skips would be invisible to it, and stride-aligned blindness is a real failure mode for deterministic sampling in a way it is not for random sampling — the brief specified deterministic and I followed it, but that is the trade it makes.