What is built, what is faked, and what is not

The whole system in one page: twenty registered tools and thirteen hops from a reading in the water to a published record, each carrying two answers rather than one. Is it built, and is there a synthetic stand-in that lets the rest of the chain run without it? Absent layers are drawn as absent rather than left off the diagram.
v0.3
A tool inventory that only lists what exists is marketing. This page shows the gaps in the same picture as the capabilities, and adds the axis that decides what can be worked on this month: where a synthetic stand-in exists. A chain whose every stage has a stand-in can be run end to end before any hardware is bought, which is the only cheap way to find out whether the chain holds together. Where the stand-in is missing, the chain stops there, and that is a different kind of gap from a missing feature.
BUILT · works today PARTIAL · exists, incomplete ABSENT · nothing built DARK · built, no data flowing SYNTH · stand-in that lets the next hop run
01 The data path: a reading in the water to a decision someone defends

Each hop carries its build status on the right, and underneath the description, two lines: what stands in for it today, and what the real thing would be. Read the synthetic lines top to bottom and you get the answer to the only question that matters before hardware exists, which is how far a run can get.

01

Sense

A device on a boat or a mooring takes a reading. Three sensors: water temperature, light, and GPS position. That is the honest list, and it is what makes today's survey a temperature and position survey rather than a habitat survey.

SyntheticNone. The firmware is real and there is no simulated device that speaks it. Exercising the layers above means either powering a board or hand-writing rows further down the chain.
RealBoards in the water on a schedule, reporting temperature, light and position with their own capture stamps.
firmware v4.55 · temperature, light, GPS
built, darksynth none
02

Sense the habitat (sonar)

Side-scan or single-beam returns, which is what turns position and temperature into an actual map of what is on the seabed. Nothing is built. No echosounder, no ingest, no log reader for any sonar format. Every depth in the system today is either an open bathymetry grid or a synthetic distance-to-coast stand-in, labelled as such where it is displayed.

SyntheticNone, and this is the cheapest one missing. There is no fake scanner emitting fake returns in any log format. A generator writing plausible returns over the existing distance-to-coast surface costs days, needs no hardware, and would let every hop above it be exercised on habitat data for the first time.
RealAn echosounder on the hull, plus a reader for whatever format it logs, plus the classification step that turns returns into cover rather than depth.
requires a hardware purchase plus a log reader that does not exist
Nothing to open. No surface reads a sonar log.
absentsynth none
03

Carry

Device to cloud over cellular, with a store-and-forward buffer so a reading taken out of coverage is not lost. The device stamps its own capture time, which is what lets a late arrival be placed correctly rather than at the time it happened to land.

SyntheticPartial. A payload can be posted by hand and travels the real route, so the transform and the columns get tested. Nothing simulates the part that matters here: a buffered reading arriving hours late and being placed by its capture time rather than its arrival.
RealCellular carry with the buffer genuinely exercised by gaps in coverage, which is a thing only a real outing produces.
Notecard · Notehub
Triton, where carried readings arrive Tritonopen The carry itself is a Notehub console we do not own. Triton is where its arrivals show up.
builtsynth partial
04

Map to the contract

A versioned transform turns the device payload into database columns. Versioned deliberately, and deployed in a fixed order: columns first, mapping second, and only then the app that reads the new fields. A consumer shipped early fails against columns that do not exist yet.

SyntheticYes. A hand-written payload exercises the whole transform, and the route contract check runs offline against fixtures. This hop is fully testable with no device in existence.
RealThe same transform, with the payload arriving from a board instead of a keyboard. No code difference, which is exactly why the stand-in is trustworthy here.
route contract v1.0.4, deployed 2026-07-31
A transform and a contract file. Nothing to look at, which is correct.
builtsynth full
05

Store

Rows land in a table with their provenance intact: where, when, by what, and at what quality. Readings are never overwritten.

