skills/sails-architecture/SKILL.md
Use when a builder needs to shape or correct standard Gear/Vara Sails program and service boundaries, state ownership, or message flow. Do not use for pure deployment work, Vara.eth or ethexe targets, or non-Sails programs.
npx skillsauth add gear-foundation/vara-skills sails-architectureInstall 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.
Turn an approved spec into a Sails-specific architecture artifact before implementation starts.
If the work changes a released contract or introduces a new deployed contract version, the architecture note must also define compatibility expectations for public routes, replies, events, generated clients, and off-chain consumers such as frontend and indexer.
../../assets/architecture-template.md../../references/vara-domain-overview.md../../references/sails-cheatsheet.md../../references/gear-sails-production-patterns.md../../references/sails-program-and-service-architecture.md../../references/gear-messaging-and-replies.md../../references/gear-gas-reservations-and-waitlist.md../../references/awesome-sails-token-patterns.md../../references/contract-interface-evolution.md../../references/sails-header-wire-format.md — interface ID stability, entry ID derivation, route indexWrite the result to docs/plans/YYYY-MM-DD-<topic>-architecture.md.
ReservationId usage and duration explicitly. Reservation keeps gas available for later sends, including delayed sends, but it is not free, permanent, or a value transfer.../gear-gstd-api-map/SKILL.md first.../gear-message-execution/SKILL.md.../../references/awesome-sails-token-patterns.md.../gear-builtin-actors/SKILL.md — state ownership, idempotency, and reply routing differ from program-to-program calls because the builtin has no memory or code.#[program] and #[service] boundaries explicit?../../references/sails-header-wire-format.md for how interface IDs are derived.)#[export]?Active and ReadOnly when relevant?V1, V2, and the off-chain migrator instead of implying an in-place code swap.If the contract is expected to live beyond its first production release, the architecture note must describe how state could later be exported from V1.
At minimum:
ReadOnly lifecycle mode in a future releasedevelopment
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.