跳到正文
cccskills
免费在 GitHub 公开中文介绍

crabbox

使用远程环境或Docker测试安装、服务集成和实际操作,根据代码可信程度选择环境,并完成故障排查、结果检查及测试后的资源清理。

原文查看原文说明

Crabbox and Blacksmith Testbox remote testing: isolation, cross-platform E2E, diagnostics, cleanup.

集成工具AWS
AI 评分90分/ 100查看安装方法

适用场景

  • 在干净环境中测试软件包安装
  • 验证与真实服务的集成
  • 检查macOS、Windows及WSL2行为
  • 排查远程测试故障并清理资源

中文介绍

功能

使用Crabbox和Blacksmith Testbox,在远程或干净环境中验证运行情况。测试涵盖软件包安装、初始配置、CLI和API操作,以及与真实服务的数据收发。根据代码可信程度选择环境,并整理环境准备与复用、代码同步、日志和结果检查、故障定位及结束后停止资源的步骤。

适用场景

适合检查不同操作系统上的行为,或开展不受现有配置影响的安装测试。也可用于隔离测试外部贡献者的代码,以及验证与真实服务的集成。

使用示例

  • “在干净环境中安装软件包,并验证实际操作。”
  • “检查在macOS和Windows上的运行情况。”
  • “排查远程测试失败的位置,并停止使用过的环境。”

注意事项

需要Crabbox CLI和已配置的执行环境。根据目标环境使用Blacksmith、AWS、Docker或SSH。验证命令和初始配置须查阅目标仓库的说明。不可信代码须在不提供机密信息的环境中执行,本地Docker运行须与远程验证区分。EC2 Mac为付费资源,分配前需检查配额等条件。

本介绍由 AI(OpenAI Codex)根据公开的 SKILL.md 撰写。准确的规格请查看下方原文。

客观评估

AI 仅根据 SKILL.md 的内容,从 4 个方面进行了评估。星标数和热度不计入评估。

指令清晰度能否看出何时使用、做什么
A良好明确说明各后端的用途,以及隔离、测试、诊断和清理的范围。
步骤具体性步骤、输入输出和示例是否具体
A良好提供了预检、环境复用、执行和停止命令,并规定必报字段。
安全性发送数据、删除文件、执行命令等是否有说明
A良好规定不可信代码与机密信息隔离、权限边界及环境停止确认。
安装难易度所需工具和 API 密钥是否少且有说明
B部分不足提供CLI与配置检查步骤,但安装和环境准备依赖使用方文档。

总分按每项 A=25 分、B=15 分、C=5 分相加。 由 AI(OpenAI Codex)于 2026年10月19日 评估。仅供参考,安装前请同时查看原文。

如果您认为评估有误,请申请复核

请写明哪一项有误以及原因。无需登录。我们会对照 SKILL.md 重新评估,并在此处更新结果。

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

包含的文件(2)

  • SKILL.md9.6 KB
  • references/operations.md6.6 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Crabbox

  • Deliberate remote proof: follow proof policy. Prefer bounded local proof on a qualified, available host. Expensive or platform-specific work can use remote capacity. Queued: stop owned allocation; use PR CI or a safe local scope and report uncovered requirements.
  • Never wait on queues or chain provider fallbacks.

Backends:

  • blacksmith-testbox: trusted maintainer source. Prepared CI. tbx_....
  • aws: direct brokered Crabbox. Fresh PRs. Custom sync/env/capture. cbx_....
  • local-container: Docker fallback. Not remote proof.
  • ssh: existing operator host. macOS/Windows/WSL2.

Always report provider, id, run URL, command, result. Never call Testbox “AWS Crabbox.”

Repository Contract

  • Resolve example commands, bootstrap, container image, PR from trusted consumer instructions. Never invent commands or copy another consumer's setup.
  • Consumer-specific setup stays outside portable skill. See placeholder definitions.

Authorization and Isolation

  • Task-needed creation, reuse, cleanup, temporary state, clean checkouts: pre-approved. Preserve existing branches, checkouts, unrelated edits.
  • Source trust, credentials, production access, budget, publication remain authority boundaries. Isolated state; never touch operator Gateway without per-task approval.

Route First

  • Preserve resolved provider: Testbox for trusted source; direct AWS when its semantics required; secretless CI/AWS for untrusted code. Never run untrusted wrappers/config locally or hydrate untrusted lease.
  • Acquire when command ready; reuse owned ID; stop afterward.
  • Smallest proven profile. Larger: recorded memory evidence or measured total-cost benefit required, not generic failure/delay/timeout. Do not raise worker counts to compensate.
  • Testbox sizing: --blacksmith-workflow, never direct --class/--type; profile changes require fresh leases.
  • Blacksmith runner labels request a tier, not guaranteed CPU or RAM. Blacksmith can allocate smaller machines depending on service availability. For resource-sensitive tests or benchmarks, measure available CPUs, affinity/quotas, and usable RAM on the allocated machine. Size workers and workloads from those measurements. Record the requested tier and observed resources separately. Do not qualify hardware or performance from labels alone.
  • Size, duration, hydration failure, capacity never authorize provider overrides; explicit user selection or required backend semantics do.

