# ADR-0194 — Labeled-container subject entity shape **Status:** Proposed (implemented in this PR). **Extends:** [ADR-0136.S.4](./ADR-0136.S.4-novel-initial-form.md) (sibling-pattern localisation), [ADR-0123a](./ADR-0123a-inference-shape-synonym.md) (entity slot). **Composes with:** [ADR-0193](./ADR-0193-aggregate-existential-question-frame.md) (aggregate question frame). **Substrate: 0 real-corpus metric flip by design; the value is the entity-shape generalisation + proven composition with the aggregate question.** > **One line.** GSM8K labels containers/regions with a trailing single-letter > or short-numeric label ("Jar A has 28 marbles", "Section G has 10 cars", > "District 2 has 19 voters"). The initial-possession entity slot > (`_ENTITY = (?:[A-Z]\w+|[Tt]he\s+\w+)`) captures only "Jar" and then expects > the possession verb, so the label breaks the match and the statement parses > to nothing. This adds a separate sibling pattern that REQUIRES a label. --- ## 1. The gap Both reader paths reject the labeled subject: - the candidate parser's `_INITIAL_HAS_RE` (`extract_initial_candidates` → 0 candidates); - the recognizer's discrete_count anchor (proper-noun single-token subject → 0 anchors). "Jamie has 28 marbles" parses (1 candidate); "Jar A has 28 marbles" does not — purely because of the trailing label. ## 2. Decision Add `_INITIAL_HAS_LABELED_RE` in `generate/math_candidate_parser.py`, consumed by a dedicated `_init_has_labeled_candidates` helper wired into `extract_initial_candidates`: ``` ^