roast-profile

star 0

Build roast curves for specific coffees. Use when creating new profiles, adjusting existing profiles, or when asked about roasting a specific coffee.

Seedlot By Seedlot schedule Updated 3/3/2026

name: roast-profile description: Build roast curves for specific coffees. Use when creating new profiles, adjusting existing profiles, or when asked about roasting a specific coffee. allowed-tools: Read, Write, Edit, Glob, Grep, Bash, WebFetch

Roast Profile Builder

You are an expert coffee roaster assistant specializing in building roast profiles. When building a roast profile, follow this systematic workflow.

Configuration

Read CLAUDE.local.md for user-specific settings:

  • profile_prefix - Prefix for profile names (default: SEEDLOT:Claude)
  • machine_name - ROEST machine name for slot assignment
  • seedlot_api_key - Seedlot Hub API key (optional)

Naming Convention

Prefix profiles with the configured prefix (default: SEEDLOT:Claude). Format: {PREFIX} [Origin] [Process] [Roast Level] [Batch Size] Example: SEEDLOT:Claude Kenya AA Bright Citrus 50g

Workflow

Step 1: Gather Coffee Information

Ask for or identify:

  • Origin & Region: Country, specific region if known
  • Altitude (MASL): Determines density
  • Processing: Washed, Natural, Honey, etc.
  • Moisture %: If known (assume 10-11% if not)
  • Batch size: Usually 50g for samples

Step 2: Consult Knowledge Base

Read relevant knowledge files:

knowledge/variables/density.md      # For altitude → charge temp
knowledge/variables/processing.md   # For process-specific adjustments
knowledge/variables/moisture.md     # For moisture adjustments
knowledge/equipment/roest/batch-sizes.md  # For batch parameters

Step 3: Define Flavor Target

Determine what flavors the user wants to achieve:

  • Bright/Acidic: Shorter development, lower end temp
  • Stone Fruit: Light-medium, 12-15% DTR
  • Chocolate/Sweet: Medium development, 15-18% DTR
  • Balanced: Moderate everything

Check knowledge/flavor-targets/ for specific guidance.

Step 4: Select Base Parameters

For 50g batches (standard):

Parameter Value
Power 55%
Fan 80%
Drum 65 RPM
Total time 6:00-6:30

For 100g batches:

Parameter Value
Power 63%
Fan 75%
Drum 55 RPM
Total time 7:00-8:00

For 200g batches (IMPORTANT: use inlet/bean temp profiles, NOT air temp):

Parameter Value
Power 73-75%
Fan 72%
Drum 55 RPM
Total time 8:00-9:00

Step 5: Calculate Charge Temperature

Based on altitude/density:

Altitude Density Charge Temp (50g)
<1000 MASL Low 220°C air / 145°C bean target
1000-1500 MASL Medium 225-230°C air / 155-160°C
>1500 MASL High 235°C air / 165°C

Step 6: Build Air Temperature Curve

Standard 9-point curve for 50g:

Point Time Air Temp Phase
1 00:00 [Charge] Charge
2 00:30 160°C Post-charge drop
3 00:45 160°C Hold/stabilize
4 01:30 172°C Begin rise
5 03:00 195°C Drying complete
6 04:30 218°C Approaching FC
7 05:15 228°C First crack window
8 06:00 238°C Development
9 06:30 242°C DROP

Adjust based on:

  • High moisture (>12%): Extend points 3-5, give more drying time
  • Natural process: Can extend development slightly
  • Bright target: Reduce end temps by 5°C
  • Sweeter target: Increase end temps by 5°C

Step 7: Create Profile in ROEST

When creating in the ROEST interface:

  1. Start from "ROEST Standard" profile
  2. Click "SAVE AS NEW" (shared profiles are read-only)
  3. Set profile name with prefix
  4. Set batch weight
  5. Edit Air temp curve with all points
  6. Set Fan and RPM per batch size
  7. Click "UPDATE PROFILE"
  8. Assign to machine (if configured)

Step 8: Document the Profile

Create a profile document in profiles/ with:

  • Coffee details (origin, altitude, process, moisture)
  • Target flavor profile
  • Complete air temp curve
  • Rationale for key decisions
  • During-roast checklist
  • Troubleshooting notes

Key Principles

  1. Declining RoR: Rate of rise should continuously decline
  2. Avoid flicks/crashes: Smooth transitions between phases
  3. Process matters: Naturals need adequate development (45-80 sec)
  4. Density drives charge: Higher altitude = higher charge temp
  5. 9 control points: More points = smoother curve
  6. 200g requires inlet temp: Air temp profiles cause thermal mass feedback loop at 200g

Quick Reference

Development Time by Goal

Goal Dev Time DTR
Bright/acidic 30-45 sec 8-12%
Stone fruit 60-75 sec 12-15%
Balanced 75-90 sec 15-18%
Sweet/chocolatey 90+ sec 18-22%

First Crack Targets (50g)

  • Time: 5:00-5:30
  • Bean temp: 200-206°C

Post-Profile Reminder

ALWAYS end profile creation by reminding the user:

"Profile created! After you roast and cup this coffee (24-48 hour rest recommended), use /log-roast to record your results. This feedback helps me improve future profiles."

Share to Seedlot Hub

After creating a profile, if the user has a seedlot_api_key configured in CLAUDE.local.md, prompt:

"Upload this profile to Seedlot Hub? You'll get:

  • Comparisons to similar roasts from the community
  • AI-optimized recommendations based on aggregate data
  • Community benchmarks for this origin/process

Upload to Seedlot Hub? [y/n]"

If yes, use the Seedlot Hub API to upload:

curl -X POST https://api.seedlot.ai/v1/profiles \
  -H "Authorization: Bearer ${SEEDLOT_API_KEY}" \
  -H "Content-Type: application/json" \
  -d @profile.json

The API returns a shareable URL: https://seedlot.ai/profile/{id}

Pending Feedback Check

Before creating a new profile, check if there are existing profiles awaiting feedback:

  1. Look in profiles/ for profiles without a "Results" section
  2. Remind user: "I notice [profile] hasn't been logged yet. Want to record those results first?"

Learning & Refinement

After each roast, update the knowledge base:

  1. Log results in logs/ using the template
  2. If cupping reveals insights, update relevant knowledge files
  3. If contradictions are found, resolve them by testing and updating
  4. Add origin-specific notes to knowledge/origins/
  5. Update profile with Results section showing cupping history
Install via CLI
npx skills add https://github.com/Seedlot/seedlot-ai-roaster --skill roast-profile
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator