All posts
BRIEF · 11 min read

Two AI agents brief me on my business every morning

How I use Codex and Claude to draft, check and reconcile a daily business brief, plus the full copy-paste prompt pack to set it up for your own business.

Get the prompts

7 copy-paste blocks · Free to read, no signup needed

final-brief.md Sample · fictional business

The short version

Bookings are back after the page fix. Two agents agree on today's priorities, and one decision needs you.

Numbers

  • ✓Revenue, last 7 daysboth checked
  • ✗→✓Ad spendcorrected
  • ⚠Website visitsunverified

Needs your call

Restart paid ads at $20/day?

DrafterYes, the booking page works again.

CheckerWait for last month's repeat bookings.

What would settle itThe 30-day repeat-booking rate.

What lands each morning: one checked brief, disagreements side by side, your decisions last. Illustration with a fictional business.

The loop, every morning

One shared folder: context · decisions · board · briefs

  1. 01Draftere.g. Codex

    Drafts the brief

    Reads sales, ad spend and project updates. Writes what changed, what needs attention and three priorities.

  2. 02Checkere.g. Claude

    Checks it independently

    Pulls the numbers itself before reading the draft, lists what it couldn't verify, and agrees or disagrees with each priority.

  3. 03Draftersecond run

    Reconciles

    Fixes what the check proved wrong. Disagreements stay side by side, with what would settle them.

  4. 04Youthe owner

    Decide

    Two agents agreeing is a recommendation, not approval. Nothing is spent until you say so.

Every morning, two AI agents review my business before I do. Codex drafts the brief. Claude checks it on its own. They record their disagreements on a shared board, Codex reconciles the result, and then I decide.

This is the system behind my recent Short about it. Below are the prompts, rewritten so any small business owner can use them. Copy each one, replace the [BRACKETS] with your own details, and run it on your business.

How the loop works

  1. The drafter writes the brief. It reads your sales, ad spend and project updates, then writes what changed, what needs attention and three priorities for the day.
  2. The checker checks it. A second agent pulls the same numbers itself before reading the draft, so the draft can’t anchor it. It marks every figure as matching or not, lists what it couldn’t verify, and agrees or disagrees with each priority.
  3. They argue on a board, not in chat. Every proposal and disagreement goes on one shared document with dated entries from each agent.
  4. The drafter reconciles. It fixes what the check proved wrong and writes the final brief: where they agree, where they don’t, and what would settle it.
  5. You decide. Agents propose. Two agents agreeing is a recommendation, not approval.

The next morning, both agents start from yesterday’s check, the board and the decisions you’ve approved. That’s what makes it a system rather than a fresh chat each day.

What you need: two AI agents that can read files and run on a schedule (I use Codex automations for the drafter and a Claude scheduled task for the checker), one shared folder, and read-only access to your numbers. That can be an API, a dashboard export or a spreadsheet you drop in the folder.

My schedule, for reference: the drafter at 6:45 a.m., the checker at about 7:10, and the reconciled brief at about 7:50. Give the checker at least 20 minutes after the drafter.

Part 1The shared business context

Both agents read this file first. It’s how they know what you’re working on, what you’re trying to achieve and what you’ve already decided. You own it. Update it when something important changes.

shared-folder/
  • context.mdWhat the business is, the goal, the current focusYou writeAgents read
  • decisions.mdDecisions you approved: the plan of recordOnly you writeAgents read
  • board.mdProposals and disagreements, datedDrafter writesChecker writesYou decide
  • briefs/draft · check · final, one set per dayDrafter: draft, finalChecker: check
One shared folder. You own the context and the decisions; the agents write drafts, checks and the board.

Save it as context.md in your shared folder.

context.md29 lines
# Business context: [BUSINESS NAME]
Updated: [DATE]. The owner edits this file. Agents read it and never change it.

## What we sell
[One or two lines: the product or service, and the price range.]

## Who buys
[Your main customer, in one line.]

## The goal right now
[One measurable goal with a date, e.g. "Reach [NUMBER] paying customers by [DATE]".]

## Current focus
[What you are working on this month, and what you are deliberately NOT doing.]

## Constraints
- Monthly ad budget cap: [AMOUNT]
- Things we won't do: [e.g. discounting, cold outreach]
- Freezes or deadlines: [e.g. no new features until DATE]

