Severity: P2 · Batch: B7 (children unification)
Location
src/utils/strings.js:24-32 + src/utils/children.js:25-37; divergence vs src/hooks/useChildren.js:107-118
Root cause
box/boxes markers collide (pluralize('boxes') → boxeses; addPluralizedChild silently no-ops when the plural key holds a non-array); single-child extraction creates no plural key at all in component props, while useChildren always creates both — the two children systems disagree on shape.
Proposed fix
Part of children unification (B7): one implementation with defined singular/plural shape; guard collisions.
Verification recipe
Spec: component with children markers box and boxes; extract props-children; document which markers are dropped/miskeyed. Also: single child via props → assert no plural key, vs useChildren → both keys (shape divergence).
Severity: P2 · Batch: B7 (children unification)
Location
src/utils/strings.js:24-32+src/utils/children.js:25-37; divergence vssrc/hooks/useChildren.js:107-118Root cause
box/boxesmarkers collide (pluralize('boxes')→boxeses;addPluralizedChildsilently no-ops when the plural key holds a non-array); single-child extraction creates no plural key at all in component props, whileuseChildrenalways creates both — the two children systems disagree on shape.Proposed fix
Part of children unification (B7): one implementation with defined singular/plural shape; guard collisions.
Verification recipe
Spec: component with children markers
boxandboxes; extract props-children; document which markers are dropped/miskeyed. Also: single child via props → assert no plural key, vsuseChildren→ both keys (shape divergence).