MCP.Market

openclaw-test-performance skill

by openclaw·openclaw/openclaw·394k stars·MIT

Benchmark, diagnose, and optimize OpenClaw test and plugin-suite runtime, import hotspots, CPU/RSS, heap growth, and slow coverage paths.

A100/100content scan

Is the openclaw-test-performance skill safe?

Clean: nothing in its files matched our rules. We read 2 files in the folder on 2026-11-06.

No findings.

Install the openclaw-test-performance skill

A skill is a folder. Copy it into your agent's skills folder and the agent loads it when the task matches its description.

git clone --depth 1 https://github.com/openclaw/openclaw.git /tmp/openclaw
mkdir -p ~/.claude/skills
cp -r /tmp/openclaw/.agents/skills/openclaw-test-performance ~/.claude/skills/openclaw-test-performance
available in every project

In the Claude apps, zip the folder and upload it from the Skills settings. The folder on GitHub

The instructions your agent would load

SKILL.md as published, without the frontmatter. Read it on GitHub

OpenClaw Test Performance

Use evidence first. The goal is real pnpm test, plugin-suite, and plugin-inspector speed/RSS improvement with coverage intact, not runner tuning by guesswork.

Workflow

  1. Read the relevant local AGENTS.md files before editing:

laziness.

  • src/agents/AGENTS.md for agent/import hotspots.
  • src/channels/AGENTS.md and src/plugins/AGENTS.md for plugin/channel

src/channels/plugins/contracts/test-helpers/AGENTS.md for shared contract helpers.

  • src/gateway/AGENTS.md for server lifecycle tests.
  • test/helpers/AGENTS.md and
  • src/infra/outbound/AGENTS.md for outbound/media/action tests.
  1. Establish a baseline before changing code:

for full-suite ranking.

  • Prefer pnpm test:perf:groups --full-suite --allow-failures --output

test:extensions:batch or plugin-inspector command before jumping to the full extension sweep.

  • For bundled plugin breadth, run the smallest relevant pnpm

/usr/bin/time -l pnpm test --maxWorkers=1 --reporter=verbose

  • For a scoped hotspot use:

OPENCLAWVITESTIMPORTDURATIONS=1 OPENCLAWVITESTPRINTIMPORT_BREAKDOWN=1.

  • For import-heavy suspicion add:
  1. Separate wall/runner noise from real file cost:

max RSS.

  • Compare Vitest duration, test body timing, import breakdown, wall time, and

passed, capture that as harness/noise and verify the suspect file directly.

  • Re-run single files when grouped/full-suite numbers look stale or noisy.
  • If a full-suite grouped run reports a lane failure but JSON says tests
  1. Pick the next attack by return and risk:

extension-batch run to load broad runtime.

  • High return: one file/test dominates seconds or RSS and has a clear root.
  • High leverage: one plugin or SDK barrel causes every plugin-inspector or

setup hints, registry fixtures, or test server lifecycle.

  • Lower risk: static descriptors, target parsing, routing, auth bypass,

contracts, or broad production refactors.

  • Higher risk: real memory/runtime behavior, live providers, protocol
  1. Fix the root cause, not the symptom:

reused by full runtime and fast paths.

  • Move static metadata/parsing into narrow helpers or lightweight artifacts

and pure helpers over broad mocks.

  • Prefer dependency injection, loaded-plugin-only lookup, explicit fixtures,

and keep runtime plugin loads behind explicit execution boundaries.

  • Reuse suite-level servers/clients when a fresh handshake is irrelevant.
  • Keep schedulers/background loops off unless the test proves scheduling.
  • In plugin paths, move static metadata into manifest/lightweight artifacts
  1. Preserve coverage shape:

composition is extracted into a named helper and tested.

  • Do not delete a slow integration proof unless the exact production
  • Keep one cheap integration smoke when cross-component wiring matters.
  • State explicitly what incidental coverage was removed, if any.

percent gain.

  1. Re-benchmark the same command after the change and compute seconds plus

Include before/after commands, artifacts, coverage notes, verification, and next attack order.

  1. Update the running report when requested or when this thread is tracking one.

user asked for commits/pushes. Stage only files touched for this attack.

  1. Stage the intended paths, commit with standard Git, and push when the

Plugin-Suite Workflow

Use this section when perf work involves bundled plugins, plugin-inspector, SDK barrels, package-boundary tests, or extension suites.

  1. Map the suite shape first:

pnpm run test:extensions:package-boundary:compile

  • source tests: pnpm test extensions/ or pnpm test:extensions:batch
  • package boundaries: pnpm run test:extensions:package-boundary:canary and

keep wrappers thin and collect peak RSS when the command supports it.

  • all bundled source tests: pnpm test:extensions
  • plugin import memory: pnpm test:extensions:memory -- --json .artifacts/test-perf/extensions-memory.json
  • plugin-inspector/report work: keep report primitives in plugin-inspector;
  1. Start narrow, then widen:

and feature plugins.

  • one plugin changed: run that plugin's tests and plugin-inspector slice.
  • SDK/public barrel changed: add representative provider, channel, memory,

proof as needed.

  • loader/runtime mirror changed: add package-boundary checks and build/package

pnpm test:extensions.

More skills from openclaw/openclaw

  • A1passwordSet up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.
  • Aacp-routerRoute plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.
  • Aadd-model-providerAdd and live-prove a model provider with non-interactive config one-liners, without exposing credentials.
  • Aagent-transcriptRequested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.
  • Aapple-notesCreate, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.
  • Aapple-remindersList, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.
  • Aauto-qaRun OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.
  • AautoreviewStructured code review through the shared OpenClaw agent-skills installation.
  • Abear-notesCreate, search, and manage Bear notes via grizzly CLI.
  • Ablock-kitUse proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.
  • AblogwatcherMonitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.
  • AblucliBluOS CLI (blu) for discovery, playback, grouping, and volume.

All agent skills → · MCP servers