Skip to content

feat: JSONL 내보내기 도구 추가 - #800

Draft
seonghobae wants to merge 5 commits into
developfrom
feat/export-jsonl-13891273416398675278
Draft

feat: JSONL 내보내기 도구 추가#800
seonghobae wants to merge 5 commits into
developfrom
feat/export-jsonl-13891273416398675278

Conversation

@seonghobae

@seonghobae seonghobae commented Sep 3, 2026

Copy link
Copy Markdown
Collaborator

목적

NewsDOM JSON을 기사 단위 JSONL로 내보내는 CLI 도구를 추가합니다. malformed input을 조용히 건너뛰어 일부 기사만 내보내는 동작은 데이터 무결성 계약으로 인정하지 않습니다.

TDD / 현재 exact head

  • 원본 head 51af6d12992e2ee17673b7952d729ea21d70037f는 top-level JSON이 object라고 가정해 .get()을 호출하고, page/article가 object가 아니면 조용히 continue했습니다. 이 때문에 잘못된 문서가 TypeError/AttributeError로 새거나, 더 위험하게는 일부 malformed entry가 누락된 채 정상 export처럼 끝날 수 있었습니다.
  • RED de5ef5ca77996646546fc15e48a6cd1626c21d0d는 top-level object, pages list, page object, articles list, article object 경계를 명시하고, 구조 검증 실패 시 기존 output 파일을 덮어쓰지 않아야 함을 요구합니다.
  • GREEN/current bb4314f4e13d798a17d86a71fd9838869aeaa067는 output을 열기 전에 전체 구조를 검증하고 malformed entry를 fail closed로 거부합니다. CLI 예외 경계도 예상 가능한 file/encoding/value 오류만 처리하며 예상하지 못한 programming error를 성공적인 사용자 오류처럼 숨기지 않습니다.

범위

이 PR은 JSON→JSONL export boundary만 소유합니다. NewsDOM parser/domain truth를 새로 정의하지 않고, 기존 article fields를 그대로 projection합니다. 구조적으로 유효한 기존 입력의 JSONL 형식과 UTF-8/ensure_ascii=False 동작은 유지합니다.

검증 경계

현재 head는 source/test가 갱신된 직후이므로 predecessor의 로컬 100% 주장을 current-head hosted evidence로 이전하지 않습니다. exact head bb4314f4e13d798a17d86a71fd9838869aeaa067의 repository/security/SAST/dependency/coverage/review checks를 새로 확인해야 합니다. Draft를 유지하며 queued/pending/absent check를 GREEN으로 간주하지 않습니다.

Force push, destructive rebase, self-approval, no-op retrigger, gate weakening 없이 정상 descendant와 exact-head evidence만 사용합니다.

@google-labs-jules

Copy link
Copy Markdown

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@coderabbitai

coderabbitai Bot commented Sep 3, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@seonghobae
seonghobae marked this pull request as draft September 3, 2026 23:03
Sign up for free to 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