Keep function abstraction levels consistent
Functions that mix transport, persistence, validation, and domain logic are hard to change safely.
#Metadata
#Why it matters
Mixed abstraction creates hidden coupling and complicates testing and review.
#Remediation
Separate transport, validation, persistence, and domain logic into dedicated functions or services.
#Repository path
The generated metadata points to critiq-rules/libs/rules/catalog/rules/typescript/ts.quality.no-mixed-abstraction-level.rule.yaml.