
stock-valuation
by etloveaui
Claude, Gemini CLI, Codex CLI 환경을 하나의 워크스페이스로 통합 관리하는 프로젝트
SKILL.md
name: stock-valuation description: FenokValue v9.5.3 - Documentation quality fixes. Hierarchical levels (STANDARD, FULL, DEEP). 3 adapters. All orchestrator mode. DCF/Reverse/Stress/Quality/Masters integration.
FenokValue Skill Guide (v9.5.3)
- 엔진: yfinance + Global Scouter + Damodaran 4-JSON + ValuationOrchestrator
- 핵심 기능: TWO_STAGE DCF, Reverse/Stress, Reason Codes(134개), 8 L1 Pillars, Masters Panel (4 modes), Hierarchical Level System
- 버전: 9.5.3 (2026-01-24) · Author: El Fenomeno
🔴 CRITICAL: Quick Start First
MANDATORY: Before any analysis task, complete these steps:
- Read Reference: Review CLAUDE.md for detailed agent reference
- Install Dependencies:
pip install -r requirements.txt - Verify Installation:
python -c "import yfinance, pandas, numpy; print('OK')" - Test Run:
python fenok_value.py report NVDA --format md
⚠️ DO NOT skip these steps. Data fetching requires proper environment setup.
Resources & Folder Structure
stock-valuation/
├── SKILL.md # This guide (user-facing)
├── CLAUDE.md # Agent reference (detailed)
├── PROMPT_GUIDE.md # Prompt examples
├── scripts/
│ ├── fenok_value.py # CLI entry point (22 subcommands)
│ ├── report_generator.py # v9.1.0 UnifiedReportGenerator
│ ├── masters_panel.py # 13 investors, 4 modes
│ ├── valuation_engine.py # DCF/Reverse/Stress
│ ├── quality_score.py # Lynch/Piotroski/Altman
│ ├── core/ # 50+ core modules
│ │ ├── valuation_orchestrator.py # Main orchestrator
│ │ ├── valuation_router.py # Stock type routing
│ │ ├── stock_data_fetcher.py # Data fetching
│ │ └── wacc_calculator.py # WACC engine
│ ├── adapters/ # Data adapters
│ ├── providers/ # DataPack, SEC13F providers
│ └── tests/ # (dev only, excluded from ZIP)
├── masters/ # 13 investor profiles (JSON)
└── references/ # Technical specifications
Dependencies
| Package | Version | Purpose |
|---|---|---|
| yfinance | 0.2.30+ | Stock data fetching |
| pandas | 1.5.0+ | Data processing |
| numpy | 1.23.0+ | Numerical computations |
| requests | 2.28.0+ | API calls |
1. Installation
cd scripts
pip install -r requirements.txt
python -c "import yfinance, pandas, numpy; print('OK')"
2. 핵심 명령어
| 목적 | 명령 |
|---|---|
| Quick 스크리닝 | python fenok_value.py report NVDA --level quick |
| Standard 분석 | python fenok_value.py report NVDA --level standard |
| Full 보고서 (권장) | python fenok_value.py report NVDA --level full |
| Deep 분석 | python fenok_value.py report NVDA --level deep |
| 데이터/WACC | python fetch_data.py NVDA --wacc-breakdown --estimates |
| 밸류에이션 | python valuation_engine.py NVDA --mode full --format md |
| 품질 점수 | python quality_score.py NVDA --mode full --view summary |
| 비교 분석 | python valuation_engine.py NVDA AMD --mode full --compare |
| 적자 성장주 | python ev_sales.py SNOW --debug |
| 대가 패널 | python masters_panel.py NVDA --mode debate |
| 리스크 | python risk_radar.py GME --mode full |
Report Levels (v9.5.0 Hierarchy)
| Level | Analyzers | 시간 | Masters | 용도 | Mode |
|---|---|---|---|---|---|
quick | 5개 | ~10s | ❌ | Screening (standalone) | orchestrator |
standard | 14개 | ~2min | ❌ | Base analysis | orchestrator |
full | 20개 | ~2min | ❌ | STANDARD + 6 advanced (기본값) | orchestrator |
deep | 22개 | ~5min | ✅ 4 modes | FULL + Masters | orchestrator |
Hierarchy: STANDARD (14) ⊂ FULL (20) ⊂ DEEP (22) | QUICK (5) = standalone
🔥 Breaking Change v9.5.0: 계층 구조 재설계
- STANDARD: subprocess → orchestrator 모드 변경
- Analyzer Names: dcf → conviction_score, relative → relative_valuation, etc.
- New Adapters: altman_z, lynch_classifier, relative_valuation (3개 신규)
- Hierarchy Enforced: validate_hierarchy() 런타임 검증
⚠️ Deprecated:
full및analyze명령은 deprecated 됨.
full→report --level standard사용analyze→report --level full사용
CLI 옵션:
--level: 분석 깊이 (quick/standard/full/deep) - v9.3.0 신규--view: 출력 레벨 (summary/full/debug)--mode: 분석 유형 (dcf/reverse/stress/full/debate)--format: 출력 형식 (text/md/json/html)--compare: 비교 모드 활성화--no-masters: Masters Panel 제외 (report 명령)--no-risk: Risk Radar 제외 (report 명령)
3. v9.5.0 Migration Guide
Breaking Change: Hierarchy Restructure
What Changed:
# Before v9.5.0 (subprocess mode for STANDARD)
STANDARD_ANALYZERS = {fetch, dcf, relative, scenario, risk, ...} # subprocess names
FULL_ANALYZERS = {conviction_score, reverse_dcf, ...} # orchestrator names
# STANDARD ⊄ FULL (different naming, different mode)
# After v9.5.0 (all orchestrator mode)
STANDARD_ANALYZERS = {conviction_score, reverse_dcf, relative_valuation, ...} # 14 analyzers
FULL_ANALYZERS = STANDARD_ANALYZERS | {monte_carlo, sp500_context, ...} # 20 analyzers
DEEP_ANALYZERS = FULL_ANALYZERS | {masters_panel, masters_all_modes} # 22 analyzers
# STANDARD ⊂ FULL ⊂ DEEP (strict superset hierarchy)
Why the Change?
- 계층 무결성: STANDARD가 FULL의 부분집합이 아니었음 → 수정됨
- 일관성: 모든 레벨이 orchestrator 사용 → parallel 실행 이점
- 확장성: 새 분석기(altman_z, lynch_classifier, relative_valuation) 추가 용이
Deprecated Analyzer Names (v9.5.0)
| Old Name (subprocess) | New Name (orchestrator) |
|---|---|
dcf | conviction_score |
relative | relative_valuation |
scenario | scenario_analysis |
risk | risk_checker |
reverse | reverse_dcf |
stress | rate_stress |
sbc, dilution | sbc_dilution |
lynch | lynch_classifier |
masters | masters_panel |
Migration Paths
| Before v9.5.0 | After v9.5.0 | Notes |
|---|---|---|
report --level standard | No change | CLI 동일, 내부 실행 모드만 변경 |
report --level full | No change | Analyzer count: 18 → 20 |
report --level deep | No change | Analyzer count: 20 → 22 |
New Analyzers (v9.5.0)
| Analyzer | Purpose | Level |
|---|---|---|
altman_z | Bankruptcy risk (Z-Score) | QUICK, STANDARD+ |
lynch_classifier | Peter Lynch 6-type classification | STANDARD+ |
relative_valuation | Sector comparison + PER band | STANDARD+ |
4. 워크플로우 예시
단일 종목 기본 분석
python fenok_value.py analyze NVDA --format md
또는 단계별:
python fetch_data.py NVDA --wacc-breakdown --estimates
python valuation_engine.py NVDA --mode full
python quality_score.py NVDA --mode full
비교 분석
python valuation_engine.py NVDA AMD --mode full --compare
python quality_score.py NVDA AMD --compare
적자 성장주
python ev_sales.py SNOW --debug
python rule_of_40.py SNOW --view summary
4. 데이터 소스 (v9.0.0 Policy)
| 우선순위 | 데이터 | 출처 |
|---|---|---|
| 1순위 | EPS/FCF 추정치, PER 밴드 | Global Scouter datapack |
| 2순위 | 주가/재무 (폴백) | yfinance (Lazy init) |
| 3순위 | ERP/CRP, 산업 베타 | Damodaran JSON (178개국, 96산업) |
v9.0.0 핵심: DataPack → yfinance → Damodaran 우선순위. Evidence 추적.
5. 성능 최적화 (v9.2.0)
병렬 처리 설정
| 구성요소 | 설정 | 개선율 | 근거 |
|---|---|---|---|
| 데이터 Fetching | ThreadPoolExecutor(max_workers=5) | 68% | yfinance API rate limit 고려, 5 threads가 안전 마진 확보 |
| Analyzer 실행 | ThreadPoolExecutor(max_workers=6) | 75% | 21개 분석기 중 독립적 분석기만 병렬화, 6 threads 최적 |
벤치마크 결과 (v9.2.0)
| 구성요소 | 순차 실행 | 병렬 실행 | 개선율 |
|---|---|---|---|
| 데이터 Fetching | 2.20s | 0.70s | 68% |
| Analyzer 실행 | 2.00s | 0.50s | 75% |
벤치마크 스크립트:
scripts/benchmark_parallel.py(실행:python benchmark_parallel.py --ticker NVDA)
6. 테스트 (개발 환경 전용)
Note: 테스트는 개발 환경 전용입니다. ZIP 배포본에는 포함되지 않습니다.
7. 버전 히스토리
| 버전 | 주요 변경 |
|---|---|
| v9.5.3 | Documentation quality fixes: test stats, ZIP/dev separation |
| v9.5.2 | Claude Desktop bug fixes: P0 info cache, P1 price key resolution |
| v9.5.1 | Bug fixes: P0 race condition, P1 growth fallbacks, P2 logging |
| v9.5.0 | BREAKING: 계층 구조 재설계 (DEC-122), STANDARD ⊂ FULL ⊂ DEEP, 3 new adapters, subprocess 제거 |
| v9.4.0 | QUICK 레벨 재설계 (DEC-120), Industry-aligned screening, 3x faster |
| v9.3.0 | report --level 통합 (DEC-117), quick/standard/full/deep 레벨 |
| v9.2.1 | CLI screening mode added (4 modes complete), 6 masters quantitative fix |
| v9.2.0 | Phase 4 Complete - insufficient_data verdict, SKILL.md sections |
| v9.1.0 | Unified Report Generator, Evidence Trail 개선 |
| v9.0.0 | Major: Masters Panel 4 modes, DataPack Priority, Global Scouter Full |
Last Updated: 2026-01-24
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon