@tienne/gestalt 0.74.0 → 0.75.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 (83) hide show
  1. package/dist/package.json +1 -1
  2. package/dist/plugin/role-agents/_shared/references/ai-tell-quick-rules.md +18 -5
  3. package/dist/plugin/role-agents/_shared/references/author-voice.md +3 -3
  4. package/dist/plugin/role-agents/change-context-writer/AGENT.md +1 -1
  5. package/dist/plugin/role-agents/code-review-responder/AGENT.md +25 -0
  6. package/dist/plugin/role-agents/code-review-writer/AGENT.md +34 -11
  7. package/dist/plugin/role-agents/explainer/references/audience.md +4 -4
  8. package/dist/plugin/role-agents/humanize-monolith/AGENT.md +1 -1
  9. package/dist/plugin/role-agents/impact-writer/references/voice.md +1 -0
  10. package/dist/plugin/role-agents/jira-writer/AGENT.md +1 -1
  11. package/dist/plugin/role-agents/slack-messenger/references/voice-sample.md +1 -1
  12. package/dist/plugin/skills/_shared/agent-delegation.md +1 -1
  13. package/dist/plugin/skills/local-pr/SKILL.md +1 -1
  14. package/dist/plugin/skills/pr/SKILL.md +1 -1
  15. package/dist/plugin/skills/review/SKILL.md +61 -8
  16. package/dist/plugin/skills/review-reply/SKILL.md +46 -5
  17. package/dist/plugin/skills/ship/SKILL.md +7 -7
  18. package/dist/src/cli/commands/explain-eval.d.ts +1 -1
  19. package/dist/src/cli/commands/explain-eval.js +1 -1
  20. package/dist/src/cli/commands/humanize-scan.d.ts +7 -0
  21. package/dist/src/cli/commands/humanize-scan.d.ts.map +1 -1
  22. package/dist/src/cli/commands/humanize-scan.js +16 -2
  23. package/dist/src/cli/commands/humanize-scan.js.map +1 -1
  24. package/dist/src/cli/commands/pr.d.ts +2 -2
  25. package/dist/src/cli/commands/pr.js +6 -6
  26. package/dist/src/cli/commands/pr.js.map +1 -1
  27. package/dist/src/events/store.js +1 -1
  28. package/dist/src/explain/check.js +4 -4
  29. package/dist/src/explain/terms.js +3 -3
  30. package/dist/src/humanize/detectors.d.ts +67 -8
  31. package/dist/src/humanize/detectors.d.ts.map +1 -1
  32. package/dist/src/humanize/detectors.js +142 -33
  33. package/dist/src/humanize/detectors.js.map +1 -1
  34. package/dist/src/humanize/index.d.ts +1 -1
  35. package/dist/src/humanize/index.d.ts.map +1 -1
  36. package/dist/src/humanize/index.js +1 -1
  37. package/dist/src/humanize/index.js.map +1 -1
  38. package/dist/src/humanize/rules.d.ts +2 -0
  39. package/dist/src/humanize/rules.d.ts.map +1 -1
  40. package/dist/src/humanize/rules.js.map +1 -1
  41. package/dist/src/humanize/scan.d.ts +17 -10
  42. package/dist/src/humanize/scan.d.ts.map +1 -1
  43. package/dist/src/humanize/scan.js +31 -1
  44. package/dist/src/humanize/scan.js.map +1 -1
  45. package/dist/src/local-pr/engine.d.ts +2 -2
  46. package/dist/src/local-pr/engine.js +2 -2
  47. package/dist/src/local-pr/git.d.ts +9 -8
  48. package/dist/src/local-pr/git.d.ts.map +1 -1
  49. package/dist/src/local-pr/git.js +9 -8
  50. package/dist/src/local-pr/git.js.map +1 -1
  51. package/dist/src/local-pr/registry.d.ts +1 -1
  52. package/dist/src/local-pr/registry.js +1 -1
  53. package/dist/src/local-pr/repository.d.ts +2 -2
  54. package/dist/src/local-pr/repository.js +2 -2
  55. package/dist/src/mcp/schemas.js +1 -1
  56. package/dist/src/mcp/schemas.js.map +1 -1
  57. package/dist/src/mcp/tools/pr.d.ts +1 -1
  58. package/dist/src/mcp/tools/pr.d.ts.map +1 -1
  59. package/dist/src/mcp/tools/pr.js +3 -3
  60. package/dist/src/mcp/tools/pr.js.map +1 -1
  61. package/dist/src/mcp/tools/review-passthrough.js +2 -2
  62. package/dist/src/review/passthrough-engine.js +1 -1
  63. package/dist/src/review/passthrough-engine.js.map +1 -1
  64. package/package.json +1 -1
  65. package/plugin/.codex-plugin/plugin.json +1 -1
  66. package/plugin/.mcp.json +1 -1
  67. package/plugin/mcp.json +1 -1
  68. package/plugin/role-agents/_shared/references/ai-tell-quick-rules.md +18 -5
  69. package/plugin/role-agents/_shared/references/author-voice.md +3 -3
  70. package/plugin/role-agents/change-context-writer/AGENT.md +1 -1
  71. package/plugin/role-agents/code-review-responder/AGENT.md +25 -0
  72. package/plugin/role-agents/code-review-writer/AGENT.md +34 -11
  73. package/plugin/role-agents/explainer/references/audience.md +4 -4
  74. package/plugin/role-agents/humanize-monolith/AGENT.md +1 -1
  75. package/plugin/role-agents/impact-writer/references/voice.md +1 -0
  76. package/plugin/role-agents/jira-writer/AGENT.md +1 -1
  77. package/plugin/role-agents/slack-messenger/references/voice-sample.md +1 -1
  78. package/plugin/skills/_shared/agent-delegation.md +1 -1
  79. package/plugin/skills/local-pr/SKILL.md +1 -1
  80. package/plugin/skills/pr/SKILL.md +1 -1
  81. package/plugin/skills/review/SKILL.md +61 -8
  82. package/plugin/skills/review-reply/SKILL.md +46 -5
  83. package/plugin/skills/ship/SKILL.md +7 -7
@@ -112,20 +112,20 @@ id를 직접 주면 아래 1번의 첫 수단이 브랜치를 안 따지고 잡
112
112
 
113
113
  ### 순서
114
114
 
115
- **명시 지정이 가장 세다. 그다음이 안 끝난 로컬 PR이다.** 아래 순서대로 훑어 처음 걸리는 갈래를 택한다.
115
+ **명시 지정이 가장 세다. 그다음이 안 끝난 로컬 PR이다.** 아래 순서대로 훑어 처음 걸리는 것을 택한다.
116
116
 
