<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Specifications on Brian Faust</title><link>https://vacua.dev/specifications/</link><description>Recent content in Specifications on Brian Faust</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Tue, 21 Jul 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://vacua.dev/specifications/rss.xml" rel="self" type="application/rss+xml"/><item><title>Intent Pull Requests</title><link>https://vacua.dev/specifications/intent-pull-requests/</link><pubDate>Tue, 21 Jul 2026 00:00:00 +0000</pubDate><guid>https://vacua.dev/specifications/intent-pull-requests/</guid><description>&lt;h2 id="abstract"&gt;Abstract&lt;/h2&gt;
&lt;p&gt;The Intent Pull Requests Specification defines what a pull request must
communicate before people or automation decide whether to integrate it. A pull
request is a review artifact: it describes the complete proposed result, why
that result is needed, how the implementation achieves it, why that approach
was selected, what it affects, and what evidence supports its claims.&lt;/p&gt;
&lt;p&gt;A pull request resembles a small changelog because both explain change. Their
audiences and timing differ. A pull request helps reviewers decide whether a
proposal should become history. A changelog helps consumers understand history
that was released.&lt;/p&gt;</description></item><item><title>Intent Changelog</title><link>https://vacua.dev/specifications/intent-changelog/</link><pubDate>Mon, 20 Jul 2026 00:00:00 +0000</pubDate><guid>https://vacua.dev/specifications/intent-changelog/</guid><description>&lt;h2 id="abstract"&gt;Abstract&lt;/h2&gt;
&lt;p&gt;The Intent Changelog Specification defines a structured release ledger
for software projects. It treats an unreleased release as a real release whose
publication date is not yet known, rather than as an inbox of uncategorized
changes.&lt;/p&gt;
&lt;p&gt;Each release record belongs to one release unit and contains complete,
categorized entries. An entry records what changed, why it changed, who needs
to know, its release impact, migration guidance, and its provenance. Projects
may define their own change types without forcing unrelated changes into a
fixed universal taxonomy.&lt;/p&gt;</description></item><item><title>Intent Changesets</title><link>https://vacua.dev/specifications/intent-changesets/</link><pubDate>Mon, 20 Jul 2026 00:00:00 +0000</pubDate><guid>https://vacua.dev/specifications/intent-changesets/</guid><description>&lt;h2 id="abstract"&gt;Abstract&lt;/h2&gt;
&lt;p&gt;The Intent Changesets Specification defines a small, structured artifact
for one independently understandable release decision. A changeset explains
what consumers will experience, why the change exists, which release units it
affects, and what release impact each unit should receive.&lt;/p&gt;
&lt;p&gt;Intent Changesets sits between commit history and release history:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://vacua.dev/specifications/intent-commits/"&gt;Intent Commits Specification&lt;/a&gt; messages record the intent of atomic Git
changes and link to a changeset with a &lt;code&gt;Changeset&lt;/code&gt; trailer;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://vacua.dev/specifications/intent-pull-requests/"&gt;Intent Pull Requests&lt;/a&gt; records may link reviewed integration
context to one or more changesets;&lt;/li&gt;
&lt;li&gt;an Intent Changesets record combines one or more commits or pull requests
into one releasable decision; and&lt;/li&gt;
&lt;li&gt;&lt;a href="https://vacua.dev/specifications/intent-changelog/"&gt;Intent Changelog Specification&lt;/a&gt; entries consume that decision into the
canonical release ledger.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A changeset is not a release, changelog, pull request template, version-bump
command, or mandatory file for every commit. Projects define which changes are
noteworthy enough to require one.&lt;/p&gt;</description></item><item><title>Intent Commits</title><link>https://vacua.dev/specifications/intent-commits/</link><pubDate>Mon, 20 Jul 2026 00:00:00 +0000</pubDate><guid>https://vacua.dev/specifications/intent-commits/</guid><description>&lt;h2 id="abstract"&gt;Abstract&lt;/h2&gt;
&lt;p&gt;The Intent Commits Specification is a lightweight protocol for commit
messages. It preserves the familiar &lt;code&gt;type(scope): description&lt;/code&gt; header while
separating four concerns that are often conflated:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;the kind of work performed;&lt;/li&gt;
&lt;li&gt;the area affected;&lt;/li&gt;
&lt;li&gt;the release impact requested; and&lt;/li&gt;
&lt;li&gt;the information consumers need to adopt or reverse the change.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Intent Commits uses Git-compatible trailers for machine-readable metadata. A commit type
classifies the work; it does not determine a version increment by itself.&lt;/p&gt;</description></item><item><title>Project Profile</title><link>https://vacua.dev/specifications/project-profile/</link><pubDate>Mon, 20 Jul 2026 00:00:00 +0000</pubDate><guid>https://vacua.dev/specifications/project-profile/</guid><description>&lt;h2 id="abstract"&gt;Abstract&lt;/h2&gt;
&lt;p&gt;The Project Profile Specification defines one versioned YAML document that
connects Intent Commits, Intent Pull Requests, Intent Changesets, Intent
Changelog, and Release Manifest records to a repository&amp;rsquo;s actual boundaries
and policies.&lt;/p&gt;
&lt;p&gt;The other specifications deliberately avoid prescribing one universal set of
types, scopes, release units, audiences, channels, or versioning rules. Without
a portable profile, however, two implementations cannot resolve those
project-defined values in the same way. This specification makes that shared
policy explicit.&lt;/p&gt;</description></item><item><title>Release Manifest</title><link>https://vacua.dev/specifications/release-manifest/</link><pubDate>Mon, 20 Jul 2026 00:00:00 +0000</pubDate><guid>https://vacua.dev/specifications/release-manifest/</guid><description>&lt;h2 id="abstract"&gt;Abstract&lt;/h2&gt;
&lt;p&gt;The Release Manifest Specification defines an immutable evidence record for one
published release of one release stream. It answers a question that commits,
changesets, and changelogs deliberately do not: &lt;strong&gt;what exactly shipped?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A manifest binds the release identity to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;the source repository, commit, and tag;&lt;/li&gt;
&lt;li&gt;the published Intent Changelog record and its digest;&lt;/li&gt;
&lt;li&gt;the release decisions represented by that record;&lt;/li&gt;
&lt;li&gt;every declared artifact and its cryptographic digest; and&lt;/li&gt;
&lt;li&gt;optional supply-chain evidence such as an SBOM or build attestation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A manifest is not a deployment plan, package-manager command, mutable release
dashboard, or substitute for a changelog. It records a completed publication
boundary in a form people, CI, and downstream automation can verify.&lt;/p&gt;</description></item></channel></rss>