Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions IMPACT.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
fixearly가 **실제 오픈소스에서 찾아낸 이슈**와 그 결과. 점수판이 아니라 **증거**다 —
"점수"가 등급만 매기는 게 아니라, 진짜 고칠 것을 파일:줄 단위로 짚는다는 증명.

> **fixearly 임팩트 점수: 36**
> **fixearly 임팩트 점수: 37**
> 머지된 PR 1개 = **+1점**. (draft·open = 0, 닫힘 = 0)
> _(fixearly가 실제로 고쳐 머지된 것의 누적 — 대상 repo의 점수와는 별개 지표.)_
>
Expand Down Expand Up @@ -57,7 +57,7 @@ fixearly가 **실제 오픈소스에서 찾아낸 이슈**와 그 결과. 점수
| `React 컴파일러 패스의 쓰기만 하는 컬렉션` | [react · 250.8k★](https://github.com/facebook/react) | 쓰기만 하는 컬렉션 (propagateNonNull 의 terminalPreds Set · alignReactiveScopesToBlockScopesHIR 의 placeScopes Map — 기록만 하고 읽지 않음) | [#37699](https://github.com/react/react/pull/37699) | ✅ merged | +1 |
| `댓글 신고 이메일의 조회 3회 직렬` | [ghost · 55.5k★](https://github.com/TryGhost/Ghost) | 독립 순차 await (신고 API 가 기다리는 post·member·owner 조회 3개를 병렬 시작) | [#31019](https://github.com/TryGhost/Ghost/pull/31019) | ✅ merged | +1 |
| `sitemap 청크 URL 분류 O(n²)` | [astro · 63.2k★](https://github.com/withastro/astro) | O(n²) (청크별 배열 복사와 URL 포함 검사 → Set) | [#18149](https://github.com/withastro/astro/pull/18149) | ⚪ awaiting review | — |
| `Vite 입력 CSS 의존성 기록 경합` | [tailwindcss · 97.8k★](https://github.com/tailwindlabs/tailwindcss) | 버려진 Promise (입력 CSS 파일 시각 기록을 기다리지 않아 재빌드 누락) | [#20525](https://github.com/tailwindlabs/tailwindcss/pull/20525) | ⚪ awaiting review | — |
| `Vite 입력 CSS 의존성 기록 경합` | [tailwindcss · 97.9k★](https://github.com/tailwindlabs/tailwindcss) | 버려진 Promise (입력 CSS 파일 시각 기록을 기다리지 않아 재빌드 누락) | [#20525](https://github.com/tailwindlabs/tailwindcss/pull/20525) | ⚪ awaiting review | — |
| `ES 청크 재내보내기 이름 반복 검색` | [rollup · 26.3k★](https://github.com/rollup/rollup) | O(n²) 배열 조회 (재내보내기마다 렌더된 export 배열 탐색 → Set) | [#6534](https://github.com/rollup/rollup/pull/6534) | ✅ merged | +1 |
| `알림 목록의 모니터 관계 반복 검색` | [openstatus · 9.2k★](https://github.com/openstatusHQ/openstatus) | O(n²) 배열 조회 (알림마다 전체 모니터 관계 재검색 → Map 그룹화) | [#2780](https://github.com/openstatusHQ/openstatus/pull/2780) | ❌ closed | — |
| `히트맵 버킷 증분의 쓰기만 하는 Map` | [grafana · 77.2k★](https://github.com/grafana/grafana) | 쓰기만 하는 컬렉션 (uPlot 에서 옮겨온 fixedDec — 채우기만 하고 읽지 않는다) | [#133985](https://github.com/grafana/grafana/pull/133985) | ❌ closed | — |
Expand All @@ -83,7 +83,7 @@ fixearly가 **실제 오픈소스에서 찾아낸 이슈**와 그 결과. 점수
| `PKI 동기화 3곳의 외부 ID Map 쓰기만 함` | [infisical · 29.7k★](https://github.com/Infisical/infisical) | 쓰기만 하는 컬렉션 (ACM·Secrets Manager·Azure Key Vault 동기화의 syncRecordsByExternalId — 채우기만 하고 읽지 않음, Chef 만 씀) | [#8536](https://github.com/Infisical/infisical/pull/8536) | ⚪ awaiting review | — |
| `채우기만 하고 읽지 않는 Map 3개` | [super-productivity · 22.7k★](https://github.com/super-productivity/super-productivity) | 쓰기만 하는 컬렉션 (op-log 검증 projectTaskMap · sync-md mdById · doc-mode lastWrittenTitles — 주석은 echo 판별용이라는데 읽는 곳 0) | [#10607](https://github.com/super-productivity/super-productivity/pull/10607) | ✅ merged | +1 |
| `보내는 쪽이 사라진 구독 스트림` | [cline · 70.1k★](https://github.com/cline/cline) | 쓰기만 하는 컬렉션 (activeRelinquishControlSubscriptions — 유일한 송신 함수가 지워져 add/delete 만 남음 · 웹뷰 콜백도 못 울림) | [#14974](https://github.com/cline/cline/pull/14974) | ✅ merged | +1 |
| `인스펙터 v2 애니메이션 창이 자식 애니메이션을 버림` | [Babylon.js · 26.2k★](https://github.com/BabylonJS/Babylon.js) | 버린 반환값 (animations.concat(자식 애니메이션) 를 대입 안 함 — 자식에만 애니메이션이 있으면 'No Animations') | [#18990](https://github.com/BabylonJS/Babylon.js/pull/18990) | 🔵 approved · 머지 대기 | — |
| `인스펙터 v2 애니메이션 창이 자식 애니메이션을 버림` | [Babylon.js · 26.2k★](https://github.com/BabylonJS/Babylon.js) | 버린 반환값 (animations.concat(자식 애니메이션) 를 대입 안 함 — 자식에만 애니메이션이 있으면 'No Animations') | [#18990](https://github.com/BabylonJS/Babylon.js/pull/18990) | ✅ merged | +1 |
| `output 마이그레이션 ID 의 .d.ts 정규화 결과를 버림` | [angular · 101k★](https://github.com/angular/angular) | 버린 반환값 (id.replace(/\.d\.ts$/, '.ts') 결과 미대입 — 형제 마이그레이션 둘은 대입) | [#71267](https://github.com/angular/angular/pull/71267) | 🔵 approved · 머지 대기 | — |
| `댓글 스레드 그래프의 깊이 Map 쓰기만 함` | [ghost · 55.5k★](https://github.com/TryGhost/Ghost) | 쓰기만 하는 컬렉션 (buildThreadGraph 의 depthById — 깊이는 reply.depth 로 이미 읽힌다) | [#31677](https://github.com/TryGhost/Ghost/pull/31677) | ⚪ awaiting review | — |
| `ER 다이어그램·dagre 그래프의 쓰기만 하는 Map` | [mermaid · 90.6k★](https://github.com/mermaid-js/mermaid) | 쓰기만 하는 컬렉션 (ErDB.getData 의 subGraphDB — flowDb 에서 복사, parentDB 만 읽힘 · mermaid-graphlib 의 parents — set·clear 만) | [#8413](https://github.com/mermaid-js/mermaid/pull/8413) | ⚪ awaiting review | — |
Expand Down
21 changes: 10 additions & 11 deletions PR-QUEUE.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@
| [mongoose#16474](https://github.com/Automattic/mongoose/pull/16474) | 머지 | 리뷰의 변경 요청을 반영한 뒤 승인·머지 |
| [astro#17987](https://github.com/withastro/astro/pull/17987) | 머지 | — |
| [Babylon.js#18980](https://github.com/BabylonJS/Babylon.js/pull/18980) | 머지 | — |
| [Babylon.js#18990](https://github.com/BabylonJS/Babylon.js/pull/18990) | 머지 | — |
| [jupyterlab#20008](https://github.com/jupyterlab/jupyterlab/pull/20008) | 머지 | — |
| [cherry-studio#21363](https://github.com/CherryHQ/cherry-studio/pull/21363) | 머지 | — |
| [vite#23114](https://github.com/vitejs/vite/pull/23114) | 머지 | 당일 승인, 2일 만에 머지 |
Expand All @@ -53,7 +54,6 @@
| [angular#70690](https://github.com/angular/angular/pull/70690) | 머지 | — |
| [angular#70977](https://github.com/angular/angular/pull/70977) | 머지 | — |
| [angular#71119](https://github.com/angular/angular/pull/71119) | 머지 | — |
| [Babylon.js#18990](https://github.com/BabylonJS/Babylon.js/pull/18990) | 승인 | — |
| [angular#71267](https://github.com/angular/angular/pull/71267) | 승인 | — |
| [openstatus#2620](https://github.com/openstatusHQ/openstatus/pull/2620) | 닫힘 | 상위 #2751 의존성 업데이트로 Hono 4.13.8·node-server 2.1.1이 반영돼 보안 목표가 충족됐다. 이 PR은 미병합 |
| [openstatus#2780](https://github.com/openstatusHQ/openstatus/pull/2780) | 닫힘 | 메인테이너가 V1 API 폐기 예정이라고 밝혀 우리가 닫았다 |
Expand Down Expand Up @@ -349,7 +349,6 @@ CLA 는 봇 댓글(`@microsoft-github-policy-service agree`)뿐 · 이슈 없는
<!-- auto:open — tools/update-pr-queue.py 가 생성한다. 손으로 고치지 마라. -->
| PR | 축 | 상태 | 경과 / 외부 머지 중앙값 |
|---|---|---|---|
| [Babylon.js#18990](https://github.com/BabylonJS/Babylon.js/pull/18990) | 버린 반환값 | 🔵 승인 · 머지 대기 | 1일째 / 보통 1일 |
| [angular#71267](https://github.com/angular/angular/pull/71267) | 버린 반환값 | 🔵 승인 · 머지 대기 | 1일째 / 보통 2일 |
| [vscode#340771](https://github.com/microsoft/vscode/pull/340771) | return 없는 콜백 | 🟢 리뷰 진행 | 1일째 / 보통 1일 |
| [infisical#8536](https://github.com/Infisical/infisical/pull/8536) | 쓰기만 하는 컬렉션 | ⚪ 대기 | 1일째 / 보통 1일 |
Expand All @@ -373,7 +372,7 @@ CLA 는 봇 댓글(`@microsoft-github-policy-service agree`)뿐 · 이슈 없는
| [affine#15692](https://github.com/toeverything/AFFiNE/pull/15692) | 쓰기만 하는 컬렉션 | ⚪ 대기 | 1일째 / 보통 6일 |
| [astro#18149](https://github.com/withastro/astro/pull/18149) | O(n²) | ⚪ 대기 | 13일째 / 보통 1일 · 보류 |

**열린 것 23건(보류 2건 빼면 21건).** 판정 난 64건 중 머지 36 · 승인 2 · 닫힘 26.
**열린 것 22건(보류 2건 빼면 20건).** 판정 난 64건 중 머지 37 · 승인 1 · 닫힘 26.
<!-- /auto:open -->

**2026-08-10 준비** — astro 후보를 손검증까지 끝내고 브랜치만 만들어 뒀다(하루 1건이라
Expand Down Expand Up @@ -801,21 +800,21 @@ changeset(`astro: patch`)을 같이 넣는다. 브랜치는 `fix/stack-trace-reg
| 저장소 | 지나가는 기여자 수락률 | 전체 외부 | 중앙 | 지나가는 머지 | 판정 | 메모 |
|---|---|---|---|---|---|---|
| orval | 100% | 96% | 0.1일 | 9/9 | 표본 부족 | 판정 경험 있음 |
| mikro-orm | 100% | 94% | 0.2일 | 12/12 | **1차 통과** | 판정 경험 있음 |
| mikro-orm | 100% | 94% | 0.2일 | 11/11 | **1차 통과** | 판정 경험 있음 |
| novu | 100% | 94% | 0.2일 | 3/3 | 표본 부족 | 판정 경험 있음 |
| mattermost | 100% | 98% | 0.7일 | 9/9 | 표본 부족 | — |
| pdf.js | 100% | 85% | 0.7일 | 3/3 | 표본 부족 | 열린 PR 있음 — 저장소당 1건 |
| n8n | 100% | 90% | 1.0일 | 22/22 | **1차 통과** | 열린 PR 있음 — 저장소당 1건 |
| compromise | 100% | 90% | 1.5일 | 11/11 | **1차 통과** | — |
| Babylon.js | 96% | 83% | 0.9일 | 23/24 | **1차 통과** | 열린 PR 있음 — 저장소당 1건 |
| Babylon.js | 96% | 84% | 0.9일 | 25/26 | **1차 통과** | 판정 경험 있음 |
| react-hook-form | 94% | 88% | 0.1일 | 16/17 | **1차 통과** | — |
| storybook | 92% | 84% | 6.2일 | 11/12 | 1차 통과 · 후순위(느림) | 판정 경험 있음 · 게이트 0 — danger 가 `ci:*`·`qa:*` 라벨을 요구하는데 메인테이너만 붙일 수 있다 (#35829 가 25일째 빨간불이라 접었다) · CONTRIBUTING 'Never let an LLM speak for you': 사람 개입 없는 PR 은 3일 뒤 자동 닫힘 |
| super-productivity | 91% | 91% | 2.5일 | 10/11 | **1차 통과** | 판정 경험 있음 |
| cherry-studio | 90% | 88% | 0.9일 | 9/10 | **1차 통과** | 판정 경험 있음 |
| super-productivity | 90% | 90% | 3.1일 | 9/10 | 1차 통과 · 후순위(느림) | 판정 경험 있음 |
| compiler-explorer | 89% | 92% | 0.7일 | 8/9 | 표본 부족 | 열린 PR 있음 — 저장소당 1건 |
| openstatus | 88% | 88% | 3.8일 | 7/8 | 표본 부족 | 판정 경험 있음 |
| rollup | 88% | 88% | 9.1일 | 15/17 | 1차 통과 · 후순위(느림) | 판정 경험 있음 · 코드 변경은 테스트 필수 · 내부 API 단위 테스트 대신 전체 산출물 테스트로 검증 · 첫 외부 기여자 CI 는 메인테이너 워크플로 승인 필요 · Vercel 배포도 Rollup 팀원 승인 필요 |
| promptfoo | 86% | 91% | 0.6일 | 12/14 | **1차 통과** | 판정 경험 있음 |
| promptfoo | 85% | 91% | 0.6일 | 11/13 | **1차 통과** | 판정 경험 있음 |
| tegaki | 83% | 83% | 0.5일 | 10/12 | **1차 통과** | 판정 경험 있음 |
| cytoscape.js | 83% | 88% | 6.3일 | 10/12 | 1차 통과 · 후순위(느림) | 열린 PR 있음 — 저장소당 1건 |
| babel | 82% | 70% | 0.8일 | 9/11 | **1차 통과** | 게이트 0 — AI_POLICY.md: LLM 이 쓴 PR 설명 금지(본인이 직접 써야 함), LLM 산문은 앞에 명시 표기. 어기면 조직 차단까지. 설명을 사람이 쓰지 않는 한 내지 않는다 |
Expand All @@ -838,6 +837,7 @@ changeset(`astro: patch`)을 같이 넣는다. 브랜치는 `fix/stack-trace-reg
| serverless | 67% | 92% | 0.1일 | 6/9 | 표본 부족 | 열린 PR 있음 — 저장소당 1건 |
| FastGPT | 67% | 65% | 3.7일 | 10/15 | 컷 | 판정 경험 있음 |
| react-router | 63% | 73% | 4.0일 | 19/30 | 컷 | 열린 PR 있음 — 저장소당 1건 |
| twenty | 62% | 27% | 0.7일 | 5/8 | 표본 부족 | 판정 경험 있음 |
| infisical | 62% | 77% | 1.3일 | 5/8 | 표본 부족 | 열린 PR 있음 — 저장소당 1건 |
| svelte | 58% | 53% | 1.5일 | 15/26 | 컷 | — |
| eslint | 58% | 64% | 3.1일 | 18/31 | 컷 | 판정 경험 있음 · 게이트 0 — AI 보조 PR 은 **선행 이슈**가 있어야 받는다(eslint.org/docs/latest/contribute/ai-policy). PR 템플릿의 AI 체크박스를 정직하게 체크하면 이 정책이 적용된다 |
Expand All @@ -846,25 +846,24 @@ changeset(`astro: patch`)을 같이 넣는다. 브랜치는 `fix/stack-trace-reg
| berry | 57% | 57% | 11.6일 | 27/47 | 컷 | — |
| v86 | 56% | 70% | 2.0일 | 14/25 | 컷 | — |
| angular | 56% | 80% | 2.2일 | 9/16 | 컷 | 열린 PR 있음 — 저장소당 1건 · CLA 서명 필요 — 2026-09-11 yoominho91 서명 완료(cla/google 통과) |
| immich | 55% | 48% | 0.3일 | 11/20 | 컷 | 판정 경험 있음 · 게이트 0 — `changelog:*` 라벨이 메인테이너 전용 |
| tailwindcss | 55% | 65% | 0.5일 | 16/29 | 컷 | 열린 PR 있음 — 저장소당 1건 |
| jupyterlab | 55% | 81% | 0.6일 | 6/11 | 컷 | 판정 경험 있음 |
| jest | 54% | 54% | 7.1일 | 13/24 | 컷 | — |
| cesium | 53% | 71% | 1.5일 | 8/15 | 컷 | — |
| turborepo | 50% | 91% | 0.2일 | 5/10 | 컷 | 판정 경험 있음 |
| immich | 50% | 46% | 0.3일 | 9/18 | 컷 | 판정 경험 있음 · 게이트 0 — `changelog:*` 라벨이 메인테이너 전용 |
| next.js | 50% | 67% | 1.1일 | 3/6 | 표본 부족 | 커밋 서명 필수 · 기여 가이드가 사소한 정리 PR 은 닫힐 가능성이 높다고 명시 · PR 템플릿: 외부 기여자 PR 설명은 사람이 직접 써야 함 |
| twenty | 50% | 30% | 1.3일 | 6/12 | 컷 | 판정 경험 있음 |
| rgthree-comfy | 50% | 49% | 3.9일 | 15/30 | 컷 | 열린 PR 있음 — 저장소당 1건 |
| AFFiNE | 50% | 50% | 5.7일 | 11/22 | 컷 | 열린 PR 있음 — 저장소당 1건 |
| typebot.io | 47% | 29% | 13.3일 | 7/15 | 컷 | 판정 경험 있음 |
| pnpm | 45% | 45% | 0.1일 | 9/20 | 컷 | 판정 경험 있음 · AI 작성 PR 본문에 agent disclosure 필수 · 전체 저장소 대신 영향 패키지 테스트 실행 |
| pnpm | 45% | 45% | 0.2일 | 9/20 | 컷 | 판정 경험 있음 · AI 작성 PR 본문에 agent disclosure 필수 · 전체 저장소 대신 영향 패키지 테스트 실행 |
| parcel | 45% | 45% | 6.6일 | 9/20 | 컷 | — |
| directus | 41% | 45% | 5.2일 | 12/29 | 컷 | 판정 경험 있음 |
| medusa | 41% | 41% | 5.2일 | 11/27 | 컷 | 판정 경험 있음 · 게이트 0 — CONTRIBUTING 'Issues before PRs': 작업 전에 이슈가 먼저 있어야 한다 · PR 대상 브랜치는 main 이 아니라 `develop` · 브랜치 이름 접두사가 PR 라벨을 정한다(CLAUDE.md) · PR 템플릿이 What/Why/How/Testing + 사용 예제를 요구한다 · AI 정책은 없다 |
| vscode | 40% | 86% | 0.1일 | 2/5 | 표본 부족 | 열린 PR 있음 — 저장소당 1건 · CLA 는 봇 댓글로 서명(@microsoft-github-policy-service agree) · 이슈 연결 권장이지만 정리 PR 은 이슈 없이도 머지 사례(#334095) · 버그 PR 은 메인테이너가 이슈 먼저 요구할 수 있음 |
| langfuse | 40% | 87% | 0.3일 | 2/5 | 표본 부족 | 판정 경험 있음 |
| astro | 40% | 77% | 1.1일 | 2/5 | 표본 부족 | 열린 PR 있음 — 저장소당 1건 · 사용자에게 보이는 변화면 changeset 필요 — 내부 전용 변경은 changeset 없이 머지된다(#17430 refactor·#16734 chore 가 changeset 0) · AI 정책 없음 · **포크 PR 워크플로가 승인 게이트가 아니다**(2026-09-13 #17987 제출 직후 CI 가 바로 돌았다 — angular·nx 와 다르다) · **`Test (Smoke)` 는 `smoke/docs` 의존성을 pkg.pr.new 커밋 핀에서 받는다** — 그 빌드가 만료되면 `ERR_PNPM_FETCH_404` 로 죽는다(2026-09-13 #17987 에서 밟음). PR 내용과 무관하다 |
| node | 38% | 46% | 2.0일 | 6/16 | 컷 | 열린 PR 있음 — 저장소당 1건 |
| node | 40% | 46% | 2.0일 | 6/15 | 컷 | 열린 PR 있음 — 저장소당 1건 |
| outline | 38% | 38% | 7.0일 | 3/8 | 표본 부족 | 판정 경험 있음 · AI 정책 없음 · 수락률 38%(3/8)·중앙 5.9일 로 로테이션 컷 |
| prettier | 36% | 26% | 0.8일 | 5/14 | 컷 | — |
| vite | 35% | 35% | 3.4일 | 11/31 | 컷 | 판정 경험 있음 · 게이트 0 — CONTRIBUTING 'AI Policy': 댓글·이슈·PR 설명은 본인 말로 써야 함(LLM 이 대신 말하지 말 것). 어기면 바로 닫을 수 있음 |
Expand Down
Loading
Loading