Pure core: функция plan :: IRDocument -> SystemState -> Either PlanError Plan #5

Closed
opened 2026-06-15 13:21:57 +02:00 by yorunikakeru · 0 comments
Owner

Реализовать основную логику планировщика — чистую функцию без IO.

Сигнатура

plan :: IRDocument -> SystemState -> Either PlanError Plan

Логика

  1. Для каждого профиля в IRDocument проверить Condition против SystemState
  2. Если Condition истинен — собрать Actions в шаги плана
  3. Для каждого действия определить обратную операцию (Undo)
  4. Вернуть Plan { steps } или Left PlanError при конфликтах

Invariant

  • Функция stateless: тот же (IR, SystemState) всегда даёт тот же Plan
  • Undo определён для каждого Action (частичный план невозможен)

Модуль

Planner.Core в src/

Acceptance

  • Unit тесты: пустой IR → пустой план, активный профиль → шаги, конфликтующие действия → Left
  • Нет IO в типовой сигнатуре

Само получение истинного/неистинного условия не требуется и не является частью задания

Реализовать основную логику планировщика — чистую функцию без IO. ## Сигнатура ```haskell plan :: IRDocument -> SystemState -> Either PlanError Plan ``` ## Логика 1. Для каждого профиля в IRDocument проверить Condition против SystemState 2. Если Condition истинен — собрать Actions в шаги плана 3. Для каждого действия определить обратную операцию (Undo) 4. Вернуть `Plan { steps }` или `Left PlanError` при конфликтах ## Invariant - Функция stateless: тот же (IR, SystemState) всегда даёт тот же Plan - Undo определён для каждого Action (частичный план невозможен) ## Модуль `Planner.Core` в `src/` ## Acceptance - Unit тесты: пустой IR → пустой план, активный профиль → шаги, конфликтующие действия → Left - Нет IO в типовой сигнатуре Само `получение` истинного/неистинного условия не требуется и не является частью задания
Sign in to join this conversation.
No labels
core
ffi
haskell
rust
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/Planner#5
No description provided.