117
117
  1. **로컬 지정** — `local` 입력이 true거나(`--local` 플래그) `target`이 로컬 PR id 형식(`gestalt pr list`에 뜨는 id)인 경우다. 이때는 로컬 PR을 두 수단으로 찾는다.
118
118
  - `target`에 id가 있으면 먼저 `pnpm tsx bin/gestalt.ts pr --json show <id>`로 실제 존재를 확인한다. 사용자가 id를 짚었으면 그 PR이 현재 브랜치 것인지는 안 따진다.
119
119
  - id가 없거나(`--local`만 준 경우) `show`가 빈 결과를 내면 위의 가리는 법으로 현재 브랜치의 로컬 PR을 찾는다.
120
120
  - 둘 중 하나로 찾으면 `local`. 어느 쪽으로도 못 찾으면 그 사실을 한 줄 알리고 2번으로 내려간다.
121
121
 
122
- `local`은 boolean이고 `target`은 필수가 아니다. `/review-reply --local`처럼 플래그만 주는 입력이 정상이므로 id가 없는 갈래를 반드시 함께 둔다.
122
+ `local`은 boolean이고 `target`은 필수가 아니다. `/review-reply --local`처럼 플래그만 주는 입력이 정상이므로 id가 없는 경우를 반드시 함께 둔다.
123
123
  2. **GitHub 지정** — `target`이 PR 번호나 GitHub URL이면 → `github`. 사용자가 원격을 짚었으므로 아래 3번을 건너뛴다.
124
124
  3. **안 끝난 로컬 PR** — 현재 브랜치에 안 끝난 로컬 PR이 있으면 → `local`. 1번이 이미 조회했으면 그 결과를 그대로 쓴다. 1번을 안 거쳤으면 여기서 처음 조회한다.
125
125
 
126
126
  로컬 PR이 안 끝났다는 건 그 코드가 아직 안 정해졌다는 뜻이다. 그 상태로 원격에 답을 달면 두 자리에 서로 다른 결론이 남는다. 로컬을 먼저 종료하고 원격을 본다.
127
127
 
128
- 갈래로 왔으면 사용자에게 한 줄 알린다: "현재 브랜치에 안 끝난 로컬 PR {id}가 있어서 그쪽을 먼저 봐요. 원격이면 PR 번호나 URL을 주세요."
128
+ 여기로 왔으면 사용자에게 한 줄 알린다: "현재 브랜치에 안 끝난 로컬 PR {id}가 있어서 그쪽을 먼저 봐요. 원격이면 PR 번호나 URL을 주세요."
129
129
  4. `gh auth status`가 실패하거나(인증 안 됨) 원격이 없으면(`git remote -v` 비어 있음) → GitHub 경로가 막혀 있다. → `none`. **여기서 멈춘다.**
130
130
 
131
131
  **말없이 로컬로 갈아타지 않는다.** 3번이 이미 같은 조회로 걸렀으므로 현재 브랜치의 안 끝난 로컬 PR은 없다. 답을 달 자리가 GitHub에도 로컬에도 없는 것이지, 로컬로 내려앉을 자리가 남은 게 아니다. 무엇이 없어서 못 하는지 알리고 끝낸다: "받은 리뷰를 못 가져와요 — {gh 인증이 없어요 / 원격이 없어요}. 그리고 이 브랜치에 안 끝난 로컬 PR도 없어요. 인증을 붙이거나 로컬 PR id를 주세요."
@@ -151,7 +151,7 @@ gh 인증이 되고 원격도 있는데 로컬 PR을 지정했으면 1번이 먼
151
151
 
152
152
  - 1열이 "있음"인데 로컬 PR을 못 찾으면 지정은 힘을 잃는다. 그 뒤로는 1열이 "없음"인 행과 같은 길을 간다.
153
153
  - 3열의 `안 봄`과 `못 찾음`은 다르다. `안 봄`은 로컬 지정이 없는 채로 GitHub 지정에 걸려 3번까지 못 가본 경우다. `못 찾음`은 실제로 조회했는데 걸리는 PR이 없던 경우다. 4번 아래 행들이 전부 `못 찾음`인 이유가 여기 있다 — 거기까지 왔다는 건 조회를 이미 했다는 뜻이다.
154
- - `못 찾음`에는 알림이 따라붙을 수 있다. 가리는 법의 amend 갈래에 걸린 PR이 그렇다. 판정은 `못 찾음` 그대로라 행이 늘지 않고 사용자만 한 줄 더 받는다.
154
+ - `못 찾음`에는 알림이 따라붙을 수 있다. 가리는 법의 amend 분기에 걸린 PR이 그렇다. 판정은 `못 찾음` 그대로라 행이 늘지 않고 사용자만 한 줄 더 받는다.
155
155
  - 4번은 로컬을 다시 안 본다. 그래서 4번 행이 `local`이 아니라 `none`이다.
156
156
 
157
157
  ## 파이프라인
