Guardrails and locked content
The rules admins set on modules, enforced by Stensul on every change. What an assistant sees when it hits one, and why it must not work around it.
Guardrails are the rules an admin attaches to modules and elements: which colors are allowed, how long a heading can be, whether a font size can change, whether an element can be hidden, which values a custom variable accepts. Locked content, such as legal footer text, can’t be edited at all.
Stensul enforces both on its own servers, on every change, whoever makes it. An AI host can’t override them, however it’s prompted.
What the assistant sees
In a plan read, guardrails arrive in a deduplicated guardrailProfiles table, referenced from each element by guardrailRef. An assistant reading the email knows the limits before it writes.
When a write breaks one anyway:
You: Make the button background hot pink (#FF00AA).
Assistant: ▸ stensul-update-email-content
Stensul: Declined: background color is outside the module's palette.
Other changes in this call were applied.
Assistant: I updated the copy, but that button's color is locked to your
brand palette, so it's unchanged. Want me to pick an approved one?
Illustrative exchange. The exact wording comes from your account’s rules. The rest of the change still lands. The violating part doesn’t.
The rule for anyone building on the MCP
A declined change is an answer, not an obstacle. Don’t retry it reshaped, don’t copy the email to try again, don’t split it into smaller steps. Report it. The server’s own instructions tell every host the same thing, and it’s why teams trust the output.
Brand and accessibility checks
Separately from guardrails, admins can make accessibility and brand checks mandatory per library, such as subject-line length or leftover placeholder text. A mandatory check that fails blocks the draft from being completed until someone fixes it. See Previews and quality checks.