<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
	<channel>
		<title>The Vale blog</title>
		<link>https://vale.sh/blog</link>
		<description>Notes from building Vale.</description>
		<language>en-us</language>
		<atom:link href="https://vale.sh/blog/rss.xml" rel="self" type="application/rss+xml"/>
		<item>
			<title>Testing your rules with vale test</title>
			<link>https://vale.sh/blog/testing-rules</link>
			<guid isPermaLink="true">https://vale.sh/blog/testing-rules</guid>
			<description>Keep test cases beside your rules, script rules included, and run them in CI. A rule that matches nothing no longer fails in silence.</description>
			<dc:creator>Joseph Kato</dc:creator>
			<pubDate>Thu, 01 Oct 2026 00:00:00 GMT</pubDate>
			<category domain="https://vale.sh/blog/tags/tutorials">Tutorials</category>
			<media:content url="https://vale.sh/blog/og/testing-rules.png" type="image/png" medium="image">
				<media:description type="plain">A failing vale test case: the expected alert at line 9 against the actual one at line 7.</media:description>
			</media:content>
		</item>
		<item>
			<title>How Epic Games keeps Lore from sounding like Git</title>
			<link>https://vale.sh/blog/case-study-epic-lore</link>
			<guid isPermaLink="true">https://vale.sh/blog/case-study-epic-lore</guid>
			<description>Lore is Epic's open source version control system, and its docs run a 62-rule Vale style whose job is to make a new product speak its own language. The config, the rules, and the script that runs them.</description>
			<dc:creator>Joseph Kato</dc:creator>
			<pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate>
			<category domain="https://vale.sh/blog/tags/case-studies">Case studies</category>
			<category domain="https://vale.sh/blog/tags/adopters">Adopters</category>
			<media:content url="https://vale.sh/blog/brand/case-study-epic-lore.png" type="image/png" medium="image">
				<media:description type="plain">A Vale rule that replaces the Git term "working copy" with the Lore term "working tree".</media:description>
			</media:content>
		</item>
		<item>
			<title>How GOV.UK turned its style guide into a build step</title>
			<link>https://vale.sh/blog/case-study-gov-uk</link>
			<guid isPermaLink="true">https://vale.sh/blog/case-study-gov-uk</guid>
			<description>The UK government's plain-English rules, packaged as a Vale style, run by ten GOV.UK One Login repositories, and wired into an Android app's Gradle build so the source comments are checked too.</description>
			<dc:creator>Joseph Kato</dc:creator>
			<pubDate>Mon, 28 Sep 2026 00:00:00 GMT</pubDate>
			<category domain="https://vale.sh/blog/tags/case-studies">Case studies</category>
			<category domain="https://vale.sh/blog/tags/adopters">Adopters</category>
			<media:content url="https://vale.sh/blog/brand/case-study-gov-uk.png" type="image/png" medium="image">
				<media:description type="plain">The GOV.UK crest over the public sector's orbit pattern.</media:description>
			</media:content>
		</item>
		<item>
			<title>Linting the four kinds of documentation</title>
			<link>https://vale.sh/blog/diataxis</link>
			<guid isPermaLink="true">https://vale.sh/blog/diataxis</guid>
			<description>Diataxis is a Vale package for the four kinds of documentation in Diátaxis: tutorials, how-to guides, reference, and explanation, each checked against the job it claims to do.</description>
			<dc:creator>Joseph Kato</dc:creator>
			<pubDate>Thu, 24 Sep 2026 00:00:00 GMT</pubDate>
			<category domain="https://vale.sh/blog/tags/packages">Packages</category>
			<media:content url="https://vale.sh/blog/og/diataxis.png" type="image/png" medium="image">
				<media:description type="plain">A two-by-two grid of the four kinds of documentation, each cell with one alert where the page slipped into another kind.</media:description>
			</media:content>
		</item>
		<item>
			<title>Linting a manuscript</title>
			<link>https://vale.sh/blog/journals</link>
			<guid isPermaLink="true">https://vale.sh/blog/journals</guid>
			<description>Journals is a Vale package for scientific papers: the conventions every journal shares, the Nature and PLOS ONE author guidelines, and the CONSORT, STROBE, and PRISMA checklists, read section by section.</description>
			<dc:creator>Joseph Kato</dc:creator>
			<pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate>
			<category domain="https://vale.sh/blog/tags/packages">Packages</category>
			<category domain="https://vale.sh/blog/tags/formats">Formats</category>
			<media:content url="https://vale.sh/blog/og/journals.png" type="image/png" medium="image">
				<media:description type="plain">A manuscript in a terminal window, its headings lit as sections, with one alert on a unit and one on the Methods heading.</media:description>
			</media:content>
		</item>
		<item>
			<title>Linting commit messages</title>
			<link>https://vale.sh/blog/commits</link>
			<guid isPermaLink="true">https://vale.sh/blog/commits</guid>
			<description>Commits is a Vale package for the log: nine conventions, the rule sets of commitlint, gitlint, committed, conform, and commitizen, spelling on the body, and a hook that runs in 12 ms.</description>
			<dc:creator>Joseph Kato</dc:creator>
			<pubDate>Thu, 10 Sep 2026 00:00:00 GMT</pubDate>
			<category domain="https://vale.sh/blog/tags/packages">Packages</category>
			<category domain="https://vale.sh/blog/tags/formats">Formats</category>
			<media:content url="https://vale.sh/blog/og/commits.png" type="image/png" medium="image">
				<media:description type="plain">A commit message with its subject, body, and trailers each highlighted as a separate scope, one carrying an alert at its exact column.</media:description>
			</media:content>
		</item>
		<item>
			<title>Introducing Std: The standard library for Vale</title>
			<link>https://vale.sh/blog/std</link>
			<guid isPermaLink="true">https://vale.sh/blog/std</guid>
			<description>General-purpose rules you extend to build your own style, extracted from the styles teams already run.</description>
			<dc:creator>Joseph Kato</dc:creator>
			<pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate>
			<category domain="https://vale.sh/blog/tags/packages">Packages</category>
			<media:content url="https://vale.sh/blog/og/std.png" type="image/png" medium="image">
				<media:description type="plain">The Std directory tree, six rule families under one root, in a terminal window.</media:description>
			</media:content>
		</item>
		<item>
			<title>Introducing Voices: AI writing skills as Vale rules</title>
			<link>https://vale.sh/blog/voices</link>
			<guid isPermaLink="true">https://vale.sh/blog/voices</guid>
			<description>The writing skill you would reach for, rewritten as Vale rules. Checked on every draft rather than remembered, and free until something breaks one.</description>
			<dc:creator>Joseph Kato</dc:creator>
			<pubDate>Wed, 02 Sep 2026 00:00:00 GMT</pubDate>
			<category domain="https://vale.sh/blog/tags/packages">Packages</category>
			<category domain="https://vale.sh/blog/tags/agents">Agents</category>
			<media:content url="https://vale.sh/blog/og/voices.png" type="image/png" medium="image">
				<media:description type="plain">A token meter showing two prompt-sized bars, one alert-sized bar, and a zero.</media:description>
			</media:content>
		</item>
		<item>
			<title>Vale and the OpenAPI Specification</title>
			<link>https://vale.sh/blog/openapi</link>
			<guid isPermaLink="true">https://vale.sh/blog/openapi</guid>
			<description>A tutorial on linting OpenAPI Specification files: extract just the prose from a structured file, with errors reported at their exact location.</description>
			<dc:creator>Joseph Kato</dc:creator>
			<pubDate>Fri, 13 Mar 2026 00:00:00 GMT</pubDate>
			<category domain="https://vale.sh/blog/tags/tutorials">Tutorials</category>
			<category domain="https://vale.sh/blog/tags/formats">Formats</category>
			<media:content url="https://vale.sh/blog/og/openapi.png" type="image/png" medium="image">
				<media:description type="plain">A YAML document with only its prose fields highlighted, one carrying an alert at its exact location.</media:description>
			</media:content>
		</item>
	</channel>
</rss>
