Ratified Design Philosophy
also known as Owner-Ratified Design Authority, Self-Learning Design Review Skill, Living Design Direction
Give a design or review agent one living design authority that holds the owner's ranked principles and their reasons, learns from every correction, and changes only through the owner's ratification.
Context
Coding agents now build and change most of the user interface of a product with many themes, platforms, window sizes and display modes. Each change is local: the agent sees one screen, styles it until it looks right, and moves on. The product owner has a clear sense of what the product should feel like, but only part of that sense can be written as checkable rules, and the rest lives in reasons, priorities and taste that come out one correction at a time.
Problem
Rules alone are applied to the letter and miss the intent. An agent told to use no hardcoded colours will still give one screen its own card, its own spacing and its own selected state, because nothing told it that two looks for one meaning is a defect. Left to its own taste, the model regresses to an average, safe look and narrows a deliberately wide range of styles toward a tasteful middle. Each local fix adds code instead of retiring it, so agent-written interface code grows while consistency falls. Letting the agent rewrite its own guidance fixes the staleness but not the drift, because its unreviewed choices quietly become the direction.
Forces
- Checkable rules can be enforced mechanically but cover only the measurable part of a design direction; principles cover intent but need judgement to apply.
- An agent that learns from every correction stays current, while one that learns without review drifts away from the owner's taste.
- Fixing the screen in front of the agent is fast and local; fixing the shared component retires many deviations at once but touches every screen.
- Asking the owner when the direction is unsettled costs a round trip; guessing costs a silent choice that later has to be found and reverted.
- A large existing body of deviations cannot be fixed at once, yet new deviations must stop now.
Example
A coding agent is asked to restyle the settings screen of a handcraft-related app. Its design guide tells it that one meaning gets one look, so instead of giving the screen its own green selected chip it fixes the shared chip, which changes twenty other screens too. It is unsure whether a new badge counts as a status or a label, so it asks the owner, who answers that status colours never colour words. The agent writes that answer into the guide with the date and the owner's words, and the design check now fails any new coloured status text.
Diagram
Solution
Therefore:
Write the design direction as a single document the agent loads for any design work, not only for reviews. It opens with the philosophy: why the product exists and a short ordered list of principles, each with its reason, so a conflict between two good options is settled by rank rather than by taste. A section of decided direction holds the owner's rulings, each dated and quoting the owner's own words, and the agent applies them without asking again. Where neither the principles nor the rulings answer a question, the agent asks the owner with options and a recommendation before rating anything a defect. Every choice the agent makes on its own goes into a choices log as proposed, and the owner either accepts it, which moves its rule into the decided direction, or rejects it, which reverts it. The document learns on every use within a narrow, owner-granted scope: a correction becomes a dated rule, a mistake that cost a round becomes a check in the protocol, and a superseded rule is rewritten or deleted so two rules never disagree. Each finding names the rule it breaks and the one shared component where the fix belongs, so a fix improves every screen and removes local code instead of adding it. A static sweep counts the textual deviations, such as colour literals and local touchables, and a test fails any count that rises above a committed baseline; a batch that removes deviations lowers the baseline in the same commit.
What this pattern forbids. The agent must not treat its own design choices as direction until the owner ratifies them, must not fix a deviation locally when a shared component owns the job, and cannot raise any sweep count above the committed baseline.
The smaller patterns that complete this one —
- usesAgent-to-Rule Distillation★— Watch production traces for problems the agent solves the same way repeatedly, and promote each recurring solution into a deterministic rule outside the agent, so the stochastic surface shrinks as the system matures.
- usesDisambiguation★★— Have the agent ask a clarifying question before acting on an ambiguous request.
And the patterns that stand alongside it, or against it —
- complementsAgentic Golden Path★— Constrain an agent to the platform's curated golden path of living, machine-readable standards and check for drift as it works, so its output is compliant by construction rather than corrected later.
- complementsContext-Driven Architecture Drift✕— Anti-pattern: let a coding agent change a brownfield codebase guided only by the files it can see, so it silently violates the architecture conventions that live in nobody's machine-readable form.
- alternative-toAgentic Context Engineering Playbook·— Treat the agent's system prompt and long-lived memory as a structured, item-addressable playbook that evolves through small delta updates from a Generator/Reflector/Curator loop, so accumulated tactics resist the context collapse that monolithic rewrites cause.
- alternative-toConstitutional Charter★— Define rules the agent reads every turn but cannot modify, encoding inviolable boundaries.
- alternative-toFrozen Rubric Reflection★— Constrain reflection to a fixed, hand-authored rubric of criteria so the reviewer cannot invent new ones each run.
- complementsSet-and-Forget System Prompt✕— Anti-pattern: state the agent's role and policy once in the turn-zero system prompt and assume it keeps binding, when attention to that block decays over turns while its text sits unchanged in context.
Neighbourhood
Click any neighbour to follow the language. Scroll to zoom, drag to pan.