@milcho0604/velog-mcp 0.7.2 → 0.8.6

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/CHANGELOG.md CHANGED
@@ -4,6 +4,244 @@
4
4
  **무엇이 깨져 있었는지**를 먼저 적는다. 형식은 [Keep a Changelog](https://keepachangelog.com/ko/1.1.0/),
5
5
  버전은 [유의적 버전](https://semver.org/lang/ko/)을 따른다.
6
6
 
7
+ ## [0.8.6] — 2026-08-27
8
+
9
+ 코덱스 3차 검토(v0.8.4..HEAD) 지적 4건을 전부 반영했다. **0.8.5 에서 거짓 양성을
10
+ 고치면서 이번엔 반대로 놓치게 만든 것**이 하나 있었다.
11
+
12
+ ### 고침
13
+
14
+ - **걸친 노트를 감사에서 통째로 빼버렸다.** 0.8.5 에서 «걸친 노트는 그 구간을 덮는 게
15
+ 설계» 라고 판단해 검사를 건너뛰게 했는데, 그러면 **제 구간 밖** 참가자의 막대를
16
+ 덮어도 안 잡힌다. 이제 걸친 노트는 `lo~hi` **밖**만 본다. 막대 30겹에서 재현했다.
17
+ - **없는 막대 값을 물고 있었다.** 안 닫힌 막대는 그 참가자가 마지막으로 관여한
18
+ 지점까지만 끈다(⑥의 `lastY`). 그러니 노트 뒤에 그 참가자가 안 나오면 막대는 노트
19
+ 위에서 끝나 겹칠 일이 없다. 열린 개수만 세고 있어서, 없는 막대 때문에 노트가
20
+ 반대편으로 뒤집히거나 간격이 헛되이 벌어졌다. 참가자별 마지막 등장 지점을 보고 판단한다.
21
+
22
+ ### 검사
23
+
24
+ - **`BAR_NOTE_SAMPLE` 을 대조군에 넣었다.** 변이 표본을 대조군에 안 넣으면 원본부터
25
+ 걸리는 상태가 되어도 «변이하니 걸렸다» 는 그대로 통과한다. 그럼 아무것도 증명 못 한다.
26
+ - **S10 이 `insetL` 을 한 번도 안 밟고 있었다.** 왼쪽 이웃 막대 회피가 동작으로
27
+ 검증된 적이 없었다. 왼쪽에만 막대가 쌓이면 오른쪽으로 되돌아오는 사례를 넣었다.
28
+
29
+ ### R16 상한을 3 으로
30
+
31
+ 0.8.5 에서 4 → 2 로 조였는데 **CI Node 22.18 에서 3 이 찍혀 빨간불이 났다.**
32
+ 프로필 두 개는 순차로 만들고 순차로 지우므로, 앞판 정리 도중과 뒷판 기동이
33
+ 표본 추출 시점에 겹쳐 보인다. 3 은 여전히 «두 판(4개)» 과 구분되고, 직렬화를
34
+ 무력화하는 변이에서 6 이 찍히는 것도 확인했다.
35
+
36
+ ⚠️ 코덱스가 3차에서 «상한 2 가 간헐적으로 3 을 볼 수 있는지» 를 정확히 물었는데
37
+ **로컬 3회 통과로 넘겼다가 CI 에서 났다. 로컬 몇 회 통과는 근거가 안 된다.**
38
+
39
+ ### ⚠️ 남는 한계
40
+
41
+ 막대 30겹 이상이 쌓인 상태에서 그 구간 밖으로 걸친 노트를 두면 **감사가 거부한다.**
42
+ 배치가 그걸 피하도록 넓히지는 않는다. 조용히 망가진 그림을 올리는 것보다 낫다고 보고
43
+ 여기까지 뒀다. 실제로 30겹은 `return` 없이 호출만 서른 번 쌓아야 나온다.
44
+
45
+ ## [0.8.5] — 2026-08-27
46
+
47
+ 코덱스 2차 검토(v0.8.3..HEAD). **높음 6건, 중간 8건.** 그중 하나는 0.8.4 에서
48
+ **내가 만든 회귀**였다. 배포 직전에 잡았다.
49
+
50
+ ### 🔴 고침 — 0.8.4 의 회귀
51
+
52
+ - **두 열에 걸친 노트가 무조건 감사에 걸렸다.** 0.8.4 에서 넣은 «노트가 활성막대를
53
+ 덮는지» 검사가 **걸친 노트까지** 봤다. 걸친 노트는 그 구간을 덮는 것이 설계인데
54
+ (from~to 를 가리킨다면서 가운데만 떠 있으면 어디 얘기인지 모른다), 막대가 **1겹만**
55
+ 열려 있어도 걸렸다. 멀쩡한 그림이 거부된다. 이제 **한 열짜리 노트만** 본다.
56
+
57
+ ### 고침
58
+
59
+ - **왼쪽에 붙는 노트가 왼쪽 이웃의 막대를 안 비켰다.** 막대는 오른쪽으로만 자라므로
60
+ 왼쪽은 안전하다고 봤는데, 왼쪽으로 가면 걸리는 상대가 **왼쪽 이웃**의 막대다.
61
+ `npadL` 에 그 몫을 넣었다.
62
+ - **R16 이 렌더 두 판의 동시 실행을 통과시켰다.** 프로필 상한을 4 로 뒀는데 한 판이
63
+ 2개이므로 4는 곧 두 판이다. 그건 이 검사가 막으려던 상태다. 2 로 조였고 3회 연속 확인했다.
64
+
65
+ ### 검사
66
+
67
+ - **S4 에 «노트가 막대 몫을 안 비킨다» 변이 추가.** S11 이 «문구가 소스에 있나» 만
68
+ 보고 있어서 감사를 `if (false && ...)` 로 죽여도 통과했다(코덱스 지적). 진짜 변이로 옮겼다.
69
+ ⚠️ 표본 조건 셋을 다 갖춰야 재현된다 — 첫 열(왼쪽 회피 불가), 깊은 막대, 노트 뒤 메시지.
70
+ - **S10 이 `inset` 을 0 으로만 부르고 있었다.** 그러면 `defR` 이 실수로 `npadL` 을 써도
71
+ 두 값이 같아 전부 통과한다. 막대 몫이 붙으면 반대편을 고르는 사례를 넣었다.
72
+
73
+ ### 재보고 넣지 않은 것
74
+
75
+ - 코덱스는 «노트 연결선이 막대와 교차하는 것을 감사가 놓친다» 고 했다. 눈으로 보니
76
+ **원래 지나갈 수밖에 없다** — 노트는 제 생명선에 붙어야 하고 막대가 그 사이에 있다.
77
+ 감사에 넣으면 방금 고친 «걸친 노트» 와 같은 거짓 양성이 된다.
78
+
79
+ ## [0.8.4] — 2026-08-27
80
+
81
+ 0.8.3 의 «막대 몫» 수정이 **절반만 되어 있었다.** 배포해도 되는지 스스로 되묻고
82
+ 안 본 자리를 훑다가 둘을 더 찾았다. 둘 다 0.8.3 에 있는 결함이다.
83
+
84
+ ### 고침
85
+
86
+ - **자기호출이 막대 몫을 못 받았다.** `spans` 에만 넣었는데 자기호출은 그 경로를 안 탄다.
87
+ 깊게 쌓인 막대 위에서 고리가 오른쪽으로 밀리는데 열은 안 넓어져 라벨이 제 구간을
88
+ 넘었다(«깊은 막대 위 자기호출 + 긴 라벨» 에서 재현).
89
+ - **★ 노트가 활성 막대 위에 얹혔다.** 노트는 생명선에서 26px 만 띄우는데 막대는 깊이만큼
90
+ 오른쪽으로 밀린다. 5겹부터 노트가 막대 밑에 깔리고 연결선도 가려졌다.
91
+ 이제 오른쪽에 붙을 때만 막대 몫을 비켜준다 — 막대는 오른쪽으로만 밀리므로 왼쪽은 그대로다.
92
+
93
+ ### 감사
94
+
95
+ - **노트가 제 활성막대를 덮는지 보게 했다.** 카드, 노트끼리, 남의 생명선은 보면서
96
+ **막대만 아무도 안 보고 있었다.** 위 결함이 감사를 통과한 이유다.
97
+ 변이(상자 x 에서 막대 몫 제거)로 검출력을 확인했다.
98
+ ⚠️ 표본을 고를 때 주의 — 노트가 왼쪽으로 피하거나 막대가 노트 위에서 끝나면
99
+ 겹칠 일이 없어 변이가 무반응이다. **첫 열에 노트를 붙이고(왼쪽 회피 불가)
100
+ 노트 뒤에 그 참가자가 한 번 더 등장해야**(막대가 아래로 이어짐) 재현된다.
101
+
102
+ ### 검사
103
+
104
+ - **S11 에 3건 추가** — 자기호출 넓히기의 막대 몫, 노트의 막대 몫(오른쪽만),
105
+ 감사에 노트 대 막대 검사가 있는지.
106
+ - 상자 x 계산을 한 줄(`nOff`)로 정리했다. S4 변이 표적과 S10 배선 검사도 따라 고쳤다.
107
+ - **★ R16 이 재는 대상을 바꿨다.** 크롬 **프로세스 개수**로 직렬화를 판정하고 있었는데,
108
+ 한 판이 띄우는 헬퍼 수가 환경마다 달라 CI 에서 «바닥 0, 최고 15» 로 빨간불이 났다.
109
+ **직렬화는 멀쩡했다.** 개수로는 「한 판」과 「여러 판」을 못 가른다(이 검사가 이 이유로
110
+ 깨진 게 두 번째다). 이제 **크롬 프로필 디렉터리**를 센다 — 렌더 1회가 정확히 2개를
111
+ 만들고 `finally` 에서 지우므로 살아 있는 개수가 곧 동시 렌더 수 × 2 다.
112
+ 직렬화를 무력화하는 변이에서 정확히 **6개(3판 × 2)** 가 찍히는 것을 확인했다.
113
+
114
+ ## [0.8.3] — 2026-08-27
115
+
116
+ 코덱스 검토(0.150.1) 지적 네 건 중 셋을 반영하고, 그 과정에서 **v0.7.4 부터 있던
117
+ 결함 하나를 새로 찾아 고쳤다.** 지적 하나는 재보고 사실이 아니어서 넘겼다.
118
+
119
+ ### 고침
120
+
121
+ - **★ 열 넓히기가 활성 막대 몫을 안 빼고 있었다.** 화살표는 생명선 한가운데가 아니라
122
+ 막대 가장자리에서 끊는데, 막대가 쌓인 구간은 라벨이 쓸 가로가 그만큼 줄어든다.
123
+ `call` 만 12개 이어 붙이고 긴 라벨을 주면 «라벨이 제 구간 밖으로 나감» 으로
124
+ **감사에 걸려 업로드가 거부됐다.** 짝을 맞춰 막대를 닫으면 통과했고 번호와는
125
+ 무관했다. v0.7.4, v0.8.0, v0.8.1 전부 같은 실패라 이번 변경의 회귀가 아니다.
126
+ 막대 깊이는 y 좌표와 무관하게 메시지 순서만으로 정해지므로, 열 간격을 정하기 전에
127
+ 미리 세어 반영한다.
128
+ - **한 열짜리(노트, 자기호출) 넓히기를 `spans` 뒤로 옮겼다.** 노트를 어느 쪽에 붙일지는
129
+ 그때의 간격을 보고 정하는데, `spans` 앞에서 정하면 곧 넓어질 쪽을 모르고 골라
130
+ 반대쪽을 쓸데없이 벌린다. 실측 **859 → 720**. `spans` 는 간격을 늘리기만 하므로
131
+ 뒤에서 더 넓혀도 그 조건은 그대로 성립한다.
132
+ - `docs/tools.md` 가 아직 «노트는 그 열 오른쪽에 붙는다» 라고 적고 있었다. 0.8.1 부터
133
+ 덜 벌리는 쪽에 붙는다. 결정 규칙까지 적었다.
134
+
135
+ ### 검사
136
+
137
+ - **S11** — 막대 몫 계산(`insetOf`)과 그것을 `spans` 가 실제로 더하는지.
138
+ - **S12** — 소스에서 `spans` 가 한 열짜리 넓히기보다 앞에 오는지.
139
+ - **S9 보강** — 폭(`m.tw`)을 번호 붙인 **뒤에** 재는지. 순서를 바꿔도 기존 S9 가 전부
140
+ 통과했다(코덱스 지적). 이제 순서를 못 박고 변이로 확인했다.
141
+ - **P28 보강** — 계열 최댓값만 보면 가운데가 빠져도 통과한다(코덱스 지적).
142
+ S9 를 지워도 S10 이 남아 최댓값은 10 이다. 이제 빠진 번호를 같이 본다.
143
+
144
+ ### 재보고 넘긴 것
145
+
146
+ - 코덱스는 «번호 때문에 첫 줄이 WRAP_W 를 넘는데 열 간격이 반영을 안 한다» 고 했으나,
147
+ 소스는 이미 번호를 붙인 **뒤에** 폭을 재고 있었다. 지적이 맞았던 건 **검사 쪽**이라
148
+ 거기만 보강했다.
149
+
150
+ ## [0.8.2] — 2026-08-27
151
+
152
+ ### 문서
153
+
154
+ - **README 두 판이 낡은 검증 수치를 적고 있었다.** «테스트 276건, R1~R23, P1~P26»
155
+ 이라고 했는데 실제로는 416건이었고 `render.test.ts` 에 **S1~S10 이 통째로 더** 있었다.
156
+ 0.7.0 에서 시퀀스 검사 열 개를 넣으면서 README 를 안 고쳤다.
157
+ 이 저장소는 같은 이유로 한 번 지적받은 적이 있다(`d59d3dc`, 코덱스 9차).
158
+
159
+ ### 검사
160
+
161
+ - **P28** — README 두 판이 말하는 검사 계열 범위가 실제와 맞는지 본다. 소스에서
162
+ `A`, `R`, `S`, `P` 계열의 최댓값을 긁어 한글판(`~`)과 영문판(`–`) 표기를 대조한다.
163
+ 숫자를 손으로 맞추는 한 또 낡으므로 **계열 범위만이라도 기계가 지키게** 했다.
164
+ 양방향 변이로 확인했다 — README 를 낡게 만들어도, 검사만 늘리고 문서를 안 고쳐도 걸린다.
165
+ - 총 건수는 기계가 안 본다. 변이 루프처럼 **실행 중에 만들어지는 검사**가 있어 소스만
166
+ 읽어서는 셀 수 없다. 그래서 README 에는 «0.8.2 기준» 이라고 시점을 함께 적었다.
167
+ - ⚠️ «소스 변이 54종» 은 손으로 관리하는 수치라 이번에 손대지 않았다. 확인할 방법이 없다.
168
+
169
+ ## [0.8.1] — 2026-08-27
170
+
171
+ ### 고침
172
+
173
+ - **메시지 번호가 혼자 한 줄을 차지하던 것을 고쳤다.** 번호를 라벨에 이어 붙인 뒤
174
+ 통째로 접었더니, 라벨이 공백 없는 긴 토큰일 때 이렇게 됐다.
175
+
176
+ ```
177
+ 1.
178
+ /push?PUSH_DATA=..&keyversion=v3&
179
+ USE_INTT_ID=PSNM_1
180
+ ```
181
+
182
+ 행 하나를 통째로 잃고 그 아래 행이 전부 밀린다. 이제 번호는 접기에 참여시키지 않고
183
+ 첫 줄에 붙인다. 같은 그림 실측으로 **1429×1027 → 1441×993** (세로 34 줄고 가로 12 늘어남).
184
+ - **한 열짜리 설명 상자를 늘 생명선 오른쪽에만 붙이던 것을 고쳤다.** 왼쪽 간격이 이미
185
+ 넓어 자리가 남아도 안 쓰고 오른쪽 열을 밀었다. 이제 **덜 벌리는 쪽**에 붙인다.
186
+ 양쪽이 같으면 오른쪽이다(읽는 방향). 첫 열은 왼쪽에 열이 없어 오른쪽, 마지막 열은
187
+ 흡수할 간격이 없어 왼쪽이 유리하다. 실측으로 **1441×993 → 1331×993** (가로 110 줄고 세로 그대로).
188
+ - 설명 상자 연결선을 **가까운 변**까지만 긋는다. 먼 변까지 그으면 상자 밑을 가로지르는
189
+ 선이 생긴다 — 상자가 나중에 그려져 가려질 뿐 사라진 게 아니다.
190
+
191
+ ### 검사
192
+
193
+ - **임시폴더 검사가 총량을 세다 깨져 있었다.** 렌더는 시작할 때마다 24시간 지난
194
+ 폴더를 치우므로, 그런 잔여가 있으면 개수가 늘면서 동시에 줄어든다. 실측으로
195
+ 113개 중 24~48시간짜리가 섞여 있어 «하나 늘어야 한다» 가 0 으로 나왔다.
196
+ 깨끗한 main 에서도 같은 실패가 났으니 소스 문제가 아니었다.
197
+ 이제 **이름 집합의 차이**로 새로 생긴 것만 센다. R16 과 같은 교훈이다 —
198
+ 전역 자원은 총량이 아니라 내 몫의 증분으로 본다. 양방향 변이로 검출력을 확인했다.
199
+
200
+ ### 재본 뒤 넣지 않은 것
201
+
202
+ - 설명 상자만 더 넓게 접어 세로를 줄여보려 했는데 **측정이 기각했다.** 폭 250 에서
203
+ 320, 380, 440, 520 으로 올려도 세로는 1027 에서 960 까지(6.5%)밖에 안 줄고 가로가
204
+ 1429 에서 1930 까지(35%) 늘었다. 설명 상자 높이가 전체 세로를 지배한다는 전제가 틀렸다.
205
+
206
+ ## [0.8.0] — 2026-08-27
207
+
208
+ ### 고침
209
+
210
+ - **긴 라벨이 식별자 한가운데서 갈라지던 것을 고쳤다.** `wrapText` 가 공백으로만
211
+ 자르고 공백 없는 토큰은 곧장 글자 단위로 내려갔다. 그래서
212
+ `…&keyversion=v3&USE_INTT_ID=PSNM_1` 이 `USE` 와 `_INTT_ID` 로 쪼개졌다.
213
+ 이제 글자 단위로 가기 전에 구분 기호(`& ? = / , ; |`) 뒤에서 먼저 끊는다.
214
+ `_` `.` `-` 는 일부러 뺐다 — 식별자 안에 흔해서 거기서 끊으면 글자 단위와 다를 게 없다.
215
+ 구분 기호가 없는 한글 토큰은 예전 경로 그대로다.
216
+ - 0.7.4 에서 «접을 자리를 직접 끊어라» 라고 안내했던 것을 걷었다. 그 몫이 렌더러로
217
+ 넘어왔다. 이제 직접 끊어야 하는 건 구분 기호가 없는 긴 한글 토큰뿐이다.
218
+
219
+ ⚠️ **이 결함은 자가감사를 통과했다.** 줄이 제 상자 안에 있고 겹치지도 않아 기하로는
220
+ 결함이 아니다. 그래서 검사(S8)를 렌더가 아니라 계산식 단위로 걸었다 — S7 과 같은 이유로
221
+ 폰트를 전제하면 다른 기계에서 조용히 헛돈다. 구분 기호 목록을 비우는 변이로 검출력을 확인했다.
222
+
223
+ ## [0.7.4] — 2026-08-26
224
+
225
+ ### 고침
226
+
227
+ - **시퀀스 도구가 처음부터 깔끔하게 나오도록 작성 요령을 도구 설명에 넣었다.** 실제로
228
+ 구성도를 하나 그려보니 첫 판이 지저분했는데, 원인은 렌더러가 아니라 **입력**이었다.
229
+ 같은 그림을 2904×2508 에서 2370×2178 로 줄인 건 셋뿐이다 — `call` 마다 `return` 을
230
+ 붙여 활성 막대를 닫고, `note` 를 한 줄로 줄이고, 긴 라벨의 접을 자리를 직접 끊는 것.
231
+ 이 요령이 설명에 없어서 부르는 쪽은 매번 첫 판을 다시 만들게 돼 있었다.
232
+ `messages` 필드 설명과 `docs/tools.md` 에도 같이 적었다.
233
+ - 함께 적었다: **자가감사 통과는 「보기 좋다」가 아니다.** 계단처럼 쌓인 막대도 어색하게
234
+ 끊긴 라벨도 겹침 0건으로 통과한다. 감사는 렌더러의 배치 계산이 틀렸는지만 본다.
235
+
236
+ 렌더러 코드는 바뀌지 않았다. 같은 입력을 주면 같은 그림이 나온다.
237
+
238
+ ## [0.7.3] — 2026-08-24
239
+
240
+ - 문서만 갱신. `docs/decisions/0006-ship-as-plugin.md` 의 도구 개수가 0.7.0 이후로 낡아
241
+ 있었다. 이 레포는 지난 결정 기록을 고쳐 쓰지 않고 배너로 정정하므로(ADR 0001, 0002,
242
+ 0004 전례) 본문은 두고 머리에 배너를 달았다. `docs` 가 `files` 에 걸려 npm 으로
243
+ 실려 나가는 파일이라 패치 릴리스로 내보낸다. `dist` 는 0.7.2 발행본과 동일하다.
244
+
7
245
  ## [0.7.2] — 2026-08-24
8
246
 
9
247
  - MCP 레지스트리 목록에 뜨는 한 줄 설명에 시퀀스 다이어그램이 빠져 있었다. 0.7.0 에서 도구를
@@ -148,6 +386,15 @@
148
386
 
149
387
  - 첫 npm 공개 발행.
150
388
 
389
+ [0.8.6]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.8.6
390
+ [0.8.5]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.8.5
391
+ [0.8.4]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.8.4
392
+ [0.8.3]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.8.3
393
+ [0.8.2]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.8.2
394
+ [0.8.1]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.8.1
395
+ [0.8.0]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.8.0
396
+ [0.7.4]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.7.4
397
+ [0.7.3]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.7.3
151
398
  [0.7.2]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.7.2
152
399
  [0.7.1]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.7.1
153
400
  [0.7.0]: https://github.com/milcho0604/velog-mcp/releases/tag/v0.7.0
package/README.ko.md CHANGED
@@ -63,7 +63,7 @@ npm 에 올려뒀으니 클론할 것 없이 MCP 클라이언트가 `npx` 로
63
63
 
64
64
  ```bash
65
65
  claude mcp add velog -e VELOG_REFRESH_TOKEN=여기에_토큰 \
66
- -- npx -y @milcho0604/velog-mcp@0.7.2
66
+ -- npx -y @milcho0604/velog-mcp@0.8.6
67
67
  ```
68
68
 
69
69
  이 방식은 토큰이 클라이언트 설정 파일에 남는다. 위의 플러그인 방식은 키체인에 넣는다.
@@ -85,7 +85,7 @@ MCP 클라이언트 설정 파일(`claude_desktop_config.json`, `.mcp.json` 등)
85
85
  "mcpServers": {
86
86
  "velog": {
87
87
  "command": "npx",
88
- "args": ["-y", "@milcho0604/velog-mcp@0.7.2"],
88
+ "args": ["-y", "@milcho0604/velog-mcp@0.8.6"],
89
89
  "env": {
90
90
  "VELOG_REFRESH_TOKEN": "여기에 토큰"
91
91
  }
@@ -98,7 +98,7 @@ Claude Code CLI 라면:
98
98
 
99
99
  ```bash
100
100
  claude mcp add velog -e VELOG_REFRESH_TOKEN=여기에_토큰 \
101
- -- npx -y @milcho0604/velog-mcp@0.7.2
101
+ -- npx -y @milcho0604/velog-mcp@0.8.6
102
102
  ```
103
103
 
104
104
  로컬 체크아웃으로 돌리려면 command 를
@@ -393,8 +393,9 @@ npm run build # tsconfig.build.json (dist 에 테스트 미포함)
393
393
  npm run schema:dump # 현재 벨로그 GraphQL 스키마 덤프
394
394
  ```
395
395
 
396
- 테스트 276건. `safety.test.ts` 가 보안 불변식(A1~A11)을, `render.test.ts` 가
397
- 그림 쪽 불변식(R1~R23)을, `plugin.test.ts` 가 포장 불변식(P1~P26) 고정한다.
396
+ 테스트 427건(0.8.6 기준). `safety.test.ts` 가 보안 불변식(A1~A11)을,
397
+ `render.test.ts` 가 구성도 불변식(R1~R23) 시퀀스 불변식(S1~S12)을,
398
+ `plugin.test.ts` 가 포장 불변식(P1~P28)을 고정한다.
398
399
  깨지면 우회하지 말고 왜 깨졌는지부터 볼 것.
399
400
 
400
401
  여기 있는 방어는 전부 **일부러 망가뜨려** 확인했다. 소스 변이 54종 + 발행 관문
package/README.md CHANGED
@@ -68,7 +68,7 @@ Published on npm, so nothing to clone — your MCP client runs it via `npx`. See
68
68
 
69
69
  ```bash
70
70
  claude mcp add velog -e VELOG_REFRESH_TOKEN=your_refresh_token \
71
- -- npx -y @milcho0604/velog-mcp@0.7.2
71
+ -- npx -y @milcho0604/velog-mcp@0.8.6
72
72
  ```
73
73
 
74
74
  The token stays in your client's config file here. The plugin route above puts it in
@@ -91,7 +91,7 @@ Add this to your MCP client config (`claude_desktop_config.json`, `.mcp.json`,
91
91
  "mcpServers": {
92
92
  "velog": {
93
93
  "command": "npx",
94
- "args": ["-y", "@milcho0604/velog-mcp@0.7.2"],
94
+ "args": ["-y", "@milcho0604/velog-mcp@0.8.6"],
95
95
  "env": {
96
96
  "VELOG_REFRESH_TOKEN": "your_refresh_token"
97
97
  }
@@ -104,7 +104,7 @@ With the Claude Code CLI:
104
104
 
105
105
  ```bash
106
106
  claude mcp add velog -e VELOG_REFRESH_TOKEN=your_refresh_token \
107
- -- npx -y @milcho0604/velog-mcp@0.7.2
107
+ -- npx -y @milcho0604/velog-mcp@0.8.6
108
108
  ```
109
109
 
110
110
  To run a local checkout instead, swap the command for
@@ -406,9 +406,10 @@ npm run build # tsconfig.build.json (tests excluded from dist)
406
406
  npm run schema:dump # dump Velog's current GraphQL schema
407
407
  ```
408
408
 
409
- 276 tests. `src/__tests__/safety.test.ts` pins the security invariants (A1–A11),
410
- `render.test.ts` pins the drawing ones (R1–R23), and `plugin.test.ts` pins the
411
- packaging ones (P1P26) — if any fails, find out why instead of working around it.
409
+ 427 tests (as of 0.8.6). `src/__tests__/safety.test.ts` pins the security
410
+ invariants (A1–A11), `render.test.ts` pins the diagram ones (R1–R23) and the
411
+ sequence ones (S1S12), and `plugin.test.ts` pins the packaging ones (P1–P28)
412
+ if any fails, find out why instead of working around it.
412
413
 
413
414
  Every guard here was checked by **breaking it on purpose**: 54 mutations against the
414
415
  source, plus 12 against the publish gate itself (`scripts/gate-mutation.sh`), each of
package/dist/index.d.ts CHANGED
@@ -10,7 +10,7 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
10
10
  import { type Capabilities } from './capabilities.ts';
11
11
  import { VelogClient } from './client.ts';
12
12
  export declare const SERVER_NAME = "velog-mcp";
13
- export declare const SERVER_VERSION = "0.7.2";
13
+ export declare const SERVER_VERSION = "0.8.6";
14
14
  export declare function createServer(client: VelogClient, capabilities?: Capabilities): McpServer;
15
15
  /**
16
16
  * 크롬이 있어야만 되는 도구들.
package/dist/index.js CHANGED
@@ -28,7 +28,7 @@ import { registerImageTools } from "./tools/images.js";
28
28
  export const SERVER_NAME = 'velog-mcp';
29
29
  // ⚠️ 이 값은 네 곳이 함께 움직인다 — package.json / plugin.json / .mcp.json 의
30
30
  // npx 핀 / 여기. 어긋나면 P8 테스트가 잡는다. 손으로 맞추지 말고 테스트를 믿을 것.
31
- export const SERVER_VERSION = '0.7.2';
31
+ export const SERVER_VERSION = '0.8.6';
32
32
  export function createServer(client, capabilities = { publicPublish: false, editProfile: false }) {
33
33
  const server = new McpServer({ name: SERVER_NAME, version: SERVER_VERSION }, {
34
34
  instructions: [
@@ -246,6 +246,19 @@ function pad(r, m){ return {x:r.x - m, y:r.y - m, w:r.w + m*2, h:r.h + m*2}; }
246
246
  // ★ 글자를 눌러 맞추지 않는다. 접고, 그래도 넘치면 자리를 넓힌다.
247
247
  // 한국어는 띄어쓰기가 없는 토큰이 흔해서 낱말 단위만으로는 안 접힌다.
248
248
  // 그때는 글자 단위로 내려간다. Array.from 을 쓰는 건 이모지를 쪼개지 않기 위해서다.
249
+ // 공백 없는 긴 토큰을 어디서 끊을지. **이 글자 뒤에서** 끊는다.
250
+ // 식별자 안에 흔한 _ . - 는 일부러 뺐다 — 거기서 끊으면 USE_INTT_ID 가
251
+ // USE_ 와 INTT_ID 로 갈라져서 글자 단위로 끊는 것과 별로 다르지 않다.
252
+ var BREAK_AFTER = '&?=/,;|';
253
+ function chunkLong(word){
254
+ var out = [], cur = '', chars = Array.from(word);
255
+ for (var i = 0; i < chars.length; i++) {
256
+ cur += chars[i];
257
+ if (BREAK_AFTER.indexOf(chars[i]) >= 0) { out.push(cur); cur = ''; }
258
+ }
259
+ if (cur) out.push(cur);
260
+ return out;
261
+ }
249
262
  function wrapText(s, cls, maxW){
250
263
  if (!s) return [];
251
264
  var out = [], cur = '';
@@ -255,12 +268,26 @@ function wrapText(s, cls, maxW){
255
268
  if (word === '') continue;
256
269
  if (measure(word, cls) > maxW) {
257
270
  if (cur) { out.push(cur); cur = ''; }
258
- var chars = Array.from(word);
271
+ // 구분 기호 뒤에서 먼저 끊어본다. 글자 단위는 **마지막 수단**이다 —
272
+ // 먼저 쓰면 식별자 한가운데가 갈라진다(USE / _INTT_ID).
273
+ // 구분 기호가 없는 한글 문장은 조각이 하나뿐이라 예전 그대로 글자 단위로 간다.
274
+ var chunks = chunkLong(word);
259
275
  var piece = '';
260
- for (var ci = 0; ci < chars.length; ci++) {
261
- var grow = piece + chars[ci];
262
- if (piece && measure(grow, cls) > maxW) { out.push(piece); piece = chars[ci]; }
263
- else piece = grow;
276
+ for (var ci = 0; ci < chunks.length; ci++) {
277
+ var chunk = chunks[ci];
278
+ if (measure(chunk, cls) > maxW) {
279
+ if (piece) { out.push(piece); piece = ''; }
280
+ var chars = Array.from(chunk);
281
+ for (var ki = 0; ki < chars.length; ki++) {
282
+ var grow = piece + chars[ki];
283
+ if (piece && measure(grow, cls) > maxW) { out.push(piece); piece = chars[ki]; }
284
+ else piece = grow;
285
+ }
286
+ continue;
287
+ }
288
+ var joined = piece + chunk;
289
+ if (piece && measure(joined, cls) > maxW) { out.push(piece); piece = chunk; }
290
+ else piece = joined;
264
291
  }
265
292
  cur = piece;
266
293
  continue;
@@ -358,18 +385,69 @@ for (var mi = 0; mi < M.length; mi++) {
358
385
  m.note = (m.kind === 'note');
359
386
  m.self = (!m.note && m.a === m.b);
360
387
  var body = m.label;
361
- if (S.numbers && !m.note) {
362
- seq++;
363
- body = body ? (seq + '. ' + body) : String(seq);
364
- }
388
+ var num = '';
389
+ if (S.numbers && !m.note) { seq++; num = seq + '.'; }
365
390
  m.cls = m.note ? 'nt-t' : 'm-label';
366
391
  m.lines = wrapText(body, m.cls, WRAP_W);
367
- m.raw = body;
392
+ // 번호는 접기에 참여시키지 않고 첫 줄에 붙인다.
393
+ // 같이 접으면 라벨이 공백 없는 긴 토큰일 때 번호가 혼자 한 줄을 차지한다 —
394
+ // "1." / "/push?…&" / "USE_INTT_ID=…" 처럼 세 줄이 되어 행 하나를 통째로 잃는다(실측).
395
+ // 붙여서 넓어진 만큼은 열 간격이 흡수한다. 세로는 행마다 아래를 전부 민다.
396
+ if (num) m.lines = m.lines.length ? [num + ' ' + m.lines[0]].concat(m.lines.slice(1)) : [num];
397
+ m.raw = num ? (body ? num + ' ' + body : num) : body;
368
398
  m.tw = widest(m.lines, m.cls);
369
399
  m.lh = lineHeightOf(m.lines, m.cls);
370
400
  m.th = m.lines.length * m.lh;
371
401
  }
372
402
 
403
+ // ── ②-b 활성 막대가 잡아먹을 폭을 미리 센다 ──
404
+ // ★ 화살표는 생명선 한가운데가 아니라 **막대 가장자리**에서 끊는다(barEdge).
405
+ // 그래서 막대가 쌓인 구간에서는 라벨이 쓸 수 있는 가로가 그만큼 줄어든다.
406
+ // 그런데 열 넓히기는 그 몫을 안 빼고 있었다 — call 만 12개 이어져 막대가
407
+ // 깊게 쌓이면 라벨이 제 구간을 넘어 **감사에 걸려 업로드가 거부됐다**(실측).
408
+ // ★ 막대 깊이는 y 좌표와 무관하게 **메시지 순서만으로** 정해진다(⑥의 stack 길이).
409
+ // 그래서 좌표를 잡기 전인 여기서 미리 셀 수 있다. 여기 계산이 ⑥과 어긋나면
410
+ // 다시 좁아지므로, 둘은 같은 규칙을 따라야 한다.
411
+ var preOpen = [];
412
+ for (i = 0; i < P.length; i++) preOpen.push(0);
413
+ // ★ 안 닫힌 막대는 그 참가자가 **마지막으로 관여한 지점**까지만 끈다(⑥의 lastY).
414
+ // 그러니 노트 뒤에 그 참가자가 안 나오면 막대는 노트 위에서 끝나 겹칠 일이 없다.
415
+ // 그걸 안 보고 열린 개수만 세면 **없는 막대 값을 물어** 노트를 반대편으로 뒤집거나
416
+ // 간격을 헛되이 벌린다(코덱스 3차 지적).
417
+ var lastIdx = [];
418
+ for (i = 0; i < P.length; i++) lastIdx.push(-1);
419
+ for (mi = 0; mi < M.length; mi++) {
420
+ var ml0 = M[mi];
421
+ if (ml0.note) continue;
422
+ lastIdx[ml0.a] = mi;
423
+ lastIdx[ml0.b] = mi;
424
+ }
425
+ function insetOf(depth){ return depth > 0 ? (depth - 1) * BAR_STEP + BAR_W / 2 : 0; }
426
+ for (mi = 0; mi < M.length; mi++) {
427
+ var mb = M[mi];
428
+ mb.inset = 0;
429
+ if (!S.activations) continue;
430
+ // 노트는 스택을 바꾸지 않지만, 붙는 자리는 막대 바깥이어야 한다.
431
+ // 오른쪽에 붙으면 제 막대를, 왼쪽에 붙으면 **왼쪽 이웃**의 막대를 비켜야 한다.
432
+ // 막대는 오른쪽으로만 자라므로 방향에 따라 걸리는 상대가 다르다(코덱스 2차 지적).
433
+ if (mb.note) {
434
+ if (mb.a === mb.b) {
435
+ // 그 참가자가 이 노트 **뒤에** 다시 나와야 막대가 노트 행까지 이어진다.
436
+ mb.inset = lastIdx[mb.a] > mi ? insetOf(preOpen[mb.a]) : 0;
437
+ mb.insetL = (mb.a > 0 && lastIdx[mb.a - 1] > mi) ? insetOf(preOpen[mb.a - 1]) : 0;
438
+ }
439
+ continue;
440
+ }
441
+ if (mb.self) { mb.inset = insetOf(preOpen[mb.a]); continue; }
442
+ if (mb.kind === 'return') {
443
+ if (preOpen[mb.a] > 0) preOpen[mb.a]--;
444
+ mb.inset = insetOf(preOpen[mb.a] + 1) + insetOf(preOpen[mb.b]);
445
+ } else {
446
+ preOpen[mb.b]++;
447
+ mb.inset = insetOf(preOpen[mb.a]) + insetOf(preOpen[mb.b]);
448
+ }
449
+ }
450
+
373
451
  // ── ③ 열 간격: 라벨이 들어갈 만큼 넓힌다 ──
374
452
  var gaps = [];
375
453
  for (i = 0; i < P.length - 1; i++) {
@@ -377,28 +455,12 @@ for (i = 0; i < P.length - 1; i++) {
377
455
  }
378
456
  function widenOne(i, need){ if (i >= 0 && i < gaps.length && gaps[i] < need) gaps[i] = need; }
379
457
 
380
- for (mi = 0; mi < M.length; mi++) {
381
- var mm = M[mi];
382
- if (mm.note && mm.a === mm.b) {
383
- // ★ 한 열짜리 노트는 생명선 **오른쪽**에 붙인다. 열 위에 얹으면 그 참가자의
384
- // 활성 막대를 덮어 막대가 끊겨 보인다(실물 확인). 대신 어디에 붙은
385
- // 설명인지 모르게 되므로 생명선에서 상자까지 짧은 연결선을 긋는다.
386
- if (mm.a < P.length - 1) {
387
- widenOne(mm.a, NOTE_OFF + mm.tw + 28 + 16 + P[mm.a+1].w / 2);
388
- }
389
- } else if (mm.self) {
390
- // 자기호출은 고리와 라벨이 오른쪽으로 나간다. 마지막 열이면 캔버스가 늘어난다.
391
- if (mm.a < P.length - 1) {
392
- widenOne(mm.a, SELF_W + 10 + mm.tw + 16 + P[mm.a+1].w / 2);
393
- }
394
- }
395
- }
396
458
  // 여러 열에 걸친 것은 짧은 것부터 처리한다. 긴 것은 앞서 벌어진 폭을 물려받는다.
397
459
  var spans = [];
398
460
  for (mi = 0; mi < M.length; mi++) {
399
461
  var ms = M[mi];
400
462
  if (ms.a === ms.b) continue;
401
- spans.push({lo:Math.min(ms.a, ms.b), hi:Math.max(ms.a, ms.b), need:ms.tw + (ms.note ? 34 : 30)});
463
+ spans.push({lo:Math.min(ms.a, ms.b), hi:Math.max(ms.a, ms.b), need:ms.tw + (ms.note ? 34 : 30) + (ms.inset || 0)});
402
464
  }
403
465
  spans.sort(function(x, y){ return (x.hi - x.lo) - (y.hi - y.lo); });
404
466
  for (var si = 0; si < spans.length; si++) {
@@ -410,6 +472,38 @@ for (var si = 0; si < spans.length; si++) {
410
472
  for (i = sp.lo; i < sp.hi; i++) gaps[i] += add;
411
473
  }
412
474
  }
475
+ for (mi = 0; mi < M.length; mi++) {
476
+ var mm = M[mi];
477
+ if (mm.note && mm.a === mm.b) {
478
+ // ★ 한 열짜리 노트는 생명선 **옆**에 붙인다. 열 위에 얹으면 그 참가자의
479
+ // 활성 막대를 덮어 막대가 끊겨 보인다(실물 확인). 대신 어디에 붙은
480
+ // 설명인지 모르게 되므로 생명선에서 상자까지 짧은 연결선을 긋는다.
481
+ // ★ 어느 쪽에 붙일지는 **덜 벌리는 쪽**으로 고른다. 늘 오른쪽에만 붙이면
482
+ // 왼쪽에 자리가 남아도 안 쓰고 오른쪽 열을 밀어 그림이 옆으로 길어진다.
483
+ // ★ 활성 막대는 깊이만큼 **오른쪽으로만** 밀린다(rect x = cx + depth*BAR_STEP - BAR_W/2).
484
+ // 그래서 오른쪽에 붙일 때만 그 몫을 비켜준다. 안 그러면 노트가 막대 위에 얹힌다.
485
+ var npadR = NOTE_OFF + (mm.inset || 0) + mm.tw + 28 + 16;
486
+ var npadL = NOTE_OFF + (mm.insetL || 0) + mm.tw + 28 + 16;
487
+ var defR = mm.a < P.length - 1
488
+ ? Math.max(0, npadR + P[mm.a+1].w / 2 - gaps[mm.a])
489
+ : npadR; // 마지막 열이면 흡수할 간격이 없어 캔버스가 그만큼 늘어난다
490
+ var defL = mm.a > 0
491
+ ? Math.max(0, npadL + P[mm.a-1].w / 2 - gaps[mm.a-1])
492
+ : Infinity; // 첫 열은 왼쪽에 열이 없다
493
+ mm.left = defL < defR; // 같으면 오른쪽 — 읽는 방향과 같다
494
+ if (mm.left) widenOne(mm.a - 1, npadL + P[mm.a-1].w / 2);
495
+ else if (mm.a < P.length - 1) widenOne(mm.a, npadR + P[mm.a+1].w / 2);
496
+ } else if (mm.self) {
497
+ // 자기호출은 고리와 라벨이 오른쪽으로 나간다. 마지막 열이면 캔버스가 늘어난다.
498
+ // ★ 고리도 생명선이 아니라 **막대 가장자리**에서 시작한다(barEdge). 막대가 쌓인
499
+ // 구간이면 그만큼 오른쪽으로 밀리므로 그 몫을 같이 넣는다. spans 를 안 타는
500
+ // 경로라 ②-b 에서 센 값을 여기서 직접 써야 한다.
501
+ if (mm.a < P.length - 1) {
502
+ widenOne(mm.a, (mm.inset || 0) + SELF_W + 10 + mm.tw + 16 + P[mm.a+1].w / 2);
503
+ }
504
+ }
505
+ }
506
+
413
507
  var CX = [0];
414
508
  for (i = 0; i < gaps.length; i++) CX.push(CX[i] + gaps[i]);
415
509
  for (i = 0; i < P.length; i++) {
@@ -502,9 +596,11 @@ for (mi = 0; mi < M.length; mi++) {
502
596
  if (mx.note) {
503
597
  var bw0 = mx.tw + 28;
504
598
  if (mx.a === mx.b) {
505
- mx.box = {x:P[mx.a].cx + NOTE_OFF, y:mx.boxY, w:bw0, h:mx.h};
506
- mx.lo = P[mx.a].cx - BAR_W;
507
- mx.hi = mx.box.x + bw0;
599
+ // 오른쪽에 붙을 때만 막대 몫을 비켜준다 — 막대는 깊이만큼 오른쪽으로만 밀린다.
600
+ var nOff = mx.left ? -(NOTE_OFF + bw0) : NOTE_OFF + (mx.inset || 0);
601
+ mx.box = {x:P[mx.a].cx + nOff, y:mx.boxY, w:bw0, h:mx.h};
602
+ mx.lo = mx.left ? mx.box.x : P[mx.a].cx - BAR_W;
603
+ mx.hi = mx.left ? P[mx.a].cx + BAR_W : mx.box.x + bw0;
508
604
  } else {
509
605
  // ★ from~to 를 가리킨다고 해놓고 가운데에만 떠 있으면 어디 얘기인지 모른다.
510
606
  // 글자가 짧아도 상자는 그 구간을 실제로 덮는다.
@@ -618,7 +714,9 @@ for (mi = 0; mi < M.length; mi++) {
618
714
  if (!mn.note) continue;
619
715
  var bw = mn.box.w, bx = mn.box.x;
620
716
  if (mn.a === mn.b) {
621
- el('path', {d:'M'+P[mn.a].cx+','+(mn.boxY + mn.h / 2)+' H'+bx,
717
+ // 연결선은 상자의 **가까운 변**까지만 긋는다. 먼 변까지 그으면 상자 밑을
718
+ // 가로지르는 선이 생긴다 — 상자가 나중에 그려져 가려질 뿐 사라진 게 아니다.
719
+ el('path', {d:'M'+P[mn.a].cx+','+(mn.boxY + mn.h / 2)+' H'+(mn.left ? bx + bw : bx),
622
720
  stroke:'#f59e0b', 'stroke-width':1.2, fill:'none',
623
721
  'stroke-dasharray':'3 3'}, content);
624
722
  }
@@ -785,6 +883,26 @@ for (var nb1 = 0; nb1 < noteBoxes.length; nb1++) {
785
883
  for (var nb2 = nb1 + 1; nb2 < noteBoxes.length; nb2++) {
786
884
  if (rectsOverlap(noteBoxes[nb1][0], noteBoxes[nb2][0])) collide.push('노트끼리 겹침');
787
885
  }
886
+ // ★ 노트가 **활성 막대**를 덮는지. 카드, 노트, 생명선은 보면서 막대는 아무도 안 봤다.
887
+ // 막대는 깊이만큼 오른쪽으로 밀리므로 NOTE_OFF(26) 만 띄우면 5겹부터 밑에 깔린다(실측).
888
+ // ⚠️ **한 열짜리 노트만 본다.** 두 열에 걸친 노트는 그 구간을 덮는 것이 설계다
889
+ // (from~to 를 가리킨다고 해놓고 가운데만 떠 있으면 어디 얘기인지 모른다).
890
+ // 그걸 안 가리고 다 보면 걸친 노트 + 열린 막대가 **1겹부터 무조건** 걸려서
891
+ // 멀쩡한 그림이 거부된다(코덱스 2차 지적, 실측으로 재현).
892
+ var nOwn = noteBoxes[nb1][2];
893
+ var spanning = (nOwn.lo !== nOwn.hi);
894
+ for (i = 0; i < P.length; i++) {
895
+ // 걸친 노트는 **제 구간 안**을 덮는 것이 설계다. 그 밖은 덮으면 안 된다.
896
+ // 한 열짜리는 생명선 옆에 매달리는 것이라 제 막대도 덮으면 안 된다.
897
+ if (spanning && i >= nOwn.lo && i <= nOwn.hi) continue;
898
+ for (var ab2 = 0; ab2 < ACT[i].length; ab2++) {
899
+ var bb = ACT[i][ab2];
900
+ if (rectsOverlap(noteBoxes[nb1][0], {x:P[i].cx + bb.depth * BAR_STEP - BAR_W / 2,
901
+ y:bb.y1, w:BAR_W, h:Math.max(20, bb.y2 - bb.y1)})) {
902
+ collide.push('노트가 ' + P[i].name + ' 의 활성막대를 덮음 (막대 몫만큼 더 비켜야 한다)');
903
+ }
904
+ }
905
+ }
788
906
  var own = noteBoxes[nb1][2];
789
907
  for (i = 0; i < P.length; i++) {
790
908
  if (i >= own.lo && i <= own.hi) continue;
@@ -1 +1 @@
1
- {"version":3,"file":"sequence.js","sourceRoot":"","sources":["../../src/render/sequence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sequence.js","sourceRoot":"","sources":["../../src/render/sequence.ts"],"names":[],"mappings":"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"}
@@ -523,6 +523,12 @@ export function registerImageTools(server, client) {
523
523
  '라벨이 안 들어가면 글자를 줄이는 게 아니라 그 구간을 넓히고, 길면 접고, 접힌 만큼 행을 높인다.\n' +
524
524
  '메시지는 배열 순서가 곧 시간 순서다. 중간에 하나를 끼워 넣어도 아래가 알아서 밀린다.\n' +
525
525
  '구성도나 흐름도(시간 축이 없는 그림)는 velog_render_diagram 을 쓸 것.\n' +
526
+ '**깔끔하게 나오는 건 레이아웃이 아니라 입력이 정한다.** 세로 길이를 지배하는 셋:\n' +
527
+ '- `call` 에는 짝이 되는 `return` 을 붙인다. 안 닫힌 활성 막대는 계단처럼 겹쳐 쌓인다.\n' +
528
+ '- `note` 는 한 줄로 쓴다. 접힌 줄 수만큼 그 행이 통째로 높아진다.\n' +
529
+ '- 구분 기호(& ? = / , ; |)가 있는 긴 라벨은 렌더러가 그 뒤에서 끊는다. 그런 기호가 없는 긴 한글 토큰만 직접 끊어주면 된다.\n' +
530
+ '⚠️ **자가감사 통과는 「보기 좋다」가 아니다.** 감사는 기하만 본다 — 삐져나옴, 겹침, 관통, 상자 범위. ' +
531
+ '쌓인 막대도 어색한 줄바꿈도 통과시킨다.\n' +
526
532
  '감사에 걸리면 **올리지 않고** 무엇이 문제인지 알려준다. 이 판단은 끌 수 없고, ' +
527
533
  '감사에 걸린 산출물은 velog_upload_image 로도 받지 않는다.\n' +
528
534
  `종류: ${SEQ_KINDS.join(' ')}\n아이콘: ${ICON_NAMES.join(' ')}\n톤: ${TONE_NAMES.join(' ')}`,
@@ -538,7 +544,7 @@ export function registerImageTools(server, client) {
538
544
  .array(messageSchema)
539
545
  .min(1)
540
546
  .max(200)
541
- .describe('배열 순서가 시간 순서다'),
547
+ .describe('배열 순서가 시간 순서다. call 마다 짝이 되는 return 을 넣어야 활성 막대가 닫힌다'),
542
548
  fragments: z
543
549
  .array(fragmentSchema)
544
550
  .max(12)
@@ -1 +1 @@
1
- {"version":3,"file":"images.js","sourceRoot":"","sources":["../../src/tools/images.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"images.js","sourceRoot":"","sources":["../../src/tools/images.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,20 @@
2
2
 
3
3
  - 날짜: 2026-07-31
4
4
  - 상태: 채택
5
+ - 숫자 정정: 2026-08-24 (아래 배너)
6
+
7
+ > ⚠️ **아래 본문의 도구 개수는 2026-07-31 당시 값이다.** 0.7.0 에서 시퀀스 다이어그램
8
+ > 도구 `velog_render_sequence` 를 넣어, 지금은 도구가 **22개**이고 크롬이 필요한 그림
9
+ > 도구는 `velog_render_diagram`, `velog_render_sequence`, `velog_render_cover` **셋**이다.
10
+ > 본문의 "둘"과 "21개"는 그때 무엇을 확인했는지의 기록이라 고쳐 쓰지 않는다
11
+ > (ADR 0001, 0002, 0004 와 같은 방식이다). 지금 값은 [`docs/tools.md`](../tools.md) 가 기준이다.
12
+ >
13
+ > 정정보다 중요한 건 **이 문서가 예고한 장치가 실제로 걸렸다**는 것이다. 아래
14
+ > "3차에서 나온 것" 절은 개수 대신 이름을 적고 렌더 호출 지점을 함께 세기로 하면서
15
+ > 「세 번째 도구가 렌더를 쓰기 시작하면 목록이 낡았다고 실패한다」고 적어뒀다.
16
+ > 그 세 번째 도구가 실제로 생겼고, `CHROME_TOOLS` 에서 이름 하나를 빼보면 지금도
17
+ > P22 가 «렌더를 부르는 도구와 CHROME_TOOLS 가 다르다» 로 멈춰 세운다(변이로 확인).
18
+ > 안내가 조용히 낡을 자리를 그때 미리 막아둔 셈이다.
5
19
 
6
20
  ## 맥락
7
21
 
package/docs/tools.md CHANGED
@@ -367,8 +367,9 @@ terminal network mail search retry bolt
367
367
 
368
368
  - **메시지 배열 순서가 곧 시간 순서다.** 중간에 끼워 넣으면 아래가 알아서 밀린다.
369
369
  - **글자를 줄이지 않고 자리를 넓힌다.** 라벨이 두 열 사이에 안 들어가면 그 구간의
370
- 열 간격을 늘리고, 길면 접고, 접힌 만큼 그 행을 높인다. 한글처럼 띄어쓰기가 없는
371
- 토큰은 글자 단위로 접는다.
370
+ 열 간격을 늘리고, 길면 접고, 접힌 만큼 그 행을 높인다. 공백이 없는 긴 토큰은
371
+ 먼저 구분 기호(`& ? = / , ; |`) 뒤에서 끊고, 그래도 안 되면 글자 단위로 내려간다.
372
+ `_` `.` `-` 는 일부러 뺐다 — 식별자 안에 흔해서 거기서 끊으면 글자 단위와 다를 게 없다.
372
373
  - **활성 막대는 자동이다.** `call` 이 열고 `return` 이 닫는다. 안 닫힌 것은 그
373
374
  참가자가 마지막으로 관여한 지점까지 끈다. 겹치면 안쪽으로 계단이 진다.
374
375
  - **생명선에는 화살촉이 없다.** 이 도구를 따로 만든 이유 중 하나다 —
@@ -384,7 +385,26 @@ terminal network mail search retry bolt
384
385
  | `note` | 노란 상자 | 선이 아니라 설명. 순서 안에 끼워 넣는다 |
385
386
 
386
387
  `from` 과 `to` 가 같으면 자기호출이 되어 오른쪽으로 고리를 그린다.
387
- `note` 는 `to` 를 생략하면 그 열 오른쪽에 붙고, 주면 두 열 사이에 걸친다.
388
+ `note` 는 `to` 를 생략하면 그 열 **옆**에 붙고, 주면 두 열 사이에 걸친다.
389
+ 한 열짜리 노트가 왼쪽에 붙을지 오른쪽에 붙을지는 **덜 벌리는 쪽**으로 렌더러가 정한다 —
390
+ 양쪽이 같으면 오른쪽이다. 첫 열은 왼쪽에 열이 없어 오른쪽, 마지막 열은 흡수할 간격이
391
+ 없어 왼쪽이 유리하다. 어느 쪽에 붙든 생명선까지 짧은 연결선을 긋는다.
392
+
393
+ #### 깔끔하게 나오게 쓰는 법
394
+
395
+ **세로 길이를 정하는 건 레이아웃이 아니라 입력이다.** 같은 그림을 두 번 그려
396
+ 2904×2508 에서 **2370×2178** 로 줄인 실측이 있다. 바꾼 건 셋뿐이다.
397
+
398
+ 1. **`call` 마다 짝이 되는 `return` 을 넣는다.** 응답 없이 호출만 연달아 던지면
399
+ 막대가 안 닫힌 채 계단처럼 쌓인다. 짝을 맞추면 하나씩 열렸다 닫힌다.
400
+ 2. **`note` 는 한 줄로 쓴다.** 라벨이 길면 접고 접힌 만큼 행을 높이므로,
401
+ 설명 한 줄이 세 줄이 되면 그 행이 세 배가 된다. 덜 중요한 설명은 아예 뺀다.
402
+ 3. **긴 라벨은 렌더러가 구분 기호 뒤에서 끊는다.** `& ? = / , ; |` 가 그 자리다.
403
+ `…&keyversion=v3&USE_INTT_ID=PSNM_1` 을 그대로 줘도 `USE_INTT_ID` 는 안 갈라진다.
404
+ 구분 기호가 없는 긴 한글 토큰만 글자 단위로 내려가므로, 그때는 직접 띄어주면 낫다.
405
+
406
+ ⚠️ 셋 다 **자가감사를 통과한다.** 계단처럼 쌓인 막대도 어색하게 끊긴 라벨도
407
+ 겹침 0건으로 나온다. 감사는 렌더러의 계산이 틀렸는지만 보기 때문이다. **눈으로 봐야 한다.**
388
408
 
389
409
  #### 묶음 상자 (`fragments`)
390
410
 
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@milcho0604/velog-mcp",
3
- "version": "0.7.2",
3
+ "version": "0.8.6",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@milcho0604/velog-mcp",
9
- "version": "0.7.2",
9
+ "version": "0.8.6",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "@modelcontextprotocol/sdk": "^1.30.0",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milcho0604/velog-mcp",
3
- "version": "0.7.2",
3
+ "version": "0.8.6",
4
4
  "mcpName": "io.github.milcho0604/velog",
5
5
  "description": "벨로그(velog.io) MCP 서버 — 조회·검색·통계는 인증 없이 동작하고, 쓰기는 초안과 비공개 발행이 기본이다. 공개 발행은 VELOG_ALLOW_PUBLIC=1 로 사용자만 켤 수 있다. 문서 없는 벨로그 GraphQL 동작을 실측해 정리했다. 런타임 의존성 2개, Node 22.18+",
6
6
  "type": "module",