Homepage

platformOS Check — Available Checks

Last edit: Aug 23, 2026

Available Checks

You can run the following checks as part of platformOS Check. Each check identifies a specific problem or a place in your code where a best practice is not being followed.

For configuration options, severity overrides, and how to disable checks per-file, see platformOS Check Configuration.

Liquid File Checks

These checks analyze the style and validity of Liquid templates, including .liquid files in app/views/pages/, app/views/partials/, and app/lib/.

Check Severity Description
DeprecatedFilter warning Reports usage of deprecated Liquid filters
DeprecatedTag warning Reports usage of deprecated Liquid tags
DuplicateFunctionArguments warning Reports duplicate argument names in {% function %} calls
DuplicateRenderPartialArguments warning Reports duplicate argument names in {% render %} tags
FilterArity error Reports a known filter called with the wrong number of arguments — platformOS raises Liquid::ArgumentError at render time
FilterWithoutEffect warning Reports a filter in a tag operand or argument, where the runtime never applies it and the value is used unfiltered
GraphQLVariablesCheck error Validates that parameters passed to {% graphql %} match the query's variable definitions
ImgWidthAndHeight error Requires width and height attributes on img tags to prevent cumulative layout shift
ImplicitIncludeArguments warning Reports a variable an {% include %}'d partial reads that the call site does not pass, and so inherits from the caller's scope — working, but invisible at the call site
InvalidWriteTarget error Reports a write into a container the runtime rejects — a subscript write ({% assign %}, {% hash_assign %}, {% function %}) that is neither a Hash with a key nor an Array with an index, or << against anything but an Array
JsonLiteralQuoteStyle error Enforces double-quoted string literals inside inline object/array literals — single quotes are not valid JSON
LiquidHTMLSyntaxError error Reports Liquid and HTML syntax errors
MissingAsset error Reports references to asset files that do not exist
MissingContentForLayout error Reports layouts that never output {{ content_for_layout }}, which drops the page body
MissingDocParam error Reports a variable a partial reads from its caller without declaring it as a @param in its {% doc %} tag, which leaves it required by the implementation and impossible to pass
MissingPage warning Reports links and form actions pointing to routes with no matching platformOS page
MissingPartial error Reports references to partial, function, or GraphQL files that do not exist
MissingRenderPartialArguments error Reports missing required arguments at {% render %} and {% function %} call sites, for partials that declare their parameters with a {% doc %} tag
NestedGraphQLQuery warning Detects {% graphql %} tags inside loop tags — the N+1 pattern — including transitive calls via {% render %} and {% function %}
ParserBlockingScript error Reports <script> tags without defer or async that block HTML parsing
PartialCallArguments error Ensures required arguments are passed to {% render %} and {% function %} call sites and no unknown arguments are passed, for partials with NO {% doc %} tag, inferring the parameter list from the partial body (formerly MetadataParamsCheck)
RequiredDocParamWithDefault warning Reports a parameter a {% doc %} tag declares as required that the partial then reads through the default filter, which almost always means the declaration should have been [param]
ReservedVariableName error Reports reserved Liquid literals (true, false, nil, null, empty, blank) used as variable names
RollbackOutsideTransaction error Reports a {% rollback %} reached outside a {% transaction %} block, following {% render %}, {% function %} and {% background %} calls and reporting on the call site
TranslationKeyExists error Reports translation keys used in templates that are not defined in the default language file
UnclosedHTMLElement warning Reports unbalanced HTML tags in branching Liquid code
UndefinedObject warning Reports references to variables that have not been defined
UniqueDocParamNames error Reports duplicate @param names in {% doc %} tags
UnknownFilter error Reports usage of Liquid filters that do not exist in the platformOS filter set
UnknownProperty error Reports access to properties that do not exist on variables whose structure the linter can determine — including GraphQL results and values returned from a {% function %} call
UnrecognizedRenderPartialArguments warning Reports arguments passed to {% render %} or {% function %} that are not declared in the partial's {% doc %} tag
UnusedAssign warning Reports variables assigned with {% assign %} or {% function %} that are never used
UnusedDocParam warning Reports @param entries in {% doc %} tags that are never used in the partial body
ValidDocParamTypes error Reports @param type annotations in {% doc %} tags that are not valid platformOS types
ValidFrontmatter warning Validates YAML frontmatter (required fields, allowed values, deprecated keys, association existence) for known platformOS file types
ValidRenderPartialArgumentTypes warning Reports type mismatches between arguments passed to {% render %} and the types declared in the partial's {% doc %} tag
ValidFilterArgumentTypes warning Reports a value passed to a Liquid filter, the piped value included, whose type contradicts the type the documentation publishes for it
ValidTagArgumentTypes warning Reports arguments passed to a Liquid tag whose type contradicts the type the documentation publishes for them
VariableName warning Enforces a consistent variable naming convention (default: snake_case)

GraphQL File Checks

These checks analyze .graphql files and validate them against the platformOS schema. Run pos-cli check update-docs to keep the local schema up to date.

Check Severity Description
GraphQLCheck error Validates GraphQL query and mutation files for syntax errors and schema conformance

YAML File Checks

These checks analyze YAML files: translations in app/translations/, and — for YAMLSyntaxError — every other YAML source the platform deploys, including app/config.yml and model schemas.

Check Severity Description
DuplicateYAMLKey warning Reports a key defined twice in one mapping, where the earlier value is silently discarded
MatchingTranslations error Reports translation files where keys are missing compared to the default language file
ValidHTMLTranslation warning Reports translation values that contain invalid HTML markup
YAMLSyntaxError error Reports what the YAML parser could not read — the file is rejected on deploy, which fails the whole changeset

Questions?

We are always happy to help with any questions you may have.

contact us