skills/news-scrap/SKILL.md
응급의료 AI 관련 주간 뉴스 스크랩. 주간(토~금) 기사/논문을 검색하고 원문을 추출해 HTML 대시보드, NotebookLM 노트, 주목 기사 슬라이드를 만든다. Use when Codex needs weekly emergency-medicine AI news collection, curation, or reporting. Keywords: 뉴스, news, 스크랩, scrap, 응급, emergency, AI 뉴스
npx skillsauth add g2e-yunseonghun/commit-skils-test news-scrapInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
응급의료 AI 관련 뉴스 기사와 학술 논문을 주간 단위로 수집하고, HTML 대시보드와 NotebookLM 산출물로 정리한다.
IMPORTANT: 모든 출력은 한국어로 작성한다.
scripts/extract.py로 원문과 발행일을 확인한다.scripts/render_dashboard.py로 HTML 대시보드를 생성한다.scripts/slide.py 슬라이드를 생성한다.scripts/extract.py
URL 목록을 받아 trafilatura 우선, Playwright 폴백으로 본문과 메타데이터를 추출한다.scripts/render_dashboard.py
구조화된 JSON 입력을 받아 templates/dashboard.html 기반 HTML 대시보드를 렌더링한다.scripts/slide.py
주목 기사 JSON을 받아 3장짜리 .pptx를 생성한다.templates/dashboard.html
대시보드 템플릿. render_dashboard.py가 마커를 채운다.trafilaturanotebooklm-pypython-pptxplaywright권장 설치:
pip install trafilatura notebooklm-py python-pptx playwright
playwright install chromium
extract.py는 기본적으로 headless Playwright를 사용한다.NEWS_SCRAP_HEADED=1로 headed 브라우저를 켠다.render_dashboard.py와 slide.py는 UTF-8, UTF-8 BOM 입력 둘 다 허용한다./news-scrap, 뉴스 스크랩, 주간 뉴스, 뉴스 수집monthly-report가 더 적합하다.오늘 날짜를 기준으로 가장 최근 금요일을 종료일로 잡고, 그로부터 6일 전 토요일을 시작일로 잡는다.
YYYY-MM-DDYYYY년 M월 D일(요일)사용자에게 먼저 기간을 알려준다.
예시:
수집 기간: 2026년 3월 21일(토) ~ 2026년 3월 27일(금) - 3월 4주차
TeamCreate와 SendMessage가 있으면 아래 3개 역할을 병렬로 돌린다.
국내기사해외기사학술논문SendMessage는 반드시 한 번의 메시지에서 병렬 호출한다.
해당 도구가 없으면 메인 에이전트가 같은 검색 전략을 로컬에서 순차 또는 병렬로 수행한다. 이 경우에도 결과는 아래 3개 카테고리로 분리해서 유지한다.
각 수집 담당자에게 아래 규칙을 그대로 적용한다.
youtube.com, blog.naver.com, tistory.com, brunch.co.kr, medium.com, velog.io, reddit.com검색 결과만 믿지 말고, URL마다 scripts/extract.py를 실행해 본문과 발행일을 확인한다.
PowerShell 예시:
'["https://url1", "https://url2"]' | python /absolute/path/to/scripts/extract.py
반환 형식:
[
{
"url": "...",
"text": "본문",
"date": "YYYY-MM-DD",
"title": "제목",
"success": true
}
]
처리 규칙:
success=true 이고 date가 기간 내면 포함한다.success=true 이지만 date=null이면 검색 스니펫이나 URL 경로에서 날짜를 재확인한다.success=false여도 날짜만 확정할 수 있으면 포함한다. 이 경우 원문은 빈 문자열로 둔다.각 담당자는 최종적으로 설명 없이 JSON 배열만 반환한다.
[
{
"기관매체": "출처 매체명 또는 저널명",
"관련기관": "기사에 등장하는 병원/기업/기관",
"활용분야": "트리아지, 영상판독 등",
"구분": "연구|도입|정책|트렌드",
"제목": "기사/논문 제목",
"원문": "추출한 본문 또는 빈 문자열",
"날짜": "YYYY-MM-DD",
"링크": "원문 URL"
}
]
아래 키워드는 그대로 쓰되, 검색 엔진 특성에 따라 표현만 약간 바꿀 수 있다.
{시작일}~{종료일}{시작일}~{종료일}{시작일}~{종료일}{시작일}~{종료일}{시작일}~{종료일}{시작일}~{종료일}{시작일}~{종료일}{시작일}~{종료일} 와일드카드우선 도메인:
medigatenews.comdailymedi.commdtoday.co.krpharm.edaily.co.krmohw.go.krmedicaltimes.comdocdocdoc.co.kremergency department AI triage {시작일}~{종료일}emergency medicine artificial intelligence {시작일}~{종료일}emergency room AI clinical decision support {시작일}~{종료일}emergency department overcrowding AI patient flow {시작일}~{종료일}prehospital AI EMS prediction {시작일}~{종료일}ambulance AI routing dispatch real-time {시작일}~{종료일}hospital AI clinical workflow automation {시작일}~{종료일} 와일드카드우선 도메인:
healthcareitnews.combeckershospitalreview.comstatnews.comfiercehealthcare.commobihealthnews.comems1.comemergency triage AI machine learning site:pubmed.ncbi.nlm.nih.gov {시작일}~{종료일}emergency medicine artificial intelligence peer-reviewed {시작일}~{종료일}emergency department AI clinical trial {시작일}~{종료일}emergency department crowding AI resource allocation {시작일}~{종료일}prehospital emergency AI prediction model {시작일}~{종료일}우선 도메인:
pubmed.ncbi.nlm.nih.govpmc.ncbi.nlm.nih.govmedinform.jmir.orgjmir.organnemergmed.comai.nejm.orgnature.comfrontiersin.orgmdpi.comsciencedirect.com담당자 응답이 JSON만 반환되지 않으면, 응답 텍스트에서 가장 바깥 [ 와 ] 사이의 JSON 배열을 추출해서 파싱한다. 파싱 실패 시 해당 담당자 결과는 빈 배열로 처리한다.
정리 규칙:
국내기사, 해외기사 2개 섹션으로 나눈다.
학술 논문은 해외기사 섹션에 같이 둬도 된다.이 단계는 선택 사항이다. NotebookLM 인증이나 API가 안 되면 HTML 생성만 진행한다.
python -c "
import asyncio
from notebooklm import NotebookLMClient
async def main():
try:
async with await NotebookLMClient.from_storage() as client:
await client.notebooks.list()
print('AUTH_OK')
except Exception as e:
print(f'AUTH_FAIL:{e}')
asyncio.run(main())
"
실패 시:
notebooklm login을 안내한다.노트북 이름 규칙:
응급의료_AI_월간브리핑_{년}_{월}
같은 달 노트북이 있으면 재사용하고, 없으면 만든다.
원문이 있는 기사만 하나의 텍스트로 합쳐 client.sources.add_text() 1회로 올린다.
합본 형식:
=== 응급의료 AI 주간 뉴스 — {시작일}~{종료일} ({월} {주차}) ===
--- 기사 1 ---
제목: ...
매체: ... | 관련기관: ... | 분야: ... | 구분: ...
날짜: ... | 원문링크: ...
원문...
최소 4개 응답을 받는다.
중요 규칙:
파싱 실패 시:
원문 미확보로 대체한다.HTML은 수작업 치환 대신 scripts/render_dashboard.py를 사용한다.
입력 JSON 예시:
{
"시작일": "2026년 3월 21일(토)",
"종료일": "2026년 3월 27일(금)",
"생성일": "2026년 3월 27일",
"국내기사": [
{
"제목": "기사 제목",
"기관매체": "매체명",
"관련기관": "관련 기관",
"활용분야": "응급실 AI 어시스턴트",
"구분": "도입",
"날짜": "2026-03-26",
"링크": "https://...",
"기사요약": "기사 요약",
"세부분석": {
"관련 기업/기관": "설명",
"기술/제품": "설명",
"핵심 수치": "설명"
}
}
],
"해외기사": [],
"주간요약": {
"핵심동향": ["동향 1", "동향 2", "동향 3"],
"주목할기관/기업": ["기관 1", "기관 2"],
"시사점": "요약 문장"
}
}
실행:
python /absolute/path/to/scripts/render_dashboard.py \
/path/to/dashboard_input.json \
news_output/news_{해당년도월주차}.html
결과:
NotebookLM이 사용 가능하면 Step 6 요약을 주간 리포트 노트로 남긴다.
노트 제목:
주간 리서치 리포트 — {시작일}~{종료일}
내용:
NotebookLM이 사용 가능하면 가장 중요한 기사 1건을 선정한 뒤 scripts/slide.py를 호출한다.
입력 JSON 예시:
{
"제목": "기사 제목",
"매체": "출처 매체",
"날짜": "2026-03-27",
"주차": "3월 4주차",
"기사요약": "5~8문장 요약",
"기관소개": [
{ "기관명": "기관A", "설명": "기관 소개" }
],
"기술소개": [
{ "기술명": "기술A", "설명": "기술 설명" }
],
"적용아이디어": [
{ "제목": "아이디어 1", "설명": "설명" }
]
}
실행:
python /absolute/path/to/scripts/slide.py \
news_output/slide_{해당년도월주차}.pptx \
/path/to/slide_input.json
주의:
slide.py는 UTF-8 BOM 입력도 허용한다.최종 산출물은 최대 3개다.
news_output/news_{해당년도월주차}.htmlnews_output/slide_{해당년도월주차}.pptx사용자에게는 최소 아래를 알려준다.
저장 완료: news_output/news_26년 3월 4주차.html (국내 6건, 해외 2건)
슬라이드 생성 완료: news_output/slide_26년_3월_4주차.pptx
extract.py에서 원문 추출 실패 시에도 날짜가 맞으면 포함한다.trafilatura 결과가 있으면 계속 진행한다.development
Codex용 의료·응급의료 AI 주간 뉴스 브리핑 스킬. Use when creating a Korean weekly medical AI briefing covering medical AI, emergency-medicine AI, emergency department AI, and ICU/critical-care AI, where Codex searches, verifies, summarizes, writes one structured Markdown briefing, fills a fixed Pencil template, and exports a PDF briefing.
tools
Claude용 응급의료 AI 주간 뉴스 브리핑 스킬. Use when creating a Korean weekly emergency-medicine AI news briefing using Claude's built-in WebSearch/WebFetch tools for article collection and verification, then handing off to the same NotebookLM pipeline (notebooklm_gate.py, render_dashboard.py, notebooklm_slide_deck.py) for analysis and slide generation.
development
NotebookLM을 필수 게이트로 두는 응급의료 AI 주간 뉴스 스크랩. 전주 토요일부터 이번 주 금요일까지의 국내 기사, 해외 기사, 논문을 수집·검증한 뒤 매주 새 NotebookLM 노트에 기사별 개별 소스를 업로드하고 Q0~Q5 분석이 모두 성공한 경우에만 HTML 대시보드와 슬라이드를 생성한다. 응급의료 AI 주간 뉴스, NotebookLM 기반 브리핑, 실패 시 즉시 종료가 필요한 뉴스 스크랩 작업에 사용한다.
development
Codex용 의료·응급의료 AI 주간 뉴스 브리핑 스킬. Use when creating a Korean weekly medical AI briefing covering medical AI, emergency-medicine AI, emergency department AI, and ICU/critical-care AI, where Codex searches, verifies, summarizes, selects one featured article with rule-based scoring, performs focused research, and NotebookLM is used only to generate the final slide deck.