Communitygithub.com

chiptsui/guided-portfolio-watch

미국 상장 주식 포트폴리오를 위한 가이드 포트폴리오 워치를 구축하고 유지 관리합니다. 플레이북, 일일 모니터링 피드, 설명 우선 알림을 생성합니다. 금융 분석 전문 지식 없이도 초보자 친화적이고 손이 적게 가는 투자에 최적화되어 있습니다.

guided-portfolio-watch란 무엇인가요?

이 스킬은 사용자가 제공한 미국 상장 주식 포트폴리오에 대해 완전한 모니터링 시스템을 자동으로 구축합니다. 사용자의 메시지에서 티커, 투자 지평, 안내 모드(guided/standard/neutral)를 추출하여 구조화된 MonitoringConfig JSON을 생성하고, 이를 ALFS에 저장합니다. 이후 'gpw-fundamentals'(재무 이력)와 'gpw-monitor'(일일 이벤트 분석 및 푸시 알림) 두 개의 자동화 피드를 배포하며, 'guided-portfolio-watch'라는 플레이북을 빌드하여 실시간으로 제공합니다. 핵심은 설명 우선 알림으로, 재무 용어를 풀어서 설명하고 장기적인 비즈니스 변화에 초점을 맞춥니다. 사용자의 경험 수준을 묻지 않고 문맥에서 안내 방식을 추론하며, 포트폴리오 변경 시 코드 수정 없이 config.json만 변경하면 재실행 가능하도록 설계되었습니다. Cursor, Claude Code 등 AI 에이전트 환경에서 작동하며, ALFS 명령어로 전체 워크플로를 관리합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/chiptsui/alva-guided-portfolio-watch/tree/main/.agents/skills/guided-portfolio-watch

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

가이드 포트폴리오 워치 스킬(Guided Portfolio Watch Skill)

이 스킬이 구축하는 것

사용자가 제공한 모든 포트폴리오에 대해, 이 스킬은 다음을 생성합니다:

  1. MonitoringConfig — ALFS에 기록되는 구조화된 JSON 객체로, 티커 목록, 투자 지평, 안내 모드, 및 기본 설정 노트의 단일 정보 소스 역할을 합니다.
  2. 두 개의 피드 자동화 — gpw-fundamentals(재무 이력) 및 gpw-monitor(일일 이벤트 분석 + 푸시 알림), 둘 다 런타임에 설정을 읽습니다.
  3. 하나의 플레이북 — guided-portfolio-watch, https://alva.ai/u/{username}/playbooks/guided-portfolio-watch에서 실시간 제공됩니다.
  4. 일일 알림 — 중요한 이벤트 발생 시 설명 우선 알림을 보냅니다.

이 스킬은 재사용 가능합니다: config.json을 변경하고 피드를 다시 실행하면 코드 변경 없이 새 포트폴리오에 대한 완전한 플레이북과 알림 파이프라인이 생성됩니다.


1단계 — 사용자 의도 분석

src/intent-to-config.js를 호출하거나 해당 로직을 적용하여 사용자 메시지에서 MonitoringConfig를 추출합니다. 질문을 하기 전에 이 작업을 수행하세요.

티커 추출

1~5개의 대문자 시퀀스 또는 BRK.B 같은 패턴을 찾습니다. 미국 상장 주식만 허용합니다. ETF, 암호화폐(예: BTC, ETH, SOL), 옵션, 비미국 티커는 거부하고 — 사용자에게 알린 후 수락된 심볼로 계속 진행합니다.

공통 단어 차단 목록(대문자여도 거부): I, A, AN, OR, FOR, AND, AT, IN, ON, MY, ME, THE.

안내 모드 (선호도 추론 — 전문성 주장 아님)

다음 우선 순위를 적용합니다. 첫 번째 일치에서 중단합니다.

1. 명시적 선호도 (항상 우선):
   "쉬운 말로" / "설명해줘" / "투자 초보예요"
   "이해가 안 돼" / "이해할 수 있게 도와줘" → guided

   "기술적 세부 사항을 원해" / "금융 지식을 알고 있다고 가정해줘"
   "기본은 생략해" / "기술적 분석" (선호도로) → standard

2. 문맥 신호 (명시적 선호도가 없을 때만):
   EBITDA, FCF, NIM, P/E, 베이시스 포인트, 순이자 마진,
   영업 레버리지, CAGR을 올바르게 사용 → standard

   "걱정해야 하나요?" / "이게 나에게 무슨 의미인가요?" / "이게 나쁜 건가요?" → guided

3. 기본값 (혼합, 충돌, 또는 신호 없음):
   → neutral

"초보자입니까?" 또는 "당신의 경험 수준은 무엇입니까?"라고 절대 묻지 마십시오. NEUTRAL은 기본적으로 guided 레이아웃을 사용하며, 사용자는 AGENTS.md를 통해 변경할 수 있습니다.

투자 지평

  • 키워드: "장기", "3~5년", "영원히 보유", "은퇴" → long-term
  • 키워드: "중기", "1~3년", "앞으로 몇 년" → medium-term
  • 키워드: "데이 트레이드", "스윙 트레이드", "단기", "< 1년" → 지원되지 않음. 사용자에게 알리고 계속하기 전에 장기 모니터링이 허용되는지 확인합니다.
  • 기본값 (신호 없음): long-term.

소유권 분류

  • "소유하고 있어", "샀어", "내 포지션", "가지고 있어" → holding
  • "지켜보고 있어", "추적 중", "주시하고 있어" → watchlist
  • 모호함 → holding (더 안전한 기본값; 보유자에게 소유하지 않았다고 말하는 것을 방지)

소유권은 알림 문구 언어에만 영향을 미칩니다. 파이프라인은 모든 심볼을 동일하게 처리합니다.

