GRIDD AI
An assistant in a planning product is not one more control. It is a second kind of content — output the product did not author — and the system's whole job is to make sure nobody mistakes it for a cited fact.
The one rule
So the components here are not a chat kit with a GRIDD skin. They are three answers to that one rule: generated content is marked, an offered action is provisional until a person accepts it, and what the model was and was not allowed to read is on the page.
Terra is the first consumer — its engine already carries the model gateway, the compiled self-knowledge and the eval gate, and these are the surfaces that were missing. The map's certification work is next, and it is the higher-stakes one: a draft condition on a certifier's job is exactly the output that must never quietly become a citation.
Why AI has no colour
The colour foundation states the budget: the map already carries a council's zone cartography, so every hue spent on chrome is a hue taken away from something that means something. Four status colours, a five-step assessment ramp and a published zone palette per council is what there is. A sixth vocabulary, competing with the cartography on every screen, to solve a problem on one, is not a trade this product can make.
So AI is identified the way this system identifies everything else it refuses to colour — by a mark, a shape and words. Exactly as the approval stack carries what approvals a property needs without a single hue.
Code
<GdAiMark />
<GdAiMark label="GRIDD AI" />
<GdAiMark label="Certifier check" :size="17" /> The three --gd-ai-* tokens all resolve to the accent today. They exist because the roles need names, not because the values are new: if a proposal's edge ever has to stop looking interactive, it moves in one place.
--gd-ai-mark#4740DB#8C86F0the GdAiMark glyph, and the ink of an assistant's name. Non-text at 14px and above; the words beside it take ordinary ink AA-nontext on --gd-surface
--gd-ai-edge#C4C0F6#3B3866the DASHED boundary of a proposal — the shape that says 'not accepted yet'. Decorative: the words inside carry the meaning, and the accept/discard buttons carry their own contrast
--gd-ai-sheen#EEF0FF#3B3866the moving highlight of the generative border, and the ground of an assistant's turn. A wash, never a fill behind text that has not been measured on it
Proposal, not action
This is the shape Terra's plan calls propose–record–approve, and GdAiProposal is it made visible. A proposal says it is provisional in three ways that survive independently of each other — a dashed edge, the mark, and a required line saying what accepting will do. Colour is deliberately not one of the three, because it is the signal that does not survive greyscale, a colourblind reader, or forced-colours mode.
Voice
- No disclaimers, no filler. "I'd be happy to help" and "As an AI" are noise. Lead with the answer.
- Say what is missing, not a number. The honesty policy's hardest case: asked for a figure that does not exist, the answer is that there is nothing to measure it from — never a plausible one. Terra's eval suite names four honesty cases and any one of them failing disqualifies a model outright, whatever its overall score.
- Scope beats disclaimer. "May produce inaccurate information" tells a planner nothing they can act on. "Reads this project's layers and Terra's toolbox" tells them which questions are worth asking.
GdAiPaneltakes that asscope, in the header, permanently.
The rest is the voice foundation: statutory terminology, sentences a person can act on, and never dressing a guess as data.
Rules
- Every assistant turn carries the mark. No exceptions, including a one-line answer.
- Anything the assistant offers to DO is a
GdAiProposalwith a concreteprovenanceline. An assistant with a bare "Apply" button is the pattern this section exists to prevent. - Sources go below the answer, and withheld sources are named. A licence that excluded something is information the reader needs, not an internal detail.
- Never a status hue for a planning meaning. An "Accepted" chip on a proposal means a person accepted it — never that development is accepted. The two words collide in this product and the components keep them apart.
- The panel docks; it never covers the map. The subject of the conversation has to stay on screen. See entry points.