SyntheticYes. Synthetic rows are stored exactly like real ones, carrying synthetic in the provenance field, so nothing downstream has to guess what it is reading. That labelling is the reason the whole system can run on fake data without lying.
RealThe same table, with rows stamped local instead. The distinction lives in one field, and every surface reads it.
Supabase · locations
Helm, the project console, showing each dataset and its provenance Helmopen The table is private. Helm is the surface that declares what is in it and where each field came from.
builtsynth full
06

Score

Every reading gets a trust score combining where it was taken, when, and how well. The design choices here are the ones that matter: a weak reading is down-weighted rather than discarded, a lone weak reading is flagged as needing replication rather than deleted, and a bad reading collapses toward zero instead of poisoning the average it sits in.

SyntheticYes. The trust and provenance layer is real code and it currently runs on synthetic input only. Scoring a made-up reading is a genuine test of the model, since the model never sees the water, only the metadata.
RealThe same scoring over readings whose age, position and instrument quality were not chosen by whoever wrote the fixture. Real data is what tests whether the weights were set sensibly.
strength model · curation gate · provenance vocabulary
builtsynth full
07

Aggregate to cells

Readings become a per-cell surface. One known defect: two grid systems are currently in play on one map, an H3 hex grid and an equal-angle grid, visible only because one layer is turned off by default. Converging on one is open work.

SyntheticYes. A full synthetic per-cell surface renders today over a committed landmask, which is how the grid defect became visible at all. The stand-in is doing its job: it found a bug before any real survey could.
RealCells whose values come from enough readings to have a distribution, rather than one invented number per cell.
H3 · equal-angle · landmask at 60 m
partialsynth full
08

Compare

The per-cell surface against the known 2017 extent. Until recently a point-in-polygon test treated the old map as ground truth and deleted every observation outside it, which on the committed snapshot discarded 7 of 13 cells. The product exists to find where the meadow is not where the map says, so that was the worst defect in the system. A cell outside the 2017 polygon now renders as disagreement and is counted as disagreement.

SyntheticYes. Synthetic cells compared against a real historical polygon, which is the mix that caught the deletion bug. One side of the comparison being invented does not weaken the test, because what is being tested is the comparison rule.
RealThe same comparison where a disagreement means someone should go and look, rather than meaning the generator put a cell there.
Tessera · meadow-compare · pinned by contract
builtsynth full
09

Publish and hold

Version a season's result, freeze it so it cannot be silently altered, and transfer custody to the municipality. This is what makes the difference between a record and a report, and it is the hinge of the whole sovereignty claim. Not built. The persistence migration is written and has never been applied.

SyntheticNone. Nothing produces even a fake frozen season: no versioned result object, no custody handover, no artifact that behaves like a held record. Every hop below this one therefore has no input to run against, real or invented.
RealA season's surface written once, checksummed, versioned, and handed to a municipal holder who can produce it later without asking us for it.
migration written, unapplied
Nothing to open. No frozen season exists to be shown.
absentsynth none
10

Model

What the meadow does next under a given plan. The Posidonia model is a single-box model, not a per-cell simulation, so the honest interim output is a per-cell surface of observations rather than predictions. The engine also does not yet take survey quality as an input, which means better surveying does not visibly improve the model.

SyntheticYes. The model runs end to end on synthetic forcing and produces scenario output today. That output is a demonstration of the mechanism, not a forecast, because nothing it consumes has been measured.
RealPer-cell dynamics forced by measured conditions, taking survey quality as an input so that a better survey visibly narrows the result.
Proteus · Nereus · Meadow Futures · Nomos
partialsynth full
11

Act

Route what the comparison found to whoever can act: an anchoring proposal, a restoration priority, a practice change, a budget line. Monitoring nobody acts on is a hobby, and this is the layer that stops it being one.

