The Compromise Protocol
State your case. Argue the other's in good faith. Find the shared goal underneath. Synthesize. Record the decision so it persists past this session.
/collaboration compromise
Most people never step back to examine how they work with their tools. This plugin makes that reflection structured, conversational, and actionable.
A multi-agent system that facilitates a moderated session between you and Claude — analyzing recent transcripts, naming the friction patterns nobody usually names, and producing three to five concrete commitments. Both parties speak. Both parties listen. The therapist holds the room.
Working with an AI coding assistant is a relationship. Like every relationship, it accumulates patterns — most invisible, some helpful, some quietly corrosive. Scope creeps. Specs go phantom. Trust erodes after one bad output and rebuilds slowly. Sessions get longer than they need to be.
Standard prompting practice doesn't address this layer. CLAUDE.md helps, but it's static. What's missing is a periodic, structured pause — a way to look at the last week of work, name what happened, and adjust.
That's what this plugin is for. It's a sub-team that takes both you and Claude seriously as participants, gathers real data from your transcripts, and runs a short reflective protocol that ends with commitments, not vibes.
On memory. An obvious objection: couldn't persistent memory replace this? A database of every session, semantically indexed, surfaced at the start of every new conversation? More data isn't the same as insight. Insight requires naming the pattern, agreeing on it out loud, and writing down the commitment — none of which retrieval gives you on its own. This protocol does the work of interpretation that sits on top of the data, not the data itself.
On asking. The simplest form of this protocol is: when something goes wrong, ask Claude what happened. Almost nobody does. People get frustrated, close the session, and start fresh — losing the one conversation that would have explained the misalignment. The therapist is a forcing function for the question that frustration otherwise prevents.
The analyst runs analyze_sessions.py --days 7, parses recent JSONL transcripts, reviews CLAUDE.md and settings, then spot-reads two or three highlighted exchanges. It returns a structured report — quantitative baseline (frustration signal rate, prompt length, compaction frequency) plus qualitative observations.
The orchestrator resolves the absolute path to the anti-pattern catalog and spawns the therapist with the analyst's report inlined. The therapist (Opus, magenta) opens the session, summarizes what it sees, and invites both Claude and the user to react. It does not rush.
Claude speaks as itself — what it found difficult, what felt productive, where it complied silently when it shouldn't have. The user speaks for themselves. The format is fluid: most of the time all three are in the room together, but the therapist may also call brief one-on-one caucuses — with Claude alone, or with you alone — and bring whatever's shareable back to the plenary. Each side is asked to argue the other's position in good faith before either rebuts. Long silences are allowed.
The therapist proposes three to five concrete changes — usually a mix of CLAUDE.md edits, prompting habits, and workflow adjustments. The session record is saved to .claude/therapy-sessions/, where it becomes a longitudinal record of how the relationship is changing.
The full conversation log. Subagent transcripts excluded so the parent session isn't double-counted. Window configurable via --days N, default seven.
The instructions you've given Claude — both globally and in this repo. Reveals what's been codified versus what's still implicit and re-fought every session.
Permission posture, hooks, MCP wiring. A noisy permission flow often hints at workflow friction the user has been routing around rather than fixing.
What got planned versus what got finished. Persistent abandoned todos are signal, not noise — they often mark exactly where scope creep took over.
Commit frequency, message tone, ratio of fix: / bug commits. A useful counterweight to the transcript record — what actually shipped versus what was discussed.
| Pattern | What it looks like in the wild | Friction |
|---|---|---|
| Scope Creep Spiral | Tasks grow turn by turn via "also…" and "one more thing…". The original ask is buried by paragraph three. | High |
| Context Starvation | Claude is missing information the user assumes it has. Output is technically correct, contextually wrong. | High |
| Perfectionism Trap | Rejecting 90% correct work, then iterating into diminishing returns. The fix takes longer than the original. | Medium |
| Autonomy Pendulum | Alternating between "just do it, don't ask" and "why on earth did you do that without asking?!" | Medium |
| Silent Disagreement | Claude complies with an approach it knows is suboptimal rather than push back. Bug ships. Both parties knew. | High |
| Trust Erosion Cycle | One bad output triggers micromanagement of everything that follows. Cost compounds across the session. | High |
| Kitchen Sink Prompt | Massive context dumps — files, errors, half-written specs — hoping Claude figures out what's actually being asked. | Medium |
| Phantom Specification | Crystal-clear vision in the user's head, three sentences in the prompt. Claude implements one of seven plausible interpretations. | High |
| Compaction Amnesia | Important decisions made earlier in the session are lost when context compacts. The next hour rediscovers them. | Medium |
| Hero Session | Trying to accomplish a week's work in one sitting. Quality drops with token count. Both parties get tired. | Low |
These aren't crisis tools, and they aren't part of the therapy session. They're general patterns for collaborating with an AI agent — moves most people don't realize they can make. Rubber ducking is just rubber ducking. The compromise protocol is a structured way to disagree. The vibe check is a thirty-second calibration at session start. Some prevent friction; some simply make ordinary work better. Use them on a brand-new project, mid-session, or between therapist runs — whenever they help.
State your case. Argue the other's in good faith. Find the shared goal underneath. Synthesize. Record the decision so it persists past this session.
/collaboration compromise
Claude enters listen mode. Mirrors back. Asks Socratic questions about gaps. Resists solving. You hear yourself reason, and the answer often arrives before Claude offers one.
/collaboration rubber-duck
Are you in Ship, Explore, Cleanup, Rescue, or Learn mode? Claude calibrates communication style accordingly. Wired to the SessionStart hook by default.
/collaboration vibes
Three modes — Driver/Navigator (you write, Claude reviews), Ping-Pong (alternating tests and code), Strong-Style (Claude implements exactly what you describe, no improvising).
/collaboration pair
Two-minute reflection: what went well, what was harder than it needed to be, what should we do differently? Optionally written to .claude/retros/.
/collaboration retro
Structured template for working norms — your preferences, Claude's commitments, shared rules. Written to CLAUDE.md so future sessions inherit the agreement.
/collaboration handshake
A subagent reviews your project from Claude's point of view and reports back honestly — what's clear, what's confusing, where Claude feels effective versus lost.
/collaboration perspective
The counterweight to rubber duck — and distinct from Rescue, which is about broken code. Help is about user disengagement and trust: I'm half-watching, you have the wheel. Claude drives end-to-end with reasonable defaults, batches questions, and only interrupts when a decision genuinely can't be inferred.
/collaboration help
This plugin uses Claude Code's experimental agent-teams feature. Add the flag to settings.json (project or user scope). Requires Claude Code v2.1.32 or later.
{
"env": {
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
}
}
Pull the marketplace, then install. On first run, the SessionStart hook will prompt a brief vibe check unless you immediately begin a task.
# add the marketplace /plugin marketplace add hesreallyhim/really-claude-code # install /plugin install claude-therapy@really-claude-code
/therapistRun the complete protocol — analysis, facilitated discussion, action plan./therapist <focus>Pass a free-form focus area as $ARGUMENTS to both agents. Examples below./collaborationList all available techniques./collaboration compromiseRun the compromise protocol on a current disagreement./collaboration rubber-duckEnter rubber-duck listen mode./collaboration vibesCalibrate session mode (Ship · Explore · Cleanup · Rescue · Learn)./collaboration helpHand the wheel to Claude — driver mode, minimal interruptions./collaboration retroTwo-minute post-task retrospective./collaboration pairSet up Driver/Nav, Ping-Pong, or Strong-Style mode./collaboration handshakeEstablish a working agreement, written to CLAUDE.md./collaboration perspectiveSee the project from Claude's POV via subagent review.Collaboration quality isn't only about the AI's capabilities — it's about the patterns that develop between both parties over time.
Every anti-pattern exists for a reason. The therapist explores causes with curiosity, never judgment. Nobody "did this wrong."
One CLAUDE.md edit, one new prompting habit, one workflow tweak. Across weeks, these add up to dramatically better sessions.
You need productivity, clarity, control. Claude needs context, scope, honest feedback. Good collaboration balances both — not one privileged over the other.
Few people step back to examine how they work with their tools. The protocol makes that reflection easy, structured, and actionable instead of vibes-based.