Preflight

Trusted repo root: read .crabbox.yaml, resolve installed binary, inspect provider/commands:

export CRABBOX="$(command -v crabbox)"
test -n "$CRABBOX"
"$CRABBOX" --version
"$CRABBOX" config show --json | jq '{provider, profile, target}'
"$CRABBOX" run --help
  • Use consumer's trusted wrapper/install instructions.
  • Repairs: verify upstream; use clean task-owned checkout; preserve installed binary + unrelated source. Never trust sibling checkout merely by name.

Lease lifetime

  • TTL counts from creation, including hydration; idle timeout counts inactivity. Earlier deadline wins. Defaults: 30m each, 4h maximum. Owner/org overrides can allow up to 24h; use effective policy and sanitized clamp notices, not requested durations. Policy tightening also applies to live leases.
  • --keep and stop: never do not prevent expiry. Request explicit bounded TTL and idle for retained direct leases. Plain heartbeat, setup, sync, SSH, and desktop use do not extend total TTL; run requests bounded auto-extension only while a command executes, within policy, budget, and provider capability.
  • Before long source-dependent work, inspect remaining total lifetime. If allowed, request one bounded extend <id> --ttl <desired-total> --json; extension does not reset idle. Denied/budget/unsupported/nonadvancing/inactive outcomes require a visible skip or failure, never provider switching or infinite lease chains. Creation-fixed providers such as Daytona need enough TTL at allocation.
  • Direct guest-refresh failure can leave a longer provider deadline with the old on-box deadline. Keep the same local state and retry the same fixed total TTL only to reconcile; do not treat the failed extension as protection.
  • Honor trusted directLeases: deny and directLeaseAllow. A denied provider requires the configured coordinator route; never bypass with direct credentials. Testbox retains its native job and idle limits; --ttl does not extend a delegated workflow.
  • list shows live coordinator leases; list --retained adds kept terminal resources whose cleanup is unconfirmed. Use exact-ID inspect/stop for recovery. Retain claims and recovery state until a blocking stop confirms completion.

Trusted Testbox

Resolved provider = Testbox (or explicitly requested): commands preserve it. Add --provider blacksmith-testbox only for explicit override:

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

Several commands: warm once, save id, reuse, stop.

"$CRABBOX" warmup --keep --timing-json
"$CRABBOX" run --id <tbx_id> --timing-json -- <check-command>
"$CRABBOX" stop <tbx_id>

Rules:

  • One lease, one active command. No sync/reclaim during run.
  • Prefer bash -c; login profiles can change directories. In executing shell, assert physical checkout + expected source/patch; HEAD alone ≠ dirty-sync proof. Follow consumer's documented hydration shell contract.
  • Native Testbox runs own sync, including reused --id runs. Never rely on --no-sync for remote baseline: Blacksmith has no native bypass; released Crabbox versions can silently ignore flag. Unchanged intentional rerun ≠ exception.
  • --reclaim only for deliberate checkout-path ownership transfer.
  • Base/head change: stop; rewarm. No stale-lease override.
  • Raw SHA unreliable for warmup --ref; use branch/tag.
  • blacksmith testbox list hides states. Use list --all or status --id <tbx_id>.
  • Testbox status/stop: --id. No status --json.
  • Delegated provider rejects --fresh-pr, --full-resync, --script*, --env-helper, capture/download flags.

Blacksmith directory downloads

Recursive downloads + required remote trailing slash: directory downloads.

Untrusted AWS

  • Clean trusted default-branch checkout. Installed trusted Crabbox binary.
  • Fresh lease per reviewed full head SHA. No instance role, Tailscale, hydration.
  • Forward only CI. Upload trusted bootstrap beside --fresh-pr.
cd <clean-trusted-default-branch-checkout>
env -u CRABBOX_AWS_INSTANCE_PROFILE \
  "$CRABBOX" config show --json | \
  jq -e '.aws.instanceProfile == ""' >/dev/null

env -u CRABBOX_AWS_INSTANCE_PROFILE \
  -u CRABBOX_TAILSCALE \
  -u CRABBOX_TAILSCALE_AUTH_KEY \
  -u CRABBOX_TAILSCALE_AUTH_KEY_ENV \
  -u CRABBOX_TAILSCALE_EXIT_NODE \
  -u CRABBOX_TAILSCALE_EXIT_NODE_ALLOW_LAN_ACCESS \
  -u CRABBOX_TAILSCALE_HOSTNAME_TEMPLATE \
  -u CRABBOX_TAILSCALE_TAGS \
  "$CRABBOX" warmup \
  --provider aws --network public --tailscale=false \
  --tailscale-exit-node= \
  --tailscale-exit-node-allow-lan-access=false \
  --ttl 4h --idle-timeout 90m --keep --timing-json

