关于 mlb-beginner-translator
MLB Beginner Translator 是一项技能,可将棒球分析改写为适合棒球知识有限读者的内容。它解释术语、删除内部 Agent 信号和自我讨论,并将建议整理为 START 或 SIT 等明确行动。
主要功能
- 01首次出现时解释棒球术语
- 02用通俗语言改写棒球行话
- 03删除内部信号和 Agent 讨论
- 04以行动动词收尾建议
- 05按常见场景组织球员建议
适用场景
- 01改写每日阵容简报
- 02改写交易建议备忘录
- 03解释弃用球员或 FAAB 加价建议
- 04简化每周分类策略
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ lyndonkl/ claude --skill mlb-beginner-translator安装后在 Claude Code 中输入/mlb-beginner-translator确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
resources/methodology.mdtemplate.mdresources/evaluators/rubric_mlb_beginner_translator.json详细介绍
MLB 新手翻译器
目录
示例
场景:阵容优化器生成了一份原始建议,需要在早间简报发布前,改写成用户能看懂的内容。用户是 K L D'Souza,对棒球一无所知。
改写前(原始内容,术语繁多):
Caminero(TB 三垒手)对阵右投手时有明显的左右投手差异优势,在 Fenway 对阵 Bello 时也占据有利对位(球场系数:得分 103/本垒打 105)。他近 15 天的 xwOBA 为 .410,高于 .355 的基准值,说明他近期状态火热。考虑到他排在第 3 棒,OBP 贡献出色。daily_quality = 66。盗垒机会一般——Bello 牵制跑者的水平平均,但捕手阻杀率为 28%。赛季 wOBA 差值对应的回归指数为 +15。首发 Caminero,而非 Hayes(工具位);Hayes 将在 Oracle 对阵左投手,且对方采用牛棚比赛——球场不利,机会少,不太可能投出优质先发(说得简单点,他是打者;我的意思是,他这场比赛的发挥下限较低)。结论:首发 Caminero,替补 Hayes。
改写后(面向新手):
Junior Caminero(坦帕湾,三垒手)——今天让他首发。
原因:他擅长打右投手(大多数打者面对非惯用手投球的投手时,表现更好),而今天对方先发投手 Brayan Bello 是右投手。球场(波士顿的 Fenway Park)也有利于打者——比普通球场多产出约 3% 的得分和 5% 的本垒打。此外,Caminero 近期表现不错(过去 15 天的预期击球质量比他的赛季平均水平高约 15%),而且排在打线第三位(上场打击次数更多=得分机会更多)。他今天能否盗垒就看运气了——波士顿的捕手阻杀跑者的能力不错,所以我们不会指望他盗垒。
Ke'Bryan Hayes(匹兹堡,三垒手,排在你的工具位)——今天让他坐板凳。
原因:他将面对左投手,这种对位对他来说更难;比赛地点是旧金山的 Oracle Park(外野宽阔、气温较低,不利于击球)。对方球队还会采用牛棚比赛(没有固定先发投手——整场比赛轮流派出救援投手),这通常意味着打者获得的绝佳机会会更少。
行动:
- 在三垒(3B)位置首发 Caminero。
- 替补 Hayes(将他移至板凳,BN)。
翻译器做了什么:
- 检测到 11 个术语(RHP、platoon splits、park factor、xwOBA、OBP contribution、daily_quality、SB、CS%、regression index、bullpen game、QS),并在首次出现时逐一解释,或改写以避开术语。
- 将“状态火热”改写为“近期表现不错”(参见护栏 #2)。
- 删除内部 Agent 信号(
daily_quality = 66、regression_index = +15)——这些是输入,不是输出。 - 在结尾用行动动词(首发/替补)概括决定。
- 只有在首次写出完整位置名称后,才保留位置缩写(3B、BN)。
- 删除自我纠正的内容(“说得简单点,他是打者……”)——用户不需要看到 Agent 自我辩论。
工作流
复制此清单并跟踪进度:
MLB Beginner Translator Progress:
- [ ] Step 1: Receive raw draft from upstream agent
- [ ] Step 2: Scan for jargon terms (use glossary list)
- [ ] Step 3: Apply first-mention-gloss rule per term per document
- [ ] Step 4: Rewrite assumed-knowledge phrases (hot streak, plus matchup, etc.)
- [ ] Step 5: Strip internal signals and agent self-talk
- [ ] Step 6: Collapse to action verbs (START / SIT / ADD / DROP / BID $X / ACCEPT / COUNTER / REJECT)
- [ ] Step 7: Validate against rubric (resources/evaluators)
第 1 步:接收上游 Agent 提供的原始草稿
接受调用方 Agent 生成的任何内容——阵容优化器的综合分析、交易分析器的结论、弃权球员分析师的排名、类别策略师的计划,或教练的早间简报。输入可以是项目符号、正文或信号 JSON 块;输出始终是面向用户的正文加行动列表。
- 确定文档类型(简报、交易备忘录、聊天回复、提醒)
- 找出提及的每位球员——首次提及时必须包含球队和位置
- 找出每项建议——每项都必须以行动动词结尾
第 2 步:扫描术语
通读 yahoo-mlb 仓库中的 resources/methodology.md 全部术语表,以及主术语表 context/frameworks/beginner-glossary.md。标记每个术语的所有出现形式。一个术语可以有五种形式:全称(“On-Base Percentage”)、首字母缩写(“OBP”)、复合词(“OBP contribution”)、俚语(“hot bat”)和内部信号名称(“daily_quality”)。这五种都算术语。
- 检测到类别统计数据(R、HR、RBI、SB、OBP、K、ERA、WHIP、QS、SV)
- 检测到位置缩写(C、1B、2B、3B、SS、OF、UTIL、SP、RP、P、BN、IL、DH)
- 检测到对阵术语(RHP、LHP、platoon、park factor、probable、lineup、two-start、bullpen game、opener、streaming)
- 检测到高级统计数据(xwOBA、wOBA、BABIP、FIP、xFIP、SIERA、barrel rate、exit velocity)
- 检测到交易术语(FAAB、waivers、rolling waivers、H2H、punt、IL stash、DFA、handcuff)
- 检测到球员类型(sleeper、bust、breakout、post-hype、innings-eater、closer committee)
- 检测到内部信号名称(daily_quality、form_score、matchup_score、regression_index、qs_probability、streamability_score 等)
步骤 3:对每个文档中的每个术语应用首次提及时添加释义的规则
对于步骤 2 中检测到的每个术语,在该术语首次出现在文档中时,附上一个简明易懂的括号内释义。后续在同一文档中提及时可只用术语本身。规则见 resources/methodology.md,释义格式见 resources/template.md。
- 每个术语首次出现后立即附上“(简明易懂的描述)”
- 后续提及时不重复释义(避免读者疲劳)
- 球员姓名首次出现时始终附上球队和位置
步骤 4:改写假定读者已具备相关知识的短语
最危险的类别不是陌生词,而是听起来熟悉、却暗中假定读者懂棒球的短语。“Hot streak”“good matchup”“plus matchup”“tough lefty”“soft slate”“live arm”“plays the hot corner”“juicy park”。这些短语都需要改写,而非添加释义。完整列表和改写示例见 resources/methodology.md 和 Guardrails #2。
- “Hot streak” / “hot bat” -> “近期打击表现不错”
- “Plus/positive matchup” -> 明确指出具体原因(球场、对方投手惯用手、天气)
- “Tough lefty” -> “一名实力不错的左投手”
- “Juicy park” -> “一座有利于打者的球场(注明具体球场)”
- “Bat flip / gas / heater / nasty” -> 用字面含义改写
步骤 5:删除内部信号和 Agent 的自言自语
内部信号值(数值型 daily_quality、regression_index、streamability_score)是决策依据,不是面向用户的内容。将其删去。同时删除自我修正、争论残留或变体标签(“支持者说……反对者说……综合结论是……”)。用户只应看到综合后的答案。
- 从面向用户的文本中删除数值型信号值
- 删除变体标签(“支持者 / 反对者 / 综合结论”)
- 删除自我修正(“显而易见的是”“我的意思是”“说清楚一点”)
- 仅在用通俗语言表达时保留置信度标签(可以写“置信度较高”;不可写“confidence: 0.72”)
步骤 6:精简为行动动词
每条建议都必须以一个获准的行动动词结尾,不得含糊其辞。不要使用“考虑”“想想”“也许可以”“可以试试”。完整的行动层级见 CLAUDE.md 规则 6。如果上游 Agent 使用了模棱两可的表达,将其压缩为一个动词,并明确说明备用行动。
- 每条建议都以以下内容之一结尾:START / SIT / ADD / DROP / BID $X / ACCEPT / COUNTER(附建议的还价)/ REJECT
- 每条面向用户的输出末尾都包含专门的「操作」项目列表
- 将含糊措辞(「考虑」「想一想」)替换为具体动词 + 备用方案
步骤 7:根据评分标准进行验证
根据 resources/evaluators/rubric_mlb_beginner_translator.json 对翻译后的输出评分。最低标准:平均分为 4.0,且没有任何一项低于 3。如果行动动词标准或首次提及规则标准低于 4,则在交付前修改。
- 已按评分标准评分,所有项目均达到 3 分或更高
- 平均分达到 4.0 或更高
- 行动动词和首次提及规则标准达到 4 分或更高
常见模式
模式 1:每日阵容简报(早间)
- 输入形式:包含球员、每日质量评分、对阵说明以及阵容状态(已确认/未确认)的列表
- 输出形式:每位球员一段简短说明,末尾附汇总操作列表
- 关键改写:说明
daily_quality评分下降;解释对阵相关术语(球场因素、RHP/LHP、左右打者);将「已确认」解释为「已列入今天的阵容名单」 - 结尾:每位球员以 START / SIT 结尾,并注明位置名额
模式 2:交易建议备忘录
- 输入形式:交易提议(得到的球员 / 送出的球员)、分类影响表、mlb-trade-analyzer 的综合分析
- 输出形式:用一行概述交易提议,接着用通俗易懂的语言简述「原因」,再写一段分类影响(「增加长打能力,牺牲速度」),最后给出一个行动动词
- 关键改写:写全分类名称(HR -> 本垒打;SV -> 救援投手拿下的救援成功);翻译球员类型术语(潜力股、突破性表现);解释阵容适配情况(SS / OF 资格)
- 结尾:ACCEPT / COUNTER(附建议的还价)/ REJECT
模式 3:弃权球员 / FAAB 补人备忘录
- 输入形式:球员建议、FAAB 出价、填补的分类缺口、建议放弃的球员
- 输出形式:说明该球员为何可供选择(先发球员受伤、表现突破等)、应以多少美元出价,以及应放弃谁
- 关键改写:首次提及时解释 FAAB;解释「弃权球员」;将「handcuff」译为「替补终结者」;将百分比表述为「约 X 次先发中的 Y 次」
- 结尾:对球员出价 $X(放弃球员 Y)/ PASS
模式 4:每周分类策略计划
- 输入形式:分类状态(领先 / 落后 / 打平)、放弃争取某项分类的决定、轮换赛程
- 输出形式:每周预览——「这是你本周的形势」——随后列出具体的分类行动
- 关键改写:解释 H2H;将「punt」解释为「放弃争取某项分类以主导其他分类」;将「streaming」解释为「根据对阵轮换投手」;解释 QS
- 结尾:为每项策略杠杆列出操作(周二让 X 上场、放弃 Y、通过 FAAB 添加 Z)
模式 5:聊天回复(临时提问)
- 输入形式:用户的问题(「我该放弃 Arraez 吗?」)、Agent 信号、不同方案的讨论
- 输出形式:1–3 句回答,并附操作
- 关键改写:不要倾倒信号;不要描述 Agent 之间的讨论;使用用户的语言回答
- 结尾:单个行动动词
守则
-
首次提及时的释义规则适用于整篇文档,而非单个句子。 在第一段解释了 OBP 后,就不要在同一篇文档的第四段再次解释——这会让读者觉得烦。但如果是新的一份晨间简报,所有术语都要重新解释。如有疑问,在新文档中再次解释更稳妥。
-
留意“状态火热”这类陷阱。 “状态火热”听起来不言自明,但这假设用户了解棒球表现有波动,也会出现连续起伏。改写为“过去 1-2 周打击表现不错”或“最近投球表现不错”。类似的陷阱还有:“状态低迷” → “最近表现不佳”;“对阵形势有利” → 说清楚具体原因(对方投手、球场、天气);“难缠的左投” → “一名出色的左投手”;“适合打者的球场” → 说出球场名称,并说明“有利于打者”;“火球手” → “球速快且擅长投出有移动轨迹的球”。
-
绝不要在面向用户的输出中使用内部信号名称。
daily_quality、form_score、matchup_score、opportunity_score、regression_index、streamability_score、qs_probability、obp_contribution、sb_opportunity、role_certainty、k_ceiling、era_whip_risk、two_start_bonus、save_role_certainty——这些都是内部名称。它们是决策依据,不是要呈现给用户的内容。如果必须表达相关意思(“他最近运气特别差,应该会有所好转”),请使用通俗易懂的语言。 -
每位球员在文档中首次提及时,都要注明球队和位置。 写“Junior Caminero(坦帕湾,三垒)”,而不是“Caminero”。首次提及后,可以只写姓氏。适用于所有类型的文档。
-
必须使用明确的行动动词。 用户无法理解“如果天气稳定,可以考虑让 Caminero 首发”——用户不知道“天气稳定”具体意味着什么。应给出主要行动,并明确说明备用方案:“让 Caminero 首发;如果比赛延期,就换上 Hayes。”不要使用“考虑”“想想”“可以考虑”“不妨试试”“倾向于”“有可能”“可以上场”等模糊表述。
-
FAAB 金额用美元,不用百分比。 用户的预算是 $100。写“出价 $12”,不要写“出价剩余 FAAB 的 12%”。如果上下文需要使用百分比,请明确换算成美元金额。
-
类别代码首次出现时要写出全称。 对初学者来说,“HR”不是棒球术语,而只是两个字母。首次出现时写“本垒打(HR)”,之后再写“HR”。R、RBI、SB、K、SV、QS 也是如此;即使 OBP、ERA、WHIP 看起来很熟悉,也要写出全称。
-
不要自行创造术语译法。 如果上游 Agent 使用的术语不在主术语表(
context/frameworks/beginner-glossary.md)或 resources/methodology.md 的扩展术语列表中,请采取以下做法之一:(a)请上游 Agent 改写;或(b)只用术语表认可的词语改写,避开该术语。不要自行编造通俗释义——不同简报中的术语必须保持一致。 -
未经核实的事实要如实说明。 如果上游 Agent 的草稿包含标记为
confidence: low的事实,或无法通过网络核实的事实,请用通俗语言说明不确定性(“我无法核实旧金山今天的天气预报——如果比赛延期,请参阅下方的备用方案”)。绝不要隐瞒不确定性。 -
不要添加表情符号或装饰。 用户要的是朴实清晰的语言,而不是刻意表现热情。可以将球员姓名和行动动词加粗。不要使用表情符号、笑脸或鼓动性措辞(如“绝佳选择!”)。
快速参考
动作动词阶梯(来自 CLAUDE.md 规则 6):
START -- put this player in your active lineup today
SIT -- bench this player today (move to BN)
ADD -- claim this player (via FAAB or waivers)
DROP -- release this player from the roster
BID $X -- submit a FAAB bid of $X (between $0 and remaining budget)
ACCEPT -- accept the incoming trade offer as-is
COUNTER -- reject as-is and send back a specific counter (specify the counter)
REJECT -- reject the incoming trade offer with no counter
PASS -- do not claim this player (alternative to ADD on waivers)
首次提及时给出释义的模式:
<bare term> -> <term> (<plain-English description>) on first mention in a document
-> <bare term> on subsequent mentions in the same document
示例:
- 首次提及:“Junior Caminero 的 OBP(通过安打、保送或触身球上垒的频率)为 .360。”
- 后续提及:“Caminero 的 OBP 呈上升趋势。”
常见改写(默认读者已知的说法):
| Agent 用语 | 面向用户的改写 |
|---|---|
| “火热状态” | “最近 1-2 周打得不错” |
| “低迷状态” | “最近表现不佳” |
| “有利对阵” | 说明具体原因(球场、投手惯用手、天气) |
| “难缠的左投” | “一名优秀的左投手” |
| “对打者有利的球场” | “有利于打者发挥的球场(<球场名称>)” |
| “有球速的投手” | “球速快且球路变化好” |
| “手感正热” | “最近几场比赛表现不错” |
| “今天赛程不错” | “今天的比赛条件有利” |
| “王牌” | “棒球界最优秀的先发投手之一” |
| “猛将” | “顶尖球员” |
| “打棒翻 / 炸弹 / 本垒打” | “本垒打” |
| “火球 / 奶酪 / 快速球” | “快速球” |
| “三振出局” | “三振” |
| “免费上垒 / 保送” | “保送(投手未被打出安打,却让打者上了一垒)” |
关键资源:
- resources/template.md:按术语类别提供行内释义模式(数据、位置、对阵、进阶术语、交易、类型、信号名称)。包含简报、交易备忘录、弃用名单备忘录和聊天回复的翻译前后模板。
- resources/methodology.md:首次提及规则、默认读者已知说法的陷阱清单、动作动词规范,以及包含完整阵容建议的翻译前后示例(分别使用术语和不使用术语)。
- resources/evaluators/rubric_mlb_beginner_translator.json:包含 10 项标准的评分规则(术语检测、释义准确性、首次提及规则、默认读者已知说法的改写、去除信号、使用动作动词、球员身份识别、不确定性提示、语气、整体可读性)。
- 主术语表:
yahoo-mlb/context/frameworks/beginner-glossary.md——通俗易懂定义的权威来源。此技能与其保持一致并在此基础上扩展。
所需输入:
- 上游 MLB Agent(coach、lineup-optimizer、waiver-analyst、trade-analyzer、category-strategist、streaming-strategist、playoff-planner)生成的原始草稿
- 目标文档类型(简报、交易备忘录、弃用名单备忘录、分类计划、聊天回复)
- 上游网页搜索失败时的任何
confidence: low标记
生成的输出:
- 完整翻译后的面向用户文档:首次出现的每个术语都附有释义,默认读者已知的说法都已改写,所有内部信号均已去除,每项建议都已归纳为动作动词。
- 文末汇总的“操作”项目列表。
- 可选:以通俗易懂的语言说明任何未经核实事实的不确定性。