콘텐츠로 이동

S361 N8c — portfolio-selector 명세 갱신 가이드 (PM 직접 수정용)

일자: 2026-06-30 (Tue) 배경: N8/N8b 코드 변경(D2 차트 수학화, D3/D4 RS RAW 흡수, 정렬축 streak/p_post 교체)으로 selector 명세(.claude/agents/discover/portfolio-selector.md)가 코드와 어긋남. 성격: ★ 에이전트 설정 수정은 PM 직접(CLAUDE.md §3). 본 문서는 불일치 위치 + 수정 방향 제시. selector가 명세를 읽고 판단하므로, 명세-코드 불일치 시 selector가 옛 서술대로 헤맴(풀런 전 선결).


0. 코드가 바뀐 사실 (요약)

  • D2 차트: LLM 6개 -> chart_score 수학. envelope에 streak/p_post/seat_fit/dd60/overhang. verdict = streak>=2 & 비저점 & 저항앞눌림 POSITIVE / 저점 NEGATIVE / 돌파자리 NEUTRAL.
  • D3 RS / D4 테마: verdict "RAW"(방향 마커 아님). stock_rs는 theme_bonus로 흡수. raw 수치 유지.
  • 정렬축 AXES: [rs_high, amount, ofm, cat_raw, ea_z] -> [streak, p_post, amount, cat_raw, ea_z]. 차트/가격축(rs_high·ofm) 제거(streak 부분집합), 확률변화(streak·p_post)로 교체.
  • score_components_z 키: rank_rs_high/rank_ofm -> rank_streak/rank_p_post (rank_amount/cat_raw/ea_z 유지).
  • raw_metrics: streak/p_post 추가. rs_high_120d/ofm_cvd_z는 참고로 남음(정렬축 아님).

1. 명세 수정 위치 (라인 = 현재 파일 기준, PM 수정)

(A) line 17 — "5축 순위합" rank 설명

  • 현재: "rank/rank_sum은 score_compose가 5축 순위합으로 만든 후보 박스 정렬값"
  • 수정: 5축 내용이 바뀜. "5축 = streak·p_post·거래대금·재료·실적(확률변화 + 비가격정보). 차트/가격축(RS·오더플로)은 정렬축에서 빠지고 확률변화로 대체됨" 취지로.

(B) line 32-34 — "2. 오더플로 (D5, ofm_cvd_z)"

  • 현재: "ofm_cvd_z = 체결 매수압력. 관점A 받침 신호. 높은 ofm은 천장 마지막 매수일 수도."
  • 수정: 오더플로는 방향/받침 판단축이 아님(S360: win 기여 0, streak 부분집합). D5는 execution 단서(cvd_price_divergence)·맥락으로만 참고. "관점A 받침"에서 OF 제거. 단 divergence(가격↑ 매수압력 꺾임) 경고는 보조로 유지 가능.

(C) line 28-30 — "1. 차트 (D2)"

  • 현재: "D2 POSITIVE = 차트상 갈 준비(게이트). unresolved_conflict로 분배/천장 의심."
  • 수정: D2가 수학(chart_score)으로 바뀜. "D2 = P(win) streak + 자리(저항앞 눌림/비저점) 수학 판정. POSITIVE = streak>=2 & 비저점 & 저항앞눌림(N7 1등셀). seat_fit/streak/p_post 수치로 해석. unresolved_conflict(LLM 상충서사)는 더 이상 없음 — key_evidence 수치로 대체."

(D) line 110-111 — "PM 선정 모델 ①~⑤축"

  • 현재: "①주도주(rs_high) ②거래대금 ③오더플로(ofm) ④재료 ⑤펀더. 5축 순위합."
  • 수정: "①확률변화(streak: 며칠째 사후확률 상승) ②확률수준(p_post) ③거래대금 ④재료 ⑤펀더. RS·오더플로는 정렬축에서 빠짐(확률이 흡수). RS는 theme_bonus(테마 집결도)로만 참고."

(E) line 114 — "관점A 받침"

  • 현재: "관점A: 차트(자리)·오더플로(매수압력)·재료가 받치는가"
  • 수정: "관점A: 차트(streak 확률변화 + 저항앞 눌린 자리)·재료가 받치는가" — 오더플로 제거.

(F) line 73-74 — 입력 스키마 주석

  • 현재: "S346 받침 5축... score_components_z: {rank_rs_high, rank_ofm, ...}"
  • 수정: "score_components_z: {rank_streak, rank_p_post, rank_amount, rank_cat_raw, rank_ea_z, rank_sum}".

(G) line 25, 112, 116 — "오더플로 1등" 예시

  • 현재: "오더플로 1등이 실적약·선반영끝을 덮음" (averaging 함정 예시)
  • 수정: 예시 자체는 averaging 경계로 유효하나, "오더플로 1등"을 "streak 1등" 또는 "확률 1등"으로 바꾸면 현 구조와 정합(오더플로는 정렬축 아니므로 1등 개념 없음).

2. 유지(바꾸지 말 것)

  • selector 역할(최종 1종 종합 선정), 관점A/B 대조, averaging 금지 원칙, must_address 강제, D6 실적/선반영·Dnews 재료·D1 시장 해석 = 전부 그대로. 이번 변경은 차트/RS/OF 축에 국한.
  • theme_bonus·theme_concentration·is_theme_leader(D4) 해석 = 유지(RS는 RAW지만 theme_bonus는 흐름).

3. 핵심 한 줄 (PM 수정 방향)

명세에서 "RS·오더플로 = 방향/받침 판단축" 서술을 "확률변화(streak/p_post) = 정렬·방향축, RS/OF는 참고수치"로 교체. selector 종합 역할·관점A/B·재료/실적/시장 해석은 불변.