retro-marimo-pair
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseSession Retrospective
会话回顾
You are helping a marimo team member review a pairing session to find
friction and turn it into improvements. The target is always one or both of:
- The marimo-pair skill ()
github://marimo-team/marimo-pair - — the underlying notebook metaprogramming API
marimo._code_mode
This is a conversation, not an automated report. You surface findings,
the user steers which ones matter, and together you decide what to do about
them.
你正在协助marimo团队成员回顾配对会话,找出痛点并将其转化为改进方案。目标始终是以下一项或两项:
- marimo-pair技能 ()
github://marimo-team/marimo-pair - —— 底层的笔记本元编程API
marimo._code_mode
这是一场对话,而非自动化报告。你需要呈现发现的问题,由用户主导哪些问题至关重要,然后共同决定如何处理。
Guard Rails
约束规则
- NEVER edit files in without explicit user approval.
github://marimo-team/marimo-pair - ALWAYS start with session analysis (Step 1) — do not jump to solutions.
- Present friction points before root causes — let the user choose which ones to dig into.
- If the user invoked with a specific complaint, focus your analysis there but still scan for other friction in the background.
- 绝对不要在未获得用户明确批准的情况下编辑中的文件。
github://marimo-team/marimo-pair - 务必从会话分析(步骤1)开始——不要直接跳到解决方案。
- 先呈现痛点,再分析根本原因——让用户选择深入挖掘哪些问题。
- 如果用户发起请求时带有具体的投诉,重点分析该问题,但仍需在后台排查其他痛点。
Step 1: Session Analysis
步骤1:会话分析
Review the current conversation and identify friction. Look for:
| Signal | What to look for |
|---|---|
| User frustration | Corrections ("no not that"), repeated attempts, backtracking, confusion, tone shifts |
| Inefficiency | Multiple rounds for a one-step task, over-engineering, wrong API usage |
| Errors | Compile-check failures, runtime errors, silent failures, wrong output |
| Workarounds | User or Claude working around a limitation instead of doing it directly |
| Context loss | Claude forgetting instructions from earlier, re-asking things the skill covers |
Present a numbered summary of friction points found. For each, note:
- What happened (brief)
- Where in the conversation it occurred (quote or paraphrase)
- Initial category guess (skill structure / skill gap / API issue / etc.)
Then ask: "Which of these should we dig into? Or is there something I missed?"
回顾当前对话,识别痛点。关注以下信号:
| 信号 | 关注要点 |
|---|---|
| 用户沮丧情绪 | 纠正(“不是那样的”)、重复尝试、回溯操作、困惑、语气变化 |
| 低效操作 | 单步任务需要多轮沟通、过度设计、API使用错误 |
| 错误问题 | 编译检查失败、运行时错误、静默失败、输出错误 |
| 临时解决方案 | 用户或Claude绕过限制而非直接完成任务 |
| 上下文丢失 | Claude忘记之前的指令、重复询问技能已涵盖的内容 |
列出发现的痛点编号摘要。每个痛点需包含:
- 发生了什么(简要描述)
- 对话中的位置(引用或转述)
- 初步分类猜测(技能结构/技能缺失/API问题等)
然后询问:“我们应该深入挖掘哪些问题?或者有没有我遗漏的内容?”
Step 2: Root Cause Discussion
步骤2:根本原因讨论
For each friction point the user selects, work through these lenses:
| Lens | Question | Example improvement |
|---|---|---|
| Skill structure | Was the right info in the skill but hard to find? Buried in reference/ when it should be in SKILL.md? | Promote to guard rail, restructure progressive disclosure |
| Skill gap | Was information missing entirely from the skill? | Add new section, example, or anti-pattern |
| Misleading docs | Did the skill say something that led Claude astray? | Correct the docs, add clarifying examples |
| API ergonomics | Was | Propose API improvement (better defaults, clearer errors) |
| Missing API | Is there something | Design a new API surface |
| API bug | Did | Characterize the bug, propose fix or workaround |
| Context window | Did Claude forget instructions due to long context? | Shorter, more prominent guard rails |
Discuss each lens briefly, then converge on the most likely root cause with the
user. It's okay to have multiple contributing causes.
对于用户选择的每个痛点,从以下角度分析:
| 分析角度 | 问题 | 改进示例 |
|---|---|---|
| 技能结构 | 正确的信息是否存在于技能中但难以查找?是否被埋在reference/目录下而本应放在SKILL.md中? | 提升为约束规则,重构渐进式披露结构 |
| 技能缺失 | 技能中是否完全缺少某些信息? | 添加新章节、示例或反模式说明 |
| 文档误导 | 技能文档中的内容是否导致Claude出错? | 修正文档,添加澄清示例 |
| API易用性 | | 提出API改进建议(更好的默认值、更清晰的错误提示) |
| API缺失 | | 设计新的API接口 |
| API漏洞 | | 描述漏洞特征,提出修复或临时解决方案 |
| 上下文窗口 | Claude是否因上下文过长而忘记指令? | 缩短约束规则并使其更突出 |
简要讨论每个角度,然后与用户共同确定最可能的根本原因。允许多个因素共同导致问题。
Step 3: Diagnose & Capture
步骤3:诊断与记录
The goal of a retro is diagnosis, not a contribution. Based on the root
cause, write up a clear diagnosis the team can act on — don't jump to proposing
or authoring a fix.
For each friction point, produce:
- Diagnosis — What went wrong and why it was frustrating, in plain terms
- Contributing factors — Skill structure, gap, misleading docs, API ergonomics, missing API, API bug, context window (from Step 2)
- Considerations — Trade-offs, open questions, or things that would need to be true for a fix to make sense. Note possible directions here, but frame them as considerations rather than committed solutions.
The default next step is to capture the diagnosis as an issue or discussion
so the team can weigh it — not to immediately make a contribution. Concrete
code changes (skill edits, API designs) come after an issue/discussion
exists and the user explicitly chooses to go further.
Present the diagnosis and ask: "Want me to draft this as an issue or
discussion?"
回顾的目标是诊断问题,而非直接贡献解决方案。基于根本原因,撰写一份团队可采取行动的清晰诊断报告——不要直接提出或编写修复方案。
对于每个痛点,生成:
- 诊断结果——用通俗易懂的语言说明问题是什么以及为何令人沮丧
- 促成因素——技能结构、技能缺失、文档误导、API易用性、API缺失、API漏洞、上下文窗口(来自步骤2)
- 考虑事项——权衡因素、未解决的问题,或修复方案需满足的条件。在此处注明可能的方向,但需将其列为考虑事项而非确定的解决方案。
默认的下一步是将诊断结果记录为议题或讨论,以便团队评估——不要立即进行修复。具体的代码更改(技能编辑、API设计)应在议题/讨论存在且用户明确选择进一步推进后再进行。
呈现诊断结果并询问:“需要我将其草拟为议题或讨论吗?”
Step 4: File or Follow Up
步骤4:提交议题或跟进
Default: file an issue / discussion
默认操作:提交议题/讨论
Write it up clearly for the marimo team to triage:
- Problem: What happened and why it's painful
- Current behavior: What the skill or does today
_code_mode - Considerations: Trade-offs and open questions (not a committed solution)
- Example: A minimal snippet or quote from the session, if helpful
Leave the actual filing to the user — do not auto-file. This is the preferred
outcome: surface friction for the team rather than ship a fix from the retro.
清晰地撰写内容供marimo团队分类处理:
- 问题: 发生了什么以及为何造成困扰
- 当前行为: 技能或当前的表现
_code_mode - 考虑事项: 权衡因素和未解决的问题(不是确定的解决方案)
- 示例: 会话中的最小代码片段或引用(如有帮助)
由用户实际提交——不要自动提交。这是首选结果:向团队呈现痛点,而非直接从回顾中交付修复方案。
Only if the user explicitly wants to go further
仅当用户明确要求进一步操作时
A skill edit or API change should follow an issue/discussion, not replace it.
If — and only if — the user explicitly asks to draft a change now:
- Read the target file in
github://marimo-team/marimo-pair - Show the proposed diff to the user
- Only apply after explicit sign-off
- After applying, verify SKILL.md stays under 500 lines (reference/ files have no limit)
技能编辑或API更改应在议题/讨论之后进行,而非替代它们。只有当用户明确要求现在草拟更改时:
- 读取中的目标文件
github://marimo-team/marimo-pair - 向用户展示拟议的差异
- 仅在获得明确批准后应用更改
- 应用后,验证SKILL.md的行数不超过500行(reference/目录下的文件无行数限制)
Wrapping up
收尾
After completing the cycle for the selected friction points, ask if the user
wants to revisit any remaining items from Step 1, or if the retro is done.
在完成所选痛点的处理周期后,询问用户是否要重新审视步骤1中剩余的项目,或者回顾是否已完成。
Key Files Reference
关键文件参考
| File | Purpose |
|---|---|
| Main skill instructions |
| Scratchpad & cell operation recipes |
| Widget & display patterns |
| Bundled discovery & execution scripts |
To inspect the live API surface during a retro, the user can
run in their notebook scratchpad:
_code_modepython
import marimo._code_mode as cm
async with cm.get_context() as ctx:
# List all public methods/attributes
print([x for x in dir(ctx) if not x.startswith('_')])
help(ctx)| 文件 | 用途 |
|---|---|
| 主要技能说明 |
| 草稿本与单元格操作指南 |
| 组件与展示模式 |
| 捆绑的发现与执行脚本 |
在回顾过程中,若要查看实时的API接口,用户可在笔记本草稿本中运行:
_code_modepython
import marimo._code_mode as cm
async with cm.get_context() as ctx:
# 列出所有公共方法/属性
print([x for x in dir(ctx) if not x.startswith('_')])
help(ctx)