Skip to content

feat(v2): authoring 정합성 수선 — P1 출하율 1/9→6/9 + 단일 IR RFC#169

Merged
LsMin124 merged 3 commits into
mainfrom
fix/ship-rate-authoring
Jun 24, 2026
Merged

feat(v2): authoring 정합성 수선 — P1 출하율 1/9→6/9 + 단일 IR RFC#169
LsMin124 merged 3 commits into
mainfrom
fix/ship-rate-authoring

Conversation

@LsMin124

Copy link
Copy Markdown
Owner

요약

생성 파이프라인 노드들이 같은 사실을 독립 재진술해 경계에서 모순(QA reject) 이 나던 구조 문제를, 사실을 io_schema 에서 코드로 투영(단일 진실원천) 해 구조적으로 제거.

① 입력생성 fix (references/cols) — abe4316

  • IOFieldSpec.references: 정점/원소 참조 스칼라 → 참조 대상 실제 생성 크기 [1,V] 2-pass 바인딩 (s,t 가 V 와 무관하게 [1,2]/V초과로 나던 결함)
  • IOFieldSpec.cols_range: int_matrix 열 수 고정 (행별 속성 흔들림 → 정해 IndexError 나던 sort 계열)

② 정합성 fix (constraints 코드파생 + self-loop 단일진실) — abe4316

  • render_constraints(io_schema): constraints 코드 파생 — graph V 를 E 로 오라벨/V 누락/[1,2] 리터럴 차단
  • 샘플·그래프 empty bias 가 size_range.min 존중
  • self-loop 를 serializer 진실에 단일 정렬 (formalizer/narrative/generator_designer 3자)

③ 단일 IR 아키텍처 RFC — 965476b

docs/improvements/2026-06-23_single-ir-architecture-rfc.md — O(N²)→O(2) 모순 붕괴 설계, 사실 21종 인벤토리, 6단계 마이그레이션. 이번 수선 = Phase 0.

실측 (P1 ship-rate, N=9, 동일 batch)

seed before input-fix consistency
dijkstra 0/3 0/3 2/3
sort 0/3 3/3 3/3
bfs 1/3 1/3 1/3
합계 1/9 (11%) 4/9 (44%) 6/9 (67%)

fail_synthesis 6→2. prod #1025~1030 적재 + 난이도 calibration 완료.

테스트 플랜

  • 779 passed (+16 신규) / mypy 92 strict / ruff green
  • 실 LLM end-to-end: dijkstra references / sort cols[K,K] / bfs references 산출 확인
  • 생성 입력 0 범위밖 / 0 ragged (예전 크래시 입력 소멸)
  • (후속) P2 재측정 — IR validator(RFC Phase 2) 후

LsMin124 added 3 commits June 23, 2026 17:17
생성 노드들이 같은 사실을 독립 재진술해 경계에서 모순(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.
@LsMin124 LsMin124 merged commit 6bef76f into main Jun 24, 2026
4 checks passed
@LsMin124 LsMin124 deleted the fix/ship-rate-authoring branch June 24, 2026 00:11
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 입증.
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant