Description
On base, some healthy app traces have database child spans that end after their parent span (found while migrating acme-ai-platform data-store faults). Clip or schedule child spans within the parent’s duration.
Acceptance Criteria
- #1 No healthy trace has a child span ending after its parent
Definition of Done
- #1 just check (fmt-check, lint, gen-check, env-check, docs-check, test, race, hygiene, ui-check, compose-check, helm-test, lab-check, signal-fidelity)
- #2 just gen (only if a blueprint field, construct/workload config struct, or a skill under plugins/synthkit/skills/ changed)
- #3 just dump — inventory diffed against signals/
Implementation Notes
Historical evidence reconciliation: b7ca5bac; shipped300-requests-per-declaration and causal nesting regressions red then green, End-only payload comparison retained. This is finite-fixture proof, not exhaustive all-trace universality. Exact b3249d0b gate and later e029aa8e run20261025T121935Z-synthkit-bb72a72a passed. Conditional generation not applicable; decoded trace comparison is not a signals-inventory diff, so remaining boxes stay unchecked.