결론 5줄
- 확인된 사용 가능 정답쌍은 A 일간 0쌍, B 주간 1쌍(양식 한정), C Sell Axe 0쌍이다. 후보·부분 정답 원천은 별도 존재하며, 입력까지 동결된 완전 재실행 세트는 세 영역 모두 0개 확인이다. 근거는 각 영역의 정답쌍 명세와 DB 승인 메시지에 적었다.
- 형식지 반복은 실제다. 일간 동일 양식 3차 정정, 주간 9/13→9/20→9/27 재지적, Sell Axe 9/18→9/23 양식 재지적이 남아 있다. 다만 사용자 영상의 50%·90%·60%를 해리 업무 품질 실측값으로 사용하지 않았다. [A-R1:20–38; D0 messages.id386792,405589,437598; D1 messages.id320,333,701]
- 최근 2주 DB 성공·실패 총계는 미확인이다. 실행 DB가 종료 기록 1,000개만 보존해 9/27 저녁 이후만 남았고, 잔존 A 기록은 completed 15·failed 0·unknown 5, B는 2·0·0이다. 2주 출력 로그에서 A 명시 실패 5건은 별도로 확인했다. [E; E-code:27,129–137; A 가동표]
- 첫 적용은 주간 W38 승인 양식 1쌍의 비교 테스트, 그다음 Sell Axe 회사 회신의 ISIN 부분 정답과 원초안 연결 복원이다. 기존 검증은 대부분 규칙 검사이며 일부 서식 비교는 있지만 해리 정답에 대한 전체 손실·회귀 루프는 확인하지 못했다. [B 정답쌍·검증표; C 정답쌍·검증표]
- 규칙 삭제부터 하면 안 된다. 입력·초안·정답·승인 범위·실행 스킬 해시를 먼저 고정해야 한다. 실제 Neville 크론은 지정 프로필 315줄이 아니라 기본 스킬 568줄을 적재했다. 본 감사는 보고서 외 파일·DB·크론을 수정하거나 발송하지 않았다. [A1; ROOT-A1; O/65949c23f177/2026-09-28_07-07-05.md:11–578]
A. 일간 반복
현재 구조와 실제 가동
집계 기준. 최근 2주를 KST 2026-09-15 00:00부터 09-28 21:35까지로 고정했다(마지막 날은 부분일). 현재 enabled=true인 작업만 대상으로 삼았다. 장부 전체 158개 중 enabled 50개이며, 아래 직접 대상은 13개다. 이하 J, E, O, S, R, U, D0, D1은 마지막 근거 목록의 실제 절대경로를 축약한 것이다. 텍스트는 줄 번호, DB는 테이블·행 ID/조회조건, 바이너리는 페이지·시트·셀을 사용한다. 파일 개수는 해당 디렉터리의 실측 목록 집계이며 줄 번호가 없다. [J:1–8143 전수 JSON 파싱]
DB 실측의 한계. 21:36 조회 당시 E 전체(이 문장의 보존범위 조회에는 감사 종료시각 필터 미적용)에는 정확히 1,000행, claimed_at 범위는 2026-09-27T19:20:12.673378+09:00~2026-09-28T21:36:13.787016+09:00였다. E-code:27의 상한과 :129–137의 오래된 종료행 제거 로직이 이를 설명한다. 작업별 표 집계에는 별도로 claimed_at < 2026-09-28T21:35:00+09:00 상한을 적용했다. 따라서 표의 0은 보존된 행에서 0이지 2주간 미실행/무실패가 아니다. E의 completed도 산출물 정답·수신함 도착을 의미하지 않는다. 초기 일반 sqlite3 -readonly 연결은 실패하여 WAL/SHM 파일이 없는 것을 확인한 뒤 sqlite3 -readonly 'file:.../executions.db?immutable=1'로 읽었다. 가동 중 DB의 시점별 조회이므로 전체 감사가 단일 원자적 스냅샷은 아니다.
| 작업 / 실제 KST 일정 | J 시작줄 / job_id | 잔존 DB completed / failed / unknown | 2주 출력 파일 수 | 출력에서 확인한 사실 |
|---|---|---|---|---|
| 해외채권 모닝 / 평일 07:10 | 6569 / fi-morning-brief | 1 / 0 / 0 | 10 | 10개 모두 [send] ok=True |
| 세션 수집 / 평일 06:35 | 6617 / da1cc0701438 | 1 / 0 / 0 | 10 | 10개 모두 [fi_session_collector] saved |
| 당일 크레딧 가용시각 / 화~토 06:50·07:50 | 6428 / 8927f52948c5 | 0 / 0 / 0 | 20 | 9/26 로그는 누적 38일 중 당일 데이터 성공 0일이라고 기록 |
| 외사 원문 수집 / 매일 05:45 | 6714 / c1dcf1d3c808 | 0 / 0 / 1 | 14 | 14개 모두 status=partial |
| 개인 US IG 학습보고 / 평일 07:30 | 6763 / research-brief-daily-0730 | 1 / 0 / 0 | 10 | sent 7, script failed 3 |
| 리서치 사전 선별 / 평일 06:20 | 6807 / research-brief-prepare-0620 | 0 / 0 / 1 | 10 | preview_ready 8, script failed 2 |
| 세일즈 이메일 / 평일 07:20 | 6895 / 314a17eb2340 | 1 / 0 / 0 | 10 | 10개 모두 SENT ok |
| 데일리 할 일 / 평일 07:40 | 6943 / cd7cb9b347d5 | 1 / 0 / 0 | 10 | 10개 모두 "sent": true |
| 리서치 부분 갱신 / 평일 08:20·11:20·14:20·17:20 | 6991 / fi-research-refresh | 2 / 0 / 2 | 40 | 38개에 완료: 2개 파일 갱신; 나머지를 실패로 판정하지 않음 |
| 실적 재집계 / 평일 07~09시 매시 00·30분 | 7035 / fi-earnings-refresh | 6 / 0 / 0 | 50 | 26개에 [gate] … skip; 출력 보존 상한 때문에 9/15 자료는 없음 |
| 외사별 일일 요약 / 평일 08:15 | 7289 / research-house-daily-0815 | 0 / 0 / 1 | 10 | 9/28 JSON 결과 존재, 일부 Drive 링크 빈 문자열 |
| Neville / 평일 07:00 | 7446 / 65949c23f177 | 1 / 0 / 0 | 10 | 이름은 daily-0900이나 실제 일정은 07:00; 10개 Response에 PDF 경로 |
| 외화채권 일일 / 평일 20:00 | 7565 / 42e1ad0fa713 | 1 / 0 / 0 | 10 | Response상 8회 발송·2회 거래 0건 생략; 독립 수신 검증 아님 |
| 합계 | 직접 대상 13개 | 15 / 0 / 5 | 214 | 출력의 명시 실패 5건; DB 총실패를 복원한 수치 아님 |
표의 출력 집계는 O/<job_id>/2026-09-15*.md~2026-09-28*.md 전수에서 해당 문자열 포함 파일 수를 셌다. 개별 최신 증거: 모닝 09-28_07-11-48:9, 수집 09-28_06-42-11:9 이하, 가용시각 09-26_07-50-15:9, 원문 09-28_05-53-17:9–19, 학습보고 09-28_07-31-51:9–15, 사전선별 09-28_06-23-51:9–15, 이메일 09-28_07-20-44:79–81, 할일 09-28_07-40-46:9–10, 외사별 09-28_08-30-34:14–18,69–74, Neville 09-28_07-07-05:598–603, 외화채권 09-28_20-00-57:15–21. 모든 파일명 앞에는 2026-가 붙는다.
명시 실패 명세: O/research-brief-daily-0730/2026-09-21_07-32-03.md:6–11,32는 exit 2·연결 reset, 2026-09-24_08-30-25.md:6–8과 2026-09-25_08-30-30.md:6–8은 3,600초 timeout. O/research-brief-prepare-0620/2026-09-24_07-20-13.md:6–8, 2026-09-25_07-20-16.md:6–8도 같은 timeout이다. 실패 5건 중 timeout 4건이며 동일 패턴 반복이다.
unknown 5건은 실패 확정이 아니다. E의 id e91f982d31bb414899e8a65328f9030e, fc89dc2a2dec41739574d8cfb57caeda, c4039a2f6e43416ab5732ca2b211b8a6, 166278ee651a494ca75294d68815ce97, 20d7584b59854633922635298ab3bdb1에 스케줄러 재시작·소유 프로세스 종료로 부수효과 수행 여부가 불명이라는 error가 저장돼 있다. 반면 같은 실행의 출력은 partial/preview/생성 결과를 남겼다. 장부 last_status=ok와 E 상태를 섞어 성공으로 세지 않았다. [J 해당 작업; 위 E 행; 위 출력]
연관 자동화도 존재한다: OAS 야간갱신(화~토08:10, J:6665), Wells 수집(매일10:00,:7079), 소스 상태06:10(:7123), 세션 준비05:23(:7167), 포트 계측05~06시2분(:7211), CDP 재시도06~08시5분(:7249), KIS PDF 평일07:15(:7333), Barclays 시험 평일07:30(:8085). 잔존 E completed는 순서대로 0/1/1/1/60/36/1/1, failed·unknown은 모두0. 이 보조작업 101회는 직접 대상 15회 성공에 합치지 않았다.
그래프와 수동 경계. 가격/RSS→가격이동·뉴스군집→원인판정→timeline/session_narrative/asset_detail→날짜 JSON·latest→모닝/PDF/이메일이며, 별도로 원문 보관→선별·요약→외사별/개인보고가 돈다. PDF 양식·고객별 요약 수정은 대화 요청형이다. no_agent=true는 모델 미사용이라는 뜻이 아니다. 모닝 실제 로그는 model=openai-codex/gpt-5.4를 기록한다. [A2:17–28; P/fi_session_collector.py:8663–8714,9079–9081; R/README.md:5–23; A1:8–12,280–308; A4:14–16; O/fi-morning-brief/2026-09-28_07-11-48.md:9]
형식지 뺑뺑이 증거
| 지정 프로필 스킬 | 줄 / 바이트 | 날짜 문자열 포함 줄 | 날짜 직접 부착 규칙 단위 |
|---|---|---|---|
| A1 sales-engine | 315 / 25,839 | 12 | 1 |
| A2 collector | 136 / 10,118 | 1 | 1 |
| A3 briefing | 139 / 5,649 | 3 | 3 |
| A4 client-digest | 63 / 6,449 | 3 | 3 |
| 합계 | 653 / 48,055 | 19 | 8 |
A 규칙 단위는 날짜가 붙은 독립 절/불릿/규칙 문단을 1개로 세었다(A1:139, A2:88–127, A3:51–54·62–68·70–75, A4:36·37·40). 현재 A8개를 날짜순으로 다시 세면 8/15 1→8/16 누계3→8/17 누계4→8/23 누계5→8/28 누계7→9/2 누계8이다. 따라서 참조 파일명의 날짜를 규칙 수에 넣지 않았다. B/C의 날짜 제목 수와 집계 단위가 완전히 같지 않으므로 영역 합산 순위는 만들지 않는다. A1~A3 references의 현재 파일은 92/15/20개, 총127개·6,766줄·531,828바이트. 이름상 8월은 69/13/14개, 9월은23/2/3개, 무일자3개다. 이는 현재 파일 안에 남은 날짜분포이지 실제 역사 버전별 줄 증가율은 아니다. 기간별 실제 증분은 미확인. [S의 A1~A3 각 references/*.md 목록·바이트 실측]
- 일간 로드맵은 한 세션에서 테마 표→외사 블록→해리 스케치에 따른 테마 가로열/외사 세로랭킹의 3차 수정을 기록한다. 말로 재해석하지 말고 스케치를 옮기라는 후속 규칙까지 있다. [A-R1:20–38]
- 앞 문서는 외사 우선, 후속 문서는 앞 문서가 다시 정정됐다고 명시한다. 이 둘을 같은 일반 문장으로만 축적하면 유효 규칙 판단이 필요하다. [A-R2:9–21; A-R1:3–18; A1:124–126]
- 여러 구조 변경을 동일
_v17.pdf에 덮어써 해리가 버전을 물은 기록이 있다. 이것은 정답쌍 계보를 복원하기 어렵게 만든다. [A-R3:17–22] - 메일 빈 줄 규칙이 A4:35,44,63에 반복 등장한다. 정확한 재발 횟수는 미확인이지만 같은 형식 문제의 규칙 중복은 확인된다.
- 선호 피드백은 1건(
별로, 7/21), 학습 이벤트 파일은0바이트다. 기존 학습 코드는 같은 패턴 피드백3개로 승격/강등하지 초안↔정답 손실을 저장하지 않는다. [R/data/harry_research_preferences.json:63–70; R/data/research_learning_events.jsonl 파일 크기; R/scripts/research_learning_system.py:392–449,635–665]
정답쌍 개수
사용 가능 확인 0쌍. 없는 것이 아니라 승인·동일 요청/입력 연결이 미확인이다. 조사 목록 범위는 R/output 276파일, R/runs 2,103파일, 외사 리서치2,650파일, P에서 사용하는 memory/fi-session102파일과 위 스킬·관련 후보 내용이다. 목록 전수 확인과 파일 내용 전수 정독은 다르며, 모든 파일 내용을 열었다는 뜻이 아니다.
F/260815_neville_브리핑_v2.pdf~v18.pdf17버전: 인접16조합을16정답쌍으로 세지 않는다. v16 6쪽129,978B→v17 5쪽101,217B→v18 5쪽90,019B. 페이지1의 카드/테마표 구조 변화는 확인했으나 v18의 명시 승인·원문 입력 묶음은 미확인이다. [해당 PDF p1/메타데이터; A-R3:17–22]R/output/pdf/house-daily/20260921.bak-jpm-20260926/manifest.json:5–16과20260921/manifest.json:5–31,45–72: Barclays2→17건, GS1→19건으로 입력이 달라진 전후 PDF 2쌍. 해리 정답쌍은 아니다.~/.hermes/workspace/memory/fi-session/2026-08-18.json과.bak-before-credit-asof-fix-20260818는100,838/103,492B,2026-08-13.json과.bak-before-backfill은104,803/90,220B. 각각 generated_at은 동일하나 해리 교정/승인 증거는 미확인. 백업2쌍도 정답으로 제외했다. [각 JSONgenerated_at및 파일크기]
손실 측정 가능성
JSON은 숫자·단위·기준일·항목집합, PDF는 페이지·섹션·표헤더·좌표를 비교할 수 있다. 그러나 기존 검사≠정답본 손실이다. R/tests/test_build_house_daily_digest_window.py:13–44는 날짜창 합성 테스트5개, test_customer_research_brief.py:41–107는 직접 만든 payload의 링크·건수·길이 검사, P/webapp/test_briefing.py:25–73는 HTML 클래스·카드 개수 검사다(:52에는 항상 True인 검사도 존재). 선호 집계는 앞의 learning_system 경로다.
P/fi_session_collector.py:8907–8914의 --preview-date는 현재 가용 데이터와 MNI latest 폴백을 사용한다. :8928 build 호출, :8934–8936 파일 쓰기이므로 날짜 고정만으로 동일입력 회귀가 아니다. 또 P/fi_research_refresh.py:86–99, fi_earnings_refresh.py:177–183,246은 이후 latest·당일 JSON을 갱신한다. 과거 날짜 파일만 가져오면 아침 당시 입력/결과가 아닐 수 있다. 이번 감사에서는 이 실행기를 실행하지 않았다.
적용안 — 모두 제안, 미실행
- 데이터 위치:
/Users/ron/knowledge-agent/200-projects/dtwin-repeat/datasets/A-daily/<task>/<YYYYMMDD>/<case_id>/. 공통 case.json에 RSS/MNI/가격/원문/선별목록 스냅샷, draft·gold JSON/MD/PDF, 해리 승인 메시지·범위·시점·해시를 연결한다.expected.json에는 포함/제외 리포트ID, 숫자·날짜·섹션·의견과 근거 대응을 둔다. - 손실 0~100: 숫자·단위·날짜·근거 오류35 + 채택집합
1-F125 + 구조·순서·페이지20 + 해리 판정 항목20. 각 항목은 비교 대상 중 오류 비율(0~1)에 배점을 곱한다. 주관 판단은 해리 표본 라벨이 없으면 점수를 채우지 않고 미평가로 둔다. 개인정보 노출·허위 근거·의도하지 않은 발송은 총점과 무관하게 탈락이다. - 회귀: 승인된 N=1부터 시작해 N=5를 확보하는 것을 첫 주 목표로 한다(현재5쌍 있다는 뜻 아님). 과거 입력 스냅샷만 주입하고 네트워크/발송/latest 쓰기를 차단한다. 기존/후보 버전의 동일 사례별 손실·최대 손실·탈락 건수를 비교하고, 날짜만 바꾼 preview는 쓰지 않는다.
- 스킬 축소 후보: A3:18–56(39줄),62–75(14줄),101–108(8줄),131–138(8줄), 합69줄의 섹션·단위·날짜·제외시장·폰트·중복주의를 승인 expected/렌더 테스트로 이동하고 구간별 링크4줄로 대체하면 순65줄 감소, A3 139→74, A 전체653→588줄이다. 정답/테스트가 통과한 뒤의 설계상 감소량이지 즉시 지워도 된다는 판정은 아니다. 원문 없는 추정 금지(A3:58–60), 발송·개인정보 통제는 유지한다.
- 비용: 숫자·날짜·누락·서식은 코드, 반복 요약은 저가 모델. 비싼 모델은 최초 기준 설계와 해리 판정20점의 애매한 사례 검증만 맡긴다. 특정 모델 가격/성능 우열은 이번 로컬 감사에서 실측하지 않았다.
첫 실행과 부적합·위험
첫 주 최소1개: 260815 v16→v18을 후보로 고정하고 해리에게 파일 자체의 승인 범위를 받아, 섹션 순서·페이지·헤더·숫자 보존 테스트1개를 만든다. 승인 전 gold 승격 금지. 새 크론은 만들지 않는다. [17버전 실측; A-R1:20–38]
시장 원인 해석/고객별 표현은 시점·고객에 따라 정답이 달라 문자열 일치율로 대체하기 부적합하다(A2:20–26; A4:39). 원문 수집 인증·당일 가용시각 문제는 모방학습으로 해결할 문제가 아니다(A1:257–308; 가용시각 로그9행). 메일 주소·수신자·리서치 원문 라이선스·공유링크를 외부 평가 서비스로 보내지 않는 로컬 평가가 기본이다(A4:16–30,40,52,57; 선호JSON:44–54). Remaining Risks: timeout4건·레이아웃3차정정·v17 덮어쓰기 반복이 확인됐으나, 읽기 전용 지시 때문에 수정/가드레일 추가는 하지 않았다.
B. 주간 반복
현재 구조와 실제 가동
US IG 엑셀은 “날짜 파일 만듭시다”라는 대화 요청으로 시작하는 반자동 작업이다. 직전 회차 복제→날짜 정정→Bloomberg/상대가치/뉴스/외사 리포트 조달→fill 조립→검문·회차검증→Excel 확인→해리 QA가 스킬의 그래프다. 260928 실제 조립기는 직전 회차 템플릿을 쓰며 0,A,B,C,D,E,F,G,H,J,K,L,Z 13노드를 순서대로 실행한다. 뒤 노드의 덮어쓰기 때문에 순서 고정이라는 설명도 있다. [B1:3,8–9,26–151,171–233,282–330; U/runs/260928/build_full.py:28–31,36–67]
U/runs/의 해당 기간 회차는 260803·260810·260817·260824·260831·260907·260914·260921·260928 9개다. 산출/*.xlsx는 순서대로1/3/1/2/2/1/1/1/1개, 합13개. build_full·검문은260803 제외8회차, 회차기록은260907 제외8회차, fill Python은0/19/20/25/25/25/25/25/25개다. 이는 파일 존재 수이며 매회 성공/승인 수가 아니다. [해당9개 디렉터리 실측]
주간 리포트 요약 PDF는 엑셀과 별도 업무다. 해리는 9/20 “엑셀자료 말고 크레딧 리포트 요약본”이라고 구분했고, 같은 날 일요일 오전 게시를 승인했다. 현재 크론 전용 구현은 R/scripts/build_weekly_credit_house_summary.py이다. 지정 프로필 B2:46–47이 지시하는 build_weekly_credit_onepager.py와 이름이 다르다. 다만 기본 프로필의 스킬에는 전용 경로가 추가되어 있으므로 시스템 전체에 지시가 없다고 단정할 수는 없다. [D0 messages.id405160,405764; J:7964–8021; 해당코드:2; ROOT-B2:114–124]
| 자동 주간 작업 / 실제 KST 일정 | J 시작줄 / job_id | 잔존 DB completed / failed / unknown | 2주 출력 수·근거 |
|---|---|---|---|
| 미국 경기 국면 / 월08:30 | 6139 / us-cycle-dashboard-weekly | 1 / 0 / 0 | 2개(9/21·28) |
| 개인 US IG 주간 종합 / 토08:00 | 6851 / research-brief-weekly-0800 | 0 / 0 / 0 | 2개(9/19·26), 모두 status=sent |
| 주간 OAS 갱신 / 토07:50 | 7390 / e3b8c10634db | 0 / 0 / 0 | 2개(9/19·26), 최신은12시리즈·error_count0 |
| 외사 테마별 PDF / 토08:30 | 7673 / 4d7072b76c8b | 0 / 0 / 0 | 2개(9/19·26), 최신124건·18쪽 |
| 크레딧 업무메일 / 월07:00 | 7730 / e0c93fab23ea | 1 / 0 / 0 | 2개(9/21·28), 모두 SENT_ID |
| 크레딧 요약본 / 일09:00 | 7964 / 5c45c26045be | 0 / 0 / 0 | 1개(9/27); 9/20 21:13 생성된 잡 |
| 합계 | 6개 전부 enabled | 2 / 0 / 0 | 11개; 명시 script failed0, 전체 성공11로 환산 금지 |
출력의 실제 경로는 O/<job_id>/: 2026-09-28_08-30-01.md:9–27(경기점검), 2026-09-26_08-15-54.md:9–15(주간종합), 2026-09-26_07-50-18.md:9(OAS), 2026-09-26_08-30-36.md:9–28(테마), 2026-09-28_07-03-34.md:9–12(메일), 2026-09-27_09-03-26.md:1–5(일요일)이다. 경기점검에는 일부6월 기준 값과 MANEMP/GDPC1 미확인이 남는다. 자동 실행과 데이터 적시성은 다른 검증 축이다. [경기점검 출력:18–27]
수동 엑셀의 최근 2주 종단 성공/실패 횟수는 미확인이다. 크론 실행표에 넣을 근거가 없다. 초기 회차기록상260921은9/18 Bloomberg 실패·9/11 참고치를 기록하고,260928은13노드·숫자47건 차이0과 앞서 수정한 오류14건을 함께 기록한다. 끝에는 일부9/11 값 잔존·Excel 화면 미검증·메일/Slack 미발송도 적혀 있다. 260928 기록:27에는 이후260921 원본을9/18 수집값으로 갱신해 비교한 내용도 있으므로, 초기 기록을 현재260921 파일값으로 단정하지 않는다. “검문0”을 해리 최종승인으로 읽으면 안 된다. [U/runs/260921/회차기록.md:9; U/runs/260928/회차기록.md:59–89,101–105]
형식지 뺑뺑이 증거
| 지정 프로필 스킬 | 줄 / 바이트 | 날짜 언급 줄 | 날짜 제목 규칙 |
|---|---|---|---|
| B1 us-ig-weekly-report-build | 400 / 36,239 | 4 | 0 |
| B2 weekly-credit-onepager-build | 131 / 8,400 | 8 | 1 |
| B3 credit-report-presentation | 63 / 4,024 | 1 | 0 |
| B4 report-artifact-qa-feedback | 57 / 3,370 | 0 | 0 |
| 합계 | 651 / 52,033 | 13 | 1 |
제목(##류 또는 - **)에 날짜가 붙은 규칙만 센 B의1개는 B2:97의9/13 재발사고다. B1 references의 날짜 파일7개(260831 4개,260907 3개)는 별도 누적이다. 현재파일 날짜 분포이지 실제 과거판 증가율은 미확인이다. 낮은 날짜 제목 수는 피드백이 적다는 뜻이 아니다. 기본 스킬 ROOT-B2는205줄·19,291B이며9/20·9/21 후속 규칙도 있다. 지정 프로필131줄과의 차이는 동시 사본 차이이지74줄이 시간순 증가했다는 증거는 아니다. [B1 references 목록; ROOT-B2:114–152]
- B2:11–19에 잘못된 스크립트로 두 번 실패, :97–120에 같은 날 재지적과 “새 반복 지시는 한 줄 규칙 추가”가 있다. B3:18도 같은 축적 방식이며 B1:173–176은 “매주 똑같은 걸 지적”한 사례를 남긴다.
U/runs/260824/회차기록.md에는 N차 수정 제목26개(2~27차)가 있다. 해리 직접 편집본을 받고도 행높이를 누락해 재지적(:797–851), 병합확장으로 데이터 손실·순서버그(:1065–1125), 스크린샷3장으로 잘림 재지적(:1152–1181)을 기록한다. 기록된 사건이며 이번에 당시 실행을 재현한 것은 아니다.260831/회차기록.md:759–791에도15~18차 재수정이 있다. D0의 실제 사용자 메시지는9/13 “왜 계속 양식이 바뀌는거죠”(386792),9/20 “매주 틀을 제대로 안만들고”(405589),9/27 “왜9곳…내용이 이번주가 아닌데…여러번 안시키게”(437598)로 이어진다. 동일 timestamp의405678은405589의 중복으로 세지 않았다.- 현재 전용 생성기:7–8은 W38/W39 본문 해시 동일·날짜만 바뀐 사고, :22–31은9/27 9곳·직전주 내용 사고를 기록한다. 규칙/페이지 검사 통과만으로 의미적 정확성이 담보되지 않은 사례다. [R/scripts/build_weekly_credit_house_summary.py 해당줄]
정답쌍 개수
사용 가능한 양식 정답쌍1쌍. 원문 입력까지 동결된 완전 재실행쌍0쌍 확인.
| 항목 | 초안 | 해리 승인한 양식 결과 |
|---|---|---|
| 실제 파일 | R/output/pdf/weekly/260920_neville_주간요약_1장.pdf | F/00_주간테마별/2026-W38/2026-W38_크레딧_리포트요약_외사별.pdf |
| 크기·쪽수 | 52,264B·1쪽 | 53,304B·1쪽 |
p1 로드맵 |
1건 | 0건 |
p1 주간 크레딧 시장 요약 |
0건 | 1건 |
p1 다룬 내용 |
0건 | 6건 |
| 연결 근거 | D0 messages.id405528 전달→405535 해리 정정 | 405568 수정본 전달→405589 “이게 가장 큰 틀” |
이번 감사의 읽기 전용 추가 진단: 두 PDF를 pdftotext -layout <파일> -와 pdfinfo로 다시 읽고, ①1쪽 ②로드맵 없음 ③요약제목 존재 ④이 사례의 외사블록6개를 각각25점의 오류로 계산했다. 초안은 통과1/4·간이손실75, 승인본은4/4·간이손실0이며 두 결과에 대한 인메모리 assert가 통과했다. 이는 보관된 결과2개의 제한적 양식 차이 실측이지 모델/그래프를 재생성해75점 개선했다는 뜻이 아니다. 잘림·겹침·내용·링크·금융수치는 이4조건에서 평가하지 않았다. 초안 SHA256=ccabb865ac25946d79aa170e22bd16c3217a4c2231f363fc9b48fd7c48769a73, 정답 SHA256=3fe9fabf5462155d9816b71e8687bcb65cd07a9334eb24ac1df0b20b8b7c5cf2. 파일 쓰기 없이 계산했다.
같은 요청의 수정 전후와 승인 범위가 연결되므로 양식 평가에 쓸 수 있다. 해리가 모든 금융수치·논조를 승인했다거나 두 실행의 원문 목록·해시가 같았다고 주장하지 않는다. 이1쌍은 바로 결과 비교 평가에는 쓸 수 있지만, 전체 파이프라인 동일입력 재실행을 하려면 입력 복원이 추가로 필요하다.
추가 후보는 2쌍이며 위1쌍에 포함하지 않았다.
1. U/runs/260803/참고/중간본_v18_3페이지.xlsx→산출/최종본_v38.xlsx. 회차기록:3,15,19–20에 v18 비채택·v38 발표 사용이 있으나 해리 교정/승인 메시지와 동일입력 연결은 미확인.
2. U/runs/260831/산출/US_IG_주간_260831_before_harry_layout_overlay.xlsx→US_IG_주간_260831.xlsx. 회차기록:602–618,759–764에 해리 편집본 반영 기록이 있으나 원첨부 /Users/ron/.hermes/cache/documents/doc_7a490a514b7a_US_IG_주간_260831_레이아웃적용.xlsx는 해당 경로에 없다. 두 실물은20시트(공개3/숨김17), 메인 3_시장통계_수급 A1:R49→A1:R39, 셀좌표 XML414개 차이다. 414는 값오류 수가 아니라 스타일·표현 포함 XML 차이다. 최신값 재반영과 양식수정이 섞여 전체를 동일입력 정답으로 세지 않았다.
W39의 .bak-before-datefix, .bak-before-drivelink, .bak-before-latewindow, .bak-before-pubdate-fix PDF4개는 승인 미확인·입력기간 변경을 포함한 기술 회귀 재료다. 260921/260928의 입력/원본_before_*_update.xlsx도 입력 갱신 전후이지 해리 정답이 아니다. [해당 폴더 목록; 위 회차기록]
손실 측정 가능성·기존 코드
| 실제 코드 | 하는 검사 | 디트윈 관점의 한계 |
|---|---|---|
| U/weekly/verify_same.py:7–15,151–218 | 두 Excel의 값·일부 서식·XML 비교 | 보통 직전 회차 동일성 비교. 해리 승인 데이터셋 손실 아님 |
| 같은 파일:26,167,186–187 | 상세 서식 대상은 2_외사리포트리뷰, 자료설명 |
현재 공개3탭 2_블룸버그기사, 3_시장통계_수급, 3-1_상세설명은 대상 밖. “서식차이0”을 공개탭 전체 동일로 해석 불가 |
| U/runs/260928/검문.py:8–12,25–30,71–76,113–122 | 구날짜·출처·숫자·잔존값 검사 | 260831 템플릿/8월 옛값 하드코딩. 해리 정답 대비 손실 아님 |
| U/scripts/회차검증.py:14–23,62–90 | 헤더·날짜 정규식 | “이번 주” 포함 셀 조건이 남음. B1:215–221의 공개탭 전수검사 지시와 차이 |
| U/runs/260928/전수대조_260928.py:21–44,56–133 | 원자료 기대값 독립계산·숫자·방향·기간 비교 | 유효한 원자료 정확성 검사지만 해리 선택/문장 정답과의 차이는 아님 |
| U/runs/260928/fill/verify_A.py:2–8,74–77 | 독립 기대값 계산 | 복사/저장 코드가 있어 감사 중 실행하지 않음 |
| R/scripts/build_weekly_credit_house_summary.py:790–831 | 1쪽·금지어·제목·블록·직전주해시·발행일·방향 | 신선도/규칙 검사이며 승인 W38의 전체 레이아웃/문장 손실은 아님 |
적용안 — 제안, 미실행
- 위치: 공통 루트의
datasets/B-weekly/W38-layout-v1/.input_manifest.json(원문 목록/해시/발행일/수집일/대상주간),draft.pdf,gold.pdf,approval.json(405589, scope=layout_only),expected_layout.json,graph.json,loss.json. 엑셀은layout_epoch와content_asof를 분리한다. 해리 레이아웃본에도 옛값이 있을 수 있기 때문이다. [260831 회차기록:759–764] - PDF 양식손실 100점: 페이지·섹션·제목30 + 외사블록25 + 승인된 제외섹션20 + 잘림·겹침15 + 링크구조10. 항목별 불일치비율×배점. W38의6하우스를 모든 주에 고정하는 것이 아니라 해당 사례의 기대값으로만 쓴다. 시장내용·숫자는 양식 승인과 분리한다.
- 엑셀손실 100점: 공개탭·병합·행높이·열너비·차트위치30 + 필수 표/행 보존25 + 원자료 숫자·방향·기간30 + 내부문구/문체15. 마지막 정성 항목의 해리 라벨 없는 부분은 미평가. 구날짜 위장·허위수치·발송은 하드 실패다.
- 회귀: N=1 W38로
gold vs gold=0,draft vs gold>0인 독립 평가기를 먼저 검증한다. 전체 재생성 비교는 입력복원 후 시작한다. N=3은260803/260831 후보를 승인 범위 지정 후 편입하는 후속 목표다. 학습용과 평가용 회차를 분리하고 어떤 사례도 승인 범위 밖 항목을 정답 처리하지 않는다. - 모델비용: 표/날짜/서식/수치는 코드, 고가 모델은 최초 루브릭·정성 오차 표본 검증, 일상 요약은 저가 경로. “모델을 늘리면 품질이 오른다”는 가정 대신 고정 입력의 손실로 판정한다.
스킬 축소 후보는 아래 129줄→테스트 계약 링크16줄, 순113줄로 합651→538줄(17.36%)이다. 테스트가 먼저 생기고 통과해야 한다. - B1:205–221(17),339–360(22),368–380(13),391–400(10): 합62→4, 순58줄. 헤더·날짜·부호·행 보존. - B2:50–58(9),79–95(17),122–131(10): 합36→4, 순32줄. 표시 날짜·폰트·링크 검사. - B3:13–17(5),22–27(6),60–61(2): 합13→4, 순9줄. 형태·검증 계약. - B4:20–23(4),29–32(4),34–39(6),41–44(4): 합18→4, 순14줄. 산출 검사·대조 조건. 분석 근거·출처 선택·사용자 승인·외부 발송 권한은 유지한다. 위 줄수는 본문만의 설계상 축소량이며 참조/테스트 코드가 그만큼 줄어든다는 뜻은 아니다.
첫 실행과 부적합·위험
첫 주 최소1개: W38 PDF2개와 승인 메시지를 묶고, 로드맵/요약제목/외사블록/1쪽의 독립 평가1개를 만든다. 이미 확인된 초안 1/0/0/1쪽→정답 0/1/6/1쪽을 재현한다. 이4조건 검사와 전체100점 루브릭은 다르며, 첫 검사만으로 내용 검증까지 통과했다고 말하지 않는다.
Remaining Risks: 레이아웃 재지적·병합 데이터 손실·과거값 잔존·검문 통과 후14건 수정이 반복 기록돼 있다(위 회차기록). 코드의 서식 비교 범위부터 바로잡기 전 “회귀통과”를 품질 보증으로 쓰면 안 된다. 회사 보유종목·Bloomberg/외사원문은 로컬 제한이 필요하며, 판단이 바뀐 하우스 포함/기간 기준은 시점별 버전으로 관리해야 한다. W38의 내용을 다음 주 숫자 정답으로 재사용하면 이미 기록된 날짜만 바뀐 사고를 재현한다. [전용생성기:7–8,22–31,88–95]
C. Sell Axe
현재 구조와 실제 가동
Hermes 장부의 enabled50개 중 name/script/command에 Sell Axe·ISIN을 가진 전용 잡은 0개 확인이다. 전체 prompt 문자열의 axe 검색에는 이번 유튜브 적용검토 잡이 걸리므로 그것을 Sell Axe 실행기로 오분류하지 않았다. Hermes 전용 크론0개≠전부 수작업이다. 회사 회신 M/260928/reply_0415/body.txt:35에는 axe_daily 평일10:45·13:45·16:45 자동처리 시작이 적혀 있고, reply_latest/1a0e65804ab20f9f_body.txt:1–12에는9/28 13:48·3통·442줄·261키·확정255/복수4/미확인2가 기록돼 있다. 회사컴 스케줄러·직접 실행로그는 미확인이다. [J 전수 필터; 위 본문]
관측 그래프는 해리의 딜러메일 전달→회사컴 메일파싱·Bloomberg 식별/만기 확정→회사파일 회신→Ron 원문·회사값 적재→대표호가/추이→일일 Excel·메일본문표→해리 피드백이다. 회사파일 없는 날 임시 원문파서를 쓰되 미확정 ISIN은 보류하는 경로도 있다. [C1:19–54,175–189; H/HANDOVER.md:20–43,54–65]
M/timeseries/sell_axe_trend.db의 quotes는 5,405행·15관측일이다. 날짜별 행수는8/27 389,9/1 170,9/2 177,9/3 291,9/4 388,9/7 307,9/8 425,9/9 158,9/14 500,9/15 606,9/16 401,9/17 328,9/18 527,9/23 296,9/28 442. 이 중 감사2주 창에는 6일·2,600행이 남는다. key_map893행·security_master464행. load_log적재번호2~6은9/28 UTC01:51:37·04:17:05·04:43:31·05:13:11·05:32:35의 5회 적재, 행수384/384/442/442/442이며 같은 260928/secdb_mail/SellAxe_260928_ISIN.xlsx 경로의 해시가 달라진다. 이것은 적재/덮어쓰기 흔적이지 종단 성공5회·실패0회가 아니다. 2주 종단 성공/실패 및 해리 승인 횟수는 미확인이다. [해당 DB quotes 일자 GROUP BY; key_map/security_master COUNT; load_log 적재번호2–6]
구형 U/axe/딜러런_누적.csv:2–684는683행(8/2 183,8/9 265,8/16 235),9월 현재 장부와 분리된 경로다. U/axe/axe_intake.py:2–10,14–18은 파일수신→파싱을 설명한다. 구형 적재량을 현행2주 처리건수에 합산하지 않았다.
형식지 뺑뺑이 증거
| 지정 프로필 스킬 | 줄 / 바이트 | 날짜 제목 규칙 |
|---|---|---|
| C1 sell-axe-multi-dealer-sourcing | 228 / 34,446 | 16 |
| C2 sell-axe-dealer-name-format | 37 / 2,479 | 1 |
| C3 us-ig-sell-axe-pipeline | 110 / 10,999 | 3 |
| 합계 | 375 / 47,924 | 20 |
C는 날짜가 붙은 #류 제목 또는 - **규칙 제목을1단위로 셌다. 소싱9/8은:123,132의2개,9/23은:32,38–42의6개,9/28은:44,47–52,54의8개. 딜러9/7은:6의1개. 파이프8/24는:76,89의2개,9/7은:53의1개다. 현재 문서의 날짜별 누계는 8/24 2→9/7 4→9/8 6→9/23 12→9/28 20. 실제 과거 파일판의 줄 증가량은 미확인이다. C3:49의8/23 원천기간 설명은 날짜규칙에서 제외했다.
- C1:17은 새 반복 지적을 한 줄 규칙으로 추가하라고 한다. C1:39의 “양식이 다르다, 여러 번 얘기했다”는 D1 사용자 messages.id701(9/23 17:04)에서도 확인된다. 앞서9/18 id320은 기존 양식 이어서 요구,333은 앞서 만든 Excel 양식 미반영을 지적한다.
- D1 id193(9/17 15:07)은 같은 KOROIL쿠폰 만기2개 문제·해리 ISIN 기반 업데이트 송부·딜러 열이 아닌 행 구분을 요청한다. C-R:11–24도 전일 지시 재지적·실제 파일구조 비교 부재·임의만기·ISIN 누락 보고 오류를 남긴다.
- 개인명 재발(C2:6–12), 비KP 재유입 “또 다 넣었네”(C3:76–87), 잘못된 SAMAER 매핑의 여러 회차 복사(C1:126–128)가 있다. 한 케이스 패치를 다음 코드에 복사하는 위험이 문서에 직접 남아 있다.
- 정렬 지시는 C1:192
대분류→테너→노치, :198노치→만기, :49통합노치가 공존한다. :41 HTML표와 :151 고정폭 코드블록/표, :50 최신분류와:113–120 과거분류도 함께 있다. 날짜/채널/적용범위를 분리하지 않고 전체 문장을 동시에 적용하면 충돌할 수 있다. 이번 감사에서는 어느 규칙을 삭제하지 않았다.
정답쌍 개수
종단 산출물 정답쌍0개 확인, 회차 후보4개, 회사 작성의 부분 정답 원천은 존재. 같은 요청/입력에 대한 읽을 수 있는 초안과 해리 교정·확정 파일의 연결이 있어야 전체쌍으로 세었다. 파일명 “최종”·에이전트 자기검증만으로 세지 않았다. M의260828~260928 날짜폴더15개 아래 XLSX68개(9/17 16,9/18 9,9/23 4,9/28 5)는 파일 수이지 정답쌍 수가 아니다.
C1 후보—260917.
- M/260917/SellAxe_260917_새양식_고객용포함.xlsx:5시트, 고객용 A2:A12에11개 고정 SELLER 문자열.
- SellAxe_260917_시세확인용_고객전달용_최종정정.xlsx:3시트, 고객전달용 A2:A50은 시세확인용 참조수식.
- SellAxe_260917_최종수정_ISIN만기_행구분.xlsx:5시트, 시세확인용 A4:F4=구분/종목/만기/금액/상대방/스프레드.
- 회사파일 mail_updates/1a0adf71a542cc43_sell axe 만기 업데이트.xlsx, 1a0adf872796fc18_sell axe 만기 업데이트.xlsx는 2개 모두 XLSX ZIP이 아니고 첫32바이트가 DOCUMENT SAFER 표식이다. 셀 내용 미확인, DRM을 우회하지 않았다.
- 첫메일 _body.txt:1–9는 ISIN·만기 정정, 두번째 _body.txt:1–14는 해리 행구분 표, :15–28은 발신/원지시를 담는다. 본문은 양식 부분정답이나, 최종 Excel 전체 승인쌍은 미확인이다.
C2 후보—260918.
- M/260918/SellAxe_260918_시세확인용.xlsx:4시트·시세확인용 A1:L180, 한눈에보기 B4=179.
- SellAxe_260918_최종_전일양식반영_종목DB_BDP수식수정.xlsx:6시트·A4:F4의6열, 본표 끝행175.
- SellAxe_260918_최종_ISIN업데이트적용.xlsx:6시트·본표 끝행175. 같은 이름 _verify.json:3–6에 회신96/DB반영94/고객Y39/Not found10이 있다.
- isin_update_mail/1a0b3a26647c4367_RE_260918_AXE_종목DB_BDP수식_수정본.txt:1,3–7,11은 회사 ISIN·Bloomberg명·Not found 원천이다. 단위 값 평가에 쓸 수 있지만 전체 최종본 승인 근거는 미확인이다. 복기 C-R:16–17,36에는 당시 애매만기8건 제외·실제 메일수신 미확정·입력필요72행도 적혀 있다.
C3 후보—260923.
- M/260923/secdb_mail/AxeHistory_260827_260923.xlsx, SellAxe_260923_ISIN.xlsx 회사원천2개→M/260923/SellAxe_260923_최종_추이포함.xlsx.
- M/timeseries/astra_brief_260923.md:7,12–18은 회사 BBG확정값을 정답원천으로 쓰라고 하고, secdb_mail/mail_body.txt:1,19–21은 재검색최종/복수7/첨부2를 기록한다.
- 그러나 M/timeseries/README_trend_db.md:100–107에 두 원천의 ISIN판단 4건 차이가 적혀 있다. 원천 필드 보존평가는 가능하지만 서로 다른 회사파일을 자동으로 단일 golden으로 합칠 수 없다.
C4 후보—260928.
- 현재 M/260928/SellAxe_260928_최종_추이포함.xlsx:10시트·본표5~305행=301행·검증결과 B2=301.
- M/260928/reply_0415/SellAxe_260928_최종_추이포함_ISIN채움.xlsx:7시트·본표5~262행=258행·B2=258.
- reply_0415/body.txt:1–3은 “받은 파일 종목디비만 수정, 입력필요25 중20 채움”이라고 명시한다. 현재301행 파일을 회신258행 파일의 원초안으로 간주하면 잘못된 손실이 된다. 당시258행 초안은 조사범위에서 미확인이다.
- 추가 reply_latest/1a0e65804ab20f9f_SellAxe_260928_ISIN.xlsx, 1a0e65dfc7f8293b_SellAxe_260928_ISIN.xlsx는 각각177,453B. 파일2개를 독립 정답쌍으로 셀 근거는 없다. 먼저 원초안 복원/키별 변경20개 범위 확정이 필요하다.
손실 측정 가능성·기존 코드
| 실제 근거 | 이미 하는 일 | 아직 아닌 것 |
|---|---|---|
| M/timeseries/test_sell_axe_trend.py:17–19,40–57 | 회사 실파일 입력·4,963/869/460 상수·296행·재적재/과거보존·만기 보존 | 해리 최종 Excel 전체 손실 |
| 같은 파일:67–89,98–128 | 중앙값·대표호가 독립 계산, 단위 정답·불완전 만기 | 전체 정답쌍 데이터셋/승인 범위 관리 |
| 같은 파일:134–161 | 임시DB·롤백 시험 | 이번 감사 재실행은 안 함(파일쓰기 발생) |
| M/timeseries/셀액스_독립시험.log:1–4 | 과거14테스트·4.893초·OK 기록 | 현재 환경/새 데이터 재통과 증거 아님 |
| M/timeseries/sell_axe_trend_load.py:355–410,437–453 | 원본행 필드·만기 보존 및 회사파일 간 ISIN판정 차이 | 사람 승인 종단 산출물과의 가중 손실 |
| M/timeseries/build_sellaxe_daily_legacy.py:282–305 | 본표+제외=원본, 만기/단위/FRN/개인명/정렬/연속성 | 전체 서식 golden 비교 |
| M/260917/SellAxe_260917_시세확인용_고객전달용_최종정정_검증.json:9–71 | 49레코드·98수식·행높이/줄바꿈 | /검색은 쿠폰4 1/4 등11개도 검출. Bid/Offer 의미 오류와 같지 않음 |
따라서 C에는 이미 실파일 회귀·독립계산·부분 원본차이 검사가 있다. 이것을 버리고 새 스킬부터 만들 필요는 없다. 승인 gold를 별도로 주입해 양식/선택/정렬/값 손실을 확장하는 것이 최소 변경안이다. 수식 원문은 XML로 비교할 수 있지만 Excel/BBG를 실행하지 않고 계산값·화면까지 검증했다고 하면 안 된다.
적용안 — 제안, 미실행
- 위치: 공통 루트
datasets/C-sell-axe/<case_id>/.input/raw/*.txt,input/company.xlsx,input/context.json,draft.xlsx,gold.xlsx,gold.rows.jsonl,approval.json,graph.json,loss.json. - 필드: 원문·회사파일 sha256, source_mail_id, input_cutoff, rule_epoch, 승인자/메시지/시각,
gold_scope=layout|isin|full, parser_version, row_key, expected_value, provenance(파일/시트/셀 또는 줄).260918-layout과260928-tier를 구분한다. 최신규칙을 과거정답에 무조건 덮지 않는다. [C1:49,192,198; 위258/301행·load_log 차이] - 손실 100점: 양식20(시트·헤더·너비·서식의 불일치비율), 포함/누락25(
1-F1, 키=원자료묶음+ISIN/원문키+외사+대표시각), 정렬15(승인 그룹/인접쌍 역전율), 값30(만기·ISIN·수량·스프레드·기준국채·쿠폰의 정규화 오류율), 출처·본문표10(연결/날짜/Excel행 불일치율). 숫자 허용오차는 필드 단위로 명시하고 범위를 넘으면 오류1로 처리한다. 금액/호가 단위가 다른 값의 절대오차를 무작정 평균내지 않는다. - 하드 실패: 임의만기 생성, Bid/Offer 오인, 개인명 노출, 미확정 ISIN을 확정처럼 고객용으로 내보냄. 평균점수로 상쇄 불가. ISIN부분승인20개만 있으면 해당 셀 범위만 평가하고 전체100점으로 환산하지 않는다.
- 회귀: N=1(9/18 양식 승인 후)→N=4(9/17·18·23·28의 장애 해소/승인 후) 목표. 현재4정답쌍이 있다는 뜻이 아니다. DRM/원초안 미복구 사례는 보류한다. 같은 입력 해시에 버전A/B를 실행하여 각 사례 손실·하드실패를 비교, 평균개선으로 특정회차 악화를 숨기지 않는다. 실제DB적재·메일·Slack·네트워크는 차단한다.
- 비용: 기존 파서·값검증·회귀는 코드, 새 포맷만 저가 모델, 고가 모델은 초기 오류분류/평가 설계/보류사례 검증에만 사용한다. 기존 C1:167–173의 비용원칙도 재사용한다.
규칙 대체 후보는 C1:91–98(8줄,수량단위),132–142(11줄,DZ Bid/Offer),191–200(10줄,양식/정렬),210–225(16줄,시트·고객행·ISIN검증), C2:19–37(19줄,딜러표준명/개인명) 합64줄이다. 입력→정답 fixture/버전별golden으로 옮기고 총8줄의 테스트 경로·실행계약을 남기면 순56줄, 전체375→319줄(14.93%) 감소 제안이다. 개인정보 금지와 미확정 처리 원칙 자체는 실행계약에 남겨야 한다. C1:151처럼 긴 복합문장1줄이 있어 줄수만으로 복잡도를 평가하지 않는다.
첫 실행과 부적합·위험
첫 주 최소1개: 9/18 양식 부분정답 승인을 받아 golden-layout JSON1개와 초안/수정본 비교를 만든다. ISIN업데이트96/94는 별도 값 평가로 분리한다. 동시에9/28 회신의 동일258행 원초안을 찾되, 없으면 이번주 새 회차부터 초안 보존을 시작한다. 현재301행 파일로 억지 쌍을 만들지 않는다. [C-R:20–23; 위 C2/C4 실물]
Remaining Risks: 양식반복(9/17→18→23), 임의만기, 필터/개인명 재유입이 기록됐다. 회사원천도4개 ISIN판정이 달라 정답확정이 필요하다. “싼 종목”은 회사본문조차 기계적1차·최종판단사람이라고 적었다. 따라서 과거 정답을 투자판단의 영구 정답으로 학습하면 안 된다. [README_trend_db:100–107; M/260928/reply_latest/1a0e65804ab20f9f_body.txt:13; 1a0e65dfc7f8293b_body.txt:9–27,47–49,61–63]
회사메일·개인명·Bloomberg값·DRM의 외부모델 전송 허용범위는 미확인이다. 원문은 로컬 제한, 평가로그에는 필요한 비식별 키만 저장하는 제안이다. 이번 감사는 DRM 우회·회사PC 접근·실테스트 실행·발송·스킬 변경을 하지 않았다.
공통 인프라 제안
규칙 축적에서 정답·손실·회귀로 옮길 최소 구조
현재 공통 피드백 스킬은46줄·2,332B다. :14–19는 해리 교정을 업무별 규칙으로 승격하고 스킬에 한 줄 추가하도록 한다. :46에는 실제 파일 통과조건 확인 원칙도 있으므로 “검증 개념 자체가 없다”는 결론은 틀리다. 다만 입력/초안/해리 gold/손실을 연결하는 저장형식은 이46줄에 없다. 임시보관함은7줄·506B이며9/14 반복지시 누락을 적었다. 추가해야 할 것은 또 한 줄의 행동명령보다 승인 산출물과 재실행 증거의 연결이라는 판단이다. [COMMON:14–25,34–46; COMMON-PENDING:5–7]
제안 공통 루트(이번에는 만들지 않음): /Users/ron/knowledge-agent/200-projects/dtwin-repeat/
- datasets/{A-daily,B-weekly,C-sell-axe}/{case_id}/: 불변 입력·초안·정답·승인범위.
- graphs/{task}/{graph_version}.json: 노드ID, 순서/의존관계, 입출력해시, 코드/스킬/프롬프트해시, 모델, 도구, 종료조건. B의13노드와 A/C의 기존 단계를 그대로 기록하고 처음부터 새 오케스트레이터를 만들지 않는다. [U/runs/260928/build_full.py:36–67; A2:17–28; C1:175–189]
- evaluations/{graph_version}/{case_id}.json: 기준 gold해시, 세부손실, 비교가능범위, 미평가항목, 하드실패, 비용/실행시간. comparison.json: 이전버전과 사례별 차이·평균·최악값·악화사례.
- registry.jsonl: case_id/task/input_cutoff/input_files+sha256/draft+sha256/gold+sha256/approval_source/approval_message_id/approved_by/approved_at/gold_scope/rule_epoch/graph_version/rubric_version/sensitive/hold_reason. 파일명 “최종”은 승인 필드가 아니다.
승격 조건 제안. 입력해시가 같은 사례끼리만 생성버전을 비교한다. gold자기대조 손실0, 알려진 오류초안 손실양수, 하드실패0을 먼저 확인한다. 그다음 평균뿐 아니라 최악값·사례별 악화를 함께 본다. 레이아웃승인만 있으면 레이아웃점수만 내고 미평가영역을0으로 채우지 않는다. 평가에 맞춰 수정한 사례와 보류 평가사례를 분리한다. 개선이 멈추면 가장 좋은 그래프/버전을 보존하고 새규칙 추가 대신 남은 손실 유형을 해리에게 결과물로 제시한다. 이는 영상 개념의 적용 설계이며 실제 개선률·비용절감률은 아직 측정하지 않았다.
현재 쓸 수 있는 범위의 계수: A0/B1/C0은 승인근거 있는 결과파일쌍 기준이다. B1은 양식만, C의 회사ISIN 회신은 값별 부분원천만 있다. 입력까지 완전히 동결한 회귀세트는 A0/B0/C0이다. 이 두 숫자를 구분해야 “데이터셋 이미 완성”이라는 오해가 없다. [각 영역 정답쌍 명세]
실행 기록·실제 스킬 버전도 같이 고정
- 실행/전달/품질을3개로 분리.
execution_status,delivery_status,quality_status를 따로 저장하는 제안이다. A의 unknown5와 출력 결과 공존, B 일요일 출력 후 내용 재지적이 근거다. E의 suppressed는 Hermes 전달기 억제 상태이지 내부 스크립트의 메일 미발송 증거가 아니다. 실제 A 이메일 로그는 SENT ok다. [E 위5행; O/314a17eb2340/2026-09-28_07-20-44.md:81; D0 messages.id437598] - 감사 이력의 보존기간은 작업빈도 기준으로 설계. 현재 E는종료1,000개 제한이고 출력 기본보존은잡당50개다. 빈도가 높은 잡은2주를 남기지 못한다. 원본 DB 정책을 이번에 변경하지 않고, 추후 승인을 받아 실행결과·해시·평가를 별도 불변장부에 최소8주 보존하는 안을 제안한다. 개인정보/원문은 평가장부에 복제하지 않는다. [E-code:27,129–137; J-code:3125–3155; A 실적50파일]
- 프로필 사본 차이는 손실의 입력이다. A1은315줄/25,839B(SHA256
c55b4263f135de2f938a09405ecee4da25ed3a29c8e1aa997900aa88bcb9f728), ROOT-A1은568줄/55,917B(6317ff6ca59b471fe1fe9dc32faf3082ffb708d3addad4076849a567a0ff052f). Neville 9/28 출력11–578행을568줄로 추출해 ROOT-A1 전체와 문자열 배열 동일을 확인했다. 즉 이번 실제 크론은 ROOT-A1 내용을 적재했다. B2도프로필131줄/8,400B, ROOT-B2 205줄/19,291B로 다르다. 요청된 프로필의 줄수감소를 기본실행본에도 적용됐다고 보고하면 안 된다. - 회사컴→Mac 입력버전 연결. C load_log의 같은 경로·다른해시와258/301행의 불일치 때문에, 파일명/수신시각만 아니라 원문묶음·회사파일·출력해시를 묶어야 한다. 업체별 원문, 회사ISIN판정, 고객용 출력의 승인범위를 분리한다. [C load_log2–6; C4 후보]
- 모델은 바꾸기 전에 평가. 고가모델은 설계/독립검증, 매일 루프는 파서·수치·서식코드 및 저가요약으로 구성한다. 호출수·토큰·실행시간을 case단위 기록하고 손실/비용을 함께 비교한다.
no_agent가 무모델이 아니라는 실측을 반영한다. [A 모닝로그9행; C1:167–173]
적용 부적합 경계
- 과거 시장판단·고객 의도·하우스 포함 기준을 영구정답으로 삼지 않는다. 날짜/대상/룰버전이 달라지면 별도 케이스다. 이는 실제9/27 주간 입력기간 재정의와 C 정렬규칙 공존 때문에 필요한 구분이다. [R/scripts/build_weekly_credit_house_summary.py:22–31,88–95; C1:49,192,198]
- 인증실패·원문미수집·자료공표 지연은 “해리처럼 쓰기” 손실만으로 해결되지 않는다. 가용성 검사와 내용 품질을 분리한다. [A timeout5건 중4건; 가용시각로그9행; A1:257–308]
- 멀티에이전트 단계별95%를 독립확률로 가정하면0.95^n이라는 계산은 가능하지만, 실제 단계오류의 독립성·각단계95%는 이번 자료에서 미확인이다. 따라서 현13노드의 실제 성공률을 이 식으로 추정하지 않았다.
- 제안한 새 폴더 생성·평가기 파일 구현·크론변경·메일검증·DRM해제는 하나도 실행하지 않았다. W38의 인메모리4조건 대조만 추가 진단으로 수행했다. 기존 동작의 부작용을 피하기 위해 파일을 쓰는 테스트/미리보기/빌드도 실행하지 않았다. 대신 코드정독·읽기전용 DB·ZIP/XML/PDF 텍스트·파일 통계를 사용했다.
우선순위 표 — 목록 형태
- B W38 양식 평가1쌍 — 효과 높음 / 난이도 낮음. 해리 승인 메시지와 두PDF가 연결돼 신규 정답 수집 없이 형식차이 평가를 시작할 수 있다. 읽기 전용4조건 간이손실75→0은 이번에 실측했으며, 첫주 최소는 이를 재사용 가능한 독립평가로 등록하는 것, 전체재생성은입력복원 후다. [D0 405528→405535→405568→405589; B PDF 실측]
- C Sell Axe 부분정답·원초안 연결 — 효과 높음 / 난이도 중간. 실파일검사·독립계산 코드가 이미 있으므로 회사ISIN과 양식gold만 연결하면 된다. 장애는9/17 DRM,9/23 정답원천4건차이,9/28 초안258행 미확인이다. 첫주9/18 양식1개 승인·대조가 최소다. [C 검증표·후보명세]
- 공통 입력/승인/실행해시 장부 — 효과 높음 / 난이도 중간. 새스킬보다3자산(입력·초안·정답)의 불변보존과승인범위가 먼저다. 첫주B1케이스만 등록하는 범위로 시작한다. [v17덮어쓰기 A-R3:17–22; E보존정책; C load_log]
- A 일간1종부터 — 효과 중간~높음 / 난이도 중간~높음. 반복빈도는 높지만 승인쌍0이며 live latest 의존이 있다. 첫주Neville1회차 승인·입력확정 후구조검사, 매일모든리포트 통합개편은 뒤로 미룬다. [A 가동표; P/fi_session_collector.py:8907–8936]
- 스킬 압축은 마지막 — 효과 검증 후 / 난이도 중간. 제안순감 A65+B113+C56=234줄, 지정11개 본문합1,679→1,445줄(13.94%). 테스트로 이전된 커버리지·안전계약이 유지될 때만 가능한 설계값이며 실제삭제0줄이다. 날짜규칙수는영역별집계정의가 달라합산하지 않았다. [각영역 줄범위 산술]
효과/난이도는 위 확인된 재료·장애에 근거한 감사자 판단이지 처리시간/금전절감 실측값이 아니다.
근거 파일 목록
경로 약칭 — 본문의 경로는 아래 절대경로로 확장
- J =
/Users/ron/.hermes/cron/jobs.json(현재 enabled만 JSON으로 필터; 해당작업 시작줄은 가동표). - E =
/Users/ron/.hermes/cron/executions.db,executions테이블(텍스트줄 없음; job_id/행id/시간조건으로 인용). - E-code =
/Users/ron/.hermes/hermes-agent/cron/executions.py:27,129–137. - J-code =
/Users/ron/.hermes/hermes-agent/cron/jobs.py:3125–3155. - O =
/Users/ron/.hermes/cron/output(각작업ID/실행시각.md; 가동표·실패명세에 파일명/줄). - S =
/Users/ron/.hermes/profiles/kismtsnt/skills. - R =
/Users/ron/knowledge-agent/400-reports/hermes-research-sales-engine. - F =
/Users/ron/knowledge-agent/400-reports/외사 리서치. - P =
/Users/ron/.hermes/workspace/scripts/pipeline. - U =
/Users/ron/knowledge-agent/200-projects/us-ig-weekly. - M =
/Users/ron/knowledge-agent/200-projects/us-ig-weekly/market_axe_slack. - H =
/Users/ron/knowledge-agent/200-projects/axe_isin_handover/260923. - D0 =
/Users/ron/.hermes/state.db(실측2,979,000,320B; 메시지검색은messages_fts MATCH만, 전체본문스캔 안 함). - D1 =
/Users/ron/.hermes/profiles/kismtsnt/state.db(실측8,359,936B;9/17이후 sessions/messages의 제한조회 및FTS). - COMMON =
/Users/ron/.hermes/profiles/kismtsnt/skills/note-taking/harry-instruction-accumulation/SKILL.md:1–46. - COMMON-PENDING = 같은 스킬 폴더의
references/pending-instructions.md:1–7.
직접 읽은 핵심 스킬·참조
- A1 =
S/software-development/hermes-research-sales-engine/SKILL.md:1–315. - A2 =
S/software-development/fi-session-collector-pipeline/SKILL.md:1–136. - A3 =
S/research/fi-research-briefing/SKILL.md:1–139. - A4 =
S/research/broker-research-client-digest/SKILL.md:1–63. - A-R1 =
S/software-development/hermes-research-sales-engine/references/2026-08-17b-roadmap-visualization-final-layout.md:3–38. - A-R2 = 같은references의
2026-08-17-v17-timeline-and-theme-corrections.md:9–21. - A-R3 = 같은references의
2026-08-18-report-tone-cleanup-and-versioning.md:17–22,35–39. - B1 =
S/investment-analysis/us-ig-weekly-report-build/SKILL.md:1–400. - B2 =
S/investment-analysis/weekly-credit-onepager-build/SKILL.md:1–131. - B3 =
S/investment-analysis/credit-report-presentation/SKILL.md:1–63. - B4 =
S/productivity/report-artifact-qa-feedback/SKILL.md:1–57. - C1 =
S/investment-analysis/sell-axe-multi-dealer-sourcing/SKILL.md:1–228. - C2 =
S/investment-analysis/sell-axe-dealer-name-format/SKILL.md:1–37. - C3 =
S/software-development/us-ig-sell-axe-pipeline/SKILL.md:1–110. - C-R =
/Users/ron/knowledge-agent/400-reports/260918_sell_axe_retrospective.md:11–24,36. - ROOT-A1 =
/Users/ron/.hermes/skills/software-development/hermes-research-sales-engine/SKILL.md:1–568. - ROOT-B2 =
/Users/ron/.hermes/skills/investment-analysis/weekly-credit-onepager-build/SKILL.md:1–205.
본문 검증표의R/scripts·R/tests·P·U/runs·M/timeseries코드, 정답쌍명세의PDF/XLSX/메일본문은 각각 실제파일·줄/시트/페이지를 직접 인용했다. 존재하지 않은 원첨부는 “없음”, 내용을 못읽은DRM은 “미확인”으로 분리했다. 영상 원문은 추가열람하지 않았으며 영상핵심은 사용자 제공 설명을 과제정의로 사용했다.
재현 조회와 계수 규칙
실행DB는 다음형태로 읽었다. 실제조회시각이 바뀌면보존상한 때문에동일결과가 사라질수 있다. 아래조건으로얻은 당시 집계값을 본문에 보존했다.
-- sqlite3 -readonly 'file:/Users/ron/.hermes/cron/executions.db?immutable=1'
SELECT job_id,status,coalesce(delivery_outcome,'NULL'),count(*)
FROM executions
WHERE julianday(claimed_at)>=julianday('2026-09-15T00:00:00+09:00')
AND julianday(claimed_at)<julianday('2026-09-28T21:35:00+09:00')
GROUP BY job_id,status,delivery_outcome;
-- 결과를 jobs.json의 현재 enabled=true ID와 결합.
대형대화DB검색은messages_fts MATCH '"양식"', '"주간"', '"여러번"', '"레이아웃"', '"모닝"', '"브리핑"'등 제한키워드에서messages.id로연결했다. 최근운영자동메시지에 가려지는 결과는 Slack표시명(최현우/MangDD/현우)·role=user·세션/시간범위로 재조회했다. 토큰검색은 활용형을 놓칠수 있으므로 검색0건을부재증명으로쓰지 않았다. 원문스캔 대신 해당세션/ID·FTS로좁혔다. 자동위임결과가user역할로저장된경우는해리승인으로세지 않았고, 같은시각동일메시지의중복도제외했다.
스킬길이는UTF-8파일바이트수와splitlines()/wc -l, 날짜규칙은본문에명시한단위, 파일쌍은승인범위별로셌다. PDF는텍스트/쪽수, Excel은읽기모드 또는ZIP/XML의시트·셀·수식·서식을확인했다. 기존 빌드/검문/시험의 현재 통과를 주장하지 않았으며 그 코드를 감사 중 실행하지 않았다. 별도로 W38 PDF4조건을 인메모리 대조한 결과만 위에 기록했다.
검증 범위와 자체평가: 요구한A/B/C의6항목, enabled전수확인, DB실측/보존한계, 승인쌍/후보구분, 손실·회귀·축소량·첫실행·개인정보위험을검토했다. 정확성4.5/완성도4.5/검증4/최소변경5, 평균4.5/5. 3.5미달항목 없음. 미확인잔여는2주DB전체실적·회사PC직접가동·DRM셀·일부승인/원초안·완전입력동결이다. 이것을완료된구현/검증으로포장하지 않는다.