TL;DR
CoWriter is a setup where the LLM works as a lead co-author, not a "write it on request" executor. The system prompt defines 7 writing steps: goal, brainstorming, outline, draft, revision, proofreading, independent review. At every step the model is required to invite the human into the work: ask a question, offer options, request a decision. Two more roles: a "monitor" keeps the process from drifting, and a "fresh reviewer" evaluates the text without knowing how it was made.
A regular AI chat turns the author into a passive checker. The model churns out paragraph after paragraph; the human just says "ok" or "rewrite." They get tired, stop reading closely, and end up with a text that has none of their thinking or experience. In the experiment, the regular AI assistant barely touched goal-setting, ideas, or outlining. More than half its activity boiled down to local paragraph edits.
CoWriter fixes this with instructions: the model runs the process step by step itself and at each step calls the human in. It offers options, asks what resonates, asks you to confirm the goal. A reviewer with no access to the chat history finds the blind spots that the author and the model have already gotten used to.
Want this for your own case? Apply this study to your task: AI adapts its method to what you are working on and writes the prompt.
Method Blueprint
LEADER (main prompt, ~7.7k tokens, one for the whole process)
STEP 1: Goal → topic, audience, sources → discuss and confirm
STEP 2: Ideas → material from sources + rhetoric → offer options, ask what resonates
STEP 3: Outline → structure from sources → offer options, ask about the order
STEP 4: Draft → paragraph-by-paragraph text with citations → offer points and phrasings, ask for feedback
STEP 5: Revision → check against the goal, verify citations → ask for approval, offer edit options
STEP 6: Proofread → grammar, style, references → ask to review and approve
STEP 7: Final → critique from REVIEWER → show the comments, offer fixes
∗ One-off requests → do it → offer to continue the request or return to the process
MONITOR (watches the process)
→ keeps a Writing Log: checklist of completed steps, goal, timeline
→ reminds LEADER: status, open questions, next steps, deviations from the instructions
REVIEWER (separate call)
→ sees only the text and the writing goal, no chat history
→ returns: strengths / problems / suggested fixes
The steps aren't linear: you can jump forward and back. The whole workflow is described in one prompt so the model can move flexibly between steps.
Example
Task: The founder of an online school is writing a Medium column: "Why We Stopped Chasing Reach and Rebuilt Our Funnel." They have three uploaded reports on the online-education market and their own notes on past launches. They need a long article where facts from the reports blend with personal experience, not a slick, faceless text.
The method is strongest where the text needs both sources and a personal stance. For short posts and quick drafts it's overkill.
Prompt:
System instruction — the template below; put it in a Claude Project, a custom GPT, or the first message. Then the first chat message:
Let's start. I'm the founder of an online school, writing a Medium column about
why we gave up chasing reach and rebuilt our sales funnel.
Audience — small-business owners and marketers.
Sources — three uploaded reports on the online-education market.
Personal experience: two failed launches, after which we changed our approach.
Length — roughly 1,000 words. Walk me through the process.
Result: - The model doesn't write the text right away. It first clarifies the goal and asks you to confirm the topic, audience, and main point. - Then comes brainstorming. The model pulls several points and rhetorical moves from the reports and asks what resonates and which personal experiences fit here. - Then it offers 2-3 structure options and asks about the order. - The draft comes in small chunks with references to specific places in the sources. After each chunk the model asks for feedback. - At the end the reviewer is called (a separate chat with the text and the goal). It returns lists: what's strong, what's problematic, what to fix. - At any moment you can ask a side question ("what does the report say about retention?"). The model answers and offers to either dig deeper or return to the process.
Why It Works
The weakness: by default an LLM fulfills requests rather than running a process. The human says "write," the model writes. The stages that make a text strong (goal, ideas, outline) get skipped. The author turns into an editor of someone else's text, gets tired of checking, and loses the sense of authorship.
The strength: the model is great at following structured instructions; it can ask questions, offer options, and keep a long set of rules "in its head." Human experts have already figured out how to structure writing. That's the work of Flower and Hayes (1981) and Lowry et al. (2004) on collaborative writing. It can be turned into a script for the model.
How the method gets around the problem: it bakes two kinds of rules into the prompt. First: what to do at each step (goal, actions, transition conditions). Second: how to call the human in (the invite field). Without that field the model slides into a monologue. A reviewer with no chat history isn't infected by confirmation bias: the model and the author have already "come to an agreement," while a fresh reader sees the text as it is.
Control knobs:
- The invite field on every step. Strengthen it ("ask about personal experience on every paragraph") or loosen it (for routine texts) — you get more or less human involvement.
- Chunk size. The phrase "short replies, small edits" keeps the rhythm. Drop it and the model starts producing long blocks.
- Audience for the reviewer. The more specifically the reader is described ("a coffee shop owner who's skeptical about online courses"), the sharper the critique.
- The step list. For short texts drop steps 6–7; for long ones keep them all.
- A throughline goal. If the goal in the Writing Log is stated clearly, the model drifts off topic less often.
Prompt Template
This template corresponds to the LEADER from the paper: 7 steps, each with transition conditions, a goal, actions, and an invitation for the human. In the original, the Writing Log is kept by a separate MONITOR component. In a regular chat the model takes on that role itself.
<Role>
You are the lead co-author. Together we're writing {text_type} on the topic "{topic}"
for the audience "{audience}". You don't just fulfill requests —
you run the writing process and keep involving me as the author.
The main ideas, stance, and personal experience are mine. Facts come from the sources.
</Role>
<Principles>
- Lead step by step, but flexibly: we can go back and skip ahead.
- At every step invite me in: ask a question, offer options,
ask for a decision. Don't silently make decisions for me.
- Speak in short replies; edit the document in small portions.
- Back every claim from the sources with a reference to a specific
passage, not to the document as a whole. My ideas and personal
experience don't need references.
- If I ask for something outside the process, do it. At the end of your reply
offer to continue that topic or return to the appropriate step.
- At the start of every reply show the Writing Log (see below).
</Principles>
<Workflow>
<Step id="1" name="Defining the goal">
<Transitions>Start of work. Usually 1-3 replies. Next — step 2.</Transitions>
<Goal>Lock in the topic, audience, main point, and sources.</Goal>
<Actions>Study the sources. Ask clarifying questions.</Actions>
<Invite>Discuss the details with me and ask me to confirm the goal.</Invite>
</Step>
<Step id="2" name="Brainstorming">
<Transitions>After the goal is confirmed. Usually 2-4 replies. Next — step 3.</Transitions>
<Goal>Find content from the sources and rhetorical moves.</Goal>
<Actions>Pull out points, facts, examples from the sources.
Suggest angles.</Actions>
<Invite>Offer content options and ask what resonates.
Ask about my personal experience and examples.</Invite>
</Step>
<Step id="3" name="Outline">
<Transitions>Once there's a set of ideas. Next — step 4.</Transitions>
<Goal>Build a high-level structure from the sources and my ideas.</Goal>
<Actions>Draft an outline with section headings.</Actions>
<Invite>Offer several structures and ask about the order.</Invite>
</Step>
<Step id="4" name="Draft">
<Transitions>Once the outline is approved. Next — step 5.</Transitions>
<Goal>Write the text paragraph by paragraph with citations from the sources.</Goal>
<Actions>Write in small chunks.</Actions>
<Invite>Offer points and phrasings before writing;
after each chunk ask for feedback.</Invite>
</Step>
<Step id="5" name="Review and revision">
<Transitions>Once the draft is ready. Next — step 6.</Transitions>
<Goal>Check the text against the goal, verify citations.</Goal>
<Actions>Find gaps versus the goal, weak spots, unsupported facts.</Actions>
<Invite>Ask for approval and offer edit options.</Invite>
</Step>
<Step id="6" name="Proofreading">
<Transitions>Once the content is approved. Next — step 7.</Transitions>
<Goal>Polish grammar, style, and reference formatting.</Goal>
<Actions>Fix errors without changing the meaning.</Actions>
<Invite>Ask me to look over and approve the text.</Invite>
</Step>
<Step id="7" name="Final review">
<Transitions>Once the text is proofread.</Transitions>
<Goal>Get independent critique.</Goal>
<Actions>Tell me it's time to hand the text to the reviewer: I'll paste
it into a separate chat and bring back the response.</Actions>
<Invite>Show me the problems found and offer fixes.</Invite>
</Step>
<Step id="*" name="One-off requests">
<Actions>Pause the process and fulfill the request.</Actions>
<Invite>Offer to continue the request's topic or return to the process.</Invite>
</Step>
</Workflow>
<WritingLog>
At the start of every reply, briefly show:
(a) a checklist of steps 1-7 with completed ones marked;
(b) the current writing goal;
(c) the 2-3 most recent events.
</WritingLog>
What to fill in: {text_type} — article, column, long-read, report. {topic} — what it's about. {audience} — who it's for; the more specific, the better. Upload the sources to the chat or project.
Reviewer prompt (separate chat, no history):
<Role>
You are an outside reader from the target audience: {audience}.
You took no part in writing the text and know nothing about its history.
</Role>
<Goal>
Writing goal: {goal_from_Writing_Log}
</Goal>
<Document>
{text}
</Document>
<Task>
Evaluate the text. Return brief structured feedback as three lists:
1. Strengths
2. Problems
3. Suggested fixes
If you can, check the claims against the sources and point out
what's missing.
</Task>
🚀 Quick start — paste into the chat:
Here is the CoWriter template. Adapt it to my task: [your task].
Ask me questions to fill in the fields.
[paste the template above]
The LLM will ask about the text type, audience, sources, and tone. It needs this for steps 1-2: without it the model can't run the process. It'll take the step structure from the template and tailor the invitations to your genre.
Limitations
⚠️ Small sample: the experiment involved 14 grad students, one model, one task — a 750-1,000-word blog post. This is an exploratory study, not definitive proof.
⚠️ Task type: the method is built for long texts with sources that need both facts and a personal stance. For short pieces or a quick draft, a seven-step lead is overkill.
⚠️ No monitor in a regular chat: in the paper, MONITOR is a separate LLM component that tracks events in the interface. In a chat the model plays that role itself via the Writing Log. Whether it can keep that up over a very long session, the paper didn't test.
⚠️ Metrics were labeled by an LLM: engagement and stage coverage were scored by a model. Agreement with human annotators is moderate. The trends are visible, but read the exact numbers with caution.
⚠️ The cost of engagement: the method deliberately slows the author down; it requires answering questions. If you need a text "right here, right now" without your involvement, the method gets in the way. Session times aren't analyzed in the available part of the paper.
⚠️ The reviewer isn't magic: it sees only the text and the goal. If the goal is vague, the critique will be generic.
How They Studied It
The idea was simple: if human co-authors have long had proven collaborative-writing practices, why not teach them to an LLM? The researchers took cognitive-science classics (Flower and Hayes, 1981; Lowry et al., 2004) and turned them into a ~7.7k-token system prompt.
Fourteen grad students with academic-writing experience each wrote a blog post twice: once with CoWriter, once with a standard "chat + canvas + documents" setup. Same model both times (Claude Sonnet 4.6); only the workflow and invitations were removed from the baseline. The order of systems and topics was counterbalanced. Sessions lasted up to 75 minutes. After each, participants filled out questionnaires. The dialogues were labeled by an LLM: which writing stage was underway and where the model invited the human to act. Agreement with human annotators was moderate (κ = 0.54).
The regular assistant barely engaged in goal-setting, ideas, or outlining. CoWriter initiated goal-setting in 86% more sessions, brainstorming in 43% more, and outlining in 57% more. For the baseline model, 54% of activity was local paragraph editing; for CoWriter, 29%. CoWriter's transitions between steps more often went to adjacent steps (74% vs. 56%), meaning the process was more methodical.
Engagement by survey: 11 of 14 people called CoWriter more engaging, 2 picked the baseline. The share of successful invitations, the ones a human actually responded to, was 2.2 times higher for CoWriter. Outside readers who didn't know how the texts were written rated CoWriter's texts higher on "human" quality: personal experience, storytelling, natural-sounding voice.
The practical takeaway: if you want the text to reflect your thinking, make the model ask questions, not just answer them.
Adaptations and Extrapolations
🔧 Technique: strengthen the
invitefield → more personal material in the textIn step 2, add a hard requirement:
<Invite>Don't move to step 3 until I've given at least two personal examples or stories from my experience. If I don't have any, ask three leading questions to draw them out.</Invite>Effect: the text gains the "human" elements that outside readers rated highly in the experiment.
An extrapolation to a different task, unrelated to blogging. It uses the same principle: a lead agent plus a blind reviewer. For a pitch deck:
You are the lead co-author of an investor pitch deck. Walk me through the steps:
round goal → key messages → slide structure → slide copy →
review → final. At every step ask a question or offer
options; don't decide for me. When the deck is ready, I'll hand it to
a separate "investor" chat with no history of our work.
This is not tested in the paper: it's a transfer of the principle, not a research result.
Resources
- Paper: "CoWriter: Guiding Methodological and Synergetic Human-LLM Co-Authoring" — Shmuel Amar, Benjamin Lieber, Ori Shapira, Debanjana Kar, Sebastian Maximilian Dennerlein, Yufang Hou, Ido Dagan.
- Organizations: Bar-Ilan University; OriginAI; IT:U Interdisciplinary Transformation University Austria; IBM Software Innovation Lab, India; University of Twente.
- Theoretical basis: Flower and Hayes (1981) — a cognitive model of writing; Lowry et al. (2004) — a taxonomy of activities and roles in collaborative writing.
- Code and data: the authors promise to publish them after the paper is accepted.