이미지가 글의 그 대목과 맞도록 — 글이 세운 계획을 따르게 함 - #58

Merged
Kevinlee7250 merged 1 commit into
latestfrom
claude/session-0119g48zqt4k-lwfzrd
Aug 30, 2026
Merged

이미지가 글의 그 대목과 맞도록 — 글이 세운 계획을 따르게 함#58
Kevinlee7250 merged 1 commit into
latestfrom
claude/session-0119g48zqt4k-lwfzrd

Conversation

@Kevinlee7250

Copy link
Copy Markdown
Owner

먼저 현재 상태를 실제 발행 글로 측정했습니다

최근 초안 6편의 이미지 alt와 실제 놓인 섹션을 대조한 결과:

alt놓인 섹션
발리 겨울방학(도입부)
발리 겨울방학 가족여행 패키지 비교해보니겨울방학 발리 가족여행, 패키지 선택이 유독…
중개형 ISA(도입부)
경기도 여름(도입부)

alt가 3단어로 줄인 검색어 그대로입니다.

원인 세 가지

① 검색어가 글이 아니라 문자열 조작에서 나옵니다._extract_section_queries가 H2 제목과 본문 명사를 기계적으로 조합합니다. 그래서 "겨울방학 발리 가족여행, 패키지 선택이 유독 어려운 이유" 섹션의 검색어가 발리 겨울방학이 되고, 그 문자열이 alt로도 새어 나갑니다.

② 배치가 검색어와 무관합니다. 이미지는 섹션별 쿼리로 따로 찾는데(img["search_query"]에 기록까지 됨), 삽입은 위치 고정입니다 — 첫 <p> 뒤, 2·4번째 H2 앞. 관련성 필터·중복 제거로 목록이 줄면 A섹션용으로 찾은 그림이 B섹션 앞에 놓입니다.

③ 이미 있는 계획을 아무도 안 읽습니다.final_editorimage_list(position·description·alt)를 만들지만 저장소 전체에서 읽는 곳이 0곳이고, 애초에 이미지가 삽입된 뒤에 생성돼 검색에 쓸 수도 없습니다.

바꾼 것

생성 프롬프트가 본문과 함께 image_plan을 내놓습니다 — 섹션마다 heading(본문과 글자 그대로 같은 H2), subject(그 대목이 실제로 설명하는 장면), search_en, alt. 스키마 8곳 전부에 넣었습니다. 한 곳이라도 빠지면 그 프롬프트로 쓴 글만 조용히 옛 방식이 되므로, 개수가 어긋나면 실패하는 테스트를 넣었습니다.

  • 검색 — 계획의 영어 검색어 우선. 무료 소스(Pixabay·Wikimedia·Unsplash) 제목이 대부분 영어라, 한국어로 찾으면 번역 추정을 거쳐 정확도가 떨어집니다
  • 배치 — 계획한 H2 바로 앞. 자리를 순서로 짐작하지 않고 search_query로 되짚어 이미지와 계획을 짝지어, 목록이 줄어도 섹션이 밀리지 않습니다
  • alt — 계획의 alt

물러설 자리를 남겼습니다

계획이 없는 글(옛 글 재생성, 모델이 필드를 뺀 경우), 형식이 깨진 계획, 본문에서 못 찾는 H2 제목 — 모두 기존 방식으로 돌아갑니다. 계획이 없다고 이미지가 아예 안 붙거나 버려지면 안 됩니다. 이 폴백들도 테스트로 고정했습니다.

확인

  • 새 테스트 12건
  • 영어 검색어 우선·배치·alt를 각각 되돌려 5건이 실패하는 것을 확인한 뒤 복원
  • 프롬프트를 실제 렌더링해 스키마가 깨지지 않은 것 확인
  • 전체 1282 passed, 2 skipped

효과는 다음 발행분부터 나타납니다. 내일 07:00 KST 실행 결과에서 alt와 배치를 다시 재보겠습니다.

🤖 Generated with Claude Code

https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69


Generated by Claude Code

발행 글에서 실제로 확인한 것
────────────────────────────
· alt에 3단어로 줄인 검색어가 그대로 나갔습니다
'발리 겨울방학' / '중개형 ISA' / '경기도 여름'
· 검색어는 H2 제목과 본문 명사를 기계적으로 조합해 만들고
(_extract_section_queries), 배치는 순서로만 정했습니다
(첫 <p> 뒤, 2·4번째 H2 앞). 이미지는 섹션별로 따로 찾는데 배치는
고정이라, 관련성 필터·중복 제거로 목록이 줄면 A섹션용 그림이 B섹션
앞에 놓였습니다
· final_editor가 image_list(위치·설명·alt)를 만들지만 아무도 읽지
않았고, 이미지가 이미 삽입된 뒤에 만들어져 검색에 쓸 수도 없었습니다
바꾼 것
───────
생성 프롬프트가 image_plan을 함께 내놓습니다 — 섹션별로 heading(본문과
글자 그대로 같은 H2), subject(그 대목이 실제로 설명하는 장면), search_en,
alt. 스키마 8곳 전부에 넣었습니다. 한 곳이라도 빠지면 그 프롬프트로 쓴
글만 조용히 옛 방식이 됩니다.
검색 — 계획의 영어 검색어를 씁니다. 무료 소스(Pixabay·Wikimedia·
Unsplash) 제목이 대부분 영어라 한국어로 찾으면 번역 추정을 거칩니다
배치 — 계획한 H2 바로 앞에 넣습니다. 자리를 순서로 짐작하지 않고
검색어로 되짚어 이미지와 계획을 짝지웁니다
alt — 계획의 alt를 씁니다
계획이 없거나 깨진 글, H2 제목이 안 맞는 이미지는 예전 방식으로 돌아갑니다.
계획이 없다고 이미지가 아예 안 붙거나 버려지면 안 됩니다.
검증: 영어 검색어 우선·배치·alt를 각각 되돌려 5건이 실패하는 것을 확인한
뒤 복원. 1282 passed, 2 skipped.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69
@Kevinlee7250
Kevinlee7250 marked this pull request as ready for review August 30, 2026 15:20
@Kevinlee7250
Kevinlee7250 merged commit a768284 into latestAug 30, 2026
2 checks passed
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.

2 participants

@Kevinlee7250@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

