TL;DR: compose is a Copilot Cowork skill that drafts clearer emails and Teams messages using six writing techniques, Microsoft 365 context, Microsoft Learn grounding, reply simulation, and a final stop-slop pass. It returns the draft in chat and never sends it.
Download it below, unzip it into OneDrive/Documents/Cowork/skills/, and try it on one real message. No Cowork? Use the paste-in prompt later in the post.
Let's explore
Why I built it
Most AI-drafted emails read like AI-drafted emails. You paste a thread, type “rewrite this”, and get five polished paragraphs, three separate asks, a closing line that belongs on a poster, and a dash in every second sentence. The recipient skims it and answers none of it.
I combined six techniques that address different failure modes in AI-drafted messages. The list is useful. Retyping it into every prompt is not, so I turned it into a skill that loads itself when I ask Cowork to draft a message and stays out of the way the rest of the time.
The six techniques
| Technique | What it does to the draft |
|---|---|
| Pyramid Principle (Minto/McKinsey) | Conclusion or ask first, two or three reasons, detail last |
| Reader Empathy Map (adapted from Dave Gray’s XPLANE map) | Maps what the reader thinks, feels, wants and fears at the moment they open it |
| One Ask Rule | Exactly one call to action. Two real asks means the skill tells you to split the message |
| Tone Ladder | Formality, warmth, urgency and directness, each set on a 1 to 10 scale |
| Objection Prompt | The two or three likely objections, answered inside the copy |
| Reply Simulation | The skill roleplays the recipient’s reply and revises before you see the draft |
The Copilot Cowork skill picks a subset per situation. A quick Teams reply gets Tone Ladder and a reply simulation. A budget request gets Pyramid, Objection and One Ask. A technical answer to a customer adds a Microsoft Learn lookup. Reply Simulation runs every time, and so does the stop-slop pass described below.
How the Copilot Cowork skill works
- Understand the situation: channel, recipient, language, goal, stakes, and whether the message makes a claim about a Microsoft product.
- Pull context from Microsoft 365: a people lookup, the last few mails with the recipient, recent Teams tone. One to three lookups, run in parallel, skipped for external or unknown recipients.
- Ground technical claims in Microsoft Learn: fetch the page, copy the step list verbatim, cite the section. When the steps are not on Learn, the skill says so instead of inventing them.
- Draft, simulate the reply, revise. Would the recipient ask a clarifying question? Push back? Do the one thing you asked? Each “no” triggers a revision.
- Stop-slop pass: cut filler and hedge adverbs, active voice, no “Not X, it’s Y” contrasts, and no em or en dashes anywhere in the message.
- Output in chat: a six-line header, the draft, then two or three tweak knobs (“shorter”, “more formal”, “drop the step list”).
Before and after: a Copilot Studio authentication reply
Scenario: You demoed Copilot Studio yesterday. The customer’s IT architect, Mette, asked afterwards how to get the pilot agent to recognise their employees via Entra ID in Teams, and whether they need an app registration. You owe her a reply.
Before: a typical Friday-afternoon AI generated draft
Hi Mette,
Hope you’re doing well and thanks again for yesterday — really great session, and I think the team was genuinely excited about what they saw!
Regarding your question on authentication — here’s the thing: it’s actually pretty simple. Copilot Studio has a bunch of options and you basically just go into the settings and pick the SSO one, and then it should work with your Entra ID. There might be some app registration stuff to set up on your side, I’d have to double check, but I don’t think it’s a big deal. It’s worth noting that this is really a game-changer for the Teams experience — users won’t have to log in at all.
I also wanted to circle back on the SharePoint knowledge source we discussed, and whether you’ve had a chance to look at the licensing overview I sent? Also, would be great to get the tenant details from you so we can plan the pilot rollout. And let me know if a follow-up meeting next week would be helpful, happy to walk you through everything in more detail, and we could also do a deep dive on governance.
Docs in case you want to have a look: https://learn.microsoft.com/en-us/microsoft-copilot-studio/configuration-end-user-authentication
Let me know your thoughts!
Best,
Jens
What compose flagged
- Pyramid: her answer sits in paragraph 2 behind small talk, and it is hedged (“I’d have to double check”).
- One Ask: four asks (licensing, tenant details, meeting, SharePoint) plus “have a look at the docs”. She answers one, or none.
- Learn grounding: “pick the SSO one” is not a setting name, and the app-registration line is a guess. Learn says the opposite for Teams.
- Objections: “do we need an app registration?” and “what about our intranet?” are left open, so they come back as a second email.
- Slop: 3 em dashes, really (×2), genuinely, actually, just, “here’s the thing”, “it’s worth noting”, “game-changer”, “circle back”, and “deep dive”.
- Link dump: she has to leave the email and hunt through the page to act.
After: compose output
Stack: Pyramid + Objection + One Ask + Tone Ladder + Learn-citation + Step-snip + Reply Sim + Stop-slopTone: F6 / W6 / U4 / D8Context pulled: none (fictional recipient, no M365 lookup)Docs verified: Learn "Configure user authentication in Copilot Studio" § Choose an authentication option: 4-step list snipped verbatim, plus the Authenticate with Microsoft notesSim adjustment: v1 left her asking "which of the three options?" and "so no app registration at all?"; added the pointer on step 3, the quoted Learn line on manual configuration, and the channel caveat so it does not surface later as a surpriseSlop trimmed: 3 em dashes, 5 hedge adverbs, "here's the thing", "it's worth noting", "game-changer", "circle back", "deep dive"; the three extra asks moved out to their own follow-ups
Subject: Entra ID sign-in for your pilot agent: 4 steps, no app registration
Hi Mette,
To your question from yesterday: for Teams, you pick one setting in Copilot Studio and Teams signs your users in with their Entra ID. You don’t need an app registration for that.
From Microsoft Learn (Configure user authentication in Copilot Studio § Choose an authentication option):
- Go to Settings for your agent, and select Security.
- Select Authentication.
- Select an authentication option and configure it as needed. (Pick Authenticate with Microsoft.)
- Select Save.
Two lines from the same page:
- “This configuration automatically sets up Microsoft Entra ID authentication for Teams without the need for any manual configuration.”
- “Changes to the authentication configuration take effect only after you publish your agent.”
One caveat: Authenticate with Microsoft covers the Teams + Microsoft 365 channel. If you later want the agent on your intranet or a website as well, Learn points to Authenticate manually instead, and that route does use an Entra app registration (client ID, secret or certificate, tenant ID). I can cover that setup with you when you get there.
Could you run the four steps on the pilot agent, publish it, and let me know whether the sign-in prompt is gone in Teams? Then we know the base setup is right before we add the SharePoint knowledge source.
Best regards,
Jens
Why this works
- She can do the task from the email alone; the Learn link is the backup, not homework.
- Both objections she would raise (app registration and other channels) are answered before she types them.
- One question at the end, with a yes/no outcome you can build the next step on.
Tweak knobs
- Danish version, same structure.
- Cut the caveat paragraph if she has already confirmed Teams-only.
- Swap the ask to “30 min screen-share on Tuesday” if she would rather not click through alone.
The header is the part I use most. It tells me what the skill did before I read a word of the draft:
Stack: Pyramid + Objection + One Ask + Tone Ladder + Reply Sim + Stop-slopTone: F6/W5/U4/D8Context pulled: last 3 mails with <recipient>, role from the directoryDocs verified: configuration-end-user-authentication § Choose an authentication option, 4 steps snippedSim adjustment: moved the ask to line one; the recipient would have replied "what do you need from me?"Slop trimmed: 2 hedge adverbs, 1 em dash, 1 "Here's the thing"

