- compose: replace fragile exclusion list (_INVALID_PARENT_TAB_TYPES) with
an allowlist (_VALID_PARENT_TAB_TYPES = {listTabs, radioGroupTabs, checkboxTabs}).
Previous list missed textTabs/numberTabs/dateTabs/companyTabs/stampTabs and had
a wrong name (emailTabs vs emailAddressTabs), allowing invalid conditionalParentLabel
references to pass through to the API and cause CONDITIONALTAB_HAS_INVALID_PARENT 400s.
- field-mapping.md: update invalid parent tab description to state the real DocuSign
rule (only list/radio/checkbox are valid parents) and regenerate PDF.
- docs/CONDITIONAL-LOGIC-DESIGN.md: new design doc covering all five conditional logic
gaps, the DocuSign flags technique and its real limits, solvable vs. fundamental gaps,
and proposed Phases 24-27 (NOT_EQUALS expansion, ANY fan-out, richer guidance, Maestro flag).
137/137 tests passing.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>