"$CRABBOX" inspect --provider aws --id <cbx_id> --json | \
  jq -e '.network == "public" and .tailscale == null' >/dev/null

env -u CRABBOX_AWS_INSTANCE_PROFILE \
  CRABBOX_ENV_ALLOW=CI \
  "$CRABBOX" run \
  --provider aws --id <cbx_id> \
  --fresh-pr <owner/repo#number> \
  --no-hydrate --timing-json \
  --script <trusted-bootstrap-script> -- \
  <expected_full_head_sha> <check-command>

env -u CRABBOX_AWS_INSTANCE_PROFILE \
  "$CRABBOX" stop --provider aws <cbx_id>
  • Trusted bootstrap must prove IMDSv2 IAM credentials return 404; verify SHA; remove runtime injection variables; pin toolchain; isolate HOME before install/test.
  • Changed head: fresh lease. Missing remote PR or no-role proof: secretless fork CI.

Direct AWS

  • Trusted AWS commands, auth diagnostics, resync, clean PR/container runs: read direct providers.
  • Preserve --no-hydrate on container runs; report local-container proof as local.

Observability

  • Collecting artifacts/injecting credentials: read capture and environment flags.
  • Exact key, one command. Never print secrets, write in repo, or put in shell history.
  • No safe injection path: live auth blocked; fake-key proof insufficient.

Real E2E

  • Exercise requested user entry point with isolated consumer state, not just remote unit tests.
  • For install/provider/interactive proof + safe revision comparison: read E2E procedure.

Desktop / Cross-OS

SSH targets, paid macOS preflight, WebVNC, app handoff verification: read desktop and cross-OS commands.

Failure Triage

Identify wrapper, provider, hydration, sync, SSH, or command failure:

"$CRABBOX" doctor
"$CRABBOX" status --id <id>
"$CRABBOX" inspect --id <id> --json
"$CRABBOX" logs <run_id>
"$CRABBOX" results <run_id>
blacksmith testbox list --all
blacksmith testbox status --id <tbx_id>
  • Queued capacity: stop owned allocations; follow proof policy. No retry storm or provider switching.
  • Stale sync: --debug --timing-json, then --full-resync once on direct providers.
  • Read failed phase/JUnit before focused rerun. Broken wrapper: diagnose with installed CLI on same provider; update through consumer's trusted path.
  • Stop only owned IDs; stop takes no --timing-json.

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

1password

免费有简介AI 评分 100分

检查1Password命令行工具的安装和认证,将已保存的密码或API密钥传入命令及配置。支持桌面应用集成、服务账号和交互式登录,并先验证访问权限。

  • 安装1Password命令行工具
  • 将API密钥传入命令
  • 在CI中使用服务账号认证
openclaw/openclaw39.2万2026年10月18日 更新

acp-router

免费有简介AI 评分 80分

将提交给OpenClaw的自然语言请求转交给Claude Code等外部编程智能体,通过ACP或acpx启动、继续会话,并保留对话上下文。

  • 在讨论串中启动Claude Code
  • 继续外部智能体的现有工作
  • 通过acpx直接传递指令
openclaw/openclaw39.2万2026年10月18日 更新

add-model-provider

免费有简介AI 评分 100分

为OpenClaw添加模型服务商,并通过实际回复验证连接。凭据以环境变量或文件引用的形式配置,同时验证设置并报告测试结果。

  • 为OpenClaw添加模型服务商
  • 通过引用配置认证凭据
  • 确认模型能返回实际回复
openclaw/openclaw39.2万2026年10月18日 更新

agent-transcript

免费有简介AI 评分 90分

将AI代理的工作日志整理为可附在GitHub拉取请求或议题中的记录,筛选相关内容、移除敏感信息,并支持预览及经单独授权后的发布。

  • 为拉取请求整理代理工作记录
  • 从本地日志提取相关请求和结果
  • 预览已移除敏感信息的记录
openclaw/openclaw39.2万2026年10月18日 更新

apple-notes

免费有简介AI 评分 100分

通过代理管理macOS上的Apple Notes笔记,支持创建、查看、搜索、编辑和删除,在文件夹之间移动笔记,并将选定笔记导出为HTML或Markdown。

  • 创建带标题的笔记
  • 按文件夹筛选或模糊搜索笔记
  • 编辑笔记并整理文件夹
openclaw/openclaw39.2万2026年10月18日 更新

apple-reminders

免费有简介AI 评分 70分

通过Mac查看、添加和编辑Apple Reminders中带截止时间的待办事项,管理列表并完成或删除任务,整理在iPhone或iPad上查看的个人任务。

  • 查看今天和已逾期的任务
  • 添加带截止日期的个人待办事项
  • 整理iPhone或iPad上的任务
openclaw/openclaw39.2万2026年10月18日 更新

查看 openclaw 的全部技能

报告此技能的问题