이미지가 글의 그 대목과 맞도록 — 글이 세운 계획을 따르게 함 - #58

Merged
Kevinlee7250 merged 1 commit into
latestfrom
claude/session-0119g48zqt4k-lwfzrd
Aug 30, 2026
Merged

이미지가 글의 그 대목과 맞도록 — 글이 세운 계획을 따르게 함#58
Kevinlee7250 merged 1 commit into
latestfrom
claude/session-0119g48zqt4k-lwfzrd

Conversation

@Kevinlee7250

Copy link
Copy Markdown
Owner

먼저 현재 상태를 실제 발행 글로 측정했습니다

최근 초안 6편의 이미지 alt와 실제 놓인 섹션을 대조한 결과:

alt놓인 섹션
발리 겨울방학(도입부)
발리 겨울방학 가족여행 패키지 비교해보니겨울방학 발리 가족여행, 패키지 선택이 유독…
중개형 ISA(도입부)
경기도 여름(도입부)

alt가 3단어로 줄인 검색어 그대로입니다.

원인 세 가지

① 검색어가 글이 아니라 문자열 조작에서 나옵니다._extract_section_queries가 H2 제목과 본문 명사를 기계적으로 조합합니다. 그래서 "겨울방학 발리 가족여행, 패키지 선택이 유독 어려운 이유" 섹션의 검색어가 발리 겨울방학이 되고, 그 문자열이 alt로도 새어 나갑니다.

② 배치가 검색어와 무관합니다. 이미지는 섹션별 쿼리로 따로 찾는데(img["search_query"]에 기록까지 됨), 삽입은 위치 고정입니다 — 첫 <p> 뒤, 2·4번째 H2 앞. 관련성 필터·중복 제거로 목록이 줄면 A섹션용으로 찾은 그림이 B섹션 앞에 놓입니다.

③ 이미 있는 계획을 아무도 안 읽습니다.final_editorimage_list(position·description·alt)를 만들지만 저장소 전체에서 읽는 곳이 0곳이고, 애초에 이미지가 삽입된 뒤에 생성돼 검색에 쓸 수도 없습니다.

바꾼 것

생성 프롬프트가 본문과 함께 image_plan을 내놓습니다 — 섹션마다 heading(본문과 글자 그대로 같은 H2), subject(그 대목이 실제로 설명하는 장면), search_en, alt. 스키마 8곳 전부에 넣었습니다. 한 곳이라도 빠지면 그 프롬프트로 쓴 글만 조용히 옛 방식이 되므로, 개수가 어긋나면 실패하는 테스트를 넣었습니다.

  • 검색 — 계획의 영어 검색어 우선. 무료 소스(Pixabay·Wikimedia·Unsplash) 제목이 대부분 영어라, 한국어로 찾으면 번역 추정을 거쳐 정확도가 떨어집니다
  • 배치 — 계획한 H2 바로 앞. 자리를 순서로 짐작하지 않고 search_query로 되짚어 이미지와 계획을 짝지어, 목록이 줄어도 섹션이 밀리지 않습니다
  • alt — 계획의 alt

물러설 자리를 남겼습니다

계획이 없는 글(옛 글 재생성, 모델이 필드를 뺀 경우), 형식이 깨진 계획, 본문에서 못 찾는 H2 제목 — 모두 기존 방식으로 돌아갑니다. 계획이 없다고 이미지가 아예 안 붙거나 버려지면 안 됩니다. 이 폴백들도 테스트로 고정했습니다.

확인

  • 새 테스트 12건
  • 영어 검색어 우선·배치·alt를 각각 되돌려 5건이 실패하는 것을 확인한 뒤 복원
  • 프롬프트를 실제 렌더링해 스키마가 깨지지 않은 것 확인
  • 전체 1282 passed, 2 skipped

효과는 다음 발행분부터 나타납니다. 내일 07:00 KST 실행 결과에서 alt와 배치를 다시 재보겠습니다.

🤖 Generated with Claude Code

https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69


Generated by Claude Code

발행 글에서 실제로 확인한 것
────────────────────────────
· alt에 3단어로 줄인 검색어가 그대로 나갔습니다
'발리 겨울방학' / '중개형 ISA' / '경기도 여름'
· 검색어는 H2 제목과 본문 명사를 기계적으로 조합해 만들고
(_extract_section_queries), 배치는 순서로만 정했습니다
(첫 <p> 뒤, 2·4번째 H2 앞). 이미지는 섹션별로 따로 찾는데 배치는
고정이라, 관련성 필터·중복 제거로 목록이 줄면 A섹션용 그림이 B섹션
앞에 놓였습니다
· final_editor가 image_list(위치·설명·alt)를 만들지만 아무도 읽지
않았고, 이미지가 이미 삽입된 뒤에 만들어져 검색에 쓸 수도 없었습니다
바꾼 것
───────
생성 프롬프트가 image_plan을 함께 내놓습니다 — 섹션별로 heading(본문과
글자 그대로 같은 H2), subject(그 대목이 실제로 설명하는 장면), search_en,
alt. 스키마 8곳 전부에 넣었습니다. 한 곳이라도 빠지면 그 프롬프트로 쓴
글만 조용히 옛 방식이 됩니다.
검색 — 계획의 영어 검색어를 씁니다. 무료 소스(Pixabay·Wikimedia·
Unsplash) 제목이 대부분 영어라 한국어로 찾으면 번역 추정을 거칩니다
배치 — 계획한 H2 바로 앞에 넣습니다. 자리를 순서로 짐작하지 않고
검색어로 되짚어 이미지와 계획을 짝지웁니다
alt — 계획의 alt를 씁니다
계획이 없거나 깨진 글, H2 제목이 안 맞는 이미지는 예전 방식으로 돌아갑니다.
계획이 없다고 이미지가 아예 안 붙거나 버려지면 안 됩니다.
검증: 영어 검색어 우선·배치·alt를 각각 되돌려 5건이 실패하는 것을 확인한
뒤 복원. 1282 passed, 2 skipped.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69
@Kevinlee7250
Kevinlee7250 marked this pull request as ready for review August 30, 2026 15:20
@Kevinlee7250
Kevinlee7250 merged commit a768284 into latestAug 30, 2026
2 checks passed
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.

2 participants

@Kevinlee7250@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

