* feat: implement kernel substrate tranche 1 base-layer foundations
* fix(kernel): ground scalar spans and tighten morphology labels
Add extract_scalar_candidates() with exact source spans and problem_text
provenance while keeping canonicalize_scalar() as the detached pack helper.
Morphology labels now emit missing_* only when substrate frame/unit lookups
actually fail, not on mere trigger-surface presence.