Appearance
Why It Matters
SEC359 flags Cursor rule markdown whose frontmatter sets alwaysApply to a non-boolean value.
This is useful because:
- Cursor rules are configuration-bearing markdown, not free-form prose
- non-boolean
alwaysApplyvalues are harder to reason about across tools and loaders - the failure mode is community-hostile: the rule looks configured, but may not behave consistently
What Triggers
This rule applies only to Cursor rule markdown surfaces such as .mdc and .cursorrules.
It triggers when:
- parsed frontmatter contains
alwaysApply - and the parsed value is not a boolean
Example that triggers:
yaml
---
alwaysApply: yes
---Examples that stay clean:
yaml
---
alwaysApply: true
---- rules without
alwaysApply - fixture-like paths under
tests/,fixtures/,examples/, orsamples/
False Positives
This rule stays Preview because some repos may still carry legacy or loosely typed Cursor rule examples. The signal is about deterministic config quality and interoperability, not about exploitability.
Remediation
Set alwaysApply to an explicit boolean:
yaml
---
alwaysApply: true
---If the rule should not always apply, use false or remove the key and rely on the normal path-based scoping model.