이미지가 글의 그 대목과 맞도록 — 글이 세운 계획을 따르게 함 - #58

Merged
Kevinlee7250 merged 1 commit into
latestfrom
claude/session-0119g48zqt4k-lwfzrd
Aug 30, 2026
Merged

이미지가 글의 그 대목과 맞도록 — 글이 세운 계획을 따르게 함#58
Kevinlee7250 merged 1 commit into
latestfrom
claude/session-0119g48zqt4k-lwfzrd

Conversation

@Kevinlee7250

Copy link
Copy Markdown
Owner

먼저 현재 상태를 실제 발행 글로 측정했습니다

최근 초안 6편의 이미지 alt와 실제 놓인 섹션을 대조한 결과:

alt놓인 섹션
발리 겨울방학(도입부)
발리 겨울방학 가족여행 패키지 비교해보니겨울방학 발리 가족여행, 패키지 선택이 유독…
중개형 ISA(도입부)
경기도 여름(도입부)

alt가 3단어로 줄인 검색어 그대로입니다.

원인 세 가지

① 검색어가 글이 아니라 문자열 조작에서 나옵니다._extract_section_queries가 H2 제목과 본문 명사를 기계적으로 조합합니다. 그래서 "겨울방학 발리 가족여행, 패키지 선택이 유독 어려운 이유" 섹션의 검색어가 발리 겨울방학이 되고, 그 문자열이 alt로도 새어 나갑니다.

② 배치가 검색어와 무관합니다. 이미지는 섹션별 쿼리로 따로 찾는데(img["search_query"]에 기록까지 됨), 삽입은 위치 고정입니다 — 첫 <p> 뒤, 2·4번째 H2 앞. 관련성 필터·중복 제거로 목록이 줄면 A섹션용으로 찾은 그림이 B섹션 앞에 놓입니다.

③ 이미 있는 계획을 아무도 안 읽습니다.final_editorimage_list(position·description·alt)를 만들지만 저장소 전체에서 읽는 곳이 0곳이고, 애초에 이미지가 삽입된 뒤에 생성돼 검색에 쓸 수도 없습니다.

바꾼 것

생성 프롬프트가 본문과 함께 image_plan을 내놓습니다 — 섹션마다 heading(본문과 글자 그대로 같은 H2), subject(그 대목이 실제로 설명하는 장면), search_en, alt. 스키마 8곳 전부에 넣었습니다. 한 곳이라도 빠지면 그 프롬프트로 쓴 글만 조용히 옛 방식이 되므로, 개수가 어긋나면 실패하는 테스트를 넣었습니다.

  • 검색 — 계획의 영어 검색어 우선. 무료 소스(Pixabay·Wikimedia·Unsplash) 제목이 대부분 영어라, 한국어로 찾으면 번역 추정을 거쳐 정확도가 떨어집니다
  • 배치 — 계획한 H2 바로 앞. 자리를 순서로 짐작하지 않고 search_query로 되짚어 이미지와 계획을 짝지어, 목록이 줄어도 섹션이 밀리지 않습니다
  • alt — 계획의 alt

물러설 자리를 남겼습니다

계획이 없는 글(옛 글 재생성, 모델이 필드를 뺀 경우), 형식이 깨진 계획, 본문에서 못 찾는 H2 제목 — 모두 기존 방식으로 돌아갑니다. 계획이 없다고 이미지가 아예 안 붙거나 버려지면 안 됩니다. 이 폴백들도 테스트로 고정했습니다.

확인

  • 새 테스트 12건
  • 영어 검색어 우선·배치·alt를 각각 되돌려 5건이 실패하는 것을 확인한 뒤 복원
  • 프롬프트를 실제 렌더링해 스키마가 깨지지 않은 것 확인
  • 전체 1282 passed, 2 skipped

효과는 다음 발행분부터 나타납니다. 내일 07:00 KST 실행 결과에서 alt와 배치를 다시 재보겠습니다.

🤖 Generated with Claude Code

https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69


Generated by Claude Code

발행 글에서 실제로 확인한 것
────────────────────────────
· alt에 3단어로 줄인 검색어가 그대로 나갔습니다
'발리 겨울방학' / '중개형 ISA' / '경기도 여름'
· 검색어는 H2 제목과 본문 명사를 기계적으로 조합해 만들고
(_extract_section_queries), 배치는 순서로만 정했습니다
(첫 <p> 뒤, 2·4번째 H2 앞). 이미지는 섹션별로 따로 찾는데 배치는
고정이라, 관련성 필터·중복 제거로 목록이 줄면 A섹션용 그림이 B섹션
앞에 놓였습니다
· final_editor가 image_list(위치·설명·alt)를 만들지만 아무도 읽지
않았고, 이미지가 이미 삽입된 뒤에 만들어져 검색에 쓸 수도 없었습니다
바꾼 것
───────
생성 프롬프트가 image_plan을 함께 내놓습니다 — 섹션별로 heading(본문과
글자 그대로 같은 H2), subject(그 대목이 실제로 설명하는 장면), search_en,
alt. 스키마 8곳 전부에 넣었습니다. 한 곳이라도 빠지면 그 프롬프트로 쓴
글만 조용히 옛 방식이 됩니다.
검색 — 계획의 영어 검색어를 씁니다. 무료 소스(Pixabay·Wikimedia·
Unsplash) 제목이 대부분 영어라 한국어로 찾으면 번역 추정을 거칩니다
배치 — 계획한 H2 바로 앞에 넣습니다. 자리를 순서로 짐작하지 않고
검색어로 되짚어 이미지와 계획을 짝지웁니다
alt — 계획의 alt를 씁니다
계획이 없거나 깨진 글, H2 제목이 안 맞는 이미지는 예전 방식으로 돌아갑니다.
계획이 없다고 이미지가 아예 안 붙거나 버려지면 안 됩니다.
검증: 영어 검색어 우선·배치·alt를 각각 되돌려 5건이 실패하는 것을 확인한
뒤 복원. 1282 passed, 2 skipped.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69
@Kevinlee7250
Kevinlee7250 marked this pull request as ready for review August 30, 2026 15:20
@Kevinlee7250
Kevinlee7250 merged commit a768284 into latestAug 30, 2026
2 checks passed
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.

2 participants

@Kevinlee7250@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

