CommunityCodierung & Entwicklunggithub.com

openclaw-testing

Proportionale OpenClaw-Tests/Prüfungen auswählen, Fehler diagnostizieren und umgebungsempfindliche oder Release-Nachweise an den Verantwortlichen weiterleiten.

Was ist openclaw-testing?

Diese Fähigkeit definiert die Prinzipien und Strategien für das Testen im OpenClaw-Repository. Sie beschreibt, wie Entwickler die richtigen Nachweise für Codeänderungen auswählen sollten – von engen, lokalen Prüfungen vor dem Pull Request bis hin zu breiten CI-Suiten und spezialisierten Remote-Umgebungen wie Crabbox oder Testbox. Die Fähigkeit legt Wert auf Effizienz, indem sie es vermeidet, erneut zu pushen oder Builds nur für grüne Tests neu zu starten, konzentriert sich auf tatsächliche Fehlerbehebungen und verwendet Worst-Case-Analysen statt willkürlicher Wiederholungen. Sie behandelt auch die Behandlung von CI-Fehlern (Klassifizierung von Fehlern als bereits bestehend, neu oder unbekannt), die Durchsetzung von Quell- und Zustandsgrenzen (niemals unvertrauten Code lokal ausführen) und Richtlinien für Ausnahmen bei Baseline- und Erwartungsfehlern. Im Kern zielt diese Fähigkeit darauf ab, die Testbelastung im Verhältnis zu den tatsächlichen Änderungen zu halten, unnötigen Overhead zu vermeiden und eine nachvollziehbare und effiziente Testpipeline für OpenClaw beizubehalten.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/.agents/skills/openclaw-testing

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

OpenClaw Testing

Nachweisrichtlinie

  • PR-CI = breiter Standardnachweis. Änderungen bauen + fokussierte Tests bestanden → PR öffnen und bereit machen. CI führt breite Suiten aus; PR nie für Pre-PR-Suiten-Läufe verzögern.

  • Build nicht vor Veröffentlichung verfügbar: Wenn die Veröffentlichung bereits genehmigt ist, die Remote-Kapazität nicht verfügbar ist und die lokale Ausführung nicht qualifiziert ist, einen Entwurf-PR mit dem genauen fehlenden Build und Kapazitätsengpass öffnen. Diesen Build auf Exact-Head-CI verschieben. Seinen Erfolg vor dem Markieren als bereit oder dem Mergen verlangen. Dies ändert nur den Zeitpunkt des Nachweises, nicht die Veröffentlichungsberechtigung, Quellenvertrauen, Anmeldeinformationen, Eigentümergenehmigung oder Merge-Gates. Standardmäßig überspringt CI Entwürfe. Für einen vertrauenswürdigen kanonischen Branch den vorhandenen manuellen Dispatch von ci.yml mit target_ref auf den vollständigen gepushten Head-SHA verwenden (ghx workflow run ci.yml --repo openclaw/openclaw --ref main -f target_ref=<sha>). Den ausgewählten Checkout-SHA und den erfolgreichen build-artifacts-Job verifizieren, der den erforderlichen Build abdeckt. Das build:ci-artifacts von CI lässt die vollständige Deklarationsemission aus. Ungedeckte Nachweise ausstehend halten. Ein übersprungener Job oder Workflow-Ref-SHA ist kein Build-Nachweis. Den Lauf im PR verlinken, dann normale Ready-PR-CI und Landing-Gates verwenden. Nicht vertrauenswürdige Quelle behält ihre geheimnislose Route.

  • Vor dem PR eng nachweisen: Betroffene Tests mit pnpm test <file> --maxWorkers=1, gezielter Typcheck, Lint, Format. Lokalen Nachweis bevorzugen für vertrauenswürdige, begrenzte Arbeit, wenn Abhängigkeiten und die aktuelle Host-Kapazität qualifiziert sind. Lokale Ausführung ist optional: Ein fokussierter Befehl kann dennoch einen großen Compiler-Graphen laden oder auf breite Bahnen erweitern.

  • Remote-Nachweis bewusst wählen. PR-CI für breiten Nachweis verwenden; Crabbox/Testbox können teure Prüfungen, einen ausgelasteten oder nicht qualifizierten lokalen Host, ein anderes OS/Gerät, Live-Provider/Kanäle, lange E2E oder schwere Benchmarks abdecken. Nur dann erwerben, wenn der Befehl bereit ist und die Kapazität umgehend gewährt wird. Wenn in der Warteschlange, nur die aufgabenbesitzende Zuteilung stoppen; PR-CI oder einen sicheren lokalen Bereich verwenden. Plattformspezifische Nachweise ausstehend halten. Niemals schwere Arbeit auf eine ausgelastete Maschine erzwingen oder Anbieter verketten. Das kleinste Profil verwenden, das für die ausgewählte Arbeitslast nachgewiesen ist.

  • Nie erneut ausführen oder erneut pushen nur für grün. Echte Fehler beheben; verfügbare CI-Fehlerklassifizierung lesen, bevor Rot attribuiert wird.

  • Geänderten Vertrag nachweisen, erforderliche Gates abschließen, fertig. Nur erweitern/wiederholen bei geänderten Eingaben, Fehlern oder benanntem ungelöstem Risiko.

  • Dem Gültigkeitsbereich der AGENTS.md folgen; Tests schreiben/überprüfen: Grenzleitfaden und Test-Audit verwenden.

Nachweis auswählen

  • Nachweis für berührten Vertrag auswählen; gültigen Nachweis wiederverwenden (für geänderte Eingaben oder fehlende Abdeckung erneut ausführen); erforderliche Gates des Workflows innerhalb der Benutzer-/Host-Grenzen abschließen; nicht ausgeführte Prüfungen und Lücken melden. Benutzersichtbares Verhalten durch echten Flow nachweisen, wenn machbar; externe APIs benötigen Live-Vertragsnachweis; isolierte Mock-Gateway-Umgebung = gültiger Kanalgrenznachweis. Nur Docs: Docs-Überprüfung und git diff --check.

  • Laufzeitfehler: Echten Einstiegspunkt reproduzieren; ihn + relevante Geschwister erneut ausführen.

  • Vertrauenswürdige Quelle: pnpm changed:lanes --json, fokussierte Tests + gezielter Typecheck/Lint/Format; pnpm check:changed = optionaler smarter lokaler Check.

  • Öffentlicher SDK/Plugin-Vertrag: repräsentative Verbraucher, kein All-Plugin-Sweep.

  • Build-Ausgabe, Lazy Imports, Paketgrenzen: pnpm build oder den Repository-CI-Build einschließen, der den geänderten Vertrag abdeckt. Ungedeckte Verpackungs-/Plattform-/Deklarationsanforderungen aufzeichnen. Erforderliche vollständige Paket- oder Release-Builds benötigen weiterhin ihren passenden Nachweis.

  • Workflow: git diff --check + pnpm check:workflows.

  • Nur Docs: relevante Docs-/Link-/Format-Prüfungen + git diff --check; keine Laufzeittests.

  • Bei Bedarf lesen: lokale Befehle, Crabbox, OpenClaw Remote-Einrichtung, Paket-/Docker-Nachweis, Release-CI, Plugin-Release-Matrix, Docker-Authoring, Channel-Skill/ Control-UI-E2E.

  • Eine isolierte Mock-Gateway-Umgebung ist gültiger Kanalgrenznachweis; Live-Lücken angeben. Benutzersichtbares Verhalten durch echten Flow nachweisen, wenn machbar; externe APIs erfordern Live-Vertragsnachweis. Für Live-Kanal- oder Native-App-Arbeiten den Leitfaden zum geltenden Kanal/Plattform lesen. Telegram-Beanspruchungen erfordern Test-Server-Userbot-Nachweis mit Convex-gemieteten Anmeldeinformationen. Plattformbeanspruchungen erfordern echten Gerätenachweis; macOS-Berechtigungsnachweis erfordert eine stabile signierte App.

  • Release-Nachweis: Kandidaten-/Tooling-SHAs aufbewahren; niemals Veröffentlichungsberechtigung erteilen.

Quell- und Zustandsgrenzen

  • Niemals nicht vertrauenswürdigen Beitragenden-/Fork-Code, Wrapper, Konfiguration lokal ausführen. Geheimnislose Fork-CI oder bereinigtes direktes AWS über Crabbox verwenden; niemals mit Anmeldeinformationen hydrierte Testbox. Ausführung mit Anmeldeinformationen: Maintainer-Zustimmung nach Überprüfung erforderlich; niemals nicht vertrauenswürdigen Lease hydrieren.
  • Isolierter Zustand + freier Port. Niemals Operator-Gateway/echte Daten ohne explizite aufgabenspezifische Genehmigung neu starten, bearbeiten oder testen. Nicht verwandte Prozesse und gemeinsam genutzte Abhängigkeitsinstallationen erhalten.
  • Gleichzeitige Test-/Prüfbefehle: Separate OPENCLAW_VITEST_FS_MODULE_CACHE_PATH-Werte oder seriell ausführen; Prüfungen können ebenfalls Vitest ausführen. Nur Repository-Wrapper, niemals rohes Vitest. Vorbereitete verlinkte Worktrees: node scripts/run-vitest.mjs <file> --maxWorkers=1 vermeidet pnpm-Abstimmung; PR-CI führt die breiten Prüfungen aus.

