Implement semantic validation and conflict accumulation #11

Closed
opened 2026-06-06 14:02:49 +02:00 by yorunikakeru · 0 comments
Owner

Parent: #6

Goal

Implement pure semantic validation from UnvalidatedConfiguration to validated IR.

Tasks

  • Define structured ValidationError values with location and domain context.
  • Accumulate all independent errors instead of failing at the first one.
  • Validate names, port ranges, polling intervals, empty candidate lists, and duplicates.
  • Add domain-local conflict rules.
  • Add global checks for incompatible intentions across areas and domains.
  • Keep environment availability and current system state out of validation.

Acceptance criteria

  • validate :: UnvalidatedConfiguration -> Either [ValidationError] IR is pure.
  • Multiple independent errors are returned together in deterministic order.
  • Conflicting enable/disable intentions under overlapping unconditional scope are rejected.
  • Resource unavailability at application time is not treated as a validation error.
Parent: #6 ## Goal Implement pure semantic validation from `UnvalidatedConfiguration` to validated `IR`. ## Tasks - Define structured `ValidationError` values with location and domain context. - Accumulate all independent errors instead of failing at the first one. - Validate names, port ranges, polling intervals, empty candidate lists, and duplicates. - Add domain-local conflict rules. - Add global checks for incompatible intentions across areas and domains. - Keep environment availability and current system state out of validation. ## Acceptance criteria - `validate :: UnvalidatedConfiguration -> Either [ValidationError] IR` is pure. - Multiple independent errors are returned together in deterministic order. - Conflicting enable/disable intentions under overlapping unconditional scope are rejected. - Resource unavailability at application time is not treated as a validation error.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
FrogOS/DSL#11
No description provided.