이미지가 글의 그 대목과 맞도록 — 글이 세운 계획을 따르게 함 - #58

Merged
Kevinlee7250 merged 1 commit into
latestfrom
claude/session-0119g48zqt4k-lwfzrd
Aug 30, 2026
Merged

이미지가 글의 그 대목과 맞도록 — 글이 세운 계획을 따르게 함#58
Kevinlee7250 merged 1 commit into
latestfrom
claude/session-0119g48zqt4k-lwfzrd

Conversation

@Kevinlee7250

Copy link
Copy Markdown
Owner

먼저 현재 상태를 실제 발행 글로 측정했습니다

최근 초안 6편의 이미지 alt와 실제 놓인 섹션을 대조한 결과:

alt놓인 섹션
발리 겨울방학(도입부)
발리 겨울방학 가족여행 패키지 비교해보니겨울방학 발리 가족여행, 패키지 선택이 유독…
중개형 ISA(도입부)
경기도 여름(도입부)

alt가 3단어로 줄인 검색어 그대로입니다.

원인 세 가지

① 검색어가 글이 아니라 문자열 조작에서 나옵니다._extract_section_queries가 H2 제목과 본문 명사를 기계적으로 조합합니다. 그래서 "겨울방학 발리 가족여행, 패키지 선택이 유독 어려운 이유" 섹션의 검색어가 발리 겨울방학이 되고, 그 문자열이 alt로도 새어 나갑니다.

② 배치가 검색어와 무관합니다. 이미지는 섹션별 쿼리로 따로 찾는데(img["search_query"]에 기록까지 됨), 삽입은 위치 고정입니다 — 첫 <p> 뒤, 2·4번째 H2 앞. 관련성 필터·중복 제거로 목록이 줄면 A섹션용으로 찾은 그림이 B섹션 앞에 놓입니다.

③ 이미 있는 계획을 아무도 안 읽습니다.final_editorimage_list(position·description·alt)를 만들지만 저장소 전체에서 읽는 곳이 0곳이고, 애초에 이미지가 삽입된 뒤에 생성돼 검색에 쓸 수도 없습니다.

바꾼 것

생성 프롬프트가 본문과 함께 image_plan을 내놓습니다 — 섹션마다 heading(본문과 글자 그대로 같은 H2), subject(그 대목이 실제로 설명하는 장면), search_en, alt. 스키마 8곳 전부에 넣었습니다. 한 곳이라도 빠지면 그 프롬프트로 쓴 글만 조용히 옛 방식이 되므로, 개수가 어긋나면 실패하는 테스트를 넣었습니다.

  • 검색 — 계획의 영어 검색어 우선. 무료 소스(Pixabay·Wikimedia·Unsplash) 제목이 대부분 영어라, 한국어로 찾으면 번역 추정을 거쳐 정확도가 떨어집니다
  • 배치 — 계획한 H2 바로 앞. 자리를 순서로 짐작하지 않고 search_query로 되짚어 이미지와 계획을 짝지어, 목록이 줄어도 섹션이 밀리지 않습니다
  • alt — 계획의 alt

물러설 자리를 남겼습니다

계획이 없는 글(옛 글 재생성, 모델이 필드를 뺀 경우), 형식이 깨진 계획, 본문에서 못 찾는 H2 제목 — 모두 기존 방식으로 돌아갑니다. 계획이 없다고 이미지가 아예 안 붙거나 버려지면 안 됩니다. 이 폴백들도 테스트로 고정했습니다.

확인

  • 새 테스트 12건
  • 영어 검색어 우선·배치·alt를 각각 되돌려 5건이 실패하는 것을 확인한 뒤 복원
  • 프롬프트를 실제 렌더링해 스키마가 깨지지 않은 것 확인
  • 전체 1282 passed, 2 skipped

효과는 다음 발행분부터 나타납니다. 내일 07:00 KST 실행 결과에서 alt와 배치를 다시 재보겠습니다.

🤖 Generated with Claude Code

https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69


Generated by Claude Code

발행 글에서 실제로 확인한 것
────────────────────────────
· alt에 3단어로 줄인 검색어가 그대로 나갔습니다
'발리 겨울방학' / '중개형 ISA' / '경기도 여름'
· 검색어는 H2 제목과 본문 명사를 기계적으로 조합해 만들고
(_extract_section_queries), 배치는 순서로만 정했습니다
(첫 <p> 뒤, 2·4번째 H2 앞). 이미지는 섹션별로 따로 찾는데 배치는
고정이라, 관련성 필터·중복 제거로 목록이 줄면 A섹션용 그림이 B섹션
앞에 놓였습니다
· final_editor가 image_list(위치·설명·alt)를 만들지만 아무도 읽지
않았고, 이미지가 이미 삽입된 뒤에 만들어져 검색에 쓸 수도 없었습니다
바꾼 것
───────
생성 프롬프트가 image_plan을 함께 내놓습니다 — 섹션별로 heading(본문과
글자 그대로 같은 H2), subject(그 대목이 실제로 설명하는 장면), search_en,
alt. 스키마 8곳 전부에 넣었습니다. 한 곳이라도 빠지면 그 프롬프트로 쓴
글만 조용히 옛 방식이 됩니다.
검색 — 계획의 영어 검색어를 씁니다. 무료 소스(Pixabay·Wikimedia·
Unsplash) 제목이 대부분 영어라 한국어로 찾으면 번역 추정을 거칩니다
배치 — 계획한 H2 바로 앞에 넣습니다. 자리를 순서로 짐작하지 않고
검색어로 되짚어 이미지와 계획을 짝지웁니다
alt — 계획의 alt를 씁니다
계획이 없거나 깨진 글, H2 제목이 안 맞는 이미지는 예전 방식으로 돌아갑니다.
계획이 없다고 이미지가 아예 안 붙거나 버려지면 안 됩니다.
검증: 영어 검색어 우선·배치·alt를 각각 되돌려 5건이 실패하는 것을 확인한
뒤 복원. 1282 passed, 2 skipped.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69
@Kevinlee7250
Kevinlee7250 marked this pull request as ready for review August 30, 2026 15:20
@Kevinlee7250
Kevinlee7250 merged commit a768284 into latestAug 30, 2026
2 checks passed
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.

2 participants

@Kevinlee7250@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

