Skip to content
FunCoding

crabbox

Crabbox/Testbox remote proof: portable provider routing, untrusted isolation, Linux/macOS/Windows/WSL2, live E2E, diagnostics, cleanup.

Star
1,104
License
MIT
Last commit
Oct 12, 2026

skills/crabbox/SKILL.md

View on GitHub

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.

Similar Skills

test-driven-development

OBobra/superpowers298k2,631 new stars in the last 7 days

migrate-to-shoehorn

MAmattpocock/skills288k10,178 new stars in the last 7 days

agent-runtime-gateway-smoke-test

AFaffaan-m/ECC278k4,046 new stars in the last 7 days

Featured

accessibility

Audit accessibility on Web, iOS, and Android to meet WCAG 2.2, with keyboard navigation and screen-reader support.

AFaffaan-m/ECC278k4,046 new stars in the last 7 days

ai-regression-testing

AFaffaan-m/ECC278k4,046 new stars in the last 7 days

Official

firecrawl-build-interact

FIfirecrawl/firecrawl191k2,010 new stars in the last 7 days