Capstone spec template

One page. Fill this out, then lock it in.

The worked examples below are drawn from different templates so you can see the shape across domains. For a full worked starting point in your template — sources, Skills, outputs, and background planning — see the capstone page.

1. Goal/domain & target user → bar #1

Who is this for? What goal or domain is the agent managing? What does success look like for this user?

Example (Travel Architect): People planning a multi-day trip to an unfamiliar city (myself + friends who travel a few times a year) who want a coherent, geography-aware itinerary and good food without spending evenings cross-referencing tabs. Specifically trips of 3–7 days with a clear budget and pace preference. Success = a user can enter a destination, dates, budget, and a handful of interests, and have a day-by-day itinerary, restaurant picks, and a packing list waiting — and get a recap video after the trip.

2. Sources (≥3 types via MCP, ≥1 custom) → bar #3

What does the agent pull from? At least 3 distinct source types wired via MCP servers — off-the-shelf where available, with at least 1 custom-authored MCP server in Claude Code.

3. Topic prose + Named Skills → bar #5

Two parts. First the relevance filter (your first Skill), then the Skills the agent uses by Demo Day.

3a. Prose topic description (the relevance filter)

A paragraph in your own words describing what counts as relevant for this user. This becomes the prompt body of your first Skill — the relevance scorer you ship first against your domain's primary source.

Example (Cooking Plan Agent): "A recipe is relevant if it fits my dietary constraints (vegetarian, no shellfish) and dislikes, lands inside the weekly grocery budget, moves the day toward its protein and calorie target, and fits within 40 minutes of active cooking at an intermediate skill level. Not relevant: recipes needing equipment I don't own, single-serving desserts, or anything whose main protein I flagged as a dislike."

3b. Named Skills (≥2, each with prompt + ≥3 eval cases)

What domain-specific judgments does the agent make? Each Skill is a markdown spec + prompt + at least 3 eval cases, invoked from both Claude Code (dev) and headless Agent SDK (prod). At least one Skill must demonstrate this dev/prod symmetry — that's bar #5's second clause.

Example (Wardrobe Stylist):

4. Multi-modal outputs (≥2 beyond plain text) → bar #4

What does the user get, and how often? At least two outputs beyond plain text — pick from different lanes.

Options: generated images, audio (ElevenLabs TTS briefings), video (Marp + ffmpeg recaps), interactive UI overlays, email (Resend), document/PDF (WeasyPrint).

5. Background agentic planning + Demo Day acceptance criteria → bar #2 + bar #1's success criteria

When does the agent run unattended? What re-plans on what signal? And what three concrete checks prove the system works on Demo Day?

Scheduled background example (Home Maintenance Agent): "Every Monday 7 AM, scan the house systems registry for due/overdue tasks and produce this week's reminders + shopping list. Re-plan when a task is marked done (reset its interval), a freeze or heat warning lands in the forecast, or a new system is registered."

List the three concrete checks a judge could perform on Demo Day to confirm this works:

Review

Review your spec with Kamal. Once it's locked, you fork the Socratic Angle reference repo into your own capstone repo and wire your first Skill (the relevance scorer from §3a) against your domain — dev-interactive in Claude Code, then headless via Agent SDK.