sails-program-evolution
Sails Program Evolution
Overview
Plan how a released Sails contract evolves after deployment.
Use this skill when the work is no longer just “implement a feature”, but instead requires thinking about versioning, compatibility, cutover, ReadOnly handling, frontend/indexer impact, or migration from V1 to V2.
Start Here
Read ../../references/contract-interface-evolution.md, ../../references/gear-sails-production-patterns.md, ../../references/sails-idl-client-pipeline.md, and ../../references/sails-program-and-service-architecture.md.
Use ../../assets/architecture-template.md for the architecture note and ../../assets/task-plan-template.md for the ordered task plan.
Write outputs to:
docs/plans/YYYY-MM-DD-<topic>-architecture.mddocs/plans/YYYY-MM-DD-<topic>-tasks.md
Route Here When
- a released contract must gain a new deployed version
- public routes, replies, or events may change
- frontend or indexer compatibility must be preserved during cutover
- the old contract may need
ReadOnlyor write-disable behavior - a future migration path must be designed even if migration is not implemented now
- state migration from
V1toV2is part of scope
Working Model
- Classify the change first: additive, breaking, migration-readiness only, or migration now.
- Treat Gear/Sails evolution as
V1 -> V2 -> cutover, not as hot-swapping live contract code in place. - Keep public routes, reply shapes, and emitted events stable unless the architecture explicitly versions them.
- Make contract version, status, and cutover behavior explicit.
- If migration is required, split responsibilities across
V1,V2, and the off-chain migrator. - Record frontend, generated-client, and indexer implications before implementation begins.
- Route implementation to
../sails-architecture/SKILL.md,../task-decomposer/SKILL.md,../sails-rust-implementer/SKILL.md,../sails-idl-client/SKILL.md, and../sails-local-smoke/SKILL.mdas needed.
Default Outputs
The resulting architecture and task artifacts should make these points explicit when relevant:
- whether the change is additive or breaking
- whether a new deployed contract version is required
- whether
ReadOnlyor write-disable behavior is required - whether migration is in scope now or only prepared for later
- how frontend and indexer switch to the new version
- what rollback target exists during cutover
Guardrails
- Do not describe Gear/Sails evolution as in-place replacement of live contract code.
- Do not hide compatibility-sensitive changes inside generic “update contract” wording.
- Do not change released public routes or event payloads casually.
- Do not treat IDL regeneration alone as proof of safe rollout.
- Do not merge
V1,V2, and migrator responsibilities into one vague implementation step.
More from gear-foundation/vara-skills
vara-skills
Use when a builder needs the top-level router for the provisional standard Gear/Vara Sails skill pack across Codex, Claude, or OpenClaw. Do not use for Vara.eth or ethexe work, non-Sails programs, or broad protocol research.
197sails-new-app
Use when a builder is starting a new standard Gear/Vara Sails app and needs the correct greenfield sequence before implementation. Do not use for edits to an established repo, Vara.eth or ethexe targets, or non-Sails templates.
2sails-dev-env
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.
2vara-wallet
Use when an agent needs to interact with Vara Network on-chain — deploy programs, call Sails methods, manage wallets, transfer tokens, monitor events. Not for building Sails programs (use vara-skills for that).
2sails-gtest
Use when a builder needs the standard Gear/Vara Sails gtest loop for feature verification, debugging, or regression coverage. Do not use for live-network-only validation, deployment-first workflows, or non-Sails programs.
2task-decomposer
Use when approved spec and architecture artifacts must become an ordered implementation plan for Gear or Vara work. Do not use when the architecture is still unsettled or when the request is only asking for a high-level idea.
2