Implement core IR document and closed domain sums #7

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

Parent: #6

Goal

Implement the typed IR model and module boundaries documented in README.

Tasks

  • Add IRVersion, document, profile, and service section types.
  • Add closed root Condition, Policy, and Action sums.
  • Add initial domain modules for process, service, power, and network nodes.
  • Use domain-specific newtypes for names, ports, intervals, thresholds, and other values where useful.
  • Keep validated IR construction internal.
  • Implement JSON serialization for intent.json Store (not for inter-layer communication).

Acceptance criteria

  • Root sums exhaustively enumerate supported domains.
  • Domain modules do not depend on DSL builder internals.
  • Public IR API cannot construct a value marked as validated.
  • Types cover the complete JSON example in README.
  • IR serializes to JSON only for generation Store; inter-layer transfer uses Haskell types directly.
  • Deserialization from intent.json produces a value accepted by Planner (rollback path works).
Parent: #6 ## Goal Implement the typed IR model and module boundaries documented in README. ## Tasks - Add IRVersion, document, profile, and service section types. - Add closed root Condition, Policy, and Action sums. - Add initial domain modules for process, service, power, and network nodes. - Use domain-specific newtypes for names, ports, intervals, thresholds, and other values where useful. - Keep validated IR construction internal. - Implement JSON serialization for intent.json Store (not for inter-layer communication). ## Acceptance criteria - Root sums exhaustively enumerate supported domains. - Domain modules do not depend on DSL builder internals. - Public IR API cannot construct a value marked as validated. - Types cover the complete JSON example in README. - IR serializes to JSON only for generation Store; inter-layer transfer uses Haskell types directly. - Deserialization from intent.json produces a value accepted by Planner (rollback path works).
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#7
No description provided.