feat(v2): authoring 정합성 수선 — P1 출하율 1/9→6/9 + 단일 IR RFC#169
Merged
Conversation
생성 노드들이 같은 사실을 독립 재진술해 경계에서 모순(QA reject)이 나던 것을, 사실을 io_schema 에서 코드로 투영해 구조적으로 제거. ① 입력생성 fix (references/cols): - IOFieldSpec.references — 정점/원소 참조 스칼라를 참조 대상 collection 의 실제 생성 크기 [1,V] 로 2-pass 바인딩(value_range·tier 무시). s,t 가 V 와 무관하게 [1,2](trivial)·V 초과(범위밖 RTE)로 생성되던 결함 해소. - IOFieldSpec.cols_range — int_matrix 열 수 고정(행 수=size_range 분리). 행별 속성 수가 흔들려 정해 IndexError 나던 sort 계열 해소. ② 정합성 fix (constraints 코드파생 + self-loop 단일진실): - render_constraints(io_schema) — constraints 코드 파생(LLM 저작 폐기). graph V 를 E 로 오라벨/V 누락/[1,2] 리터럴 하던 것 차단. - 샘플·그래프 empty bias 가 size_range.min 존중(V≥2 스키마에 V=1 입력 금지). - self-loop 를 serializer 진실에 단일 정렬: formalizer(invariant 정의 금지)+ narrative(서술 금지)+generator_designer(self_loop 카테고리 금지). 실측: P1 출하율 1/9(11%) → input-fix 4/9 → consistency 6/9(67%). seed별 dijkstra 0→2/3 · sort 0→3/3 · bfs 1/3. fail_synthesis 6→2. 게이트 779 passed(+16) / mypy 92 strict / ruff green.
각 노드가 같은 사실을 독립 재진술해 경계 모순이 끝없이 나오던 구조 문제의 근본 설계. 단일 ProblemIR + 순수 코드 투영 + 검증된 LLM 슬롯 2개(narrative· golden), spec_bridge·generator_designer 는 공짜 투영으로 강등, IR validator 로 P2 ill-posed 조기 기각. 사실 21종 인벤토리·단일소스 표·enriched IR 스키마· 6단계 마이그레이션·F8(directedness 미정의) 잠재버그 포함. 이번 수선이 Phase 0.
5 tasks
LsMin124
added a commit
that referenced
this pull request
Jun 24, 2026
…170) 단일 IR RFC(#169) Phase 1 의 read-side: 그래프 구조 사실을 직렬화기 상수/프롬프트 prose 에서 IR 필드로 끌어올려, 직렬화기가 READ 하고 투영이 파생하게 한다. 기본값=현 직렬화기 상수라 graph_shape=None·indexing=1 일 때 **byte-identical**(formalizer 가 변주하는 1b 까지 프로덕션 무위험). 스키마 (ipe/v1/schema/blueprint.py): - GraphShape(directed/self_loops/multi_edges/connectivity) — F6~F8. directed 는 오늘날 어디에도 결정 안 된 잠재 모순(F8: serializer 'u v w' / DijkstraVerifier directed 가정 / narrative '양방향' 자유서술 — 아무 게이트도 못 잡음)이라 필수 핀. - IOFieldSpec.graph_shape: GraphShape|None=None (옵셔널, 비-graph 무의미). - IOSchema.indexing: Literal[0,1]=1 (F9, _backbone 하드코딩을 IR 로 승격). 직렬화기/투영 (ipe/v2/generation/input_gen.py): - _serialize_weighted_edges/_tree_edges/_reference 가 graph_shape·indexing READ (self_loops→자기간선 허용, multi_edges=False→단순그래프 dedup, connected→ disconnected bias 무력화, indexing→정점 base). None/1 일 때 byte-identical. - render_input_format/render_constraints 가 graph_shape·indexing 에서 파생 (format prose 단일소스화). - render_structural_facts(io_schema) 신설 — narrative/QA 가 prose 규칙 대신 DATA 로 받을 구조 사실(1b 에서 소비). 게이트: 797 passed(+21) / mypy --strict 92 clean / ruff clean. 기존 전 suite 무수정 통과 = byte-identical 입증.
Merged
3 tasks
LsMin124
added a commit
that referenced
this pull request
Jun 24, 2026
…증 (Phase 1b, F8 폐쇄) (#171) 단일 IR RFC(#169) Phase 1 의 write-side: 1a(#170)가 깐 구조 IR 필드를 formalizer 가 실제로 EMIT 하고, narrative/faithfulness 가 prose 규칙 대신 투영된 구조 사실(DATA)로 검증한다. 모순 표면이 prompt 규칙(확률적)에서 graph_shape 단일 진실(구조적)로 이동. - formalizer: graph 구조 prose 규칙(self-loop 없음/다중간선/연결성) 삭제 → graph_shape 필드 EMIT 지령(directed/self_loops/multi_edges/connectivity). directed 는 F8(어디에도 결정 안 된 잠재 모순) 필수 핀 — 도메인 의미로 단/양방향 결정. - narrative: self-loop 금지 prose 삭제 → render_structural_facts 를 DATA 로 수령하고 그와 일치하게 서술(모순 시 faithfulness reject). - faithfulness: 구조 사실 DATA 공급 + 'narrative ↔ 구조 사실 모순 = distortion' 규율. - F8 verifier: 무수정. v1 DijkstraVerifier 는 v2 샘플('V E' 헤더)에 dormant(파서가 'V E s t' 4토큰 기대 → silent skip 실증) — F8 활성 표면은 format 계약↔golden↔ narrative 뿐이고 directed 가 거기 투영되므로 directed=True/False 모두 안전. 게이트: 816 passed(+6 신규 1b 프롬프트/데이터흐름 테스트) / mypy --strict 92 / ruff green. 출하율 측정은 PR 본문 참조.
LsMin124
pushed a commit
that referenced
this pull request
Jun 24, 2026
…tor Phase 0~1b) - meta: main/dev 0ceb6b6, tests 727→768 (v1 506 + v2 262 worktree 실측), version '출하율 수선 + 단일 IR refactor' - summary: ship-rate 진단·수선(P1 1/9→6/9) + 단일 ProblemIR RFC(모순표면 O(N²)→O(2)) Phase 0~1b - bank: prod 25→31문제(번호~1030, P1 6문제 추가 #1025~1030 composition 0, 난이도 Bronze3/Silver10/Gold18) - recentPrs #152~171, backlog 단일 IR refactor 트랙 추가, NFR-6/stack.pytest 262 - 4 HTML 하드코딩 테스트수 768
6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
요약
생성 파이프라인 노드들이 같은 사실을 독립 재진술해 경계에서 모순(QA reject) 이 나던 구조 문제를, 사실을
io_schema에서 코드로 투영(단일 진실원천) 해 구조적으로 제거.① 입력생성 fix (references/cols) —
abe4316IOFieldSpec.references: 정점/원소 참조 스칼라 → 참조 대상 실제 생성 크기[1,V]2-pass 바인딩 (s,t 가 V 와 무관하게[1,2]/V초과로 나던 결함)IOFieldSpec.cols_range: int_matrix 열 수 고정 (행별 속성 흔들림 → 정해 IndexError 나던 sort 계열)② 정합성 fix (constraints 코드파생 + self-loop 단일진실) —
abe4316render_constraints(io_schema): constraints 코드 파생 — graph V 를 E 로 오라벨/V 누락/[1,2]리터럴 차단size_range.min존중③ 단일 IR 아키텍처 RFC —
965476bdocs/improvements/2026-06-23_single-ir-architecture-rfc.md— O(N²)→O(2) 모순 붕괴 설계, 사실 21종 인벤토리, 6단계 마이그레이션. 이번 수선 = Phase 0.실측 (P1 ship-rate, N=9, 동일 batch)
fail_synthesis6→2. prod#1025~1030적재 + 난이도 calibration 완료.테스트 플랜
references/ sortcols[K,K]/ bfsreferences산출 확인