Skip to content

Add site validation framework#888

Draft
jpurnell wants to merge 1 commit into
twostraws:mainfrom
jpurnell:feature/validation-foundations
Draft

Add site validation framework#888
jpurnell wants to merge 1 commit into
twostraws:mainfrom
jpurnell:feature/validation-foundations

Conversation

@jpurnell
Copy link
Copy Markdown
Contributor

@jpurnell jpurnell commented May 21, 2026

Summary

  • Adds ValidationSeverity (info/warning/error) with Comparable
  • Adds ValidationRule for individual findings and ValidationReport with terminal and Xcode-compatible formatting
  • Adds ValidationMode (disabled/warn/strict) for controlling build behavior
  • Adds SiteValidator protocol operating on [Article] arrays
  • Adds RequiredMetadataValidator for checking front matter fields
  • 17 new tests covering severity ordering, report filtering, formatting, and validator behavior

Design

Purely additive — new Sources/Ignite/Validation/ directory. Validators take [Article] as input rather than requiring PublishingContext, making them immediately testable. Pipeline integration and additional validators (BrokenLink, MissingImage) are planned as follow-ups.

Test plan

  • All 17 new tests pass
  • Full test suite passes (1353 tests)
  • swift build clean with no warnings

…equiredMetadataValidator

Introduces a build-time validation framework for content checking:

- ValidationSeverity (info/warning/error) with Comparable
- ValidationRule for individual findings
- ValidationReport with terminal and Xcode-compatible formatting
- ValidationMode (disabled/warn/strict)
- SiteValidator protocol operating on [Article] arrays
- RequiredMetadataValidator for checking front matter fields

Purely additive. Pipeline integration and additional validators
(BrokenLink, MissingImage) are planned as follow-ups.
@jpurnell jpurnell marked this pull request as draft May 21, 2026 22:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant