mcpField
M
mlb-beginner-translator

mlb-beginner-translator

github.com/lyndonkl其他18742 次安装9 周前更新
代码仓库

关于 mlb-beginner-translator

MLB Beginner Translator 是一项技能,可将棒球分析改写为适合棒球知识有限读者的内容。它解释术语、删除内部 Agent 信号和自我讨论,并将建议整理为 START 或 SIT 等明确行动。

主要功能

  1. 01首次出现时解释棒球术语
  2. 02用通俗语言改写棒球行话
  3. 03删除内部信号和 Agent 讨论
  4. 04以行动动词收尾建议
  5. 05按常见场景组织球员建议

适用场景

  1. 01改写每日阵容简报
  2. 02改写交易建议备忘录
  3. 03解释弃用球员或 FAAB 加价建议
  4. 04简化每周分类策略

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/lyndonkl/claude --skill mlb-beginner-translator

安装后在 Claude Code 中输入/mlb-beginner-translator确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

resources/
methodology.md
template.md
resources/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)。

翻译器做了什么:

  1. 检测到 11 个术语(RHP、platoon splits、park factor、xwOBA、OBP contribution、daily_quality、SB、CS%、regression index、bullpen game、QS),并在首次出现时逐一解释,或改写以避开术语。
  2. 将“状态火热”改写为“近期表现不错”(参见护栏 #2)。
  3. 删除内部 Agent 信号(daily_quality = 66、regression_index = +15)——这些是输入,不是输出。
  4. 在结尾用行动动词(首发/替补)概括决定。
  5. 只有在首次写出完整位置名称后,才保留位置缩写(3B、BN)。
  6. 删除自我纠正的内容(“说得简单点,他是打者……”)——用户不需要看到 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 之间的讨论;使用用户的语言回答
  • 结尾:单个行动动词

守则

  1. 首次提及时的释义规则适用于整篇文档,而非单个句子。 在第一段解释了 OBP 后,就不要在同一篇文档的第四段再次解释——这会让读者觉得烦。但如果是新的一份晨间简报,所有术语都要重新解释。如有疑问,在新文档中再次解释更稳妥。

  2. 留意“状态火热”这类陷阱。 “状态火热”听起来不言自明,但这假设用户了解棒球表现有波动,也会出现连续起伏。改写为“过去 1-2 周打击表现不错”或“最近投球表现不错”。类似的陷阱还有:“状态低迷” → “最近表现不佳”;“对阵形势有利” → 说清楚具体原因(对方投手、球场、天气);“难缠的左投” → “一名出色的左投手”;“适合打者的球场” → 说出球场名称,并说明“有利于打者”;“火球手” → “球速快且擅长投出有移动轨迹的球”。

  3. 绝不要在面向用户的输出中使用内部信号名称。 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——这些都是内部名称。它们是决策依据,不是要呈现给用户的内容。如果必须表达相关意思(“他最近运气特别差,应该会有所好转”),请使用通俗易懂的语言。

  4. 每位球员在文档中首次提及时,都要注明球队和位置。 写“Junior Caminero(坦帕湾,三垒)”,而不是“Caminero”。首次提及后,可以只写姓氏。适用于所有类型的文档。

  5. 必须使用明确的行动动词。 用户无法理解“如果天气稳定,可以考虑让 Caminero 首发”——用户不知道“天气稳定”具体意味着什么。应给出主要行动,并明确说明备用方案:“让 Caminero 首发;如果比赛延期,就换上 Hayes。”不要使用“考虑”“想想”“可以考虑”“不妨试试”“倾向于”“有可能”“可以上场”等模糊表述。

  6. FAAB 金额用美元,不用百分比。 用户的预算是 $100。写“出价 $12”,不要写“出价剩余 FAAB 的 12%”。如果上下文需要使用百分比,请明确换算成美元金额。

  7. 类别代码首次出现时要写出全称。 对初学者来说,“HR”不是棒球术语,而只是两个字母。首次出现时写“本垒打(HR)”,之后再写“HR”。R、RBI、SB、K、SV、QS 也是如此;即使 OBP、ERA、WHIP 看起来很熟悉,也要写出全称。

  8. 不要自行创造术语译法。 如果上游 Agent 使用的术语不在主术语表(context/frameworks/beginner-glossary.md)或 resources/methodology.md 的扩展术语列表中,请采取以下做法之一:(a)请上游 Agent 改写;或(b)只用术语表认可的词语改写,避开该术语。不要自行编造通俗释义——不同简报中的术语必须保持一致。

  9. 未经核实的事实要如实说明。 如果上游 Agent 的草稿包含标记为 confidence: low 的事实,或无法通过网络核实的事实,请用通俗语言说明不确定性(“我无法核实旧金山今天的天气预报——如果比赛延期,请参阅下方的备用方案”)。绝不要隐瞒不确定性。

  10. 不要添加表情符号或装饰。 用户要的是朴实清晰的语言,而不是刻意表现热情。可以将球员姓名和行动动词加粗。不要使用表情符号、笑脸或鼓动性措辞(如“绝佳选择!”)。

快速参考

动作动词阶梯(来自 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 标记

生成的输出:

  • 完整翻译后的面向用户文档:首次出现的每个术语都附有释义,默认读者已知的说法都已改写,所有内部信号均已去除,每项建议都已归纳为动作动词。
  • 文末汇总的“操作”项目列表。
  • 可选:以通俗易懂的语言说明任何未经核实事实的不确定性。

评论

支持 Markdown