V0.34.0
Name:v0.34.0Status:planning

v0.34.0 — Content validation

Every rune schema declares required attributes, typed attributes and matches enums. Markdoc can check all of them, and has been able to the entire time. Nothing in the build ever asked it to. This milestone connects the validator that exists to the content it was written for.

Milestone burndown: 11 open work items remaining; peak 11, started Sep 100369Sep 10Sep 13
Open work items Ideal burndown
Progress 0/6 work items

Work Items

Ready 6
WORK-554 claude/doc-drift-guarding-ideas-9e3ua8
Establish what an error-severity pipeline diagnostic actually does
Two separate proposals now depend on the same unverified assumption: that ctx.error(…) is a loud failure. Nobody has established what it does.packages/content/src/site.ts:301 gives preprocess hooks info / warn / error, all three pushing onto one preprocessWarnings array that "callers funnel through the standard pipeline-warnings surface". Whether an error-severity entry then fails a build, fails a test, prints to a console nobody reads, or is silently collected is not written down anywhere, and both dependent designs assume the strongest reading.
high simple
0/6 criteria
WORK-555 claude/doc-drift-guarding-ideas-9e3ua8
Remove the error rune
packages/runes/src/tags/error.ts is a leftover from refrakt's predecessor. It emits a bare <tr> of four <td>s from a Markdoc ValidationError, has never had a producer, and cannot be written by an author without crashing the build.Delete it.
medium trivial
0/9 criteria
WORK-556 claude/doc-drift-guarding-ideas-9e3ua8
Run Markdoc.validate in the content pipeline and route findings to PipelineWarning
SPEC-132 phase 1. Call the validator that already exists, at the point the tag set is already assembled, and turn its findings into the diagnostics the pipeline already carries.This is the whole mechanism. Everything after it is choosing which error ids to switch on.
high moderate
0/10 criteria
WORK-557 claude/doc-drift-guarding-ideas-9e3ua8
Measure the validation blast radius across the dogfooded sites
SPEC-132 phase 2's gate. Before the attribute error ids are switched on, count what they would report across site/ and plan-site/ — and record the number, so the decision to proceed is made on evidence rather than optimism.
high simple
0/6 criteria
WORK-558 claude/doc-drift-guarding-ideas-9e3ua8
Enable the attribute error ids and correct the over-escalated custom validators
SPEC-132 phase 2. Add attribute-value-invalid, attribute-missing-required and attribute-type-invalid to WORK-556's allow-list, fix whatever WORK-557 found, and correct a severity inconsistency the spec surfaced.This is the half that makes rune schemas mean something: required and matches are declared on ~175 tags and enforced on none of them.
medium moderate
0/7 criteria
WORK-559 claude/doc-drift-guarding-ideas-9e3ua8
Make validation disableable per site and per error id
SPEC-132 D5. Users have content we cannot anticipate, and a framework that nags them about a diagnostic they disagree with — or worse, refuses to build — is one they turn off wholesale. Give them a narrow switch so they do not reach for a wide one.
medium simple
0/6 criteria