Skip to main content


Sysl is a relatively flexible language: the same thing can be specified in various different ways. However not all ways are equally good.

Specifying systems in a consistent and human-readable way is important to save time and effort, and avoid easily preventable bugs. Everybody on a team should follow the same set of standards, whether or not they agree with them.

This page offers a standard set of "best practices" for working with Sysl, such as how to format and annotation specifications and split content across multiple files. They are recommended from experience, but every team should feel free to set their own standards if they prefer.