SyntheticPartial. An action can be created and displayed from a synthetic finding, so the object exists. Nothing simulates the routing: no fake owner, no fake acceptance or refusal, no fake clock running on a due date.
RealA finding routed to a named holder who accepts it, declines it, or lets it lapse, with that response recorded against the finding.
Kairos · Helm
partialsynth partial
12

Decide (the policy change)

The stage where evidence becomes a rule: a no-anchor zone drawn at a boundary the survey found, a seasonal closure, a permit condition, a changed mooring practice. This is where the whole chain is either worth its cost or is not, and nothing is built for it. No decision object, no record of what evidence a rule rested on, no way to look at a rule two years later and find the survey behind it.

SyntheticNone. There is no fake zoning change and no worked example carrying a decision from a cell of disagreement to a boundary on a chart. That stand-in is pure paperwork, needs no hardware and no partner, and it would answer the question the chain is really being built to answer: is what the survey produces actually enough to justify a rule?
RealA decision record: the rule, the evidence version it rests on, who made it, and what happens to it when the next season's record disagrees.
nothing registered · depends on hop 09 for a citable record
Nothing to open. No decision object, no rule with an evidence version attached.
absentsynth none
13

Record (the science, and what it costs)

Seasons stacked into a time series honest enough that someone can publish against it, or argue with it. That means the method, the sampling effort, the trust scores and the known defects travelling with the numbers, so a reader can see what the series can and cannot support. Nothing is built. There is one snapshot, not a series, and no format for shipping the method alongside it.

SyntheticNone. No multi-season synthetic series exists, so an obvious and cheap question is unanswered: across several invented seasons, with realistic noise and realistic coverage gaps, would a real change be detectable at all? A generator would say whether the survey design can see what it claims to look for, before a single season is spent finding out.
RealSeveral seasons of held records with their method attached, and the trade-off stated plainly: dense community coverage at modest instrument quality buys frequency and local reach, and it costs precision. A series that hides that trade-off is not usable science, and one that states it can be argued with, which is the point.
requires hop 09 first · no series, one snapshot
Nothing to open. One snapshot is not a series, and there is no format for the method to travel in.
absentsynth none

The whole chain is dry at the top

Hops 1 and 3 to 6 are built and tested, and no live data has moved through them since 8 July 2026, because the sensor fleet is dark. Everything currently rendered on every map in this system is synthetic, labelled as synthetic at the point of display. The protocol is real; the water is not in it yet.

02 The tools, and what each one really is

Registry status is what platform/apps.json declares. Build status is what the code supports. Where they disagree, the disagreement is the useful information. The synthetic column asks a separate question: can this tool be run and shown with nothing real behind it, and if so, what exactly is it faking?

