edilint / rule referenceSource & releases

EDI and healthcare flat files

Understand the finding.
Fix the source.

edilint checks X12, HL7v2, EDIFACT, delimited, and fixed-width files for envelope defects and file hygiene problems. Each rule below explains what it catches, how to repair it, and when to adjust the check.

go install github.com/crb2nu/edilint/cmd/edilint@latest
edilint your-file.x12

The CLI runs locally with no network calls or telemetry. A clean file produces no output. This reference describes the current main branch; older releases may contain fewer rules. See the scope and limits.

Rule catalog 48 rules

Find the EL#### identifier from your diagnostic. Use your browser's find command to search by identifier, name, or format.

RuleDefaultApplies to
EL1001
charset.bom
errorall (warning for delimited)
EL1002
charset.invalid-utf8
errorall
EL1003
charset.nonprintable
errorall
EL1004
charset.zero-width
errorall
EL1005
charset.homoglyph
errorall
EL1006
charset.nonascii
warningall
EL1007
charset.x12-basic
warningx12 (requires --charset basic)
EL1008
charset.x12-extended
errorx12
EL2001
terminator.mixed
errorhl7v2, delimited, fixed, text
EL2002
terminator.missing-final
warninghl7v2, delimited, fixed, text
EL2003
terminator.x12-segment
errorx12
EL2004
terminator.x12-padding
warningx12
EL2005
terminator.x12-separator
errorx12
EL2006
terminator.edifact-segment
erroredifact
EL3001
envelope.isa-length
errorx12
EL3002
envelope.nesting
errorx12
EL3003
envelope.unclosed
errorx12
EL3004
envelope.unopened
errorx12
EL3005
envelope.control-number
errorx12
EL3006
envelope.segment-count
errorx12
EL3007
envelope.group-count
errorx12
EL3008
envelope.interchange-count
errorx12
EL3009
envelope.duplicate-control-number
errorx12
EL3010
envelope.datetime
errorx12
EL3011
envelope.missing-control-id
errorx12
EL3012
envelope.trailing-data
errorx12
EL4001
counts.mismatch
errorall (requires --count-rule)
EL4002
counts.unparsable
errorall (requires --count-rule)
EL4003
counts.missing-field
errorall (requires --count-rule)
EL4004
counts.no-declaring-record
warningall (requires --count-rule)
EL4101
fields.count-outlier
errordelimited, hl7v2 (warning)
EL5001
layout.length
errorfixed (requires --layout)
EL5002
layout.padding
warningfixed (requires --layout)
EL6001
hl7batch.unclosed
errorhl7v2
EL6002
hl7batch.unopened
errorhl7v2
EL6003
hl7batch.message-count
errorhl7v2
EL6004
hl7batch.batch-count
errorhl7v2
EL6005
hl7batch.separator
errorhl7v2
EL6006
hl7batch.stray-message
warninghl7v2
EL7001
edifact.unclosed
erroredifact
EL7002
edifact.unopened
erroredifact
EL7003
edifact.segment-count
erroredifact
EL7004
edifact.group-count
erroredifact
EL7005
edifact.interchange-count
erroredifact
EL7006
edifact.control-reference
erroredifact
EL7007
edifact.service-string
erroredifact
EL7008
edifact.nesting
erroredifact
EL7009
edifact.trailing-data
erroredifact

Adopt checks gradually

Use --disable EL3006 for a rule that does not fit your feed. Use --write-baseline and --baseline to accept existing findings while catching new ones. Per-rule pages explain the tradeoffs; the configuration guide covers severity overrides and file settings.