@tienne/gestalt 0.86.0 → 0.87.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/dist/package.json +1 -1
  2. package/dist/plugin/role-agents/_shared/references/ai-tell-quick-rules.md +2 -2
  3. package/dist/plugin/skills/review/SKILL.md +9 -2
  4. package/dist/src/cli/commands/harness-refs.d.ts +10 -0
  5. package/dist/src/cli/commands/harness-refs.d.ts.map +1 -1
  6. package/dist/src/cli/commands/harness-refs.js +40 -0
  7. package/dist/src/cli/commands/harness-refs.js.map +1 -1
  8. package/dist/src/cli/index.d.ts.map +1 -1
  9. package/dist/src/cli/index.js +10 -1
  10. package/dist/src/cli/index.js.map +1 -1
  11. package/dist/src/harness-review/backward-search.d.ts +15 -2
  12. package/dist/src/harness-review/backward-search.d.ts.map +1 -1
  13. package/dist/src/harness-review/backward-search.js +101 -43
  14. package/dist/src/harness-review/backward-search.js.map +1 -1
  15. package/dist/src/harness-review/collect.d.ts +10 -1
  16. package/dist/src/harness-review/collect.d.ts.map +1 -1
  17. package/dist/src/harness-review/collect.js +66 -6
  18. package/dist/src/harness-review/collect.js.map +1 -1
  19. package/dist/src/harness-review/github-code-search.d.ts +32 -1
  20. package/dist/src/harness-review/github-code-search.d.ts.map +1 -1
  21. package/dist/src/harness-review/github-code-search.js +86 -2
  22. package/dist/src/harness-review/github-code-search.js.map +1 -1
  23. package/dist/src/harness-review/hybrid-search.d.ts +35 -0
  24. package/dist/src/harness-review/hybrid-search.d.ts.map +1 -0
  25. package/dist/src/harness-review/hybrid-search.js +63 -0
  26. package/dist/src/harness-review/hybrid-search.js.map +1 -0
  27. package/dist/src/harness-review/related-clones.d.ts +66 -0
  28. package/dist/src/harness-review/related-clones.d.ts.map +1 -0
  29. package/dist/src/harness-review/related-clones.js +309 -0
  30. package/dist/src/harness-review/related-clones.js.map +1 -0
  31. package/dist/src/harness-review/search-backend.d.ts +23 -1
  32. package/dist/src/harness-review/search-backend.d.ts.map +1 -1
  33. package/dist/src/harness-review/search-backend.js +13 -1
  34. package/dist/src/harness-review/search-backend.js.map +1 -1
  35. package/dist/src/humanize/detectors.js +1 -1
  36. package/dist/src/humanize/detectors.js.map +1 -1
  37. package/package.json +1 -1
  38. package/plugin/.codex-plugin/plugin.json +1 -1
  39. package/plugin/.mcp.json +1 -1
  40. package/plugin/mcp.json +1 -1
  41. package/plugin/role-agents/_shared/references/ai-tell-quick-rules.md +2 -2
  42. package/plugin/skills/review/SKILL.md +9 -2
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tienne/gestalt",
3
- "version": "0.86.0",
3
+ "version": "0.87.0",
4
4
  "description": "TypeScript AI Development Harness - Gestalt psychology-driven requirement clarification",
