Diagnostic Code Catalog

This page is a starter catalog of the currently implemented structured diagnostic codes. It is intended to grow as new workflows add diagnostics. Use it as the quickest rendered reference when you want to know which code families already exist and what they currently mean.

Diagnostic codes are intended to be stable and machine-readable. They are grouped below by namespace rather than by source file so the public conventions are easier to scan.

Catalog Status

This catalog is maintained manually. It should be updated whenever new public workflow diagnostics are added or when an existing code is renamed or retired. The implementation sources remain authoritative for the exact current set of emitted codes.

airfoil.surface_sampling.*

  • airfoil.surface_sampling.slope_singularity Warning advisory emitted by airfoil surface sampling workflows when dy/dx may be singular near the leading edge.

airfoil.support.*

  • airfoil.support.unsupported_type Error diagnostic emitted by validation workflows when a schema family is recognized but runtime construction support is not yet implemented.

airfoil.info.file.*

  • airfoil.info.file.detected_format Informational diagnostic emitted by file-backed validation when the workflow auto-detects a supported file format.

airfoil.validation.file.*

General file-source validation

  • airfoil.validation.file.path_required

  • airfoil.validation.file.format_invalid

  • airfoil.validation.file.path_not_found

  • airfoil.validation.file.path_not_file

  • airfoil.validation.file.read_failed

These codes cover invalid file-source configuration before the workflow can validate file contents.

Selig text validation

  • airfoil.validation.file.selig.title_required

  • airfoil.validation.file.selig.points_too_short

  • airfoil.validation.file.selig.coordinate_invalid

Lednicer text validation

  • airfoil.validation.file.lednicer.title_required

  • airfoil.validation.file.lednicer.point_count_required

  • airfoil.validation.file.lednicer.point_count_invalid

  • airfoil.validation.file.lednicer.point_count_mismatch

  • airfoil.validation.file.lednicer.coordinate_invalid

Structured file validation

  • airfoil.validation.file.structured.parse_failed

  • airfoil.validation.file.structured.mapping_required

  • airfoil.validation.file.structured.airfoils_not_allowed

  • airfoil.validation.file.structured.format_invalid

  • airfoil.validation.file.structured.format_mismatch

airfoil.validation.points.*

  • airfoil.validation.points.point_invalid

  • airfoil.validation.points.leading_edge_required

  • airfoil.validation.points.leading_edge_invalid

  • airfoil.validation.points.upper_not_allowed

  • airfoil.validation.points.lower_not_allowed

  • airfoil.validation.points.points_not_allowed

  • airfoil.validation.points.leading_edge_not_allowed

  • airfoil.validation.points.leading_edge_not_coincident

  • airfoil.validation.points.zero_chord_extent

  • airfoil.validation.points.format_invalid

These codes localize malformed point-defined airfoil payloads and layout-specific rule violations.

airfoil.validation.spline.*

  • airfoil.validation.spline.representation_invalid

  • airfoil.validation.spline.leading_edge_not_coincident

  • airfoil.validation.spline.zero_chord_extent

These codes cover invalid Bezier-backed spline surface definitions.

airfoil.validation.cst.*

  • airfoil.validation.cst.trailing_edge_thickness_invalid

airfoil.validation.naca4.*

  • airfoil.validation.naca4.designation_format

  • airfoil.validation.naca4.m_out_of_range

  • airfoil.validation.naca4.p_out_of_range

  • airfoil.validation.naca4.max_thickness_out_of_range

  • airfoil.validation.naca4.p_must_be_zero_for_zero_camber

  • airfoil.validation.naca4.p_required_for_camber

  • airfoil.validation.naca4.trailing_edge_invalid

  • airfoil.validation.naca4.leading_edge_radius_invalid

airfoil.validation.naca4_modified.*

  • airfoil.validation.naca4_modified.designation_length

  • airfoil.validation.naca4_modified.designation_format

  • airfoil.validation.naca4_modified.designation_digits

  • airfoil.validation.naca4_modified.trailing_edge_invalid

airfoil.validation.naca5.*

  • airfoil.validation.naca5.designation_format

  • airfoil.validation.naca5.reflex_digit_invalid

  • airfoil.validation.naca5.max_thickness_out_of_range

  • airfoil.validation.naca5.trailing_edge_invalid

  • airfoil.validation.naca5.leading_edge_radius_invalid

airfoil.validation.naca5_modified.*

  • airfoil.validation.naca5_modified.designation_length

  • airfoil.validation.naca5_modified.designation_format

  • airfoil.validation.naca5_modified.designation_digits

  • airfoil.validation.naca5_modified.reflex_digit_invalid

  • airfoil.validation.naca5_modified.trailing_edge_invalid

airfoil.validation.naca6.*

  • airfoil.validation.naca6.designation_format

  • airfoil.validation.naca6.thickness_digits_invalid

  • airfoil.validation.naca6.thickness_series_invalid

  • airfoil.validation.naca6.thickness_max_out_of_range

  • airfoil.validation.naca6.components_required

airfoil.validation.naca6a.*

  • airfoil.validation.naca6a.designation_format

  • airfoil.validation.naca6a.thickness_digits_invalid

  • airfoil.validation.naca6a.ideal_lift_coefficient_out_of_range

  • airfoil.validation.naca6a.thickness_series_invalid

  • airfoil.validation.naca6a.thickness_max_out_of_range

  • airfoil.validation.naca6a.components_required

airfoil.validation.naca16.*

  • airfoil.validation.naca16.designation_format

  • airfoil.validation.naca16.thickness_digits_invalid

  • airfoil.validation.naca16.max_thickness_out_of_range

airfoil.validation.parsec.*

  • airfoil.validation.parsec.location_invalid

  • airfoil.validation.parsec.location_x_out_of_range

  • airfoil.validation.parsec.upper_surface_y_invalid

  • airfoil.validation.parsec.lower_surface_y_invalid

  • airfoil.validation.parsec.leading_edge_radius_upper_invalid

  • airfoil.validation.parsec.leading_edge_radius_lower_invalid

  • airfoil.validation.parsec.trailing_edge_thickness_invalid

airfoil.validation.polygon.*

  • airfoil.validation.polygon.vertices_too_short

  • airfoil.validation.polygon.vertex_invalid

airfoil.validation.joukowski.*

  • airfoil.validation.joukowski.nu_invalid

  • airfoil.validation.joukowski.epsilon_invalid

Maintenance Notes

When you add a new diagnostic code:

  1. Add or update the emitting workflow tests.

  2. Add the new code to this catalog in the matching namespace section.

  3. Update Diagnostics Guide if the change introduces a new code family or a new convention.