Block D · Fetching from a paid service without surprise

Fetching without surprise

A fetch draws on a real balance, so the ceiling is a person's to set and the plugin's job is to make a spend bounded and visible — never to decide one is worth it. Every line in this block is a way of spending less, or of keeping what was bought.

the request a prompt, and the drawing it must match THE GATE silhouette_iou against the reference, before a credit moves a refusal costs nothing fetch.silhouette-mismatch a tall dome for a wide low cap [budget] a ceiling, agreed once not a question per fetch, and never the agent's call spent 18 / 200 KEPT the mesh, on your disk sha256 · prompt · seed service · version · cost the receipt and the thing The service deletes what it made seventy-two hours later. One Cottony run recorded the settings it proved and not the mesh, so the receipt outlived the thing that was bought.

The cheapest credit is the one not spent

A wide low cap was sent and a tall dome on a long stem came back: thirty credits to learn something a silhouette check against the drawing would have shown for nothing. The check runs before the request, and a mismatch is a refusal.

A ceiling, not a question each time

The rule that an agent may not spend on its own judgement is right, and enforcing it by asking every time is what stops work between approvals. A ceiling set once by a person, with a ledger of what has gone against it, is the same rule enforced in a way an agent can work inside.

The receipt must not outlive the thing

The service deletes what it made seventy-two hours later. One Cottony run recorded the settings it proved and not the mesh, and the mesh is now gone — so what comes back is copied locally with its sha256 and a provenance sidecar naming the prompt, the seed, the service, its version and the cost.

It arrives usable

A fetched mesh comes at an arbitrary orientation, scale and origin, and a photograph brings whatever stood behind the subject back as geometry. Both are fixed on the boundary: the axes and the origin are this project's conventions, and the background is removed before it can be fused into a mesh no camera move takes it out of.

The block itself

Six open lines, in the roadmap's own words

Each line names the failure it exists to remove and the measurement behind it. None of them has shipped. This list is generated from docs/ROADMAP.md, so it cannot describe a backlog the file does not have.

📋PW16a generated mesh's silhouette is checked after its credits are spentA wide low cap was sent and a tall dome on a long stem came back, which is thirty credits to learn something a silhouette check would have shown for nothing.
📋PW17a paid asset is deleted by the service seventy-two hours after it is madeOne run recorded the settings it proved and not the mesh, and the mesh is now gone, so the receipt outlived the thing that was bought.
📋PW18every fetch needs a human decision, so work stops between approvalsThe rule that an agent may not spend on its own judgement is right, but it is enforced by asking each time rather than by a ceiling agreed once.waits on PW17
📋PW19an unknown field is dropped in silence, so a payload that validates proves nothingLearning the schema takes a series of deliberately invalid values, each carrying a made-up field as its control, and none of that knowledge is kept anywhere.
📋PW20a fetched mesh arrives at an arbitrary orientation, scale and originThe service returned a hammer standing upright where the drawing leans it, and the correction was two angles found by re-rendering until it looked right.
📋PW21a reference photograph brings whatever stood behind the subject back as geometryA picture of a plush toy returned the logo the toy was sitting on, fused into the mesh, and no camera move takes it back out again.