Skip to content

feat: 로컬 DoD ↔ CI 매트릭스 기계 대조 — scripts/check-dod-ci-parity.py [rustjava-local-dod-vs-ci-matrix-mechanical-check] - #26

Merged
Jun025 merged 2 commits into
mainfrom
feat/rustjava-dod-ci-parity-lock
Sep 4, 2026
Merged

feat: 로컬 DoD ↔ CI 매트릭스 기계 대조 — scripts/check-dod-ci-parity.py [rustjava-local-dod-vs-ci-matrix-mechanical-check]#26
Jun025 merged 2 commits into
mainfrom
feat/rustjava-dod-ci-parity-lock

Conversation

@Jun025

Copy link
Copy Markdown
Owner

무엇을

scripts/check-dod-ci-parity.py 신설 + CI job dod_parity 배선 + DoD 블록에 그 줄 추가.
CLAUDE.md §Definition of Done 코드블록과 .github/workflows/rust.yml각각 파싱해 대칭차를 낸다.

  • 축 A — 명령 집합 (- run: 스텝 ↔ DoD 줄)
  • 축 B — toolchain 집합 (strategy.matrix.rustcargo +<tc> 접두)

오늘 둘 다 0 이라 계약대로 경고가 아니라 rc=1(차단) 으로 켰다.

…-going-stale 리니지가 다섯 회차 내내 「전건 동기」를 주장했고 매번 «또 한 자리» 가 나왔다(게이트②에서 6건째).
전부 같은 종류 — 「로컬 DoD 가 CI 검사를 몇 개 재현하는가」가 rust.yml 과 어긋난 채 문서에 굳었다.
사람 손 대조로는 다섯 번 실패했다.

그런데 「낡은 문자열 스캐너」는 만들지 않았다 — 게이트② 검수자가 「F1 은 «수»가 아니라 «말»이라
문자열 검사기로도 안 잡힌다」를 실측으로 세웠다. ⇒ 문서의 문장이 아니라 문서가 틀리는 «원인»(두 집합이 갈린 것)을 잡는다.

개악 대조 — 5건 전건 red · 무개악 green

돌연변이rc
없음0 (OK 두 축 모두 대칭차 0 — 명령 6개 · toolchain 2개로 «둘 다 일치»)
rust.yml- run: cargo doc --no-deps 추가1 (축 A)
DoD 에서 wasm32 줄 제거1 (축 A)
매트릭스 [stable, beta, nightly]1 (축 B)
DoD 의 +beta 줄 제거1 (축 B)
rust-toolchain.toml 신설1 (축 B 매핑 가드)

한계 — 숨기지 않고 검사기가 «그 자리에서» 찍는다

  • OS 축(조건부 step)은 로컬 재현 불가 ⇒ 축 A 에서 제외하되 출력에 남긴다.
  • 두 축을 «교차곱»으로 보지 않는다. CI 는 cargo 검사 4종을 stable·beta 둘 다 치는데 DoD 는 clippy 만 이중이다.
    ★결함이 아니라 2026-09-04 결정이 «고른 값»이다(로컬 cargo +beta test = 두 번째 toolchain 전면 재빌드 ·
    lint 를 지는 축은 clippy 뿐). 넓히는 것은 «버그 수정»이 아니라 «새 결정»이다.

검증

DoD 7줄 전건 rc=0 · cargo test --all554 / 0 / 1(새 red 0) · .rs 변경 0 · allow 9곳 무접촉 · upstream 무접촉(behind 0).

착지 형태

등재 repo ⇒ 게이트③은 --merge(merge_strategy: merge).

jun0 added 2 commits September 4, 2026 18:36
…va-local-dod-vs-ci-matrix-mechanical-check]
「…-going-stale」 리니지가 다섯 회차 내내 「전건 동기」를 주장했고 매번 또 한 자리가
나왔다(게이트②에서 6건째). 전부 같은 종류 — 로컬 DoD 가 CI 검사를 몇 개 재현하는가가
rust.yml 과 어긋난 채 문서에 굳었다. 사람 손 대조로는 다섯 번 실패했다.
★「낡은 문자열 스캐너」는 만들지 않았다(설계 제약). 게이트② 검수자가 「F1 은 수가 아니라
«말»이라 문자열 검사기로도 안 잡힌다」를 실측으로 세웠다. ⇒ 문서의 문장이 아니라 문서가
틀리는 «원인»(두 집합이 갈린 것)을 잡는다: CLAUDE.md DoD 코드블록과 rust.yml 을 각각
파싱해 대칭차를 낸다. 축 A(명령 집합) · 축 B(toolchain 집합).
오늘 대칭차가 둘 다 0 이라 계약대로 경고가 아니라 rc=1(차단)로 배선했다 — CI job
dod_parity 신설 + DoD 블록에 같은 줄 추가(검사기가 자기 존재를 자기가 강제한다).
정본 위치는 문서가 아니라 스크립트 안에 박았다(CI_FILE·DOD_FILE·DOD_SECTION).
개악 5건 전건 red · 무개악 green: DoD wasm32 줄 제거 · CI - run: 추가 · 매트릭스
nightly 추가 · DoD +beta 제거 · rust-toolchain.toml 신설(축 B 매핑 가드).
침묵하지 않는다 — 성공에도 「명령 N개 · toolchain N개로 둘 다 일치」를 찍고, 못 보는
것(조건부 step = OS 축 · 두 축을 교차곱으로 보지 않는 것)도 그 자리에서 함께 찍는다.
교차곱 미적용은 결함이 아니라 2026-09-04 결정이 고른 값이고, 넓히는 것은 새 결정이다.
문서: §4 의 셸 두 토막을 지우고 스크립트 한 줄로(두 벌 금지) · C7⒜ 에 「닫혔다」 표지 ·
「DoD 6줄」 present-tense 3자리는 7 로 갈아 끼우지 않고 «수를 문장에서 뺐다».
검증: DoD 7줄 전건 rc=0 · cargo test --all 554/0/1(새 red 0) · .rs 변경 0 ·
allow 9곳 무접촉 · upstream 무접촉(behind 0).
…matrix-mechanical-check]
STATE.md 진행중 → 완료(게이트③ PR #26 · --merge · 등재 repo · 착지 후 반사실 두 줄 —
origin/main..upstream/main = 0 유지 · 신설 job dod_parity success) + worklog .json
게이트③ 집행 1줄(동봉 전 head 가 핀과 일치했음 · fetch 를 먼저 쳐 거짓 일치를 막았음).
코드 변경 0.
@Jun025
Jun025 merged commit 61d5bf3 into mainSep 4, 2026
10 checks passed
@Jun025
Jun025 deleted the feat/rustjava-dod-ci-parity-lock branch September 4, 2026 10:36
Sign up for freeto 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

@Jun025