Goal
Keep feature work inside an existing Sails repo on an explicit sequence instead of skipping straight to code edits or bypassing the typed client path.
If the request targets a released contract, a new deployed contract version, or V1->V2 evolution, route through ../sails-program-evolution/SKILL.md before normal implementation work continues.
Required Sequence
- Clarify the feature in
docs/plans/YYYY-MM-DD-<topic>-spec.mdwithidea-to-specand../../assets/spec-template.md. - Plan architecture or public interface in
...-architecture.mdwith../sails-architecture/SKILL.mdand../../assets/architecture-template.md. - If the work targets a released contract, introduces a new deployed version, requires cutover planning, or prepares V1->V2 migration, review
../sails-program-evolution/SKILL.mdbefore task breakdown and coding. - If the feature needs API selection across
gstd, review../gear-gstd-api-map/SKILL.mdbefore coding. - If the feature changes async behavior, replies, delays, reservations, or waitlist semantics, review
../gear-message-execution/SKILL.mdbefore coding. - Break the work into tasks in
...-tasks.mdwithtask-decomposerand../../assets/task-plan-template.md. - If the feature introduces a fungible token, mint/burn roles, token-backed accounting, or native-value exchange, review
../awesome-sails-vft/SKILL.mdbefore coding. - Implement the Rust changes through
sails-rust-implementer. - If the public interface changed, refresh the
.idland regenerate the typed client through the repo's standardbuild.rspath first. For dedicated Rust client crates, prefer thesails-rsbuild-helper path before a manual generator pipeline. - Run
gtestthrough../sails-gtest/SKILL.md. - Run smoke validation only after green
gtest, using../sails-local-smoke/SKILL.md.
Sponsored UX Cases
- If the feature includes gasless or signless UX, see
../../references/voucher-and-signless-flows.mdfor the canonical builder recipes, lifecycle, and failure modes. Define the voucher or session flow in the spec and architecture.
References
../../references/vara-domain-overview.md../../references/sails-cheatsheet.md../../references/gtest-cheatsheet.md../../references/gear-execution-model.md../../references/gear-messaging-and-replies.md../../references/sails-gtest-and-local-validation.md../../references/contract-interface-evolution.md../../references/voucher-and-signless-flows.md
Guardrails
- Do not skip the document chain for “small” features.
- Do not bypass the generated client path with raw payload encoders, hand-built SCALE payloads, or EVM-style bindings.
- Do not claim completion before
gtestis green and documented. - Do not treat local-node smoke as a substitute for
gtest. - Do not treat released-contract evolution, cutover, or V1->V2 migration as ordinary feature work without routing through the program-evolution flow.