@@ -371,10 +371,51 @@ Agent {
371
371
 
372
372
  `path`·`line`은 메인이 `id`로 되짚어 붙인다. 원본을 이미 들고 있는 값을 되돌려 받아 쓰지 않는다.
373
373
 
374
- 에이전트가 `author-voice.md`와 `ai-tell-quick-rules.md`를 내장하므로 **별도 humanize-monolith 패스를 거치지 않는다.**
374
+ 에이전트가 `author-voice.md`와 `ai-tell-quick-rules.md`를 내장하므로 **통째로 윤문하는 humanize-monolith 패스는 거치지 않는다.** 대신 아래 검사를 거친다.
375
375
 
376
376
  접두어 금지와 GFM 개행 규칙은 위 프롬프트 안에 있다. 여기 다시 적지 않는다 — 두 벌이 되면 갈라진다.
377
377
 
378
+ **어투 검사 (필수).** 미리보기를 보이기 전에 답글을 스캔한다. **답글은 남이 쓴 코멘트를 읽고 쓰는 자리라 원문 어휘가 제일 세게 끌어당긴다** — 원문에 있던 비유 명사나 안 굳은 음차를 그대로 옮겨 적기 쉽다. 그러면 그 말이 스레드에 두 번 남는다. 에이전트 자가점검으로는 안 걸리는 자리다.
379
+
380
+ **답글마다 파일 하나로 떨군다. 한 파일에 모으지 않는다.** 모아서 한 번에 스캔하면 답글 하나를 통째로 `>` 인용으로 감싸도 다른 답글의 산문에 묻혀 안 걸린다. 답글별로 갈라야 판정이 답글 단위로 서고 어느 것이 걸렸는지도 파일 이름으로 읽힌다. 셸로 넘기지 않고 파일 쓰기 도구를 쓴다 — 본문에 한글과 백틱이 섞이고 남이 쓴 코멘트에서 온 문자열이 그대로 실린다.
381
+
382
+ ```bash
383
+ # --git-common-dir 는 워크트리 여럿이 같은 자리를 가리킨다. PR 식별자와 실행 단위로 나눈다
384
+ scanTmp="$(cd "$(git rev-parse --git-common-dir)" && pwd)/gestalt-review/<PR 식별자>/$$"
385
+ mkdir -p "$scanTmp"
386
+ echo "$scanTmp"
387
+ ```
388
+
389
+ 출력된 절대 경로에 답글마다 `1.md`, `2.md` 처럼 **순번으로** 쓴다. 순번과 스레드 id 의 대응은 메인 세션이 들고 있는다. 스레드 id 를 파일 이름으로 쓰지 않는다 — 읽어온 값이 경로가 되면 그 자리가 `.git` 아래라 위험하다.
390
+
391
+ **본문만 쓴다** — 표지 줄을 붙이면 그 줄이 산문으로 세어져 인용 판정이 어긋난다.
392
+
393
+ ```bash
394
+ # 개수를 먼저 센다. 글롭으로 바로 돌면 파일이 0개일 때 셸마다 다르게 죽는다
395
+ found=$(find "$scanTmp" -maxdepth 1 -name '*.md' | wc -l | tr -d ' ')
396
+ echo "파일 $found 개"
397
+
398
+ find "$scanTmp" -maxdepth 1 -name '*.md' | sort | while read -r f; do
399
+ pnpm tsx bin/gestalt.ts humanize-scan --file "$f" --register chat
400
+ echo "$(basename "$f" .md) EXIT=$?"
401
+ done
402
+ ```
403
+
404
+ `found` 가 답글 수와 다르면 **검사 실패다.** 멈추고 무엇이 어긋났는지 알린다.
405
+
406
+ - **0** — 걸렸다. 스캔 결과를 그대로 `code-review-responder`에 돌려주고 그 답글만 다시 쓰게 한다.
407
+ - **10** — 걸린 게 없다.
408
+ - **11** — 어투는 깨끗하고 맞춤법만 걸렸다.
409
+ - **12** — **검사할 산문이 없다.** 답글이 인용줄뿐이라 검사가 안 된 것이지 통과가 아니다. 자기 문장을 인용 밖에 두고 다시 쓰게 한다.
410
+ - 재작성은 **한 번만** 돈다. 두 번째도 걸리면 무엇이 남았는지 미리보기에 함께 적고 사용자가 판단하게 한다.
411
+ - 전부 10이나 11이면 미리보기로 넘어간다. 게시가 끝나면 `rm -rf "$scanTmp"`로 그 실행 칸만 치운다.
412
+
413
+ **이 반복문을 벗어나 답글을 합쳐 한 번에 돌리면 이 검사가 무력화된다.** 한 파일에 여러 답글을 넣으면 인용 판정이 배치 전체로 서서 답글 하나를 통째로 감싸도 다른 답글의 산문에 묻힌다. 파일 하나에 답글 하나가 이 검사가 서는 조건이다.
414
+
415
+ 표 셀 검사는 끌 수 없다. 룰 문서인지는 `humanize-scan` 이 경로로 스스로 판정한다.
416
+
417
+ `--register chat`이다. 답글은 대화체 자리라 룰북이 `대화·리뷰 S1`로 올려 둔 룰들까지 봐야 한다. **스캔에서 빠지는 자리는 인라인 백틱과 언어 태그 붙은 코드펜스, 그리고 `>` 블록인용이다** — 상대 코멘트를 그 셋으로 재인용하면 대조가 필요한 자리가 그대로 남는다. 큰따옴표로 감싼 평문은 형태로 못 가르므로(한국어에서 강조로도 쓴다) 원문을 가리킬 땐 백틱을 쓴다.
418
+
378
419
  돌려받은 답글 전체를 미리보기로 보여주고 **명시적 승인**을 받는다.
379
420
 
380
421
  ```
@@ -100,7 +100,7 @@ outputs:
100
100
 
101
101
  **이 스킬 안에서 에이전트를 메인 대화에서 직접 부르지 않는다.** 예외는 없다.
102
102
 
103
- 에이전트가 서는 자리는 세 갈래다.
103
+ 에이전트는 아래 자리에서 선다.
104
104
 
105
105
  | 자리 | 누가 부르나 |
106
106
  | --- | --- |
@@ -116,7 +116,7 @@ outputs:
116
116
 
117
117
  **그 조건은 사용자가 이 스킬을 부른 시점에 이미 충족됐다.** 리뷰 루프가 이 스킬의 본체이고 리뷰는 에이전트 없이 성립하지 않는다. 라운드마다 다시 묻지 않는다.
118
118
 
119
- 다만 위임을 **못 하게** 된 경우는 다르다. 그때는 [`../_shared/agent-delegation.md`](../_shared/agent-delegation.md)의 실패 갈래를 따른다. 메인에서 직접 수행하는 폴백을 썼으면 그 사실을 완료 보고에 적는다. 페르소나 없이 임의로 리뷰하는 갈래는 어느 경우에도 없다.
119
+ 다만 위임을 **못 하게** 된 경우는 다르다. 그때는 [`../_shared/agent-delegation.md`](../_shared/agent-delegation.md)의 실패 경로를 따른다. 메인에서 직접 수행하는 폴백을 썼으면 그 사실을 완료 보고에 적는다. 페르소나 없이 임의로 리뷰하는 경로는 어느 경우에도 없다.
120
120
 
121
121
  ## 멈추는 자리
122
122
 
@@ -332,7 +332,7 @@ fi
332
332
  git hash-object "$(cat "$shipTmp/verify-src")" > "$shipTmp/verify-src-hash"
333
333
  ```
334
334
 
335
- Phase 0에서 4번 갈래(사용자가 직접 준 명령) 정했으면 `verify-src`가 없으므로 이 절 전체를 건너뛴다.
335
+ Phase 0에서 4번(사용자가 직접 준 명령)으로 정했으면 `verify-src`가 없으므로 이 절 전체를 건너뛴다.
336
336
 
337
337
  게슈탈트 레포에서는 1번에 걸려 `pnpm gate`가 된다. 아래 예시는 전부 그 경우다.
338
338
 
@@ -346,7 +346,7 @@ Phase 0에서 4번 갈래(사용자가 직접 준 명령)로 정했으면 `verif
346
346
 
347
347
  `agent:ship`으로 남기려면 **이 스킬이 부르는 하위 스킬의 `gestalt pr` 호출까지 그 값이 실린다는 확증**이 있어야 한다. 셸 상태가 도구 호출 사이에 안 남는 런타임이면 `export` 한 줄로는 안 된다. 확증이 없으면 안 쓴다 — **한쪽에만 붙이는 게 제일 나쁘다.**
348
348
 
349
- **이 문서의 `gestalt pr` 예시에는 액터가 안 붙어 있다.** 기본 갈래를 그대로 보인 것이다. `agent:ship`을 고르면 네 자리 전부에 `GESTALT_ACTOR=agent:ship`을 앞에 붙인다 — `pr create`, `pr update` 둘, `pr close`다. **넷 다 붙이거나 넷 다 안 붙인다.**
349
+ **이 문서의 `gestalt pr` 예시에는 액터가 안 붙어 있다.** 기본 형태를 그대로 보인 것이다. `agent:ship`을 고르면 네 자리 전부에 `GESTALT_ACTOR=agent:ship`을 앞에 붙인다 — `pr create`, `pr update` 둘, `pr close`다. **넷 다 붙이거나 넷 다 안 붙인다.**
350
350
 
351
351
  ### 명령 형태
352
352
 
@@ -510,7 +510,7 @@ gestalt pr update <id> --head "$(git rev-parse HEAD)"
510
510
  라인 수정으로는 부족합니다. 스펙을 다시 정리할지, 이 이슈를 받아들이고 설계를 고칠지 정해주세요.
511
511
  ```
512
512
 
513
- **결함 이슈가 함께 있으면 그것만 먼저 고치고 다시 판정받는 갈래는 쓰지 않는다.** 정합 심급이 Block인 채로 결함만 고치면 다음 라운드도 Block이다.
513
+ **결함 이슈가 함께 있으면 그것만 먼저 고치고 다시 판정받는 경로는 쓰지 않는다.** 정합 심급이 Block인 채로 결함만 고치면 다음 라운드도 Block이다.
514
514
 
515
515
  ## 승인 단계 ⓐ — GitHub에 올릴지
516
516
 
@@ -586,7 +586,7 @@ gh api "repos/{owner}/{repo}/pulls/<prNumber>/requested_reviewers" --jq '[.users
586
586
 
587
587
  그때는 **멈추고 알린다.** 무엇을 확인해야 하는지 함께 적는다 — 레포 Settings의 Copilot 항목과 계정 구독이다. **Copilot 리뷰를 못 받았는데 받은 것처럼 넘어가지 않는다.** 사용자가 리뷰 없이 진행하기로 하면 승인 단계 ⓒ로 가되 `copilotRounds`를 0으로 적고 완료 보고에 그 사실을 남긴다.
588
588
 
589
- Copilot이 리뷰를 이미 시작해 요청 목록에서 빠졌을 수도 있다. 그 경우는 4.2의 판정에 걸리므로, 목록이 비었으면 **한 번은 4.2로 내려가 보고** 거기서도 아무것도 안 오면 위의 갈래로 간다.
589
+ Copilot이 리뷰를 이미 시작해 요청 목록에서 빠졌을 수도 있다. 그 경우는 4.2의 판정에 걸리므로, 목록이 비었으면 **한 번은 4.2로 내려가 보고** 거기서도 아무것도 안 오면 위의 경우로 간다.
590
590
 
591
591
  ### 4.2 완료 대기
592
592
 
@@ -701,7 +701,7 @@ Copilot 리뷰 수렴 ({N}라운드)
701
701
 
702
702
  ## Phase 5 — 마무리
703
703
 
704
- **ⓒ에서 "바꾼다"를 고른 경우에만 ready로 옮긴다.** "draft로 둔다"면 이 줄을 건너뛰고 `prState`를 `draft`로 둔다. 아래 로컬 PR 종료와 상태 정리는 어느 갈래든 그대로 한다.
704
+ **ⓒ에서 "바꾼다"를 고른 경우에만 ready로 옮긴다.** "draft로 둔다"면 이 줄을 건너뛰고 `prState`를 `draft`로 둔다. 아래 로컬 PR 종료와 상태 정리는 어느 쪽이든 그대로 한다.
705
705
 
706
706
  ```bash
707
707
  gh pr ready <prNumber>
@@ -78,7 +78,7 @@ export declare function loadCases(path: string): EvalCase[];
78
78
  * 케이스가 직접 적은 기대. 축 여섯이 못 보는 자리를 케이스마다 따로 잡는다.
79
79
  *
80
80
  * 있어야 할 말과 있으면 안 되는 말만 본다. 이걸 늘리기 시작하면 케이스 파일이 두 번째
81
- * 룰북이 되므로 두 갈래로 묶어 둔다.
81
+ * 룰북이 되므로 두 종류로 묶어 둔다.
82
82
  */
83
83
  export declare function scoreAssertions(explanation: string, testCase: EvalCase): EvalAxisResult;
84
84
  /** --b 를 안 주면 이 자리가 베이스라인이다. 에이전트 프롬프트 없이 그냥 시킨다 */
@@ -60,7 +60,7 @@ export function loadCases(path) {
60
60
  * 케이스가 직접 적은 기대. 축 여섯이 못 보는 자리를 케이스마다 따로 잡는다.
61
61
  *
62
62
  * 있어야 할 말과 있으면 안 되는 말만 본다. 이걸 늘리기 시작하면 케이스 파일이 두 번째
63
- * 룰북이 되므로 두 갈래로 묶어 둔다.
63
+ * 룰북이 되므로 두 종류로 묶어 둔다.
64
64
  */
65
65
  export function scoreAssertions(explanation, testCase) {
66
66
  const missing = testCase.assertions.mustMention.filter((word) => !explanation.includes(word));
@@ -20,6 +20,13 @@ export declare const SCAN_EXIT: {
20
20
  readonly clean: 10;
21
21
  /** 어투는 안 걸렸고 맞춤법만 걸렸다. 어투를 건드리지 말고 그것만 고치는 자리다 */
22
22
  readonly spacingOnly: 11;
23
+ /**
24
+ * 인용을 빼고 나니 검사할 산문이 안 남았다.
25
+ *
26
+ * clean 과 갈라 둔다. 코멘트를 통째로 인용으로 감싸면 이 상태가 되는데, 그걸 10으로
27
+ * 내면 게이트가 통과로 읽어 어투 검사를 우회하는 길이 열린다
28
+ */
29
+ readonly allQuoted: 12;
23
30
  };
24
31
  export declare function humanizeScanCommand(options: HumanizeScanOptions): void;
25
32
  //# sourceMappingURL=humanize-scan.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"humanize-scan.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/humanize-scan.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS;IACpB,0BAA0B;;IAE1B,4CAA4C;;IAE5C,kDAAkD;;CAE1C,CAAC;AAEX,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAetE"}
1
+ {"version":3,"file":"humanize-scan.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/humanize-scan.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS;IACpB,0BAA0B;;IAE1B,4CAA4C;;IAE5C,kDAAkD;;IAElD;;;;;OAKG;;CAEK,CAAC;AAEX,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAqBtE"}
@@ -1,4 +1,4 @@
1
- import { EXIT_CODE, formatScan, parseRegister, scan } from '../../humanize/index.js';
1
+ import { EXIT_CODE, formatScan, isRulebookPath, parseRegister, scan, } from '../../humanize/index.js';
2
2
  import { isReadFailure, readInput } from '../../humanize/read-input.js';
3
3
  /**
4
4
  * 스캔 결과의 종료 코드.
@@ -17,6 +17,13 @@ export const SCAN_EXIT = {
17
17
  clean: 10,
18
18
  /** 어투는 안 걸렸고 맞춤법만 걸렸다. 어투를 건드리지 말고 그것만 고치는 자리다 */
19
19
  spacingOnly: 11,
20
+ /**
21
+ * 인용을 빼고 나니 검사할 산문이 안 남았다.
22
+ *
23
+ * clean 과 갈라 둔다. 코멘트를 통째로 인용으로 감싸면 이 상태가 되는데, 그걸 10으로
24
+ * 내면 게이트가 통과로 읽어 어투 검사를 우회하는 길이 열린다
25
+ */
26
+ allQuoted: 12,
20
27
  };
21
28
  export function humanizeScanCommand(options) {
22
29
  const input = readInput(options.file);
@@ -25,12 +32,19 @@ export function humanizeScanCommand(options) {
25
32
  process.exit(EXIT_CODE.unknown);
26
33
  }
27
34
  const text = input;
28
- const report = scan(text, { register: parseRegister(options.register) });
35
+ // 스캔을 끌지는 경로로 정한다. 플래그로 받으면 검사를 끄는 스위치가 밖에 생겨
36
+ // 리뷰 대상 텍스트가 그걸 붙이라고 시키는 자리가 열린다
37
+ const report = scan(text, {
38
+ register: parseRegister(options.register),
39
+ skipTables: isRulebookPath(options.file),
40
+ });
29
41
  console.log(options.json ? JSON.stringify(report, null, 2) : formatScan(report));
30
42
  // 맞춤법만 걸린 원고를 clean 으로 닫으면 "윤문하지 않는다"로 읽혀 그대로 나간다.
31
43
  // 어투 0건과 맞춤법만 있는 상태는 다음 할 일이 달라서 코드를 가른다
32
44
  if (report.worthHumanizing)
33
45
  process.exit(SCAN_EXIT.found);
46
+ if (report.allQuoted)
47
+ process.exit(SCAN_EXIT.allQuoted);
34
48
  process.exit(report.spacing.length > 0 ? SCAN_EXIT.spacingOnly : SCAN_EXIT.clean);
35
49
  }
36
50
  //# sourceMappingURL=humanize-scan.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"humanize-scan.js","sourceRoot":"","sources":["../../../../src/cli/commands/humanize-scan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAQxE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,0BAA0B;IAC1B,KAAK,EAAE,CAAC;IACR,4CAA4C;IAC5C,KAAK,EAAE,EAAE;IACT,kDAAkD;IAClD,WAAW,EAAE,EAAE;CACP,CAAC;AAEX,MAAM,UAAU,mBAAmB,CAAC,OAA4B;IAC9D,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC;IAEnB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEzE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACjF,mDAAmD;IACnD,yCAAyC;IACzC,IAAI,MAAM,CAAC,eAAe;QAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC1D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACpF,CAAC"}
1
+ {"version":3,"file":"humanize-scan.js","sourceRoot":"","sources":["../../../../src/cli/commands/humanize-scan.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,UAAU,EACV,cAAc,EACd,aAAa,EACb,IAAI,GACL,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAQxE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,0BAA0B;IAC1B,KAAK,EAAE,CAAC;IACR,4CAA4C;IAC5C,KAAK,EAAE,EAAE;IACT,kDAAkD;IAClD,WAAW,EAAE,EAAE;IACf;;;;;OAKG;IACH,SAAS,EAAE,EAAE;CACL,CAAC;AAEX,MAAM,UAAU,mBAAmB,CAAC,OAA4B;IAC9D,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,IAAI,GAAG,KAAK,CAAC;IAEnB,gDAAgD;IAChD,iCAAiC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE;QACxB,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC;QACzC,UAAU,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC;KACzC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACjF,mDAAmD;IACnD,yCAAyC;IACzC,IAAI,MAAM,CAAC,eAAe;QAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC1D,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACxD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACpF,CAAC"}
@@ -88,7 +88,7 @@ export declare function prCloseCommand(opts: PrCommonOptions & {
88
88
  * `gestalt pr prune` — 붙잡아 둘 이유가 끝난 ref를 놓는다.
89
89
  *
90
90
  * `refs/gestalt/` 아래는 지금까지 늘기만 했다. 무엇을 언제 놓는지는 엔진의 `prune`
91
- * 주석에 있다. 되돌릴 수 없는 갈래(체크아웃 자국) `--checkouts`로 뜻을 밝혀야 놓는다.
91
+ * 주석에 있다. 되돌릴 수 없는 (체크아웃 자국) `--checkouts`로 뜻을 밝혀야 놓는다.
92
92
  */
93
93
  export declare function prPruneCommand(opts: PrCommonOptions & {
94
94
  checkouts?: boolean;
@@ -110,7 +110,7 @@ export declare function prPruneCommand(opts: PrCommonOptions & {
110
110
  * 목록에 넣는 호출 자체는 `local-pr-web/engine.ts`에 있다. 거기서 "cwd만 등록하고
111
111
  * 나머지는 조회만"으로 가르는 게 더 좁은 문이지만 그건 이 파일 밖이다.
112
112
  *
113
- * 서버를 안 띄우고 이 판단만 볼 수 있게 내보낸다. 통과 갈래를 `prServeCommand`로
113
+ * 서버를 안 띄우고 이 판단만 볼 수 있게 내보낸다. 통과 경로를 `prServeCommand`로
114
114
  * 확인하려면 진짜 서버가 떠 버린다.
115
115
  */
116
116
  export declare function assertServeRoot(repoRoot: string): void;
@@ -40,13 +40,13 @@ function summarize(pr) {
40
40
  const round = pr.rounds[pr.rounds.length - 1].number;
41
41
  return `${pr.id} [${pr.status}] ${pr.title} (라운드 ${round}, 미해결 ${unresolved})`;
42
42
  }
43
- /** 오류를 종료 코드로 옮긴다. 에이전트가 stdout을 안 읽고도 갈래를 탄다 */
43
+ /** 오류를 종료 코드로 옮긴다. 에이전트가 stdout을 안 읽고도 분기한다 */
44
44
  function run(fn) {
45
45
  try {
46
46
  fn();
47
47
  }
48
48
  catch (e) {
49
- // `process.exit`이 여기서 흐름을 끊는 건 런타임의 성질이지 이 갈래가 한 약속이
49
+ // `process.exit`이 여기서 흐름을 끊는 건 런타임의 성질이지 이 함수가 한 약속이
50
50
  // 아니다. 갈라 두지 않으면 테스트가 exit을 가로챌 때 두 번 나간다
51
51
  if (e instanceof PrError) {
52
52
  console.error(e.message);
@@ -175,8 +175,8 @@ export function prCheckoutCommand(opts) {
175
175
  }
176
176
  });
177
177
  // 안 지운 건 실패가 아니라 판단을 되돌려준 것이다. 에이전트가 종료 코드로
178
- // 갈래를 타게 4(상태 충돌)를 준다. 지킨 갈래는 `dirty`, `diverged`, `stale`
179
- // 셋이고 앞으로 늘 수 있다. 그 셋을 나열하는 대신 "지운 두 갈래가 아니면"으로
178
+ // 분기하게 4(상태 충돌)를 준다. 지킨 쪽은 `dirty`, `diverged`, `stale`
179
+ // 셋이고 앞으로 늘 수 있다. 그 셋을 나열하는 대신 "지운 두 값이 아니면"으로
180
180
  // 적는다. `absent`를 뺀 이유는 지울 자리가 없는 게 정리의 목표가 이미 이뤄진
181
181
  // 상태여서다. 4로 주면 `--remove`를 두 번 부르는 `set -e` 스크립트가 두 번째에
182
182
  // 죽는다. 이 갈림은 --json의 status로도 읽을 수 있다 — 산문 reason을 부분
@@ -363,7 +363,7 @@ export function prCloseCommand(opts) {
363
363
  * `gestalt pr prune` — 붙잡아 둘 이유가 끝난 ref를 놓는다.
364
364
  *
365
365
  * `refs/gestalt/` 아래는 지금까지 늘기만 했다. 무엇을 언제 놓는지는 엔진의 `prune`
366
- * 주석에 있다. 되돌릴 수 없는 갈래(체크아웃 자국) `--checkouts`로 뜻을 밝혀야 놓는다.
366
+ * 주석에 있다. 되돌릴 수 없는 (체크아웃 자국) `--checkouts`로 뜻을 밝혀야 놓는다.
367
367
  */
368
368
  export function prPruneCommand(opts) {
369
369
  run(() => {
@@ -403,7 +403,7 @@ export function prPruneCommand(opts) {
403
403
  * 목록에 넣는 호출 자체는 `local-pr-web/engine.ts`에 있다. 거기서 "cwd만 등록하고
404
404
  * 나머지는 조회만"으로 가르는 게 더 좁은 문이지만 그건 이 파일 밖이다.
405
405
  *
406
- * 서버를 안 띄우고 이 판단만 볼 수 있게 내보낸다. 통과 갈래를 `prServeCommand`로
406
+ * 서버를 안 띄우고 이 판단만 볼 수 있게 내보낸다. 통과 경로를 `prServeCommand`로
407
407
  * 확인하려면 진짜 서버가 떠 버린다.
408
408
  */
409
409
  export function assertServeRoot(repoRoot) {
@@ -1 +1 @@
1
- {"version":3,"file":"pr.js","sourceRoot":"","sources":["../../../../src/cli/commands/pr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pr.js","sourceRoot":"","sources":["../../../../src/cli/commands/pr.ts"],"names":[],"mappings":"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"}
@@ -121,7 +121,7 @@ export class EventStore {
121
121
  //
122
122
  // rowid 하나로 충분하다. append는 INSERT 한 번이고 sqlite의 rowid는 그때마다
123
123
  // 단조 증가한다 — 이건 문서화된 성질이다. 삽입 순서가 곧 재생 순서다. 이 테이블은
124
- // 붙이기만 하고 지우는 자리가 없어서 최대 rowid가 재사용되는 갈래도 안 열린다.
124
+ // 붙이기만 하고 지우는 자리가 없어서 최대 rowid가 재사용되는 경우도 안 열린다.
125
125
  //
126
126
  // 겸사겸사 이 쿼리에서는 정렬이 사라진다. timestamp를 앞에 두면 이 절을 받쳐 줄
127
127
  // 인덱스가 없어 sqlite가 매번 임시 b-tree를 세웠다. rowid만 남기면
@@ -196,19 +196,19 @@ function checkGrounding(grounding) {
196
196
  /**
197
197
  * audience.md 의 비유 표지 표와 같은 목록이다. 한쪽만 고치면 문서와 검사가 갈라진다.
198
198
  *
199
- * 한 갈래를 넣을 때 활용형을 함께 적는다. '라고 생각하면'만 있던 동안 "여러 사람이 같은
199
+ * 한 종류를 넣을 때 활용형을 함께 적는다. '라고 생각하면'만 있던 동안 "여러 사람이 같은
200
200
  * 공책에 동시에 적는다고 생각해보세요"가 outsider 에서 채택 금지를 받았다. 같은 대입
201
- * 갈래인데 활용형 하나만 목록에 있어서다.
201
+ * 종류인데 활용형 하나만 목록에 있어서다.
202
202
  *
203
203
  * **활용형을 어간까지만 자르지 않는다.** '생각해보'와 '떠올려'와 '상상해'까지만 적어 보니
204
204
  * "곰곰이 생각해보니", "상상해 본 적 없다" 같은 비유 없는 문장이 전부 통과했다. 셋 다
205
- * 비유 갈래에 묶인 말이 아니라 한국어 산문에 흔한 동사 어간이라서다. outsider 와 nontech
205
+ * 비유 표지에 묶인 말이 아니라 한국어 산문에 흔한 동사 어간이라서다. outsider 와 nontech
206
206
  * 에게 이 축은 유일한 필수 관문이라(coverage 는 off, grounding 은 warn 까지) 그 바닥이
207
207
  * 0 으로 내려갔다.
208
208
  *
209
209
  * 대입은 인용형 '-다고'와 '-라고'까지 적는다. '고'까지만 적으면 그것도 모자란다 — 어떤
210
210
  * 연결어미든 뒤에 붙으므로 "밥을 먹고 생각해보니"가 그대로 통과한다. 그려보기는 보조용언
211
- * '보'를 요구한다. 어느 쪽이든 앞뒤로 자기 갈래를 가리키는 말이 하나는 붙어 있어야 한다.
211
+ * '보'를 요구한다. 어느 쪽이든 앞뒤로 자기 종류를 가리키는 말이 하나는 붙어 있어야 한다.
212
212
  *
213
213
  * 띄어쓰기는 두 꼴을 다 적는다 — 한글 맞춤법이 보조용언 띄어쓰기를 양쪽 다 허용한다.
214
214
  */
@@ -31,7 +31,7 @@ const EXTRACTORS = [
31
31
  { kind: 'acronym', re: /\b[A-Z][A-Z0-9]+\b/g },
32
32
  ];
33
33
  /**
34
- * 핵심어 순위에서 갈래가 갖는 무게.
34
+ * 핵심어 순위에서 종류가 갖는 무게.
35
35
  *
36
36
  * 건수가 같을 때 경로를 뒤로 미룬다. 스택 트레이스는 같은 경로를 여러 줄에 흘리는데 그게
37
37
  * 그 글의 주제인 경우는 드물다. 사람이 붙잡는 건 대개 에러 이름이나 함수 이름 쪽이다.
@@ -106,7 +106,7 @@ function boundaryOk(text, start, term) {
106
106
  */
107
107
  const MAX_CANDIDATES = 1000;
108
108
  /**
109
- * 원문에 나온 전문용어 후보. 같은 말이 여러 꼴에 걸리면 먼저 걸린 갈래로 둔다.
109
+ * 원문에 나온 전문용어 후보. 같은 말이 여러 꼴에 걸리면 먼저 걸린 종류로 둔다.
110
110
  *
111
111
  * 여기서 세는 건 정규식이 걸린 횟수라 실제 출현 수와 다를 수 있다 — 긴 용어에 먹히는
112
112
  * 자리를 아직 안 걸렀기 때문이다. 상한을 넘겼을 때 무엇을 남길지 고르는 데만 쓰고
@@ -254,7 +254,7 @@ function byWeight(a, b) {
254
254
  return b.count - a.count;
255
255
  if (KIND_RANK[a.kind] !== KIND_RANK[b.kind])
256
256
  return KIND_RANK[a.kind] - KIND_RANK[b.kind];
257
- // 같은 갈래면 짧은 쪽이 개념 이름일 확률이 높다. 긴 쪽은 대개 그 개념이 놓인 자리다
257
+ // 같은 종류면 짧은 쪽이 개념 이름일 확률이 높다. 긴 쪽은 대개 그 개념이 놓인 자리다
258
258
  if (a.text.length !== b.text.length)
259
259
  return a.text.length - b.text.length;
260
260
  return a.text.localeCompare(b.text);
@@ -4,7 +4,7 @@
4
4
  * 여기 있는 건 정규식으로 셀 수 있는 룰뿐이다. D-5 의인화 주어처럼 뜻을 봐야 판단되는
5
5
  * 룰은 일부러 뺐다 — 멀쩡한 문장에서 검사가 멈추면 아무도 안 쓴다.
6
6
  *
7
- * 전부 정확히 걸러내지는 못한다. 잘못 감지나 미탐이 남는 갈래는자리 주석이 어디까지 잡고
7
+ * 전부 정확히 걸러내지는 못한다. 잘못 감지나 미탐이 남는 자리는 그 주석이 어디까지 잡고
8
8
  * 어디부터 놓치는지 적고 코퍼스가 그 경계를 잡는다.
9
9
  * 탐지기가 없는 룰은 모델이 자체검증으로 본다.
10
10
  */
@@ -18,21 +18,53 @@ export interface ProseLine {
18
18
  number: number;
19
19
  }
20
20
  export interface ProseOptions {
21
- /** 인용줄을 뺀다. 보고 본문 어미처럼 작성자 말투가 아닌 걸 셀 때만 쓴다 */
21
+ /**
22
+ * `>` 인용줄을 뺀다.
23
+ *
24
+ * 보고 본문 어미처럼 작성자 말투가 아닌 걸 셀 때 쓰고, 리뷰 코멘트와 답글 검사도 켠다 —
25
+ * 거기서 인용은 남이 쓴 원문이라 어휘를 고치라고 할 자리가 아니다.
26
+ */
22
27
  excludeQuotes?: boolean;
23
28
  }
29
+ export interface DetectOptions extends ProseOptions {
30
+ /**
31
+ * 표 셀을 안 본다.
32
+ *
33
+ * 룰 문서를 검사하는 자리에서 켠다. 그 표는 "쓰지 말 것" 칸에 금지어를 그대로 적는 게
34
+ * 존재 이유라 전부 위반으로 걸린다. 검사기는 경로를 모르므로 호출자가 정한다 —
35
+ * `humanize-scan --skip-tables` 와 `verify-rule-refs.ts` 의 `isRulebook()` 이 그 자리다.
36
+ */
37
+ skipTables?: boolean;
38
+ }
39
+ /** 산문 줄과 표 줄. 코드펜스 판정을 한 번만 돌려 둘로 가른다 */
40
+ export interface SplitLines {
41
+ prose: ProseLine[];
42
+ table: ProseLine[];
43
+ /**
44
+ * `excludeQuotes` 로 버린 인용 줄 수.
45
+ *
46
+ * 게이트가 "인용만 있어 볼 게 없는" 상태를 가르려고 센다. 코멘트를 통째로 `>` 로 감싸면
47
+ * 산문이 0줄이 되어 걸릴 게 없는 것과 구분이 안 가는데, 그 둘은 정반대다.
48
+ */
49
+ droppedQuotes: number;
50
+ }
24
51
  /**
25
- * 룰을 적용할 산문 줄만 남긴다.
52
+ * 입력을 산문 줄과 표 줄로 가른다.
26
53
  *
27
54
  * 코드펜스는 언어 태그가 붙었을 때만 코드로 본다. 태그 없는 펜스에는 실행 코드가 아니라
28
55
  * 서브에이전트가 지시로 읽는 한글 산문이 들어 있어서, 통째로 빼면 그 안의 S1이 그대로 빠져나간다.
29
56
  * 인용줄도 마커만 떼고 산문으로 본다 — 스킬 문서 상단 규칙 블록이 전부 인용이라 빼면 검사가 비는다.
30
- * 표는 항목 압축이라 그대로 뺀다.
57
+ *
58
+ * **표 줄을 여기서 함께 가른다.** 표만 따로 훑으려고 원문을 다시 파싱하면 이 fence 판정이
59
+ * 두 곳으로 갈라진다. 실제로 그렇게 만들었다가 태그 붙은 펜스 안의 표 예시가 어휘 룰에
60
+ * 걸렸다 — 문서가 표를 코드로 인용한 자리인데 검사는 진짜 표로 봤다.
31
61
  */
62
+ export declare function splitLines(text: string, options?: ProseOptions): SplitLines;
63
+ /** 룰을 적용할 산문 줄만 남긴다. 표는 항목 압축이라 여기서 빠진다 */
32
64
  export declare function proseLines(text: string, options?: ProseOptions): ProseLine[];
33
65
  export declare function splitSentences(text: string): string[];
34
66
  export declare const DETECTABLE_RULE_IDS: string[];
35
- export declare function detect(text: string, ruleIds?: readonly string[]): Detection[];
67
+ export declare function detect(text: string, ruleIds?: readonly string[], options?: DetectOptions): Detection[];
36
68
  /** 맞춤법 한 건. 무엇이 틀렸고 무엇으로 고치는지, 몇 건인지와 실제 사례를 담는다 */
37
69
  export interface SpacingIssue {
38
70
  label: string;
@@ -69,15 +101,42 @@ export interface StructureStats {
69
101
  links: number;
70
102
  }
71
103
  export declare function structureStats(text: string): StructureStats;
104
+ /**
105
+ * 표 셀 안에서도 틀린 어휘 룰.
106
+ *
107
+ * 표를 산문에서 뺀 건 항목을 압축하는 자리라서다 — E-8 명사구 종결과 F-6 복합명사는
108
+ * 표 셀에서 정상 문법이다. 어휘가 틀린 건 자리를 안 가린다. 생물학 용어로 옮긴 mutant 는
109
+ * 표 안이라고 맞는 말이 되지 않는다.
110
+ *
111
+ * **여기 없는 어휘 룰은 빠진 이유가 각각 다르다.** C-12 가운뎃점은 룰북이 표를 예외로 적어 뒀다.
112
+ * B-3 음차는 탐지기 자체가 없어 넣어도 교집합에서 떨어진다 — 목록에 두면 표를 본다고
113
+ * 읽히지만 실제로는 한 건도 안 걸리는 죽은 항목이 된다. F-10과 I-5, I-6, D-1 은 표 셀에서
114
+ * 어떻게 걸리는지 코퍼스로 확인한 적이 없어 미뤘다. 넣을 때는 코퍼스 케이스를 함께 넣는다.
115
+ *
116
+ * **룰 문서의 예시 표는 이 스캔이 못 가린다.** ai-tell-quick-rules.md 의 대체어 표는
117
+ * "쓰지 말 것" 칸에 금지어를 그대로 적는 게 존재 이유인데 여기서는 위반으로 걸린다.
118
+ * 검사기가 경로를 모르므로 부르는 쪽이 끈다 — `humanize-scan --skip-tables` 와
119
+ * `verify-rule-refs.ts` 의 `isRulebook()` 이 그 자리다.
120
+ */
121
+ export declare const TABLE_SCANNED_RULE_IDS: readonly string[];
122
+ /**
123
+ * 표 줄에서 셀 구분자와 정렬행을 걷어낸다.
124
+ *
125
+ * 정렬행은 줄 전체 모양으로만 가른다. 표에서 몇 번째 줄인지는 안 보므로 모든 셀이
126
+ * `-` 나 공백뿐인 데이터 행도 함께 빠진다 — 플레이스홀더로 `-` 만 적은 행이 그렇다.
127
+ * 흔한 꼴이 아니라 그대로 뒀다.
128
+ */
129
+ export declare function tableCells(lines: readonly ProseLine[]): string;
72
130
  /**
73
131
  * 어투와 맞춤법을 한 산문 위에서 함께 본다.
74
132
  *
75
133
  * detect 와 spacingIssues 를 따로 부르면 줄 분할과 인용 제거가 두 번 돈다. 비용은 작지만
76
- * (500KB 입력에서 12%) 진짜 문제는 나중에 한쪽만 산문 기준이 바뀌면 어투와 맞춤법이 서로
77
- * 다른 텍스트를 보게 되는 것이다. 산문 정의를 여기 한 군데로 모은다.
134
+ * 진짜 문제는 나중에 한쪽만 산문 기준이 바뀌면 어투와 맞춤법이 서로 다른 텍스트를 보게 되는
135
+ * 것이다. 산문 정의를 여기 한 군데로 모은다. 그래서 splitLines 도 한 번만 돌려 나눠 쓴다.
78
136
  */
79
- export declare function scanProse(text: string, ruleIds?: readonly string[]): {
137
+ export declare function scanProse(text: string, ruleIds?: readonly string[], options?: DetectOptions): {
80
138
  detections: Detection[];
81
139
  spacing: SpacingIssue[];
140
+ allQuoted: boolean;
82
141
  };
83
142
  //# sourceMappingURL=detectors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"detectors.d.ts","sourceRoot":"","sources":["../../../src/humanize/detectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAgBD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,SAAS,EAAE,CAyBhF;AAgDD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAKrD;AA+LD,eAAO,MAAM,mBAAmB,EAAE,MAAM,EAAmC,CAAC;AAE5E,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EAAE,CAE7E;AAoBD,oDAAoD;AACpD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AA2BD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CAE1D;AAiBD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAE1F;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAcrE;AAeD,kCAAkC;AAClC,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAStD;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAE9E;AAID,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAS3D;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,GAC1B;IAAE,UAAU,EAAE,SAAS,EAAE,CAAC;IAAC,OAAO,EAAE,YAAY,EAAE,CAAA;CAAE,CAGtD"}
1
+ {"version":3,"file":"detectors.d.ts","sourceRoot":"","sources":["../../../src/humanize/detectors.ts"],"names":[],"mappings":"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"}