This plugin requires configuration values that are prompted when the plugin is enabled. Sensitive values are stored in your system keychain.
log_dirWhere divergence artifact files are written and gated by the session-ownership hook. Leave blank to use the plugin's default data directory.
${user_config.log_dir}A Claude Code plugin marketplace. Tools and skills for agent-assisted development, each independently installable and independently versioned.
/plugin marketplace add warrentc3/dub-claude
Then browse or install specific plugins:
/plugin install <plugin-name>@dub-claude
Skills resolve as <plugin-name>:<skill-name> once installed.
| Plugin | Purpose |
|---|---|
| divergence | Capture agent correction events as structured preference-pair artifacts. Session-owned: write-once, owner-read-only. |
| pylib-evaluator | Evaluate Python libraries against PyPI metadata, GitHub repo state, and commit decomposition. Produces a maintenance-state report for dependency-adoption decisions. |
| session-retro | Write a structured session retrospective — 4-section format with session metrics header extracted from the transcript. |
Each plugin is independently versioned and independently installable — install only what you need.
dub-claude/
├── .claude-plugin/
│ └── marketplace.json # marketplace manifest; declares every plugin
├── plugins/
│ ├── divergence/ # see plugins/divergence/README.md
│ ├── pylib-evaluator/ # see plugins/pylib-evaluator/README.md
│ └── session-retro/ # see plugins/session-retro/README.md
├── LICENSE # MIT
└── README.md # this file
plugin.json, its own semver, its own hooks/skills/scripts. No shared runtime, no cross-plugin coupling.sticky-fetch). DubClaude distributes the MCP config; users stand up the server themselves.The Claude Code plugin reference is authoritative — see https://code.claude.com/docs/en/plugins-reference. Conventions followed here:
plugins/<plugin-name>/ with its own .claude-plugin/plugin.json.skills/<skill-name>/SKILL.md; helper scripts under scripts/.hooks/hooks.json with command scripts under hooks/..claude-plugin/ at any level — that directory is for manifests only.${CLAUDE_PLUGIN_ROOT} resolves to the plugin's installed directory; ${CLAUDE_PLUGIN_DATA} to its per-user data directory; ${user_config.<key>} substitutes values the user set at enable time.hooks.json is safe.MIT. See LICENSE. Individual plugins inherit this license unless their own plugin.json declares otherwise (none currently do).
Matches all tools
Hooks run on every tool call, not just specific ones
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub warrentc3/dub-claude --plugin divergenceWrite a structured session retrospective from a Claude Code transcript — 4-section format with session metrics header.
Evaluate Python library maintenance state and adoption viability via PyPI metadata, GitHub repo activity, and commit decomposition.
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Memory compression system for Claude Code - persist context across sessions
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Curate auto-memory, promote learnings to CLAUDE.md and rules, extract proven patterns into reusable skills.