QA: what #199 shipped — 3D basisvoorziening: is it worth wiring in? #241

Closed
opened 2026-08-31 00:41:40 +00:00 by viberfox-agent · 2 comments
Collaborator

Issue #199 (“3D basisvoorziening: is it worth wiring in?”) was built and merged by the unattended lane, and nobody has used it. Walk what it delivered as a player would meet it.

This is a QA pass, not a build. Change no code and open no pull request on this
ticket — the deliverables are findings.

  1. Exercise it for real. Run what a player would touch, headlessly: cargo run -p cartopolis_simulator with a client or a wire/HTTP probe for anything online, the
    loopback tests, cargo run -p cartopolis -- --shot … --dump-state for anything with
    geometry. CLAUDE.md lists every harness. If part of this genuinely needs a screen, a
    phone or a microphone, verify the half a machine can reach and name the half it cannot.
  2. Walk the user's journey, not the happy path. At each step ask what a real user
    would obviously expect to be able to do next — then try exactly that. A refusal or an
    absence that would surprise a user is a finding even when every implemented piece
    works: registration worked, claiming a house worked, and a registered account still
    could not claim a house. No test failed; a user hit a wall.
  3. File each real gap as its own issue: title starting gap:, label qa-gap, with
    what you did, what happened, what a user would expect instead, and where in the code
    the seam is. Use the Forgejo API with the FORGEJO_TOKEN in your environment. Do not
    label them autonomous — a person decides which gaps become work.
  4. Report and close. Your final message: what you exercised, what held, what you
    filed. Nothing found after a genuine pass is a good outcome — say what you checked.
    Then close this ticket through the API; a QA pass has no branch to merge.

Decide it yourself. Nobody is watching this ticket; a question asked here is a
ticket that stops. Judge by what a reasonable player would expect, verify before
claiming, and never post credentials or file contents from outside the repository.

Filed by the autopilot.

Issue #199 (“3D basisvoorziening: is it worth wiring in?”) was built and merged by the unattended lane, and nobody has used it. Walk what it delivered as a player would meet it. **This is a QA pass, not a build.** Change no code and open no pull request on this ticket — the deliverables are findings. 1. **Exercise it for real.** Run what a player would touch, headlessly: `cargo run -p cartopolis_simulator` with a client or a wire/HTTP probe for anything online, the loopback tests, `cargo run -p cartopolis -- --shot … --dump-state` for anything with geometry. CLAUDE.md lists every harness. If part of this genuinely needs a screen, a phone or a microphone, verify the half a machine can reach and name the half it cannot. 2. **Walk the user's journey, not the happy path.** At each step ask what a real user would obviously expect to be able to do next — then try exactly that. A refusal or an absence that would surprise a user is a finding even when every implemented piece works: registration worked, claiming a house worked, and a registered account still could not claim a house. No test failed; a user hit a wall. 3. **File each real gap as its own issue**: title starting `gap:`, label `qa-gap`, with what you did, what happened, what a user would expect instead, and where in the code the seam is. Use the Forgejo API with the `FORGEJO_TOKEN` in your environment. Do not label them `autonomous` — a person decides which gaps become work. 4. **Report and close.** Your final message: what you exercised, what held, what you filed. Nothing found after a genuine pass is a good outcome — say what you checked. Then close this ticket through the API; a QA pass has no branch to merge. **Decide it yourself.** Nobody is watching this ticket; a question asked here is a ticket that stops. Judge by what a reasonable player would expect, verify before claiming, and never post credentials or file contents from outside the repository. <sub>Filed by the autopilot. <!-- autopilot:qa-reverify-199 --></sub>
Author
Collaborator

🤖 Picked this up — working on branch feat/241-qa-what-199-shipped in a fresh worktree on the VPS. I'll report back here when I'm done.

Label an issue agent:skip to keep me off it, or driven to keep it in a session you are driving.

🤖 Picked this up — working on branch `feat/241-qa-what-199-shipped` in a fresh worktree on the VPS. I'll report back here when I'm done. <sub>Label an issue `agent:skip` to keep me off it, or `driven` to keep it in a session you are driving.</sub>
Author
Collaborator

I changed no code — issue #199 shipped documentation only, so there was nothing for a player to touch and nothing to build.

What #199 actually delivered

A decision, not a feature: the Kadaster's 3D basisvoorziening was checked against the live service and rejected, recorded in a new note (docs/notes/3d-basisvoorziening.md) plus pointers from two existing notes and the frontier table. No client code, no wire messages, no geometry. So the screenshot harness, the loopback tests and the simulator had nothing to exercise, and I did not run them.

What I could exercise was whether its measurements are true. I re-ran its own reproduction appendix against the live service and re-derived every number from the downloaded data.

What held

Everything. Re-measured 2026-08-31:

  • All 8 collections present, keyless, CC BY 4.0 stated on the landing page.
  • /items really is an index of downloadable sheets, not a per-feature query — 26 sheets over Groningen, each carrying a download link and a size, 2 km blocks since 2021.
  • The download host answers 302 with a 5-byte "Found" body without curl -L, as warned.
  • The three measured blocks match to the byte: 15,737,752 / 14,100,639 / 44,824,991.
  • The finding the whole decision rests on reproduces exactly: 29,325 objects, 539,829 vertices, geometry at levels of detail 0 / 1.2 / 1.3 / 2.2 and no higher, surfaces only ever wall, roof or ground — no openings, so no level-of-detail 3. The building identifiers are BAG identifiers and the reconstruction attributes are the 3DBAG pipeline's, so this is the dataset the client already streams.
  • The 2025 combined block carries no buildings despite its description promising them; the 2022 one does. Both confirmed.
  • The bridge decks, the relief statistics and the 12,228,609,219-byte national terrain zip all match.
  • The claim about our own code is right too: the 3D Tiles delivery requires two glTF extensions, and bevy's own support table marks both unsupported.
  • Every file-and-line reference in the note still points at what it says it does.

What I filed

One gap: #242 — the bridge-decks work is queued against the wrong blocker. docs/direction.md still says that ticket needs "a deck height the register does not carry", and it is the only trace of that ticket (no open issue exists). But docs/notes/bridge-heights.md — which #199 itself edited — says the height is measurable from the national height model, adds a second source that carries it, and states plainly that the real constraint is that approach roads are drawn flat. Nothing #199 shipped is wrong; the decision just never reached the document the unattended lane reads, so the next session will hunt for a height source that has already been found twice.

Two small things I did not file

Not worth a ticket, but wrong in a note whose value is trustworthy numbers:

  • It says 33 reconstruction attribute fields; there are 32. Every field it names by hand does exist.
  • It says the 2025 combined block is "every one at level of detail 1.2"; 720 of the 32,647 objects are at level 1 — the vegetation patches the same note describes separately.

What remains unverified

The note's broadest claim — that no national Dutch level-of-detail 3 dataset exists anywhere — is a statement about the world that I cannot exhaustively check. I confirmed only that this source has none.

The branch has no commits and nothing to merge. I closed #241.

No commits were made.


🤖 viberfox issue agent on the VPS — 37 turns · $2.99 · session 69277d09-92e5-49e8-ac8a-3a2d7bf9f1ad. Reply with @agent to continue this session.

I changed no code — issue #199 shipped documentation only, so there was nothing for a player to touch and nothing to build. ## What #199 actually delivered A decision, not a feature: the Kadaster's 3D basisvoorziening was checked against the live service and rejected, recorded in a new note (`docs/notes/3d-basisvoorziening.md`) plus pointers from two existing notes and the frontier table. No client code, no wire messages, no geometry. So the screenshot harness, the loopback tests and the simulator had nothing to exercise, and I did not run them. What I could exercise was whether its measurements are true. I re-ran its own reproduction appendix against the live service and re-derived every number from the downloaded data. ## What held Everything. Re-measured 2026-08-31: - All 8 collections present, keyless, CC BY 4.0 stated on the landing page. - `/items` really is an index of downloadable sheets, not a per-feature query — 26 sheets over Groningen, each carrying a download link and a size, 2 km blocks since 2021. - The download host answers 302 with a 5-byte "Found" body without `curl -L`, as warned. - The three measured blocks match to the byte: 15,737,752 / 14,100,639 / 44,824,991. - The finding the whole decision rests on reproduces exactly: 29,325 objects, 539,829 vertices, geometry at levels of detail 0 / 1.2 / 1.3 / **2.2 and no higher**, surfaces only ever wall, roof or ground — **no openings, so no level-of-detail 3**. The building identifiers are BAG identifiers and the reconstruction attributes are the 3DBAG pipeline's, so this is the dataset the client already streams. - The 2025 combined block carries no buildings despite its description promising them; the 2022 one does. Both confirmed. - The bridge decks, the relief statistics and the 12,228,609,219-byte national terrain zip all match. - The claim about our own code is right too: the 3D Tiles delivery *requires* two glTF extensions, and bevy's own support table marks both unsupported. - Every file-and-line reference in the note still points at what it says it does. ## What I filed One gap: **#242** — the bridge-decks work is queued against the wrong blocker. `docs/direction.md` still says that ticket needs "a deck height the register does not carry", and it is the only trace of that ticket (no open issue exists). But `docs/notes/bridge-heights.md` — which #199 itself edited — says the height is measurable from the national height model, adds a second source that carries it, and states plainly that the real constraint is that approach roads are drawn flat. Nothing #199 shipped is wrong; the decision just never reached the document the unattended lane reads, so the next session will hunt for a height source that has already been found twice. ## Two small things I did not file Not worth a ticket, but wrong in a note whose value is trustworthy numbers: - It says 33 reconstruction attribute fields; there are 32. Every field it names by hand does exist. - It says the 2025 combined block is "every one at level of detail 1.2"; 720 of the 32,647 objects are at level 1 — the vegetation patches the same note describes separately. ## What remains unverified The note's broadest claim — that no national Dutch level-of-detail 3 dataset exists anywhere — is a statement about the world that I cannot exhaustively check. I confirmed only that this source has none. The branch has no commits and nothing to merge. I closed #241. _No commits were made._ --- <sub>🤖 viberfox issue agent on the VPS — 37 turns · $2.99 · session `69277d09-92e5-49e8-ac8a-3a2d7bf9f1ad`. Reply with **@agent** to continue this session.</sub>
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jeroen/cartopolis#241
No description provided.