Skip to content

Commit ed611e1

Browse files
jun0claude
andcommitted
[rustjava-2026-09-23-stale-next-pointer-and-euc-kr-boundary-adopt-p1] docs(state): ## 다음 정본 결정 — ref 목록 얇은 층(⒝)
- 규칙 3줄: 항목은 카드 ref·PR 번호만 · 닫힘 = adopted/declined 조회 · 열림 술어에서 injected 제외 금지 - ⒞(카드 정본) 기각: tower 술어로 열린 카드 0(32건 전건 injected) - 채택 2026-09-23-stale-next-pointer-and-euc-kr-boundary#p1 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent c654ae2 commit ed611e1

4 files changed

Lines changed: 65 additions & 2 deletions

File tree

‎REPORT.md‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11
# REPORT
2+
## [2026-09-23] `## 다음` 은 «ref 목록»으로 남긴다 — 카드로 옮기면 할 일이 0으로 보인다 (rustjava-2026-09-23-stale-next-pointer-and-euc-kr-boundary-adopt-p1)
3+
- 무엇을: `STATE.md` `## 다음` 머리에 규칙 3줄을 박고 절을 한 번 재작성했다 — 항목은 카드 ref·PR 번호만, 선행 사슬 1개, 카드 밖 항목(PR #81) 1개. 종전 ⓪ 블록은 사료로 내렸다.
4+
- 왜: 세 번 낡았고 세 번 다 «지목을 쓴 회차 ≠ 닫은 회차»였다(규칙 「닫히는 즉시」는 08-27 부터 있었다). 카드 전면 이전(⒞)은 tower 술어로 이 레인 열린 카드가 **0**(32건 전건 injected)이라 정본이 「할 일 없음」을 말하게 돼 기각.
5+
- 사용자 영향: 없음(문서). 낡은 줄이 생겨도 줄당 조회 1회(`adoptedProposals` 에 있나)로 보인다.
6+
- 후속 추천: 총괄 몫 1건 — 주입됐으나 이름 일치 티켓이 없는 RustJava 카드 11건 처분 확인(상세 = `docs/worklog/2026-09-23-next-section-canon-decision.md`).
7+
28
## [2026-09-23] `## 다음` 이 세 번째로 낡았고, 그 밑에서 EUC-KR 한 글자가 조용히 사라지고 있었다 (rustjava-next-slice-and-stale-next-pointer)
39
- 무엇을: `STATE.md` `## 다음` 의 모든 「다음 후보」를 `git merge-base --is-ancestor` 로 **전수 재측**해 **8건 중 7건이 이미 닫혀 있음**을 확인하고 사료로 접었으며, 살아 있는 후보만 새 `⓪` 블록에 올렸다. 재측 과정에서 유일하게 «열려 있던» 항목(④-3 `InputStreamReader` 디코더)이 실제 결함임이 드러나 **그 자리에서 고쳤다**.
410
- 왜: `LANE_IDLE rustjava`(2026-09-23 · ★**1088분** 조용 · 큐 0 · running 0). 근인은 워커가 아니라 **발권**이었고, 발권이 멈춘 이유는 `## 다음` 의 최우선 항목이 **이미 끝난 일**을 가리켰기 때문이다. ★**이 절이 그 병을 스스로 두 번 기록해 놓고 세 번째를 냈다** — 2026-09-11 에 「다음 실작업 = ③의 null-guard」로 고쳐 쓴 그 null-guard 가 **같은 날 이미 닫혀 있었다**(`6da7d66f`).

‎STATE.md‎

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
(둘 다 이것보다 오래됐고 MERGEABLE/CONFLICTING 처분이 이미 걸려 있다). 겹침은 전부 **append 형 합집합**이라 해소는 기계적이다)
88

99
## 완료
10+
- [rustjava-2026-09-23-stale-next-pointer-and-euc-kr-boundary-adopt-p1] `## 다음` 정본 결정 = ⒝ 얇은 층(ref + 선행 사슬 + 카드 밖 항목만 · 산문 지목 금지). ⒞ 기각 근거 = tower 술어로 열린 카드 0(32건 전건 injected). 채택 `2026-09-23-stale-next-pointer-and-euc-kr-boundary#p1`. 상세 `docs/worklog/2026-09-23-next-section-canon-decision.md`.
1011
- [rustjava-prune-declined-followup-proposals-2026-09-21] ★**추천 후속작업 2건 기각** — 운영자 지시(2026-09-21 우선순위 정리). ★제품 코드 **0줄** · 새 제안 **0** · 검사기/CI 신설 **0**.
1112
★**닫은 둘**(검사기 다듬기 축): `2026-09-19-nonliteral-blind-spot-is-reported-not-gated#p0` · `2026-09-20-lock-script-output-order#p0`.
1213
★**남긴 둘**(런타임 축): `2026-09-20-string-array-hiding-overflows-stack#p0` · `2026-09-20-name-the-missing-bootstrap-class#p0`.
@@ -1510,7 +1511,20 @@
15101511

