Varun Vemulapalli

Day 87 of 100 · Phase 11: Capstone: build your agent

Writing the spec and system prompt

2 min readBy Varun Vemulapalli

"Extract the action items" is a wish, not an instruction.

Ask 3 people what it means and you'll get 3 different outputs.

Today MeetingMate gets a spec and a system prompt that pin it down.

Video explainer · 1:44
Key takeaway

Write the spec for humans first, then translate it into a system prompt with a role, clear rules, tags and an example.

Day 87 visual: Writing the spec and system prompt
The visual from the original post.

The concept

Spec: a short document saying what goes in, what comes out, and the rules in between. Written for humans: you, your reviewer, your tester.
System prompt: the standing instructions the model reads before every request. It's the spec, rewritten for the model.

Write the spec first. The prompt is a translation of it.

Walkthrough: MeetingMate's spec, one section at a time

Input: meeting notes or a transcript, plus the meeting date.

Output: a JSON list. For our bank mobile-app sync (Ana, Raj, Lena), held on Monday 11 January 2027, item 3 looks like this (illustrative):
{"task": "Share updated release plan with stakeholders", "owner": "Ana", "due_date": "2027-01-14", "quote": "Ana will send the updated release plan by Thursday"}

Rules:

  • Only include a task someone actually agreed to. No guesses.
  • Owner unclear? Set owner to null and say so. Don't pick someone.
  • Turn "by Friday" into a real date, using the meeting date.
  • Keep the quote, so a human can check each item in seconds.
  • Never create a task or send an email. Only propose; a human approves (Day 89).

Now the system prompt. Anthropic's prompting guide suggests a clear role, direct instructions with reasons, and XML-style tags to separate instructions from data. Trimmed:

You are MeetingMate. You turn meeting notes into action items for a product team.
<rules> ...the 5 rules above, word for word... </rules>
<output_format> ...the JSON example above... </output_format>
The notes go in the user message inside <notes> tags.

Two extras worth adding:

  • 2–3 examples, including a tricky one (a task with no owner).
  • Structured outputs: the Claude API can hold the reply to your JSON schema.

Where you see it at work

  • Product owners: each rule becomes an acceptance criterion and a test (Day 91).
  • Banking and healthcare: "no guesses, keep the quote" is the audit trail reviewers ask for.

Try it today (10–15 min)

1. Write a 5-part spec: input, output, rules, never-do list, one example.
2. Turn it into a system prompt using the tag layout above.
3. Paste it into Claude.ai with notes from a non-confidential meeting. Check each item against your rules.
4. Read the official guidance:
https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices
https://platform.claude.com/docs/en/build-with-claude/structured-outputs

In one sentence

Write the spec for humans first, then translate it into a system prompt with a role, clear rules, tags and an example.

Which rule would you add to MeetingMate's spec? 👇