ToolRoleRegistryBuildSynthetic stand-inWhat that means
TritonTritonSensor fleetexistsdarknoneNo simulated device reports in.The fleet view works. There is no fleet reporting into it, real or fake.
ReckoningReckoningData scrape and sensor fusionexistsbuiltpartialConsumes synthetic rows, generates none.Ingest and fusion layer, running, and everything it has fused so far was invented upstream.
TesseraTesseraEcosystem mapexistsbuiltfullA whole synthetic per-cell surface.The comparison surface. Where disagreement with the 2017 map is drawn, currently from synthetic cells.
HelmHelmHost and project consoleexistsbuiltnoneHolds no data of its own to fake.The project dashboard everything else hangs off. It shows whatever the other tools hold.
KairosKairosActionsexistspartialpartialA synthetic finding, never a synthetic owner.Action layer exists; the routing from a finding to an owner is thin, and untested even in simulation.
ProdromosProdromosConcept demo pipelineexistsbuiltfullIts whole output is a stand-in.Makes a demo before a build exists. New, already producing, and the one tool whose purpose is this column.
ProteusProteusLocal twin creatormvppartialfullRuns on synthetic forcing.Single-box model, not per-cell. Everything it has been forced with was generated.
NereusNereusTwin integratormvppartialpartialInherits its twins' synthetic forcing.Integrates twins that are themselves partial, so it has no fixture of its own to fail against.
PortolanPortolanSurvey routingmvppartialpartialPlans over synthetic distance-to-coast depth.Plans a survey and exports a route nothing currently reads back in, over depths nobody measured.
PeriplusPeriplusSurvey executionexperimentalpartialfullA whole working day: speed, depth, sea state degrading quality, coverage, fuel, time.The best stand-in in the system, and it persists nothing, so the day it simulates evaporates instead of feeding the next hop.
StewardStewardMeadow health checkmvppartialfullFixed numbers, and only fixed numbers.Declared field-ready. Actually a print brief with hardcoded values, which makes it entirely a stand-in with no path yet to a real one.
Meadow FuturesMeadow FuturesForecast and actmvppartialfullSynthetic baselines under real credit prices.Scenario model. Prices now sourced rather than placeholder, which leaves the ecology as the invented half.
NomosNomosCommons futuresmvppartialfullGovernance scenarios, synthetic by construction.Governance and commons scenarios. Nothing here was ever going to be measured; the honesty question is whether the rules are plausible.
PharosPharosRoutingmvppartialpartialSame synthetic depth stand-in as Portolan.Routing surface. Overlaps Portolan; the consolidation is undecided, and both fake the same input.
AugurAugurRiskmvppartialpartialRisk over inputs that are themselves invented.Risk surface over partial inputs. A risk number derived from synthetic inputs is a demonstration of the arithmetic.
ArgusArgusContext scanmvpbuiltnoneNo synthetic site to scan.Site context intake, reading real sources. Feeds the project manifest, and a new coast cannot be rehearsed before it exists.
MeridianMeridianProject definitionmvpbuiltpartialDeclares a slot synthetic; is not itself faked.Writes the project config that every app reads. It is where the word synthetic enters the system, which is why the labelling holds everywhere else.
AqueductAqueductFlow explainerexperimentalpartialfullWorked examples with invented values.Explanatory surface, not on the delivery path, so being entirely synthetic costs it nothing.
Product MapProduct MapReference surfaceexperimentalbuiltnoneA picture, with nothing to stand in for.Actors, tools and the survey cycle in one picture. The absence here is not a gap.
no surfaceSoundingSite researchscopedabsentnoneNeither real nor faked.Scoped and not started. The registry says so, which is the registry working.

Table scrolls sideways · synthetic column sits after build status

Four tools claim survey territory and one of them is in no registry

Portolan plans, Periplus runs, Pharos routes, and a separate community survey planner exists outside the registry entirely. Steward is declared a field-ready health check and is a print brief with hardcoded numbers. Deciding which one is the planner is open work, and it is the kind of overlap that grows quietly: this toolset already produced two mapping surfaces that were hard to tell apart.

03 Why the fake chain matters more than any one real part

A system where every stage has a synthetic stand-in can be run from end to end before any hardware is bought. That run is the cheapest test there is of whether the chain holds together: whether the shapes fit, whether the labels survive the trip, whether the thing at the far end is worth the thing at the near end. Where a stand-in is missing the run stops, and everything past that point is untested design rather than working software.

This chain has four stops in it. They are listed below in the order a run hits them.

No simulated device (hop 01)
BlocksStarting a run at the beginning. Nothing speaks the firmware's payload except the firmware, so a run has to be started at hop 03 by hand-writing what a device would have sent. That is enough to test the transform and the columns, and it is not enough to test the thing the carry layer exists for, which is a reading that arrives late and still lands in the right place.
No fake scanner (hop 02)
BlocksHabitat data of any kind. Everything above hop 02 has only ever handled temperature and position, so the ingest, scoring, aggregation and comparison layers have never once been run against seabed cover. The cheapest fix on this page: a generator writing plausible returns needs no boat, no echosounder, and no partner.
No fake held record (hop 09)
BlocksHops 12 and 13, completely. A policy decision cites a record and a time series is made of records, so with no artifact that behaves like one, neither stage has an input to be built against. This is why the two new hops are absent twice over: nothing is built, and there is nothing for them to be built against.
No fake decision and no fake series (hops 12 and 13)
BlocksThe two questions the whole system exists to answer. Is what a season produces enough to justify a rule, and across several seasons would a real change be visible through the noise? Both are answerable on invented data, today, with a worked example and a generator. Neither has been asked.