이미지가 글의 그 대목과 맞도록 — 글이 세운 계획을 따르게 함 - #58

Merged
Kevinlee7250 merged 1 commit into
latestfrom
claude/session-0119g48zqt4k-lwfzrd
Aug 30, 2026
Merged

이미지가 글의 그 대목과 맞도록 — 글이 세운 계획을 따르게 함#58
Kevinlee7250 merged 1 commit into
latestfrom
claude/session-0119g48zqt4k-lwfzrd

Conversation

@Kevinlee7250

Copy link
Copy Markdown
Owner

먼저 현재 상태를 실제 발행 글로 측정했습니다

최근 초안 6편의 이미지 alt와 실제 놓인 섹션을 대조한 결과:

alt놓인 섹션
발리 겨울방학(도입부)
발리 겨울방학 가족여행 패키지 비교해보니겨울방학 발리 가족여행, 패키지 선택이 유독…
중개형 ISA(도입부)
경기도 여름(도입부)

alt가 3단어로 줄인 검색어 그대로입니다.

원인 세 가지

① 검색어가 글이 아니라 문자열 조작에서 나옵니다._extract_section_queries가 H2 제목과 본문 명사를 기계적으로 조합합니다. 그래서 "겨울방학 발리 가족여행, 패키지 선택이 유독 어려운 이유" 섹션의 검색어가 발리 겨울방학이 되고, 그 문자열이 alt로도 새어 나갑니다.

② 배치가 검색어와 무관합니다. 이미지는 섹션별 쿼리로 따로 찾는데(img["search_query"]에 기록까지 됨), 삽입은 위치 고정입니다 — 첫 <p> 뒤, 2·4번째 H2 앞. 관련성 필터·중복 제거로 목록이 줄면 A섹션용으로 찾은 그림이 B섹션 앞에 놓입니다.

③ 이미 있는 계획을 아무도 안 읽습니다.final_editorimage_list(position·description·alt)를 만들지만 저장소 전체에서 읽는 곳이 0곳이고, 애초에 이미지가 삽입된 뒤에 생성돼 검색에 쓸 수도 없습니다.

바꾼 것

생성 프롬프트가 본문과 함께 image_plan을 내놓습니다 — 섹션마다 heading(본문과 글자 그대로 같은 H2), subject(그 대목이 실제로 설명하는 장면), search_en, alt. 스키마 8곳 전부에 넣었습니다. 한 곳이라도 빠지면 그 프롬프트로 쓴 글만 조용히 옛 방식이 되므로, 개수가 어긋나면 실패하는 테스트를 넣었습니다.

  • 검색 — 계획의 영어 검색어 우선. 무료 소스(Pixabay·Wikimedia·Unsplash) 제목이 대부분 영어라, 한국어로 찾으면 번역 추정을 거쳐 정확도가 떨어집니다
  • 배치 — 계획한 H2 바로 앞. 자리를 순서로 짐작하지 않고 search_query로 되짚어 이미지와 계획을 짝지어, 목록이 줄어도 섹션이 밀리지 않습니다
  • alt — 계획의 alt

물러설 자리를 남겼습니다

계획이 없는 글(옛 글 재생성, 모델이 필드를 뺀 경우), 형식이 깨진 계획, 본문에서 못 찾는 H2 제목 — 모두 기존 방식으로 돌아갑니다. 계획이 없다고 이미지가 아예 안 붙거나 버려지면 안 됩니다. 이 폴백들도 테스트로 고정했습니다.

확인

  • 새 테스트 12건
  • 영어 검색어 우선·배치·alt를 각각 되돌려 5건이 실패하는 것을 확인한 뒤 복원
  • 프롬프트를 실제 렌더링해 스키마가 깨지지 않은 것 확인
  • 전체 1282 passed, 2 skipped

효과는 다음 발행분부터 나타납니다. 내일 07:00 KST 실행 결과에서 alt와 배치를 다시 재보겠습니다.

🤖 Generated with Claude Code

https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69


Generated by Claude Code

발행 글에서 실제로 확인한 것
────────────────────────────
· alt에 3단어로 줄인 검색어가 그대로 나갔습니다
'발리 겨울방학' / '중개형 ISA' / '경기도 여름'
· 검색어는 H2 제목과 본문 명사를 기계적으로 조합해 만들고
(_extract_section_queries), 배치는 순서로만 정했습니다
(첫 <p> 뒤, 2·4번째 H2 앞). 이미지는 섹션별로 따로 찾는데 배치는
고정이라, 관련성 필터·중복 제거로 목록이 줄면 A섹션용 그림이 B섹션
앞에 놓였습니다
· final_editor가 image_list(위치·설명·alt)를 만들지만 아무도 읽지
않았고, 이미지가 이미 삽입된 뒤에 만들어져 검색에 쓸 수도 없었습니다
바꾼 것
───────
생성 프롬프트가 image_plan을 함께 내놓습니다 — 섹션별로 heading(본문과
글자 그대로 같은 H2), subject(그 대목이 실제로 설명하는 장면), search_en,
alt. 스키마 8곳 전부에 넣었습니다. 한 곳이라도 빠지면 그 프롬프트로 쓴
글만 조용히 옛 방식이 됩니다.
검색 — 계획의 영어 검색어를 씁니다. 무료 소스(Pixabay·Wikimedia·
Unsplash) 제목이 대부분 영어라 한국어로 찾으면 번역 추정을 거칩니다
배치 — 계획한 H2 바로 앞에 넣습니다. 자리를 순서로 짐작하지 않고
검색어로 되짚어 이미지와 계획을 짝지웁니다
alt — 계획의 alt를 씁니다
계획이 없거나 깨진 글, H2 제목이 안 맞는 이미지는 예전 방식으로 돌아갑니다.
계획이 없다고 이미지가 아예 안 붙거나 버려지면 안 됩니다.
검증: 영어 검색어 우선·배치·alt를 각각 되돌려 5건이 실패하는 것을 확인한
뒤 복원. 1282 passed, 2 skipped.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69
@Kevinlee7250
Kevinlee7250 marked this pull request as ready for review August 30, 2026 15:20
@Kevinlee7250
Kevinlee7250 merged commit a768284 into latestAug 30, 2026
2 checks passed
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.

2 participants

@Kevinlee7250@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

