Skip to main content

Rule Catalog

Logic Guard ships with 143 baseline rules across twelve sections. Every rule has a stable identifier, a default severity (Critical, Warning, or Info), and a title describing what it detects. Every rule can be enabled, disabled, or reclassified per project, see Customization.

Severity guide:

  • Critical: the artifact is broken or unsafe. It will fail, behave incorrectly, or expose a security or integrity risk.
  • Warning: a real quality or maintainability problem that should be addressed.
  • Info: a convention or hygiene observation.

Business Processes (BP)

RuleSeverityTitle
BP-001CriticalNo stages
BP-002CriticalNo start stage
BP-003CriticalStart stage not in stages array
BP-004CriticalCycle, no reachable terminal stage
BP-004bCriticalBroken transition reference
BP-005CriticalUnreachable stage
BP-006WarningNon-terminal stage with no outgoing transitions
BP-008WarningStage has no completion criteria
BP-009WarningStage has no due date
BP-010WarningNo process-level due date
BP-011WarningNo process owner
BP-012WarningStage does nothing (empty onActivate and onComplete)
BP-013WarningTransition with no guard
BP-014WarningAll transitions unconditional
BP-015WarningFlow call with empty object name
BP-016WarningNo branching in process
BP-017InfoGeneric stage unique names
BP-018InfoNo process entity
BP-019WarningNo published or active version
BP-020InfoStale draft accumulation (5 or more drafts)
BP-021CriticalSelf-loop transition
BP-022CriticalUnconditional backward transition
BP-023WarningNo rejection or cancellation terminal
BP-024WarningImplicit merge (convergence without join)
BP-025WarningHardcoded SLA days
BP-026InfoLarge process (more than 10 stages)
BP-027WarningDuplicate transition conditions from same source

Workflows / Logic Flows (WF)

RuleSeverityTitle
WF-001CriticalSelf-call (infinite recursion)
WF-002CriticalEmpty flow
WF-003CriticalDead output, never set by SetOutput
WF-004CriticalRequired input ignored
WF-005CriticalDead Condition branch
WF-006WarningCallFlow result unused
WF-007WarningUnused variable
WF-008WarningDead fetcher
WF-009WarningUnbounded Single fetch
WF-010WarningTrivially constant Condition
WF-011WarningVariable overwritten before read
WF-012WarningSaveEntity no-op
WF-013WarningSilent error swallowing
WF-014WarningHardcoded business threshold
WF-015WarningSequential with one child
WF-016WarningIterator with empty body
WF-017InfoSingle-step flow
WF-018InfoGeneric step names
WF-019InfoNon-verb-first name
WF-020InfoNo description
WF-021InfoNo columnSet on fetcher
WF-022WarningDeep condition nesting
WF-023WarningLarge flow
WF-024WarningCondition missing else branch
WF-025InfoPure wrapper flow

Business Rules / Logic Blocks (BR)

RuleSeverityTitle
BR-001CriticalRequired input ignored in condition
BR-002CriticalTrivially constant condition
BR-003WarningRedundant condition branch
BR-004WarningNull check on required input
BR-005WarningDead fetcher (validation block)
BR-006WarningUnbounded Single fetch
BR-007WarningFull-table scan
BR-008WarningCount threshold not in config
BR-009CriticalDeclared output never set
BR-010CriticalRequired input ignored (action block)
BR-011CriticalSaveEntity no-op
BR-012WarningUnused variable
BR-013WarningVariable overwritten before read
BR-014WarningCallFlow or RunLogicBlock result unused
BR-015WarningSilent error swallowing
BR-016WarningDead fetcher (action block)
BR-017WarningUnbounded Single fetch (action block)
BR-018InfoAll inputs optional
BR-019InfoNon-Check-prefixed name
BR-020InfoNo description
BR-021WarningDeep condition nesting
BR-022WarningLarge block (more than 20 steps)

Integrations / Service Connections (IN)

RuleSeverityTitle
IN-001CriticalNo OpenAPI spec
IN-002CriticalNo server URL
IN-003WarningInsecure HTTP on external endpoint
IN-004WarningNo paths or operations defined
IN-005CriticalNo authentication on external endpoint
IN-006WarningSecurity schemes declared but never applied
IN-007WarningOperation explicitly unauthenticated
IN-008WarningOperation has no responses
IN-009WarningNo required parameters on operation
IN-010InfoNo description
IN-011InfoPlaceholder version

Configurations (CF)

RuleSeverityTitle
CF-001CriticalNo value
CF-002WarningBoolean type but invalid value
CF-003WarningInteger type but non-numeric value
CF-004WarningSensitive value as plain text
CF-005WarningName equals value
CF-006InfoNo description
CF-007InfoGeneric name
CF-008InfoInteger value is 0

Event Handlers (EH)

RuleSeverityTitle
EH-001CriticalNo flow assigned
EH-002CriticalNo event assigned
EH-003WarningSuspicious Event property binding
EH-004WarningMissing input bindings for flow inputs
EH-005WarningSynchronous handler
EH-006WarningMismatched binding
EH-007InfoNo description
EH-008InfoGeneric name

Schedules (SJ)

RuleSeverityTitle
SJ-001CriticalNo flow to execute
SJ-002CriticalInvalid interval
SJ-003WarningSchedule is inactive
SJ-004WarningVery high frequency (hourly or less)
SJ-005WarningNo start date
SJ-006WarningName identical to flow name
SJ-007InfoNo description
SJ-008InfoGeneric name

Localization (LR)

RuleSeverityTitle
LR-001WarningNo value
LR-002WarningMissing English (1033)
LR-003WarningMissing Arabic (1025)
LR-004WarningEmpty translation string
LR-005WarningPlaceholder mismatch between locales
LR-006InfoIdentical translations across locales
LR-007InfoGeneric key name

Recipes (RC)

RuleSeverityTitle
RC-001WarningRecipe is disabled
RC-002WarningAll hooks empty
RC-003WarningEmpty object name in hook
RC-004WarningDelete hook reads entity fields
RC-005WarningUpdate binding references non-tracked field
RC-006WarningUpdate hook with no guard
RC-007InfoNo entity bound

Events (EV)

RuleSeverityTitle
EV-001WarningNo event properties defined
EV-002WarningProperty has no type
EV-003InfoNo description

Entity Fields (EF)

Validated in code against live Dataverse metadata.

RuleSeverityTitle
EF-001CriticalStale field reference, field no longer exists
EF-002WarningDeleted entity referenced
EF-003InfoVirtual lookup text field used

Cross-Artifact (CA)

Relationships that span multiple artifacts, evaluated after every specialist has run.

RuleSeverityTitle
CA-001CriticalMutual recursion between flows
CA-002CriticalSchedule references non-existent flow
CA-003CriticalRecipe references non-existent flow
CA-004WarningCallFlow references non-existent flow
CA-005WarningConfigurationValue references missing config
CA-006WarningMultiple recipes on same entity
CA-007WarningActive schedule references missing flow
CA-008WarningRecipe update hook with no guard
CA-009CriticalLocalized resource key used but not defined
CA-010InfoLocalized resource defined but never used
CA-011WarningBusiness process has no published version
CA-012WarningHigh fan-in flow with no description
CA-013CriticalConfiguration key used but not defined
CA-014InfoConfiguration defined but never used