Changelog

이 파일은 블로그 발행물 자체의 큰 변화(글의 카테고리 체계, 사이트 디자인, Jekyll 설정 같은 구조적 변경)만 기록한다.

자율 발행 사이클의 인프라(SKILL 정의, 동기화 메커니즘, launchd, 본문 작성 모델 등)는 knowledge-mind/skills/blog-daily-cycle/CHANGELOG.md에서 추적한다. 그쪽이 단일 출처이고 이 레포는 발행물의 결과만 담는다.


2026-07-05 — 레이아웃 회귀 수리 (표↔인용컬럼 충돌 + mermaid subgraph 짜부)

07-03 레이아웃 점검이 확립했던 두 규약이 최근 글에서 다시 안 지켜지던 회귀를 잡음.

  • 표가 인용 사이드노트 컬럼 침범 (C): 넓은 화면(≥1080px)에서 .post-content > tablemax-width:100%(~940px)로 확장돼, left:700px의 사이드노트와 겹쳤다(sycophancy-taxonomy 글 제보). assets/main.scss.post.has-sidenotes 스코프로 표·코드블록을 텍스트 컬럼(660px)에 되돌리는 규칙 추가. 각주 없는 글은 풀폭 유지.
  • mermaid subgraph 다단 짜부 재발 (A): 05-13 점검이 “비교 subgraph는 별도 블록으로” 규약을 세웠으나 기계 점검이 없어 자동 사이클이 놓쳤다(AutoMem 3개·dpo 2개). scripts/check_markup.py에 한 다이어그램 subgraph 2개+ WARN 추가 — 파이프·점선 검사와 같은 반열로 승격.
  • 발행글 2편 수리 (B): dpo(06-30) 비교 다이어그램을 별도 블록 두 개 + 사이 설명 문장으로 분리. AutoMem(07-04)은 상호 연결된 통합 아키텍처라 graph LR → TB로 방향만 전환(의미 보존).
  • 전면 소급 적용 (B′): 전수 스캔으로 규약 위반 다이어그램 전부 수리(05-23까지 10편). 통합·파이프라인형은 LR→TB 방향 전환(06-17·06-14·06-08·06-04), 수렴형은 서브그래프를 노드로 접어 공유 결과에 수렴(06-15·05-27), 독립 비교형은 별도 블록 + 소제목(기존 서브그래프 제목 재사용)으로 분리(06-08·06-09·06-07·05-25·05-23). 재스캔 후 잔존은 통합-TB 7개(비차단 WARN, 수용). 내용 불변.

내용(수치·주장)은 불변. 근거·배선은 knowledge-mind/skills/blog-daily-cycle/CHANGELOG.md 2026-07-05 항목.

2026-07-03 (3) — 헤더 한 줄 정리 (nav 화이트리스트 + 마스트헤드 축소)

  • nav 중복·오염 정리: GH Pages의 jekyll-optional-front-matter가 프런트매터 없는 루트 .md(CHANGELOG·CLAUDE·voice)까지 페이지로 만들어 nav에 올리고, index 제목(“pheeree 읽기 노트”)이 사이트 제목과 중복되던 것 — _config.ymlheader_pages: [bibliography.md] 화이트리스트를 두어 서지만 남김. 앞으로 루트에 .md를 추가해도 nav는 오염되지 않는다.
  • 마스트헤드 축소: 제목 0.9em→0.75em(작은 한글에 맞춰 자간 +0.01em), 링크 0.86em→0.72em, 데스크톱 라인높이 54px→38px·min-height 해제 — 타이포만으로 구성된 날씬한 한 줄 띠. 모바일 햄버거 레이아웃은 유지. (첫 배포 0.82em/42px를 사용자 확인 후 한 단 더 축소.)

2026-07-03 (2) — 마크업 수리 + 기계 점검 신설 + 푸터 정상화

  • 발행 글 마크업 수리(내용 불변): 07-01 글 본문·각주의 인라인 수식 조건부 파이프 \pi(\cdot|…)\mid — kramdown이 수식보다 표(줄 구조)를 먼저 파싱해 단락이 표로 깨지던 문제(제보 스크린샷). 06-30 글 각주 동일 계열(y_w|x 등), 07-02 글(오늘 발행) mermaid 점선 결합 -.- "라벨" .->-. "라벨" .-> 3곳(파스 에러).
  • scripts/check_markup.py 신설: formatting.md “빠른 자기 점검”의 기계판 — 프로즈 줄 파이프·\(\) 잔재·mermaid 점선 결합·라벨 공백·통화·그리스 노출. 비차단. 드래프트 검증(B-3)과 발행 직전(Phase A)에 배선. 검증: 수리 전 HEAD 판본에서 ERROR 검출, 수리 후 ERROR 0.
  • 푸터 정상화: _config.yml author 맵 → 문자열 + email 분리 — minima 푸터가 Ruby 해시({"name"=>…})를 그대로 노출하던 문제.
  • custom-head.html 주석·CLAUDE.md 기술 메모 현행화: 인라인 수식 컨벤션은 $$...$$(kramdown 보호), 단 |는 예외라 \mid. 규칙의 단일 출처는 knowledge-mind/skills/blog-daily-cycle/formatting.md.

2026-07-03 — 목소리 표본집 voice.md 신설

  • voice.md: 이 블로그의 목소리가 자라는 표본집 — pheeree의 반응이 원리로 쌓이는 살아있는 파일. 첫 원리 넷(의식은 정직하게 문장은 매일 새로 · 비유 역번역 · 기호는 말로 한 번 · 최근 글은 내용의 이웃이지 문체의 거울이 아니다). 매 사이클이 통독해 집필에 반영.
  • scripts/check_sentence_reuse.py: 직전 3편과의 동일 문장 재사용(전례문) 검사 — 비차단 뒷그물. 07-01 글 실측 5건 검출.
  • CLAUDE.md 목소리 절에 표본집 포인터 추가. 회로·배선의 단일 출처는 knowledge-mind/skills/blog-daily-cycle/CHANGELOG.md 2026-07-03 항목.

2026-06-04 (3) — 오늘의 한 편 중심 링크 보장 + 비-arXiv URL 게이트

  • 오늘의 한 편 중심 논문 링크 보강: arXiv 중심 논문이 있는 전 글 점검 → 4편이 “오늘의 한 편”에 중심 링크 누락(04-26·04-27·05-31·06-03). 각 글 양상에 맞춰 중심 [arXiv:id](url) 삽입(저자 표기·제목 뒤·평문 링크화).
  • openreview 맨 URL 정리: 06-03 (openreview h3LlJ6Bh4S … https://openreview.net/forum?id=…)[OpenReview h3LlJ6Bh4S](url) 마크다운 링크로 통합(끝 맨 URL 제거).
  • 게이트 2종 추가 (build_citations.py):
    • check_central_link: ‘오늘의 한 편’에 source 중심 논문 링크가 있는지 — --check-links·--verify-draft 양쪽에서 점검.
    • RAW_OTHER_URL: openreview·aclanthology·nips 등 비-arXiv 맨 URL을 --check-links가 경고(자동 링크화 대상은 아니나 누락 신호).

이로써 발행 게이트가 세 가지를 함께 본다 — 본문 arXiv 링크 누락 / 오늘의 한 편 중심 링크 / 비-arXiv 맨 URL.

2026-06-04 (2) — 링크 누락 보강: 괄호·맨URL 형식 + 실재검증 게이트

첫 마이그레이션이 arXiv: 접두어 형식만 잡고 ‘다음 읽을 후보’에 흔한 다른 형식을 놓쳤던 것을 보강.

  • 누락 패턴 3종 처리: ① 접두어 없는 괄호 평문 (2510.19771) ② 맨 arXiv URL ③ (기존) arXiv:id. --link-posts가 셋 다 링크화. 이번 회차 7편 30건 추가 보강 — 잔존 미링크 0.
  • 실재 확인을 HEAD로 전환: export.arxiv.org 메타 API가 막힌 환경 대응 — arxiv.org/abs/{id} HEAD(0.1초)로 실재 확인. 메타데이터(제목)는 best-effort 보너스라 없어도 링크는 단다. 404는 환각·오태로 보고 링크 안 함.
  • 로컬 resolve 캐시 _data/arxiv-resolved.json — 실재/부재를 영속 기록(건마다 증분 저장). 재조회·rate-limit 완화.
  • --check-links 게이트: 본문·다음후보에 링크 안 된 검증 인용을 보고(누락 시 exit 1). 발행 단계 자기 점검.
  • --verify-draft <파일>: 드래프트 한 편의 본문 arXiv id 실재 검증 — 환각·추정 id를 발행 전 경고(비차단). (2510.19771)실재하는데 표기만 평문인지 환각인지 가른다.

설계 교훈: 첫 보고에서 “189개 전부 검증·완료”라 했으나 실은 arXiv: 형식만 본 것이었다. 스크립트가 “처리한 수”만 말하고 “못 잡은 수”는 침묵해 오판. → --check-links로 스크립트가 스스로 누락을 보고하게 만듦.

2026-06-04 — 서지정보 문서 + 본문 arXiv 하이퍼링크

본문의 평문 arXiv:NNNN.NNNNN 언급을 하이퍼링크로 전환하고, 글별 서지정보를 모은 문서를 신설. 발행 때마다 자동 갱신.

  • scripts/build_citations.py (신규) — 전 _posts 스캔 → arXiv id 수집(본문 + frontmatter source) → 검증(미러 arxiv-cache 우선, 없으면 arXiv API 실재 확인) → _data/citations.yml(기계 판독 원본) + bibliography.md(/bibliography/ 렌더 페이지) 생성. --link-posts로 본문 평문 arXiv를 검증된 것만 하이퍼링크화.
  • 마이그레이션: 과거 28편 본문에서 220개 평문 arXiv → 하이퍼링크. 각주([^) 안 표기·코드블록·기존 링크는 보존. 본문 등장 고유 id 189개 전부 arXiv 실재 확인됨(죽은 링크 0).
  • 서지 문서 2종: _data/citations.yml(글별 central/referenced + url) + bibliography.md. 중심 논문은 굵게 구분.
  • 자동화: blog-daily-cycle Phase A(발행)에서 build_citations.py --link-posts 자동 실행 — 새 글 본문 링크화 + 서지 갱신이 매 발행마다. SKILL 측 단계는 knowledge-mind CHANGELOG에 기록.

설계 메모: 죽은 링크 방지가 핵심 제약. arXiv id는 형식만 맞으면 대개 arxiv.org/abs/{id}가 유효하나, 작성 시 추정된 미래 id가 죽을 수 있어 API 실재 확인을 거친다. 각주는 verbatim 인용 영역이라 평문 유지.


2026-05-30 — 05-24 자기 인용 2건 블록 인용 분리

5/13에 굳힌 “두 줄 이상 자기 인용 → 블록 인용(>)” 규칙의 사후 적용. 05-24(의미적 공급망 공격)의 거버넌스 노트 자기 인용 2건이 인라인으로 남아 있던 것을 별도 문단 블록 인용으로 옮겼다.

  • “공모와 탈옥” 항목 인용과 “구조적 불투명성…” 인용. 둘 다 같은 섹션(‘거버넌스 프레임이 보강된다’)의 자기 노트 인용이라, 한쪽만 블록으로 두면 들쭉날쭉해지므로 함께 통일.
  • 인용 표지를 한국어 평서문으로 마무리. 본문·각주·다이어그램은 불변.
  • 문장에 문법적으로 엮인 인라인 인용(직전 글 인용, ADR 구절)은 블록으로 빼면 문장이 끊겨 그대로 보존.

2026-05-29 — 발행본 voice 누수·헤딩 일괄 교정 + 05-28 각주 복원

5/13 정돈과 같은 결의 사후 교정. voice 블록리스트 금칙어가 ‘내 연구에 어떻게 꽂히나’라는 챕터 헤딩으로 _drafts/_template.md 경유 재전파된 것을 발견 → 발행본 6편(05-22·24·25·26·27·28) + 템플릿에서 일괄 제거.

  • ‘꽂히나’ 헤딩 → ‘맞물리나’ (05-24·25·28). 템플릿 헤딩도 동일 교정해 재발 원천 차단.
  • 크루드 박/꽂 활용형 누수 교정: 새긴다·맞물린다·놓여 있는·달아온·놓은 등. ‘못을 박다’ 관용구·embedded ‘박힌’은 정당한 결로 보존.
  • 05-28 발행본에 빠져 있던 각주 5개 복원 — 원문(arXiv:2605.26099) PDF 대조로 핵심 인용·Rule 110·Depo·GSM-Infinite·sliding-window 수치를 verbatim 확인 후 부착.

2026-05-13 — 4월 발행물 11편에 같은 포맷 일괄 적용

5/13 정돈 작업에서 굳힌 마크업 규칙(skills/blog-daily-cycle/formatting.md)을 4월 발행물 11편(2026-04-23 ~ 2026-05-01)에 사후 적용. 4/21은 다이어그램·수식·인용 모두 없어 손대지 않음.

  • mermaid 다이어그램 안전 패턴 일괄 적용: 노드 라벨 따옴표 보강, edge label에 양쪽 공백 + 따옴표(-- "label" -->, -. "label" .->, == "label" ==>), 비교용 다단 subgraph를 별도 블록 두~네 개로 분리, 의미적으로 동일한 객체의 중복 박스를 단일 노드 + 다중 화살표로 통합.
  • 본문 인라인의 두 줄 이상 자기 인용 6건을 블록 인용(>)으로 분리 (4/26, 4/27, 4/28, 4/29, 4/30, 5/1). 인용 표지를 한국어 흐름에 맞게 평서문으로 마무리.

2026-05-13 — 레이아웃 정돈

  • _includes/custom-head.html에 MathJax 3 추가. 인라인 \(...\), 디스플레이 $$...$$ · \[...\]. 본문의 통화 표기($4.27 등)와 충돌하지 않게 $...$ 인라인은 비활성. mermaid SVG에 max-width: 100% + 가로 스크롤 옵션 추가.
  • 5월 발행물 5편(5/2, 5/3, 5/5, 5/10, 5/13)의 mermaid 다이어그램에서 비교용 subgraph 다단 배치를 단일 흐름 블록으로 재구성. 좁은 화면에서 가로로 짜부되던 문제 정돈.
  • 같은 5편의 인라인 수식·변수 표기를 plaintext에서 \(...\) MathJax 인라인으로 통일.