Function: defineUnifiedConstraint()

August 8, 2026 ยท View on GitHub

@plures/praxis


@plures/praxis / index / defineUnifiedConstraint

Function: defineUnifiedConstraint()

defineUnifiedConstraint(constraint): UnifiedConstraint

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

Define a constraint that validates mutations before they're applied.

Parameters

constraint

UnifiedConstraint

The constraint descriptor with id, description, watch, and validate

Returns

UnifiedConstraint

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

Example

const noCloseWithoutHours = defineConstraint({
  id: 'no-close-without-hours',
  description: 'Cannot close a work item with 0 completed hours',
  watch: ['sprint/items'],
  validate: (values) => {
    const items = values['sprint/items'] ?? [];
    const bad = items.find(i => i.state === 'Closed' && !i.completedWork);
    if (bad) return `Item #${bad.id} cannot be closed with 0 hours`;
    return true;
  }
});