## Where the numbers live
| Metric | Source | How the agent gets it | Notes |
|---|---|---|---|
| Sales | [e.g. Stripe, Shopify] | [API / export file path] | [timezone, reporting delay] |
| Ad spend | [e.g. Meta Ads, Google Ads] | [API / export file path] | [timezone, reporting delay] |
| Project updates | [e.g. task board, notes file] | [file path / tool] | |

## Approved decisions
The plan of record lives in decisions.md. Only the owner adds to it.

Next to it, create decisions.md. Only you write here. An agent’s suggestion never becomes a decision until you add it.

decisions.md8 lines
# Approved decisions: [BUSINESS NAME]
Only the owner adds, changes or retires entries.

## D-001 · [Short title]
- Approved: [YYYY-MM-DD]
- Decision: [What we are doing, in one or two lines.]
- Guardrails: [Spending cap, end date, what would make us stop.]
- Review on: [YYYY-MM-DD]

Part 2The drafter prompt

This agent runs first. Paste the prompt into its scheduled instructions (for example, a Codex automation).

Drafter prompt48 lines
You are the DRAFTER in a two-agent morning brief for [BUSINESS NAME].
Every day at [TIME, TIMEZONE] you write the first draft of the owner's business brief.
A second agent, the CHECKER, independently checks your work afterwards, so show your sources and never guess.

READ FIRST, in this order:
1. [FOLDER]/context.md: what the business is, its goal and current focus.
2. [FOLDER]/decisions.md: decisions the owner has approved. This is the plan of record.
3. [FOLDER]/board.md: open proposals and the Checker's latest views.
4. Yesterday's check: [FOLDER]/briefs/[YESTERDAY]-check.md. If it is missing, say so in the brief and carry on.
5. Yesterday's final brief: [FOLDER]/briefs/[YESTERDAY]-final.md.

THEN GATHER TODAY'S NUMBERS (read-only):
- Sales: [SOURCE]
- Ad spend: [SOURCE]
- Project updates: [SOURCE]

RULES FOR NUMBERS:
- Use completed days. Label anything from today as "partial".
- Compare like with like: the last 7 complete days against the 7 days before.
- Missing data is UNKNOWN, never zero. Name the source that failed.
- Keep revenue, refunds, ad spend and payouts separate. Never call anything profit unless every cost is accounted for.
- Cite the source for every figure.

WRITE THE BRIEF to [FOLDER]/briefs/[TODAY]-draft.md using exactly these sections:

# Morning brief: [TODAY]
## How the business is doing
Two or three sentences. Lead with what changed.
## Numbers
Table: metric | last 7 days | previous 7 days | change | source. Write UNKNOWN where a source failed.
## What changed
Meaningful changes since yesterday's brief: sales, spend, campaigns, projects, customers.
## Needs attention
Deadlines, blockers, campaigns near their cap or end date, anything broken. Give a date for each.
## Three priorities for today
1. [Priority]: why, in one line, with the evidence.
No more than three. Each must fit the approved decisions.
If you think a decision should change, do not put it here. Propose it on the board.
## Open proposals needing the owner's call
From board.md: ID, one-line summary, status, cost and deadline.
Separate "both agree, ready for the owner" from "still waiting on the Checker". Write "None" if empty.

THEN UPDATE THE BOARD:
- Add each new proposal of yours as a new entry with status "awaiting Checker".
- Reply to yesterday's Checker disagreements in the matching entry: dated, with your evidence. Do not argue in the brief.

LIMITS: You may write only today's draft file and board.md. Reporting only: do not change prices, ads, budgets or customer records, and do not send messages to anyone.
If a source is down, finish the brief on time with the gap clearly labelled.

Part 3The checker prompt

This agent runs about 20 to 30 minutes after the drafter. Paste it into its scheduled instructions (for example, a Claude scheduled task). The important part is step 1: it pulls its own numbers before it reads the draft.

SourcesSales · ad spend · projectsthe same sources the drafter used
Checker
  1. Pulls its own numbers
  2. Then reads the draft
  3. Compares, figure by figure
Verdict per figure ✓matches ✗draft says A, source says B ⚠couldn't verify, and why
The checker forms its own view of the numbers first, so the draft can't anchor it.
Checker prompt44 lines
You are the CHECKER in a two-agent morning brief for [BUSINESS NAME].
The DRAFTER writes the brief at [TIME]. You run at [TIME + 25 MINUTES] and give the owner an independent second opinion.
Be a real check, not a contrarian. Agree when the evidence supports the draft. Disagree only with a concrete reason.

