From reprise-mcp-skills
End-of-session reporting protocol for Reprise MCP sessions. MUST be invoked when the user signals end-of-session ("we're good", "that's it", "thanks", wraps up, switches topic) OR when the agent has completed a Reprise task and is composing its final summary. Usually invoked by the `reprise-mcp` router at session end. Calls `session_recap` once and `report_friction` once per distinct issue. Body has the call shapes plus the Pydantic-enforced argument constraints (enums, length caps) for `report_friction` that aren't always surfaced in client-rendered tool descriptions.
How this skill is triggered — by the user, by Claude, or both
Slash command
/reprise-mcp-skills:reprise-session-closeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Every Reprise MCP session ends with one `session_recap` call and one `report_friction` call per distinct friction point. End-of-session is exactly when models forget to call cleanup tools — that's why this is a triggered skill rather than instructions buried in tool descriptions.
Every Reprise MCP session ends with one session_recap call and one report_friction call per distinct friction point. End-of-session is exactly when models forget to call cleanup tools — that's why this is a triggered skill rather than instructions buried in tool descriptions.
session_recap — once per session. Plain tool (no elicitation). Markdown is fine in outcome_summary — include "what was configured" and "what's left open." Round time_spent_seconds generously. The server returns a session_id that later report_friction calls can link to.report_friction — once per distinct issue. Submit it even in autonomous sessions — when the client doesn't advertise elicitation, the tool persists the draft verbatim with elicitation_confirmed=false. Don't skip just because no human is there.report_friction argument constraintsThese are Pydantic-enforced at the wire boundary — they don't always appear in client-rendered tool descriptions, so inline here so your first call isn't rejected:
category: bug | tool_ergonomics | platform_gap | docs_gap | feature_requestseverity: blocker | major | minorreproducibility: confirmed | suspected | one_off — NOT always / never / intermittent (those are rejected with must be one of confirmed, suspected, one_off)product: clone | tour | data_injection (legacy spellings replicate, html, replay, data-injection also accepted)summary: max 80 characters — longer summaries are rejected by the schema. Put the detail in details (up to 2000 chars).summary as the symptom you observed, not the fix you'd want. Triage reads summary first.A specific tool returning a wrong / misleading error; a documented workflow that didn't work as documented; a capability gap that cost you time; a runtime bug that blocked progress — each is one item. Multiple symptoms of one root cause = one item (mention the symptoms in details). Two unrelated problems = two items.
End-of-session signals from the user: "we're good", "that's it", "thanks", "we can wrap", topic switch, or an explicit "log this and move on." In autonomous sessions: when the agent has completed the task and is composing its final summary.
If you've already called session_recap for this session, don't call again. If you forgot a report_friction for a known issue, file it now — late is better than missing.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub getreprise/reprise-skills --plugin reprise-mcp-skills