data2dsl

Ticket 098: Reduce CC in doctor/comparator/generator/subactor/discovery

Goal and scope

Reduce cyclomatic complexity to <=15 (regix cc_max) in:

Approach: threshold tables (_CONFLICT_THRESHOLDS), field/section check tables, payload coercion + per-field validators, a _GraphBuilder context with module-level _walk/_walk_dict_entry/_walk_list_entry, and _filter_by_query/_severity_summary extraction. Public signatures and output shapes are unchanged.

data2dsl_batch.py, data2dsl_cli.py, data2dsl_skill.py, data2dsl_remediation.py and data2dsl_contract_v0/validate.py violations remain for a follow-up slice (outside allowedPaths).

Acceptance criteria

Changelog