agentleFS
gear-foundationgear-foundation/vara-skills/skills/sails-new-app/SKILL.md

sails-new-app

Skill17 starsChanged 7 months agoMITView on GitHub

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.

We split this skill into the rules it gives an agent

11 rules. About 0 are common, 3 are distinctive, and 8 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 8

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If the machine does not already have rustup, the required Wasm targets, cargo-sails, and a local gear binary, start with …

    line 14
  2. Very specific:

    Write the feature or app goal to docs/plans/YYYY-MM-DD-<topic>-spec.md using ../../assets/spec-template.md.

    line 16
  3. Very specific:

    Keep the standard template workspace shape created by cargo sails new <project-name> intact: app, client, src, tests, top-level build.rs, …

    line 18
  4. Very specific:

    Keep the standard build-script pipeline intact.

    line 19
  5. Very specific:

    When the builder needs a frontend, use create-vara-app to scaffold it from the program's .idl: npx create-vara-app <name> --idl …

    line 21
  6. Distinctive:

    Keep the builder on standard Sails scaffolding and generated clients.

    line 33
  7. Very specific:

    Keep the standard Sails workspace shape and build-generated .idl and .opt.wasm artifact path intact, and check the crate's build.rs before …

    line 34
  8. Distinctive:

    Do not jump into raw Gear primitives when a Sails path already exists.

    line 35
  9. Distinctive:

    Do not skip the planning docs just because the repo is greenfield.

    line 36
  10. Very specific:

    Always use cargo sails new <project-name> for greenfield Sails/Vara work.

    line 37
  11. Very specific:

    Use #[sails_type] for all custom types (structs, enums) used in service interfaces.

    line 38

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Sails New App

Goal

Move a greenfield request from scope to an approved Sails workspace path without skipping the planning artifacts that later implementation depends on.

Sequence

  1. If the machine does not already have rustup, the required Wasm targets, cargo-sails, and a local gear binary, start with ../sails-dev-env/SKILL.md.
  2. For a new standard Sails/Vara project, bootstrap the workspace first with cargo sails new <project-name> unless the user explicitly needs a custom non-template layout.
  3. Write the feature or app goal to docs/plans/YYYY-MM-DD-<topic>-spec.md using ../../assets/spec-template.md.
  4. Route architecture decisions through ../sails-architecture/SKILL.md.
  5. Keep the standard template workspace shape created by cargo sails new <project-name> intact: app, client, src, tests, top-level build.rs, Wasm output, and generated-client path.
  6. Keep the standard build-script pipeline intact. In a standard Sails workspace, use the repo-generated build path for .idl and Rust client artifacts. For a dedicated client crate, prefer sails-rs with features = ["build"] and sails_rs::build_client::<Program>() before introducing manual sails-idl-gen / sails-client-gen-v2 wiring.
  7. Validate before moving to later phases by finishing with ../sails-gtest/SKILL.md, then ../sails-local-smoke/SKILL.md.
  8. When the builder needs a frontend, use create-vara-app to scaffold it from the program's .idl: npx create-vara-app <name> --idl path/to/service.idl. Then route to ../sails-frontend/SKILL.md for customization.

Shared Inputs

  • ../../references/vara-domain-overview.md
  • ../../references/sails-cheatsheet.md
  • ../../references/sails-program-and-service-architecture.md
  • ../../references/sails-idl-client-pipeline.md
  • ../../references/sails-idl-v2-syntax.md — IDL v2 annotations, !@include, service-scoped types

Guardrails

  • Keep the builder on standard Sails scaffolding and generated clients.
  • Keep the standard Sails workspace shape and build-generated .idl and .opt.wasm artifact path intact, and check the crate's build.rs before adding ad hoc generation steps.
  • Do not jump into raw Gear primitives when a Sails path already exists.
  • Do not skip the planning docs just because the repo is greenfield.
  • Always use cargo sails new <project-name> for greenfield Sails/Vara work. Hand-assembled workspaces are a known source of errors: shared top-level workspaces cause Cargo feature unification to enable both gstd and gtest on sails-rs simultaneously, breaking the build. See ../../references/sails-rs-imports.md for the canonical layout.
  • Use #[sails_type] for all custom types (structs, enums) used in service interfaces. This replaces the verbose #[derive(Encode, Decode, TypeInfo)] #[codec(crate = ...)] pattern from 0.x.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.