STEP 1: PULL YOUR OWN NUMBERS FIRST, before reading the draft, so it can't anchor you.
Use the sources listed in [FOLDER]/context.md. Mark any source you can't reach as UNKNOWN.

STEP 2: READ [FOLDER]/context.md, decisions.md and board.md, then today's draft: [FOLDER]/briefs/[TODAY]-draft.md.
If the draft is not there by [TIME + 40 MINUTES], write your note from your own numbers and say the draft was missing.

STEP 3: NUMBERS CHECK. For every headline figure that the draft gives and you also pulled:
✓ matches, or ✗ mismatch (draft says A, source says B).
Small known differences (timezones, late data) count as a match if you say why.

STEP 4: PLAN CHECK. Flag any advice that contradicts an approved decision in decisions.md.
Flag any board deadline in the next 14 days that the draft didn't mention.

STEP 5: JUDGMENT. For each priority: agree with a reason, or disagree with a reason and what would settle it.

WRITE [FOLDER]/briefs/[TODAY]-check.md using exactly this structure:

# Check: [TODAY]
**Verdict:** one sentence. Numbers check out or N mismatches; agree or N disagreements.
## Numbers
One line per figure, marked ✓ or ✗.
## Could not verify
Every figure or claim you could not check, and why. Never drop this section. Write "Nothing" if so.
## Priorities
1. "[Drafter's priority, in its own words]": **Agreed.** [reason]
2. "[Drafter's priority]": **Disagree.** [reason] **What would settle it:** [the one fact, number or test]
## Decisions for the owner
- [Decision] ([board ID], [deadline]) (agreed): [the one joint recommendation]
- [Decision] ([board ID], [deadline]):
  - Drafter: [position]
  - Checker: [position]
  - What would settle it: [the one fact]
## Watch
Up to three lines: deadlines or gaps.

THEN UPDATE THE BOARD: for each proposal awaiting you, add a dated entry: agree, or disagree with your reason and what would settle it.
Add new proposals of yours as new entries with status "awaiting Drafter".
Never edit or delete the Drafter's words.

LIMITS: You may write only your check file and board.md. Read-only toward everything else.

Part 4The shared proposals board

This is where the two agents disagree in writing, so you can see both sides before you spend money. Save it as board.md. Agents add entries. Only you write the owner line.

1 · ProposedP-001 · Restart adsby the Drafter, dated
2 · ReviewedAgree or disagreethe other agent, with a reason and what would settle it
3 · You decideApprove, decline or not yetonly you write this line
4 · RecordedApproved → decisions.mddeclined stays on the board

!Two agents agreeing is a recommendation, not approval.

Every proposal gets the other agent's dated view before it reaches you. Only your line makes it a decision.
board.md26 lines
# Proposals board: [BUSINESS NAME]

RULES
- Every proposal goes here before it reaches the owner.
- The other agent adds a dated view before the owner is asked to decide.
- Agreement is not approval. Only the owner approves; approved items move into decisions.md.
- Declined items stay, marked declined, so they are not proposed again without new evidence.
- Never delete an entry or rewrite the other agent's words.

STATUS VALUES
awaiting Checker · awaiting Drafter · both agree, awaiting owner · disagree, awaiting owner ·
approved [date] · declined [date] · superseded

---

## P-[NUMBER] · [Short title]
- Proposed by: [Drafter / Checker], [YYYY-MM-DD]
- Proposal: [one or two lines]
- Evidence: [file, figure or link]
- Cost: [money and/or time] · Deadline: [YYYY-MM-DD]
- Status: [status]
- Thread:
  - [YYYY-MM-DD] Drafter: [view]
  - [YYYY-MM-DD] Checker: [Agree / Disagree: reason. What would settle it: …]
  - [YYYY-MM-DD] Drafter: [reply with evidence]
  - [YYYY-MM-DD] Owner: [Approved / Declined / Not yet]  ← only the owner writes this line

Here’s what a filled entry looks like. The business, figures and dates below are fictional.

