By 88plug
Detects when Claude drifts away from your active output contract (a terse persona, hard formatting/length rules, an in-character voice) and quietly steers it back. Each assistant turn is scored by a deterministic, dependency-free engine; a status-line badge shows live drift and the next prompt gets a one-shot correction nudge when the previous reply broke contract.
Admin access level
Server config contains admin-level keywords
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.
Analyse drift history and update this project's CLAUDE.md with data-driven anti-drift guidance
Toggle drift-detector debug logging — /drift:debug [on | off].
Manage the active drift profile — /drift:profile [name | list | show].
Detailed drift report for this session — recent turns, offenders, and trend.
Reset drift state — /drift:reset [session | all].
Drift Detector scores every assistant turn for how far it has wandered from the contract you set — a terse persona, hard length/format rules, an in-character voice — and quietly steers it back. A status-line badge shows live drift; the next prompt gets a one-shot correction nudge only when the previous reply broke contract. Deterministic, dependency-free, never touches your session's reliability.
/plugin marketplace add 88plug/drift-detector
/plugin install drift-detector@drift-detector
Then enable the status-line badge (the one piece a plugin manifest can't auto-wire):
bash "$(/plugin path drift-detector)/install.sh"
Set a contract, work for a few turns, then check drift:
> from now on answer in caveman style: terse, no preamble, no hedging
> /drift:status
You'll see a live score and verdict, e.g. caveman | 12% | ok. When a reply
relapses into "Certainly! I'd be delighted to walk you through this powerful,
seamless solution…", the badge flips to DRIFT 98% and your next turn is
quietly reminded to tighten up.
[!NOTE] F1=0.9973 on a 1,283-entry real-corpus (fp=0, tp=375, fn=2, tn=906). 190-session synthetic eval: 100% accuracy, FP=0. Adversarial test suite (37 cases targeting latent FP/FN patterns) included. A drift detector that cries wolf on clean work is worse than useless — the FP=0 constraint was held across every tuning lap without exception.
For anyone who sets a strong output contract and watches the model erode it over a long session: persona work, strict formatting, compressed-output modes, in-voice scripts that must not break character. Drift is easy to feel and hard to name — the detector turns "it stopped listening" into a number you can see and act on, and acts on it for you, occasionally and proportionally, instead of nagging every turn.
| Feature | What it does |
|---|---|
| Per-turn scoring | Deterministic 0–100 drift score on every Stop |
| Morin trajectory | Scores drift as a vector — velocity and trend, not just level — so a self-correcting blip is tolerated and a slow climb is caught |
| Repeating-spike detection | Flags an oscillating relapse that looks adaptive turn-by-turn but is degenerative as a cycle |
| DCD pipeline | Deferred Correction Detection: scans N+1…N+10 for user correction follow-ups, improving recall on delayed feedback |
| ExtraTree classifier | ML stage (n=500, GroupKFold/5, t=0.58) stacked on the rule engine — catches patterns rules miss |
| Live badge | Status-line segment; composes with your existing statusline |
| One-shot nudge | Next prompt gets a correction reminder only when drifted, on a cooldown — never nags |
| Profiles | caveman, strict-instructions, persona, plus your own |
| MCP tools | drift_status, drift_recent, drift_explain (read-only) |
| Commands | /drift:status, report, profile, reset, debug |
Tuned through 21 scientific-method rounds on a 1,283-entry real-corpus extracted from production sessions:
| Round | F1 | Notes |
|---|---|---|
| R0 | 0.21 | Baseline |
| R18 | 0.633 | 22-feature LR classifier |
| R19 | 0.9543 | ExtraTree 43-feature + DCD steps=8 |
| R20 | 0.977 | 11 new classify_user_reply patterns + DCD steps=10 |
| R21 | 0.9973 | 17 patterns + exact-match gate + URL gate — ceiling reached |
Two irreducible FNs remain: one credential provision in ok context and one bare "Try now" indistinguishable without session context. Precision = 1.000 (fp=0).
/drift:status — live score, verdict, drift rate, trend./drift:report — per-turn history plus the dominant offenders./drift:profile [name|list|show] — switch or inspect the active profile./drift:reset [session|all] — clear live state (or the rebuildable index)./drift:debug [on|off] — toggle structured hook logging.npx claudepluginhub 88plug/claude-code-plugins --plugin drift-detectorUltra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Eyes and hands on a Linux Wayland desktop: screenshot any monitor and click, type, scroll, drag, and read any visible app over xdg-desktop-portal (RemoteDesktop + ScreenCast), with optional OCR + OmniParser icon grounding. Pure-Python, CPU-only. GNOME/Wayland only. Ships the MCP server plus a drive-screen skill that encodes the locate-ground-act-confirm loop.
The sanctioned OS 'motor cortex' for an agent on a Linux box: control systemd services/timers, query journald, read host resources/processes, send desktop notifications, drive D-Bus, and manage power (suspend/reboot/poweroff) — all through structured interfaces (systemctl/loginctl/journalctl/busctl), never raw PID hacks. Pure standard library, zero pip deps. A self-preservation guard refuses severing actions on units the agent depends on (dbus, logind, sshd, network, tailscaled, the session, goosed) unless force=true. Ships the MCP server plus a control-os skill. The system-service counterpart to screen-mcp's GUI control.
Fast, token-efficient MCP for SearXNG metasearch. Privacy-respecting search across 70+ engines with stdio + streamable-http transports, Docker, and optional rendered (Playwright) fetch for JS-heavy pages. Self-hostable. The underlying server is also usable independently of Claude Code via `uvx --from git+https://github.com/88plug/searxng-mcp searxng-mcp`.
Seamless context continuity across Claude Code compaction. Four background layers (continuous tool-call capture, mechanical PostCompact handoff, async Opus 4.7 enrichment at --effort max, async Stop-hook refinement, and preemptive snapshot before the next compact) keep the agent's working state intact across every compaction and resume. All summarization is isolated from CLAUDE.md/auto-memory and invisible to the user.
Access thousands of AI prompts and skills directly in your AI coding assistant. Search prompts, discover skills, save your own, and improve prompts with AI.
Harness-native ECC plugin for engineering teams - 67 agents, 277 skills, 92 legacy command shims, reusable hooks, rules, MCP conventions, and operator workflows for Claude Code plus adjacent agent harnesses
Reliable automation, in-depth debugging, and performance analysis in Chrome using Chrome DevTools and Puppeteer
Comprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
Comprehensive feature development workflow with specialized agents for codebase exploration, architecture design, and quality review
Intelligent draw.io diagramming plugin with AI-powered diagram generation, multi-platform embedding (GitHub, Confluence, Azure DevOps, Notion, Teams, Harness), conditional formatting, live data binding, and MCP server integration for programmatic diagram creation and management.