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": "직답 결과 — single-pass mock 응답입니다.",
"createdAt": 1779670266607,
"createdAt": 1779770051307,
"modelVersion": "unknown"
}
@@ -1,5 +1,5 @@
{
"result": "---\nid: wiki_on\ndate: 2026-05-25T00:51:06.608Z\ntype: knowledge_artifact\nstandard: P-Reinforce v3.0\ntags: [automated, connect_ai, brain_sync]\n---\n\n## 📌 Brief Summary\n직답 결과 — single-pass mock 응답입니다.\n\n직답 결과 — single-pass mock 응답입니다.\n---\n## 🛡️ Reliability & Audit Summary\n> [!NOTE]\n> 이 문서는 ConnectAI의 **Intelligent Resilience** 엔진에 의해 검증 및 정제되었습니다.\n\n| Metric | Value | Status |\n| :--- | :--- | :--- |\n| **Conflict Risk** | `0/100` | ✅ Low |\n| **Fallbacks Used** | `0` | ✅ None |\n| **Auto Retries** | `0` | ✅ Stable |\n| **Deduplication** | `0` | Standard |\n| **Processing Time** | `0.0s` | ✅ Fast |\n\n### 🔍 Decision Audit Trail\n- **[DIRECT]** 답변 작성 중... (단일 호출 fast-path) (13ms)\n",
"createdAt": 1779670266608,
"result": "---\nid: wiki_on\ndate: 2026-05-26T04:34:11.309Z\ntype: knowledge_artifact\nstandard: P-Reinforce v3.0\ntags: [automated, connect_ai, brain_sync]\n---\n\n## 📌 Brief Summary\n직답 결과 — single-pass mock 응답입니다.\n\n직답 결과 — single-pass mock 응답입니다.\n---\n## 🛡️ Reliability & Audit Summary\n> [!NOTE]\n> 이 문서는 ConnectAI의 **Intelligent Resilience** 엔진에 의해 검증 및 정제되었습니다.\n\n| Metric | Value | Status |\n| :--- | :--- | :--- |\n| **Conflict Risk** | `0/100` | ✅ Low |\n| **Fallbacks Used** | `0` | ✅ None |\n| **Auto Retries** | `0` | ✅ Stable |\n| **Deduplication** | `0` | Standard |\n| **Processing Time** | `0.0s` | ✅ Fast |\n\n### 🔍 Decision Audit Trail\n- **[DIRECT]** 답변 작성 중... (단일 호출 fast-path) (24ms)\n",
"createdAt": 1779770051309,
"modelVersion": "unknown"
}
@@ -1,8 +1,8 @@
{
"missionId": "wiki_on",
"status": "completed",
"startTime": "2026-05-25T00:51:06.593Z",
"totalElapsedMs": 15,
"startTime": "2026-05-26T04:34:11.282Z",
"totalElapsedMs": 28,
"results": {
"direct": "직답 결과 — single-pass mock 응답입니다."
},
@@ -12,16 +12,16 @@
{
"from": "idle",
"to": "direct",
"durationMs": 13,
"durationMs": 24,
"message": "답변 작성 중... (단일 호출 fast-path)",
"ts": "2026-05-25T00:51:06.606Z"
"ts": "2026-05-26T04:34:11.306Z"
},
{
"from": "direct",
"to": "completed",
"durationMs": 2,
"durationMs": 4,
"message": "미션 완료",
"ts": "2026-05-25T00:51:06.608Z"
"ts": "2026-05-26T04:34:11.310Z"
}
],
"resilienceMetrics": {
@@ -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": {