Skip to content

docs: Q17 stays open with (A) — the encoding risk goes where a host author reads it - #335

Merged
xzawed merged 2 commits into
mainfrom
docs/q17-encoding-risk
Sep 26, 2026
Merged

xzawed merged 2 commits into
mainfrom
docs/q17-encoding-risk

Conversation

@xzawed

@xzawed xzawed commented Sep 26, 2026

Copy link
Copy Markdown
Owner

OPEN_QUESTIONS.md Q17 — 2026-09-26 사용자 확인: (A) 열어 둔다. DP-S2는 재개하지 않고 DECISIONS.md도 바뀌지 않는다.

무엇이 바뀌나

(A)가 요구하는 것은 "위험만 문서에" 이므로, 호스트 저자가 읽는 자리 — HOST_ABI.md "문자열 파라미터 계약" 4번 — 에 §9-69.3의 측정을 옮겼다:

  • byte_len 길이 한도가 UTF-8 호스트에서는 거부하고 CP949 호스트에서는 통과한다(가×34: 102B 대 68B).
  • 반환 리터럴을 CP949 입력에 이으면 바이트가 섞인다 — 생성 .h·.pas의 "This module RETURNS UTF-8 bytes" 는 입력이 UTF-8일 때만 참이다.
  • 반례: EUC-KR 바이트 규칙(SMS/LMS)은 CP949로 보낼 때만 맞다 — 그래서 인코딩을 하나로 정하지 않는다.
  • .pas의 PAnsiChar(AnsiString(S)) "CORRECT"는 ASCII 값으로만 잰 것이다.
  • 곁들여 고친 한 문장: "소스 리터럴은 ASCII만" → 비교하는 리터럴만(비ASCII 반환 리터럴이 이미 있다).

그 밖: Q17 항목에 확인 기록, STATUS.md 시작 블록에서 "확인 대기" 줄 제거, 슬라이스 후보 목록의 괄호를 Q17로 가리킴.

근거

  • 측정은 E2(로드한 모듈, GetACP() = 949의 ctypes 호스트)이고 AnsiString 변환 단계만 E1. 규칙 원문과 값을 docs/history/9-69.md §9-69.3에 표로 덧붙였다(같은 날의 기록).
  • doc_claims 50/50 · language_gaps 9/9.

Grok 2차 검증 (한 번에 주장 하나)

  1. HOST_ABI 새 문장 ↔ 기록 — DISCREPANCY: "100바이트 한도"와 "SMS는 CP949일 때만 맞다(측정)"가 저장소 안 어느 기록에도 없었다(측정 데이터에만 있었다) → §9-69.3에 규칙·값 표를 더했다(724f33f).
  2. Q17 기록·"확인 대기" 잔존 없음·범위 — CONFIRMED.
  3. 재검증 (a)(b)(d) ↔ 새 표 — CONFIRMED.

🤖 Generated with Claude Code

xzawed and others added 2 commits September 26, 2026 15:02
…uthor reads it

User confirmed Q17 (A) on 2026-09-26: DP-S2 is not reopened and DECISIONS.md
does not change. What (A) asks for is the risk in writing, so HOST_ABI.md's
string-parameter contract item 4 now carries the §9-69.3 measurements: a
byte_len limit that passes on a CP949 host and refuses on a UTF-8 one, a
returned literal concatenated to CP949 input giving mixed bytes (so the
generated "RETURNS UTF-8 bytes" notice holds only for UTF-8 input), the
EUC-KR counter-example, and that the .pas "CORRECT" row was measured with
ASCII only. It also stops saying source literals are ASCII-only: that holds
for compared literals since non-ASCII return literals exist.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Grok verify found the 100-byte limit and the CP949-only SMS result stated in
HOST_ABI.md with no in-repo source; both were in the measurement data only.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@xzawed

xzawed commented Sep 26, 2026

Copy link
Copy Markdown
Owner Author

⚠️ AI 리뷰가 완전 검증되지 않음 — 기본값이 적용됐습니다(비활성/API 키 없음/빈 diff). AI 배점은 측정값이 아니므로 총점을 부분 점수로 보세요.

🔵 SCAManager 분석 결과

총점: 89/100 (등급 B)

점수 상세

항목 점수 만점
커밋 메시지 13 15
코드 품질 25 25
보안 20 20
구현 방향성 (AI) 21 25
테스트 10 15

@xzawed
xzawed merged commit 7c06437 into main Sep 26, 2026
2 checks passed
@xzawed
xzawed deleted the docs/q17-encoding-risk branch September 26, 2026 06:23
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