Agent guidance
A concise, versioned guide to the stable browser contract for TankStockPlan.
Stable interactive contract
The interactive form is #planner. Each field uses id="field-<key>", name="<key>", and data-field="<key>" with a matching label. Submit the form to update #results. Result cards expose data-metric="<slug>" and add data-value="<number>" when the metric is a finite numeric value. This is a DOM contract, not a hosted API.
Method and evidence
Method version 1.0.0; reviewed 2026-09-11.
Estimate actual water volume from internal dimensions, fill height, and displacement, not the nominal tank label.
Check each species against entered adult-space requirements, minimum social group, and measured water ranges.
Keep cycle status, aggression, missing husbandry evidence, and other uncertainty visible. Passing numeric checks never becomes a guaranteed compatibility score.
Prioritize animal welfare. A specialist-reviewed husbandry plan and a properly cycled, stable aquarium are required; this calculator is not approval to add fish.
Indexing and privacy boundary
The homepage contains the interactive calculator and is the public entry point when the launch gate enables indexing. Preview builds remain noindex. Do not treat illustrative starting inputs as verified evidence.
Deep links and reference data
Tank-size reference pages under /tank-sizes/ link into the workspace using the same format the UI's Share fields button produces: /#plan=<url-encoded JSON>, where the JSON is {"version":1,"fields":{"length":<cm>,"width":<cm>,"height":<cm>,"fill":<percent>,"displacement":<liters>}}. This is a client-side hash contract, not a server API; unspecified fields keep their defaults.
A machine-readable copy of every published tank size is at /data/tank-sizes.json, with an asOf date and a source note.