name: write-skill
description: The teaching guide for authoring a single high-quality Day AI skill prompt. The thinking process, the structure, worked examples, Day AI language conventions, and the revision test. Read this before writing any skill. Usage: /write-skill (read as a guide) — or invoke to craft one prompt interactively.
/write-skill
This is the craft document. A skill is a standing job you give a teammate's agent — work it does on a schedule, on an event, or on demand, without anyone having to ask. The difference between a skill that gets switched off in a week and one that becomes indispensable is almost entirely the prompt.
Read this before writing any prompt. If invoked directly with a target person and intent, walk through the process below interactively and produce one finished prompt.
The standard: would this be something you'd be proud to have the whole company see? If not, it's not done.
Before you write: understand the person
You cannot write a good skill for a role you've reduced to a title. Answer these four questions first — from workspace/PEOPLE.md, the workspace graph, and the plan — and write nothing until you can:
-
What is this person's job, really? Not their title — their daily reality. A "VP of Sales" at a 12-person company is doing the selling. A "VP of Sales" at a 500-person company is coaching and forecasting. The same title, two completely different skills.
-
What would be embarrassing for them to miss? A stale deal that's about to slip. A promise they made on a call and forgot. A relationship going quiet. An email they never replied to. The best skills are built around these specific moments, not around generic "insights."
-
What data does their agent actually have — and what's missing? Don't just build around what exists. Notice what's absent and turn it into value: "I'd have prepped you for that call if their account were in your customer memory." Gaps become coaching, not silence.
-
Where are they in their Day AI journey? A teammate with a sparse, new workspace needs the skill to coach them toward value — the workspace-health content is the value early on. A teammate with a rich workspace needs pure intelligence and zero hand-holding. The prompt must know which one it's talking to.
The structure of a great prompt
Once you understand the person, structure the prompt this way:
-
Open with identity and context. Tell the agent who it is, who the user is, what the company does, and what matters. Be specific — generic context produces generic output. "You are Ada, Pici's agent. Pici runs 5–8 demos a week and lives in his calendar; he's the first human a prospect meets." beats "You are a helpful sales assistant."
-
Structure around what the person needs, not data sources. This is the single highest-leverage move.
- Bad: "Check email. Check the calendar. Check the pipeline."
- Good: "Promises coming due. Relationships going quiet. Unfinished business from yesterday's calls. Prep for who he's meeting today."
-
Name the patterns explicitly, with examples. Not "surface relevant insights" — instead: "A promise coming due: three weeks ago on the Trust & Will call he said he'd send pricing by end of month. That's tomorrow and no email has gone out."
-
Set the quality bar with a number. "2–5 items, not 15. Each item should make them think, 'I'm glad someone caught that.'" Without a number, agents pad.
-
Account for an empty workspace. A prompt that assumes a fully instrumented workspace produces empty or misleading output for someone just starting. The best skills say what they would have caught if the data were there.
-
Pull the human into the loop early. On a skill's first runs, have the agent show its reasoning and invite correction: "I flagged these three as going quiet — were those the right ones?" As the skill matures, this fades.
-
Specify anti-patterns. What it must not do is as important as what it does: don't summarize meetings the person attended; don't repeat stale items; don't pad; don't manufacture urgency.
-
Give explicit permission to say nothing. "If there's genuinely nothing worth flagging, say so. Don't invent filler to look busy."
-
End with delivery format. Channel (Slack/email), shape (bullets/table/prose), and length. Match the channel: long analysis doesn't belong in a Slack DM.
Worked example
The ask: "A morning skill for our AE, Sarah."
Weak version (what not to write):
Every morning, check Sarah's email, calendar, and CRM. Summarize what's important and surface any relevant insights to help her have a productive day. Send it to Slack.
Why it fails: no identity, organized around data sources, "relevant insights" means nothing, no quality bar, no anti-patterns, would produce identical output for any salesperson on earth.
Strong version:
You are Sarah's agent. Sarah is an AE at Acme selling to mid-market RevOps leaders; she runs ~6 active deals at a time and her biggest risk is letting a warm deal go cold while she's heads-down on the next call. Every weekday at 7:30am, before she opens her laptop, give her the one screen she needs.
Lead with the single most important thing — name the person, the company, the dollar figure, the specific risk. Then, only if they earn the space:
- Promises coming due: something she committed to on a call that's now due or overdue. Quote what she said and when.
- Going quiet: an open deal with no touch in 7+ days where the last signal was positive. Draft the re-engagement email so she can send it in one click.
- Today's prep: for each external meeting today, the one thing she needs to remember — last conversation, open question, who else is in the room.
2–4 items, never more. If a deal is genuinely quiet because it's dead, don't resurface it. Don't summarize meetings she ran. Don't tell her things she already knows. If it's a quiet morning, say so in one line and stop.
Deliver as a Slack DM: bold the names, one line per item, the draft email in a collapsed block.
Notice: it would produce different output for a different person, every section earns its place, and you could not delete the context paragraph and still know who it's for.
Day AI language conventions
Every line a teammate reads from a skill must use Day AI's language:
- The AI is "your agent" or its name — never "your assistant" or "the bot."
- The data layer is "your customer memory" or "what I know" — never "the CRM" or "the database."
- Frame value as what becomes possible, not time saved.
- Name capabilities by what they do: draft an email, search the pipeline, send a Slack message, update a contact.
- No category labels, no competitor comparisons, no leading with "AI."
The revision test
After drafting, before deploying, check every one:
- Would this produce different output for different people? If swapping the target person gives the same briefing, it's not specific enough.
- Does every section earn its place? Cut any section that would rarely produce something useful.
- Is there a single line that says "surface insights" or "provide relevant information"? Delete it. Replace with a named pattern.
- Could you delete the identity/context paragraph and still know who this is for? If yes, it isn't grounded enough.
- If the workspace is half-set-up, does the skill handle that gracefully? Or does it produce empty output?
- Did you assume any reporting relationships? Never infer who manages whom from titles — only state relationships confirmed in the data.
- Is the quality bar a number? "2–5 items" not "a few."
- Does it have permission to say nothing? And explicit anti-patterns?
- Is the channel/format/length specified and matched to the channel?
- Does every line obey the Day AI language conventions?
Config that ships with the prompt
When you hand a finished prompt to agent-implementor (or write the manage_skills call yourself), specify:
- name and slashCommand (unique per agent, lowercase-hyphens).
- triggerType:
SCHEDULE (with a cron triggerValue + timezone), EVENT (with event types), or NEITHER (on-demand).
- notificationType:
["slack"], ["email"], or both — and slackNotificationChannels if Slack. If you set no notification target, the skill defaults to delivering by email — so a skill never goes nowhere, but don't rely on the default by accident: choose the channel deliberately to match the output (long analysis → email; a short nudge → Slack), and set Slack explicitly when that's where the person actually works.
- scope: a per-agent skill (
targetScope: "agent" + the teammate's targetAssistantId) when the prompt is tailored to one person; a workspace-library skill (targetScope: "workspace_library", deploymentMode: "MANAGED") when a whole team needs the same capability.
- Remember the tier budget: automated skills consume the target agent's slots. One excellent scheduled skill beats three thin ones.
A scheduled skill defaults well at 0 13 * * 1-5 (8am US Eastern, weekdays) unless you know the person's timezone — then adjust.