가중치 (선택 사항)

명시적 백분율 패턴 분석: "50% NVDA, 30% TSLA, 20% AAPL". 제공된 경우 weights 객체로 저장합니다(값 0~1, 합계가 1.0 ± 0.02이어야 함; 반올림 오류 시 정규화). 제공되지 않으면 설정에서 weights를 생략합니다.


2단계 — 필요한 경우 명확히 하기 (최대 한 질문)

답변이 구축되는 내용을 실질적으로 변경하는 경우에만 질문하십시오:

상황질문
티커가 제공되지 않음"어떤 회사를 모니터링하고 싶으신가요?"
투자 지평 충돌 (데이 트레이딩)정보 제공 + 장기 모니터링이 허용되는지 확인

주식 수, 원가 기준, 재무 목표, 경험 수준에 대해 묻지 마십시오. 두 번째 질문을 하지 마십시오.


3단계 — MonitoringConfig 조립

전체 MonitoringConfig 객체를 구축합니다(config/monitoring-config.schema.json 참조).

sectorFocusAreas — arrays-data-api-equity-fundamentals를 통해 각 티커의 회사 세부 정보를 가져옵니다. sector + industry 필드와 src/intent-to-config.js의 조회 테이블을 사용하여 티커당 한 문장의 초점 노트를 생성합니다. API 호출이 실패하거나 섹터를 알 수 없는 경우 일반적인 대체 텍스트를 사용합니다: "Watch: revenue, earnings, and business-specific developments." 절대 초점 영역을 임의로 만들지 마십시오.

preferencesNote — 다음 템플릿을 사용하여 설정 필드에서 조립:

사용자는 [TICKER LIST]를 [소유/추적]하고 있습니다. 투자 지평: [HORIZON].

[GUIDED인 경우:] 평이하고 전문 용어가 없는 영어를 사용하십시오. 처음 등장할 때 금융 용어를 정의하십시오.
사용자가 주의해야 할 사항과 그 이유를 중심으로 모든 것을 구성하십시오.
[STANDARD인 경우:] 중급 금융 이해력을 가정하십시오. 표준 금융 용어를 사용하십시오.
[NEUTRAL인 경우:] 명확하고 접근하기 쉬운 언어를 사용하십시오. 설명되지 않은 전문 용어를 피하십시오.

알림 정책: 장기적인 비즈니스 발전에만 초점을 맞추십시오.
제외: 순수 가격 움직임, 기술적 분석, 입증되지 않은 소문.
포함: 실적/가이던스 변경, 규제/법적 이벤트, 전략적 발표,
및 다년간 비즈니스 영향이 있는 공급망 또는 제품 변경.

[가중치가 제공된 경우:] 예시 할당: [TICKER] [PCT]%, ... (사용자가 제공한 시나리오, 확인된 현재 가중치 아님.)

[티커별 초점 영역:]
[TICKER]: [sectorFocusArea]
...

[알 수 없는 입력이 있는 경우:] 수량, 원가 기준 및 총 포트폴리오 가치는 알 수 없습니다. 포트폴리오 수준의 성과 수치를 계산하거나 암시하지 마십시오.

4단계 — ALFS에 설정 쓰기

# 설정을 로컬 임시 파일로 직렬화한 후 ALFS에 쓰기
alva fs write --path '~/feeds/gpw-monitor/v1/config.json' --file /tmp/gpw-config.json --mkdir-parents

쓰기 성공을 확인합니다:

alva fs read --path '~/feeds/gpw-monitor/v1/config.json'

또한 설정을 ~/feeds/gpw-fundamentals/v1/config.json에 씁니다 (동일한 내용 — 두 피드 모두 자체 경로에서 읽어 디커플링 유지).


5단계 — 피드 배포 (사용자 승인 필요)

배포 전에 references/setup-workflow.md를 읽으십시오. 사용자가 MonitoringConfig가 올바른지 확인할 때까지 배포하지 마십시오.

피드 1: gpw-fundamentals (템플릿 templates/gpw-fundamentals.stub.js 사용)

  • Cron: 15 6 * * *
  • 출력: fundamentals/snapshot (JSON blob)
  • 알림 출력 없음

피드 2: gpw-monitor (템플릿 templates/gpw-monitor.stub.js 사용)

  • Cron: 30 6 * * *
  • 출력: analysis/decision + alerts/daily (V2 alertOutput)
  • --push-notify 플래그로 배포

6단계 — 플레이북 빌드 및 릴리스 (사용자 승인 필요)

템플릿 templates/gpw-playbook.stub.html을 사용하십시오. 모든 [GPW-*] 표시자를 채우십시오. 전체 라이프사이클을 따르십시오: alva lint playbook → alva release playbook-draft → alva release playbook → alva screenshot.


7단계 — 알림 전달 활성화 (사용자 승인 필요)

게시는 소유자 FEED 알림 바인딩을 자동으로 생성합니다. 전달을 확인합니다:

alva alert history --automation gpw-monitor
# 예상 결과: 상태가 "sent"인 행이 하나 이상 있어야 함

승인 기준

다음 조건이 충족되면 스킬이 완료됩니다:

  • alva lint playbook이 오류 없이 통과
  • alva screenshot에 표시 가능한 데이터가 표시됨 (빈 프레임 아님)
  • alva alert history에 예약된 실행 후 24시간 이내에 sent 행이 표시됨
  • config.json의 티커를 변경하고 gpw-fundamentals를 재실행하면 이전 티커 참조 없이 새 회사 섹션이 생성됨

이 스킬이 구축하지 않는 것

  • 가격 차트 또는 장중 가격 모니터링
  • 매수 / 매도 / 보유 권장 사항
  • 실적 달력
  • 벤치마크 대비 성과
  • 거래 또는 주문 실행

관련 스킬