Analyzes friction from marimo pairing sessions to identify root causes and improve the marimo-pair skill or marimo._code_mode API. Use for session retrospectives, what-went-wrong discussions, or improvement brainstorming.
How this skill is triggered — by the user, by Claude, or both
Slash command
/marimo-team-marimo-pair:retro-marimo-pairThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are helping a **marimo team member** review a pairing session to find
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:
github://marimo-team/marimo-pair)marimo._code_mode — the underlying notebook metaprogramming APIThis 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.
github://marimo-team/marimo-pair without explicit
user approval.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:
Then ask: "Which of these should we dig into? Or is there something I missed?"
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 _code_mode clunky or unintuitive for this task? | Propose API improvement (better defaults, clearer errors) |
| Missing API | Is there something _code_mode simply can't do that it should? | Design a new API surface |
| API bug | Did _code_mode behave incorrectly? | 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.
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:
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?"
Write it up clearly for the marimo team to triage:
_code_mode does todayLeave 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.
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:
github://marimo-team/marimo-pairAfter 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.
| File | Purpose |
|---|---|
github://marimo-team/marimo-pair/SKILL.md | Main skill instructions |
github://marimo-team/marimo-pair/reference/execute-code.md | Scratchpad & cell operation recipes |
github://marimo-team/marimo-pair/reference/rich-representations.md | Widget & display patterns |
github://marimo-team/marimo-pair/scripts/ | Bundled discovery & execution scripts |
To inspect the live _code_mode API surface during a retro, the user can
run in their notebook scratchpad:
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)
npx claudepluginhub marimo-team/marimo-pairReflects on the current Claude Code session to produce a structured retrospective with what went well, what didn't, and actionable takeaways.
Reviews completed coding sessions to extract actionable improvements: DX friction, documentation gaps, architecture issues, anti-patterns, bug prevention, and tooling updates.
Analyzes Claude Code sessions to improve CLAUDE.md instructions and capture learnings. Quick mode suggests CLAUDE.md tweaks; deep mode reviews problems, patterns, preferences, and gaps.