Skip to content

v1.2.1 — validate the normalized document, not just the frontmatter

Choose a tag to compare

@JanneL JanneL released this 30 Aug 08:03
· 8 commits to main since this release

IntentSpec defines two markdown serializations, and this Action only read one of them.

A conforming sectioned intent.md, the shape real authoring templates produce, was rejected for missing fields it visibly contained: the validator read YAML frontmatter and validated that object, so lists living under ## headings were invisible to it. SPEC.md section 1 is explicit that a validator reading only frontmatter is the defective party, and this was that validator.

What changed

src/normalize.ts implements SPEC.md section 2, vendored from the reference implementation in pathmodeio/intentspec:

  • frontmatter wins for scalars, a non-empty section wins for lists
  • fenced code blocks and HTML comments are stripped before structure is read, so template guidance never becomes content
  • ## Verification flattens to an array of strings, because the schema defines no object form
  • malformed frontmatter fails the whole document rather than silently falling back to the body

Behavioral parity is held by running the standards repo's conformance fixtures here, including one built from the real pathmode-intent OpenSpec template.

Compatibility

Frontmatter-only documents validate exactly as before; the v1.0 and v1.2 fixtures still pass unchanged. This release only adds the documents that should always have been accepted.

Also removes a debug log that printed the environment on every run.

Usage is unchanged: uses: pathmodeio/validate-intentspec-action@v1