@tienne/gestalt 0.69.0 → 0.71.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.
- package/CLAUDE.md +1 -0
- package/README.md +1 -1
- package/dist/package.json +1 -1
- package/dist/plugin/role-agents/_shared/references/README.md +1 -1
- package/dist/plugin/role-agents/_shared/references/ai-tell-quick-rules.md +13 -9
- package/dist/plugin/role-agents/_shared/references/author-voice.md +8 -8
- package/dist/plugin/role-agents/_shared/references/style-guide.md +13 -0
- package/dist/plugin/role-agents/humanize-monolith/AGENT.md +89 -11
- package/dist/src/cli/commands/humanize-check.d.ts +2 -0
- package/dist/src/cli/commands/humanize-check.d.ts.map +1 -1
- package/dist/src/cli/commands/humanize-check.js +16 -11
- package/dist/src/cli/commands/humanize-check.js.map +1 -1
- package/dist/src/cli/commands/humanize-scan.d.ts +25 -0
- package/dist/src/cli/commands/humanize-scan.d.ts.map +1 -0
- package/dist/src/cli/commands/humanize-scan.js +36 -0
- package/dist/src/cli/commands/humanize-scan.js.map +1 -0
- package/dist/src/cli/index.d.ts.map +1 -1
- package/dist/src/cli/index.js +11 -0
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/core/types.d.ts +1 -1
- package/dist/src/humanize/check.d.ts +75 -7
- package/dist/src/humanize/check.d.ts.map +1 -1
- package/dist/src/humanize/check.js +241 -30
- package/dist/src/humanize/check.js.map +1 -1
- package/dist/src/humanize/detectors.d.ts +31 -2
- package/dist/src/humanize/detectors.d.ts.map +1 -1
- package/dist/src/humanize/detectors.js +197 -13
- package/dist/src/humanize/detectors.js.map +1 -1
- package/dist/src/humanize/index.d.ts +4 -3
- package/dist/src/humanize/index.d.ts.map +1 -1
- package/dist/src/humanize/index.js +4 -3
- package/dist/src/humanize/index.js.map +1 -1
- package/dist/src/humanize/read-input.d.ts +21 -0
- package/dist/src/humanize/read-input.d.ts.map +1 -0
- package/dist/src/humanize/read-input.js +51 -0
- package/dist/src/humanize/read-input.js.map +1 -0
- package/dist/src/humanize/rules.d.ts +12 -0
- package/dist/src/humanize/rules.d.ts.map +1 -1
- package/dist/src/humanize/rules.js +4 -0
- package/dist/src/humanize/rules.js.map +1 -1
- package/dist/src/humanize/scan.d.ts +37 -0
- package/dist/src/humanize/scan.d.ts.map +1 -0
- package/dist/src/humanize/scan.js +76 -0
- package/dist/src/humanize/scan.js.map +1 -0
- package/dist/src/mcp/schemas.js +1 -1
- package/package.json +1 -1
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/role-agents/_shared/references/README.md +1 -1
- package/plugin/role-agents/_shared/references/ai-tell-quick-rules.md +13 -9
- package/plugin/role-agents/_shared/references/author-voice.md +8 -8
- package/plugin/role-agents/_shared/references/style-guide.md +13 -0
- package/plugin/role-agents/humanize-monolith/AGENT.md +89 -11
package/CLAUDE.md
CHANGED
|
@@ -35,6 +35,7 @@ pnpm tsx bin/gestalt.ts status
|
|
|
35
35
|
pnpm tsx bin/gestalt.ts init # gestalt.json + code graph + post-commit hook
|
|
36
36
|
pnpm verify:rules # 룰북과 에이전트 문서의 룰 ID·심각도 정합 검사
|
|
37
37
|
pnpm build:output-style # 룰북 → ~/.claude/output-styles/tienne-voice.md 생성
|
|
38
|
+
pnpm tsx bin/gestalt.ts humanize-scan --file a.md --register chat # 걸린 룰만 추린다
|
|
38
39
|
pnpm tsx bin/gestalt.ts humanize-check --before a.md --after b.md --register report
|
|
39
40
|
```
|
|
40
41
|
|
package/README.md
CHANGED
|
@@ -60,7 +60,7 @@ The hardest part of building software isn't writing code — it's knowing what t
|
|
|
60
60
|
|
|
61
61
|
## Built with Gestalt, for Gestalt
|
|
62
62
|
|
|
63
|
-
This repository is developed using the `gestalt-develop` skill — the same pipeline you get when you install Gestalt. Every significant feature in [v0.26.0](#
|
|
63
|
+
This repository is developed using the `gestalt-develop` skill — the same pipeline you get when you install Gestalt. Every significant feature in [v0.26.0](CHANGELOG.md#0260---2026-06-14) was implemented through the Interview → Spec → Execute → Evolve loop:
|
|
64
64
|
|
|
65
65
|
- Memory → Interview feedback loop (prior specs auto-injected into new sessions)
|
|
66
66
|
- `execute-passthrough.ts` 1,296-line God File decomposed into 8 focused modules
|
package/dist/package.json
CHANGED
|
@@ -31,7 +31,7 @@ pnpm verify:rules
|
|
|
31
31
|
본문에 쓰면 산출물로 샌다. 금지어를 넣었으면 같은 문서를 grep한다.
|
|
32
32
|
- 어투 규칙은 **S1으로 올려야 실제로 강제된다.** S2는 모델이 우선순위를 알아서 정하면서 새어나간다.
|
|
33
33
|
- 심각도를 바꿀 때는 근거를 남긴다. A-2, I-1, C-8은 대조 코퍼스 측정으로 조정했고 그 근거가
|
|
34
|
-
룰북
|
|
34
|
+
[룰북 측정 근거](ai-tell-quick-rules.md#측정-근거)에 있다. 감으로 올리고 내리면 다음 사람이 되돌린다.
|
|
35
35
|
- 경로를 참조하는 자리가 여러 곳이다. 파일을 옮기거나 이름을 바꾸면 `plugin/` 전체에서
|
|
36
36
|
상대경로 참조를 다시 확인한다 (에이전트는 `../_shared/references/`, 에이전트의 `references/`
|
|
37
37
|
하위 문서는 `../../_shared/references/`, 스킬은 `../../role-agents/_shared/references/`).
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
**Do-NOT (탐지·윤문 모두 제외):** 고유명사, 제품명, 모델명, 기관명, 수치, 날짜, 단위, 큰따옴표 안 직접 인용, 법률 조문, 수학, 화학, 통계 표기, 영어 약어(LLM·GPU·MCP·API 등 업계 표준).
|
|
8
8
|
|
|
9
|
-
**약어 면제는 업계 표준에만 준다:** 풀어 썼을 때 안 굳어진 음차가 되는 약어는 면제 대상이 아니다. `SSOT`나 `SoT`를 그대로 두면 "소스 오브 트루스"를 약어로 우회한 것과 같다 — B-3로 우리말로 푼다. 무엇을 가리키느냐에 따라 말이 달라지므로 대체어 표는
|
|
9
|
+
**약어 면제는 업계 표준에만 준다:** 풀어 썼을 때 안 굳어진 음차가 되는 약어는 면제 대상이 아니다. `SSOT`나 `SoT`를 그대로 두면 "소스 오브 트루스"를 약어로 우회한 것과 같다 — B-3로 우리말로 푼다. 무엇을 가리키느냐에 따라 말이 달라지므로 대체어 표는 [style-guide.md의 single source of truth를 뭐라고 쓸까](style-guide.md#single-source-of-truth를-뭐라고-쓸까)에 둔다. LLM, API처럼 풀어 쓸 일이 없는 표준 약어만 그대로 둔다.
|
|
10
10
|
|
|
11
11
|
**굳어진 음차 화이트리스트 (B-3 제외 — 그대로 둔다):** 컴포넌트·토큰·커밋·인터페이스·메서드·빌드·디플로이·캐시·렌더링·콜백·프레임워크·라이브러리·리팩터링·마이그레이션·아이콘·레이아웃·그리드·모달·토스트·타이포그래피·플레이스홀더·프로젝트·스프린트·이슈·리뷰·머지·브랜치·사이드 이펙트·보일러플레이트·트레이드오프·딥다이브·얼라인·온보딩·소스·롤백·파싱·레지스트리·불릿 등 업계 정착어. 이 목록 밖의 안 굳어진 음차(소스 오브 트루스·룩 앤 필·로우 행잉 프룻 등)만 B-3로 교정한다.
|
|
12
12
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
**한자어를 피하는 게 목적이 아니다 (F-4·F-5 오적용 주의):** 겨냥하는 건 개념을 뭉친 **명사화**(-성/-적/-화)이지 한자어 동사가 아니다. "측정하다"를 "재다"로, "판단하다"를 "따지다"로 바꾸면 정확도만 잃는다. 그 자리의 정확한 말이 한자어면 한자어를 쓴다. 반대 방향 실수도 같다 — 한자어를 피하려고 비유 명사(축·증류)나 물리 동사(재다)로 도망가면 F-7에 걸린다. 셋 다 겪은 실례: `네 축을 따로 재고 판정한다` → `4가지 측면에서 각각 측정하고 판단한다`.
|
|
20
20
|
|
|
21
|
-
**근거가 붙은 룰 (→ 아래
|
|
21
|
+
**근거가 붙은 룰 (→ 아래 [측정 근거](#측정-근거)):** A-2, I-1, C-8은 대조 코퍼스 측정으로 심각도를 조정했고 B-4는 팀이 실제로 쓰는 말이라 예시에서 뺐다. 원어민이 오히려 더 쓰는 표현이나 팀에서 이미 굳은 말을 지우면 사람 글을 AI 글로 만든다.
|
|
22
22
|
|
|
23
23
|
---
|
|
24
24
|
|
|
@@ -48,9 +48,9 @@
|
|
|
48
48
|
|---|---|---|---|
|
|
49
49
|
| B-1 | 한글 + 괄호 영어 매번 ("~(Sovereign AI)" 처럼) | S2 | 첫 등장만 병기, 이후 한글만 |
|
|
50
50
|
| B-2 | 영어 어휘 직역 가능한데 그대로 | S2 | 한국어로 옮기되 업계 표준은 유지 |
|
|
51
|
-
| B-3 | 안 굳어진 영어 구·단어 음차 표기 ("소스 오브 트루스"), 그 음차를 약어로 우회한 표기(`SSOT`·`SoT`) | S1 | 한글 의역 + 첫 등장만 원어 괄호 병기("기준 문서(source of truth)", "단일 기준점(source of truth)" 등), 이후 한글만. 단 위 "굳어진 음차 화이트리스트"에 있는 정착어는 Do-NOT — of/and 등 기능어까지 통째 음차한 구(룩 앤 필·로우 행잉 프룻)가 최우선 대상. 무엇을 가리키는지 보고 고르는 표는
|
|
52
|
-
| B-4 | 영어 개념을 어색하게 옮긴 조어("생산처" ← producer, "응답처") | S2 | 억지 신조어 대신 이미 쓰이는 말로. 코드 맥락이면 "호출부"·"사용처". **팀에서 이미 굳은 조어는 예외** — "소비처"는 팀 지라 티켓에서 라이브러리를 가져다 쓰는 쪽을 가리키는 말로 정착했으므로 교정 대상이 아니다 (→ 아래
|
|
53
|
-
| B-5 | 영어 추상 개념어를 사전 첫 뜻으로 옮겨 레지스터가 어긋난 말 (materialize → "물질화", semantics → "의미론", virtue → "미덕", durably → "내구성 있게") | S1 | 그 자리에서 실제로 무슨 일이 벌어지는지를 동사로 쓴다. 아래
|
|
51
|
+
| B-3 | 안 굳어진 영어 구·단어 음차 표기 ("소스 오브 트루스"), 그 음차를 약어로 우회한 표기(`SSOT`·`SoT`) | S1 | 한글 의역 + 첫 등장만 원어 괄호 병기("기준 문서(source of truth)", "단일 기준점(source of truth)" 등), 이후 한글만. 단 위 "굳어진 음차 화이트리스트"에 있는 정착어는 Do-NOT — of/and 등 기능어까지 통째 음차한 구(룩 앤 필·로우 행잉 프룻)가 최우선 대상. 무엇을 가리키는지 보고 고르는 표는 [style-guide.md의 single source of truth를 뭐라고 쓸까](style-guide.md#single-source-of-truth를-뭐라고-쓸까)를 따른다 |
|
|
52
|
+
| B-4 | 영어 개념을 어색하게 옮긴 조어("생산처" ← producer, "응답처") | S2 | 억지 신조어 대신 이미 쓰이는 말로. 코드 맥락이면 "호출부"·"사용처". **팀에서 이미 굳은 조어는 예외** — "소비처"는 팀 지라 티켓에서 라이브러리를 가져다 쓰는 쪽을 가리키는 말로 정착했으므로 교정 대상이 아니다 (→ 아래 [측정 근거](#측정-근거)) |
|
|
53
|
+
| B-5 | 영어 추상 개념어를 사전 첫 뜻으로 옮겨 레지스터가 어긋난 말 (materialize → "물질화", semantics → "의미론", virtue → "미덕", durably → "내구성 있게") | S1 | 그 자리에서 실제로 무슨 일이 벌어지는지를 동사로 쓴다. 아래 [B-5 대체어](#b-5-대체어) 표 참조. 음차로 도망가지 않는다 — "머티리얼라이즈"로 바꾸면 B-3에 걸린다 |
|
|
54
54
|
|
|
55
55
|
### B-5 대체어
|
|
56
56
|
|
|
@@ -91,7 +91,8 @@
|
|
|
91
91
|
| D-5 | 의인화 추상 주어("기술이 묻는다·시대가 부른다") | S1 | 사람·기관 주어로 |
|
|
92
92
|
| D-6 | 결말 공식 "~할 때다/~해야 한다/~지금이야말로" | S1 | 삭제하고 **원문에 이미 있는 가장 구체적인 문장으로 끝낸다.** 더 나은 마무리 문장으로 고쳐쓰지 말고, 리듬을 살리려 하지도 않는다. 닫는 느낌이 꼭 필요하면 원문 근거만으로 쓸 수 있는 평서 한 줄(다음 할 일 등)까지만 |
|
|
93
93
|
| D-7 | 변환 공식 "X에서 Y로" 반복 | S2 | 한 번만, 나머지는 일반 서술 |
|
|
94
|
-
| D-8 | 과잉 자책, 감정 과장 반응("제일 아팠습니다·뼈아픕니다·부끄럽습니다·뜨끔했습니다") | S1 | 짧은 수긍으로 환원한다("아 그렇네요", "이거 놓쳤네요"). 사실 서술은 그대로 두고 감정 수식만 뺀다. D-4(hype 어휘)의 뒷면이다 — 칭찬 쪽만 막으면 같은 충동이 자책 쪽으로 샌다.
|
|
94
|
+
| D-8 | 과잉 자책, 감정 과장 반응("제일 아팠습니다·뼈아픕니다·부끄럽습니다·뜨끔했습니다") | S1 | 짧은 수긍으로 환원한다("아 그렇네요", "이거 놓쳤네요"). 사실 서술은 그대로 두고 감정 수식만 뺀다. D-4(hype 어휘)의 뒷면이다 — 칭찬 쪽만 막으면 같은 충동이 자책 쪽으로 샌다. 남긴 의견들 사이에 "제일"로 순위를 매기는 것도 여기 해당한다 |
|
|
95
|
+
| D-9 | 추상명사에 이동 동사("방향도 맞게 갔습니다", "결론이 그쪽으로 갔어요") | S2 / **대화·리뷰 S1** | 방향, 결론, 판단, 논의가 스스로 움직이게 두지 않는다. 사람이나 대상을 주어로 되돌린다("맞는 방향 같아요", "그렇게 결론 냈어요"). D-5 의인화 추상 주어의 사촌이다 |
|
|
95
96
|
|
|
96
97
|
## E. 리듬, 종결어미
|
|
97
98
|
|
|
@@ -109,6 +110,7 @@
|
|
|
109
110
|
| F-5 | "~적 N" 추상 체인 ("전략적 함의", "실천적 기반") | S2 / **대화·리뷰 S1** | 명사+명사 또는 풀어쓰기("전략 함의", "실천의 기반") |
|
|
110
111
|
| F-6 | 복합명사 압축 — 명사구를 조사·동사 없이 이어붙여 개념을 뭉침 ("시안 정합 버그픽스", "유지보수성 개선 작업", "권한 체크 로직") | S2 / **대화·리뷰 S1** | 동사·조사로 풀어 서술 ("디자인 시안과 다르게 렌더링되던 문제", "나중에 유지보수하기 편하게"). 사람은 압축 명사구 대신 무엇을 왜 했는지 풀어 말한다 |
|
|
111
112
|
| F-7 | 기술·이공계 비유 명사를 일상 대화에 그대로 (증류·배선·결정화·평탄화·오케스트레이션·파이프라인화·축 등, 화학·전기·수학 어휘의 비유 차용) | S2 / **대화·리뷰 S1** | 일상 동사·명사로 환원 (증류 → "추려내다/뽑아내다", 배선 → "연결하다/걸어두다", 결정화 → "정리하다", 평탄화 → "밋밋하게 만들다", **축 → "측면"**·"기준"). 문법은 멀쩡해 룰 매칭이 안 되지만 사람은 대화에서 안 쓴다. "네 축을 잰다"가 아니라 "4가지 측면에서 측정한다". **예외는 그 프로젝트가 개념에 붙인 이름일 때만이고, 그 개념을 다루는 자리에서만이다** — 게슈탈트의 "스펙 결정화"는 `similarity-crystallizer` 에이전트 이름이자 인터뷰→Spec 변환의 정의라서 두지만, 같은 말을 지라 티켓 작성처럼 무관한 자리에 끌어다 쓰면 F-7이다. 코드의 "파이프라인" 자체, 그래프의 x축도 같은 기준. **테스트를 자물쇠에 빗댄 "잠그다/잠근다/잠긴"도 여기 해당한다** — "경계마다 관련 테스트가 있다"처럼 쓴다 |
|
|
113
|
+
| F-8 | 추상명사에 물리 측량 동사("근거를 재봤는데", "판단을 재보고 있다", "근거를 재본 결과", "의견을 달아봤는데") | S2 / **대화·리뷰 S1** | 저울에 올린 게 아니라 검토한 것이다. 사람이 하는 행위 동사로 되돌린다("근거를 확인해봤는데", "의견을 검토해봤는데"). F-7 물리 동사 도피의 사촌이라 목적어가 근거, 의견, 판단, 영향, 의미, 가치, 리스크인 자리만 본다 — "온도를 재봤는데"는 대상이 아니다 |
|
|
112
114
|
|
|
113
115
|
## G. Hedging
|
|
114
116
|
|
|
@@ -135,7 +137,9 @@
|
|
|
135
137
|
| I-3 | "~다는 뜻이다/~다는 의미다" 결말 | S2 | 본문에 풀어 쓰기 |
|
|
136
138
|
| I-4 | 권고형 결말 "~해야 한다·~합니다" 반복 | S2 | 평서·단언으로 |
|
|
137
139
|
| I-5 | 사무투 분류사 "~ 건/해당 건/이번 건/그 건", 코드·문서 용어를 대화에 그대로("주석 건") | S2 / **대화·리뷰 S1** | 구체 명사로 풀기("Copilot이 짚은 주석 건" → "Copilot이 남긴 코멘트"). "건"은 공문서투 분류사라 대화에서 어색하다 |
|
|
138
|
-
| I-6 | 측량·사무투 명사 "실측·계측·산출·오탐" 등으로 판정·근거를 명사 하나로 압축 | S2 / **대화·리뷰 S1** | 동사로 풀어 말하기("레포 실측으로 1444개 중" → "레포 뒤져보니 1444개 중", "이건 오탐이에요" → "이건 잘못 감지한 거예요"). "잘못 걸리다"처럼 안 붙는 동사로 도망가지 말고 원래 짝이 맞는 동사(감지하다·측정하다)에 "잘못"을 붙인다 |
|
|
140
|
+
| I-6 | 측량·사무투 명사 "실측·계측·산출·오탐" 등으로 판정·근거를 명사 하나로 압축 (피동 "산출된다"도 같다. 파생어 예외는 "산출"에만 있다 — "산출물", "산출 근거", "산출도구"는 빠지고 "계측기", "실측값"은 걸린다. 서술격 "산출이에요"와 관형격 "산출의"는 탐지기가 못 본다) | S2 / **대화·리뷰 S1** | 동사로 풀어 말하기("레포 실측으로 1444개 중" → "레포 뒤져보니 1444개 중", "이건 오탐이에요" → "이건 잘못 감지한 거예요"). "잘못 걸리다"처럼 안 붙는 동사로 도망가지 말고 원래 짝이 맞는 동사(감지하다·측정하다)에 "잘못"을 붙인다 |
|
|
141
|
+
| I-7 | 리뷰 코멘트를 "지적"이라 부르기 ("지적 사항", "지적 N건", "지적했던 부분"처럼 뒤에 명사가 붙은 꼴도 같다. 코멘트가 아닌 일반 동사 용법 "원칙 위반을 지적하고", "논문이 지적한 점"은 예외. 탐지기가 어디까지 보고 어디서 새는지는 `src/humanize/detectors.ts` 의 I-7 주석과 코퍼스가 갖는다) | S2 / **대화·리뷰 S1** | 내가 남긴 건 "남겼던 의견"이나 "드렸던 의견", 상대가 남긴 건 "짚어주신 부분"이나 "남겨주신 의견"으로. "지적"은 상대를 잡아세우는 뉘앙스가 붙어 코멘트를 판정으로 만든다. 룰 원문은 [리뷰 코멘트를 "지적"이라고 부르지 않는다](author-voice.md#리뷰-코멘트를-지적이라고-부르지-않는다-ai-tell-i-7) 절이다 |
|
|
142
|
+
| I-8 | 형식명사 "수준"으로 정도 뭉개기("다듬는 수준", "확인만 하는 수준") | S2 / **대화·리뷰 S1** | "정도"를 쓰거나 형식명사를 빼고 동사로 푼다("가볍게 손보면 되는 것들"). "수준이 낮다"의 등급 어감이 딸려와 채점처럼 읽히기 때문이다. 남의 코드를 두고 쓰면 특히 그렇다. 등급을 실제로 말하는 자리("높은 수준의 격리")는 대상이 아니다 |
|
|
139
143
|
|
|
140
144
|
## J. 시각 장식
|
|
141
145
|
|
|
@@ -155,7 +159,7 @@
|
|
|
155
159
|
2. **변경률**: 30% 이하인가 (50% 초과는 작업 중단)
|
|
156
160
|
3. **장르 이탈 없음**: 칼럼이 에세이나 문학으로 변하지 않았는가, 리포트가 블로그체로 떨어지지 않았는가
|
|
157
161
|
4. **말투 보존**: 원문 격식체면 결과도 격식체. 평어체로 떨어뜨리지 않는다
|
|
158
|
-
5. **잔존 S1 패턴 0건**: A-1, A-3, A-7, A-8, A-16, B-3, B-5, C-5, C-8, C-10, C-11, C-12, D-1~D-6, D-8, H-1, H-3, J-2가 남아있지 않은가 (대화·리뷰 말투면 A-2, A-5, F-4, F-5, F-6, F-7, I-1, I-5, I-6도 S1로 포함)
|
|
162
|
+
5. **잔존 S1 패턴 0건**: A-1, A-3, A-7, A-8, A-16, B-3, B-5, C-5, C-8, C-10, C-11, C-12, D-1~D-6, D-8, H-1, H-3, J-2가 남아있지 않은가 (대화·리뷰 말투면 A-2, A-5, D-9, F-4, F-5, F-6, F-7, F-8, I-1, I-5, I-6, I-7, I-8도 S1로 포함)
|
|
159
163
|
6. **인공 표현 자제**: 원문에 없던 비유, 수사, 문학적 표현을 윤문 과정에서 임의로 추가하지 않았는가
|
|
160
164
|
7. **삭제 처방 준수**: D-2, D-3, D-4, D-6, C-10을 재작성으로 처리하지 않았는가. 마무리 문장, 부제, 수식어를 지우는 대신 더 그럴듯한 것으로 갈아끼운 자리가 없는가
|
|
161
165
|
|
|
@@ -174,7 +178,7 @@ gestalt humanize-check --before before.md --after after.md --register chat
|
|
|
174
178
|
변경률 2.8%인데 문장 3할이 갈려나간 사례가 있었다. **이 출력대로 판정하고 자기가 낸 값으로
|
|
175
179
|
덮어쓰지 않는다.** 측면별 임계와 탐지 대상 룰은 `src/humanize/`에 있다.
|
|
176
180
|
|
|
177
|
-
##
|
|
181
|
+
## 측정 근거
|
|
178
182
|
|
|
179
183
|
감으로 올리고 내린 심각도는 다음 사람이 되돌린다. 바꿀 때는 근거를 남긴다.
|
|
180
184
|
|
|
@@ -175,7 +175,7 @@ OO님 이거 타겟 브랜치를 변경해주셔야 할 것 같아요!
|
|
|
175
175
|
|
|
176
176
|
**"수준"으로 정도를 말하지 말 것.** "다듬는 수준", "확인만 하는 수준"처럼 쓰면 정도를 말하려던 게
|
|
177
177
|
채점처럼 읽힌다 — "수준이 낮다"의 등급 어감이 딸려오기 때문이다. 남의 코드를 두고 쓰면 특히 그렇다.
|
|
178
|
-
범위를 말할 때는 **"정도"** 를 쓰고 가능하면 형식명사를 빼고 동사로 푼다("가볍게 손보면 되는 것들").
|
|
178
|
+
범위를 말할 때는 **"정도"** 를 쓰고 가능하면 형식명사를 빼고 동사로 푼다("가볍게 손보면 되는 것들") (ai-tell I-8).
|
|
179
179
|
|
|
180
180
|
**목적어를 생략하지 말 것.** "한 가지만 작게 남겨요"처럼 무엇을 남기는지(코멘트·의견)를 빼고
|
|
181
181
|
형식 수량사("한 가지")와 어색한 부사("작게")로 때우면 붕 뜬다. "코멘트 하나 남길게요",
|
|
@@ -184,14 +184,14 @@ OO님 이거 타겟 브랜치를 변경해주셔야 할 것 같아요!
|
|
|
184
184
|
**추상명사에 이동 동사를 붙이지 말 것.** "방향도 맞게 갔습니다", "결론이 그쪽으로 갔어요"처럼
|
|
185
185
|
방향, 결론, 판단 같은 추상명사를 스스로 움직이게 만들면 붕 뜬다. 방향 자체가 가는 게 아니라
|
|
186
186
|
무언가가 그 방향으로 가는 것이다. "맞는 방향 같아요", "그렇게 결론 냈어요"처럼 사람이나
|
|
187
|
-
대상을 주어로 되돌린다 (ai-tell D-5 의인화 추상 주어의 사촌).
|
|
187
|
+
대상을 주어로 되돌린다 (ai-tell D-9, D-5 의인화 추상 주어의 사촌).
|
|
188
188
|
|
|
189
189
|
**추상명사에 측량 동사를 붙이지 말 것.** "근거를 재봤는데", "의견을 달아봤는데"처럼 재다나
|
|
190
190
|
달다처럼 물리적으로 계측하는 동사를 근거, 의견, 판단 같은 추상명사에 붙이면 붕 뜬다. 실제로
|
|
191
191
|
저울에 올린 게 아니라 검토하거나 확인한 것이다. "근거를 확인해봤는데", "의견을 검토해봤는데"처럼
|
|
192
|
-
사람이 하는 행위 동사로 되돌린다 (ai-tell F-7 물리 동사 도피의 사촌).
|
|
193
|
-
|
|
194
|
-
|
|
192
|
+
사람이 하는 행위 동사로 되돌린다 (ai-tell F-8, F-7 물리 동사 도피의 사촌). 목적어를 근거, 의견,
|
|
193
|
+
판단 같은 추상명사로 한정해서 탐지기가 본다 — "온도를 재봤는데"의 멀쩡한 물리적 용법은 목적어가
|
|
194
|
+
달라서 안 걸린다.
|
|
195
195
|
|
|
196
196
|
**얽힌 것에는 풀다, 막힌 것에는 해소하다.** "오해를 풀다", "갈등을 풀다"처럼 얽혀 있는
|
|
197
197
|
대상에는 풀다가 맞는다. 그런데 "진입을 막고 있던 두 가지를 풉니다"처럼 막혀 있는 대상(문제,
|
|
@@ -201,7 +201,7 @@ OO님 이거 타겟 브랜치를 변경해주셔야 할 것 같아요!
|
|
|
201
201
|
|
|
202
202
|
---
|
|
203
203
|
|
|
204
|
-
## 리뷰 코멘트를 "지적"이라고 부르지 않는다
|
|
204
|
+
## 리뷰 코멘트를 "지적"이라고 부르지 않는다 (ai-tell I-7)
|
|
205
205
|
|
|
206
206
|
산출물에서 리뷰 코멘트를 가리킬 때 "지적"을 쓰지 않는다. 상대를 잡아세우는 뉘앙스가 붙어서
|
|
207
207
|
같은 내용이라도 제안형 어투와 어긋난다. 이 voice의 본질은 제안이지 판정이 아니다.
|
|
@@ -263,7 +263,7 @@ OO님 이거 타겟 브랜치를 변경해주셔야 할 것 같아요!
|
|
|
263
263
|
- **가운뎃점(·) 나열 남발** — 본문에서 "A·B·C" 압축은 기계 티. 쉼표나 "A랑 B하고 C"로 푼다 (ai-tell C-12)
|
|
264
264
|
- **명사구 압축, 사무투 분류사** — "시안 정합 버그픽스", "주석 건" 같은 명사 뭉치는 동사로 풀고 "건"은 구체 명사로 (ai-tell F-6·I-5, 리뷰 코멘트에선 S1)
|
|
265
265
|
- **기술 비유 명사** — "증류·배선·결정화·평탄화" 같은 화학, 전기 어휘 차용은 일상 동사로 (ai-tell F-7, 리뷰 코멘트에선 S1)
|
|
266
|
-
- **"지적"** — 리뷰 코멘트를 가리키는 말로 쓰지 않는다. "남겼던 의견", "짚어주신 부분"으로 (위 "리뷰 코멘트를 '지적'이라고 부르지 않는다")
|
|
266
|
+
- **"지적"**(ai-tell I-7) — 리뷰 코멘트를 가리키는 말로 쓰지 않는다. "남겼던 의견", "짚어주신 부분"으로 (위 "리뷰 코멘트를 '지적'이라고 부르지 않는다")
|
|
267
267
|
- **`c:`/`r:`/`a:` 접두어를 어투 시그니처처럼 흉내 내기, `[출처]` 대괄호 태깅, "…권장." 체언 종지** — Claude가 만든 가짜 시그니처. 단, 팀이 채택한 리뷰 강제성 라벨은 예외다
|
|
268
268
|
|
|
269
269
|
---
|
|
@@ -278,4 +278,4 @@ OO님 이거 타겟 브랜치를 변경해주셔야 할 것 같아요!
|
|
|
278
278
|
6. 친근체, 물결, 이모지는 자연스럽게, 과하지 않게.
|
|
279
279
|
7. `c:`/`r:`·`a:`를 어투처럼 흉내 내지 않는다. 팀이 채택한 리뷰 강제성 라벨은 예외다. `[출처]`·"권장." 은 쓰지 않는다 (Claude artifact).
|
|
280
280
|
8. 개념을 명사로 뭉치지 말고 동사로 푼다("시안 정합 버그픽스" → "시안이랑 다르게 나오던 거"). "건" 같은 사무투 분류사와 생략된 목적어를 되살린다.
|
|
281
|
-
9. 리뷰 코멘트를 "지적"이라 부르지
|
|
281
|
+
9. 리뷰 코멘트를 "지적"이라 부르지 않는다 (I-7). 내 것은 "남겼던 의견 / 드렸던 의견", 상대 것은 "짚어주신 부분 / 남겨주신 의견".
|
|
@@ -24,6 +24,19 @@
|
|
|
24
24
|
- 🔴 Danger: data loss, security risk — never use Note for this
|
|
25
25
|
- Descriptive link text — Don't: `[여기](url)` / Do: `[설치 가이드](url)`
|
|
26
26
|
|
|
27
|
+
### 다른 문서의 절을 가리킬 때
|
|
28
|
+
|
|
29
|
+
절 참조는 대상 제목이 바뀌면 조용히 낡는다. 그래서 표기를 기계가 검사할 수 있는 꼴로 고정한다 (`pnpm verify:rules` 8번).
|
|
30
|
+
|
|
31
|
+
- **마크다운 → 마크다운**: 앵커 링크. `[측정 근거](ai-tell-quick-rules.md#측정-근거)`, 같은 문서 안이면 `[측정 근거](#측정-근거)`
|
|
32
|
+
- **코드 주석 → 마크다운**: `파일명 §「제목 전문」`. 주석에서는 링크가 안 눌리므로 낫표로 제목의 끝을 막는다. `author-voice.md §「기계적 점검 (어투는 아니지만 자주 틀리는 것)」`
|
|
33
|
+
- 마크다운 본문에 `§`를 쓰지 않는다. 앵커로 쓸 수 있는 자리에 `§`를 쓰면 검사가 비켜간다
|
|
34
|
+
- 앵커와 낫표 안은 **제목 전문**을 그대로 옮긴다. 꼬리를 잘라 적으면 검사에 걸린다. 매번 적기 버거운 제목은 참조를 줄이지 말고 제목을 줄인다
|
|
35
|
+
- 링크 텍스트는 짧게 써도 된다 — 검사하는 건 앵커지 표시 문구가 아니다
|
|
36
|
+
- 제목이 아닌 자리(볼드 라벨, 표의 행)는 `§`로 가리키지 않는다. 검사할 수 없어서 낡는 걸 못 잡는다
|
|
37
|
+
|
|
38
|
+
앵커 슬러그는 제목을 소문자로 내리고 문장부호를 지운 뒤 공백을 하이픈으로 바꾼 것이다. `### B-5 대체어` → `#b-5-대체어`.
|
|
39
|
+
|
|
27
40
|
### Content Principles
|
|
28
41
|
- Lead with business value, follow with technical detail
|
|
29
42
|
- Real-world examples before abstract definitions
|
|
@@ -72,13 +72,44 @@ S2
|
|
|
72
72
|
|
|
73
73
|
## 3단계 프로세스 (윤문 모드)
|
|
74
74
|
|
|
75
|
+
### 0단계 — 스캔 (룰을 좁힌다)
|
|
76
|
+
|
|
77
|
+
원문이 파일로 있으면 먼저 스캔을 돌린다. 말투는 산문이 `doc`, 리뷰 코멘트와 슬랙이 `chat`,
|
|
78
|
+
보고서가 `report`다.
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
gestalt humanize-scan --file <원문> --register <doc|chat|report>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
종료 코드로도 답한다. 걸린 게 있으면 0, 어투는 깨끗한데 맞춤법만 걸리면 11, 탐지기가 가리는 범위에서 0건이면 10이다. 11이면 어투는 그대로 두고 맞춤법 절만 고쳐서 낸다.
|
|
85
|
+
파일이 없으면 3이다. 셸에서 분기할 때 stdout 을 파싱하지 않아도 된다.
|
|
86
|
+
|
|
87
|
+
스캔이 내놓는 것만 본다.
|
|
88
|
+
|
|
89
|
+
- **걸린 룰**: ID, 건수, 실제 표현, 처방이 함께 나온다. 이번 윤문의 작업 목록이다
|
|
90
|
+
- **탐지기가 못 가리는 S1**: ID 목록만 나온다. 이건 직접 읽어서 판단한다
|
|
91
|
+
- **그 밖의 룰**: 이번 텍스트에서 안 걸렸다. 찾아 나서지 않는다
|
|
92
|
+
|
|
93
|
+
룰북은 59개까지 자랐다. 매번 전부 펼치면 실제로 걸린 서너 개가 안 걸린 쉰 개에 묻힌다.
|
|
94
|
+
스캔은 이번에 볼 목록을 좁히는 장치다. 목록 밖의 룰을 굳이 뒤지면 그 자리에서 과윤문이 시작된다.
|
|
95
|
+
|
|
96
|
+
**S1 0건이면 윤문하지 않는다.** 탐지기가 가리는 범위에서 걸리는 게 없고 직접 확인할 룰도
|
|
97
|
+
안 보이면, 원문을 그대로 돌려주고 그렇게 말한다. 고칠 게 없는 글에 윤문을 돌리면 남는 건
|
|
98
|
+
과윤문뿐이다.
|
|
99
|
+
|
|
100
|
+
인라인 텍스트만 받아 스캔을 못 돌리는 경우에만 룰북을 직접 읽는다. 이때도 말투에 해당하는
|
|
101
|
+
S1부터 본다. 전 카테고리를 훑지 않는다.
|
|
102
|
+
|
|
75
103
|
### 1단계 — 탐지
|
|
76
104
|
|
|
77
|
-
|
|
105
|
+
스캔 결과에 탐지기가 못 가리는 S1을 더해 이번 작업 목록을 확정한다.
|
|
78
106
|
|
|
79
|
-
- S1(심각):
|
|
107
|
+
- S1(심각): 스캔이 짚은 룰 + 직접 확인 목록에서 실제로 걸린 것 — 반드시 제거
|
|
80
108
|
- S2(경미): 빈도, 맥락을 보고 선별 교정. 무리하게 다 고치지 않는다
|
|
81
109
|
|
|
110
|
+
스캔을 못 돌린 경우에만 룰북 자체검증 5번의 S1 목록을 기준으로 삼는다. 대화나 리뷰 말투면
|
|
111
|
+
거기 적힌 격상분까지 포함한다.
|
|
112
|
+
|
|
82
113
|
### 2단계 — 처방
|
|
83
114
|
|
|
84
115
|
탐지한 패턴마다 룰북의 처방을 적용한다. 정보와 의미, 말투는 그대로 두고 표현만 바꾼다.
|
|
@@ -98,8 +129,13 @@ S2
|
|
|
98
129
|
2. 변경률 30% 이하 (50% 초과는 작업 중단)
|
|
99
130
|
3. 장르나 말투 이탈 없음 (칼럼→에세이, 격식체→평어체 금지)
|
|
100
131
|
4. 잔존 S1 패턴 0건 (B-3 음차 표기 포함)
|
|
101
|
-
5.
|
|
102
|
-
|
|
132
|
+
5. 0단계가 짚은 S1을 절반 넘게 걷어냄. 하나도 못 줄였으면 윤문한 게 아니다
|
|
133
|
+
(잔존이 0건이라야 잔존 측면이 통과다. 남았으면 제거율이 높아도 경고가 붙는다)
|
|
134
|
+
**탐지기가 없는 룰을 고쳤으면 어느 것인지 summary에 적는다.** 코드가 못 세는 자리라
|
|
135
|
+
여기서 직접 확인한다. 댈 게 없으면 안 고친 것이다
|
|
136
|
+
6. 원문에 없던 S1을 새로 심지 않음
|
|
137
|
+
7. 원문에 없던 비유나 수사를 임의로 추가하지 않음
|
|
138
|
+
8. 삭제 처방(D-2, D-3, D-4, D-6, C-10)을 재작성으로 처리하지 않음
|
|
103
139
|
|
|
104
140
|
## Do-NOT (탐지·윤문 모두 제외)
|
|
105
141
|
|
|
@@ -115,29 +151,71 @@ S2
|
|
|
115
151
|
- **구조 라벨 접두**: 커밋과 PR 제목의 `type(scope):` — 팀이 형식으로 정한 라벨이라 C-10 콜론 부제가 아니다(룰북 C-10 예외). 라벨은 그대로 두고 콜론 뒤 본문만 다듬는다. 리뷰 코멘트의 `r:`/`c:`/`a:`도 같은 예외이고 설명은 아래 작성자 voice 항목에 있다 — 여기 두 번 적지 않는다
|
|
116
152
|
- **작성자 voice (리뷰 코멘트·PR/변경 문서)**: `author-voice.md`의 보존 패턴 — 제안형 "~것 같아요/같습니다", 물결 친근체 "~해주세요~/~할게요~", "개인적으로/제 취향이긴 한데", 이모지(코멘트당 1개 안팎). 이건 AI-tell이 아니라 작성자 voice이므로 단언, 격식으로 평탄화하지 않는다. (단 `[출처]`·"권장." 은 Claude artifact이니 보이면 제거. **`r:`/`c:`/`a:` 접두어는 예외** — 팀이 채택한 PR 리뷰 강제성 라벨이므로 코멘트 맨 앞에 있으면 보존한다. voice 시그니처 흉내가 아니라 구조적 라벨이다.)
|
|
117
153
|
|
|
118
|
-
##
|
|
154
|
+
## 윤문 가드 (양방향)
|
|
155
|
+
|
|
156
|
+
너무 많이 고치는 것과 하나도 안 고치는 것은 같은 무게로 실패다. 한쪽만 막으면 안 고치는
|
|
157
|
+
쪽이 늘 안전해져서, 결국 아무것도 안 하는 윤문이 통과한다.
|
|
158
|
+
|
|
159
|
+
과윤문 쪽
|
|
119
160
|
|
|
120
161
|
- 변경률 30% 초과 = 경고 (summary에 명시)
|
|
121
162
|
- 변경률 50% 초과 = 강제 중단, 롤백 후 D등급으로 반환
|
|
122
|
-
-
|
|
163
|
+
- 원문에 없던 S1을 새로 심으면 강제 중단. AI 티는 빼기만 하고 넣지 않는다
|
|
164
|
+
|
|
165
|
+
과소윤문 쪽
|
|
166
|
+
|
|
167
|
+
- S1을 한 건도 못 줄이고 변경도 문턱 아래면 강제 중단. 윤문을 안 한 것이다
|
|
168
|
+
- 절반도 못 줄였으면 경고. 남긴 이유를 summary에 적는다
|
|
169
|
+
- 잔존이 0건이라야 잔존 측면이 통과다. 제거율이 아무리 높아도 남은 게 있으면 경고다
|
|
170
|
+
|
|
171
|
+
**제거율은 탐지기가 있는 룰만 센다.** 0단계의 "직접 확인" 목록에 있는 룰만 고쳤으면
|
|
172
|
+
제거율은 0으로 보인다. 그때 검사 결과는 둘 중 하나다.
|
|
173
|
+
|
|
174
|
+
- 변경도 문턱 아래다 → 윤문을 안 한 것이다. 채택 금지
|
|
175
|
+
- 변경은 문턱을 넘었다 → 경고. 탐지기 밖 룰은 이 검사로 확인되지 않는다
|
|
176
|
+
|
|
177
|
+
**탐지기가 없는 S1은 코드가 판정하지 못한다.** doc 기준 A-16, B-3, C-5, C-8, C-10,
|
|
178
|
+
D-5, J-2 일곱 개다. 네가 그걸 고쳤는지는 측정할 방법이 없다. 그래서 검사는 판정 대신
|
|
179
|
+
측정값만 낸다.
|
|
180
|
+
|
|
181
|
+
그 자리는 자가검증 5번이 맡는다. 경고가 나오면 직접 확인 목록에서 무엇을 고쳤는지
|
|
182
|
+
summary에 적는다. 댈 게 없으면 그건 안 고친 것이라 원문을 그대로 낸다.
|
|
183
|
+
|
|
184
|
+
**검사를 돌렸든 안 돌렸든 기준은 같다.** 경고가 나왔다고 그걸 근거로 채택하고 끝내지
|
|
185
|
+
않는다. 인라인 텍스트라 검사를 못 돌리는 경우에도 판단은 같다 — 탐지 가능한 S1이
|
|
186
|
+
하나도 안 줄었으면 직접 확인 목록에서 무엇을 고쳤는지 댈 수 있을 때만 결과를 낸다.
|
|
187
|
+
|
|
188
|
+
윤문은 "AI 티 제거"가 목적이다. 원문을 더 멋지게 쓰는 작업도 아니고 손대는 시늉만 하는
|
|
189
|
+
작업도 아니다.
|
|
123
190
|
|
|
124
191
|
## 코드 검사 (자가검증 위)
|
|
125
192
|
|
|
126
193
|
위 3단계 자가검증은 스스로 매기는 참고값이다. 원문과 윤문본이 파일로 있으면 판단은 코드에 맡긴다.
|
|
127
194
|
|
|
128
195
|
```bash
|
|
129
|
-
gestalt humanize-check --before <원문> --after <윤문본> --register chat
|
|
196
|
+
gestalt humanize-check --before <원문> --after <윤문본> --register chat --attempt 1
|
|
130
197
|
```
|
|
131
198
|
|
|
132
|
-
변경률, S1
|
|
199
|
+
변경률, S1 제거율, 보호 토큰 생존, 구조 보존, 신규 유입을 각각 측정하고 exit code로 답한다
|
|
133
200
|
(0 통과 / 1 경고 / 2 채택 금지 / 3 판정 불가). 변경률만 보면 구조 편집이 안 보인다 —
|
|
134
201
|
변경률이 3%인데 문장 3할이 갈려나갈 수 있다.
|
|
135
202
|
코드 검사는 정규식으로 오탐 적게 잡을 수 있는 룰만 본다. 의미 판단이 필요한 룰은 모델 자가검증에서
|
|
136
203
|
따로 본다.
|
|
137
204
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
205
|
+
리포트 마지막 줄의 `[다음]`이 다음 행동을 지시한다. 그 지시를 따른다.
|
|
206
|
+
|
|
207
|
+
| 지시 | 할 일 |
|
|
208
|
+
|---|---|
|
|
209
|
+
| `accept` | 윤문본을 채택한다 |
|
|
210
|
+
| `accept-with-warning` | 채택하되 걸린 측면을 summary에 적는다 |
|
|
211
|
+
| `retry` | 윤문본을 버리고 원문에서 다시 윤문한 뒤 `--attempt 2`로 재검사한다 |
|
|
212
|
+
| `fallback` | 재시도를 소진했다. 윤문본을 버리고 **원문을 그대로 낸다** |
|
|
213
|
+
|
|
214
|
+
`fallback`은 실패가 아니라 계약이다. 윤문이 원문보다 나아졌다고 증명하지 못했으면 남는
|
|
215
|
+
선택지는 원문뿐이다. 이때는 D등급과 함께 원문을 돌려준다. 무엇이 막았는지도 적는다.
|
|
216
|
+
|
|
217
|
+
- **판정과 변경률은 검사 출력값이다.** 자가 산출 등급이나 어림한 변경률로 덮어쓰지 않는다.
|
|
218
|
+
자가검증 2번은 검사를 못 돌리는 자리에서만 쓰는 어림값이다.
|
|
141
219
|
- 검사를 못 돌리는 상황(파일 없이 인라인 텍스트만 받은 경우)이면 자가검증만으로 진행하되,
|
|
142
220
|
변경률이 추정값임을 밝힌다.
|
|
143
221
|
|
|
@@ -3,6 +3,8 @@ export interface HumanizeCheckOptions {
|
|
|
3
3
|
after: string;
|
|
4
4
|
register?: string;
|
|
5
5
|
json?: boolean;
|
|
6
|
+
/** 몇 번째 윤문인지. 재시도를 소진하면 원문을 채택하라고 지시한다 */
|
|
7
|
+
attempt?: string | number;
|
|
6
8
|
}
|
|
7
9
|
export declare function humanizeCheckCommand(options: HumanizeCheckOptions): void;
|
|
8
10
|
//# sourceMappingURL=humanize-check.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"humanize-check.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/humanize-check.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"humanize-check.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/humanize-check.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0CAA0C;IAC1C,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC3B;AAWD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,CAyBxE"}
|
|
@@ -1,28 +1,33 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { formatReport, runCheck, EXIT_CODE } from '../../humanize/index.js';
|
|
1
|
+
import { isReadFailure, readInput } from '../../humanize/read-input.js';
|
|
2
|
+
import { decide, formatReport, parseRegister, parseRuleBook, prescan, runCheck, EXIT_CODE, } from '../../humanize/index.js';
|
|
4
3
|
function read(label, path) {
|
|
5
|
-
const
|
|
6
|
-
if (
|
|
7
|
-
console.error(
|
|
4
|
+
const input = readInput(path, label);
|
|
5
|
+
if (isReadFailure(input)) {
|
|
6
|
+
console.error(input.message);
|
|
8
7
|
process.exit(EXIT_CODE.unknown);
|
|
9
8
|
}
|
|
10
|
-
return
|
|
9
|
+
return input;
|
|
11
10
|
}
|
|
12
11
|
export function humanizeCheckCommand(options) {
|
|
13
|
-
const register = options.register
|
|
12
|
+
const register = parseRegister(options.register);
|
|
14
13
|
const before = read('원문', options.before);
|
|
15
14
|
const after = read('윤문본', options.after);
|
|
16
15
|
if (before.trim().length === 0) {
|
|
17
16
|
console.error('원문이 비어 있어 판정할 수 없습니다.');
|
|
18
17
|
process.exit(EXIT_CODE.unknown);
|
|
19
18
|
}
|
|
20
|
-
const
|
|
19
|
+
const attempt = Math.max(1, Number(options.attempt ?? 1) || 1);
|
|
20
|
+
// 룰북은 한 번만 읽어 두 호출이 나눠 쓴다. 각자 부르면 같은 마크다운을 두 번 파싱한다.
|
|
21
|
+
const book = parseRuleBook();
|
|
22
|
+
// 세는 대상은 언제나 원문이다. CLI는 두 파일을 한꺼번에 받아 기준선이 갈릴 일이 없다.
|
|
23
|
+
const baseline = prescan(before, { register, book });
|
|
24
|
+
const report = runCheck(before, after, { register, book, prescanned: baseline.s1ByRule });
|
|
25
|
+
const decision = decide(report, attempt);
|
|
21
26
|
if (options.json) {
|
|
22
|
-
console.log(JSON.stringify(report, null, 2));
|
|
27
|
+
console.log(JSON.stringify({ ...report, attempt, decision }, null, 2));
|
|
23
28
|
}
|
|
24
29
|
else {
|
|
25
|
-
console.log(formatReport(report));
|
|
30
|
+
console.log(formatReport(report, attempt));
|
|
26
31
|
}
|
|
27
32
|
process.exit(report.exitCode);
|
|
28
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"humanize-check.js","sourceRoot":"","sources":["../../../../src/cli/commands/humanize-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"humanize-check.js","sourceRoot":"","sources":["../../../../src/cli/commands/humanize-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EACL,MAAM,EACN,YAAY,EACZ,aAAa,EACb,aAAa,EACb,OAAO,EACP,QAAQ,EACR,SAAS,GACV,MAAM,yBAAyB,CAAC;AAWjC,SAAS,IAAI,CAAC,KAAa,EAAE,IAAY;IACvC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACrC,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,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,OAA6B;IAChE,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAEzC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACvC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,qDAAqD;IACrD,MAAM,IAAI,GAAG,aAAa,EAAE,CAAC;IAC7B,qDAAqD;IACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1F,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEzC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface HumanizeScanOptions {
|
|
2
|
+
file: string;
|
|
3
|
+
register?: string;
|
|
4
|
+
json?: boolean;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* 스캔 결과의 종료 코드.
|
|
8
|
+
*
|
|
9
|
+
* humanize-check 는 판정을 exit code 로 답하는데 scan 만 늘 0 이면 같은 CLI 안에서
|
|
10
|
+
* 계약이 갈린다. AGENT.md 0단계가 "S1 0건이면 윤문하지 않는다"를 분기로 세워 뒀는데
|
|
11
|
+
* 그걸 기계가 읽으려면 stdout 을 파싱해야 했다.
|
|
12
|
+
*
|
|
13
|
+
* scan 은 판정 도구가 아니라 자문 도구라 실패를 뜻하는 코드는 안 낸다. 걸림, 맞춤법만
|
|
14
|
+
* 걸림, 아무것도 안 걸림 셋을 갈라 준다 — 뒤 둘은 다음에 할 일이 다르다.
|
|
15
|
+
*/
|
|
16
|
+
export declare const SCAN_EXIT: {
|
|
17
|
+
/** 걸린 S1 이 있다. 윤문할 자리다 */
|
|
18
|
+
readonly found: 0;
|
|
19
|
+
/** 탐지기가 가리는 범위에서는 0건이다. 비탐지 룰은 사람이 따로 본다 */
|
|
20
|
+
readonly clean: 10;
|
|
21
|
+
/** 어투는 안 걸렸고 맞춤법만 걸렸다. 어투를 건드리지 말고 그것만 고치는 자리다 */
|
|
22
|
+
readonly spacingOnly: 11;
|
|
23
|
+
};
|
|
24
|
+
export declare function humanizeScanCommand(options: HumanizeScanOptions): void;
|
|
25
|
+
//# sourceMappingURL=humanize-scan.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { EXIT_CODE, formatScan, parseRegister, scan } from '../../humanize/index.js';
|
|
2
|
+
import { isReadFailure, readInput } from '../../humanize/read-input.js';
|
|
3
|
+
/**
|
|
4
|
+
* 스캔 결과의 종료 코드.
|
|
5
|
+
*
|
|
6
|
+
* humanize-check 는 판정을 exit code 로 답하는데 scan 만 늘 0 이면 같은 CLI 안에서
|
|
7
|
+
* 계약이 갈린다. AGENT.md 0단계가 "S1 0건이면 윤문하지 않는다"를 분기로 세워 뒀는데
|
|
8
|
+
* 그걸 기계가 읽으려면 stdout 을 파싱해야 했다.
|
|
9
|
+
*
|
|
10
|
+
* scan 은 판정 도구가 아니라 자문 도구라 실패를 뜻하는 코드는 안 낸다. 걸림, 맞춤법만
|
|
11
|
+
* 걸림, 아무것도 안 걸림 셋을 갈라 준다 — 뒤 둘은 다음에 할 일이 다르다.
|
|
12
|
+
*/
|
|
13
|
+
export const SCAN_EXIT = {
|
|
14
|
+
/** 걸린 S1 이 있다. 윤문할 자리다 */
|
|
15
|
+
found: 0,
|
|
16
|
+
/** 탐지기가 가리는 범위에서는 0건이다. 비탐지 룰은 사람이 따로 본다 */
|
|
17
|
+
clean: 10,
|
|
18
|
+
/** 어투는 안 걸렸고 맞춤법만 걸렸다. 어투를 건드리지 말고 그것만 고치는 자리다 */
|
|
19
|
+
spacingOnly: 11,
|
|
20
|
+
};
|
|
21
|
+
export function humanizeScanCommand(options) {
|
|
22
|
+
const input = readInput(options.file);
|
|
23
|
+
if (isReadFailure(input)) {
|
|
24
|
+
console.error(input.message);
|
|
25
|
+
process.exit(EXIT_CODE.unknown);
|
|
26
|
+
}
|
|
27
|
+
const text = input;
|
|
28
|
+
const report = scan(text, { register: parseRegister(options.register) });
|
|
29
|
+
console.log(options.json ? JSON.stringify(report, null, 2) : formatScan(report));
|
|
30
|
+
// 맞춤법만 걸린 원고를 clean 으로 닫으면 "윤문하지 않는다"로 읽혀 그대로 나간다.
|
|
31
|
+
// 어투 0건과 맞춤법만 있는 상태는 다음 할 일이 달라서 코드를 가른다
|
|
32
|
+
if (report.worthHumanizing)
|
|
33
|
+
process.exit(SCAN_EXIT.found);
|
|
34
|
+
process.exit(report.spacing.length > 0 ? SCAN_EXIT.spacingOnly : SCAN_EXIT.clean);
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=humanize-scan.js.map
|
|
@@ -0,0 +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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiCpC,wBAAgB,SAAS,IAAI,OAAO,CAoOnC"}
|
package/dist/src/cli/index.js
CHANGED
|
@@ -9,6 +9,7 @@ import { graphVisualizeCommand } from './commands/graph-visualize.js';
|
|
|
9
9
|
import { updateCommand } from './commands/update.js';
|
|
10
10
|
import { usageReportCommand } from './commands/usage-report.js';
|
|
11
11
|
import { humanizeCheckCommand } from './commands/humanize-check.js';
|
|
12
|
+
import { humanizeScanCommand } from './commands/humanize-scan.js';
|
|
12
13
|
import { getVersion } from '../core/version.js';
|
|
13
14
|
import { prCheckoutCommand, prCloseCommand, prCommentCommand, prCommentsCommand, prCreateCommand, prDiffCommand, prEditCommand, prListCommand, prMergeCommand, prReposCommand, prResolveCommand, prReviewCommand, prPruneCommand, prServeCommand, prShowCommand, prUnregisterCommand, prUpdateCommand, } from './commands/pr.js';
|
|
14
15
|
export function createCli() {
|
|
@@ -159,12 +160,22 @@ export function createCli() {
|
|
|
159
160
|
pr.command('unregister <key>')
|
|
160
161
|
.description('그 레포를 웹 UI 목록에서 뺀다. 레포 자체는 안 건드린다')
|
|
161
162
|
.action((key, o, cmd) => prUnregisterCommand({ ...inherited(cmd), ...o, key }));
|
|
163
|
+
program
|
|
164
|
+
.command('humanize-scan')
|
|
165
|
+
.description('원문에서 실제로 걸린 S1 룰만 처방과 함께 추린다 (exit 0 걸림 / 10 없음)')
|
|
166
|
+
.requiredOption('--file <path>', '스캔할 텍스트 파일')
|
|
167
|
+
.option('--register <doc|chat|report>', '어느 말투 기준으로 볼지 (기본 doc)', 'doc')
|
|
168
|
+
.option('--json', '스캔 결과를 JSON으로')
|
|
169
|
+
.action((options) => {
|
|
170
|
+
humanizeScanCommand(options);
|
|
171
|
+
});
|
|
162
172
|
program
|
|
163
173
|
.command('humanize-check')
|
|
164
174
|
.description('Judge a humanized draft against the rulebook (exit 0 pass / 1 warn / 2 abort)')
|
|
165
175
|
.requiredOption('--before <path>', 'Original text file')
|
|
166
176
|
.requiredOption('--after <path>', 'Humanized text file')
|
|
167
177
|
.option('--register <doc|chat|report>', 'Register to judge against (default: doc)', 'doc')
|
|
178
|
+
.option('--attempt <n>', 'Which humanize attempt this is (default: 1)', '1')
|
|
168
179
|
.option('--json', 'Emit the full report as JSON')
|
|
169
180
|
.action((options) => {
|
|
170
181
|
humanizeCheckCommand(options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,aAAa,EACb,aAAa,EACb,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,UAAU,SAAS;IACvB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,SAAS,CAAC;SACf,WAAW,CACV,2FAA2F,CAC5F;SACA,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAEzB,OAAO;SACJ,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SACrC,WAAW,CAAC,gDAAgD,CAAC;SAC7D,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,YAAY,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,KAAK,EAAE,KAAyB,EAAE,EAAE;QAC1C,MAAM,gBAAgB,CAAC,KAAK,IAAI,kBAAkB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,aAAa,EAAE,0DAA0D,CAAC;SACjF,MAAM,CAAC,KAAK,EAAE,SAAiB,EAAE,OAA4B,EAAE,EAAE;QAChE,MAAM,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,gCAAgC,CAAC;SAC7C,MAAM,CAAC,CAAC,SAAkB,EAAE,EAAE;QAC7B,aAAa,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,yFAAyF,CAC1F;SACA,MAAM,CAAC,cAAc,EAAE,uBAAuB,CAAC;SAC/C,MAAM,CAAC,aAAa,EAAE,oCAAoC,CAAC;SAC3D,MAAM,CAAC,KAAK,EAAE,OAAoD,EAAE,EAAE;QACrE,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,GAAG,EAAE;QACX,YAAY,EAAE,CAAC;IACjB,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,kDAAkD,CAAC;SAC/D,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,aAAa,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;SACjE,MAAM,CAAC,iBAAiB,EAAE,uCAAuC,EAAE,QAAQ,CAAC;SAC5E,MAAM,CAAC,cAAc,EAAE,uCAAuC,CAAC;SAC/D,MAAM,CAAC,KAAK,EAAE,OAAgE,EAAE,EAAE;QACjF,MAAM,qBAAqB,CAAC;YAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,SAAS,EAAE,OAAO,CAAC,OAAO,KAAK,KAAK;SACrC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,MAAM,EAAE,GAAG,OAAO;SACf,OAAO,CAAC,IAAI,CAAC;SACb,WAAW,CAAC,2BAA2B,CAAC;SACxC,MAAM,CAAC,oBAAoB,EAAE,mCAAmC,CAAC;SACjE,MAAM,CAAC,kBAAkB,EAAE,+CAA+C,CAAC;SAC3E,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;IAExC,MAAM,SAAS,GAAG,CAAC,GAAqD,EAAE,EAAE,CAC1E,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAA2D,CAAC;IAEvF,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,kBAAkB,CAAC;SAC/B,cAAc,CAAC,iBAAiB,EAAE,OAAO,CAAC;SAC1C,MAAM,CAAC,cAAc,EAAE,qBAAqB,CAAC;SAC7C,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC;SACzC,MAAM,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;SAC/C,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,OAAO,CAAC;SACpB,MAAM,CAAC,mBAAmB,EAAE,4CAA4C,CAAC;SACzE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAElE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,sBAAsB,CAAC;SACnC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAE1E,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,UAAU,CAAC;SACvB,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAE1E,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,4CAA4C,CAAC;SACzD,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC;SACnC,MAAM,CAAC,SAAS,EAAE,kCAAkC,CAAC;SACrD,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAE9E,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,aAAa,CAAC;SAC1B,cAAc,CAAC,eAAe,EAAE,OAAO,CAAC;SACxC,MAAM,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;SAC7C,cAAc,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;SACvD,MAAM,CAAC,wBAAwB,EAAE,SAAS,CAAC;SAC3C,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,gBAAgB,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAE7E,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,QAAQ,CAAC;SACrB,MAAM,CAAC,cAAc,EAAE,SAAS,CAAC;SACjC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAE9E,EAAE,CAAC,OAAO,CAAC,0BAA0B,CAAC;SACnC,WAAW,CAAC,cAAc,CAAC;SAC3B,MAAM,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAChC,gBAAgB,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAC7D,CAAC;IAEJ,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,SAAS,CAAC;SACtB,cAAc,CAAC,qBAAqB,EAAE,qCAAqC,CAAC;SAC5E,MAAM,CAAC,oBAAoB,EAAE,iBAAiB,CAAC;SAC/C,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAE5E,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,mBAAmB,CAAC;SAChC,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC;SAC/B,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAE5E,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC;SACpB,WAAW,CAAC,iCAAiC,CAAC;SAC9C,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC;SACjC,MAAM,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;SACjD,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAE1E,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,sBAAsB,CAAC;SACnC,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC;SAC1C,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAE3E,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,SAAS,CAAC;SACtB,MAAM,CAAC,iBAAiB,EAAE,OAAO,CAAC;SAClC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAE3E,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,2CAA2C,CAAC;SACxD,MAAM,CAAC,aAAa,EAAE,gCAAgC,CAAC;SACvD,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC;SACpC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,iCAAiC,CAAC;SAC9C,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,QAAQ,CAAC;SACtD,MAAM,CAAC,cAAc,EAAE,mBAAmB,CAAC;SAC3C,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE;QACvB,MAAM,IAAI,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAMrC,CAAC;QACF,MAAM,cAAc,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEL,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,mBAAmB,CAAC;SAChC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnE,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC;SAC3B,WAAW,CAAC,mCAAmC,CAAC;SAChD,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAElF,OAAO;SACJ,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,+EAA+E,CAAC;SAC5F,cAAc,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;SACvD,cAAc,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;SACvD,MAAM,CAAC,8BAA8B,EAAE,0CAA0C,EAAE,KAAK,CAAC;SACzF,MAAM,CAAC,QAAQ,EAAE,8BAA8B,CAAC;SAChD,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/core/types.d.ts
CHANGED
|
@@ -441,7 +441,7 @@ export interface ReviewPublishState {
|
|
|
441
441
|
* 밟는다.
|
|
442
442
|
*/
|
|
443
443
|
issuesKey: string;
|
|
444
|
-
/** 이 head에서 PR에 이미 쓴
|
|
444
|
+
/** 이 head에서 PR에 이미 쓴 의견 수. 합의 목록의 앞에서부터 이만큼이다. */
|
|
445
445
|
postedCount: number;
|
|
446
446
|
/** 판정까지 써서 한 바퀴가 끝났는지 */
|
|
447
447
|
completed: boolean;
|