Skip to content

fix(v2): sequence write-side N=0/sortedness 단일소스화 — P1 출하율 0/9→8/9 (작업 B)#175

Merged
LsMin124 merged 1 commit into
mainfrom
sequence-write-side-n0
Jun 25, 2026
Merged

fix(v2): sequence write-side N=0/sortedness 단일소스화 — P1 출하율 0/9→8/9 (작업 B)#175
LsMin124 merged 1 commit into
mainfrom
sequence-write-side-n0

Conversation

@LsMin124

Copy link
Copy Markdown
Owner

요약

sequence/array 문제의 write-side 모순 2종을 단일소스화로 해소. graph 가 #169 render_constraints 코드파생으로 받은 단일소스화를 sequence 프로즈가 못 받던 Phase-1b-for-sequence 갭.

문제 (실측 12 run, 전부 fail_qa)

  1. N=0 ↔ constraints 모순 (지배적, 전 런): _FORMAT_TEXT["int_array"]size_range.min 과 무관하게 (N=0 이면 '0' 한 줄만) 을 무조건 방출 → render_constraintsN∈[min,max](min≥1)와 정면 충돌. QA 리뷰어가 "input_format 은 N=0 허용, constraints 는 N≥1 → 모순" 으로 reject.
  2. sortedness 모호성 (binary_search): _sequence_clause 가 non_decreasing 을 비내림차(오름차순) 정렬 로 표기 → (오름차순) 이 순증가로 읽혀 중복 값 가능 과 충돌.

수선 (write-side 단일소스화)

  • _int_array_format(field): N=0 절을 size_range.min == 0 일 때만 방출 (빈/최소 입력 의미를 size_range.min 단일소스에서 파생 — graph empty bias 와 동형). _FORMAT_TEXT 에서 int_array 제거.
  • SORTEDNESS_LABEL/DUPLICATES_LABEL 단일소스: format prose(_sequence_clause) + narrative DATA(SequenceBackbone.structural_facts) 가 같은 라벨 READ → 드리프트 불가. non_decreasing 을 수식형 a[i] ≤ a[i+1] 으로.
  • serializer 무수정 → 직렬화 바이트 byte-identical (_serialize_int_array/_sequence_values 손대지 않음).

측정 (P1, N=3, before 0/0/0)

시드 Before After
binary_search 0/3 2/3
lis 0/3 3/3
loop_accumulate (배열 초급) 0/3 3/3
합계 0/9 (0%) 8/9 (89%)
  • 타겟 블로커 결정론적 소멸: input_format N=0 절 0/9, sortedness format 모호성 0/9.
  • 잔여 binary_search r1 fail = 별개 클래스(K references 스칼라 'index' ↔ narrative 'count' 모순 + 난이도 퇴화), 본 fix 무관.
  • crash 0, 비용 $2.79.

게이트

  • 899 passed / 4 skipped, mypy --strict 100, ruff green.
  • code-review APPROVE (0 CRITICAL / 0 HIGH / 0 MEDIUM).

테스트 계획

  • test_render_int_array_omits_empty_clause_when_min_positive (min≥1 / None → N=0 절 없음)
  • test_render_int_array_states_empty_clause_when_min_zero (min==0 → N=0 절)
  • test_render_int_array_sortedness_is_unambiguous (오름차순 없음, a[i] ≤ a[i+1])
  • test_render_int_array_strictly_increasing_uses_math_form
  • test_sortedness_label_single_sourced_with_structural_facts
  • 실 LLM P1 N=3 출하율 0/9→8/9

… 모순 해소 (작업 B)

int_array 입력형식 prose 가 size_range.min 과 무관하게 'N=0 이면 0 한 줄'을 무조건
방출 → render_constraints 의 N∈[min,max](min≥1)와 정면 충돌해 QA ambiguity reject
(loop_accumulate 3/3·binary_search 3/3·lis 3/3 run 실측). graph empty bias 가
size_range.min 을 존중하는 것과 달리 sequence 프로즈만 단일소스화를 못 받은
Phase-1b-for-sequence 갭.

- _int_array_format(field): N=0 절을 size_range.min==0 일 때만 방출(단일소스).
  _FORMAT_TEXT 에서 'int_array' 제거 — 빈 수열 절은 상수가 아니라 size_range 파생.
- SORTEDNESS_LABEL/DUPLICATES_LABEL 단일소스: format prose(_sequence_clause)와
  narrative DATA(SequenceBackbone.structural_facts)가 같은 라벨 READ → 드리프트 불가.
  non_decreasing 을 수식형(a[i] ≤ a[i+1])으로 — 평문 '오름차순' 병기가 순증가로
  읽혀 '중복 값 가능'과 충돌하던 모호성 제거(binary_search 실측).

serializer(_serialize_int_array/_sequence_values) 무수정 = 직렬화 바이트 byte-identical.
게이트: 899 passed/4 skipped, mypy --strict 100, ruff green. code-review APPROVE 0C0H0M.
@LsMin124 LsMin124 merged commit c59244a into main Jun 25, 2026
4 checks passed
@LsMin124 LsMin124 deleted the sequence-write-side-n0 branch June 25, 2026 09:00
LsMin124 pushed a commit that referenced this pull request Jun 25, 2026
… 초급 트랙)

- meta: main/dev c59244a, tests 768→862 (v1 515 + v2 347 worktree 실측), version '단일 IR 아키텍처 · 초급 트랙'
- summary: 단일 ProblemIR 아키텍처 Phase 2~5a 완결(IR validator+순수투영+백본 G0~G2, #172) + 초급 트랙(#174) + sequence 모순해소(#175)
- recentPrs #156~175, backlog 출하율 재측정 트랙, NFR-6/stack.pytest 347
- 4 HTML 하드코딩 테스트수 862
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