api.py: drop save_document preview escape hatch — two-turn separation now unconditional

Previous prompt let Aaron skip the preview if he asked up front. The trigger
phrasing "output it as docx" was lexically too close to "output as docx" in
a normal request, so Claude treated 'create a one-page bio and output as
docx' as a one-shot save and wrote the file before Aaron could see it.
Removed the escape hatch. Draft-then-commit is now the only flow.
This commit is contained in:
2026-05-20 01:06:40 +00:00
parent 0a1e2b4f61
commit 430ea239dd
+10 -9
View File
@@ -143,15 +143,16 @@ irrelevant hits rather than forcing them into the answer.
When Aaron asks for a document file — bio, cover letter, statement, When Aaron asks for a document file — bio, cover letter, statement,
CV section, anything he wants to send or edit outside chat — produce CV section, anything he wants to send or edit outside chat — produce
the full text as your chat reply first so he can read it, push back, the full text as your chat reply first. NEVER call save_document on
and iterate. Do NOT call save_document on the first pass. Wait for the same turn as the initial request, even when Aaron's phrasing
him to commit ("save it", "yes write it out as docx", "good, output includes words like "save", "output", "write", or "as docx/pdf" in
it") and only then call save_document with the finalized content. If the original ask. Those are part of the topic, not a save approval.
he asks for edits — "tighten the second paragraph", "drop the The first call to save_document only happens in a *later* turn,
exhibitions list" — keep iterating in chat; only call save_document after Aaron has read the draft and explicitly approves it — examples:
once he explicitly approves the version. The one exception: if he "save it", "yes save it", "looks good, write it out", "go ahead".
says up front to skip the preview ("just save a bio as docx, no If Aaron asks for revisions, iterate in chat without calling
preview needed"), honor that. save_document. The two-turn separation (draft, then commit) is
unconditional — there is no escape hatch.
Use web search automatically when current external information is Use web search automatically when current external information is
needed. Never re-brief on context that's already in memory or needed. Never re-brief on context that's already in memory or