kkkim-pipeline → main 승격 (11커밋) — P5 층② 봉인감사·BIOP01-45 설계·인계 아키텍처 - #7
Merged
Conversation
1) 영/한 비대칭 해소 셔플 seed 반복(4 seed x 3 세포집합 = 12 draw) 결과가 영문에만 옛 문장으로 남아 있고 한국어엔 아예 없었다. 양쪽을 같은 내용으로 채웠다. - 옛 문장 "shuffle-sampling variance is unquantified"는 이제 사실이 아니다 (정량됐다) -> 교체. - 새 진술: 부호는 12/12 draw에서 살아남고(전부 Delta>0, 구간이 0 배제), 크기는 살아남지 못한다(한 세포집합에서 산포 0.043 > 중앙값 0.031). 거기서 우리가 보고하던 단일 draw(+0.063)가 네 개 중 최댓값이었다는 사실도 그대로 적었다 -- 크기를 과대 보고하고 있었다. - 결론 수위: 방향은 진술하되 크기는 특정 숫자로 못 박지 않는다. 세포집합당 4 draw도 적어 산포가 거칠게만 추정된다는 한계 병기. 2) v1 원고 폐기 manuscript/draft.md, draft_ko.md 삭제. 재프레이밍 이전(7/18) 판이라 정본(draft_v2.md, draft_v2_ko.md, 7/21)과 40KB 이상 벌어져 있었고, 남겨 두면 실수로 편집될 위험이 실질적이었다. git 이력에 보존된다. 3) 포인터를 정본으로 (실사용 참조 10곳) CLAUDE.md 산출물 계약 / docs/HARNESS.md 흐름도 / presenter.md / manuscript-writer.md / paper-production-orchestrator SKILL.md 3곳 / manuscript/README.md 2곳 / check_manuscript_numbers.py 기본값과 도움말. 전부 draft.md -> draft_v2.md + draft_v2_ko.md(영/한 동시)로 바꿨다. 역사 문서 2개(WRITING_PLAN.md, GB_BENCHMARK.md)는 당시 기록이라 내용을 고치지 않고 상단에 폐기 배너만 달았다. 검증: 실사용 draft.md 참조 0, 재계산 게이트 diff 0, p13 인용결함 0, 영/한 수치 파리티 일치, 새 KO 문장 em-dash 0.
미추적 15건을 하나씩 보고 판단했다. "그대로 둔다"로 넘기지 않았다. 1) evals/reproducibility_pilot/ 커밋 (31 파일 중 코드·케이스만) CLAUDE.md L60이 "관련 산출: evals/reproducibility_pilot/(사전등록 채점 재현 eval, 0.50 사용)"으로 명시적으로 가리키는 실물인데 추적조차 되지 않았다. stiffness_all_params.csv와 같은 유형의 구멍이다. 회귀 코퍼스 RC-01~06과 scorer_validation 케이스가 여기 있어, 없으면 사전등록 채점 재현이 불가능하다. 로그(logs/, .eval 바이너리 16개)는 산출이 아니라 실행 부산물이라 제외하고 ignore에 넣었다. 2) docs/pilot_singlecell_skills_2026-07-17.md 커밋 공개 Agent Skill 4종을 실제로 클론해 읽고 "차용할 것 없음"으로 판정한 조사 기록. 남기지 않으면 같은 조사를 반복한다. 판정 근거와 유일한 값어치(패턴 1개, 이미 a34c10d로 자체 구현)까지 적혀 있다. 3) BIOP02_LINK.md — 수치 정정 후 커밋 BIOP01↔BIOP02 연결 노트. 그대로 커밋하면 낡은 수치가 도는 두 번째 사본이 된다. 방향 일치율 48%는 정정 전 값이라 54.6%로 고치고(2026-07-19, 방향 미정 lag=0 제외 규약), permutation-FDR 공집합이 CRAK 의존이라 민감도 arm으로 강등된 사실을 병기했다. 상단 배너도 "미커밋 상태"에서 "요약본이며 정본 아님, 인용은 정본에서"로 바꿨다. 4) .gitignore — 실행 부산물 규칙 results/logs/·sim_pc_logs/·*.log·*.smoke.csv·cross_dataset/*_DONE·*_PROGRESS· *.lock·evals/**/logs/. 이걸로 미추적 잡동사니 12건이 정리됐다. 주의: 이 커밋의 .gitignore에는 다른 창이 먼저 추가한 1줄 (docs/PROGRAM-PRESENTATION-ROADMAP.md)이 함께 들어간다. 파일 단위 스테이징이라 분리할 수 없어 명시해 둔다. CLAUDE.md와 runtime.csv의 다른 창 미커밋 변경은 건드리지 않았다.
…t.yaml 계약 제안 + route 의사코드 + BIOP01-41 교훈(required_cols·moflow 명시 stage)으로 조용한폴백·arm누락 구조적 차단. 협의 대상(braveji↔kkkim), 실행 배선은 합의 후
…ure-guide의 이벤트허브②+워커③ 계층을 OpenClaw로 실현. 통합 인계루프·Handoff 템플릿 강제·Next Agent 라우팅·비용레버(체인이 호출을 곱셈)·서명검증 2구간·도입 로드맵 + 체크리스트 확장
이번 프로젝트의 'AI Scientist' 구조(연구 과정 전반 자동화 + 멀티 연구자 협업)를 저장소 곳곳에 흩어진 구현·문서에서 확인해 하나의 지도로 묶음. 새 코드 아님, 문서만. - README: 두 레이어 요약 + 한눈에 보는 전체 그림 - 01_overview: 연구 7단계 분해와 각 단계 담당 주체 - 02_single_lab_harness: 레이어 A(단일 랩 자동화) — 멤버 명부·라우팅·오케스트레이터 Skill·산출물 계약·파이프라인 P0-P5·검증/사람 게이트 (근거: docs/HARNESS.md, .claude/agents, paper-production-orchestrator SKILL) - 03_multi_ai_collaboration: 레이어 B(멀티 AI 인계) — JIRA→허브→워커→MCP 4계층, Handoff 코멘트, OpenClaw+메시지큐 실현, 비용 레버 (근거: guide/ 두 문서) - 04_design_principles: 두 레이어 관통 원칙(산출물 계약·사람 게이트·검증·폭주/비용 방지·최소권한·재사용·근거/코드 분리) - 05_component_map: 설계 요소 ↔ 실제 저장소 파일 매핑
박세진 critic(BIOP01-44) F1: 본문 층② 문단이 셔플 seed 반복 이전 값에 멈춰 최신 봉인 감사(velocity_matrix_shuffle_seed_variability.md)와 모순. correctness 정정: - 'b=1은 부호 빼면 사실상 null' 삭제 — seed 4개 전부 양수·CI 0 배제(12/12 Δ>0). - 대표값 삼중(+0.081/+0.004/+0.063) 못박기 하향 — draw마다 2~3배 흩어지는 천장 대비 한 자릿수 %로. b=2 +0.063은 4개 중 최댓값 선택이었음이 드러나게. - F3: WEAKEN 라벨이 산포지표(range vs SD)에 민감하나 크기 draw변동은 지표무관. - F5: lag는 셔플 불변(층①) vs velocity 행렬은 셔플에 움직임(층②)은 다른 대상. Abstract·헤드라인 무접촉, 양성단정 없음. 영/한 파리티, 화살표 0. 게이트(p3_concordance·crossdataset·scrambled_null) 재계산 diff 0.
ai_scientist/ 마크다운 6편을 mermaid+HTML 단일 페이지로 시각화. - 다이어그램 6종(전체 그림·랩 조직도·논문 생산 루프·파이프라인 P0-P5· 4계층 아키텍처·인계 루프), 전부 mermaid 파서로 문법 검증 통과 - 사이드바 목차, 라이트/다크 테마 토글, 반응형 - mermaid는 CDN 로드(렌더에 인터넷 필요), 표·본문은 오프라인 가능
…nance(runtime.csv) 커밋 - F1 잔여: '가장 작은 짝지은 Δ(+0.004)인 쌍' → '원래 draw가 가장 작았던 쌍'. label(짝맞춘 귀무 없는 쌍=b1)은 유지하되 대표성 없는 단일 draw 숫자만 제거. 영/한 동시. - runtime.csv +12행 = 셔플 seed 재적합 9회 + smoke 3행(라벨 구분) provenance. velocity_matrix_shuffle_seed_variability.md §6가 참조하는 실물. - 재계산 게이트(p3_concordance·p3_scrambled_null·p3_crossdataset_concordance) rc=0, results 산출물 diff 0(헤드라인 불변). Abstract 무접촉.
reviewer 팬텀 에이전트(문서 6곳 참조·실체 없음), 프로젝트 에이전트 cwd 로딩, 검증게이트↔외부리뷰 순서를 정리. draft 경로(ff0ec25) 해소 및 검증게이트 3종 실재는 확인만. 과거 문서 미삭제 — 새 보고서 추가.
harness_after/ 신설 — 라이브 하네스 미수정, 승인 시 스왑용. - harness.yaml (SSOT manifest), scripts/harness_doctor.py (정합성 게이트) - docs/HARNESS.md(after), CLAUDE-routing.after.md doctor가 현재 리포에서 reviewer 팬텀 3건 검출(FAIL) 확인. BIOP01-64~70 대응. 과거 문서 미삭제.
- scripts/start-paper-harness (실행 전제 가드, BIOP01-65) - RUN_STATE.template.yaml (BIOP01-68), CLAIMS.template.yaml (BIOP01-69) - agents/venue-reviewer.md (프로젝트 로컬 후보, BIOP01-64) - ci/harness-doctor.yml (정합성 게이트 CI, BIOP01-66) 라이브 미수정, 스왑 대기.
week1 논문분석 스킬+MultiVelo 샘플, week2 Insight(scope/papers.jsonl/ comparison/evidence/insight 4관점), week3 Validation(6기준). 근거=paper_analysis velocity 9편. 원 마감 05~06월 경과분 기록 보존.
…/65/66) 불일치 보고 §6 추가 — 원본(kakyungkim/paper-production-harness)과 BIOP02를 추가 클론해 3자 대조. 1차 결론 2건 정정, 신규 결함 3건. - M5 reviewer 팬텀의 출처는 원본(agents/에 reviewer.md 없는데 paper-orchestrator.md:13이 정식 멤버로 명시) → BIOP01-64 반영 대상 2곳 → 3곳 - M6 게이트 순서는 관찰이 아니라 원본 규칙 위반 — 원본 paper-orchestrator.md:23이 "paper-critic + gate FIRST, then reviewer"를 명문화했으나 BIOP01·BIOP02 SKILL.md 둘 다 step7(리뷰) → step8(게이트)로 역전 - M7 BIOP02는 팬텀이 실행 설정에 배선 — auto_review_config.json:58 "agents": ["paper-critic","reviewer"], independent_passes 2 (enabled=false 상태) - M8 skills/ 라우터 팬텀(bc7f824에서 삭제, AGENTS.md:52-56이 여전히 위임) + HANDOFF/TODO/SESSION-LOG 핸드오프 계약 팬텀 → BIOP01-45 선결 조건 - M9 1차 doctor가 M8을 못 잡음 → 이번 커밋에서 보완 doctor 보완: - harness.yaml: path_reference_scan 신설(백틱 인용 경로 실재 검사, resolve_by_basename, 외부 repo/IP ignore), doc_reference_scan에 README.md·AGENTS.md 추가 - harness_doctor.py: 팬텀 경로 검사 추가 + 팬텀 에이전트 맥락 필터 (백틱/표=FAIL, 산문=WARN) — kkkim 공동리뷰 지적 반영 - 실측: RESULT: FAIL (14 문제, 3 경고) — 팬텀 에이전트 3 + 팬텀 경로 11 라이브 하네스는 여전히 미수정(7/21 합의). 스왑 시 ci/harness-doctor.yml → .github/workflows/ 활성화 필요(kkkim 권고).
kkkim 공동리뷰 승인(2026-07-26) 후 권고 순서대로 라이브 반영. 각 단계 검증 결과 포함. BIOP01-73 게이트 자체 테스트 (신규, 선행): - harness_after/tests/test_harness_doctor.py — 합성 리포 13종 정상통과 / 역할파일부재 FAIL / 백틱 팬텀 FAIL / 표행 팬텀 FAIL / 산문언급 WARN(오검방지) / 팬텀경로 FAIL / 상대인용 해석 / ignore 규칙 / 산출물부재 WARN / repo루트 강제 / 스코프갭 재현 / path_scan 토글 / 실제 리포 회귀 - 결과: 13/13 통과 BIOP01-66 정합성 게이트 라이브: - harness.yaml, scripts/harness_doctor.py, .github/workflows/harness-doctor.yml - CI 2단계 도입 — 게이트 자체 테스트는 blocking, 구성 검사는 report-only (팬텀 잔존 상태에서 전면 blocking이면 모든 PR이 빨간불) BIOP01-65 실행 전제 가드 라이브: - scripts/start-paper-harness. 검증 4케이스: 비-git → FATAL / repo 하위 → 루트 자동복귀 통과 / 타 repo → 구성요소 누락 차단 / HARNESS_DOCTOR_ENFORCE=1 → 중단 - python 미존재 환경 대비 인터프리터 해석 추가 BIOP01-64 venue-reviewer 라이브: - .claude/agents/venue-reviewer.md 프로젝트 로컬 설치(전역 금지) - 문서 참조 10건 개명: CLAUDE.md 3 / docs/HARNESS.md 3 / SKILL.md 4 - 결과: 팬텀 에이전트 3 → 0 BIOP01-72 게이트 순서 정정: - SKILL.md 실행순서를 게이트①(결과검증) → 리뷰 → 게이트②(패키지검증)로 교체 - 원본 paper-orchestrator.md:23 규칙 인용을 근거로 명시. BIOP02는 별도 BIOP01-71 핸드오프 3파일 신설: - HANDOFF.md / TODO.md / SESSION-LOG.md — 계약이 지시하던 실물 생성 - skills/ROUTES.md 라우터는 결정 대기(복원 vs 문서정정) doctor 추이: 14 → 11(64 반영) → 8(핸드오프 신설). 잔여 8건은 전부 skills/ 결정 대기분.
스왑 중 발견: HANDOFF/TODO/SESSION-LOG 는 삭제된 게 아니라 78a5a92(2026-07-01) "개인 작업기록 untrack"으로 .gitignore:115-117 에 등재된 로컬 전용 파일이다 (BIOP02 .gitignore:246-248 도 동일). 보고서 §6 M8(b) 진단이 틀렸고, doctor 의 팬텀 경로 검사가 이를 오검했다. 정정: - harness.yaml: path_reference_scan.local_only 선언 추가 - harness_doctor.py: local_only 는 부재해도 FAIL 하지 않음. 대신 .gitignore 등재 여부를 확인 — 계약상 "필수 산출물"인데 ignore 에서 빠지면 실수로 커밋되므로 그때는 FAIL - 테스트 #13(부재+ignore → PASS)·#14(ignore 누락 → FAIL) 추가 → 15/15 통과 - 계약 문구에 "로컬 전용(.gitignore)" 표기 — CLAUDE.md:32,91 / SKILL.md:76 - 보고서 §8 정정 절 추가 (원문 §6 M8(b) 는 기록으로 보존) 교훈: "문서가 가리키는데 파일이 없다"는 진짜 drift 와 의도적 로컬 전용을 가린다. 의도는 manifest 에 선언되고, 게이트는 선언되지 않은 것만 문제 삼아야 한다. doctor 추이: 14 → 11(64) → 8(local_only 정정). 잔여 8건은 전부 skills/ 결정 대기.
skills/ 유실 경위가 앞선 보고와 다르다. 재조사 결과: - bc7f824(6/14)는 skills/ 를 삭제한 게 아니라 추가한 커밋이다 (import 박상준 Harness_Baseline, 4 datasets x download/preprocess/model/viz). 이때 지운 것은 옛 논문분석 스킬 33개이고 kkkim-paper-agent 브랜치에 보존돼 있다. - 이후 7f38b23(7/15 braveji env 정정) 등으로 계속 관리됐고 그 시점 41파일이었다. - 275def2(7/20, Merge origin/main into kkkim-pipeline PR #4 충돌 해소)에서 41파일 전부가 D 로 사라졌다. main 에는 이 skills/ 가 없었으므로 충돌 해소가 main 쪽을 택하면서 통째로 날아간 것이다. 삭제 범위는 skills/ 안으로 한정(부수 피해 없음). 즉 문서가 낡은 게 아니라 파일이 유실됐다. AGENTS.md 라우팅은 지금도 옳은 말을 한다. 변경: - skills/ 복원 — git checkout 7039bc4 -- skills/ (41파일, 유실 직전 상태 그대로) - harness.yaml: path_reference_scan.conventions 선언. AGENTS.md Repository Conventions 의 data/ metadata/ work/ outputs/ 는 산출물을 둘 위치 안내이지 사전 존재를 요구하는 경로가 아니다. 부재해도 FAIL 아님 - 테스트 +2 (규약경로 통과 / 미선언 경로는 여전히 FAIL) -> 17/17 통과 - live 회귀 테스트 방향 전환: 알려진 결함이 잡히는가 -> 깨끗한 상태를 지키는가 - 2단계 승격: CI continue-on-error 제거, 래퍼 HARNESS_DOCTOR_ENFORCE 기본값 1 doctor: 8 -> 0. RESULT: PASS. 주의: skills/ 복원 여부는 07-27 미팅 결정 사항(BIOP01-71). 이 커밋은 PR #5 안에 있고 머지 전이므로 결정에 따라 되돌릴 수 있다. B(문서 정정)로 확정되면 skills/ 를 다시 빼고 AGENTS.md README CLAUDE.md 참조를 정정해야 doctor 가 0 을 유지한다.
CI(GitHub runner)에서만 FAIL 이 났다. 로컬(우리 서버 컨테이너)에서는 PASS. 원인: CLAUDE.md:27 이 팀 공유 conda env 위치로 /opt/envs 를 인용하는데, runner 에는 그 경로가 없어 doctor 가 팬텀 경로로 판정했다. 이건 게이트의 오검이자, 동시에 게이트가 제 값을 한 사례다 — 문서에 박힌 환경 의존 절대경로는 우리 서버에서만 성립하고 다른 곳에서는 깨진다. (같은 종류를 3a86f6f "remove hardcoded absolute paths from agent/skill prompts" 에서 한번 정리한 적이 있고, 이건 그 뒤에 남은 잔여물이다.) - ignore 규칙 ^/dev/ → ^/ 로 일반화. 절대 호스트 경로는 리포 경로가 아니므로 팬텀 판정 대상이 아니다. 환경마다 결과가 달라지면 게이트를 신뢰할 수 없다. - 테스트 #17 추가 — 절대 호스트 경로가 팬텀으로 잡히지 않는지 고정. 18/18 통과. doctor: PASS (0 문제, 0 경고). 남는 판단(별건): CLAUDE.md:27 의 /opt/envs 인용 자체를 유지할지. 사실 기술이라 당장 틀린 문장은 아니지만, 문서가 특정 서버 레이아웃을 전제하는 것은 이식성 위험이다. conda run -n <env> 안내로 충분한지 팀 확인 필요.
…def2(PR#4)에서 유실됨을 git 실측 확인(내 7/15 env-repro 포함), A/B 확정 전 실행배선 보류. 단 runner_manifest는 워커층이라 A/B 무관하게 유효 명시
…. cu11 pip 라이브러리 --no-deps 설치 + activate.d 훅으로 해소, 실측 검증(n_gpu 3·matmul·conv2d). 재현·롤백 정본(env는 git 미추적). 소유자 정본편입 판단 대기
…(DoD) 여러 세션째 미커밋으로 끌고 오던 활성 프로젝트 지침을 추적 상태로 정합. 내용: - 인프라·접속·환경 포인터(docs/SHARED-INFRA-GUIDE.md 정본) - 방법론 주의 6: 합격 기준의 근거는 봉인 문서뿐(2026-07-17 α 0.88 관측값≠임계 ρ≥0.50 실사고) - 완료의 정의(DoD) 커밋/공개 전 체크리스트 PR #5(gglee)의 CLAUDE.md 변경(venue-reviewer 개명·로컬전용 표기)과 3-way 병합 clean 확인(git merge-file rc=0). 미커밋은 CLAUDE.md 하나뿐이라 PR #5 mergeable 불변.
harness: 정합성 게이트 도입 + 하네스 불일치 스왑 (BIOP02-100 / BIOP01-64·65·66·71·72·73)
10 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
왜 여는가
main이kkkim-pipeline보다 11커밋 뒤처져 있는데 올릴 PR이 없었습니다. 마지막 승격은 2026-07-21 PR #4이고, 그 머지가skills/41파일을 조용히 지운 바로 그 작업입니다(5주간 아무도 몰랐음, BIOP01-71).같은 구간이 다시 열려 있어 먼저 열어 둡니다. 병합 승인은 리더 몫이고 제가 누르지 않습니다.
병합 결과를 실제로 만들어 확인했습니다
git worktree+git merge --no-ff로 병합 커밋을 만들어 검사했습니다.삭제 2건은
manuscript/draft.md,manuscript/draft_ko.md입니다.3c85454"P5 셔플 seed 결과 영/한 반영 + v1 원고 폐기" 에서 의도적으로 지운 v1 원고이고, 정본draft_v2.md·draft_v2_ko.md는 그대로 있습니다. PR #4 형태의 사고성 유실은 없습니다.담기는 것
guide/openclaw-claude-guide.md§3 멀티 AI 인계 아키텍처ai_scientist/설계 문서CLAUDE.md활성 지침 3섹션순서 주의 — PR #5를 먼저 넣어야 합니다
이 PR에는 정합성 게이트가 안 들어 있습니다.
harness.yaml·harness_doctor.py·.github/workflows는 아직kkkim-pipeline에 없고 PR #5(gglee→kkkim-pipeline) 안에 있습니다.순서를 뒤집으면 41파일을 잃은 그 구간이 이번에도 무방비로 지나갑니다. 지금은 검사 없이 병합됩니다.
관련: BIOP01-71 · BIOP01-66 · BIOP01-45