Field note /

A missing draft flag should stop the build.

Why Kingsbury’s publishing system treats uncertainty as unpublished, even when that makes authoring less convenient.

The dangerous default in a publishing system is not draft: true. It is guessing.

A missing field can be interpreted as false. That is convenient until an unfinished position, a client reference awaiting permission or an unsupported proof record enters the public build because nobody stated its status.

Kingsbury’s content boundary requires every record to say draft: true or draft: false. Omission is a build error. Publication must be an affirmative act.

We tested the refusal, not only the happy path

The first validation suite writes five deliberately bad records into the content system:

  1. a Position with no publication state;
  2. a Position with an empty title;
  3. a Field Note with no author;
  4. an Open Work record whose file number disagrees with its public identity;
  5. a Proof record with no evidence.

Each record must stop the check or production build with a schema diagnostic. The fixture is then removed. A separate publishing test adds valid temporary records across all four territories and proves that their pages, indexes, canonical metadata, RSS and sitemaps are generated before cleaning them away.

The implementation is recorded in the repository’s content-boundary test and publishing-seam test.

The useful friction

This does not prove that an article is good. A schema cannot judge whether an argument is original, a source is strong or a disclosure is fair. It proves something narrower and still valuable: records missing the minimum facts Kingsbury has chosen to require cannot quietly ship.

The friction is intentional:

  • a human author must be named;
  • publication state must be explicit;
  • public tool identity must remain consistent across its record, files and URL;
  • Proof cannot exist without at least one stated item of evidence;
  • draft and orphan tools stay out of discovery surfaces.

The resulting public surfaces, including the RSS feed and sitemap index, are generated from the same validated records. There is no second list to forget to update or accidentally expose.

The observation

Automation deserves trust when its refusal behaviour is as deliberate as its success path.

For Kingsbury, “agentic publishing” cannot mean that an agent infers whether something is ready. Agents can research, draft, test and prepare a release. The final state remains explicit, attributable and able to fail closed.

The build is not the editor. It is the boundary that prevents editorial uncertainty becoming a deployment accident.