---
title: "Asking for the change in words, and the engine executing a specification it can refuse."
seo_title: "Agentic editor: asking for the change in words | SazAI"
description: "Agentic editor: your request in words becomes a specification the engine executes, and refuses when it cannot resolve."
tags: [marketing]
---

> Asking for a change by conversation is the easy part to imagine and the hard part to do safely, because the obvious way out is to let the model touch the file. This house made the opposite division, and that division decides what an agentic editor can be here: the request becomes a specification, and the one who writes stays the engine.

<div class="chap">

<div class="ico-col"><sz-icon style="color:var(--verb-create)" name="chat" size="36"></sz-icon></div>

<h2 id="ask-becomes-a-spec">The request becomes a specification</h2>

<h3 class="sub">The model understands what you want; whoever opens the file and writes stays the engine</h3>

You say, in your own words, what you want changed in your document. Swap a number that went
stale, adjust the title of a section, standardize a term that shows up with two spellings across
your material. What comes out of that conversation is not a file: it is the explicit description
of what should change, on which elements, against which version. The engine executes your
description against the structure it already read from your document, and alters exactly the
elements named in it.

This is the same division that already backs everything the product delivers today, not a new
rule invented for editing. The layer that converses picks the operation and explains the result to
you; the layer that touches your file does not interpret intent. Why this house separated the
two, and what that costs and what it gives back, is in
[the conversation is with the AI](docs-by-spec).

</div>

<div class="chap">

<div class="ico-col"><sz-icon style="color:var(--verb-create)" name="x" size="36"></sz-icon></div>

<h2 id="refusal-comes-along">Editing inherits the refusal</h2>

<h3 class="sub">A request the engine cannot resolve fails, instead of being guessed</h3>

The gain from this division shows up in the worst case, which is the only one that matters in a
purchase decision. If the model misreads your request, what gets produced is a wrong
specification, and a wrong specification is something you read, check and reject before it
touches your file. What does not happen is your document coming back silently broken by an
improvisation nobody saw.

This is not a hope built into the design: it is the behavior already proven on the one path by
which a model's text reaches your file today, which is translation. There, your material comes
back delimited by markers, the count that returns is compared against the count that went out,
and when it does not match the step fails instead of handing you a broken file. The whole
mechanism, and why the boundary is checked instead of assumed, is in
[differentials](differentials).

An edit requested in words inherits the same requirement, and it is where the one strong sentence
this page has to offer you comes from: a request the engine cannot resolve to a concrete element
in your document has to fail. An agentic editor that guesses the most likely box is faster to
build and is not the same product.

</div>

<div class="chap">

<div class="ico-col"><sz-icon style="color:var(--verb-create)" name="settings" size="36"></sz-icon></div>

<h2 id="what-exists-today">What exists today, and the asymmetry that remains</h2>

<h3 class="sub">The door that receives the description already exists and already refuses; what is missing is the path from your sentence to it</h3>

It is worth separating what is live from what is declared, and the separation here is finer than
it looks. The door that receives a described change exists, and it is on the surface the agent
has had since July 30, 2026: four operations, of which the first asks which elements of a model
accept writing and with what type of content, the second opens a draft, the third sends the
change line by line, and the fourth orders execution. Each line names the element, the paragraph,
the unit, the content type and the text. That is the explicit description of a change, element by
element, which is the thing this entire page calls a specification.

And it already refuses, which is the half that decides the purchase. Title, body and table cell
accept writing; image, field, chart label, comment and geometry are locked, and a line that
points at one of them fails instead of being approximated. A draft that has already left the
editable state fails. An empty recipe fails. The refusal this page promised just above is not a
design plan: it is the behavior of the door that is already there.

The asymmetry that remains is smaller than the absence of a door, and more stubborn. To use this
door today you need to name the element by the identity it has inside the model, and you only get
that identity by reading the map of what is editable first. Whoever writes the line already knows
the structure. What is not built is the step between your sentence, in your own words, and that
line: the surface that listens to your request and resolves on its own which element it names.
That is why you cannot yet ask for the change by conversation, even though the engine already
knows how to execute it described. The full set of what the agent does today, and what it
refuses, is in [capabilities](capabilities); the doors through which it responds are in
[interfaces](interfaces).

<figure class="viz" role="group" aria-label="Editing through conversation enters as a declared direction, with no recorded execution">
<div class="ev open"><span class="n">direction declared</span><span class="t"><b>Describing a change is not yet a receipt</b>Asking for a change by conversation enters as direction, under the same discipline as the rest of this house: no verb in the present tense and no number, because there is no recorded execution to support one. The empty space here is information too.</span></div>
<figcaption>A confident figure here would be a lie told in geometry.</figcaption>
</figure>

</div>

<div class="chap">

<div class="ico-col"><sz-icon style="color:var(--verb-create)" name="rotate" size="36"></sz-icon></div>

<h2 id="where-it-stands">Where this stands today</h2>

<h3 class="sub">Direction declared, with the gap named and no verb in the present tense</h3>

What this page offers you is not a date, it is the exact shape of what is missing. The two hard
halves, conversing with grounding and writing to your file by the rules of the format, are built
and measured on other pages of this site. What is missing is the last stretch of the seam between
them, the part that carries your sentence to the line the door accepts, and it is not built.

The other surface through which the same change should arrive, when it does, is the screen, and
it has its own gap located in [web editor](web-editor). The material a new document is assembled
from is in [co-creation with AI](co-creation).

<div class="bound"><p><b>The state, said in full and before you ask.</b> Measured on 2026-09-02, in the development environment and not in production, which is the boundary this sentence can claim. The set of operations the agent exposes was read from the product itself, and four of them assemble a change described element by element over a model, with refusal of what is locked already built into the path. What was not found is the operation that accepts the request in your own words and resolves on its own which element it names. The step that writes is declared among the engine's steps, and its execution log is empty across all four formats.</p>
<p><b>And why the page carries no number.</b> A capability enters here with a written decision, a measurement, and someone outside able to repeat the measurement. This one has the first of the three, and publishing a number about the other two would be exactly what this house holds competitors to.</p></div>

Whatever gets requested, executed or refused stays on record, and that is where the proof comes
from: it is the fifth, [trust](trust).

</div>