이미지가 글의 그 대목과 맞도록 — 글이 세운 계획을 따르게 함 - #58

Merged
Kevinlee7250 merged 1 commit into
latestfrom
claude/session-0119g48zqt4k-lwfzrd
Aug 30, 2026
Merged

이미지가 글의 그 대목과 맞도록 — 글이 세운 계획을 따르게 함#58
Kevinlee7250 merged 1 commit into
latestfrom
claude/session-0119g48zqt4k-lwfzrd

Conversation

@Kevinlee7250

Copy link
Copy Markdown
Owner

먼저 현재 상태를 실제 발행 글로 측정했습니다

최근 초안 6편의 이미지 alt와 실제 놓인 섹션을 대조한 결과:

alt놓인 섹션
발리 겨울방학(도입부)
발리 겨울방학 가족여행 패키지 비교해보니겨울방학 발리 가족여행, 패키지 선택이 유독…
중개형 ISA(도입부)
경기도 여름(도입부)

alt가 3단어로 줄인 검색어 그대로입니다.

원인 세 가지

① 검색어가 글이 아니라 문자열 조작에서 나옵니다._extract_section_queries가 H2 제목과 본문 명사를 기계적으로 조합합니다. 그래서 "겨울방학 발리 가족여행, 패키지 선택이 유독 어려운 이유" 섹션의 검색어가 발리 겨울방학이 되고, 그 문자열이 alt로도 새어 나갑니다.

② 배치가 검색어와 무관합니다. 이미지는 섹션별 쿼리로 따로 찾는데(img["search_query"]에 기록까지 됨), 삽입은 위치 고정입니다 — 첫 <p> 뒤, 2·4번째 H2 앞. 관련성 필터·중복 제거로 목록이 줄면 A섹션용으로 찾은 그림이 B섹션 앞에 놓입니다.

③ 이미 있는 계획을 아무도 안 읽습니다.final_editorimage_list(position·description·alt)를 만들지만 저장소 전체에서 읽는 곳이 0곳이고, 애초에 이미지가 삽입된 뒤에 생성돼 검색에 쓸 수도 없습니다.

바꾼 것

생성 프롬프트가 본문과 함께 image_plan을 내놓습니다 — 섹션마다 heading(본문과 글자 그대로 같은 H2), subject(그 대목이 실제로 설명하는 장면), search_en, alt. 스키마 8곳 전부에 넣었습니다. 한 곳이라도 빠지면 그 프롬프트로 쓴 글만 조용히 옛 방식이 되므로, 개수가 어긋나면 실패하는 테스트를 넣었습니다.

  • 검색 — 계획의 영어 검색어 우선. 무료 소스(Pixabay·Wikimedia·Unsplash) 제목이 대부분 영어라, 한국어로 찾으면 번역 추정을 거쳐 정확도가 떨어집니다
  • 배치 — 계획한 H2 바로 앞. 자리를 순서로 짐작하지 않고 search_query로 되짚어 이미지와 계획을 짝지어, 목록이 줄어도 섹션이 밀리지 않습니다
  • alt — 계획의 alt

물러설 자리를 남겼습니다

계획이 없는 글(옛 글 재생성, 모델이 필드를 뺀 경우), 형식이 깨진 계획, 본문에서 못 찾는 H2 제목 — 모두 기존 방식으로 돌아갑니다. 계획이 없다고 이미지가 아예 안 붙거나 버려지면 안 됩니다. 이 폴백들도 테스트로 고정했습니다.

확인

  • 새 테스트 12건
  • 영어 검색어 우선·배치·alt를 각각 되돌려 5건이 실패하는 것을 확인한 뒤 복원
  • 프롬프트를 실제 렌더링해 스키마가 깨지지 않은 것 확인
  • 전체 1282 passed, 2 skipped

효과는 다음 발행분부터 나타납니다. 내일 07:00 KST 실행 결과에서 alt와 배치를 다시 재보겠습니다.

🤖 Generated with Claude Code

https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69


Generated by Claude Code

발행 글에서 실제로 확인한 것
────────────────────────────
· alt에 3단어로 줄인 검색어가 그대로 나갔습니다
'발리 겨울방학' / '중개형 ISA' / '경기도 여름'
· 검색어는 H2 제목과 본문 명사를 기계적으로 조합해 만들고
(_extract_section_queries), 배치는 순서로만 정했습니다
(첫 <p> 뒤, 2·4번째 H2 앞). 이미지는 섹션별로 따로 찾는데 배치는
고정이라, 관련성 필터·중복 제거로 목록이 줄면 A섹션용 그림이 B섹션
앞에 놓였습니다
· final_editor가 image_list(위치·설명·alt)를 만들지만 아무도 읽지
않았고, 이미지가 이미 삽입된 뒤에 만들어져 검색에 쓸 수도 없었습니다
바꾼 것
───────
생성 프롬프트가 image_plan을 함께 내놓습니다 — 섹션별로 heading(본문과
글자 그대로 같은 H2), subject(그 대목이 실제로 설명하는 장면), search_en,
alt. 스키마 8곳 전부에 넣었습니다. 한 곳이라도 빠지면 그 프롬프트로 쓴
글만 조용히 옛 방식이 됩니다.
검색 — 계획의 영어 검색어를 씁니다. 무료 소스(Pixabay·Wikimedia·
Unsplash) 제목이 대부분 영어라 한국어로 찾으면 번역 추정을 거칩니다
배치 — 계획한 H2 바로 앞에 넣습니다. 자리를 순서로 짐작하지 않고
검색어로 되짚어 이미지와 계획을 짝지웁니다
alt — 계획의 alt를 씁니다
계획이 없거나 깨진 글, H2 제목이 안 맞는 이미지는 예전 방식으로 돌아갑니다.
계획이 없다고 이미지가 아예 안 붙거나 버려지면 안 됩니다.
검증: 영어 검색어 우선·배치·alt를 각각 되돌려 5건이 실패하는 것을 확인한
뒤 복원. 1282 passed, 2 skipped.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69
@Kevinlee7250
Kevinlee7250 marked this pull request as ready for review August 30, 2026 15:20
@Kevinlee7250
Kevinlee7250 merged commit a768284 into latestAug 30, 2026
2 checks passed
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.

2 participants

@Kevinlee7250@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

