brainstorming
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or planning anything new, in software or out of it (a talk, a business, a renovation).
crabboxCrabbox and Blacksmith Testbox remote testing: isolation, cross-platform E2E, diagnostics, cleanup.
Independent GitHub snapshot · Automated classification · Original documentation governs
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.”
--blacksmith-workflow, never direct --class/--type;
profile changes require fresh leases.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
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:
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.--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.warmup --ref; use branch/tag.blacksmith testbox list hides states. Use list --all or status --id <tbx_id>.--id. No status --json.--fresh-pr, --full-resync, --script*,
--env-helper, capture/download flags.Recursive downloads + required remote trailing slash: directory downloads.
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 \
--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>
HOME before
install/test.--no-hydrate on container runs; report local-container proof as local.SSH targets, paid macOS preflight, WebVNC, app handoff verification: read desktop and cross-OS commands.
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>
--debug --timing-json, then --full-resync once on direct providers.stop takes no --timing-json.