No Cowork? Use it as a prompt in Microsoft 365 Copilot
Strip away the routing and the guardrails and the skill is a structured prompt. If you do not have Cowork, or you want to try the method before you install anything, paste the block below into Microsoft 365 Copilot Chat, fill in the two lines at the bottom, and send.
You are drafting a message that a real person will read. Work through steps 1 to 4 silently, then give me only the output described in step 5.1. Situation. Identify the channel (email, Teams, LinkedIn), who the recipient is and our relationship, the one outcome I want, and the stakes (routine or sensitive). Write in the language of the thread I paste.2. Apply these six techniques: 1) Pyramid Principle: conclusion or ask first, then 2-3 supporting reasons, detail last. 2) Reader Empathy Map: what the reader thinks, feels, wants and fears when they open this. 3) One Ask Rule: exactly one call to action. If I am asking for two things, tell me to split the message. 4) Tone Ladder: set formality, warmth, urgency and directness, each from 1 to 10, to fit the recipient. 5) Objection Prompt: list the 2-3 objections the reader is likely to have and answer them inside the copy. 6) Reply Simulation: roleplay the recipient's reply to your draft. If they would ask a clarifying question, push back, or ignore the ask, revise until they would not.3. If the message states how a Microsoft product works, use only steps you can quote from learn.microsoft.com, copied verbatim with the link next to them. If you cannot find them, say so instead of inventing them.4. Clean the draft: cut filler and hedge adverbs (really, just, actually, simply, truly), use active voice, avoid "Not X, it's Y" contrasts, and use no em dashes or en dashes anywhere.5. Do not send anything. Output exactly this:Stack: <techniques that shaped the draft>Tone: F<n>/W<n>/U<n>/D<n>Sim adjustment: <what the reply simulation changed, or "none">---<subject line, email only><the message>---Tweak knobs: <2-3 short variants I can ask for, e.g. shorter, more formal, drop the detail>Context: <who the recipient is, what I want to happen, anything the reader needs to know>Thread or message I am replying to:<paste it here>
Read the Sim adjustment line before the draft. It names the gap the simulated recipient exposed, which is the fastest way to judge whether the draft deserves your time. Then ask for one of the tweak knobs instead of editing the prompt.
You do not have to keep pasting it. Copilot Chat has a Prompt Gallery where prompts you create sit under Your Prompts, and Microsoft Learn notes that “Copilot prompts can be saved and shared across teams using Prompt Gallery to promote consistency and collaboration” (Understand Prompt Gallery in Copilot). Save it once, share it with your team, and everyone drafts from the same six techniques.
The difference from the skill is what happens before the draft. The Copilot Cowork skill pulls the last few mails and the Teams tone with the recipient on its own, fetches the Learn page itself, and loads the moment you type “draft a reply”. With the prompt, you supply the context and you check the Learn citation it hands back. Same six techniques, same output shape.
Install the Copilot Cowork skill in three steps
- Download the compose folder: compose-cowork-skill-v1.zip. It holds SKILL.md plus references/stop-slop.md, the anti-slop rules adapted from Hardik Pandya’s stop-slop (MIT), so the pass works without my separate stop-slop skill.
- Unzip it into OneDrive so the file sits at
Documents/Cowork/skills/compose/SKILL.md. The folder name has to match thenamefield. - Start a new Cowork session (skills are discovered at session start) and type: “draft a reply to <name> about <topic>”.
That path is the documented one. From the Copilot Cowork common questions on Microsoft Learn: “You can create up to 50 custom skills by placing SKILL.md files in your OneDrive /Documents/Cowork/skills/ folder. Each file contains a YAML frontmatter block with a name and description, followed by the skill instructions. Cowork discovers your custom skills automatically at the start of each session.”
The first line of the answer should start with “Stack:”. If it does not, the skill did not load: check the folder path and that the file is called SKILL.md.
Install the Copilot Cowork skill and use it on one real message this week. If the recipient answers the question you asked, keep it.


Leave a Reply