이미지가 글의 그 대목과 맞도록 — 글이 세운 계획을 따르게 함 - #58

Merged
Kevinlee7250 merged 1 commit into
latestfrom
claude/session-0119g48zqt4k-lwfzrd
Aug 30, 2026
Merged

이미지가 글의 그 대목과 맞도록 — 글이 세운 계획을 따르게 함#58
Kevinlee7250 merged 1 commit into
latestfrom
claude/session-0119g48zqt4k-lwfzrd

Conversation

@Kevinlee7250

Copy link
Copy Markdown
Owner

먼저 현재 상태를 실제 발행 글로 측정했습니다

최근 초안 6편의 이미지 alt와 실제 놓인 섹션을 대조한 결과:

alt놓인 섹션
발리 겨울방학(도입부)
발리 겨울방학 가족여행 패키지 비교해보니겨울방학 발리 가족여행, 패키지 선택이 유독…
중개형 ISA(도입부)
경기도 여름(도입부)

alt가 3단어로 줄인 검색어 그대로입니다.

원인 세 가지

① 검색어가 글이 아니라 문자열 조작에서 나옵니다._extract_section_queries가 H2 제목과 본문 명사를 기계적으로 조합합니다. 그래서 "겨울방학 발리 가족여행, 패키지 선택이 유독 어려운 이유" 섹션의 검색어가 발리 겨울방학이 되고, 그 문자열이 alt로도 새어 나갑니다.

② 배치가 검색어와 무관합니다. 이미지는 섹션별 쿼리로 따로 찾는데(img["search_query"]에 기록까지 됨), 삽입은 위치 고정입니다 — 첫 <p> 뒤, 2·4번째 H2 앞. 관련성 필터·중복 제거로 목록이 줄면 A섹션용으로 찾은 그림이 B섹션 앞에 놓입니다.

③ 이미 있는 계획을 아무도 안 읽습니다.final_editorimage_list(position·description·alt)를 만들지만 저장소 전체에서 읽는 곳이 0곳이고, 애초에 이미지가 삽입된 뒤에 생성돼 검색에 쓸 수도 없습니다.

바꾼 것

생성 프롬프트가 본문과 함께 image_plan을 내놓습니다 — 섹션마다 heading(본문과 글자 그대로 같은 H2), subject(그 대목이 실제로 설명하는 장면), search_en, alt. 스키마 8곳 전부에 넣었습니다. 한 곳이라도 빠지면 그 프롬프트로 쓴 글만 조용히 옛 방식이 되므로, 개수가 어긋나면 실패하는 테스트를 넣었습니다.

  • 검색 — 계획의 영어 검색어 우선. 무료 소스(Pixabay·Wikimedia·Unsplash) 제목이 대부분 영어라, 한국어로 찾으면 번역 추정을 거쳐 정확도가 떨어집니다
  • 배치 — 계획한 H2 바로 앞. 자리를 순서로 짐작하지 않고 search_query로 되짚어 이미지와 계획을 짝지어, 목록이 줄어도 섹션이 밀리지 않습니다
  • alt — 계획의 alt

물러설 자리를 남겼습니다

계획이 없는 글(옛 글 재생성, 모델이 필드를 뺀 경우), 형식이 깨진 계획, 본문에서 못 찾는 H2 제목 — 모두 기존 방식으로 돌아갑니다. 계획이 없다고 이미지가 아예 안 붙거나 버려지면 안 됩니다. 이 폴백들도 테스트로 고정했습니다.

확인

  • 새 테스트 12건
  • 영어 검색어 우선·배치·alt를 각각 되돌려 5건이 실패하는 것을 확인한 뒤 복원
  • 프롬프트를 실제 렌더링해 스키마가 깨지지 않은 것 확인
  • 전체 1282 passed, 2 skipped

효과는 다음 발행분부터 나타납니다. 내일 07:00 KST 실행 결과에서 alt와 배치를 다시 재보겠습니다.

🤖 Generated with Claude Code

https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69


Generated by Claude Code

발행 글에서 실제로 확인한 것
────────────────────────────
· alt에 3단어로 줄인 검색어가 그대로 나갔습니다
'발리 겨울방학' / '중개형 ISA' / '경기도 여름'
· 검색어는 H2 제목과 본문 명사를 기계적으로 조합해 만들고
(_extract_section_queries), 배치는 순서로만 정했습니다
(첫 <p> 뒤, 2·4번째 H2 앞). 이미지는 섹션별로 따로 찾는데 배치는
고정이라, 관련성 필터·중복 제거로 목록이 줄면 A섹션용 그림이 B섹션
앞에 놓였습니다
· final_editor가 image_list(위치·설명·alt)를 만들지만 아무도 읽지
않았고, 이미지가 이미 삽입된 뒤에 만들어져 검색에 쓸 수도 없었습니다
바꾼 것
───────
생성 프롬프트가 image_plan을 함께 내놓습니다 — 섹션별로 heading(본문과
글자 그대로 같은 H2), subject(그 대목이 실제로 설명하는 장면), search_en,
alt. 스키마 8곳 전부에 넣었습니다. 한 곳이라도 빠지면 그 프롬프트로 쓴
글만 조용히 옛 방식이 됩니다.
검색 — 계획의 영어 검색어를 씁니다. 무료 소스(Pixabay·Wikimedia·
Unsplash) 제목이 대부분 영어라 한국어로 찾으면 번역 추정을 거칩니다
배치 — 계획한 H2 바로 앞에 넣습니다. 자리를 순서로 짐작하지 않고
검색어로 되짚어 이미지와 계획을 짝지웁니다
alt — 계획의 alt를 씁니다
계획이 없거나 깨진 글, H2 제목이 안 맞는 이미지는 예전 방식으로 돌아갑니다.
계획이 없다고 이미지가 아예 안 붙거나 버려지면 안 됩니다.
검증: 영어 검색어 우선·배치·alt를 각각 되돌려 5건이 실패하는 것을 확인한
뒤 복원. 1282 passed, 2 skipped.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69
@Kevinlee7250
Kevinlee7250 marked this pull request as ready for review August 30, 2026 15:20
@Kevinlee7250
Kevinlee7250 merged commit a768284 into latestAug 30, 2026
2 checks passed
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.

2 participants

@Kevinlee7250@claude
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

