---
name: sails-rust-implementer-9aa35ee19c87
description: Use when approved Gear or Vara tasks require Rust or Sails code changes in a real workspace. Do not use when the spec or architecture is still unsettled, or when the task is only review or deployment.
---

# Sails Rust Implementer

## Overview

Implement approved tasks in Sails-first Rust workspaces without freelancing new scope.
If the task touches a released contract, preserve public routes, reply shapes, emitted events, and generated-client expectations unless the approved architecture explicitly changes them.

## Inputs

- `../../references/sails-cheatsheet.md` — core Sails patterns and APIs
- `../../references/sails-rs-imports.md` — import paths for sails-rs types
- `../../references/delayed-message-pattern.md` — delayed self-message recipe
- `../../references/vara-domain-overview.md` — Vara domain context
- `../../references/gear-sails-production-patterns.md` — production patterns
- `../../references/gear-messaging-and-replies.md` — messaging and reply flows
- `../../references/gear-gas-reservations-and-waitlist.md` — gas and waitlist
- `../../references/sails-syscall-mapping.md` — `Syscall::*` API mapping (use instead of raw `gcore::*`/`msg::*`/`exec::*`)

Additional references by task type:
- Token work: `../../references/awesome-sails-token-patterns.md`
- Released contract changes: `../../references/contract-interface-evolution.md`

Consume the approved `spec`, `architecture`, and `tasks` artifacts before changing code.

If the target crate explicitly builds an `ethexe` path, stop and hand back to a dedicated ethexe workflow instead of extending this standard Sails pack.

## Workflow

1. Confirm the task is already specified and architecture-approved.
2. Identify the smallest code change that satisfies the current task.
3. Match the current Sails release conventions before improvising: public service routes use `#[export]`, events use `emit_event`, and shared types use `#[sails_type]` (expands to `Encode + Decode + TypeInfo + ReflectHash` with correct crate paths). Prefer `#[sails_type]` over manual derives for all service types, command/query params, and event payloads. Use `#[sails_type(crate = my_crate)]` when re-exporting from a different crate.
4. Preserve released routes, reply shapes, emitted events, IDL expectations, and client-facing contract stability unless the task explicitly changes them.
5. Keep failure handling aligned with Gear/Vara async semantics.
6. Hand local verification to the gtest loop before claiming the task is done.

## Guardrails

- Do not redesign the feature while coding.
- Prefer Sails-level interfaces over raw payload work unless the task says otherwise.
- Keep constructor shape and state ownership consistent with the approved architecture instead of inventing a new storage pattern mid-implementation.
- Use generated clients or equivalent Sails Header-aware encoding for normal Sails calls; do not substitute bare raw structs for constructor or service payloads.
- If the feature needs a delayed self-message, use the shared payload recipe and the `Syscall::message_source() == Syscall::program_id()` guard pattern instead of ad hoc routing bytes.
- Preserve fail-fast command behavior; panic on fatal stateful command-path failures instead of introducing partial-commit recovery.
- Use `Syscall::gas_available()` for remaining-gas checks in execution paths.
- Use `Syscall::*` for all runtime accessors instead of raw `gcore::*`, `msg::*`, or `exec::*` calls. Full mapping: `../../references/sails-syscall-mapping.md` (listed in Inputs).
- Treat value flow, replies, and async ordering as first-class behavior.
- Stop and hand back to planning if implementation uncovers a real architecture gap.
- Do not change a released public route shape in place unless the approved architecture explicitly allows it.
- Do not change a released event payload in place without explicit versioning or cutover guidance.
- Do not assume IDL regeneration alone makes a breaking interface change safe.
- Do not leave old-version write behavior undefined if the architecture requires `ReadOnly` or write-disable handling.

## `#[export]` Usage

All public service methods must be annotated with `#[export]`. For standard (non-ethexe) Sails apps, no transport flags are needed — `#[export]` enables SCALE transport by default. Transport flags (`scale`, `ethabi`, `payable`) are ethexe-specific; see the `sails-ethexe-implementer` skill for details.


---
Source attribution: gear-foundation
Original project: https://github.com/gear-foundation/vara-skills/blob/44c1454141ececc8ef3a88903b625260f370c4de/skills/sails-rust-implementer/SKILL.md
License: MIT
License information: https://opensource.org/license/mit
Original upstream instructions; downloaded from Mega AI Hub.

## Upstream license notice

MIT License

Copyright (c) 2026 Gear Foundation

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.



# Mega AI Hub resource metadata

Creator / publisher: gear-foundation
Original project: https://github.com/gear-foundation/vara-skills/blob/44c1454141ececc8ef3a88903b625260f370c4de/skills/sails-rust-implementer/SKILL.md
Attribution basis: Source repository record

Fields of work: Development & Engineering, Product Management
Roles: Backend Developer, DevOps / SRE, Product Manager
Specialties: Backend
Tools: Sails
Country applicability: Country not specified
Classification basis: Source catalog labels
Instruction SHA-256: d6cced73289dc16a9b79dde774e0a92496fbd39a5f9f07f9f9eebbc03445bc01