15111512
## 다음
15121513

1513-
### ⓪살아 있는 후보 — ★★**[2026-09-23 전수 재측] 이 블록«만» 읽어라. ①~⑤ 는 사료다.**
1514+
### ⓪규칙 — ★**이 절은 «카드 ref + 선행관계 + 카드 밖 항목»만 적는다**(2026-09-23 결정 · `…-adopt-p1`)
1515+
1516+
★**항목은 전부 ref(`<worklog>#pN`) 또는 PR 번호로 적는다 — 「다음 실작업 = X」 같은 산문 지목 금지.** 할 일의 본문은 카드(`docs/worklog/*.json`)가 갖는다.
1517+
★**닫힘 판정 = 그 ref 가 어느 worklog 의 `adoptedProposals`/`declinedProposals` 에 있다**(PR 은 `state`) — 한 줄당 조회 1회로 끝난다. 닫힌 줄은 **닫는 회차가** 지운다.
1518+
★**카드 «열림»은 tower 술어(`… − injected`)로 세지 마라** — 이 레인은 그 술어로 **0**이다(주입 = 발권 요청일 뿐 착지가 아니다). 여기 술어는 `전체 − adopted − declined` 다.
1519+
1520+
1. **선행 사슬**(카드가 표현 못 하는 유일한 것): `2026-09-17-link-lambdametafactory#p1`(결정) → `#p0`(어댑터) → `java.lang.invoke` 패키지(카드 없음 · 근거 = `rustjava-runtime/src/classes/java/lang/invoke` **부재**) → `2026-09-17-string-concat-recipe-arity#p1`.
1521+
2. **순서 없음**: `2026-09-18-bootstrap-argument-index-and-tag#p0` · `2026-09-20-name-the-missing-bootstrap-class#p0`(둘 다 `queue/rustjava` 발권됨) · `2026-09-20-string-array-hiding-overflows-stack#p0` · `2026-09-12-zip-getinputstream-guard-lock#p0` · `2026-09-12-test-class-scratch-premise#p0`.
1522+
3. **카드 밖**: PR **#81** — `CONFLICTING`(2026-09-23 워밍 후 재조회) · 충돌 해소 선행.
1523+
1524+
---- 이하 ⓪(2026-09-23 전수 재측 판)·①~⑤ 는 사료다. ★**「다음」으로 읽지 마라** ----
1525+
1526+
1527+
### ⓪-사료 — 2026-09-23 전수 재측 판(위 ⓪규칙으로 대체됨)
15141528

15151529
★★★**이 절이 자기 규율(「닫히는 즉시 닫아라」)을 «세 번» 어겼다** — ⑴③-0 `…claude-md-prune-disposition`(2026-08-27 해소)이
15161530
최우선에 남아 레인이 조용해졌고 ⑵①의 「다음은 S5」가 8일 낡은 채 남아 2026-09-11 **중복 발권**을 만들었고
@@ -1554,7 +1568,6 @@ EUC-KR 은 「마지막 바이트 >= 0x81 이면 한 바이트 보류」였다
15541568
⇒ **완성된 쌍**의 후행 바이트도 보류돼 그 쌍의 선두 바이트가 홀로 남고, 매 read 마다 새로 만드는 디코더가 그것을 **자기 상태로 삼켜** 버렸다.
15551569
실측 = `"12345678한"`(EUC-KR 10바이트) → ★**`"12345678\u{FFFD}"`**. 처방은 전방 주사(선두면 2, 아니면 1)이고 테스트 3형상으로 잠갔다.
15561570

1557-
---- 이하 ①~⑤ 는 사료다. ★**「다음」으로 읽지 마라** ----
15581571

