AgentSkillsCN

feedback

收集咖啡萃取反馈,分析萃取过程,提出调整建议,并记录结果。当用户说:“/反馈”“我刚萃取了一杯咖啡”、“这杯怎么样?”“味道[酸/苦/平淡/好]”,给出星级评分,分享口感观察,或在萃取后询问“我该调整什么?”时使用此功能。全程掌控咖啡萃取反馈循环:收集、分析、品尝笔记,以及饮品呈现形式。

SKILL.md
--- frontmatter
name: feedback
description: >
  Gather shot feedback, analyze extraction, recommend adjustments, and record results.
  Use when user says: "/feedback", "I just pulled a shot", "how was that", "it tasted [sour/bitter/flat/good]",
  provides a star rating, shares taste observations, or asks "what should I adjust" after a shot.
  Owns the full shot feedback loop: gathering, analysis, tasting notes, and drink format.

Shot Feedback & Dialing Skill

You are gathering shot feedback, diagnosing extraction, recording results, and recommending the next adjustment.

Adapted from gaggimate-barista by Charlie Hall.

Context

All knowledge files are always available in your context. Reference these as needed:

  • ESPRESSO_BREWING_BASICS.md — adjustment strategies, diagnostic decision tree, variable hierarchy
  • ESPRESSO_TASTING_GUIDE.md — sour vs bitter diagnosis, tasting methodology
  • PRESSURE_GUIDE.md — when feedback suggests pressure/profile style change
  • MILK_AND_DRINKS.md — when shot is dialed in and user wants drink recommendations

Workflow

1. GATHER Context

  • Check if a user-setup.md file exists in the project knowledge. If so, reference the user's equipment, basket size, and preferences.
  • If the user has shared their current coffee previously, use that context.
  • If not: ask the user what coffee they're brewing before proceeding.
  • Stale check: If roast date is 30+ days old, gently ask if user is still on this bag.

2. COLLECT Feedback

Gather from the user (ask for what's missing):

FieldRequiredNotes
Rating (1-5 stars)YesOverall satisfaction
Balance (sour/balanced/bitter)YesPrimary extraction indicator
ObservationsYes (1+ specific note)Body, sweetness, finish, flavor, mouthfeel
Grind settingAsk if not offeredImportant for tracking
Dose inAsk if not offeredShould match basket size
Shot IDOptionalFrom list_recent_shots if user doesn't provide

Minimum viable feedback: Rating + balance + one specific observation.

Weight estimation — NEVER ask the user for cup weight. The BT scale often produces artifacts (spikes, drops to 0g, null readings). Estimate dose out from:

  1. Last stable weight sample from telemetry (if shot ID available)
  2. total_volume_ml × 0.82 (puck absorption estimate)
  3. User's stated ratio × dose in

A +/-2g estimate is fine for diagnosis and recording.

3. ANALYZE & RECOMMEND

Use the knowledge files (BREWING_BASICS + TASTING_GUIDE) to diagnose and recommend.

Adjustment hierarchy — adjust in this order:

  1. Grind size — largest effect on extraction
  2. Yield/Ratio — quick correction (5g rule)
  3. Temperature — fine-tuning after grind is close
  4. Pressure/Profile — style change or enhancement
  5. Puck prep — channeling, inconsistency

Critical diagnostic rules:

SymptomDiagnosisFix
Sour + fast (<20s)Under-extracted, grind too coarseGrind finer
Sour + normal timeUnder-extracted at correct flowIncrease yield by 5g, then temp
Sour + slow (>35s)Channeling likelyBetter puck prep, longer pre-infusion
Bitter + slow (>35s)Over-extracted, grind too fineGrind coarser
Bitter + normal timeOver-extracted at correct flowDecrease yield by 5g, then temp
Sour AND bitterChanneling — uneven extractionFix puck prep (WDT, distribution, even tamp). NOT grind.
Balanced but flatUnder-developedIncrease temp 1°C, or try longer ratio
Balanced but thinLow bodyShorter ratio, or finer grind

The "sour AND bitter" rule (Scott Rao): When a shot tastes both sour and bitter simultaneously, water is finding paths of least resistance — over-extracting some grounds while under-extracting others. The fix is puck prep, not grind. Grinding finer when channeling is present makes it worse.

Always explain why you're suggesting a change. One primary recommendation, one backup.

4. RECORD

Do all of these automatically after feedback is collected:

4a. Shot Notes → Device (via MCP)

If a shot ID is available, sync feedback to the device:

code
manage_shot_notes(shot_id, action="update", rating=X, balance_taste="...", notes="...", grind_setting="...", dose_in=X, dose_out=X)

4b. Coffee Tracking Artifact

If the user has a Coffee Tracking document in their project, offer to update it with a new tasting entry:

markdown
### Shot [#] — [Date]
- **Coffee:** [name]
- **Rating:** [X]/5 | **Balance:** [sour/balanced/bitter]
- **Grind:** [setting] | **Dose:** [in]g → [out]g (1:[ratio])
- **Profile:** [name]
- **Notes:** [observations]
- **Adjustment:** [what was changed for next shot]

If the user doesn't have a Coffee Tracking document yet and this is a good shot (4+ stars), suggest creating one:

"Would you like me to create a Coffee Tracking document? You can save it and add it to this project to keep a running log of your dialing journey."

If 4+ stars AND grind setting provided, also suggest adding it to a "Grind Map" section in the tracking document — successful grind settings for future reference.

5. SUGGEST Next Steps

Based on the analysis:

If still dialing in (rating < 4 or not balanced):

  • State the specific change for the next shot
  • Explain what to watch for ("Time to first drip should increase" / "Look for more body")

If dialed in (rating 4+ AND balanced):

  • Celebrate briefly
  • Recommend a drink format based on shot character:
Shot CharacterRecommended Format
Bright, fruity, delicateCortado or piccolo
Sweet, balanced, medium bodyCappuccino or flat white
Intense, heavy bodyLatte
Clarity-focused, tea-likeCortado or piccolo

Core principle: Extract for the bean's best expression first, then match the drink format. Never adjust grind/ratio/pressure/temp to "make the shot work in milk."

If user wants full milk science, steaming technique, or drink recipes → reference MILK_AND_DRINKS.md knowledge file.


Integration with Other Skills

  • For deeper shot telemetry analysis → suggest /diagnose
  • For profile modifications → suggest /gaggimate-profiles
  • For a new coffee → suggest /new-coffee

Quick Reference

User says: "3 stars, sour, grind 12, 22g in" Action: Gather context → record via MCP → diagnose (sour = extract more) → recommend grind/yield change → update Coffee Tracking if present

User says: "5 stars, balanced, amazing sweetness" Action: Gather context → celebrate → record via MCP → suggest adding to Coffee Tracking grind map → recommend drink format

User says: "it was sour AND bitter" Action: Gather context → diagnose channeling → recommend puck prep fix, NOT grind change → record