Community코딩 & 개발github.com

OpenClaw 사전 릴리스 플러그인 테스트

번들 플러그인, 패키지 아티팩트, 라이프사이클 명령, doctor/fix, 설정 라운드트립, 게이트웨이 시작, SDK 호환성, Docker E2E, 패키지 승인, Testbox 검증 전반에 걸쳐 사전 릴리스 OpenClaw 플러그인 검증을 계획하고 실행합니다.

OpenClaw 사전 릴리스 플러그인 테스트란 무엇인가요?

이 스킬은 OpenClaw 플러그인 시스템의 제품 표면으로서의 완전성을 사전 릴리스 단계에서 검증하는 데 초점을 맞춥니다. 사용자가 "릴리스 전에 무엇을 더 테스트해야 하나요?"와 같은 질문을 할 때, 또는 플러그인 릴리스에 대한 확신이 필요할 때 활용됩니다. 이 스킬은 `openclaw-testing` 스킬을 보완하며, 플러그인 라이프사이클(설치, 검사, 활성화, 비활성화, 제거), 패키지 아티팩트 동작, doctor/fix/설정 검증 및 멱등성, 설정 검색 및 라운드트립, 상태/로그 가시성, 게이트웨이 시작, 공개 SDK 호환성, 그리고 안전한 자격 증명이 존재할 때의 라이브 프로브를 포함한 포괄적인 테스트를 제공합니다. Docker, GitHub Package Acceptance, Testbox 등 다양한 러너를 지원하며, 소스 체크부터 전체 패키지 Docker 실행까지 다양한 검증 수준을 제공합니다. 이 스킬은 구성된 신뢰 매트릭스를 통해 각 테스트 영역의 통과/실패를 기록하고, 실패가 Testbox 환경 문제인지 제품 문제인지 명확히 구분하도록 요구합니다. 또한, 새로운 Testbox Harness 계획, Doctor/Fix 매트릭스, 게이트웨이 부트스트랩 매트릭스, 설정 라운드트립 대표 플러그인, 외부 SDK 스모크 테스트를 포함한 확장 검증 계획을 제공합니다.

지원 대상✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/.agents/skills/release-openclaw-plugin-testing

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

OpenClaw 사전 릴리스 플러그인 테스트은(는) 무엇을 하나요?

사용자가 플러그인 릴리스 확신, 플러그인 라이프사이클 스위프, 패키지-아티팩트 플러그인 증명, 또는 "릴리스 전에 무엇을 더 테스트해야 하나요?"라고 물을 때 이 스킬을 사용하세요. 이 스킬은 openclaw-testing을 보완합니다. 가장 저렴한 안전 러너를 선택하거나 실패한 레인을 디버깅할 때 해당 스킬도 함께 사용하세요.

목표

소스 테스트가 아닌 제품 표면으로서 플러그인 시스템을 증명합니다:

  • 번들 플러그인 라이프사이클: 설치, 검사, 활성화, 비활성화, 제거
  • 깨끗한 HOME에서의 패키지 아티팩트 동작
  • doctor/fix/설정 검증 및 멱등성
  • 설정 검색 및 설정 라운드트립
  • 상태/로그 가시성 및 진단
  • 플러그인 메타데이터 스냅샷을 사용한 게이트웨이 시작/부트스트랩
  • 실제 외부 플러그인에 대한 공개 SDK 호환성
  • 안전한 자격 증명이 존재할 때만 라이브-ish 제공자/채널 프로브

첫 번째 검사

OpenClaw 저장소 루트에서:

pnpm docs:list
git status --short --branch
pnpm changed:lanes --json

의존성 소유권 및 로컬 또는 원격 증명 선택을 위해 openclaw-testing을 따르세요.

러너 선택

다음 순서를 선호합니다:

  1. GitHub Package Acceptance — 설치 가능한 패키지 제품 증명용.
  2. 현재 전용 Linux 워커 — 필요한 의존성과 기능이 있을 때 신뢰할 수 있는 소스/패키지/Docker 증명용.
  3. ci-build-artifacts-testbox.yml Testbox — Docker/패키지 레인에 시드된 dist, dist-runtime 및 패키지 캐시가 필요할 때.
  4. ci-check-testbox.yml Testbox — 소스 검사, 대상화된 Vitest, 패키지 경계 검사 또는 집중된 Docker 레인용.
  5. 워크스테이션 대상 명령만 — 작은 포맷/정적/단위 프로브용.

