The third of four pieces of the Settings rethink. Phase one took the
libraries out of Settings. Phase two dealt with Settings itself. This one
deals with the thing you actually do in a prompt library, which is
write.
A prompt is a document now
Open a prompt from the AI Library and it arrives as a tab, on the same
writing surface as your chapters. Not a form with a text box in it: the
editor. Spellcheck, the thesaurus, find, quick actions, undo, the slash
menu, right-click, all of it, because it is not a copy of the editor, it
is the editor.
The list stays open on the rail beside it. You can leave a prompt open
for a week the way you leave a chapter open, switch to a document and
back, and it keeps its place and its unsaved dot.
Like Settings, the tab is colourless: a coloured tab means a
document, and a prompt is not one. Unlike Settings, it can be
unsaved, because there is something to save. So:
- One tab per prompt. Ask for the same one twice and you come back to
the draft you already have.
- Ctrl+S writes it to your library, and the library decides whether
that cuts a version.
- It cannot split. Right-click and the entry is there, greyed, saying
why.
- It comes back next launch. Settings does not, because you do not
resume adjusting preferences. A half-written prompt is work.
Your variables are chips
{{length}} is drawn as a small rounded chip saying length, with the
braces out of sight. The three the app fills for you, {{selection}},
{{document}} and {{title}}, read as quieter chips, because they are
not yours to configure.
Click one and it opens: rename it, say how it should be asked for, choose
between free text and a fixed set of choices, give it a default. A rename
changes every place it appears in the body, in one step you can undo.
The important part is what did not happen. The chip is painted on top
of ordinary text; the braces are still there in the document, exactly as
you typed them. That means a prompt comes back out of the editor
character for character, which is the whole reason it was built this way.
Every one of the twenty prompts shipped with the app is now checked
against that on every build.
Type / for the variables
The editor's own slash menu works in a prompt body, with a Variables
group at the top: the ones this prompt already has, the three reserved
ones, and New variable…, which drops a fresh chip and opens it so you can
name it on the spot.
The ribbon's AI tab grows a This prompt group offering the same list
under the same names, plus Save Version and the three panels below. Two
doors, one list, because a door that teaches a different word for the
same thing is a door that teaches you wrong.
Three panels on the Desk
Properties holds everything about a prompt that is not its words:
name, nickname, description, category, tags, which worlds it applies to,
its persona, its model, the global message, whether it shows on the Quick
actions bar, and each variable's settings. Beside the body rather than in
front of it.
Assembled shows what the model actually receives, live as you type:
the persona, then your prompt, then the global message, which always has
the last word. It is deliberately honest about two different kinds of
gap. A variable with a default is shown filled in and greyed, because
that is what will be sent unless you change it. A value that can only be
known when the run starts is marked as unknown in gold, rather than
quietly rendered as nothing.
Versions lists every saved snapshot, and says the rule that surprises
people: a version is cut when the body or the variables change. A
rename or a category move does not cut one, because nothing about the
words changed, and a history full of versions that changed nothing is a
history you cannot use. Restoring snapshots your current body first, so
restoring never costs you anything.
These three are the only panels in the app that are simply not there
when they do not apply, rather than greyed. Every other door keeps its
place and explains itself, because muscle memory matters. These have no
place to keep: they arrive with a prompt and leave with it, and three
permanently dead doors on every writer's Desk would be noise.
What went away
The temporary editor Phase 1 put in place is gone, on schedule, along
with the old three-column prompt workbench it was holding. Personas open
the same way. The global message opens as its own tab. Prompt categories
stayed a dialog on purpose: renaming a folder is filing, not writing, and
it belongs beside the list it files.
Five faults worth naming
Every shipped prompt gained a blank line. Writing a paragraph
straight onto a list is legal markdown, and the editor's canonical form
puts a blank line between them. Left alone, opening any prompt and
pressing Ctrl+S would have cut a version whose only change was invisible.
The twenty prompts are now stored in the form the editor writes, and a
prompt written by an older version is quietly re-based when you open it,
so it never opens already dirty either.
One prompt was rewritten for a different reason. "Draft from a brief"
asked for [placeholders] in square brackets, which markdown escapes.
The words a model receives had a backslash in them that nobody put there.
It now asks for a placeholder in capitals.
The slash menu's Variables group was missing your own variables. Only
on its first open, and only until you typed a letter, which is exactly
the sort of fault a green suite is happy to hide. The editor's menu
builds its list once, when the editor is created, and caches it; at that
moment the document has not been put in yet, so it asked an empty page
what variables it had. It reads the prompt itself now, which knows before
the editor is even built.
The tab was called "New prompt" for a prompt that had a name. Opening
Summarise gave you a card saying New prompt, and a window title to match.
The list knew the name all along and simply was not passing it.
The status bar called a prompt a draft. It said "Draft, Ctrl+S to
save it to a file", and a prompt has no file. It reads Saved or Unsaved
now, which is the truth, and the world name beside it stands down for the
same reason it does beside Settings.
Still to come
Phase 4 adds Test run (run the draft you are looking at, unsaved
changes and all, and see the result), walks every old door under test,
and brings the manual up to date.
The gate
Types clean on both processes, 2,720 unit tests, and the end-to-end
suite.
Thirteen new checks cover this phase, and the sharpest of them are about
{{name}}: the chips are drawn, the braces are not, and a prompt saved
and reopened comes back exactly as it went in.
The full end-to-end sweep owed from 0.67.0 also ran, on a quiet machine.
It found two more checks still written against the Settings overlay that
0.67.0 replaced, and both are re-pointed rather than relaxed.
Evidence, all three themes, beside the accepted prototype:
Future Features/Settings Rethink (Evaluation)/evidence/phase-3/.