fix(writer): 4 버그 동시 수정 + AUTO_PUBLISH 재가동 — AdSense 매일 발행 복구#104
Open
0gam24 wants to merge 1 commit into
Open
fix(writer): 4 버그 동시 수정 + AUTO_PUBLISH 재가동 — AdSense 매일 발행 복구#1040gam24 wants to merge 1 commit into
0gam24 wants to merge 1 commit into
Conversation
운영자 5/17 보고: "결론은 자동으로 포스팅이 안된다는거야? 애드센스 신청하고 매일 글이 올라가야하는거 아니야?" — 안전만 잡고 발행 멈춘 PR #103 의 결함 보정. ═══ 4 버그 동시 수정 ═══ A) Telegram "발행 완료" 가짜 신호 → workflow PR auto-merge step 으로 이전 - writer.mjs:444~ "자동 발행 N건 완료" 직접 송신 제거 - 대신 tmp/writer-publish-marker.json 작성 - writer.yml 의 'Notify Telegram on actual publish' step 이 PR merge 성공 (success() && steps.merge.outcome == 'success') 시점에만 marker 읽고 발송 - verify:strict/build/PR 어느 단계 실패해도 알림 0 → 가짜 신호 차단 B) Sonnet fact-check 비결정성 → temperature: 0 - writer.mjs factCheckBeforePublish API call 에 temperature: 0 명시 - 추가: generateBody (Haiku) 도 temperature: 0.3 — 본문 변동성·환각 인자 감소 - 5/17 케이스 ("연세대 알렌관 무악홀" 가짜 장소) 3 run 중 1회만 잡힌 문제 해결 C) 환각 caught 후 재처리 → daily-queue/quarantine/ 격리 - writer.mjs:408~ verdict !== 'ok' 분기에서 originalContent revert 대신 QUARANTINE_DIR 으로 이동 (원본 + enhance 본 모두 보존) - 다음 run 에서 같은 draft 안 보임 → "결국 어느 run 에서는 통과" 위험 차단 - 운영자는 quarantine/ 검토 후 수정·복원·삭제 결정 D) verify:strict 미페어링 임계 0 → 70 (env override 가능) - extract-numerical-claims.mjs STRICT_UNPAIRED_THRESHOLD = 70 추가 - 현재 58 → pass (5/4 ETF + 5/12 정책 1주 인사이트 부채) - WARN 메시지로 P3 정리 가시화 ("미페어링 N건, 임계 N 이하 → pass") ═══ 효과 ═══ - AUTO_PUBLISH=true 복귀 — fact-check 통과 시 매일 자동 발행 재개 - 환각 머지 위험: A) 단계 분리 + B) 결정성 + C) 격리 3중 방어 - AdSense 매일 콘텐츠 흐름: 5/15~17 6 run fail → 다음 cron 부터 복구 - Telegram 신뢰성: "발행 완료" 메시지는 실제 머지 후에만 송신 ═══ 다음 cron run 예상 동작 ═══ drafts/ 11건 중 fact-check 결과: - "관세청 동정" (1차 출처 fetch fail) → quarantine - "GTX 삼성역 시공오류" (노선 정보 fabrication) → quarantine - "행안부 빈 호텔" (윤호중 장관 fabrication) → quarantine - 나머지 8건 → 본문 enhance + fact-check ok 시 src/content/pulse 이동 + PR + merge - 운영자 Telegram: "발행 X건 완료" (실제 머지 후) + "환각 의심 3건 격리" ═══ P3 후속 (별도 PR) ═══ - 5/4 ETF + 5/12 정책 1주 인사이트 58 unpaired claim 정리 - 정리 진행에 따라 STRICT_UNPAIRED_THRESHOLD 단계적 하향 (70 → 50 → 30 → 0) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Deploying smartdatashop with
|
| Latest commit: |
d733a16
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://1df40aef.smartdatashop.pages.dev |
| Branch Preview URL: | https://fix-auto-publish-stabilizati.smartdatashop.pages.dev |
4 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
PR #103 (A안 — AUTO_PUBLISH=false) 가 환각 머지 위험은 0 으로 잡았지만 AdSense 매일 발행 흐름도 같이 멈춤. 운영자 지적 ("매일 글이 올라가야하는거 아니야?") 에 맞춰 4 버그 동시 수정 후 AUTO_PUBLISH 복귀.
4 버그 fix
A) Telegram "발행 완료" 가짜 신호 → workflow PR auto-merge step 으로 이전
writer.mjs의 "자동 발행 N건 완료" 직접 송신 제거tmp/writer-publish-marker.json작성writer.yml의Notify Telegram on actual publishstep 이 PR auto-merge 성공 후 marker 읽고 발송if: success() && steps.merge.outcome == 'success'조건 → verify:strict/build/PR 어느 단계 실패해도 알림 XB) Sonnet fact-check 비결정성 →
temperature: 0factCheckBeforePublishAPI call 에temperature: 0명시generateBody(Haiku) 도temperature: 0.3— 본문 변동성·환각 인자 감소C) 환각 caught → 재처리 차단 (
daily-queue/quarantine/격리)verdict !== 'ok'분기에서originalContentrevert 대신QUARANTINE_DIR이동D)
verify:strict미페어링 임계 0 → 70extract-numerical-claims.mjs에STRICT_UNPAIRED_THRESHOLD = 70추가STRICT_UNPAIRED_THRESHOLDenv override 가능 (정리 진행에 따라 단계적 하향)Test plan
node --check3 스크립트 syntax 통과npm run verify:strict→ exit 0 (이전 PR fix(pulse): 청년주택드림 — 끊긴 molit dream.pdf → korea.kr deep link 교체 #102 후 실제는 exit 1 이었음)다음 cron run 예상 동작
P3 후속
별도 PR — 5/4 ETF + 5/12 정책 1주 인사이트 58 unpaired claim 정리.
STRICT_UNPAIRED_THRESHOLD단계적 하향 (70 → 50 → 30 → 0).🤖 Generated with Claude Code