Function: defineUnifiedRule()

August 8, 2026 ยท View on GitHub

@plures/praxis


@plures/praxis / index / defineUnifiedRule

Function: defineUnifiedRule()

defineUnifiedRule(rule): UnifiedRule

Defined in: src/unified/rules.ts:33

Define a rule that watches graph paths and auto-evaluates.

Parameters

rule

UnifiedRule

The unified rule descriptor with id, watch, description, and evaluate

Returns

UnifiedRule

The rule descriptor unchanged (identity function โ€” used for type inference)

Example

const sprintBehind = defineRule({
  id: 'sprint.behind',
  watch: ['sprint/current'],
  evaluate: (values) => {
    const sprint = values['sprint/current'];
    if (!sprint) return RuleResult.skip('No sprint');
    const pace = sprint.currentDay / sprint.totalDays;
    const work = sprint.completedHours / sprint.totalHours;
    if (work >= pace) return RuleResult.retract(['sprint.behind']);
    return RuleResult.emit([fact('sprint.behind', { pace, work })]);
  }
});