CI-Fehler

  • PR-CI schlägt fehl → pnpm test:ci-failed <pr>; Klassifizierung bereits bestehend/neu/unbekannt lesen.
  • Neue Fehler beheben; unbekannte untersuchen → pnpm test:ci-failed <pr> --run bis ausgewählte Tests lokal bestehen → einmal pushen.
  • --run aktiviert OPENCLAW_NODE_TEST_PLAN_CONTINUE_ON_FAILURE=1: gewöhnliche Fehler über ausgewählte Konfigurationen sammeln, während Infrastrukturfehler immer noch anhalten; das gleiche Opt-in für manuelle fokussierte Wiederholungen verwenden.
  • Bereits bestehende Fehler: Failure-Table-Landing-Regel. Übereinstimmende Signaturen ≠ nur Jobnamen-Attribuierung.
  • Niemals gh run rerun verwenden, um Grün zu jagen; niemals lokale vollständige Suite für CI-Reparatur.
  • Diagnose an exakten SHA + Job binden. Fehlgeschlagene Logs einmal abrufen; exakten Run/Job-Zustand gegenüber veralteten PR-Zusammenfassungen bevorzugen.
  • Produkt-, Testumgebungs-, Infrastruktur-, Anmeldeinformations- und abgebrochene Run-Überholung unterscheiden. Snapshots bestehen macOS/scheitern in CI: Linux/Node-Bytes vor dem Regenerieren reproduzieren.

Baseline- und Erwartungsfehler-Ausnahmen

Schmale Baseline-, Snapshot-, Ignore- und Erwartungsfehler-Ausnahmen sind Implementierungsentscheidungen nur, wenn jeder Eintrag gegen die Quelle verifiziert ist und der PR seinen Grund aufzeichnet (z. B. tool-eigene Metadaten in einem Upgrade-Snapshot, während Benutzerdaten exakt bleiben). Niemals eine echte Regression oder Benutzerdatenänderung maskieren. Pauschale oder unverifizierte Ausnahmen benötigen Genehmigung. Exakte, nur schrumpfende Ratschet-Updates sind Wartung. Ein Fix-PR kann eine separate verfolgte config/test-lines-allocations/<change>.txt-Aufzeichnung für genau seine eigenen gerechtfertigten Netto-Regressionstestzeilen hinzufügen, wenn der Squash-Body den Grund angibt. Den gemeinsamen Skalar unverändert lassen, damit unabhängige Zuweisungen mergen können. Der Prüfer begrenzt das effektive Obergrenzenwachstum gegen das tatsächliche LF-Wachstum und bewahrt geerbte Schulden. Andere Erhöhungen, einschließlich Skalar-nur-Abstimmung, benötigen Genehmigung. Siehe das Kostenbudget für das Aufzeichnungsformat und das Bereinigen.

Bei Modul-Mocks dem Fixture-Vertrag folgen. Wenn eine Isolationsannotation einen bestehenden Baseline-Eintrag zurückzieht, die Annotation und die entsprechende Baseline-Entfernung zusammen committen. Das gesamte Baseline-Diff inspizieren, da --prune das gesamte Checkout scannt. Die aktualisierte Baseline mit einem Schutzlauf ohne --prune verifizieren.

Testfehlerrichtlinie

  • Fehler = Defekte. Begrenzter Reproduktionsversuch (zuerst gleiche Shard-Reihenfolge); Eigentümer identifizieren; Produkt, Fixture, gemeinsam genutzten Zustand, Reihenfolgefehler beheben.
  • Nachgewiesene Reparatur: Regression hinzufügen; auf die Behebung eines anderen Eigentümers verweisen, wenn zutreffend.
  • Sichere Behebung kann nicht festgestellt/abgeschlossen werden: ursprünglichen Fehler, Versuche, Beweise, Unsicherheit im PR aufzeichnen; unter normalen CI/Review-Gates fortfahren.
  • Ungelöster Fehler allein blockiert weder das Landen noch erfordert er zusätzliche Genehmigung. Erfolgreicher Wiederholungslauf ≠ nachgewiesene Behebung.
  • Niemals Fehler mit Wiederholungen, längeren Timeouts, schwächeren Assertions, breiteren Mocks oder geänderten Baselines verstecken.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route 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.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

Verwandte Skills