@tienne/gestalt 0.72.4 → 0.72.5

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/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tienne/gestalt",
3
- "version": "0.72.4",
3
+ "version": "0.72.5",
4
4
  "description": "TypeScript AI Development Harness - Gestalt psychology-driven requirement clarification",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",
@@ -8,7 +8,7 @@
8
8
 
9
9
  **약어 면제는 업계 표준에만 준다:** 풀어 썼을 때 안 굳어진 음차가 되는 약어는 면제 대상이 아니다. `SSOT`나 `SoT`를 그대로 두면 "소스 오브 트루스"를 약어로 우회한 것과 같다 — B-3로 우리말로 푼다. 무엇을 가리키느냐에 따라 말이 달라지므로 대체어 표는 [style-guide.md의 single source of truth를 뭐라고 쓸까](style-guide.md#single-source-of-truth를-뭐라고-쓸까)에 둔다. LLM, API처럼 풀어 쓸 일이 없는 표준 약어만 그대로 둔다.
10
10
 
11
- **굳어진 음차 화이트리스트 (B-3 제외 — 그대로 둔다):** 컴포넌트·토큰·커밋·인터페이스·메서드·빌드·디플로이·캐시·렌더링·콜백·프레임워크·라이브러리·리팩터링·마이그레이션·아이콘·레이아웃·그리드·모달·토스트·타이포그래피·플레이스홀더·프로젝트·스프린트·이슈·리뷰·머지·브랜치·사이드 이펙트·보일러플레이트·트레이드오프·딥다이브·얼라인·온보딩·소스·롤백·파싱·레지스트리·불릿 등 업계 정착어. 이 목록 밖의 안 굳어진 음차(소스 오브 트루스·룩 앤 필·로우 행잉 프룻 등)만 B-3로 교정한다.
11
+ **굳어진 음차 화이트리스트 (B-3 제외 — 그대로 둔다):** 컴포넌트·토큰·커밋·인터페이스·메서드·빌드·디플로이·캐시·렌더링·콜백·프레임워크·라이브러리·리팩터링·마이그레이션·아이콘·레이아웃·그리드·모달·토스트·타이포그래피·플레이스홀더·프로젝트·스프린트·이슈·리뷰·머지·브랜치·사이드 이펙트·보일러플레이트·트레이드오프·딥다이브·얼라인·온보딩·소스·롤백·파싱·레지스트리·불릿·널 포인터·데드락 등 업계 정착어. 이 목록 밖의 안 굳어진 음차(소스 오브 트루스·룩 앤 필·로우 행잉 프룻 등)만 B-3로 교정한다.
12
12
 
13
13
  **과윤문 가드:** 변경률 30% 초과 = 경고, 50% 초과 = 강제 중단, 롤백.
14
14
 
@@ -18,6 +18,8 @@
18
18
 
19
19
  **한자어를 피하는 게 목적이 아니다 (F-4·F-5 오적용 주의):** 겨냥하는 건 개념을 뭉친 **명사화**(-성/-적/-화)이지 한자어 동사가 아니다. "측정하다"를 "재다"로, "판단하다"를 "따지다"로 바꾸면 정확도만 잃는다. 그 자리의 정확한 말이 한자어면 한자어를 쓴다. 반대 방향 실수도 같다 — 한자어를 피하려고 비유 명사(축·증류)나 물리 동사(재다)로 도망가면 F-7에 걸린다. 셋 다 겪은 실례: `네 축을 따로 재고 판정한다` → `4가지 측면에서 각각 측정하고 판단한다`.
20
20
 
21
+ **은유를 다 지우라는 게 아니다 (F-9 오적용 주의):** 겨냥하는 건 결함이나 코드 상태를 부르려고 그 자리에서 지어낸 별칭이다. "널 포인터"를 "널 값을 가리키는 포인터"로, "데드락"을 "서로 기다리다 멈춘 상태"로 풀어 쓰면 길이만 늘고 무엇을 말하는지는 오히려 흐려진다. **가르는 기준은 남이 정의해 둔 이름을 그 뜻 그대로 쓰느냐 하나뿐이다.** 명세나 교과서에 뜻이 박혀 있으면 가리킬 데가 있으니 그대로 둔다. 팀에서 몇 번 쓰였다는 것으로는 예외가 되지 않는다 — 아래 [측정 근거](#측정-근거) 문단과 B-4가 "팀에서 굳은 말"을 지키는 것과는 다른 자리다. B-4는 팀이 쓰기 시작하면 예외로 인정하는데 F-9는 그걸 예외로 안 본다. B-4가 막는 건 어색함이라 팀이 받아쓰면 풀리고 F-9가 막는 건 굳는 것 자체라 팀이 받아쓰면 그게 피해다.
22
+
21
23
  **근거가 붙은 룰 (→ 아래 [측정 근거](#측정-근거)):** A-2, I-1, C-8은 대조 코퍼스 측정으로 심각도를 조정했고 B-4는 팀이 실제로 쓰는 말이라 예시에서 뺐다. 원어민이 오히려 더 쓰는 표현이나 팀에서 이미 굳은 말을 지우면 사람 글을 AI 글로 만든다.
22
24
 
23
25
  ---
@@ -121,6 +123,7 @@
121
123
  | F-6 | 복합명사 압축 — 명사구를 조사·동사 없이 이어붙여 개념을 뭉침 ("시안 정합 버그픽스", "유지보수성 개선 작업", "권한 체크 로직") | S2 / **대화·리뷰 S1** | 동사·조사로 풀어 서술 ("디자인 시안과 다르게 렌더링되던 문제", "나중에 유지보수하기 편하게"). 사람은 압축 명사구 대신 무엇을 왜 했는지 풀어 말한다 |
122
124
  | F-7 | 기술·이공계 비유 명사를 일상 대화에 그대로 (증류·배선·결정화·평탄화·오케스트레이션·파이프라인화·축 등, 화학·전기·수학 어휘의 비유 차용) | S2 / **대화·리뷰 S1** | 일상 동사·명사로 환원 (증류 → "추려내다/뽑아내다", 배선 → "연결하다/걸어두다", 결정화 → "정리하다", 평탄화 → "밋밋하게 만들다", **축 → "측면"**·"기준"). 문법은 멀쩡해 룰 매칭이 안 되지만 사람은 대화에서 안 쓴다. "네 축을 잰다"가 아니라 "4가지 측면에서 측정한다". **예외는 그 프로젝트가 개념에 붙인 이름일 때만이고, 그 개념을 다루는 자리에서만이다** — 게슈탈트의 "스펙 결정화"는 `similarity-crystallizer` 에이전트 이름이자 인터뷰→Spec 변환의 정의라서 두지만, 같은 말을 지라 티켓 작성처럼 무관한 자리에 끌어다 쓰면 F-7이다. 코드의 "파이프라인" 자체, 그래프의 x축도 같은 기준. **테스트를 자물쇠에 빗댄 "잠그다/잠근다/잠긴"도 여기 해당한다** — "경계마다 관련 테스트가 있다"처럼 쓴다 |
123
125
  | F-8 | 추상명사에 물리 측량 동사("근거를 재봤는데", "판단을 재보고 있다", "근거를 재본 결과", "의견을 달아봤는데") | S2 / **대화·리뷰 S1** | 저울에 올린 게 아니라 검토한 것이다. 사람이 하는 행위 동사로 되돌린다("근거를 확인해봤는데", "의견을 검토해봤는데"). F-7 물리 동사 도피의 사촌이라 목적어가 근거, 의견, 판단, 영향, 의미, 가치, 리스크인 자리만 본다 — "온도를 재봤는데"는 대상이 아니다 |
126
+ | F-9 | 결함·코드 상태를 그 자리에서 지어낸 별칭으로 명명 ("맨몸 호출", "벌거벗은 API") | S2 / **대화·리뷰 S1** | 무엇이 빠졌고 무엇이 틀렸는지 그대로 쓴다 ("맨몸 호출" → "접두 객체 없이 함수 이름만 적혀 있다"). 별칭은 검색이 안 되고 처음 읽는 사람이 못 알아보고 답글에서 재생산돼 팀 어휘로 굳는다. **예외는 남이 정의해 둔 이름을 그 뜻 그대로 쓸 때다** — "널 포인터", "데드락", "고아 노드"처럼 명세나 교과서에 뜻이 박힌 말이고 F-6으로도 안 넘긴다. 다른 결함에 비유로 얹으면 예외가 아니고 팀에서 몇 번 쓰였다는 것도 아니다 — 그렇게 열면 답글에 한 번 재생산된 별칭이 곧바로 빠져나간다. **F-7과 방향이 반대다** — F-7은 기술 비유를 일상 말로 되돌리고 F-9는 일상 비유를 기술 대상에 씌운 쪽을 본다. F-9에 걸린 별칭이 스스로 움직이면 D-5, 조사 없이 뭉치면 F-6도 함께 걸린다. 이 경계는 뜻이라 탐지기가 없다 |
124
127
 
125
128
  ## G. Hedging
126
129
 
@@ -170,7 +173,7 @@
170
173
  2. **변경률**: 30% 이하인가 (50% 초과는 작업 중단)
171
174
  3. **장르 이탈 없음**: 칼럼이 에세이나 문학으로 변하지 않았는가, 리포트가 블로그체로 떨어지지 않았는가
172
175
  4. **말투 보존**: 원문 격식체면 결과도 격식체. 평어체로 떨어뜨리지 않는다
173
- 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, C-14, D-9, E-8, F-4, F-5, F-6, F-7, F-8, G-4, I-1, I-5, I-6, I-7, I-8도 S1로 포함)
176
+ 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, C-14, D-9, E-8, F-4, F-5, F-6, F-7, F-8, F-9, G-4, I-1, I-5, I-6, I-7, I-8도 S1로 포함)
174
177
  6. **인공 표현 자제**: 원문에 없던 비유, 수사, 문학적 표현을 윤문 과정에서 임의로 추가하지 않았는가
175
178
  7. **삭제 처방 준수**: D-2, D-3, D-4, D-6, C-10을 재작성으로 처리하지 않았는가. 마무리 문장, 부제, 수식어를 지우는 대신 더 그럴듯한 것으로 갈아끼운 자리가 없는가
176
179
 
@@ -98,6 +98,7 @@ voice 모델을 따른다. 초안 작성 후 반드시 [`../_shared/references/a
98
98
  | 결산 피벗(D) | "결론적으로", "요약하자면", "정리하면" | 삭제 후 직결 |
99
99
  | AI 의인화 주어 | "이 코드는 ~를 수행합니다" | "~합니다" / 주어 생략 |
100
100
  | 음차(B-3) | "소스 오브 트루스", "룩 앤 필" 등 안 굳어진 음차 | 한글 의역 + 첫 등장만 원어 병기 |
101
+ | 결함 별칭(F-9) | "맨몸 `setBoundVariableForPaint`" | "`setBoundVariableForPaint`에 `figma.variables.`가 안 붙었다" |
101
102
  | 가운뎃점 나열(C-12) | "버그·성능·품질을 봅니다" | 쉼표나 구어로 풀기("버그, 성능, 품질") — 표·용어목록·합성어(입출력)는 예외 |
102
103
  | 측량·사무투 명사(I-6) | "레포 실측으로 1444개 중", "이건 오탐이에요" | 동사로 풀기("레포 뒤져보니 1444개 중", "이건 잘못 감지한 거예요") |
103
104
  | 수량 예고(C-14) | "두 가지 짚을 것", "세 가지만 남길게요" | 개수를 뒤로 보내기("제가 봤을 때는 확인이 필요한 게 2건 있어요") — 개수가 대상의 고정 속성이면 그대로 |
@@ -250,6 +251,10 @@ GitHub 마크다운은 **한 줄 개행(`\n`)을 무시하고 같은 문단으
250
251
  7. 리뷰어 자기 문장에 풀어쓰지 않은 원문 음차가 남았는지 (B-3)
251
252
  8. 명사구 압축(F-6)·비유 명사(F-7)가 남았는지 — "사슬의 마지막 고리가 조용히 실패하는 셈"
252
253
  같은 문학적 비유는 리뷰 코멘트에선 담백한 서술로 내린다
254
+ 9. 결함을 그 자리에서 지어낸 별칭으로 부른 곳이 남았는지 (F-9) — "맨몸 `setBoundVariableForPaint`"
255
+ 처럼 압축해 부르지 말고 무엇이 빠졌는지 그대로 쓴다. 8번과 방향이 반대라 따로 센다 — 8번은
256
+ 기술 비유를 일상 말로 내리는 쪽이고 9번은 일상 비유를 코드에 씌운 쪽이다. 별칭을 만들면
257
+ 나중에 같은 결함을 찾을 때 검색이 안 되고 답글에서 재생산돼 팀 어휘로 굳는다
253
258
 
254
259
  1~5는 개별 문장이 아니라 **세트 전체의 분포**를 보는 항목이라, 코멘트를 하나씩 다듬는
255
260
  동안에는 안 잡힌다. 반드시 마지막에 전체를 놓고 센다.
@@ -146,7 +146,7 @@ S1부터 본다. 전 카테고리를 훑지 않는다.
146
146
  - 큰따옴표 안 직접 인용
147
147
  - 법률 조문, 수학, 화학, 통계 표기
148
148
  - 영어 약어(LLM·GPU·MCP·API 등 업계 표준)
149
- - 굳어진 음차 화이트리스트(B-3 제외): 컴포넌트·토큰·커밋·인터페이스·메서드·빌드·디플로이·캐시·렌더링·콜백·프레임워크·라이브러리·리팩터링·마이그레이션·아이콘·레이아웃·그리드·모달·토스트·타이포그래피·플레이스홀더·프로젝트·스프린트·이슈·리뷰·머지·브랜치·사이드 이펙트·보일러플레이트·트레이드오프·딥다이브·얼라인·온보딩·소스·롤백·파싱·레지스트리·불릿 등 정착어는 그대로 둔다. 목록 밖 안 굳어진 음차(소스 오브 트루스·룩 앤 필 등)만 B-3로 교정
149
+ - 굳어진 음차 화이트리스트(B-3 제외): 컴포넌트·토큰·커밋·인터페이스·메서드·빌드·디플로이·캐시·렌더링·콜백·프레임워크·라이브러리·리팩터링·마이그레이션·아이콘·레이아웃·그리드·모달·토스트·타이포그래피·플레이스홀더·프로젝트·스프린트·이슈·리뷰·머지·브랜치·사이드 이펙트·보일러플레이트·트레이드오프·딥다이브·얼라인·온보딩·소스·롤백·파싱·레지스트리·불릿·널 포인터·데드락 등 정착어는 그대로 둔다. 목록 밖 안 굳어진 음차(소스 오브 트루스·룩 앤 필 등)만 B-3로 교정
150
150
  - 문서 구조(헤딩 위계·목차·섹션 순서)와 정보 자체 — 표현만 다듬고 내용은 건드리지 않는다
151
151
  - **구조 라벨 접두**: 커밋과 PR 제목의 `type(scope):` — 팀이 형식으로 정한 라벨이라 C-10 콜론 부제가 아니다(룰북 C-10 예외). 라벨은 그대로 두고 콜론 뒤 본문만 다듬는다. 리뷰 코멘트의 `r:`/`c:`/`a:`도 같은 예외이고 설명은 아래 작성자 voice 항목에 있다 — 여기 두 번 적지 않는다
152
152
  - **작성자 voice (리뷰 코멘트·PR/변경 문서)**: `author-voice.md`의 보존 패턴 — 제안형 "~것 같아요/같습니다", 물결 친근체 "~해주세요~/~할게요~", "개인적으로/제 취향이긴 한데", 이모지(코멘트당 1개 안팎). 이건 AI-tell이 아니라 작성자 voice이므로 단언, 격식으로 평탄화하지 않는다. (단 `[출처]`·"권장." 은 Claude artifact이니 보이면 제거. **`r:`/`c:`/`a:` 접두어는 예외** — 팀이 채택한 PR 리뷰 강제성 라벨이므로 코멘트 맨 앞에 있으면 보존한다. voice 시그니처 흉내가 아니라 구조적 라벨이다.)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tienne/gestalt",
3
- "version": "0.72.4",
3
+ "version": "0.72.5",
4
4
  "description": "TypeScript AI Development Harness - Gestalt psychology-driven requirement clarification",
5
5
  "type": "module",
6
6
  "main": "./dist/src/index.js",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gestalt",
3
- "version": "0.72.4",
3
+ "version": "0.72.5",
4
4
  "description": "Gestalt psychology-driven AI development harness. Transforms scattered requirements into structured, validated specifications through interactive interviews.",
5
5
  "author": {
6
6
  "name": "tienne"
package/plugin/.mcp.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "mcpServers": {
3
3
  "gestalt": {
4
4
  "command": "npx",
5
- "args": ["-y", "@tienne/gestalt@0.72.4", "serve"],
5
+ "args": ["-y", "@tienne/gestalt@0.72.5", "serve"],
6
6
  "startup_timeout_sec": 180,
7
7
  "tool_timeout_sec": 900
8
8
  }
package/plugin/mcp.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "mcpServers": {
3
3
  "gestalt": {
4
4
  "command": "npx",
5
- "args": ["-y", "@tienne/gestalt@0.72.4", "serve"],
5
+ "args": ["-y", "@tienne/gestalt@0.72.5", "serve"],
6
6
  "startup_timeout_sec": 180,
7
7
  "tool_timeout_sec": 900
8
8
  }
@@ -8,7 +8,7 @@
8
8
 
9
9
  **약어 면제는 업계 표준에만 준다:** 풀어 썼을 때 안 굳어진 음차가 되는 약어는 면제 대상이 아니다. `SSOT`나 `SoT`를 그대로 두면 "소스 오브 트루스"를 약어로 우회한 것과 같다 — B-3로 우리말로 푼다. 무엇을 가리키느냐에 따라 말이 달라지므로 대체어 표는 [style-guide.md의 single source of truth를 뭐라고 쓸까](style-guide.md#single-source-of-truth를-뭐라고-쓸까)에 둔다. LLM, API처럼 풀어 쓸 일이 없는 표준 약어만 그대로 둔다.
10
10
 
11
- **굳어진 음차 화이트리스트 (B-3 제외 — 그대로 둔다):** 컴포넌트·토큰·커밋·인터페이스·메서드·빌드·디플로이·캐시·렌더링·콜백·프레임워크·라이브러리·리팩터링·마이그레이션·아이콘·레이아웃·그리드·모달·토스트·타이포그래피·플레이스홀더·프로젝트·스프린트·이슈·리뷰·머지·브랜치·사이드 이펙트·보일러플레이트·트레이드오프·딥다이브·얼라인·온보딩·소스·롤백·파싱·레지스트리·불릿 등 업계 정착어. 이 목록 밖의 안 굳어진 음차(소스 오브 트루스·룩 앤 필·로우 행잉 프룻 등)만 B-3로 교정한다.
11
+ **굳어진 음차 화이트리스트 (B-3 제외 — 그대로 둔다):** 컴포넌트·토큰·커밋·인터페이스·메서드·빌드·디플로이·캐시·렌더링·콜백·프레임워크·라이브러리·리팩터링·마이그레이션·아이콘·레이아웃·그리드·모달·토스트·타이포그래피·플레이스홀더·프로젝트·스프린트·이슈·리뷰·머지·브랜치·사이드 이펙트·보일러플레이트·트레이드오프·딥다이브·얼라인·온보딩·소스·롤백·파싱·레지스트리·불릿·널 포인터·데드락 등 업계 정착어. 이 목록 밖의 안 굳어진 음차(소스 오브 트루스·룩 앤 필·로우 행잉 프룻 등)만 B-3로 교정한다.
12
12
 
13
13
  **과윤문 가드:** 변경률 30% 초과 = 경고, 50% 초과 = 강제 중단, 롤백.
14
14
 
@@ -18,6 +18,8 @@
18
18
 
19
19
  **한자어를 피하는 게 목적이 아니다 (F-4·F-5 오적용 주의):** 겨냥하는 건 개념을 뭉친 **명사화**(-성/-적/-화)이지 한자어 동사가 아니다. "측정하다"를 "재다"로, "판단하다"를 "따지다"로 바꾸면 정확도만 잃는다. 그 자리의 정확한 말이 한자어면 한자어를 쓴다. 반대 방향 실수도 같다 — 한자어를 피하려고 비유 명사(축·증류)나 물리 동사(재다)로 도망가면 F-7에 걸린다. 셋 다 겪은 실례: `네 축을 따로 재고 판정한다` → `4가지 측면에서 각각 측정하고 판단한다`.
20
20
 
21
+ **은유를 다 지우라는 게 아니다 (F-9 오적용 주의):** 겨냥하는 건 결함이나 코드 상태를 부르려고 그 자리에서 지어낸 별칭이다. "널 포인터"를 "널 값을 가리키는 포인터"로, "데드락"을 "서로 기다리다 멈춘 상태"로 풀어 쓰면 길이만 늘고 무엇을 말하는지는 오히려 흐려진다. **가르는 기준은 남이 정의해 둔 이름을 그 뜻 그대로 쓰느냐 하나뿐이다.** 명세나 교과서에 뜻이 박혀 있으면 가리킬 데가 있으니 그대로 둔다. 팀에서 몇 번 쓰였다는 것으로는 예외가 되지 않는다 — 아래 [측정 근거](#측정-근거) 문단과 B-4가 "팀에서 굳은 말"을 지키는 것과는 다른 자리다. B-4는 팀이 쓰기 시작하면 예외로 인정하는데 F-9는 그걸 예외로 안 본다. B-4가 막는 건 어색함이라 팀이 받아쓰면 풀리고 F-9가 막는 건 굳는 것 자체라 팀이 받아쓰면 그게 피해다.
22
+
21
23
  **근거가 붙은 룰 (→ 아래 [측정 근거](#측정-근거)):** A-2, I-1, C-8은 대조 코퍼스 측정으로 심각도를 조정했고 B-4는 팀이 실제로 쓰는 말이라 예시에서 뺐다. 원어민이 오히려 더 쓰는 표현이나 팀에서 이미 굳은 말을 지우면 사람 글을 AI 글로 만든다.
22
24
 
23
25
  ---
@@ -121,6 +123,7 @@
121
123
  | F-6 | 복합명사 압축 — 명사구를 조사·동사 없이 이어붙여 개념을 뭉침 ("시안 정합 버그픽스", "유지보수성 개선 작업", "권한 체크 로직") | S2 / **대화·리뷰 S1** | 동사·조사로 풀어 서술 ("디자인 시안과 다르게 렌더링되던 문제", "나중에 유지보수하기 편하게"). 사람은 압축 명사구 대신 무엇을 왜 했는지 풀어 말한다 |
122
124
  | F-7 | 기술·이공계 비유 명사를 일상 대화에 그대로 (증류·배선·결정화·평탄화·오케스트레이션·파이프라인화·축 등, 화학·전기·수학 어휘의 비유 차용) | S2 / **대화·리뷰 S1** | 일상 동사·명사로 환원 (증류 → "추려내다/뽑아내다", 배선 → "연결하다/걸어두다", 결정화 → "정리하다", 평탄화 → "밋밋하게 만들다", **축 → "측면"**·"기준"). 문법은 멀쩡해 룰 매칭이 안 되지만 사람은 대화에서 안 쓴다. "네 축을 잰다"가 아니라 "4가지 측면에서 측정한다". **예외는 그 프로젝트가 개념에 붙인 이름일 때만이고, 그 개념을 다루는 자리에서만이다** — 게슈탈트의 "스펙 결정화"는 `similarity-crystallizer` 에이전트 이름이자 인터뷰→Spec 변환의 정의라서 두지만, 같은 말을 지라 티켓 작성처럼 무관한 자리에 끌어다 쓰면 F-7이다. 코드의 "파이프라인" 자체, 그래프의 x축도 같은 기준. **테스트를 자물쇠에 빗댄 "잠그다/잠근다/잠긴"도 여기 해당한다** — "경계마다 관련 테스트가 있다"처럼 쓴다 |
123
125
  | F-8 | 추상명사에 물리 측량 동사("근거를 재봤는데", "판단을 재보고 있다", "근거를 재본 결과", "의견을 달아봤는데") | S2 / **대화·리뷰 S1** | 저울에 올린 게 아니라 검토한 것이다. 사람이 하는 행위 동사로 되돌린다("근거를 확인해봤는데", "의견을 검토해봤는데"). F-7 물리 동사 도피의 사촌이라 목적어가 근거, 의견, 판단, 영향, 의미, 가치, 리스크인 자리만 본다 — "온도를 재봤는데"는 대상이 아니다 |
126
+ | F-9 | 결함·코드 상태를 그 자리에서 지어낸 별칭으로 명명 ("맨몸 호출", "벌거벗은 API") | S2 / **대화·리뷰 S1** | 무엇이 빠졌고 무엇이 틀렸는지 그대로 쓴다 ("맨몸 호출" → "접두 객체 없이 함수 이름만 적혀 있다"). 별칭은 검색이 안 되고 처음 읽는 사람이 못 알아보고 답글에서 재생산돼 팀 어휘로 굳는다. **예외는 남이 정의해 둔 이름을 그 뜻 그대로 쓸 때다** — "널 포인터", "데드락", "고아 노드"처럼 명세나 교과서에 뜻이 박힌 말이고 F-6으로도 안 넘긴다. 다른 결함에 비유로 얹으면 예외가 아니고 팀에서 몇 번 쓰였다는 것도 아니다 — 그렇게 열면 답글에 한 번 재생산된 별칭이 곧바로 빠져나간다. **F-7과 방향이 반대다** — F-7은 기술 비유를 일상 말로 되돌리고 F-9는 일상 비유를 기술 대상에 씌운 쪽을 본다. F-9에 걸린 별칭이 스스로 움직이면 D-5, 조사 없이 뭉치면 F-6도 함께 걸린다. 이 경계는 뜻이라 탐지기가 없다 |
124
127
 
125
128
  ## G. Hedging
126
129
 
@@ -170,7 +173,7 @@
170
173
  2. **변경률**: 30% 이하인가 (50% 초과는 작업 중단)
171
174
  3. **장르 이탈 없음**: 칼럼이 에세이나 문학으로 변하지 않았는가, 리포트가 블로그체로 떨어지지 않았는가
172
175
  4. **말투 보존**: 원문 격식체면 결과도 격식체. 평어체로 떨어뜨리지 않는다
173
- 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, C-14, D-9, E-8, F-4, F-5, F-6, F-7, F-8, G-4, I-1, I-5, I-6, I-7, I-8도 S1로 포함)
176
+ 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, C-14, D-9, E-8, F-4, F-5, F-6, F-7, F-8, F-9, G-4, I-1, I-5, I-6, I-7, I-8도 S1로 포함)
174
177
  6. **인공 표현 자제**: 원문에 없던 비유, 수사, 문학적 표현을 윤문 과정에서 임의로 추가하지 않았는가
175
178
  7. **삭제 처방 준수**: D-2, D-3, D-4, D-6, C-10을 재작성으로 처리하지 않았는가. 마무리 문장, 부제, 수식어를 지우는 대신 더 그럴듯한 것으로 갈아끼운 자리가 없는가
176
179
 
@@ -98,6 +98,7 @@ voice 모델을 따른다. 초안 작성 후 반드시 [`../_shared/references/a
98
98
  | 결산 피벗(D) | "결론적으로", "요약하자면", "정리하면" | 삭제 후 직결 |
99
99
  | AI 의인화 주어 | "이 코드는 ~를 수행합니다" | "~합니다" / 주어 생략 |
100
100
  | 음차(B-3) | "소스 오브 트루스", "룩 앤 필" 등 안 굳어진 음차 | 한글 의역 + 첫 등장만 원어 병기 |
101
+ | 결함 별칭(F-9) | "맨몸 `setBoundVariableForPaint`" | "`setBoundVariableForPaint`에 `figma.variables.`가 안 붙었다" |
101
102
  | 가운뎃점 나열(C-12) | "버그·성능·품질을 봅니다" | 쉼표나 구어로 풀기("버그, 성능, 품질") — 표·용어목록·합성어(입출력)는 예외 |
102
103
  | 측량·사무투 명사(I-6) | "레포 실측으로 1444개 중", "이건 오탐이에요" | 동사로 풀기("레포 뒤져보니 1444개 중", "이건 잘못 감지한 거예요") |
103
104
  | 수량 예고(C-14) | "두 가지 짚을 것", "세 가지만 남길게요" | 개수를 뒤로 보내기("제가 봤을 때는 확인이 필요한 게 2건 있어요") — 개수가 대상의 고정 속성이면 그대로 |
@@ -250,6 +251,10 @@ GitHub 마크다운은 **한 줄 개행(`\n`)을 무시하고 같은 문단으
250
251
  7. 리뷰어 자기 문장에 풀어쓰지 않은 원문 음차가 남았는지 (B-3)
251
252
  8. 명사구 압축(F-6)·비유 명사(F-7)가 남았는지 — "사슬의 마지막 고리가 조용히 실패하는 셈"
252
253
  같은 문학적 비유는 리뷰 코멘트에선 담백한 서술로 내린다
254
+ 9. 결함을 그 자리에서 지어낸 별칭으로 부른 곳이 남았는지 (F-9) — "맨몸 `setBoundVariableForPaint`"
255
+ 처럼 압축해 부르지 말고 무엇이 빠졌는지 그대로 쓴다. 8번과 방향이 반대라 따로 센다 — 8번은
256
+ 기술 비유를 일상 말로 내리는 쪽이고 9번은 일상 비유를 코드에 씌운 쪽이다. 별칭을 만들면
257
+ 나중에 같은 결함을 찾을 때 검색이 안 되고 답글에서 재생산돼 팀 어휘로 굳는다
253
258
 
254
259
  1~5는 개별 문장이 아니라 **세트 전체의 분포**를 보는 항목이라, 코멘트를 하나씩 다듬는
255
260
  동안에는 안 잡힌다. 반드시 마지막에 전체를 놓고 센다.
@@ -146,7 +146,7 @@ S1부터 본다. 전 카테고리를 훑지 않는다.
146
146
  - 큰따옴표 안 직접 인용
147
147
  - 법률 조문, 수학, 화학, 통계 표기
148
148
  - 영어 약어(LLM·GPU·MCP·API 등 업계 표준)
149
- - 굳어진 음차 화이트리스트(B-3 제외): 컴포넌트·토큰·커밋·인터페이스·메서드·빌드·디플로이·캐시·렌더링·콜백·프레임워크·라이브러리·리팩터링·마이그레이션·아이콘·레이아웃·그리드·모달·토스트·타이포그래피·플레이스홀더·프로젝트·스프린트·이슈·리뷰·머지·브랜치·사이드 이펙트·보일러플레이트·트레이드오프·딥다이브·얼라인·온보딩·소스·롤백·파싱·레지스트리·불릿 등 정착어는 그대로 둔다. 목록 밖 안 굳어진 음차(소스 오브 트루스·룩 앤 필 등)만 B-3로 교정
149
+ - 굳어진 음차 화이트리스트(B-3 제외): 컴포넌트·토큰·커밋·인터페이스·메서드·빌드·디플로이·캐시·렌더링·콜백·프레임워크·라이브러리·리팩터링·마이그레이션·아이콘·레이아웃·그리드·모달·토스트·타이포그래피·플레이스홀더·프로젝트·스프린트·이슈·리뷰·머지·브랜치·사이드 이펙트·보일러플레이트·트레이드오프·딥다이브·얼라인·온보딩·소스·롤백·파싱·레지스트리·불릿·널 포인터·데드락 등 정착어는 그대로 둔다. 목록 밖 안 굳어진 음차(소스 오브 트루스·룩 앤 필 등)만 B-3로 교정
150
150
  - 문서 구조(헤딩 위계·목차·섹션 순서)와 정보 자체 — 표현만 다듬고 내용은 건드리지 않는다
151
151
  - **구조 라벨 접두**: 커밋과 PR 제목의 `type(scope):` — 팀이 형식으로 정한 라벨이라 C-10 콜론 부제가 아니다(룰북 C-10 예외). 라벨은 그대로 두고 콜론 뒤 본문만 다듬는다. 리뷰 코멘트의 `r:`/`c:`/`a:`도 같은 예외이고 설명은 아래 작성자 voice 항목에 있다 — 여기 두 번 적지 않는다
152
152
  - **작성자 voice (리뷰 코멘트·PR/변경 문서)**: `author-voice.md`의 보존 패턴 — 제안형 "~것 같아요/같습니다", 물결 친근체 "~해주세요~/~할게요~", "개인적으로/제 취향이긴 한데", 이모지(코멘트당 1개 안팎). 이건 AI-tell이 아니라 작성자 voice이므로 단언, 격식으로 평탄화하지 않는다. (단 `[출처]`·"권장." 은 Claude artifact이니 보이면 제거. **`r:`/`c:`/`a:` 접두어는 예외** — 팀이 채택한 PR 리뷰 강제성 라벨이므로 코멘트 맨 앞에 있으면 보존한다. voice 시그니처 흉내가 아니라 구조적 라벨이다.)