Unit 1 · From chatbot to builder
The daily brief
The principle
A daily brief is a single instruction that fixes the output structure once, so the only thing that changes from one run to the next is the day's inputs.
By the end: You can build a brief that takes the same inputs on a fixed schedule and returns the same named blocks every time, including the empty ones.
The situation
It is 7:40 on a Tuesday. You run sales operations for a regional distributor, and you have three tabs open: yesterday's stage-change export out of the CRM, this morning's open-quotes list, and the note your northern regional manager typed at nine last night. At 8:15 your director wants three things — what moved, what is at risk this week, and what needs a decision from her.
You do this every weekday. It takes thirty-five minutes, and almost none of it is thinking. It is cross-referencing quote numbers across three files to find the four rows that matter. The judgement part takes four minutes. The other thirty-one are clerical.
Thirty-one minutes of matching, four minutes of judgement, five mornings a week. That is what a brief is for.
The principle
A daily brief is a single instruction that fixes the output structure once, so the only thing that changes from one run to the next is the day's inputs.
The last lesson gave you four lines: job, inputs, output, standard. A brief is those four lines with two changes. The inputs are named as categories rather than as one specific paste, because tomorrow's file has different rows and the same columns. The output is a fixed skeleton — named blocks, in a set order, that print even when a block is empty.
That empty-block rule is the part people skip and the part that does the work. A brief that drops its "at risk" section on a quiet day is not a brief, it is a summary, and you have to read the whole thing to find out what is missing. A brief with the same headings every morning is one you can read in nine seconds.
Worked example
Shown here in Microsoft 365 Copilot.
This gets written once. Every weekday it runs against the same three files, and nothing else changes.
Job: Write my 8am pipeline brief for today from the three files in
/Sales-Ops/Daily. This runs every weekday morning with new files and the
same structure.
Inputs:
1. Yesterday's stage-change export — one row per quote that moved stage.
Columns: quote number, account type, old stage, new stage, value.
2. This morning's open-quotes export. Columns: quote number, account
type, decision date promised, value.
3. The regional manager's end-of-day note, as free text.
Use only these three. Add nothing you know about the industry.
Output — exactly these four blocks, these headings, in this order:
WHAT MOVED YESTERDAY
Up to three lines. Each names the stage change, a count, and the
combined value.
WHAT IS AT RISK THIS WEEK
Up to three lines. Only quotes with a decision date today or tomorrow
that also appear in the stage-change export or the manager's note.
ONE DECISION I OWE SOMEONE
Exactly one line, or the words "None today".
WHAT I COULD NOT READ
One line per input row you could not parse or match to a quote number.
Standard:
- Every line points at a row I can open. Give me the quote number.
- If a block is empty, print the heading and the word "None". Never merge
or drop a block to make the brief look fuller.
- No advice, no recommendations, no closing offer to go deeper.
- Under 150 words total.Three lines there are doing unusual work. This runs every weekday says the output will be compared against yesterday's, which is why the block names have to stay still. Exactly these four blocks is the skeleton. And the fourth block is the honesty channel — it turns silent guessing into a short list you can check at a glance.
What came back on the first run:
WHAT MOVED YESTERDAY
- 4 quotes moved to Verbal (Q-4471, Q-4478, Q-4492, Q-4501), 96,400
combined, all four in the northern region.
- 1 quote dropped from Proposal back to Discovery (Q-4489, 31,000).
- 2 quotes closed lost (Q-4455, Q-4463), 18,200 combined.
WHAT IS AT RISK THIS WEEK
- Q-4512, decision promised today, sits with the account that pushed
Q-4489 back a stage yesterday.
- Q-4519, decision promised tomorrow, named in the manager's note as
waiting on a revised price.
ONE DECISION I OWE SOMEONE
- Approve the revised price on Q-4519 today, or tell the region to hold.
WHAT I COULD NOT READ
- 3 lines in the manager's note with no quote number attached.Read the last block first. Three lines of the note had no quote number, so they were left out and said so. On a bad day that block is where you find out the export was truncated, which is worth more than anything in the three blocks above it.
That is the artifact. Not the output — the output is disposable, and there will be another one tomorrow. The instruction is the thing you keep.
In your tool
The instruction stays still and the inputs move. What differs between tools is how the day's files reach it.
| Tool | Where the day's inputs go |
|---|---|
| Claude | Attach the day's files to the message; anything that never changes can sit in the Project instead |
| ChatGPT | Attach the day's files to the message; a Project holds the fixed reference files next to its instructions |
| Gemini | Attach the files to the message; a Gem can carry the instruction while the day's files arrive fresh |
| Microsoft 365 Copilot | Reference the files where they already sit in your tenant instead of uploading them — the brief runs against the folder, so check what your account can reach |
Product surfaces checked 2026-08-04.
Try it
Take the task from your Unit 0 sentence — Every [interval] I turn [inputs] into [output] for [who reads it]. Write the blocks you want back — three or four, no more — by name, in the order you want to read them. Then write one sentence per block saying what a line inside it must contain.
Run it once, on this period's real inputs. Do not polish the wording yet.
You are done when the output has every block you named, in the order you named them, including any that came back empty. If two blocks got merged or one quietly vanished, your standard is missing the sentence that says a heading always prints.
Common failures
- The brief that is really a summary. Blocks appear only when there is something to put in them, so the shape changes daily. It happens because "leave out what is not relevant" sounds like good writing advice. For a brief it is not — the absence is the information.
- Inputs pasted, not named. The first run works because you pasted one specific file. Next week the columns come out in a different order and the brief reads the wrong one without telling you. Name the columns you depend on so a mismatch becomes a visible failure instead of a quiet guess.
- Grading it against your memory. The brief reads well, matches roughly what you expected, and you send it. Correct means every line points at a row you can open. Spot-check two lines against the source on each of the first three runs, and you will learn which block needs checking and which does not.