오래된 스파스 작업 트리에서 긴 패키지 Docker 실행을 피하세요. Testbox 동기화가 수백 개의 변경된 파일을 보고하거나 패키지 입력을 삭제하기 시작하면 중지하고 현재 main에서 새 상자를 준비하거나 Package Acceptance로 전환하세요.

기존 기준

새로운 커버리지를 만들기 전에 다음을 실행하거나 확인하세요:

OPENCLAW_TESTBOX=1 pnpm check:changed
pnpm run test:extensions:package-boundary:canary
pnpm run test:extensions:package-boundary:compile
pnpm test:docker:plugins
OPENCLAW_PLUGINS_E2E_CLAWHUB=0 pnpm test:docker:plugins
pnpm test:docker:plugin-update

전체 번들 설치/제거 증명을 위해 패키지 스위프를 샤딩하세요:

OPENCLAW_BUNDLED_PLUGIN_SWEEP_TOTAL=8 \
OPENCLAW_BUNDLED_PLUGIN_SWEEP_INDEX=<0-7> \
pnpm test:docker:bundled-plugin-install-uninstall

이 예제는 선택한 패키지의 플러그인 인벤토리를 샤드 0-7로 분할합니다. 비공개 QA 플러그인은 패키지에 명시적으로 포함되지 않는 한 소스 모드 전용입니다.

신뢰 매트릭스

사전 릴리스 서명을 위해 이 매트릭스를 사용하세요. 통과/실패, 실행 URL/Testbox ID, 패키지 SHA/버전 및 건너뛴 라이브 사유를 기록하세요.

표면증명선호 러너
패키지 아티팩트suite_profile=package 또는 사용자 정의 레인이 있는 Package AcceptanceGitHub Actions
번들 라이프사이클샤딩된 test:docker:bundled-plugin-install-uninstallTestbox 또는 릴리스 Docker
외부 플러그인test:docker:plugins 및 plugins-offlineTestbox/package acceptance
업데이트 무작동test:docker:plugin-updateTestbox/package acceptance
Doctor/fix시드된 잘못된 설정 + doctor --fix --non-interactive새 Docker/Testbox Harness
설정 라운드트립config set/get, inspect, doctor, reload, diff hash새 Docker/Testbox Harness
게이트웨이 부트스트랩깨끗한 HOME, 플러그인 그룹 활성화/비활성화, 상태 JSON새 Docker/Testbox Harness
SDK 호환성SDK 하위 경로를 사용하는 디렉토리, tgz 및 file: 외부 플러그인test:docker:plugins + 새 스모크
라이브-ish현재 환경에 대해서만 수정된 제공자/채널 프로브Testbox live lanes

Package Acceptance 계획

Full Release Validation은 Q=C 및 정확한 게시 tarball로 최종 후보 자격을 소유합니다. 진단 또는 게시 후 확신을 위해 독립 실행형 Package Acceptance를 사용하되, 후보 자격을 대체하지 마세요:

gh workflow run package-acceptance.yml \
  --repo openclaw/openclaw \
  --ref main \
  -f workflow_ref=main \
  -f source=ref \
  -f package_ref=<branch-or-sha> \
  -f suite_profile=custom \
  -f docker_lanes='plugins-offline plugin-update doctor-switch update-channel-switch config-reload mcp-channels npm-onboard-channel-agent' \
  -f telegram_mode=mock-openai

게시된 베타 증명을 위해 source=npm -f package_spec=openclaw@beta를 사용하세요. 이러한 독립 실행형 진단/확신 실행은 신뢰할 수 있는 현재 Harness 코드를 사용할 수 있습니다. 후보 자격은 대신 고정된 후보의 Harness를 유지해야 합니다.