What the good stand-ins already prove

Periplus simulates a full working day: speed, depth, sea state degrading data quality, coverage accumulating, fuel and time draining. That is a genuine survey stand-in and it is the reason a survey day can be reasoned about before anyone has run one. Prodromos exists to make a demo before a build does. The trust and provenance layer is real code that has only ever scored invented readings, and it works. Between them they show the pattern: the parts of this system with stand-ins are the parts that have found their own bugs, and the grid defect and the deleted-cells defect were both caught on synthetic data. The stages with no stand-in have never had the chance to fail, which is not the same as being sound.

04 The work path: an idea to a live artifact

The other pipeline, and the one that keeps the first one honest. Each step is cheap and checkable, and most of them fail loudly rather than passing quietly.

Step 1 · Assess

Before any file exists, the idea is matched against the questions we know how to ask and the tools already built. The check can return stop and reconsider, and that verdict is binding. Bespoke is a first-class answer: a one-coast surface does not belong in the shared toolset.

Step 2 · Register

A new tool gets its slug, name, role and status in the registry before it gets a file. A tool that exists as a file but not in the registry is one nobody can be told to use.

Step 3 · Define the project

One config file per coast, declaring every input slot's honest provenance: local, open, derived, calibrated, synthetic, pending or none. Apps read the config, so a second coast is a config swap rather than a rebuild. Synthetic is a legal value on purpose, which is what lets a stand-in run in production without pretending.

Step 4 · Gate the artifacts

Generated artifacts are validated against schemas and fail on unresolvable citations. A manifest that proposes a tool for every question fails on purpose, because a system that always has an answer is not answering.

Step 5 · Build the ground

A coastline is fetched once per region and turned into a committed landmask. Painting cells over water without one is how a map ends up asserting things about land.

Step 6 · Version the surface

Every change copies to a new file and repoints a stable alias. The old version is never edited and keeps being served, so the previous state stays reachable and any claim about what changed can be checked by opening two tabs.

Step 7 · Record the evidence

Claims carry verdicts: verified, partly true, incorrect, or unverifiable. A claim with no verdict is a draft, not a fact.

Step 8 · Check before publishing

A route contract confirms every alias resolves to a file that will actually deploy, and a privacy policy held separately from the host config confirms nothing internal became public. Both run on push and both fail closed.

05 The short version
What genuinely works

The carry, contract, store and score layers, which together are the part that makes community-collected data defensible. The comparison surface. The versioning and route discipline that keeps the past reachable. That is the protocol, and the protocol is the product.

What is absent

Habitat sensing, so this is a temperature and position survey. Publication and custody, so nothing is yet a held record. Downstream of those, the policy decision and the scientific series, which are absent because nothing upstream has yet produced the thing they would consume.

What is thin

Survey execution simulates a day well and persists nothing. The model is single-box and ignores survey quality. Two grids ship on one map. Four tools overlap on survey territory. None of these is a crisis; all of them are known.

What can be faked, and what cannot

Eight of thirteen hops can be run on stand-ins today, which is why the middle of the chain is the tested part. Five have no stand-in at all: the device itself, the scanner, the held record, the policy decision, the multi-season series. Not one of the five needs hardware or a partner to fake, only the decision to build the fake.

What has no data

All of it, since 8 July 2026. Every figure on every map is synthetic and says so where it is displayed. The first real outing is the next stage, and until it happens the honest claim is about method rather than measurement.