이미지가 글의 그 대목과 맞도록 — 글이 세운 계획을 따르게 함 - #58

Merged
Kevinlee7250 merged 1 commit into
latestfrom
claude/session-0119g48zqt4k-lwfzrd
Aug 30, 2026
Merged

이미지가 글의 그 대목과 맞도록 — 글이 세운 계획을 따르게 함#58
Kevinlee7250 merged 1 commit into
latestfrom
claude/session-0119g48zqt4k-lwfzrd

Conversation

@Kevinlee7250

Copy link
Copy Markdown
Owner

먼저 현재 상태를 실제 발행 글로 측정했습니다

최근 초안 6편의 이미지 alt와 실제 놓인 섹션을 대조한 결과:

alt놓인 섹션
발리 겨울방학(도입부)
발리 겨울방학 가족여행 패키지 비교해보니겨울방학 발리 가족여행, 패키지 선택이 유독…
중개형 ISA(도입부)
경기도 여름(도입부)

alt가 3단어로 줄인 검색어 그대로입니다.

원인 세 가지

① 검색어가 글이 아니라 문자열 조작에서 나옵니다._extract_section_queries가 H2 제목과 본문 명사를 기계적으로 조합합니다. 그래서 "겨울방학 발리 가족여행, 패키지 선택이 유독 어려운 이유" 섹션의 검색어가 발리 겨울방학이 되고, 그 문자열이 alt로도 새어 나갑니다.

② 배치가 검색어와 무관합니다. 이미지는 섹션별 쿼리로 따로 찾는데(img["search_query"]에 기록까지 됨), 삽입은 위치 고정입니다 — 첫 <p> 뒤, 2·4번째 H2 앞. 관련성 필터·중복 제거로 목록이 줄면 A섹션용으로 찾은 그림이 B섹션 앞에 놓입니다.

③ 이미 있는 계획을 아무도 안 읽습니다.final_editorimage_list(position·description·alt)를 만들지만 저장소 전체에서 읽는 곳이 0곳이고, 애초에 이미지가 삽입된 뒤에 생성돼 검색에 쓸 수도 없습니다.

바꾼 것

생성 프롬프트가 본문과 함께 image_plan을 내놓습니다 — 섹션마다 heading(본문과 글자 그대로 같은 H2), subject(그 대목이 실제로 설명하는 장면), search_en, alt. 스키마 8곳 전부에 넣었습니다. 한 곳이라도 빠지면 그 프롬프트로 쓴 글만 조용히 옛 방식이 되므로, 개수가 어긋나면 실패하는 테스트를 넣었습니다.

  • 검색 — 계획의 영어 검색어 우선. 무료 소스(Pixabay·Wikimedia·Unsplash) 제목이 대부분 영어라, 한국어로 찾으면 번역 추정을 거쳐 정확도가 떨어집니다
  • 배치 — 계획한 H2 바로 앞. 자리를 순서로 짐작하지 않고 search_query로 되짚어 이미지와 계획을 짝지어, 목록이 줄어도 섹션이 밀리지 않습니다
  • alt — 계획의 alt

물러설 자리를 남겼습니다

계획이 없는 글(옛 글 재생성, 모델이 필드를 뺀 경우), 형식이 깨진 계획, 본문에서 못 찾는 H2 제목 — 모두 기존 방식으로 돌아갑니다. 계획이 없다고 이미지가 아예 안 붙거나 버려지면 안 됩니다. 이 폴백들도 테스트로 고정했습니다.

확인

  • 새 테스트 12건
  • 영어 검색어 우선·배치·alt를 각각 되돌려 5건이 실패하는 것을 확인한 뒤 복원
  • 프롬프트를 실제 렌더링해 스키마가 깨지지 않은 것 확인
  • 전체 1282 passed, 2 skipped

효과는 다음 발행분부터 나타납니다. 내일 07:00 KST 실행 결과에서 alt와 배치를 다시 재보겠습니다.

🤖 Generated with Claude Code

https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69


Generated by Claude Code

발행 글에서 실제로 확인한 것
────────────────────────────
· alt에 3단어로 줄인 검색어가 그대로 나갔습니다
'발리 겨울방학' / '중개형 ISA' / '경기도 여름'
· 검색어는 H2 제목과 본문 명사를 기계적으로 조합해 만들고
(_extract_section_queries), 배치는 순서로만 정했습니다
(첫 <p> 뒤, 2·4번째 H2 앞). 이미지는 섹션별로 따로 찾는데 배치는
고정이라, 관련성 필터·중복 제거로 목록이 줄면 A섹션용 그림이 B섹션
앞에 놓였습니다
· final_editor가 image_list(위치·설명·alt)를 만들지만 아무도 읽지
않았고, 이미지가 이미 삽입된 뒤에 만들어져 검색에 쓸 수도 없었습니다
바꾼 것
───────
생성 프롬프트가 image_plan을 함께 내놓습니다 — 섹션별로 heading(본문과
글자 그대로 같은 H2), subject(그 대목이 실제로 설명하는 장면), search_en,
alt. 스키마 8곳 전부에 넣었습니다. 한 곳이라도 빠지면 그 프롬프트로 쓴
글만 조용히 옛 방식이 됩니다.
검색 — 계획의 영어 검색어를 씁니다. 무료 소스(Pixabay·Wikimedia·
Unsplash) 제목이 대부분 영어라 한국어로 찾으면 번역 추정을 거칩니다
배치 — 계획한 H2 바로 앞에 넣습니다. 자리를 순서로 짐작하지 않고
검색어로 되짚어 이미지와 계획을 짝지웁니다
alt — 계획의 alt를 씁니다
계획이 없거나 깨진 글, H2 제목이 안 맞는 이미지는 예전 방식으로 돌아갑니다.
계획이 없다고 이미지가 아예 안 붙거나 버려지면 안 됩니다.
검증: 영어 검색어 우선·배치·alt를 각각 되돌려 5건이 실패하는 것을 확인한
뒤 복원. 1282 passed, 2 skipped.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RgLYqM9puPW1aqHTccbX69
@Kevinlee7250
Kevinlee7250 marked this pull request as ready for review August 30, 2026 15:20
@Kevinlee7250
Kevinlee7250 merged commit a768284 into latestAug 30, 2026
2 checks passed
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.

2 participants

@Kevinlee7250@claude