mcpField
O
openclaw-crabbox

openclaw-crabbox

github.com/theangrypitTesting & quality039 installsUpdated today
Repository

About openclaw-crabbox

A coding skill for choosing Crabbox test environments and managing isolated leases. It emphasizes targeted local checks, CI as the default broad proof, and explicit trust and credential boundaries.

Key features

  1. 01Routes checks across configured providers
  2. 02Manages task-owned leases and cleanup
  3. 03Defines trusted and untrusted execution paths
  4. 04Verifies synced inputs and CI failures

Use cases

  1. 01Choose a proof environment for a change
  2. 02Run checks on another OS or device
  3. 03Diagnose missing files in synced tests

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/theangrypit/theangryskills --skill openclaw-crabbox

After installing, type/openclaw-crabboxin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

LICENSE
MIRROR.md
references/
diagnostics-and-e2e.md
providers-and-desktop.md
untrusted-aws.md

Details

From the project README

Crabbox

  • PR CI = default broad proof. First: focused local tests + targeted lint/typecheck/format. Checks pass + change builds: open ready PR; CI runs broad suites. Never hold PR for pre-PR suite runs.
  • Box only for gaps in CI/local coverage: another OS/device, live providers/channels, long E2E, heavy benchmarks. Acquire only with command ready + immediate grant.
  • Queued: stop task-owned request; run locally. Never wait on queue or chain Testbox → AWS → other providers.
  • Fix real failures; never rerun/re-push merely for green. Read available CI failure classification before attributing failure to change.

Repository Contract

  • Skill owns portable routing, leases, sync, commands, cleanup.
  • Resolve <check-command>, runtime/container image, PR, bootstrap from trusted consumer instructions, package scripts, or hydration workflow.
  • Never invent missing commands or copy another consumer's setup.
  • Always report provider, id, run URL, command, result. Never call Testbox “AWS Crabbox” or local Docker remote proof.

Authorization and Isolation

  • Routine configured use: creating/reusing/stopping task-owned leases, temporary state, clean checkouts/worktrees for proof or required Crabbox repair; no separate approval.

  • Preserve user checkouts, branches, unrelated edits; dirty/missing/occupied checkouts: use task-owned ones.

  • Preserve source-trust, credential, production-access, budget, publication boundaries.

  • Never execute untrusted repository wrappers/config locally or on credential-hydrated Testbox. Use secretless fork CI or sanitized direct AWS: fresh lease per full head SHA; no instance role, Tailscale, hydration; only CI forwarded.

  • Before untrusted AWS execution: read/follow complete untrusted recipe, including no-role + SHA proof. Proof unavailable: secretless fork CI.

  • Live credentials: exact key, one command, safe injection only. Never print secrets, put in repository files/shell history, or call fake keys live proof. No safe injection path: live auth blocked. Review captured artifacts for secrets.

  • Isolate proof in consumer's temporary state/config directory; never mutate operator's normal installation. Stop owned leases after use, including failures.

Route First

  • Source trust restricts providers; does not select one. Inspect/preserve resolved provider.
  • Normally omit --provider; override only when explicitly requested or proof requires backend semantics. Never for size, duration, hydration failure, capacity.
  • No speculative warmup or provider escalation.
ProviderUse
blacksmith-testboxTrusted maintainer source with prepared CI; tbx_...
awsDirect brokered execution, fresh PRs, custom sync/env/capture; cbx_...
local-containerConfigured/requested local Docker; not remote proof
sshExisting operator host for macOS/Windows/WSL2

Preflight

From repo root, select trusted installed binary once:

export CRABBOX="$(command -v crabbox)"
test -n "$CRABBOX"
"$CRABBOX" --version
"$CRABBOX" config show --json | jq '{provider, profile, target}'
"$CRABBOX" run --help
  • Read .crabbox.yaml + resolved config, including user/environment settings.
  • Testbox: also check command -v blacksmith + blacksmith --version.
  • Consumer may name trusted wrapper; missing/broken: follow trusted install/update path; verify canonical upstream before building in clean task checkout.
  • Never assume sibling checkouts trusted or replace operator's binary with task build.
  • Isolate wrapper failures with installed CLI on same resolved provider.

Trusted Testbox

Only for resolved/requested Testbox. Provider-neutral commands retain configuration; add --provider blacksmith-testbox only for explicit override.

"$CRABBOX" run --timing-json -- CI=1 <check-command>

Several commands: save id, reuse, stop:

"$CRABBOX" warmup --keep --timing-json
"$CRABBOX" run --id <tbx_id> --timing-json -- <check-command>
"$CRABBOX" stop <tbx_id>
  • One lease, one active command; no sync/reclaim during run. --reclaim only for deliberate checkout-path ownership transfer.
  • Native Testbox runs sync even with reused ids. Never rely on --no-sync for baseline, even unchanged rerun; may be silently ignored.
  • Base/head changed: stop + rewarm; never override stale lease. warmup --ref: branch/tag only, never raw SHA. Never checkout refs in synced root.
  • Testbox native status/stop: --id; status has no --json. Use blacksmith testbox list --all or blacksmith testbox status --id <tbx_id>.
  • Delegated Testbox rejects --fresh-pr, --full-resync, --script*, --env-helper, and capture/download flags. Crabbox stop does not accept --timing-json.
Verify Synced Inputs
  • Missing modules/fixtures: compare required inputs to frozen source; inspect sync exclusions, including Git-ignore negations. Successful sync can omit tracked files.
  • Record each missing path + frozen Git blob. Restore only reviewed required inputs into task-owned remote checkout; verify bytes. Account for changed/untracked inputs separately. Recheck after each native sync.
  • Never regenerate baselines, copy unrelated state, disable exclusions, or assume all missing files safe.
  • Sync timeout ≠ test result. Establish whether payload dispatched; unknown: inspect lease/invocation before retrying. Preserve completed proof by source identity; run only missing verification.

Specialized Proof and Diagnostics

Read only relevant recipe; routing + immediate-availability rules still apply:

  • Direct AWS, containers, desktop and cross-OS: exact provider commands, broker auth, paid macOS quota/no-spend preflight, desktop handoff. No silent substitution; never commit proof assets to product repo.
  • Diagnostics and real E2E: capture/env flags, failure layers, user-path proof. “Test in Crabbox” = real install/update/onboard/CLI/service/API path, not merely remote unit tests. Full-screen CLIs: real PTY. Compare Testbox revisions within one synced invocation using detached temporary worktrees; later runs resync local source.

Comments

Markdown supported