diff --git a/.agents/skills/crabbox/SKILL.md b/.agents/skills/crabbox/SKILL.md index 7706f02bdb4f..77286de5f0cb 100644 --- a/.agents/skills/crabbox/SKILL.md +++ b/.agents/skills/crabbox/SKILL.md @@ -293,8 +293,21 @@ environment, or owned capacity is explicitly the goal. When AWS capacity is under pressure, do not start with `class=beast`. `beast` begins at 48xlarge instances and can burn 192 vCPU quota per request. -Use `standard` first, then `fast`, and use `large`/`beast` only when the task -truly needs that many cores or the AWS quota increase has landed. +OpenClaw's owned-cloud default is `standard`; escalate to `fast`, then `large`, +and only use `beast` when the work is explicitly CPU-bound and the smaller class +already failed the goal. + +Use `beast` only for exceptional lanes: + +- full-suite or all-plugin Docker matrices where wall time is dominated by CPU, + not dependency install or network; +- release/blocker validation where a maintainer explicitly asks for the largest + owned AWS class; +- performance profiling where the point is to compare high-core behavior. + +Do not use `beast` for `pnpm check:changed`, focused tests, docs-only work, +ordinary lint/typecheck, small E2E repros, or Blacksmith outage triage. Those +should use `standard` first and `fast` only when the extra cores materially help. Preferred AWS pressure-relief flow: diff --git a/.crabbox.yaml b/.crabbox.yaml index ab0046d8ce99..d660ae5a986a 100644 --- a/.crabbox.yaml +++ b/.crabbox.yaml @@ -1,12 +1,16 @@ profile: openclaw-check provider: aws -class: beast +class: standard capacity: market: spot strategy: most-available fallback: on-demand-after-120s regions: - eu-west-1 + - eu-west-2 + - eu-central-1 + - us-east-1 + - us-west-2 actions: workflow: .github/workflows/crabbox-hydrate.yml job: hydrate diff --git a/docs/ci.md b/docs/ci.md index 381b7bcb17c8..5121e1cbfd02 100644 --- a/docs/ci.md +++ b/docs/ci.md @@ -590,7 +590,7 @@ pnpm crabbox:run -- --id --timing-json --shell -- "env NODE_OPT pnpm crabbox:stop -- ``` -Under AWS pressure, avoid `class=beast` unless the task really needs 48xlarge-class CPU. A `beast` request starts at 192 vCPUs and is the easiest way to trip regional EC2 Spot or On-Demand Standard quota. Prefer `standard` or `fast`, set multiple `CRABBOX_CAPACITY_REGIONS`, and use `--market on-demand` for capacity diagnosis so Spot market churn is not mixed into the signal. +Under AWS pressure, avoid `class=beast` unless the task really needs 48xlarge-class CPU. A `beast` request starts at 192 vCPUs and is the easiest way to trip regional EC2 Spot or On-Demand Standard quota. The repo-owned `.crabbox.yaml` defaults to `standard` and multiple capacity regions. Use `fast` for heavier broad checks, `large` only after standard/fast are not enough, and `beast` only for exceptional CPU-bound lanes such as full-suite or all-plugin Docker matrices, explicit release/blocker validation, or high-core performance profiling. Do not use `beast` for `pnpm check:changed`, focused tests, docs-only work, ordinary lint/typecheck, small E2E repros, or Blacksmith outage triage. Use `--market on-demand` for capacity diagnosis so Spot market churn is not mixed into the signal. `.crabbox.yaml` owns provider, sync, and GitHub Actions hydration defaults for owned-cloud lanes. It excludes local `.git` so the hydrated Actions checkout keeps its own remote Git metadata instead of syncing maintainer-local remotes and object stores, and it excludes local runtime/build artifacts that should never be transferred. `.github/workflows/crabbox-hydrate.yml` owns checkout, Node/pnpm setup, `origin/main` fetch, and the non-secret environment handoff for owned-cloud `crabbox run --id ` commands.