Core Concepts

Understanding stacks, profiles, and how Soustack's composable architecture works.

Stacks

Stacks are optional capability modules that extend recipes with specific features. They are monotonic: adding a stack increases expressiveness but never removes what was already available.

Each stack is validated by schema and fixtures, ensuring consistent behavior across implementations. Stacks can be combined to build recipes that support multiple capabilities.

Examples of stacks include equipment requirements, ingredient prep annotations, scaling metadata, timing and scheduling, storage guidance, and presentation media.

Browse stack documentation in the canonical specification.

Profiles

Profiles are named conformance bundles that promise what apps and users can rely on. They act as trust badges: when a recipe declares a profile, it guarantees that specific data structures and behaviors are present.

Profiles are organized in an adoption ladder, from minimal (Lite) to feature-rich (Illustrated). You don't need to start at the top—apps can support as much as they want, and recipes declare what they can do.

Examples of profiles:

  • Equipped — Declares required equipment and capacity
  • Prepped — Includes ingredient prep annotations and mise en place
  • Scalable — Provides scaling metadata for intelligent yield changes
  • Timed — Adds active/passive time tracking and scheduling
  • Illustrated — Includes images and media for presentation

See the adoption ladder for the full progression and profile definitions.

Resources

  • Soustack specification — The canonical specification with profiles, stacks, schemas, and fixtures.
  • soustack-core — Reference implementation for validation, scaling, and scheduling.
  • Adoption overview — Choose the profile that matches your needs.
  • Stacks — Understand how enforcement and versioning work.