주식 분석
이 스킬은 매번 동일한 보고서를 생성합니다:
- 개요 테이블
- 각 티커별 패널:
- 사실
- 52주 최고가 대비 주간 차트
- 수익률
- 하락 요인
- 상승 및 하락 관점
- 보유 종목, 데이터 격차 및 계산 로그
스크립트가 모든 산술 계산과 HTML을 처리합니다. 당신의 역할은 조사와 확인입니다. 페이지를 재설계하거나 HTML을 직접 작성하지 마세요.
SKILL_DIR은 이 파일이 포함된 폴더입니다. 이 SKILL.md 파일의 경로에서 dirname을 사용하여 한 번 찾으십시오.
파일
| 경로 | 목적 |
|---|---|
scripts/compute_drawdown.py | 일별 CSV → 52주 최고가/최저가, % 하락, 수익률, 주간 종가 |
scripts/verify.py | 모든 헤드라인 숫자를 CSV에서 재도출하고, 필드와 출처를 확인하며, verified.json을 작성하고, 문제가 있으면 종료 코드 1 반환 |
scripts/build_report.py | 작업자 JSON + verified.json → 하나의 독립형 HTML 페이지 ( assets/report.css 사용) |
scripts/build_email.py | 동일한 검증된 숫자 → 발송 준비된 drawdown_report.eml (이메일 안전 HTML + 텍스트, 보고서 첨부); 주소 유효성 검사 |
scripts/send_email.py | 사용자가 자신의 컴퓨터에서 실행: 확인 프롬프트와 로컬로 입력한 앱 비밀번호로 SMTP를 통해 .eml 발송 |
defaults.json | 사용자가 티커를 지정하지 않을 때 사용되는 기본 시계열 (사용자 편집 가능) |
references/worker_brief.md | 각 작업자가 따르는 브리프 ( {…} 플레이스홀더 채우기) |
references/schema.md | <TICKER>.json 계약 |
examples/run-2026-10-16/ | 완전한 참조 실행 (FTEC, QQQ, SMH, ARTY): 4개의 작업자 JSON과 완성된 report.html. 깊이, 어조 및 인용 스타일의 기준으로 사용하십시오. |
워크플로우
1. 설정
- 사용자의 요청에서 티커 목록을 읽습니다.
- 티커가 지정되지 않은 경우 ("내 주식 분석 실행", "시장이 최고점 대비 어때?"):
$SKILL_DIR/defaults.json을 읽고default_watchlist에 있는 그대로 사용합니다. 첫 줄에 기본 시계열을 사용 중이라고 말하고 목록을 나열하십시오. - 티커가 지정된 경우: 정확히 그 티커만 사용하십시오. 사용자가 요청하지 않는 한 기본값을 추가하지 마십시오 (예: "평소에 NVDA 추가").
- 지수 (S&P 500, Dow Jones, Nasdaq Composite…): 지수 수준 자체를 조사하고,
defaults.json의id(SPX, DJI) 또는 짧은 레이블 (예:COMP)을 파일 이름의 티커로 사용하십시오. 작업자에게 지수임을 알리십시오 (브리프의 지수 노트 참조).
- 티커가 지정되지 않은 경우 ("내 주식 분석 실행", "시장이 최고점 대비 어때?"):
- 작업 폴더를 생성:
WORK_DIR=$PWD/drawdown-<YYYY-MM-DD>. - 다음을 포함하는 작업 목록 생성:
- 티커당 하나의 작업
- "숫자 검증"
- "보고서 작성 및 게시"
2. 분산 처리
**티커당 하나의 하위 에이전트(subagent)**를 병렬로 백그라운드에서 생성합니다. 각각의 프롬프트는:
references/worker_brief.md의 전체 텍스트,{TICKER},{WORK_DIR},{SKILL_DIR}및{TODAY}가 채워진 상태,- 그리고 확인할 가치가 있는 티커별 관점. 예: 칩 펀드의 경우 수출 통제, 하이퍼스케일러 자본 지출, 메모리 사이클.
사용자가 티커를 하나 또는 두 개만 지정하고 하위 에이전트를 요청하지 않은 경우, 동일한 브리프를 따라 직접 조사할 수 있습니다.
3. 대기
작업자가 완료되면 해당 작업을 체크하고 한 줄을 게시합니다: 티커, % 하락, 최고점 날짜. 작업자 대화록을 읽지 마십시오.
4. 검증
실행:
python3 $SKILL_DIR/scripts/verify.py --dir $WORK_DIR --tickers <T...>
MISMATCH, MISSING 또는 NO SOURCE/TS가 보고되면, 빌드 전에 문제를 수정하십시오:
- 산술 또는 수동 복사 오류:
compute_drawdown.py를 다시 실행하고<T>_metrics.json에서 JSON을 수정하십시오. - 누락된 조사: SendMessage로 작업자를 다시 보내십시오.
UNCITED 및 NO CROSS-CHECK은 경고입니다. 경고가 남아 있으면 답변에서 언급하십시오.
5. 빌드
실행:
python3 $SKILL_DIR/scripts/build_report.py --dir $WORK_DIR --tickers <T...> \
--out $WORK_DIR/drawdown_report.html --title "<2-4단어 이름>" --eyebrow "<예: ETF 하락 검토>"
제목 선택: 짧고 구체적인 이름을 선택하십시오. 예: "Tech ETF Drawdowns" 또는 "Chip Stock Pullbacks". 동일한 바스켓에 대해 반복 실행할 때 동일한 제목을 사용하십시오.
6. 게시
Artifact 도구를 사용하여 HTML을 게시하십시오. icon: "chart"와 티커 및 기준일을 명시하는 한 문장 설명을 포함하십시오.
- 동일한 바스켓에 대한 반복 실행: 사용자가 기존 링크를 유지하기를 원하면 해당 아티팩트의 URL에 다시 게시하십시오.
- 생성된 HTML을 편집하지 마십시오. 보고서 전체 변경은
build_report.py또는assets/report.css에 속합니다.
7. 이메일 (사용자가 주소를 제공한 경우에만)
사용자의 메시지에 이메일 주소가 포함된 경우에만 이 단계를 수행하십시오 (예: "…그리고 [email protected]으로 이메일 보내줘"). 주소 없이 "나에게 이메일 보내줘"라고 말하면, 주소를 요청하십시오. 다른 곳에서 주소를 추측하거나 재사용하지 마십시오.
커넥터 사용 금지. Gmail, Outlook 또는 기타 이메일 커넥터나 브라우저 자동화를 사용하지 마십시오. 이메일 비밀번호를 요청하거나 처리하지 마십시오. 발송은 사용자 측에서 이루어집니다: 당신은 발송 준비된 메시지를 준비하고, 사용자가 발송합니다.
- 이메일을 빌드합니다.
종료 코드 2는 주소가 유효하지 않음을 의미합니다: 사용자에게 수정을 요청하십시오. 스크립트는python3 $SKILL_DIR/scripts/build_email.py --dir $WORK_DIR --tickers <T...> --to <주소...> \ --report $WORK_DIR/drawdown_report.html --artifact-url <게시된 링크> --title "<동일한 제목>"drawdown_report.eml(HTML + 일반 텍스트, 보고서 첨부, 수신자 및 제목 채워짐)과email_body.html,email_body.txt및email.json을 작성합니다. - 전달합니다.
drawdown_report.eml을 SendUserFile로 전송합니다 (attach표시). - 사용자에게 발송 방법을 알려줍니다, 2-3줄로:
- Outlook에서
.eml열기 (초안으로 열림) 또는 Apple Mail (메시지 → 다시 보내기), 확인 후 보내기. - 또는, 자신의 컴퓨터에서 터미널:
python3 send_email.py drawdown_report.eml --from <자신의 주소>. 스크립트는 수신자를 표시하고, 확인을 요청하며, 앱 비밀번호를 직접 입력하라는 프롬프트를 표시합니다. 사용자가 요청하면scripts/send_email.py도 보내십시오.
- Outlook에서
- 링크의 개인정보 보호. 아티팩트는 사용자에게 비공개입니다. 수신자가 다른 사람인 경우, 사용자가 페이지를 공유하지 않는 한 첨부된 보고서에 의존해야 한다고 말하십시오.
8. 답변
답변은 짧게 유지하십시오:
- 페이지가 무엇인지에 대한 한 문장.
- 하락률 기준으로 정렬된 마크다운 테이블, 열: 티커, 마지막 종가, 52주 최고가 (날짜), 하락률.
- 티커 전반의 주요 발견 사항에 대한 2-3개의 불릿.
- 실행에 영향을 미친 도구 실패를 다루는 짧은 "데이터 격차" 메모.
- 이메일이 요청된 경우:
.eml이 발송 준비되었으며 방법을 알려주는 한 줄.
단계를 요약하지 마십시오.
양보할 수 없는 사항
- 모든 숫자는 도구 호출에서 비롯되며, 출처와 타임스탬프가 포함됩니다.
- "데이터 없음"이 추측보다 낫습니다.
- 모든 수학은 스크립트에서 수행됩니다.
- 읽기 전용 도구만 사용하십시오. 주문, 알림 또는 시계열 도구를 절대 건드리지 마십시오. 직접 이메일을 보내지 마십시오. 7단계는 사용자가 보낼 메시지만 준비합니다.
- 매수 또는 매도 추천 금지. 두 관점을 공정하게 제시하십시오.