diff --git a/.claude/agents/manuscript-condenser.md b/.claude/agents/manuscript-condenser.md new file mode 100644 index 0000000..7897311 --- /dev/null +++ b/.claude/agents/manuscript-condenser.md @@ -0,0 +1,93 @@ +--- +name: manuscript-condenser +description: 확정된 원고를 목표 분량으로 줄인다. 숫자와 주장 근거는 보존하고 무엇을 왜 뺐는지 대장을 남긴다. paper-critic·venue-reviewer 지적 반영이 끝난 뒤 투고 직전에만 호출한다. 초안 집필은 manuscript-writer. +--- + +# manuscript-condenser + +원고를 **짧게** 만든다. 다르게 만들지 않는다. + +## 언제 부르나 +paper-critic·venue-reviewer 지적을 반영해 내용이 확정된 뒤, 투고 직전. 내용이 흔들리는 +동안 줄이면 줄인 자리를 다시 채우게 되고, 두 번 일하게 된다. + +## 무엇을 줄이나 — 분량은 주장 등급에 비례한다 +단어를 균등하게 깎는 방식은 쓰지 않는다. **등급과 분량이 어긋난 자리**를 찾아 거기서 줄인다. + +| 주장 등급 | 적정 분량 | 어긋났을 때 | +|---|---|---| +| headline | 본문 + 그림 + 표 | 줄이지 않는다 | +| supporting | 문단 하나 | 문장으로 | +| 승격하지 않은 관찰 (본문이 스스로 "해석할 수 없다"고 닫은 것) | **한 문장** | 표와 수치는 Additional file로 내린다 | +| 경합 설명·대안 가설 | 한 절 | | + +`manuscript/REVIEW-GB-2026-07-19b.md` MINOR-4가 이 형태의 실사례다. "이 설계로는 분리할 수 +없다"로 닫는 관찰이 두 문단과 다섯 숫자를 쓰고 있었다. 판정은 "빼라"가 아니라 "한 문장으로 +압축하고 5-시스템 표는 Additional file 12로 내려라"였다. 실을 자격은 있으나 배분이 어긋난 +경우이며, 줄이기 판단은 대부분 이 모양이다. + +## 순서 (지킬 것) +1. **강등** — 표·그림·부수 수치를 Additional file로 내린다. 수치는 보존되고 본문만 짧아진다. + 다만 **강등은 무손실이 아니다.** 반례·이질성·불리한 수치가 든 표를 내리고 본문에 결론만 + 남기면 결과가 실제보다 깨끗해 보인다. 그런 표를 내릴 때는 본문에 그 사실을 한 문장으로 + 남긴다("in three of five systems this held only for …"). 이 문장 없이 내리면 삭제와 같다. +2. **병합** — 같은 말을 하는 인접 문장을 합친다. +3. **압축** — 문장 안의 군더더기. `.claude/rules/writing-style.md`의 사족·상투구·이중 조사 + 항목이 그대로 점검 목록이다. +4. **삭제** — 마지막 수단. 여기까지 와서 목표에 못 미치면 사람에게 보고하고 멈춘다. + +강등으로 해결되는 것을 삭제하지 않는다. 순서를 건너뛰면 되돌릴 수 없는 손실이 먼저 난다. + +## 절대 규칙 +- **숫자는 한 글자도 바뀌지 않는다.** 값·CI·p·n·부호 전부. 하네스에 이미 + `package_validation` 게이트의 `numbers_unchanged_through_review` 검사가 있으므로, 줄인 뒤 + 그 게이트를 통과해야 끝난 것으로 본다. +- **근거를 진 문장은 삭제 대상이 아니다.** 줄이기 전에 주장과 근거의 대응을 먼저 만든다. + 근거가 걸린 문장은 압축할 수는 있어도 뺄 수는 없다. +- **한계와 불리한 사실을 먼저 지킨다.** 분량 압박에서 가장 먼저 잘리는 것이 자기에게 불리한 + 문장이고, 그게 잘리면 심사자가 부록에서 발견했을 때 "숨겼다"로 읽힌다(MINOR-5의 실제 지적). + 불리한 문장을 뺄 때는 대장에 별도로 표시하고 사람 승인을 받는다. +- **한정어를 빼지 않는다.** 숫자를 지켜도 범위·집단·비교대상·시점 한정("only in HSPC-like + cells", "this design cannot separate", "at this n")이 압축 중에 빠지면 주장이 세진다. + 숫자 검사는 이걸 못 잡는다. 아래 claim-evidence map이 이 검사를 맡는다. +- **`draft_v2.md`와 `draft_v2_ko.md`는 같은 턴에 함께 고친다.** 파리티는 세는 값으로 확인한다 — + heading 개수, 수치 항목 전항, 참고문헌 개수가 양쪽에서 같아야 한다 + (`SUBMISSION_PREP_PROGRESS.md`의 "heading 파리티 34/34", "영/한 수치 파리티 전항 일치", + "참고문헌 69/69" 방식). 문장 수나 단어 비율은 파리티 기준이 아니다. +- **Abstract 감축은 사람 확인을 받고 한다.** `SUBMISSION_PREP_PROGRESS.md`의 "Abstract는 손대지 + 않는다"는 **주장 승격 금지**이지 분량 동결이 아니다. 다만 헤드라인 문장이 모여 있는 자리라 + 임의로 손대지 않는다. + +## 규칙이 부딪힐 때 +- **"headline은 줄이지 않는다" vs "Abstract를 줄인다".** Abstract는 headline 문장의 집합이므로 + 둘이 부딪힌다. 해소: Abstract에서는 **headline 문장 자체가 아니라 그 둘레**(도입구, 배경 + 재진술, 중복 서술)를 줄인다. headline 문장은 한정어까지 그대로 둔다. 그래도 목표에 못 미치면 + 사람에게 보고한다. +- **"근거를 진 문장은 못 뺀다" vs "승격하지 않은 관찰은 한 문장".** MINOR-4가 정확히 이 경우다 — + 다섯 숫자가 전부 근거인데 분량은 한 문장이어야 한다. 해소: **삭제가 아니라 강등**이다. + 수치는 Additional file로 옮겨 살리고 본문에는 결론 한 문장과 상호참조만 둔다. 이 충돌에서 + 삭제를 고르면 규칙 위반이다. + +## 산출 (셋 다 있어야 완료) +1. **claim-evidence map** — `manuscript/CLAIM-EVIDENCE-MAP-.md`. **줄이기 전에 먼저 만든다.** + + | claim | 등급 | 한정어(범위·집단·비교·시점) | 근거파일 | 본문 위치 | 감축 후 한정어 보존 | + |---|---|---|---|---|---| + | α는 재현되고 lag는 안 된다 | headline | cross-method, HSPC n=102 | `concordance.md` | Results §1 | O | + + 머릿속으로만 대응시키지 않는다. 파일로 남겨야 감축 뒤에 한정어가 살아 있는지 한 줄씩 + 대조할 수 있고, 심사자 응답 때 근거가 된다. 마지막 열이 하나라도 X면 감축은 실패다. +2. 줄인 원고 — `manuscript/draft_v2.md` + `manuscript/draft_v2_ko.md` +3. **감축 대장** — `manuscript/CONDENSE-LEDGER-.md` + + | 위치 | 처리 | 단어 | 간 곳 | 이유 | + |---|---|---|---|---| + | Results §경합설명 ¶2-3 | 압축 | 214 → 41 | 본문 유지 | 승격하지 않은 관찰이 두 문단 | + | 〃 5-시스템 표 | 강등 | 0 | Additional file 12 | 수치 보존, 본문만 축소 | + + 처리는 강등·병합·압축·삭제 넷 중 하나로 적는다. 대장 없이 줄인 원고만 내면 미완이다. + 되돌릴 수 없고, 심사자 응답 때 "왜 뺐는가"에 답할 수 없다. + +## 보고 +줄이기 **전에** 계획을 먼저 낸다. 섹션별 현재 분량, 목표, 어디서 얼마를 뺄지, 강등 후보 목록. +승인 없이 바로 자르지 않는다. 계획 단계에서 목표가 무리라고 판단되면 그것도 보고 대상이다. diff --git a/CLAUDE.md b/CLAUDE.md index 291c7b3..5d4e675 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -74,6 +74,7 @@ SKILL(지침)을 실제로 돌리는 코드: | "가설·실험설계·분석계획 점검·감사" | `research-methodologist` | | "제출 전 적대적 자체검토 / 그림 QA" | `paper-critic` | | "정식 venue 리뷰 시뮬레이션" | `venue-reviewer` (프로젝트 로컬, 선택) | +| "원고 분량 줄여줘 / 투고 word limit 맞춰줘" | `manuscript-condenser` (내용 확정 후, 선택) | | "발표자료/슬라이드/발제" | `presenter` | | "로고·아이콘·브랜드·그림 미감" | `design` | | "여러 단계를 어떤 순서로 엮을지 계획만" | `paper-orchestrator` (계획만; 실행은 메인 루프) | @@ -87,6 +88,7 @@ SKILL(지침)을 실제로 돌리는 코드: | 집필+그림 | manuscript-writer (그림=`figures/figNN_*.py`) | `pipeline/hspc-velocity-benchmark/manuscript/draft_v2.md` + `draft_v2_ko.md`(영/한 동시), `figures/*.png` | 검수·리뷰·발표 | | 검증 게이트 | (커밋/공개 전) | `p3_concordance.py` + `p3_crossdataset_concordance.py` + `p3_scrambled_null.py` 재계산 → FINDINGS.md 대조 | 사람 | | 리뷰 | paper-critic / venue-reviewer | `manuscript/REVIEW--.md` | 집필(수정) | +| 분량 감축 | manuscript-condenser | `manuscript/CLAIM-EVIDENCE-MAP-.md` + `CONDENSE-LEDGER-.md` (+ 줄인 `draft_v2.md`·`draft_v2_ko.md`) | 공개 게이트 | | 발표 | presenter | 슬라이드/발제 | 사람 | | 상태 핸드오프 | (전원) | `HANDOFF.md`, `TODO.md`, `SESSION-LOG.md` — **로컬 전용(.gitignore, 78a5a92)**. 커밋하지 않으며 새 clone에는 없다 | 다음 세션 | diff --git a/docs/CONDENSING-PROMPTS.md b/docs/CONDENSING-PROMPTS.md new file mode 100644 index 0000000..9a77a13 --- /dev/null +++ b/docs/CONDENSING-PROMPTS.md @@ -0,0 +1,116 @@ +# 원고 간결화 프롬프트 모음 + +`manuscript-condenser` 에이전트에 주는 예시 프롬프트. 그대로 복사해 쓰거나 목표 수치만 +바꿔 쓴다. 순서대로 쓰는 것을 권한다 — 진단 없이 자르면 어디를 얼마나 잘라야 하는지 모른 채 +자르게 되고, 초록부터 손대면 가장 위험한 데를 가장 먼저 건드리는 셈이다. + +## 왜 프롬프트를 굳혀 두는가 +"줄여줘"라고만 하면 모델은 균등하게 깎는다. 그러면 근거 문장과 한계 문장이 헤드라인과 같은 +비율로 사라진다. 실제로 필요한 판단은 "어디가 등급에 비해 분량을 많이 쓰고 있는가"이고, +이건 물어봐야 나온다. `manuscript/REVIEW-GB-2026-07-19b.md` MINOR-4가 사람이 손으로 내렸던 +바로 그 판단이다. + +## 현재 분량 (2026-07-26 실측, `draft_v2.md` 13,313 단어) + +| 섹션 | 단어 | 비고 | +|---|---|---| +| Abstract | 422 | 헤드라인 문장 집중. 마지막에 손댄다 | +| Background | 826 | | +| **Results** | **5,857** | 소절 11개. 감축 여지가 여기 대부분 | +| Discussion | 1,607 | | +| Conclusions | 190 | | +| Methods | 1,767 | 투고 규정상 별도 취급인 경우가 많음 | +| Additional files | 331 | 강등의 목적지 | + +재실측: + +```bash +cd pipeline/hspc-velocity-benchmark/manuscript +python3 - <<'EOF' +import re, io +s = io.open("draft_v2.md", encoding="utf-8").read() +for p in re.split(r"\n(?=#{1,2} )", s): + print("%6d %s" % (len(p.split()), p.split("\n")[0][:60])) +EOF +``` + +--- + +## 1. 진단 — 등급과 분량이 어긋난 자리 찾기 + +> 아직 아무것도 고치지 말고 진단만 해줘. +> +> `pipeline/hspc-velocity-benchmark/manuscript/draft_v2.md`를 읽고, 각 Results 소절이 어떤 +> 등급의 주장을 하고 있는지 먼저 판정해줘. 등급은 headline / supporting / 승격하지 않은 관찰 +> (본문이 스스로 "해석할 수 없다", "이 설계로는 분리할 수 없다" 식으로 닫은 것) / 경합 설명 +> 넷 중 하나다. 판정 근거가 되는 원문 문장을 같이 인용해줘. +> +> 그 다음 등급별 분량을 재서, **등급에 비해 분량을 많이 쓰는 자리**를 많이 쓰는 순으로 나열해줘. +> `manuscript/REVIEW-GB-2026-07-19b.md`의 MINOR-4가 이 판단의 실사례다 — 참고하되 이미 지적된 +> 자리 말고 아직 안 잡힌 자리를 찾는 게 목적이다. +> +> 각 자리마다 강등·병합·압축·삭제 중 무엇이 맞는지와 예상 감축 단어수를 적어줘. 원고는 고치지 마. +> +> 마지막으로 `manuscript/CLAIM-EVIDENCE-MAP-<오늘날짜>.md`를 만들어줘. claim / 등급 / +> 한정어(범위·집단·비교대상·시점) / 근거파일 / 본문 위치 열로. 한정어 열은 원문 표현 +> 그대로 옮겨 적어라 — 감축 뒤에 이 열을 한 줄씩 대조할 거라서 요약하면 못 쓴다. + +목적은 목록을 얻는 것이지 줄이는 게 아니다. 이 목록을 사람이 보고 승인한 뒤 2·3으로 넘어간다. +claim-evidence map은 감축 **전에** 있어야 한다. 줄인 뒤에 만들면 이미 빠진 한정어를 원문으로 +착각하게 된다. + +## 2. 강등 — 본문에서 Additional file로 내리기 + +> 1번 진단에서 승인된 강등 후보만 처리해줘. 대상: {진단 결과에서 고른 항목들} +> +> 규칙: +> - 표·그림·부수 수치를 Additional file로 옮긴다. **수치는 한 글자도 바뀌지 않는다** — 옮기는 +> 것이지 다시 쓰는 게 아니다. +> - 본문에는 결론 문장과 Additional file 상호참조만 남긴다. +> - Additional file 번호는 기존 목록 뒤에 이어 붙이고, `manuscript/SUPPLEMENTARY.md`와 본문 +> `## Additional files` 목록을 함께 갱신한다. +> - `draft_v2.md`와 `draft_v2_ko.md`를 같은 턴에 고친다. +> - `manuscript/CONDENSE-LEDGER-<오늘날짜>.md`에 처리 내역을 표로 남긴다. +> +> 끝나면 `p3_concordance` · `p3_crossdataset_concordance` · `p3_scrambled_null`을 재실행해 +> 산출물 diff가 0인지, 본문 숫자가 결과파일과 여전히 일치하는지 확인해줘. + +강등은 손실이 없으므로 가장 먼저, 가장 많이 한다. 목표 분량의 대부분을 여기서 확보한다. + +## 3. 초록 — 목표 단어수 맞추기 + +> `draft_v2.md`의 Abstract를 현재 422단어에서 {목표}단어로 줄여줘. 다음을 지켜야 한다. +> +> - **수치는 전부 보존한다.** ρ·p·n·CI·부호 어느 것도 빼거나 반올림하지 않는다. +> - **헤드라인 주장의 범위 한정어를 빼지 않는다.** "이 방법으로는", "이 n에서는" 같은 한정이 +> 빠지면 초록이 본문보다 센 주장을 하게 된다. 분량 때문에 주장이 세지는 것은 실패다. +> - 약한 종결·군더더기 도입구부터 뺀다. `.claude/rules/writing-style.md`의 상투구 목록을 쓴다. +> - 한국어판도 같은 턴에 같은 비율로 줄인다. +> +> 줄인 뒤 원본과 나란히 놓고, **주장의 세기가 달라진 문장이 있는지** 스스로 점검해서 보고해줘. +> 하나라도 있으면 되돌리고 다른 데서 줄여. + +Abstract는 마지막에 손댄다. `SUBMISSION_PREP_PROGRESS.md` §2의 "Abstract는 손대지 않는다"는 +**주장 승격 금지**를 뜻하지 분량 동결이 아니지만, 헤드라인이 모여 있는 자리라 사람 확인을 +받고 진행한다. + +--- + +## 쓰면 안 되는 프롬프트 + +| 프롬프트 | 왜 안 되나 | +|---|---| +| "원고 30% 줄여줘" | 균등 감축. 근거 문장과 한계 문장이 헤드라인과 같은 비율로 사라진다 | +| "더 간결하게 다시 써줘" | 다시 쓰면 숫자가 재생성된다. `numbers_unchanged_through_review` 게이트에서 걸린다 | +| "덜 중요한 부분 정리해줘" | "덜 중요"의 기준이 모델에게 있다. 대개 불리한 사실이 먼저 잘린다 | +| "영문판 먼저 줄이고 한국어는 나중에" | EN/KO 파리티가 어긋난다. 같은 턴에 해야 한다 | + +## 완료 판정 +0. `CLAIM-EVIDENCE-MAP-.md`가 있고, 마지막 열(감축 후 한정어 보존)이 전부 O다 +1. `CONDENSE-LEDGER-.md`가 있고, 뺀 항목마다 처리·단어수·간 곳·이유가 적혀 있다 +2. 결정론 재계산 게이트 3종 통과, 산출물 diff 0 +3. 본문 수치와 결과파일이 일치 (`package_validation`의 `numbers_unchanged_through_review`) +4. EN/KO 파리티 유지 +5. 불리한 사실·한계 문장이 삭제된 건이 있다면 사람 승인이 대장에 기록돼 있다 + +대장 없이 줄인 원고만 있으면 미완이다. 되돌릴 수 없고 심사자 응답 때 근거가 없다. diff --git a/docs/HARNESS.md b/docs/HARNESS.md index 0cd0a71..a6e9d73 100644 --- a/docs/HARNESS.md +++ b/docs/HARNESS.md @@ -26,6 +26,7 @@ | 7 | `paper-orchestrator` | 코디네이션 | 멀티-agent 작업 **계획** 수립(실행은 PI) | 재사용 | | 8 | `design` | 엔지니어링 | 로고·아이콘·브랜드·그림 미감(SVG/PNG) | 재사용 | | 9 | `venue-reviewer` (프로젝트 로컬, 선택) | 심사·QA | 정식 venue 스타일 공식 리뷰 문서 | 선택 | +| 10 | `manuscript-condenser` (선택) | 심사·QA | 확정 원고를 목표 분량으로 감축 + 감축 대장 | 선택 (BIOP01-74) | | S | 그림 생성 (스크립트) | 엔지니어링 | `figures/figNN_*.py` — 결과 파일에서 그림 생성·번호 정합 | ✅ (스크립트) | > ⚠️ 그림 생성은 스크립트로 둔다. `manuscript-writer`가 `pipeline/hspc-velocity-benchmark/figures/figNN_*.py`(예: `fig01_p2_concordance.py`)를 실행해 만든다. 단순 재생성은 메인 루프가 직접 돌려도 된다(결정론적). diff --git a/harness.yaml b/harness.yaml index 77d1c7d..92a5a5d 100644 --- a/harness.yaml +++ b/harness.yaml @@ -20,6 +20,7 @@ roles: presenter: { type: agent, path: .claude/agents/presenter.md, required: true, implemented: true } paper_critic: { type: agent, path: .claude/agents/paper-critic.md, required: true, implemented: true } design: { type: agent, path: .claude/agents/design.md, required: false, implemented: true } + manuscript_condenser: { type: agent, path: .claude/agents/manuscript-condenser.md, required: false, implemented: true } # 투고 직전 분량 감축. 예시 프롬프트는 docs/CONDENSING-PROMPTS.md paper_planner: { type: agent, path: .claude/agents/paper-orchestrator.md, required: true, implemented: true } # 개명 예정: paper-planner (BIOP01-70) # --- 미구현 (문서에는 참조되나 실체 없음) — BIOP01-64 --- venue_reviewer: diff --git a/harness_after/harness.yaml b/harness_after/harness.yaml index 77d1c7d..92a5a5d 100644 --- a/harness_after/harness.yaml +++ b/harness_after/harness.yaml @@ -20,6 +20,7 @@ roles: presenter: { type: agent, path: .claude/agents/presenter.md, required: true, implemented: true } paper_critic: { type: agent, path: .claude/agents/paper-critic.md, required: true, implemented: true } design: { type: agent, path: .claude/agents/design.md, required: false, implemented: true } + manuscript_condenser: { type: agent, path: .claude/agents/manuscript-condenser.md, required: false, implemented: true } # 투고 직전 분량 감축. 예시 프롬프트는 docs/CONDENSING-PROMPTS.md paper_planner: { type: agent, path: .claude/agents/paper-orchestrator.md, required: true, implemented: true } # 개명 예정: paper-planner (BIOP01-70) # --- 미구현 (문서에는 참조되나 실체 없음) — BIOP01-64 --- venue_reviewer: diff --git a/pipeline/hspc-velocity-benchmark/manuscript/CONDENSE-PLAN-2026-07-26.md b/pipeline/hspc-velocity-benchmark/manuscript/CONDENSE-PLAN-2026-07-26.md new file mode 100644 index 0000000..dd8524a --- /dev/null +++ b/pipeline/hspc-velocity-benchmark/manuscript/CONDENSE-PLAN-2026-07-26.md @@ -0,0 +1,161 @@ +# 원고 간결화 계획 — draft_v2.md (2026-07-26) + +`manuscript-condenser` 명세의 1단계(진단)를 실제 원고에 적용한 결과다. **아직 아무것도 고치지 +않았다.** 이 문서는 어디를 얼마나 줄일지에 대한 계획이며, 승인 후 강등 → 병합 → 압축 순으로 +실행한다. + +> **출처.** 패턴 진단은 codex CLI(ChatGPT 계열)에 Results/Discussion/Conclusions 구간 +> 7,654단어를 인라인으로 넘겨 받은 것이고, 각 지적은 원고에서 직접 대조해 확인했다(아래 +> "확인" 열). §2.7은 이 대조 과정에서 추가로 나온 것이다. 다른 모델 계열을 쓴 이유는 +> `.claude/agents/venue-reviewer.md`의 격리 규칙과 같다 — 같은 계열이 자기 글을 검수하면 +> 모의 검수다. + +## 1. 실측 기준선 + +전체 `draft_v2.md` 13,313단어. + +| 섹션 | 단어 | +|---|---| +| Abstract | 422 | +| Background | 826 | +| **Results** | **5,857** | +| Discussion | 1,607 | +| Conclusions | 190 | +| Methods | 1,767 | + +Results 소절별 (200단어 초과분, 괄호는 산문 속 ρ·p·CI·n 등장 횟수): + +| 단어 | 수치 | 소절 | +|---|---|---| +| **2,147** | 17 | Table 2. Velocity-output reliability decision map | +| **1,632** | 1 | The cell×gene velocity matrix does not reproduce across methods either | +| 776 | 15 | Only the transcription rate α … reproduces across methods | +| 626 | 7 | The dissociation is a property of the objective function | +| 597 | 9 | The fitted transcription rate α, but not γ, recovers an external rate | +| 502 | 19 | The α-robust, lag-fragile ordering replicates across five external systems | +| 375 | 9 | Table 1. Cross-method reproducibility | +| 300 | 8 | Chromatin does not drive the lag | +| 238 | 2 | The reliability map | +| 232 | 3 | A synthetic positive control | +| 229 | 5 | The lag is unpredictable from baseline features | + +재실측: + +```bash +cd pipeline/hspc-velocity-benchmark/manuscript +python3 - <<'EOF' +import re, io +s = io.open("draft_v2.md", encoding="utf-8").read() +for p in re.split(r"\n(?=### )", s)[1:]: + w = len(p.split()) + if w > 200: + print("%5d w / %2d nums %s" % (w, len(re.findall(r"[ρp]=|95% CI|n=", p)), p.split("\n")[0][4:70])) +EOF +``` + +## 2. 장황 패턴 + +감축량이 큰 순서다. "확인" 열은 원고에서 실제로 대조한 결과다. + +### 2.1 수정 이력·감사 로그의 본문화 — 800~1,200단어 +- 위치: `The cell×gene velocity matrix …` L117, L119 +- 확인: **사실.** "Our first version of this second comparison was not like-for-like, and we correct + it here …", "Against the archived fits the only departure is a single gene (*LRIG1*): a 4×10⁻¹⁶ + rounding difference …" 방법 수정 내역과 rerun null 상세가 Results 본문에 그대로 들어 있다. +- 왜: 신뢰성을 높이는 기록이지만 Results가 논증이 아니라 로그처럼 읽힌다. +- 처방: **강등**. 본문에는 결론을 바꾸는 문장만 남기고 상세는 Supplementary audit note로. + 단 "we therefore withdraw our earlier statement…"는 §3에 따라 본문 유지. + +### 2.2 산문 속 수치 덤핑 — 700~1,000단어 +- 위치: `The α-robust, lag-fragile ordering …`(502단어에 수치 19회), `Only the transcription + rate α …`(776단어에 15회), `The fitted transcription rate α …` +- 확인: **사실이고 측정된다.** 502단어 소절에 ρ·p·CI·n이 19번 나온다. Table 1·2와 중복이다. +- 왜: 독자가 확인할 방향은 하나인데 모든 값을 산문에 푼다. +- 처방: **압축**. 본문은 범위·패턴·예외만. 개별 수치는 Table 1/2 또는 Supplementary Table로. + +### 2.3 방어적 caveat 과적재 — 600~900단어 +- 위치: `The α-robust …`의 "Caveats (Table 1 footnotes). (i) The…", Discussion "Three further + limits are load-bearing…", `The cell×gene velocity matrix …`의 "Three limits keep the + statement small…" +- 확인: **사실.** 번호식 한계 열거가 세 군데에서 반복된다. +- 처방: **강등**. 주장 해석을 바꾸는 caveat만 본문에, 나머지는 표 footnote·Supplementary·Methods로. + +### 2.4 같은 판정의 3회 반복 — 500~800단어 +- 위치: L127(Results 말미 reliability map), L169(Discussion 첫 문단), L183(Conclusions) +- 확인: **사실이고 수치까지 겹친다.** 세 곳 모두 ρ=0.88, +0.163, |ρ|≤0.08, +0.24~+0.29를 + 다시 적는다. 판정문("α만 신뢰, lag·γ 불신뢰")이 거의 같은 문장으로 세 번 나온다. +- 처방: **병합**. Results 말미는 Table 2 참조 + 4~5문장, Discussion 첫 문단은 해석·한계 중심, + Conclusions는 수치 최소화. + +### 2.5 선행연구 positioning의 Results 침투 — 300~600단어 +- 위치: `Chromatin does not drive the lag …`의 "We promote this negative control to a main…", + `The dissociation is a property …`, Discussion의 "Positioning against prior work" +- 확인: **사실.** novelty·우선권 서술이 Results와 Discussion 양쪽에 있다. +- 처방: **강등**. Results는 "Fig. 2/5 shows…"만, 선행연구 대비는 Discussion 한 절로. + +### 2.6 부정 주장 과잉 한정 — 300~500단어 +- 위치: `Chromatin does not drive the lag …`, Discussion "It is a statement about the methods + and…", "Read together, these results bound our negative…" +- 확인: **사실.** "크로마틴 생물학을 부정하는 게 아니다"라는 안전장치가 여러 절에서 다른 말로 + 반복된다. +- 처방: **병합**. Discussion에 한 번만. Results에서는 "correlational, not causal" 정도의 짧은 태그. + +### 2.7 소절 하나가 Results의 28%를 쓴다 (대조 중 추가 발견) +- `The cell×gene velocity matrix does not reproduce across methods either` 혼자 **1,632단어**로 + Results 5,857단어의 28%다. 그런데 산문 속 수치는 1회뿐이다 — 즉 **수치가 아니라 서술이 + 분량을 쓰고 있다.** 2.1·2.3이 이 소절에 겹쳐 있다. +- 이 소절 하나를 처리하면 위 여섯 패턴의 감축량 상당 부분이 여기서 나온다. **1순위.** +- 참고로 `Table 2. Velocity-output reliability decision map`은 2,147단어인데 표 소절이 + 이 분량이면 표 주변 산문이 표를 다시 설명하고 있다는 뜻이다. 2순위. + +## 3. 절대 줄이면 안 되는 자리 + +분량이 많아 보이지만 근거·한정어·불리한 사실을 지고 있다. 여기를 건드리면 주장이 세진다. + +| 위치 | 원문 실마리 | 이유 | +|---|---|---| +| Only the transcription rate α … | "MultiVelo's apparent 100% chromatin-leads is…" | 구조적 sign bias 설명. 빼면 lag sign 비판이 과도해진다 | +| The fitted transcription rate α … | "The measured synthesis rate carries steady-state transcript…" | α 외부검증의 abundance confound를 진다 | +| The dissociation is a property … | "This is a relative (practical) non-identifiability…" | likelihood 주장이 "완전 비식별성"으로 과장되는 걸 막는다 | +| The cell×gene velocity matrix … | "We therefore withdraw our earlier statement that chromatin…" | 자기에게 불리한 정정. 투명성의 핵심 (REVIEW-GB MINOR-5) | +| Discussion | "we did not audit the low-dimensional embedding…" | velocity 전체를 부정한다는 오독을 막는 scope 제한 | + +## 4. 이 원고 전용 체크리스트 + +1. Results에서 이미 판정한 숫자를 Discussion·Conclusions에서 다시 열거하지 않는다. 방향과 해석만. +2. 산문에 ρ·CI·p·n이 세 개 이상 연속되면 표로 보내고 본문에는 패턴만 남긴다. +3. caveat가 주장을 바꾸지 않으면 footnote 또는 Supplementary Note로 강등한다. +4. "not causal", "not biology", "not trajectory inference" 방어문은 논점당 한 번만 둔다. +5. correction history와 rerun audit는 결론을 바꾸는 한 문장만 남기고 상세는 보조자료로. +6. 선행연구 대비 문장은 Results에서 빼고 `Positioning against prior work` 한 절로 모은다. +7. 소절 끝 "therefore" 문장이 다음 소절이나 Discussion에서 반복되면 하나만 남긴다. + +## 5. 실행 순서 + +`manuscript-condenser` 규칙대로 강등 → 병합 → 압축 순이며, 삭제는 쓰지 않는다. + +| 단계 | 대상 | 예상 | +|---|---|---| +| 0 | `CLAIM-EVIDENCE-MAP-.md` 작성 (감축 전 필수) | — | +| 1 | 2.1 강등 — 감사 로그를 Supplementary audit note로 | −800~1,200 | +| 2 | 2.3 강등 — caveat를 footnote·Supplementary로 | −600~900 | +| 3 | 2.5 강등 — positioning을 Discussion 한 절로 | −300~600 | +| 4 | 2.4 병합 — 판정 3회를 1회 + 참조로 | −500~800 | +| 5 | 2.6 병합 — 방어문 논점당 1회 | −300~500 | +| 6 | 2.2 압축 — 산문 수치를 표로 | −700~1,000 | + +합계 추정 −3,200~5,000단어. 7,654 → 2,700~4,500. **이 추정은 codex의 것이고 실측이 아니다.** +1단계를 실제로 해 본 뒤 나머지 추정을 다시 잡는다. + +각 단계 끝에 반드시: +- 결정론 재계산 게이트 3종 (`p3_concordance`, `p3_crossdataset_concordance`, `p3_scrambled_null`) diff 0 +- `CLAIM-EVIDENCE-MAP`의 한정어 보존 열 전부 O +- EN/KO 파리티 (heading 개수·수치 전항·참고문헌 개수) +- `CONDENSE-LEDGER-.md` 갱신 + +## 6. 미결 + +- **Abstract(422단어)는 이 계획에 없다.** 본문을 줄인 뒤 마지막에, 사람 확인을 받고 따로 한다. +- **Methods(1,767단어)도 제외**했다. 투고 규정상 별도 취급인 경우가 많아 목표 분량이 정해진 + 뒤에 판단한다. +- 목표 분량이 아직 없다. 투고처의 실제 제한을 확인한 뒤 위 추정과 맞춰야 한다.