Commit 6efce28
authored
fix(v2): references reference_kind 도입 — 'index↔count' QA 모순 해소 (#176)
binary_search '적어도 K개' 류에서 K가 collection 크기에 묶인 cardinality(개수)
인데 references 메커니즘이 위치 인덱스 prose('가리키는 1-indexed 번호')만 방출해,
narrative 의 '목표 개수(인덱스 아님)' 서술과 'index↔count' 모순 → QA ambiguity
reject 되던 결함(taskB-run1 fail_qa 실측)의 해소.
- IOFieldSpec.reference_kind: Literal["index","cardinality"] 추가 (default "index").
index=위치 번호(현행·graph s/t·질의 인덱스), cardinality=크기에 묶인 개수/수량.
- _render_field / render_constraints: cardinality 분기('개수/수량 … 위치 인덱스가
아니다'). index 경로 무변경 → 기존 graph io_contract byte-identical, 무회귀.
- 생성기(_is_reference/_serialize_reference) 무수정 → 두 kind 생성 입력 byte-identical
(범위·symbolic_max 동일, 의미 prose 만 분기).
- DB 스키마/migration 영향 0: reference_kind 는 internal_meta 미포함=비-persist,
input_format(Text)·constraints[].description(기존 JSON 키) 문자열만 변동.
- formalizer 가이드에 cardinality 판별 규율 추가. describe_io_field 에 kind 마킹.
- 테스트 5종(prose 분기·byte-identical·default·describe). 게이트 903 passed/
mypy --strict 100/ruff green.
측정: binary_search P1 N=3 에서 cardinality references 설계 0회 발생(설계 변동성,
taskB 1/3→이번 0/3)이라 해당 실패 클래스 live 미재현 — 결정론적 렌더링은 단위
입증, LLM 의 cardinality emit 은 가이드+back-route QA 가 처리. 별개 실패 모드
(output_format↔description '누적↔단위' 용어 드리프트)는 후속 후보.1 parent 8034eab commit 6efce28
4 files changed
Lines changed: 112 additions & 7 deletions
File tree
- ipe
- v1/schema
- v2
- generation
- nodes
- tests/v2
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
160 | 160 | | |
161 | 161 | | |
162 | 162 | | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
163 | 176 | | |
164 | 177 | | |
165 | 178 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
182 | 182 | | |
183 | 183 | | |
184 | 184 | | |
185 | | - | |
| 185 | + | |
186 | 186 | | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
187 | 193 | | |
188 | 194 | | |
189 | 195 | | |
| |||
231 | 237 | | |
232 | 238 | | |
233 | 239 | | |
234 | | - | |
| 240 | + | |
| 241 | + | |
235 | 242 | | |
236 | 243 | | |
237 | 244 | | |
| |||
284 | 291 | | |
285 | 292 | | |
286 | 293 | | |
287 | | - | |
288 | 294 | | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
289 | 307 | | |
290 | 308 | | |
291 | 309 | | |
292 | 310 | | |
293 | 311 | | |
294 | 312 | | |
295 | | - | |
296 | | - | |
297 | | - | |
298 | | - | |
| 313 | + | |
299 | 314 | | |
300 | 315 | | |
301 | 316 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
54 | 62 | | |
55 | 63 | | |
56 | 64 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
637 | 637 | | |
638 | 638 | | |
639 | 639 | | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
| 664 | + | |
| 665 | + | |
| 666 | + | |
| 667 | + | |
| 668 | + | |
| 669 | + | |
| 670 | + | |
| 671 | + | |
| 672 | + | |
| 673 | + | |
| 674 | + | |
| 675 | + | |
| 676 | + | |
| 677 | + | |
| 678 | + | |
| 679 | + | |
| 680 | + | |
| 681 | + | |
| 682 | + | |
| 683 | + | |
| 684 | + | |
| 685 | + | |
| 686 | + | |
| 687 | + | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
640 | 709 | | |
641 | 710 | | |
642 | 711 | | |
| |||
0 commit comments