확장-안정 공유 게시의 경우, Q=C에서 인정된 후보 소유 release-ci/* Harness로부터 완전한 정확-대상 Full Release Validation을 요구하세요. 신뢰할 수 있는 P 인정 및 게시 도구는 별도로 둡니다. 직접 정식-브랜치 또는 main 생성자는 보호된 게시자를 충족하지 않습니다. Package Acceptance는 게시 후 선택기 스모크입니다:

gh workflow run package-acceptance.yml \
  --repo openclaw/openclaw \
  --ref main \
  -f workflow_ref=main \
  -f source=npm \
  -f package_spec=openclaw@extended-stable \
  -f suite_profile=package \
  -f telegram_mode=mock-openai

해결된 버전을 기록하세요. 태그의 all-publishable 인벤토리에 있는 모든 패키지와 선택기를 여전히 확인하세요. 하나의 스모크는 레지스트리 읽기 확인이 아닙니다.

플러그인 npm 아티팩트 자격

게시 후보의 경우 Full Release Validation이 플러그인 npm 아티팩트 자격을 소유합니다. 디스패치 시 게시 선택을 제공하세요. 모든-그룹 부모는 정확한 릴리스 SHA에 대해 아티팩트 전용 모드로 plugin-npm-release.yml을 호출하고, 성공적인 tarball 읽기 확인을 요구하며, 불변 집계 설명자를 publicationArtifacts.pluginNpm에 기록합니다. 릴리스 준비 및 게시는 플러그인을 다시 패킹하는 대신 정확한 설명자를 채택해야 합니다.

정기적인 게시 후보 외부에서 집중된 진단 또는 선택된 플러그인 수리를 위해서만 독립 실행형 신뢰할 수 있는 워크플로우 사전 점검을 사용하세요:

release_sha="$(git rev-parse origin/release/2026.7.1)"
gh workflow run plugin-npm-release.yml \
  --repo openclaw/openclaw \
  --ref main \
  -f preflight_only=true \
  -f publish_scope=selected \
  -f plugins=@openclaw/meta-provider \
  -f ref="${release_sha}" \
  -f npm_dist_tag=default

release_publish_run_id를 전달하지 마세요. 워크플로우가 verify_plugin_npm_preflight를 성공적으로 완료하도록 요구하세요. 실행 URL, 워크플로우 SHA 및 소스 SHA를 기록하세요. 워크플로우는 먼저 npm-pack.json, preflight-manifest.json 및 tarball을 포함하는 스테이징/읽기 확인 아티팩트 plugin-npm-package-source-<source-sha>-<extension-id>를 생성합니다. 그런 다음 tarball 및 plugin-publication-manifest.json을 포함하는 최종 소비자 아티팩트 plugin-npm-package-<extension-id>-<version>-<route>-<run-id>-<attempt>를 업로드합니다.

최종 아티팩트 이름과 다이제스트를 별도로 기록하세요. 매니페스트는 openclaw.plugin-publication-artifact/v1을 사용하며 대상 SHA, 패키지 매니페스트 해시, 게시 경로 및 정책, tarball 해시 및 인벤토리를 기록합니다. 이 독립 실행형 증명은 검증 전용입니다. 게시를 승인하거나 준비하지 않으며 Full Release Validation의 매니페스트-바운드 설명자를 대체할 수 없습니다. 아티팩트 인벤토리는 압축 풀린 소스 트리가 아닌 보안 및 패키지-콘텐츠 경계입니다. 소스 전용 고정물은 관련이 없습니다. 출하된 런타임 및 스킬 자산 외부의 패키지 소유 테스트 및 고정물 경로는 자격에 실패합니다. 출하된 런타임은 보안 스캔 상태를 유지합니다. 번들 node_modules는 플러그인 소스 정책보다 의존성 증거와 함께 유지됩니다. 별도의 trusted_publisher_preflight=true OIDC 검사는 보호된 release-publish/<tooling-sha12>-<epoch> 디스패치 태그를 필요로 하며 npm-publish에서 실행됩니다. 실제 게시에는 해당 도구 태그도 필요합니다. 직접 인간 디스패치는 게시 전에 npm-release 승인 작업을 기다립니다. 이미 게시된 버전의 경우, npm dist.integrity 및 dist.shasum이 확인된 tarball과 일치하도록 요구하세요. 누락되었거나 입증 가능하게 오래된 dist-tags만 수리 가능한 것으로 취급하세요. 최신 또는 비교할 수 없는 선택기는 차단기입니다.

새 Testbox Harness 계획

더 많은 확신이 필요한 경우, 하나의 패키지 tarball과 샤딩된 플러그인 목록을 사용하는 plugin-lifecycle-matrix Docker 레인을 추가하거나 실행하세요. 플러그인당:

  1. 깨끗한 HOME으로 시작합니다.
  2. plugins list --json을 캡처합니다.
  3. plugins install <id>.
  4. plugins inspect <id> --json.
  5. plugins disable <id>, 그런 다음 비활성화된 가시성을 확인합니다.
  6. plugins enable <id>, 단 설정-필수 플러그인은 설정 없이 제외합니다.
  7. plugins registry --refresh.
  8. doctor --non-interactive.
  9. plugins uninstall <id> --force.
  10. 플러그인의 plugins.entries 값이 정확히 { enabled: false }인지 확인하고, 허용/거부 항목, 설치 기록, 관리 디렉토리 및 번들 런타임 로드 경로가 사라졌는지 확인합니다. 기록 대상에 대해 기존 Harness의 소스-한정 제거 기대치를 사용합니다.
  11. 진단에 level: "error"가 포함되지 않고 출력이 비밀-같은 값을 수정하는지 확인합니다.

memory-lancedb는 특별합니다: 설정이 필요합니다. 먼저 설치가 설정을 포함하지 않고 활성화하지 않는지 확인한 다음, 설정된 두 번째 사례를 실행합니다.

Doctor/Fix 매트릭스

잘못된 상태를 시드하고 doctor --fix --non-interactive가 이를 복구하도록 요구한 다음, doctor를 다시 실행하고 멱등성을 요구합니다:

  • 오래된 plugins.allow
  • 오래된 plugins.entries
  • 누락된 채널 플러그인에 대한 오래된 채널 설정
  • 유효하지 않은 plugins.entries.<id>.config
  • plugins.load.paths에 패키지된 번들 경로
  • 레거시 plugins.installs
  • 런타임 의존성을 준비하지 않아야 하는 비활성화된 채널/플러그인 설정
  • 수정되지 않은 상태로 유지되어야 하는 루트 소유 글로벌 패키지 트리

게이트웨이 부트스트랩 매트릭스

깨끗한 상태로 Docker에서 패키지된 OpenClaw를 시작합니다:

  • 제공자 플러그인 활성화, 자격 증명 없음: 경고와 함께 준비, 충돌 없음
  • 채널 플러그인 구성 비활성화: 런타임 의존성 준비되지 않음
  • 시작-활성화 플러그인 활성화: 준비 및 상태에 반영됨
  • 유효하지 않은 단일 플러그인 설정: 잘못된 플러그인 건너뜀/격리, 나머지는 유지

확인:

  • 게이트웨이가 준비 상태에 도달
  • openclaw status --json에 플러그인 진단 포함
  • openclaw plugins inspect --all --json을 구문 분석 가능
  • 패키지 트리가 변경되지 않음
  • 로그에 원시 토큰 없음

설정 라운드트립 대표

심층 설정 라운드트립을 위해 모든 플러그인 대신 대표 플러그인 패밀리를 사용합니다:

  • 제공자: openai, anthropic, mistral, openrouter
  • 채널: telegram, discord, slack, whatsapp
  • 메모리: memory-lancedb
  • 기능/런타임: browser, acpx, tokenjuice

각 대표에 대해:

  1. 가능하면 CLI를 통해 설정을 작성합니다.
  2. config get 또는 JSON을 통해 다시 읽습니다.
  3. plugins inspect를 실행합니다.
  4. doctor --non-interactive를 실행합니다.
  5. 해당되는 경우 게이트웨이 설정 리로드를 트리거합니다.
  6. 무작동 명령 전후의 설정 해시를 비교합니다.

외부 SDK 스모크

패키지 Docker 레인에서 작은 외부 플러그인을 만들고 다음에서 설치합니다:

  • 로컬 디렉토리
  • .tgz
  • file: npm 사양

CJS 및 ESM 형태와 집중된 openclaw/plugin-sdk/* 하위 경로를 가져오는 플러그인을 최소 하나 포함합니다. plugins inspect가 해당 도구, 게이트웨이 메서드, CLI 명령 또는 서비스를 보는지 확인합니다.

라이브-ish 프로브 규칙

라이브-ish 작업 전에 Testbox에서 허용된 env를 소싱하고 수정된 가용성 매트릭스를 생성합니다: 있음/없음만, 값은 절대 안 됩니다.

존재하는 자격 증명에 대해서만 프로브를 실행합니다. 사용자-표시 메시지를 보내는 것보다 인증/카탈로그/상태 프로브를 선호합니다. 프로브가 외부 사용자, 채널 또는 워크스페이스에 연락할 수 있는 경우 중지하고 사용자에게 물어보세요.

보고

다음 형식으로 보고합니다:

package/ref:
tbx ids / run urls:
matrix:
  bundled lifecycle:
  package acceptance:
  doctor/fix:
  gateway bootstrap:
  config round-trip:
  sdk external:
  live-ish:
failures:
skips:
next highest-value gap:

실패가 제품 동작이 아닌 Testbox 동기화/env 손상인 경우 명확히 말하고, 깨끗한 재실행 또는 현재-main 비교로 증명하세요.

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.

관련 스킬