[BREAKGLASS] Compatibility testbed for OpenClaw community plugins and plugin seams
Go to file
2026-04-25 12:11:50 -07:00
.github chore: initialize crabpot compat testbed 2026-04-25 12:11:50 -07:00
docs chore: initialize crabpot compat testbed 2026-04-25 12:11:50 -07:00
plugins chore: initialize crabpot compat testbed 2026-04-25 12:11:50 -07:00
scripts chore: initialize crabpot compat testbed 2026-04-25 12:11:50 -07:00
test chore: initialize crabpot compat testbed 2026-04-25 12:11:50 -07:00
.gitignore chore: initialize crabpot compat testbed 2026-04-25 12:11:50 -07:00
.gitmodules chore: initialize crabpot compat testbed 2026-04-25 12:11:50 -07:00
AGENTS.md chore: initialize crabpot compat testbed 2026-04-25 12:11:50 -07:00
crabpot.config.json chore: initialize crabpot compat testbed 2026-04-25 12:11:50 -07:00
crabpot.schema.json chore: initialize crabpot compat testbed 2026-04-25 12:11:50 -07:00
LICENSE chore: initialize crabpot compat testbed 2026-04-25 12:11:50 -07:00
package.json chore: initialize crabpot compat testbed 2026-04-25 12:11:50 -07:00
README.md chore: initialize crabpot compat testbed 2026-04-25 12:11:50 -07:00

crabpot

Compatibility trap for OpenClaw plugin contracts.

crabpot keeps a curated set of real community plugins pinned under plugins/ and runs seam-focused compatibility checks against OpenClaw plugin APIs. The goal is to catch contract drift before external plugin authors do.

What this tests

  • plugin manifests and install metadata
  • native tool registration and dynamic tool schemas
  • channel registration and message delivery seams
  • lifecycle hooks such as gateway_start, gateway_stop, and before_install
  • agent hooks such as before_tool_call, before_prompt_build, llm_input, llm_output, and agent_end
  • provider capability registration such as speech/TTS
  • plugin-owned services, routes, subprocesses, and async job patterns

Layout

crabpot/
  crabpot.config.json        fixture manifest and seam tags
  plugins/                   external plugin repositories as git submodules
  scripts/                   manifest and fixture helpers
  test/                      repo-level checks
  docs/                      operating notes and seam matrix

Quick start

npm test
node scripts/list-fixtures.mjs
node scripts/sync-fixtures.mjs --check

To materialize the fixture repos as submodules:

node scripts/sync-fixtures.mjs --materialize
git submodule update --init --recursive

That command mutates .gitmodules and plugins/*. Commit those changes when you intentionally pin or update fixture revisions.

Fixture policy

Fixtures should earn their spot by covering a distinct seam. Popularity is a useful signal, but a small plugin that exercises a rare hook is more valuable than the fourth web-search wrapper.

The first fixture set intentionally covers channels, dynamic tools, LLM observation, diagnostics, gateway-owned services, async jobs, provider capabilities, and security/policy hooks.