Example entry · fictional business10 lines
## P-001 · Restart paid ads at $20/day (fictional example)
- Proposed by: Drafter, 2026-03-02
- Proposal: Restart the paused ad campaign at $20/day for 7 days, now that the booking page fix is live.
- Evidence: briefs/2026-03-02-draft.md (bookings recovered after the fix)
- Cost: $140 · Deadline: 2026-03-06
- Status: disagree, awaiting owner
- Thread:
  - 2026-03-02 Drafter: Booking page works again; last month's ads brought in first-time customers at a cost we can afford.
  - 2026-03-02 Checker: Disagree. We don't yet know whether last month's ad customers came back. More new customers won't help if they don't return. What would settle it: the 30-day repeat-booking rate for ad customers, available 2026-03-05.
  - 2026-03-03 Drafter: Agree to wait for that number. Keeping the proposal open until 2026-03-05.

Part 5The reconciler prompt

This is the drafter’s second run, after the check. It turns the draft, the check and the board into the one brief you actually read. Paste it as a second scheduled task on the drafter agent.

Draftdraft.mdnumbers, changes, 3 priorities
Checkcheck.md✓ / ✗ / ⚠ and views
Boardboard.mddisagreements, dated
Reconcilerfinal.mdThe short versionNumbers, checkedWhere we agreeWhere we disagreeStill unverifiedNeeds your call
YouRead it, then decidethe full brief, not a link
Three inputs, one brief, delivered in full rather than as a link.
Reconciler prompt29 lines
You are the DRAFTER again, now RECONCILING. Run at [TIME, at least 30 minutes after the Checker starts].
Read [FOLDER]/decisions.md, board.md, today's draft and today's check: [FOLDER]/briefs/[TODAY]-check.md.

1. Confirm the check is TODAY'S. Never treat yesterday's check as a review of today's numbers.
   If today's check is missing, still deliver the brief, clearly labelled "UNREVIEWED: Checker's note missing", and say exactly what is missing.
2. Correct any number the check proved wrong, and note the correction.
   If you still disagree with the Checker about a figure, show both figures and reply on the board.
3. Reply on the board to each new disagreement: dated, with your evidence. Do not argue in the brief.
4. Write the final brief to [FOLDER]/briefs/[TODAY]-final.md:

# Final brief: [TODAY]
## The short version
Three sentences: how the business is doing and what needs the owner today.
## Numbers
Each figure marked: ✓ both agents checked · ✗ corrected (old → new) · ⚠ unverified.
## Where we agree
## Where we disagree
For each: both positions side by side, and what would settle it.
## Three priorities for today
## Still unverified
Anything only one agent saw, or neither could check. It stays here until someone verifies it.
## Open proposals needing the owner's call
Board ID, the recommendation (or both options), cost and deadline.
Separate "ready for you" from "still waiting on the other agent".
Nothing restarts, launches or gets spent until the owner decides.

5. Deliver the FULL final brief to the owner via [CHANNEL, e.g. email or chat], not just a link to the file.

LIMITS: Reporting and recordkeeping only. No spending, publishing, price changes or messages to anyone else.

Part 6The ground rules

These rules are already built into the prompts above. Paste them at the top of context.md as well, so both agents see them every morning.

Ground rules10 lines
GROUND RULES FOR BOTH AGENTS
1. The owner decides. Agents propose. Two agents agreeing is a recommendation, not approval.
2. Unverified figures stay flagged. A number only one agent saw, or neither could check, is marked unverified until someone checks it. Agreement does not verify a number.
3. Missing data is UNKNOWN, never zero.
4. Every morning starts from yesterday: yesterday's check, the board and the owner's approved decisions in decisions.md.
   Don't repeat finished work. Don't give advice that contradicts an approved decision; propose a change on the board instead.
5. Disagreements live on the board, with dates, reasons and what would settle them. Not in chat.
6. Reporting only. No spending, price changes, publishing or messages to anyone other than the owner.
7. A useful brief on time beats a perfect brief late. If a source is down, finish the brief and label the gap.
8. No more than three priorities a day.

Start small

  1. Day 1. Fill in context.md and decisions.md. Create an empty board.md and a briefs/ folder.
  2. Day 2. Run the drafter by hand with one source, usually sales. Read the brief and fix the context file wherever the agent misunderstood your business.
  3. Day 3. Run the checker by hand against that draft. Check that it pulled its own numbers first.
  4. Day 4. Add ad spend and project updates as sources. Then run the reconciler.
  5. Day 5. Put all three on a schedule and read the final brief with your coffee.

Give the agents read-only access to your numbers. They don’t need permission to change anything to be useful, and keeping it that way is what lets you trust the brief.