skills/sails-dev-env/SKILL.md
Use when a builder needs to prepare or repair a local macOS, Linux, or Windows machine for standard Gear/Vara Sails Rust development before building, testing, or running a local node. Do not use for live-network deployment, app-specific feature work, or Vara.eth/ethexe-only setup.
npx skillsauth add gear-foundation/vara-skills sails-dev-envInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Get the machine to a verified baseline for standard Sails Rust work: rustup, Rust toolchains, Wasm targets, cargo-sails, and the latest official gear binary.
macOS, Linux, or Windows.rustup is missing, install it with the official bootstrap for that platform.stable and nightly toolchains, then add wasm32-unknown-unknown and wasm32v1-none.cargo install sails-cli --locked, which provides cargo-sails and the standard greenfield bootstrap command cargo sails new <project-name>.gear release binary from https://get.gear.rs/ (see Commands below for platform-specific download).rustup show, cargo sails --version, and gear --version.../sails-new-app/SKILL.md, ../ship-sails-app/SKILL.md, ../sails-gtest/SKILL.md, or ../sails-local-smoke/SKILL.md depending on the builder's next task.command -v rustup >/dev/null 2>&1 || curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
# After fresh install, restart the shell or source the env so cargo/rustc resolve:
. "${HOME}/.cargo/env"
rustup toolchain install stable
rustup toolchain install nightly
rustup default stable
rustup target add wasm32-unknown-unknown --toolchain stable
rustup target add wasm32-unknown-unknown --toolchain nightly
rustup target add wasm32v1-none --toolchain stable
rustup target add wasm32v1-none --toolchain nightly
cargo install sails-cli --locked
# Install gear binary from official releases (auto-detect architecture)
GEAR_VERSION="v1.10.0"
case "$(uname -s)-$(uname -m)" in
Darwin-arm64) GEAR_ARCH="aarch64-apple-darwin" ;;
Darwin-x86_64) GEAR_ARCH="x86_64-apple-darwin" ;;
Linux-x86_64) GEAR_ARCH="x86_64-unknown-linux-gnu" ;;
Linux-aarch64) GEAR_ARCH="aarch64-unknown-linux-gnu" ;;
*) echo "Unsupported platform: $(uname -s)-$(uname -m)"; exit 1 ;;
esac
mkdir -p "${HOME}/.local/bin"
curl -sSf "https://get.gear.rs/gear-${GEAR_VERSION}-${GEAR_ARCH}.tar.xz" | tar -xJ -C "${HOME}/.local/bin"
export PATH="${HOME}/.local/bin:${PATH}"
rustup show
cargo sails --version
cargo sails --help
gear --version
if (-not (Get-Command rustup -ErrorAction SilentlyContinue)) {
winget install Rustlang.Rustup
}
rustup toolchain install stable
rustup toolchain install nightly
rustup default stable
rustup target add wasm32-unknown-unknown --toolchain stable
rustup target add wasm32-unknown-unknown --toolchain nightly
rustup target add wasm32v1-none --toolchain stable
rustup target add wasm32v1-none --toolchain nightly
cargo install sails-cli --locked
# Install gear binary from official releases
$GearVersion = "v1.10.0"
$GearDest = "$env:USERPROFILE\AppData\Local\Programs\gear\bin"
New-Item -ItemType Directory -Force -Path $GearDest | Out-Null
Invoke-WebRequest -Uri "https://get.gear.rs/gear-$GearVersion-x86_64-pc-windows-msvc.zip" -OutFile "$env:TEMP\gear.zip"
Expand-Archive -Path "$env:TEMP\gear.zip" -DestinationPath $GearDest -Force
$env:PATH = "$GearDest;$env:PATH"
rustup show
cargo sails --version
cargo sails --help
gear --version
gear checkout or machine-local scripts outside this skill directory. The gear binary is downloaded directly from https://get.gear.rs/ official releases. The scripts/install-gear.sh and scripts/install-gear.ps1 helpers in this skill directory are available as an alternative when a more flexible install is needed (e.g., custom tags or targets).gear release binary over building the node from source unless the user asks for a specific tag or source build.curl, tar, xz, or winget are missing, install them with the platform package manager, then continue.Node.js, npm, or sails-cli are part of this skill. Install JS tooling separately only when the active workflow actually needs it.development
Use when approved tasks require Rust code changes in a Sails ethexe workspace with the ethexe feature enabled. Do not use for standard Gear/Vara Sails apps without ethexe, or when the spec or architecture is still unsettled.
development
Use when a builder needs to design or review architecture for a Sails ethexe app with dual-transport, payable methods, Solidity interface generation, or Ethereum-style events. Do not use for standard Gear/Vara Sails apps without ethexe.
development
Use when a builder needs to design or debug calls from a standard Gear/Vara Sails program into runtime builtin actors such as BLS12-381, staking, proxy, or ETH bridge, including ActorId derivation, request encoding, reply decoding, and gas or ED budgeting. Do not use for regular program-to-program messaging, Vara.eth or ethexe-only work, non-Sails repositories, or runtime-maintenance tasks inside the Gear repo.
development
Use when a builder needs a read-side indexer and query API for a standard Gear/Vara Sails app using program events, IDL-driven decoding, projected read models, and optional on-chain query enrichment. Do not use for command-side backends, generic Node APIs, non-Sails repositories, Vara.eth or ethexe-first work.