5
5
  "repository": {
6
6
  "type": "git",
@@ -118,7 +118,7 @@
118
118
 
119
119
  | ID | 패턴 | 심각도 | 처방 |
120
120
  |---|---|---|---|
121
- | D-1 | 결산 피벗 표현 "결론적으로/이를 통해/요약하면/정리하면/종합하면" | S1 | 문단 결론을 대신하는 피벗이면 삭제하고 앞뒤 문장을 직결한다. 논리 연결만 하는 "따라서/그러므로"는 반복되거나 결산 리듬을 만들 때만 줄인다 |
121
+ | D-1 | 결산 피벗 표현 "결론적으로/이를 통해/요약하면/정리하면/종합하면" | S1 | 문단 결론을 대신하는 피벗이면 삭제하고 앞뒤 문장을 직결한다. 논리 연결만 하는 "따라서/그러므로"는 반복되거나 결산 리듬을 만들 때만 줄인다. "이를 통해"가 문단 결론을 대신하는 피벗이면 D-1이 A-2보다 앞선다 — D-1 하나로 세고 A-2 반복 횟수에는 안 넣는다 |
122
122
  | D-2 | "시사하는 바가 크다/주목할 만하다" | S1 | 원문에 근거가 있으면 그 근거로 대체, 없으면 삭제. **새 결론을 지어내 붙이지 않는다** |
123
123
  | D-3 | "본질적으로/핵심적으로" | S1 | 삭제. 다른 부사로 갈아끼우지 말고 그냥 뺀다 |
124
124
  | D-4 | hype 어휘(파격적·압도적·강력한·획기적·치명적) 3회+ | S1 | 원문에 수치·사실이 있으면 그걸로 환원, **없으면 수치를 만들지 말고 수식어만 삭제** |
@@ -146,7 +146,7 @@
146
146
  | F-4 | 한자어 명사화 -성/-적/-화 + 영어 명사화 -tion/-ment/-ness/-ity 누적 (한 글 12회+) | S2 / **대화·리뷰 S1** | 동사·형용사 어근으로 환원("the implementation of the policy" → "정책 시행" 또는 "정책을 시행하기") (탐지기가 없는 이유는 아래 [측정 근거](#측정-근거)) |
147
147
  | F-5 | "~적 N" 추상 체인 ("전략적 함의", "실천적 기반") | S2 / **대화·리뷰 S1** | 명사+명사 또는 풀어쓰기("전략 함의", "실천의 기반") |
148
148
  | F-6 | 복합명사 압축 — 명사구를 조사·동사 없이 이어붙여 개념을 뭉침 ("시안 정합 버그픽스", "유지보수성 개선 작업", "권한 체크 로직") | S2 / **대화·리뷰 S1** | 동사·조사로 풀어 서술 ("디자인 시안과 다르게 렌더링되던 문제", "나중에 유지보수하기 편하게"). 사람은 압축 명사구 대신 무엇을 왜 했는지 풀어 말한다 |
149
- | F-7 | 기술·이공계 비유 명사를 일상 대화에 그대로 (증류·배선·결정화·평탄화·오케스트레이션·파이프라인화·축 등, 화학·전기·수학 어휘의 비유 차용) | S2 / **대화·리뷰 S1** | 일상 동사·명사로 환원 (증류 → "추려내다/뽑아내다", 배선 → "연결하다/걸어두다", 결정화 → "정리하다", 평탄화 → "밋밋하게 만들다", **축 → "측면"**·"기준"). 문법은 멀쩡해 룰 매칭이 안 되지만 사람은 대화에서 안 쓴다. "네 축을 잰다"가 아니라 "4가지 측면에서 측정한다". **예외는 그 프로젝트가 개념에 붙인 이름일 때만이고, 그 개념을 다루는 자리에서만이다** — 게슈탈트의 "스펙 결정화"는 `similarity-crystallizer` 에이전트 이름이자 인터뷰→Spec 변환의 정의라서 두지만, 같은 말을 지라 티켓 작성처럼 무관한 자리에 끌어다 쓰면 F-7이다. 코드의 "파이프라인" 자체, 그래프의 x축도 같은 기준. 테스트를 자물쇠에 빗댄 "잠그다"는 방향이 반대라 F-10이 본다 |
149
+ | F-7 | 기술·이공계 비유 명사를 일상 대화에 그대로 (증류·배선·결정화·평탄화·오케스트레이션·파이프라인화·축 등, 화학·전기·수학 어휘의 비유 차용) | S2 / **대화·리뷰 S1** | 일상 동사·명사로 환원 (증류 → "추려내다/뽑아내다", 배선 → "연결하다/걸어두다", 결정화 → "정리하다", 평탄화 → "밋밋하게 만들다", **축 → "측면"**·"기준"). 문법은 멀쩡해 룰 매칭이 안 되지만 사람은 대화에서 안 쓴다. "네 축을 잰다"가 아니라 "4가지 측면에서 측정한다". **예외는 그 프로젝트가 개념에 붙인 이름일 때만이고, 그 개념을 다루는 자리에서만이다** — 게슈탈트의 "스펙 결정화"는 `similarity-crystallizer` 에이전트 이름이자 인터뷰→Spec 변환의 정의라서 두지만, 같은 말을 지라 티켓 작성처럼 무관한 자리에 끌어다 쓰면 F-7이다. **탐지기는 "결정화"를 자리 구분 없이 건다** — 개념을 다루는 자리인지 못 가르므로 걸린 자리는 사람이 이 기준으로 다시 본다. 코드의 "파이프라인" 자체, 그래프의 x축도 같은 기준. 테스트를 자물쇠에 빗댄 "잠그다"는 방향이 반대라 F-10이 본다 |
150
150
  | F-8 | 추상명사에 물리 측량 동사("근거를 재봤는데", "판단을 재보고 있다", "근거를 재본 결과", "의견을 달아봤는데") | S2 / **대화·리뷰 S1** | 저울에 올린 게 아니라 검토한 것이다. 사람이 하는 행위 동사로 되돌린다("근거를 확인해봤는데", "의견을 검토해봤는데"). F-7 물리 동사 도피의 사촌이라 목적어가 근거, 의견, 판단, 영향, 의미, 가치, 리스크인 자리만 본다 — "온도를 재봤는데"는 대상이 아니다 |
151
151
  | F-9 | 결함이나 코드 상태, 그 결함의 원인 관계를 비유 명사로 뭉개 부름 ("맨몸 호출", "벌거벗은 API", "뿌리가 하나다") | S2 / **대화·리뷰 S1** | 무엇이 빠졌고 무엇이 틀렸는지 그대로 쓴다 ("맨몸 호출" → "접두 객체 없이 함수 이름만 적혀 있다"). 별칭은 검색이 안 되고 처음 읽는 사람이 못 알아보고 답글에서 재생산돼 팀 어휘로 굳는다. **예외는 남이 정의해 둔 이름을 그 뜻 그대로 쓸 때다** — "널 포인터", "데드락", "고아 노드"처럼 명세나 교과서에 뜻이 박힌 말이고 F-6으로도 안 넘긴다. 다른 결함에 비유로 얹으면 예외가 아니고 팀에서 몇 번 쓰였다는 것도 아니다 — 그렇게 열면 답글에 한 번 재생산된 별칭이 곧바로 빠져나간다. **F-7과 방향이 반대다** — F-7은 기술 비유를 일상 말로 되돌리고 F-9는 일상 비유를 기술 대상에 씌운 쪽을 본다. **원인 관계를 부르는 비유도 같은 자리다** — "뿌리가 하나다"는 원인이 같다는 말을 뿌리에 얹은 것이라 무엇이 같은지가 안 읽힌다. "원인이 같다"로 쓴다. 지어낸 별칭이든 이미 있는 비유든 가르는 건 하나다 — 그 자리에서 무엇을 가리키는지가 말에 남아 있느냐다. **"뿌리"는 root 한 단어가 그 대상 이름인 자리에서만 쓴다** — root cause처럼 수식하는 자리는 대상이다. 기준과 예시는 위 `F-9 오적용 주의` 문단에 있고 상세는 그 한 자리에만 둔다. F-9에 걸린 별칭이 스스로 움직이면 D-5, 조사 없이 뭉치면 F-6도 함께 걸린다. **별칭과 원인 쪽 경계는 뜻이라 탐지기가 없다.** "뿌리"는 말 하나라 F-10의 "못 박" 탐지기처럼 형태로 걸 수 있지만 안 붙였다 — 레포에 root를 가리키는 정상 용례가 서른 자리 넘게 있어 걸린 자리를 사람이 다시 보는 양이 검사로 얻는 것보다 크다 |
152
152
  | F-10 | 일상 관용구의 물리 동작 동사를 코드나 문서 대상에 씌움 ("타입을 못 박다", "규칙을 못박는다", "테스트로 잠갔다") | S2 / **대화·리뷰 S1** | 그 자리에서 실제로 무엇이 되는지를 동사로 쓴다 ("타입을 선언한다", "규칙을 정한다", "관련 테스트가 있다"). 관용구는 원래 사람 사이 합의에 걸리는 말이라 목적어가 타입이나 규칙이 되면 누구에게 못을 박는다는 건지 가리킬 데가 없다. **가르는 것은 누가 정하는 자리냐다.** 문서나 코드가 스스로 정하면 대상이고("이 지시를 1번으로 못박는다", "타입을 못 박다"), 사람들이 협의해 정하면 예외다("팀이 일정을 못 박았다"). 한국어는 주어를 자주 생략하므로 **주어가 드러나면 그걸 보고, 없으면 목적어로 본다** — 타입, 값, 규칙, 지시, 기준은 문서나 코드가 정하는 쪽이고 일정과 조건처럼 사람들이 서로 약속하는 대상은 협의하는 쪽이다. 같은 "범위"라도 문서가 제 적용 범위를 정하는 자리는 대상이고 팀이 일의 범위를 합의하는 자리는 예외다. **나머지 예외는 셋이다.** 목적어가 리터럴 값이라 하드코딩을 뜻하는 "박아두다"("이 값 그냥 박아두죠"), 명사로 굳은 "잠금", 자물쇠나 문처럼 실제 물체를 잠그는 자리("문을 잠갔다"). **탐지기는 "못 박" 어간과 자물쇠 활용형을 전부 건다** — 주어가 사람인지 문서인지 못 가르므로 걸린 자리는 사람이 위 축으로 다시 본다 (I-5와 같은 방식이다). 형태로 빠지는 예외는 앞에 "못"이 없는 "박아두다"와 명사 "잠금"뿐이다. **F-7과 방향이 반대다** — F-7은 기술 비유를 일상 말로 되돌리고 F-10은 일상 비유를 코드 대상에 씌운 쪽을 본다. **F-9와는 품사로 갈린다** — F-9는 결함이나 그 원인 관계를 명사로 부르는 쪽이고(지어낸 별칭이든 이미 있는 비유든) F-10은 행위를 부르는 동사 쪽이다. **F-8과는 안 겹친다** — F-8은 물리 "측량" 동사만 보므로 "판단을 못 박았다"도 F-10 하나로 판정한다 |
@@ -293,7 +293,11 @@ mkdir -p "$refsTmp"
293
293
  gestalt harness-refs collect --base <baseSha> --head <headSha> --backend <github|local> --json > "$refsTmp/refs.json"
294
294
  ```
295
295
 
296
- `--backend`는 `prTarget`이 `github`이면 `github`, 아니면 `local`입니다. `local`이면 관련 레포를 로컬 클론에서 찾으므로 `--repo-dir owner/name=<경로>`로 클론 위치를 알 수 있는 만큼 넘깁니다. stdout은 JSON 한 줄이고 종료 코드가 1이면 인자를 잘못 준 것입니다. 인자 오류가 아닌 실패는 `referenceCheckSkipped`로 담겨 오므로 종료 코드로 리뷰를 멈추지 않습니다.
296
+ `--backend`는 `prTarget`이 `github`이면 `github`, 아니면 `local`입니다. 관련 레포의 로컬 클론을 알면 어느 쪽이든 `--repo-dir owner/name=<경로>`로 아는 만큼 넘깁니다.
297
+
298
+ `github`이어도 관련 레포는 GitHub 코드 검색으로 찾지 않습니다. 코드 검색은 분당 10회라 바뀐 파일이 열 개만 넘어도 식별자 질의가 한도를 넘깁니다. CLI가 관련 레포마다 클론을 준비해 `git grep`으로 찾습니다. `--repo-dir`로 받은 클론을 먼저 쓰고 없으면 `~/.gestalt/repos/<워크트리 이름>-<경로 해시>/<owner>/<name>`에 기본 브랜치만 얕게 받습니다. 클론은 워크트리마다 따로라 여러 워크트리에서 리뷰를 동시에 돌려도 서로 부딪히지 않습니다. 수집을 시작할 때 워크트리가 지워졌거나 7일 넘게 안 쓴 클론을 치웁니다. 수집을 안 돌리는 동안 디스크를 비우려면 `gestalt harness-refs clones prune`을 부릅니다. 넘긴 클론이든 받아 둔 클론이든 매번 fetch하고 워킹트리가 아니라 origin 기본 브랜치를 읽으니, 넘기는 클론이 다른 브랜치에 있거나 고치던 중이어도 괜찮습니다. `local`은 지금처럼 `--repo-dir` 클론의 워킹트리를 그대로 읽습니다. GitHub 코드 검색에는 클론으로 못 덮는 자리만 갑니다. 관련 레포 목록 밖에서 이 레포를 부르는 레포를 찾는 조직 전체 검색과, 클론을 못 받은 레포입니다. 조직 전체 검색은 경로와 파일 이름, 스킬이나 에이전트 이름 같은 이름 질의만 보내고 남은 한도 안에서 앞쪽부터 씁니다.
299
+
300
+ stdout은 JSON 한 줄이고 종료 코드가 1이면 인자를 잘못 준 것입니다. 인자 오류가 아닌 실패는 `referenceCheckSkipped`로 담겨 오므로 종료 코드로 리뷰를 멈추지 않습니다.
297
301
 
298
302
  `refs.json`에서 쓰는 필드는 아래뿐입니다.
299
303
 
@@ -305,8 +309,9 @@ gestalt harness-refs collect --base <baseSha> --head <headSha> --backend <github
305
309
  | `lookupBlocked` | 조회가 막힌 자리(`source`, `reason`, `detail`) |
306
310
  | `noGitHubRemote` | GitHub 원격이 없어 레포 간 검사를 못 함 |
307
311
  | `referenceCheckSkipped` | 레포 간 참조 검사를 전부 또는 일부 못 봤음 |
312
+ | `backwardSearchCoverage` | 역방향 검색 질의를 몇 개 계획했고(`planned`) 몇 개를 다 봤는지(`searched`). `orgWide`는 조직 전체 검색만 따로 센 값입니다 |
308
313
 
309
- **막힘이 있으면 사용자에게 묻습니다.** `referenceCheckSkipped`가 `true`이거나 `lookupBlocked`가 비어 있지 않거나 `noGitHubRemote`가 `true`면 3단계 전에 멈추고 묻습니다. 막힌 이유(`reason`)를 한 줄로 알리고 둘 중 하나를 고르게 합니다.
314
+ **막힘이 있으면 사용자에게 묻습니다.** `referenceCheckSkipped`가 `true`이거나 `lookupBlocked`가 비어 있지 않거나 `noGitHubRemote`가 `true`면 3단계 전에 멈추고 묻습니다. 막힌 이유(`reason`)를 한 줄로 알리고 둘 중 하나를 고르게 합니다. `reason`이 `rateLimited`면 `backwardSearchCoverage`로 얼마나 봤는지(질의 `searched`/`planned`개)를 같은 줄에 붙입니다. 다시 돌려도 한도는 분당 10회씩만 차서, 남은 질의가 많으면 기다려도 한 번에 안 끝난다는 걸 사용자가 보고 고르게 합니다.
310
315
 
311
316
  1. **기다린다.** 로그인이나 권한, 속도 제한을 풀고 다시 부르게 하고 여기서 멈춥니다.
312
317
  2. **참조 검사만 비워둔 채 진행한다.** 3단계로 넘어갑니다. 스크립트가 못 본 레포 간 참조는 이번 리뷰가 안 본 채로 남습니다.
@@ -319,6 +324,8 @@ gestalt review-loop rounds --pr <번호> # 로컬 PR이나 PR 없는 브
319
324
 
320
325
  응답의 `noRemoteChoice`가 `proceedWithoutRefs`면 질문을 건너뛰고 그 답을 그대로 씁니다. '기다린다'는 재사용하지 않습니다. 기다리겠다던 사용자가 다시 불렀다는 것이 새 답이 필요하다는 신호입니다. 조회 막힘(`lookupBlocked`)은 원인이 풀릴 수 있어서 라운드마다 다시 묻습니다. 사용자의 답은 4.7단계 이벤트 결정에서 `gestalt review-loop approve-gate --record`에 `--user-choice`로 넘겨 라운드 기록에 남깁니다.
321
326
 
327
+ **조직 전체 검색을 덜 본 것은 막힘이 아닙니다.** 관련 레포를 전부 찾았는데 한도 때문에 조직 전체 검색만 덜 봤으면 CLI가 `lookupBlocked`에 올리지 않고 `limitations`에 "조직 전체 검색은 질의 N/M개만 봤다"를 남깁니다. 묻지 않고 진행하되, `backwardSearchCoverage.orgWide`의 `searched`가 `planned`보다 작으면 [결과 표시](#결과-표시)의 **판정** 줄 아래에 그 수치를 한 줄로 남깁니다. 관련 레포 목록 밖은 그만큼 안 봤다는 뜻이라 조용히 빠지면 안 됩니다.
328
+
322
329
  **비워둔 채 진행하면 리포트에 그 사실을 남깁니다.** [결과 표시](#결과-표시)의 **판정** 줄 아래 한 줄입니다. 조용히 빠지면 사용자는 다른 레포 참조까지 봤다고 여깁니다. 이 상태의 라운드는 approve를 낼 수 없는 라운드가 되고 그 판정은 4.7단계 이벤트 결정이 `approve-gate`로 합니다.
323
330
 
324
331
  수집 도구가 아예 안 뜨는 경우(`gestalt` 바이너리가 없음, 명령이 없는 옛 버전)도 막힘과 같게 다룹니다. 못 돌렸다는 사실을 알리고 같은 두 가지를 묻습니다. 후보를 손으로 만들어 채우지 않습니다.
@@ -16,4 +16,14 @@ export interface HarnessRefsCollectOptions {
16
16
  }
17
17
  export declare function formatCollectSummary(r: CollectResult): string;
18
18
  export declare function harnessRefsCollectCommand(opts: HarnessRefsCollectOptions): Promise<void>;
19
+ export interface HarnessRefsClonesPruneOptions {
20
+ all?: boolean;
21
+ maxIdleDays?: string;
22
+ json?: boolean;
23
+ }
24
+ /**
25
+ * `gestalt harness-refs clones prune`. collect가 워크트리마다 받아 둔 관련 레포 클론을 지운다.
26
+ * collect도 시작할 때 같은 기준으로 정리하므로, 이 명령은 수집을 안 돌리는 동안 디스크를 비울 때 쓴다.
27
+ */
28
+ export declare function harnessRefsClonesPruneCommand(opts: HarnessRefsClonesPruneOptions): void;
19
29
  //# sourceMappingURL=harness-refs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"harness-refs.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/harness-refs.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AAGzC;;;;;;GAMG;AAEH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAOD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAW7D;AAED,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B9F"}
1
+ {"version":3,"file":"harness-refs.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/harness-refs.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AASzC;;;;;;GAMG;AAEH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAOD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAgB7D;AAED,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2B9F;AAED,MAAM,WAAW,6BAA6B;IAC5C,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAQD;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,6BAA6B,GAAG,IAAI,CA2BvF"}
@@ -1,5 +1,6 @@
1
1
  import { loadConfig } from '../../core/config.js';
2
2
  import { COLLECT_BACKENDS, collectReferenceCandidates, } from '../../harness-review/collect.js';
3
+ import { DEFAULT_CLONE_MAX_IDLE_MS, defaultCloneRoot, pruneWorktreeClones, } from '../../harness-review/related-clones.js';
3
4
  import { REFERENCE_CANDIDATE_KINDS } from '../../harness-review/types.js';
4
5
  function parseBackend(value) {
5
6
  if (COLLECT_BACKENDS.includes(value))
@@ -12,6 +13,11 @@ export function formatCollectSummary(r) {
12
13
  `관련 레포: ${r.relatedRepos.length > 0 ? r.relatedRepos.join(', ') : '없음'}`,
13
14
  ...REFERENCE_CANDIDATE_KINDS.map((k) => `${k}: ${r.counts[k]}`),
14
15
  ];
16
+ const cov = r.backwardSearchCoverage;
17
+ if (cov) {
18
+ const ow = cov.orgWide ? `, 조직 전체 ${cov.orgWide.searched}/${cov.orgWide.planned}` : '';
19
+ lines.push(`역방향 검색: 질의 ${cov.searched}/${cov.planned}${ow}`);
20
+ }
15
21
  if (r.noGitHubRemote)
16
22
  lines.push('GitHub 원격이 없다');
17
23
  for (const b of r.lookupBlocked)
@@ -48,4 +54,38 @@ export async function harnessRefsCollectCommand(opts) {
48
54
  });
49
55
  console.log(opts.json ? JSON.stringify(result) : formatCollectSummary(result));
50
56
  }
57
+ const PRUNE_REASON_LABEL = {
58
+ worktreeGone: '워크트리 없음',
59
+ idle: '오래 안 씀',
60
+ all: '--all',
61
+ };
62
+ /**
63
+ * `gestalt harness-refs clones prune`. collect가 워크트리마다 받아 둔 관련 레포 클론을 지운다.
64
+ * collect도 시작할 때 같은 기준으로 정리하므로, 이 명령은 수집을 안 돌리는 동안 디스크를 비울 때 쓴다.
65
+ */
66
+ export function harnessRefsClonesPruneCommand(opts) {
67
+ let maxIdleMs = DEFAULT_CLONE_MAX_IDLE_MS;
68
+ if (opts.maxIdleDays !== undefined) {
69
+ const days = Number(opts.maxIdleDays);
70
+ if (!Number.isFinite(days) || days < 0) {
71
+ console.error(`--max-idle-days는 0 이상의 숫자여야 한다: ${opts.maxIdleDays}`);
72
+ process.exit(1);
73
+ }
74
+ maxIdleMs = days * 24 * 60 * 60 * 1000;
75
+ }
76
+ const base = defaultCloneRoot();
77
+ const pruned = pruneWorktreeClones(base, { all: opts.all, maxIdleMs });
78
+ if (opts.json) {
79
+ console.log(JSON.stringify({ base, pruned }));
80
+ return;
81
+ }
82
+ if (pruned.length === 0) {
83
+ console.log(`지울 클론이 없다 (${base})`);
84
+ return;
85
+ }
86
+ for (const p of pruned) {
87
+ console.log(`${PRUNE_REASON_LABEL[p.reason]}\t${p.root}${p.worktree ? `\t(${p.worktree})` : ''}`);
88
+ }
89
+ console.log(`클론 루트 ${pruned.length}개를 지웠다`);
90
+ }
51
91
  //# sourceMappingURL=harness-refs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"harness-refs.js","sourceRoot":"","sources":["../../../../src/cli/commands/harness-refs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EACL,gBAAgB,EAChB,0BAA0B,GAG3B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAmB1E,SAAS,YAAY,CAAC,KAAa;IACjC,IAAK,gBAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAuB,CAAC;IAC5F,MAAM,IAAI,KAAK,CAAC,cAAc,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,CAAgB;IACnD,MAAM,KAAK,GAAG;QACZ,OAAO,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,WAAW,GAAG;QACtC,UAAU,CAAC,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;QACxE,GAAG,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;KAChE,CAAC;IACF,IAAI,CAAC,CAAC,cAAc;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAClD,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAChF,IAAI,CAAC,CAAC,qBAAqB;QACzB,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IAClD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,IAA+B;IAC7E,IAAI,OAAuB,CAAC;IAC5B,IAAI,CAAC;QACH,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,UAAU,GAAa,EAAE,CAAC;IAC9B,IAAI,CAAC;QACH,UAAU,GAAG,UAAU,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC;IACjE,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,gDAAgD;QAChD,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,0BAA0B,CAAC;QAC9C,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE;QACvB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO;QACP,QAAQ,EAAE,IAAI,CAAC,OAAO;QACtB,UAAU;QACV,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC;AACjF,CAAC"}
1
+ {"version":3,"file":"harness-refs.js","sourceRoot":"","sources":["../../../../src/cli/commands/harness-refs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmDpC,wBAAgB,SAAS,IAAI,OAAO,CA0cnC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsDpC,wBAAgB,SAAS,IAAI,OAAO,CAsdnC"}
@@ -15,7 +15,7 @@ import { explainCheckCommand } from './commands/explain-check.js';
15
15
  import { DEFAULT_CASES_PATH, explainEvalCommand } from './commands/explain-eval.js';
16
16
  import { reviewLoopDirCommand, reviewLoopParseCommand, reviewLoopResolveCommand, reviewLoopStateCommand, } from './commands/review-loop.js';
17
17
  import { approveGateCommand, reviewRoundsCommand } from './commands/approve-gate.js';
18
- import { harnessRefsCollectCommand } from './commands/harness-refs.js';
18
+ import { harnessRefsClonesPruneCommand, harnessRefsCollectCommand, } from './commands/harness-refs.js';
19
19
  import { harnessRefsFollowupBuildCommand, harnessRefsFollowupCheckCommand, harnessRefsFollowupFindCommand, harnessRefsRelatedPrsCommand, harnessRefsThreeStateCommand, } from './commands/harness-refs-cross-pr.js';
20
20
  import { getVersion } from '../core/version.js';
21
21
  import { prCheckoutCommand, prCloseCommand, prCommentCommand, prCommentsCommand, prCreateCommand, prDiffCommand, prEditCommand, prListCommand, prMergeCommand, prReposCommand, prResolveCommand, prReviewCommand, prPruneCommand, prServeCommand, prShowCommand, prUnregisterCommand, prUpdateCommand, } from './commands/pr.js';
@@ -293,6 +293,15 @@ export function createCli() {
293
293
  .option('--refresh', '관련 레포 탐지 캐시를 무시한다')
294
294
  .option('--json', 'stdout에 JSON만')
295
295
  .action((o) => harnessRefsCollectCommand(o));
296
+ harnessRefs
297
+ .command('clones')
298
+ .description('collect가 워크트리마다 받아 둔 관련 레포 클론')
299
+ .command('prune')
300
+ .description('워크트리가 지워졌거나 오래 안 쓴 클론을 지운다. collect도 시작할 때 같은 기준으로 지운다')
301
+ .option('--all', '기준과 상관없이 전부 지운다. 도는 수집이 있으면 그 수집의 검색이 빈다')
302
+ .option('--max-idle-days <n>', '이 일수 넘게 안 쓴 클론을 지운다 (기본 7)')
303
+ .option('--json', 'stdout에 JSON만')
304
+ .action((o) => harnessRefsClonesPruneCommand(o));
296
305
  program
297
306
  .command('humanize-scan')
298
307
  .description('원문에서 실제로 걸린 S1 룰만 처방과 함께 추린다 (exit 0 걸림 / 10 없음, 파일 여럿이면 우선순위로 하나로 합친다)')
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import type { CodeSearchBackend, SkippedRepo } from './search-backend.js';
2
- import type { Identifier, ReferenceCandidate } from './types.js';
1
+ import type { BackendCounts, CodeSearchBackend, SkippedRepo } from './search-backend.js';
2
+ import type { Identifier, ReferenceCandidate, SearchBackendKind } from './types.js';
3
3
  export interface BackwardSearchInput {
4
4
  /** extractIdentifiers 결과. extractedBy가 llm인 것은 검색하지 않고 needsLlmJudgment로 넘긴다 */
5
5
  identifiers: Identifier[];
@@ -29,6 +29,18 @@ export interface SkippedIdentifier {
29
29
  identifier: Identifier;
30
30
  reason: string;
31
31
  }
32
+ /** 질의를 몇 개 계획했고 몇 개를 다 찾았는지. 막힌 라운드가 얼마나 봤는지 보여 준다 */
33
+ export interface BackwardSearchCoverage {
34
+ planned: number;
35
+ /** 넘긴 레포를 하나도 안 빠뜨리고 찾은 질의 수 */
36
+ searched: number;
37
+ byBackend: Partial<Record<SearchBackendKind, BackendCounts>>;
38
+ /** 조직 와일드카드를 실은 질의. 관련 레포 밖을 얼마나 봤는지다 */
39
+ orgWide?: {
40
+ planned: number;
41
+ searched: number;
42
+ };
43
+ }
32
44
  export interface BackwardSearchResult {
33
45
  backwardRefs: BackwardRefCandidate[];
34
46
  /** 코드가 바뀌면 낡을 수 있는 문서. 결함 후보가 아니라 리포트의 다른 절에 싣는다 */
@@ -39,6 +51,7 @@ export interface BackwardSearchResult {
39
51
  skipped: SkippedRepo[];
40
52
  /** 너무 짧아 검색어로 쓰지 않은 식별자 */
41
53
  skippedIdentifiers: SkippedIdentifier[];
54
+ coverage: BackwardSearchCoverage;
42
55
  }
43
56
  /** 이보다 짧은 값은 흔한 낱말과 겹쳐 온 조직이 걸리므로 검색하지 않는다 */
44
57
  export declare const MIN_SEARCH_TERM_LENGTH = 3;
@@ -1 +1 @@
1
- {"version":3,"file":"backward-search.d.ts","sourceRoot":"","sources":["../../../src/harness-review/backward-search.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,iBAAiB,EAAa,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACrF,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEjE,MAAM,WAAW,mBAAmB;IAClC,gFAAgF;IAChF,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,kDAAkD;IAClD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D,IAAI,EAAE,cAAc,CAAC;IACrB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,oDAAoD;IACpD,aAAa,EAAE,qBAAqB,EAAE,CAAC;IACvC,2DAA2D;IAC3D,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;IACtC,6CAA6C;IAC7C,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,2BAA2B;IAC3B,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;CACzC;AAED,8CAA8C;AAC9C,eAAO,MAAM,sBAAsB,IAAI,CAAC;AA0ExC;;;GAGG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAyG9F"}
1
+ {"version":3,"file":"backward-search.d.ts","sourceRoot":"","sources":["../../../src/harness-review/backward-search.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,aAAa,EACb,iBAAiB,EAGjB,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpF,MAAM,WAAW,mBAAmB;IAClC,gFAAgF;IAChF,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,kDAAkD;IAClD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;IACvB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D,IAAI,EAAE,cAAc,CAAC;IACrB,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,sDAAsD;AACtD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC,CAAC;IAC7D,yCAAyC;IACzC,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACjD;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,oDAAoD;IACpD,aAAa,EAAE,qBAAqB,EAAE,CAAC;IACvC,2DAA2D;IAC3D,gBAAgB,EAAE,iBAAiB,EAAE,CAAC;IACtC,6CAA6C;IAC7C,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,2BAA2B;IAC3B,kBAAkB,EAAE,iBAAiB,EAAE,CAAC;IACxC,QAAQ,EAAE,sBAAsB,CAAC;CAClC;AAED,8CAA8C;AAC9C,eAAO,MAAM,sBAAsB,IAAI,CAAC;AA8FxC;;;GAGG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAqH9F"}
@@ -6,6 +6,7 @@
6
6
  * 조회하지 못한 레포는 skipped에 그대로 실어, 후보가 비었을 때 "참조 없음"과 구분되게 한다.
7
7
  */
8
8
  import { githubSlug } from './forward-search.js';
9
+ import { isOrgWildcard } from './github-code-search.js';
9
10
  import { isHarnessPath } from './identifiers.js';
10
11
  /** 이보다 짧은 값은 흔한 낱말과 겹쳐 온 조직이 걸리므로 검색하지 않는다 */
11
12
  export const MIN_SEARCH_TERM_LENGTH = 3;
@@ -60,6 +61,17 @@ function isBareHeadingMention(hit, id, term, selfRepo) {
60
61
  return false;
61
62
  return !(selfRepo && hit.text.includes(nameOf(selfRepo)));
62
63
  }
64
+ /**
65
+ * GitHub 한도 안에서 먼저 보낼 순서. 이름은 다른 레포가 그대로 적어 부르므로 걸리면 거의 참조다.
66
+ * 헤딩 원문은 레포 이름이 같이 적힌 줄만 남기므로(isBareHeadingMention) 건지는 게 가장 적다
67
+ */
68
+ var QueryRank;
69
+ (function (QueryRank) {
70
+ QueryRank[QueryRank["Name"] = 0] = "Name";
71
+ QueryRank[QueryRank["HeadingAnchor"] = 1] = "HeadingAnchor";
72
+ QueryRank[QueryRank["RepoName"] = 2] = "RepoName";
73
+ QueryRank[QueryRank["HeadingText"] = 3] = "HeadingText";
74
+ })(QueryRank || (QueryRank = {}));
63
75
  function nameOf(repo) {
64
76
  const slash = repo.lastIndexOf('/');
65
77
  return slash < 0 ? repo : repo.slice(slash + 1);
@@ -80,6 +92,7 @@ export async function backwardSearch(input) {
80
92
  needsLlmJudgment: [],
81
93
  skipped: [],
82
94
  skippedIdentifiers: [],
95
+ coverage: { planned: 0, searched: 0, byBackend: {} },
83
96
  };
84
97
  const skippedRepos = new Map();
85
98
  const noteSkipped = (list) => {
@@ -114,55 +127,67 @@ export async function backwardSearch(input) {
114
127
  if (!docHits.has(key))
115
128
  docHits.set(key, { hit, term });
116
129
  };
117
- if (repos.length > 0) {
118
- for (const id of searchable) {
119
- for (const term of termsOf(id)) {
120
- const { hits, skipped } = await input.backend.search(term, repos, opts);
121
- noteSkipped(skipped);
122
- for (const hit of hits) {
123
- const bounded = hasBoundedMatch(hit.text, term);
124
- if (pointsAtOwnFile(input.backend, hit, id, term, input.selfRepo))
125
- continue;
126
- if (isBareHeadingMention(hit, id, term, input.selfRepo))
127
- continue;
128
- // 이름은 더 긴 이름의 일부로 걸리면 다른 이름이다. widget-audit와 widget-audit-v2
129
- if (!bounded && NAME_KINDS.has(id.kind))
130
- continue;
131
- if (isHarnessPath(hit.path)) {
132
- const key = locationKey(hit);
133
- if (seenRefs.has(key))
134
- continue;
135
- seenRefs.add(key);
136
- result.backwardRefs.push({
137
- kind: 'backwardRef',
138
- sourceFile: hit.path,
139
- sourceLine: hit.line,
140
- targetRepo: hit.repo,
141
- targetPath: hit.path,
142
- matchedText: id.value,
143
- contextLines: [hit.text],
144
- needsLlmJudgment: !bounded,
145
- identifier: id,
146
- searchTerm: term,
147
- });
148
- }
149
- else if (bounded && isDocPath(hit.path)) {
150
- noteDoc(hit, term);
151
- }
152
- }
153
- }
130
+ const queries = repos.length > 0 ? planQueries(searchable, repos, input.selfRepo, opts) : [];
131
+ input.backend.plan?.(queries.map((q) => q.repos));
132
+ let searched = 0;
133
+ const orgWide = { planned: 0, searched: 0 };
134
+ for (const q of queries) {
135
+ const { hits, skipped } = await input.backend.search(q.term, q.repos, q.opts);
136
+ noteSkipped(skipped);
137
+ if (skipped.length === 0)
138
+ searched++;
139
+ if (q.repos.some(isOrgWildcard)) {
140
+ orgWide.planned++;
141
+ if (!skipped.some((x) => isOrgWildcard(x.repo)))
142
+ orgWide.searched++;
154
143
  }
155
- if (input.selfRepo) {
156
- const name = nameOf(input.selfRepo);
157
- const { hits, skipped } = await input.backend.search(name, repos, opts);
158
- noteSkipped(skipped);
144
+ const { id, term } = q;
145
+ if (!id) {
159
146
  for (const hit of hits) {
160
- if (!isHarnessPath(hit.path) && isDocPath(hit.path) && hasBoundedMatch(hit.text, name)) {
161
- noteDoc(hit, name);
147
+ if (!isHarnessPath(hit.path) && isDocPath(hit.path) && hasBoundedMatch(hit.text, term)) {
148
+ noteDoc(hit, term);
162
149
  }
163
150
  }
151
+ continue;
152
+ }
153
+ for (const hit of hits) {
154
+ const bounded = hasBoundedMatch(hit.text, term);
155
+ if (pointsAtOwnFile(input.backend, hit, id, term, input.selfRepo))
156
+ continue;
157
+ if (isBareHeadingMention(hit, id, term, input.selfRepo))
158
+ continue;
159
+ // 이름은 더 긴 이름의 일부로 걸리면 다른 이름이다. widget-audit와 widget-audit-v2
160
+ if (!bounded && NAME_KINDS.has(id.kind))
161
+ continue;
162
+ if (isHarnessPath(hit.path)) {
163
+ const key = locationKey(hit);
164
+ if (seenRefs.has(key))
165
+ continue;
166
+ seenRefs.add(key);
167
+ result.backwardRefs.push({
168
+ kind: 'backwardRef',
169
+ sourceFile: hit.path,
170
+ sourceLine: hit.line,
171
+ targetRepo: hit.repo,
172
+ targetPath: hit.path,
173
+ matchedText: id.value,
174
+ contextLines: [hit.text],
175
+ needsLlmJudgment: !bounded,
176
+ identifier: id,
177
+ searchTerm: term,
178
+ });
179
+ }
180
+ else if (bounded && isDocPath(hit.path)) {
181
+ noteDoc(hit, term);
182
+ }
164
183
  }
165
184
  }
185
+ result.coverage = {
186
+ planned: queries.length,
187
+ searched,
188
+ byBackend: input.backend.counts?.() ?? {},
189
+ ...(orgWide.planned > 0 ? { orgWide } : {}),
190
+ };
166
191
  for (const { hit, term } of docHits.values()) {
167
192
  result.knowledgeDocs.push({
168
193
  kind: 'knowledgeDoc',
@@ -180,4 +205,37 @@ export async function backwardSearch(input) {
180
205
  result.skipped = [...skippedRepos].map(([repo, reason]) => ({ repo, reason }));
181
206
  return result;
182
207
  }
208
+ /**
209
+ * 식별자와 검색어를 질의 목록으로 펼쳐 GitHub에 보낼 순서로 줄 세운다.
210
+ *
211
+ * 헤딩 질의에서는 조직 와일드카드를 뺀다. 관련 레포 밖에서 남의 레포 절을 부르는 일은 드물고
212
+ * 헤딩이 이름보다 훨씬 많아서(17개 파일 PR에 91개) 와일드카드에 실으면 한도를 혼자 다 쓴다.
213
+ */
214
+ function planQueries(identifiers, repos, selfRepo, opts) {
215
+ const scoped = repos.filter((r) => !isOrgWildcard(r));
216
+ const selfName = selfRepo ? nameOf(selfRepo) : undefined;
217
+ const base = opts ?? {};
218
+ const out = [];
219
+ for (const id of identifiers) {
220
+ if (id.kind !== 'heading') {
221
+ out.push({ rank: QueryRank.Name, term: id.value, id, repos, opts: base });
222
+ continue;
223
+ }
224
+ for (const term of termsOf(id)) {
225
+ const anchor = term.startsWith('#');
226
+ out.push({
227
+ rank: anchor ? QueryRank.HeadingAnchor : QueryRank.HeadingText,
228
+ term,
229
+ id,
230
+ repos: scoped,
231
+ // 앵커 없이 헤딩 글자만 걸린 줄은 레포 이름이 같이 있어야 남긴다. GitHub에는 그 조건을 질의로 건다
232
+ opts: !anchor && selfName ? { ...base, requireAlso: selfName } : base,
233
+ });
234
+ }
235
+ }
236
+ if (selfName)
237
+ out.push({ rank: QueryRank.RepoName, term: selfName, repos, opts: base });
238
+ // sort는 안정 정렬이라 같은 순위 안에서는 긴 값이 먼저인 기존 순서가 남는다
239
+ return out.filter((q) => q.repos.length > 0).sort((a, b) => a.rank - b.rank);
240
+ }
183
241
  //# sourceMappingURL=backward-search.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"backward-search.js","sourceRoot":"","sources":["../../../src/harness-review/backward-search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backward-search.js","sourceRoot":"","sources":["../../../src/harness-review/backward-search.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { type GhRunner } from '../review-loop/fetch.js';
2
- import { type LlmJudgmentTarget } from './backward-search.js';
2
+ import { type BackwardSearchCoverage, type LlmJudgmentTarget } from './backward-search.js';
3
3
  import type { BlockReason } from './github-backend.js';
4
+ import { type CloneGitRunner } from './related-clones.js';
4
5
  import { type SkippedRepo } from './search-backend.js';
5
6
  import { type Identifier, type ReferenceCandidate, type ReferenceCandidateKind, type SearchBackendKind } from './types.js';
6
7
  export declare const COLLECT_BACKENDS: readonly ["local", "github"];
@@ -36,6 +37,12 @@ export interface CollectOptions {
36
37
  /** 관련 레포 탐지 캐시를 무시한다 */
37
38
  refresh?: boolean;
38
39
  codeGraphDbPath?: string;
40
+ /** github 백엔드가 관련 레포를 받아 두는 자리. 기본은 `~/.gestalt/repos`이고 그 아래 워크트리마다 나뉜다 */
41
+ cloneRoot?: string;
42
+ /** 테스트에서 클론 준비의 git 호출을 바꾼다 */
43
+ cloneGit?: CloneGitRunner;
44
+ /** 테스트에서 코드 검색 한도 대기를 실제로 자지 않게 바꾼다 */
45
+ sleep?: (ms: number) => Promise<void>;
39
46
  }
40
47
  export interface CollectResult {
41
48
  version: 1;
@@ -62,6 +69,8 @@ export interface CollectResult {
62
69
  */
63
70
  referenceCheckSkipped: boolean;
64
71
  skippedRepos: SkippedRepo[];
72
+ /** 역방향 검색이 질의를 몇 개 계획했고 몇 개를 봤는지. 검색을 안 돌렸으면 null */
73
+ backwardSearchCoverage: BackwardSearchCoverage | null;
65
74
  detectors: Record<DetectorName, DetectorStatus>;
66
75
  limitations: string[];
67
76
  }
@@ -1 +1 @@
1
- {"version":3,"file":"collect.d.ts","sourceRoot":"","sources":["../../../src/harness-review/collect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"collect.d.ts","sourceRoot":"","sources":["../../../src/harness-review/collect.ts"],"names":[],"mappings":"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"}