15591572
### ①(최우선이 «아니게 됐다») upstream 동기화 — ★★**[2026-09-11 갱신] 캠페인 «종료». 동기 회차를 열지 마라.**
15601573

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"date": "2026-09-23",
3+
"taskId": "rustjava-2026-09-23-stale-next-pointer-and-euc-kr-boundary-adopt-p1",
4+
"summary": "STATE.md「## 다음」의 정본 결정 — ⒝ 얇은 층(카드 ref + 선행관계 + 카드 밖 항목만). 산문 지목 금지 · 닫힘 = adopted/declined 조회 1회.",
5+
"decision": "b-thin-layer",
6+
"options": {
7+
"a-keep-hand-maintained": "재발 3회/27일 · 규칙「닫히는 즉시」가 08-27 부터 있었는데 2회 더 깨짐 · LANE_IDLE 1088분 · 중복 발권 1. 잃는 것 0.",
8+
"b-thin-layer": "절이 44줄 → 본문 3항목(ref 9 · 사슬 1 · PR 1). 닫힘 판정이 줄당 조회 1회. 잃는 것: 산문 근거(카드·사료로 이동). 낡을 수는 여전히 있다 — 다만 낡음이 '조회 1회로 보인다'.",
9+
"c-cards-only": "tower 술어로 열린 카드 0(32건 전건 injected) ⇒ 정본이 '할 일 없음'을 말한다. 잃는 것: 선행 사슬 1(노드 4), 카드 밖 항목 1(PR #81), 주입됐으나 이름 일치 티켓이 없는 카드 가시성."
10+
},
11+
"adoptedProposals": ["2026-09-23-stale-next-pointer-and-euc-kr-boundary#p1"],
12+
"proposals": []
13+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# 2026-09-23 — `## 다음` 정본 결정 (rustjava-2026-09-23-stale-next-pointer-and-euc-kr-boundary-adopt-p1)
2+
3+
채택: `2026-09-23-stale-next-pointer-and-euc-kr-boundary#p1`. 결정 = **⒝ 얇은 층**.
4+
5+
## 반증 먼저
6+
- ⒜ 세 재발은 같은 형태(닫힌 항목이 절에 남음)인가 — **예**, 그리고 형태가 하나 더 좁혀진다: ★**지목을 쓴 회차 ≠ 닫은 회차**.
7+
③번 실측: `6521c79f`(09-11 10:58)가 「다음 실작업 = ③의 null-guard」를 **썼고**, `6da7d66f`(09-11 17:22 · #36)가 그 일을 **닫으면서 절을 안 건드렸다**.
8+
⇒ 사료의 「쓰인 날 이미 낡아 있었다」는 부정확하다 — 쓸 때는 옳았고 **6시간 뒤** 낡았다.
9+
- ⒝ 규정이 있었나 — **있었다**. 「닫히는 즉시 닫아라」가 `4bb796de`(2026-08-27)부터 STATE.md 에 있다. 이후 2회 더 깨졌다.
10+
안 지켜진 이유 = 닫는 회차의 티켓은 `## 다음` 을 모른다(티켓 본문에 없다). 반면 카드는 발권 티켓이 `adoptedProposals` 기록을 **명시 요구**해 닫는 회차가 알고 닫는다.
11+
12+
## 비교
13+
| 선택지 | 비용 | 잃는 것 |
14+
|---|---|---|
15+
| ⒜ 현행(손 갱신) | 재발 3회/27일 · 최근 1회 `LANE_IDLE` 1088분 · 중복 발권 1 | 0 |
16+
| ⒝ 얇은 층 | 절 1회 재작성 · 본문 3항목(ref 9 · PR 1) | 산문 근거(사료로 이동) · 낡음 자체는 남되 줄당 조회 1회로 보인다 |
17+
| ⒞ 카드 정본 · 절 폐지 | 0 | ★tower 술어 열린 카드 **0**(전 32건 injected)이라 정본이 「할 일 없음」을 말함 · 선행 사슬 1(노드 4) · 카드 밖 항목 1(PR #81) |
18+
19+
⒞가 결정적으로 탈락한 이유: `open = 전체 − adopted − declined − injected − dismissed`(wie 회차 술어) 로 재면 이 레인 **0**(전체 102 · adopted 67 · declined 3 · injected 32 · dismissed 0).
20+
`− injected` 를 빼면 **32**. 그 32 중 이 레인이 칠 수 있는 이름을 15개 조회하니 이름 일치 티켓이 있는 것 **4**(queued 2 · 미완 2), **없는 것 11**
21+
(예: `link-lambdametafactory#p0/#p1` 주입 09-17 21:58 → `directives/processed/` 로 처리됐는데 `tasks/` 에 그 ref 문자열 0).
22+
⇒ 카드만 두면 이 11건은 어디에도 안 보인다. ※이름 기반 조회라 다른 이름 티켓은 못 잡는다 — 「없다」가 아니라 「이름 일치 0」.
23+
24+
## 재측(⑵)
25+
새 ⓪ 의 ref 8개 전건: origin/main `docs/worklog/*.json` 의 adopted/declined 에 **0회** ⇒ 전건 열림. `java.lang.invoke` 디렉터리 부재(0). PR #81 `OPEN`·`CONFLICTING`(워밍 후 재조회).
26+
27+
## 총괄 몫(발권 측 · 이 레인은 무접촉)
28+
- 주입(`injected`)되고 `directives/processed/` 로 간 RustJava 카드 중 이름 일치 티켓이 없는 11건의 처분 확인 — tower 가 이미 숨겼으므로 발권도 기각 기록도 없으면 조용히 사라진다.
29+
30+
## 후속
31+
없음(새 제안 0 · 검사기 0).

0 commit comments

Comments
 (0)