From the 2026-09-21 dogfood notes, measured on the pinned binary.
A scope: raw rule sees front matter as prose. product-name-casing flagged target: taskless in blog front matter, where lowercase is a machine key the publish path reads. Capitalizing it would have broken the corpus; the fixes are a scope that excludes front matter, or a pass fixture that carries the key.
---
target: taskless # machine key, read by the publish path
---
Taskless compiles the correction into a rule. # prose, correctly cased
The flip side is useful and belongs in the same passage: occurrence with min: 1 under scope: raw can require a front-matter field to exist.
extends: occurrence
message: "A blog draft needs a description in its frontmatter."
level: error
scope: raw
min: 1
token: '(?m)^description: .+$'
create-vale-rule.md lists frontmatter / frontmatter.<key> in the scope table but nothing says that raw includes front matter, or how to keep a machine key out of a prose rule.
What to do
- Recipe: a gotcha in the scope section covering both directions, with a pass fixture that carries the machine key; topic version bump.
- Vendor contract test pinning that
scope: raw matches inside front matter and that frontmatter.<key> does not leak into body prose.
- No changeset (recipe only).
From the 2026-09-21 dogfood notes, measured on the pinned binary.
A
scope: rawrule sees front matter as prose.product-name-casingflaggedtarget: tasklessin blog front matter, where lowercase is a machine key the publish path reads. Capitalizing it would have broken the corpus; the fixes are a scope that excludes front matter, or a pass fixture that carries the key.The flip side is useful and belongs in the same passage:
occurrencewithmin: 1underscope: rawcan require a front-matter field to exist.create-vale-rule.mdlistsfrontmatter/frontmatter.<key>in the scope table but nothing says thatrawincludes front matter, or how to keep a machine key out of a prose rule.What to do
scope: rawmatches inside front matter and thatfrontmatter.<key>does not leak into body prose.