feat(stocks): v2.2.160-161 — 저평가 강조 + 224일선 회복 + 낙폭과대 키워드

영상(주식단테 시리즈) 기준을 /stocks discover에 정량 매핑:

v2.2.160:
- 저평가 키워드 2단계 추가 (PBR ≤ 1.0 = 저평가, ≤ 0.7 = 초저평가)
- 정렬 타이브레이커: 통과 키워드 수 desc → PBR asc
- 224회복 보너스 (가격 only): MA224 돌파 + 최근 30일 중 5일+ 아래에 머문 적
- yahooClient: fetchYahooHistory + evalMa224Recovery 신설

v2.2.161:
- 224회복 거래량 검증 추가 (최근 5일 평균 ≥ 60일 평균 × 1.2) — 거짓 돌파 필터
- 신규 낙폭과대 키워드: 1년 고점 대비 -25% AND 60일 저점에서 +10%
- yahooClient: YahooHistory에 volumes, evalDropRecovery 신설

chronicle: ADR-0025 추가.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-27 10:10:09 +09:00
parent 323537e12b
commit d206293a19
18 changed files with 1279 additions and 993 deletions
@@ -1,5 +1,5 @@
{
"result": "Final report with inconsistencies. This should be long enough to pass validation.",
"createdAt": 1779670273525,
"createdAt": 1779770057843,
"modelVersion": "unknown"
}
@@ -1,5 +1,5 @@
{
"result": "Final report with inconsistencies. This should be long enough to pass validation.",
"createdAt": 1779670273525,
"createdAt": 1779770057842,
"modelVersion": "unknown"
}
@@ -1,5 +1,5 @@
{
"result": "[{\"heading\":\"본문\",\"scope\":\"전체 답변\"}]",
"createdAt": 1779670273513,
"createdAt": 1779770057838,
"modelVersion": "unknown"
}
@@ -1,5 +1,5 @@
{
"result": "[CONFLICT WARNING] 성능이 200% 증가했습니다. vs 그러나 동시에 50% 감소했습니다. 최적화와 성능 저하가 동시에 발견됨.",
"createdAt": 1779670273519,
"createdAt": 1779770057840,
"modelVersion": "unknown"
}
@@ -1,8 +1,8 @@
{
"missionId": "stress_conflict_1779670273495",
"missionId": "stress_conflict_1779770057821",
"status": "completed",
"startTime": "2026-05-25T00:51:13.495Z",
"totalElapsedMs": 30,
"startTime": "2026-05-26T04:34:17.821Z",
"totalElapsedMs": 23,
"results": {
"outline": "[{\"heading\":\"본문\",\"scope\":\"전체 답변\"}]",
"section_0": "[CONFLICT WARNING] 성능이 200% 증가했습니다. vs 그러나 동시에 50% 감소했습니다. 최적화와 성능 저하가 동시에 발견됨.",
@@ -14,30 +14,30 @@
{
"from": "idle",
"to": "outline",
"durationMs": 12,
"durationMs": 16,
"message": "답변 구조 잡는 중...",
"ts": "2026-05-25T00:51:13.507Z"
"ts": "2026-05-26T04:34:17.837Z"
},
{
"from": "outline",
"to": "section",
"durationMs": 6,
"durationMs": 2,
"message": "본문 작성 중...",
"ts": "2026-05-25T00:51:13.513Z"
"ts": "2026-05-26T04:34:17.839Z"
},
{
"from": "section",
"to": "polish",
"durationMs": 6,
"durationMs": 2,
"message": "최종 다듬기 중...",
"ts": "2026-05-25T00:51:13.519Z"
"ts": "2026-05-26T04:34:17.841Z"
},
{
"from": "polish",
"to": "completed",
"durationMs": 6,
"durationMs": 2,
"message": "미션 완료",
"ts": "2026-05-25T00:51:13.525Z"
"ts": "2026-05-26T04:34:17.843Z"
}
],
"resilienceMetrics": {