viruagent-cli 0.6.0 → 0.6.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "viruagent-cli",
3
- "version": "0.6.0",
3
+ "version": "0.6.1",
4
4
  "description": "AI-agent-optimized CLI for blog publishing (Tistory, Naver) and Instagram automation",
5
5
  "private": false,
6
6
  "type": "commonjs",
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: va-naver-publish
3
- version: 1.0.0
4
- description: "Naver: 블로그 글 발행 (plain HTML + SE Editor 변환)"
3
+ version: 2.0.0
4
+ description: "Naver: 블로그 글 발행 5종 포맷 템플릿 (story/howto/list/review/qa)"
5
5
  metadata:
6
6
  category: "command"
7
7
  provider: "naver"
@@ -17,14 +17,14 @@ metadata:
17
17
  ```bash
18
18
  npx viruagent-cli publish \
19
19
  --provider naver \
20
- --title "Post Title" \
20
+ --title "제목 (15~25자, 핵심 키워드 앞배치)" \
21
21
  --content "<h2>...</h2><p>...</p>" \
22
22
  --category <id> \
23
23
  --tags "tag1,tag2,tag3,tag4,tag5" \
24
24
  --visibility public \
25
- --related-image-keywords "keyword1,keyword2" \
26
- --image-upload-limit 1 \
27
- --minimum-image-count 1
25
+ --related-image-keywords "keyword1 keyword2 keyword3" \
26
+ --image-upload-limit 5 \
27
+ --minimum-image-count 3
28
28
  ```
29
29
 
30
30
  ### 옵션
@@ -38,53 +38,293 @@ npx viruagent-cli publish \
38
38
  | `--tags` | 쉼표 구분 태그 (5개) | - |
39
39
  | `--visibility` | public / private | public |
40
40
  | `--related-image-keywords` | 이미지 검색 키워드 (영어) | - |
41
- | `--image-upload-limit` | 최대 이미지 수 | 1 |
42
- | `--minimum-image-count` | 최소 이미지 수 | 1 |
41
+ | `--image-upload-limit` | 최대 이미지 수 | 5 |
42
+ | `--minimum-image-count` | 최소 이미지 수 | 3 |
43
43
  | `--dry-run` | 파라미터만 검증 | false |
44
44
 
45
- ## HTML 템플릿
45
+ ---
46
+
47
+ ## 네이버 SEO 핵심 원칙
48
+
49
+ - **제목**: 15~25자, 핵심 키워드를 앞쪽에 배치
50
+ - **글자 수**: 1,500~2,500자 (경쟁 키워드는 2,500~3,500자)
51
+ - **이미지**: 소제목마다 1장씩 총 5~10장 권장 (직접 촬영/제작 우선)
52
+ - **키워드**: 제목+본문 합산 5~6개, 단락당 1~2개 자연스럽게 분산
53
+ - **소제목 간격**: 300~400자마다 `<h2>` 1개 (h3 사용 금지)
54
+ - **체류시간 신호**: D.I.A. 알고리즘은 실제 스크롤 깊이와 체류시간을 측정
55
+ - **경험 문장**: 단락마다 직접 경험 기반 문장 1개 이상 필수 (AI 탐지 회피)
56
+
57
+ ### 피해야 할 패턴
58
+ - `data-ke-*` 속성 사용 금지 (일반 HTML만)
59
+ - 키워드 3회 이상 연속 반복 금지
60
+ - 3단락 공식 반복 (도입→근거→요약) 패턴 — AI 탐지 위험
61
+ - 균일한 문장 길이 — 짧은 문장과 긴 문장을 의도적으로 섞을 것
62
+
63
+ ---
64
+
65
+ ## 서론 후킹 패턴 3종 (첫 3문장이 체류시간 결정)
66
+
67
+ ### 패턴 A — 공감형 (범용, 정보성 글)
68
+ ```html
69
+ <p>[독자가 이미 겪고 있는 상황을 1문장으로 정확히 표현]</p>
70
+ <p>그런데 사실 그 이유는 생각보다 단순합니다. [반전 핵심 한 줄]</p>
71
+ <p>이 글에서는 [구체적 약속 — 읽으면 얻는 것]을 다룹니다.</p>
72
+ ```
73
+
74
+ ### 패턴 B — 손실 회피형 (경쟁 키워드, 클릭 유지)
75
+ ```html
76
+ <blockquote>[모르면 손해인 핵심 한 줄. 구체적 수치 포함]</blockquote>
77
+ <p>실제로 [통계나 사례 — 신뢰 부여]. 대부분은 이 차이를 모르고 넘어갑니다.</p>
78
+ <p>지금부터 [해결책 예고]를 정리해 드립니다.</p>
79
+ ```
80
+
81
+ ### 패턴 C — 질문형 (전문성 어필, 심화 콘텐츠)
82
+ ```html
83
+ <p>[독자가 검색창에 치는 질문을 그대로 첫 문장으로]</p>
84
+ <p>[데이터나 통계로 문제의 크기를 보여줌]. 저도 처음엔 이 답을 찾는 데 [시간]이 걸렸습니다.</p>
85
+ <p>지금부터 [핵심 내용 예고]합니다.</p>
86
+ ```
87
+
88
+ ---
89
+
90
+ ## 포맷 5종 템플릿
91
+
92
+ 글 성격에 맞는 포맷을 선택하세요. **기본 추천: story형** (체류시간 최고, AI 탐지 회피 최적).
93
+
94
+ ---
95
+
96
+ ### 1. story형 — 스토리텔링 (체류시간 최고, AI 탐지 낮음)
97
+ 경험 후기, 사례 공유, 인사이트 전달에 적합.
46
98
 
47
99
  ```html
48
- <!-- 1. Hook -->
49
- <blockquote>[한 문장 임팩트]</blockquote>
100
+ <!-- 후킹: 패턴 A 또는 C -->
101
+ <blockquote>[임팩트 줄 — 독자의 상황을 대변하는 문장]</blockquote>
50
102
  <p>&nbsp;</p>
51
103
 
52
- <!-- 2. 서론 (2~3단락) -->
53
- <p>[맥락과 공감, 3~5문장]</p>
54
- <p>[이 글에서 다룰 내용]</p>
104
+ <p>[독자 공감 + 내 경험으로 연결 — 3~5문장. "저도 그랬습니다" 식으로 시작]</p>
105
+ <p>[ 글에서 다룰 내용 예고 — 구체적으로]</p>
55
106
  <p>&nbsp;</p>
56
107
 
57
- <!-- 3. 본문 (3~4 섹션) -->
58
- <h2>[섹션 제목]</h2>
59
- <p>[3~5문장, 근거 포함]</p>
60
- <p>[분석과 시사점]</p>
108
+ <h2>[섹션 1 문제 상황 묘사]</h2>
109
+ <p>[직접 겪은 구체적 상황 — 날짜, 수치, 감정 포함. 3~5문장]</p>
110
+ <p>[ 상황에서 발견한 인사이트 — 독자가 몰랐던 관점]</p>
111
+ <p>&nbsp;</p>
112
+
113
+ <h2>[섹션 2 — 전환점 또는 발견]</h2>
114
+ <p>[문제를 어떻게 바라보게 됐는지 — BAB 구조의 After 단계]</p>
115
+ <p>[구체적 수치나 결과 언급]</p>
116
+ <p>&nbsp;</p>
117
+
118
+ <h2>[섹션 3 — 실전 적용법]</h2>
119
+ <p>[독자가 바로 쓸 수 있는 방법 — 단계보다 맥락 중심으로]</p>
120
+ <p>[예상 실패 포인트와 극복법 — 경험 기반으로]</p>
121
+ <p>&nbsp;</p>
122
+
123
+ <h2>[섹션 4 — 의외의 발견 또는 여담]</h2>
124
+ <p>[예상 못한 결과나 부가적 인사이트 — 이 섹션이 인간미를 만듦]</p>
125
+ <p>&nbsp;</p>
126
+
127
+ <h2>마무리</h2>
128
+ <p>[핵심 요약 — 1~2문장]</p>
129
+ <p>[독자에게 구체적 행동 제안 — "지금 당장 해볼 수 있는 한 가지"]</p>
130
+ <p>[공유/댓글 유도 — 자연스럽게]</p>
131
+ ```
132
+
133
+ ---
134
+
135
+ ### 2. howto형 — 튜토리얼 (정보 쿼리 1위, 체류시간 높음)
136
+ 설치법, 사용법, 단계별 가이드에 적합.
137
+
138
+ ```html
139
+ <!-- 후킹: 패턴 B -->
140
+ <blockquote>[이 글 하나로 [X] 할 수 있습니다 — 구체적 약속]</blockquote>
141
+ <p>&nbsp;</p>
142
+
143
+ <p>[왜 이 방법이 필요한지 — 기존 방식의 문제점. 2~3문장]</p>
144
+ <p>[이 글을 끝까지 읽으면 얻는 것 — 구체적]</p>
145
+ <p>&nbsp;</p>
146
+
147
+ <h2>시작 전 준비물</h2>
148
+ <p>[필요한 것들을 설명 — 단순 나열이 아닌 왜 필요한지 이유 포함]</p>
149
+ <ul>
150
+ <li>[준비물 1] — [이유]</li>
151
+ <li>[준비물 2] — [이유]</li>
152
+ </ul>
153
+ <p>&nbsp;</p>
154
+
155
+ <h2>1단계 — [단계명]</h2>
156
+ <p>[무엇을 하는 단계인지 먼저 설명 — 맥락 제공]</p>
157
+ <p>[구체적 방법 — 스크린샷/이미지 직후 텍스트로 설명]</p>
158
+ <p>[이 단계에서 흔히 하는 실수와 예방법]</p>
159
+ <p>&nbsp;</p>
160
+
161
+ <h2>2단계 — [단계명]</h2>
162
+ <p>[맥락 → 방법 → 주의사항 순서]</p>
163
+ <p>&nbsp;</p>
164
+
165
+ <h2>3단계 — [단계명]</h2>
166
+ <p>[맥락 → 방법 → 주의사항 순서]</p>
167
+ <p>&nbsp;</p>
168
+
169
+ <h2>완료 확인 방법</h2>
170
+ <p>[잘 됐는지 확인하는 방법 — 직접 경험 기반으로]</p>
171
+ <p>&nbsp;</p>
172
+
173
+ <h2>자주 묻는 질문</h2>
174
+ <p><strong>Q. [가장 흔한 질문]</strong></p>
175
+ <p>A. [구체적 답변]</p>
176
+ <p>&nbsp;</p>
177
+ <p><strong>Q. [두 번째 질문]</strong></p>
178
+ <p>A. [구체적 답변]</p>
179
+ <p>&nbsp;</p>
180
+
181
+ <p>[마무리 — 완료 축하 + 다음 단계 제안]</p>
182
+ ```
183
+
184
+ ---
185
+
186
+ ### 3. list형 — 리스트 정리 (CTR 높음, 초기 트래픽 확보)
187
+ "베스트 N", "추천 N선", 비교 정리글에 적합. 단, 단순 나열 금지.
188
+
189
+ ```html
190
+ <!-- 후킹: 패턴 B -->
191
+ <blockquote>[N가지 중 실제로 쓸 만한 건 [X]개입니다 — 기대 역전]</blockquote>
192
+ <p>&nbsp;</p>
193
+
194
+ <p>[왜 이 목록이 필요한지 — 선택의 어려움 공감. 2~3문장]</p>
195
+ <p>[선별 기준 명시 — "제가 직접 [기간] 동안 사용/테스트한 기준으로"]</p>
196
+ <p>&nbsp;</p>
197
+
198
+ <h2>1. [항목명] — [핵심 특징 한 줄]</h2>
199
+ <p>[이게 왜 1위인지 — 단순 설명이 아닌 직접 경험 기반 이유]</p>
200
+ <p>[구체적 수치나 사례. 단점도 솔직하게 1~2줄]</p>
201
+ <p>&nbsp;</p>
202
+
203
+ <h2>2. [항목명] — [핵심 특징 한 줄]</h2>
204
+ <p>[특징과 실사용 경험 — 앞 항목과 차별점 명시]</p>
205
+ <p>&nbsp;</p>
206
+
207
+ <h2>3. [항목명] — [핵심 특징 한 줄]</h2>
208
+ <p>[특징과 실사용 경험]</p>
209
+ <p>&nbsp;</p>
210
+
211
+ <!-- 4~N개 동일 패턴 반복 -->
212
+
213
+ <h2>한눈에 비교</h2>
214
+ <p>[표로 정리 — 3개 이상 항목 비교 시 가독성 최고]</p>
215
+ <p>&nbsp;</p>
216
+
217
+ <h2>결론 — 상황별 추천</h2>
218
+ <p>[모든 사람에게 같은 걸 추천하지 말 것 — 상황별 최적 선택 제시]</p>
219
+ <p>[내 개인 픽 + 이유]</p>
220
+ <p>&nbsp;</p>
221
+
222
+ <p>[댓글 유도 — "여러분이 써본 것 중 좋았던 건 무엇인가요?"]</p>
223
+ ```
224
+
225
+ ---
226
+
227
+ ### 4. review형 — 분석/리뷰 (전문성 최고, AI 탐지 낮음)
228
+ 도구 분석, 서비스 리뷰, 책/영상 리뷰에 적합.
229
+
230
+ ```html
231
+ <!-- 후킹: 패턴 C -->
232
+ <blockquote>[핵심 결론을 먼저 — "결론부터 말하면: [한 줄 평가]"]</blockquote>
233
+ <p>&nbsp;</p>
234
+
235
+ <p>[어떤 계기로 사용/분석하게 됐는지 — 배경 스토리. 2~3문장]</p>
236
+ <p>[이 리뷰의 관점/기준 명시 — "저는 [직군/상황]의 입장에서 평가했습니다"]</p>
237
+ <p>&nbsp;</p>
238
+
239
+ <h2>한줄 요약</h2>
240
+ <p>[장점 2~3가지 + 단점 1~2가지를 솔직하게. 단점 없는 리뷰는 신뢰도 하락]</p>
241
+ <p>&nbsp;</p>
242
+
243
+ <h2>[분석 섹션 1 — 가장 중요한 특징]</h2>
244
+ <p>[특징 설명 → 실제 사용 경험 → 내 평가 순서]</p>
245
+ <p>[수치나 비교 대상 포함]</p>
246
+ <p>&nbsp;</p>
247
+
248
+ <h2>[분석 섹션 2]</h2>
249
+ <p>[동일 구조]</p>
250
+ <p>&nbsp;</p>
251
+
252
+ <h2>[분석 섹션 3]</h2>
253
+ <p>[동일 구조]</p>
254
+ <p>&nbsp;</p>
255
+
256
+ <h2>경쟁 제품/서비스와 비교</h2>
257
+ <p>[직접 비교 — 어떤 상황에서 이게 낫고, 어떤 상황에서 다른 게 나은지]</p>
258
+ <p>&nbsp;</p>
259
+
260
+ <h2>이런 분께 추천합니다</h2>
261
+ <p>[타겟을 명확히 — 맞는 사람과 맞지 않는 사람 모두 언급]</p>
262
+ <p>&nbsp;</p>
263
+
264
+ <p>[최종 점수나 별점 + 총평 1~2문장]</p>
265
+ <p>[관련 글 링크 유도]</p>
266
+ ```
267
+
268
+ ---
269
+
270
+ ### 5. qa형 — Q&A (Featured Snippet 최적, 롱테일 키워드)
271
+ 개념 설명, FAQ, "~가 뭔가요?" 쿼리에 적합.
272
+
273
+ ```html
274
+ <!-- 후킹: 패턴 C -->
275
+ <p>[가장 많이 검색되는 질문을 첫 문장으로 — 검색창 그대로]</p>
276
+ <p>[이 질문이 중요한 이유 + 이 글에서 다룰 범위]</p>
277
+ <p>&nbsp;</p>
278
+
279
+ <h2>[핵심 질문 1]</h2>
280
+ <p>[직접 답변 — 첫 문장에 핵심 답 먼저. 검색 의도에 즉각 응답]</p>
281
+ <p>[부연 설명 — 왜 그런지, 어떤 경우에 해당하는지]</p>
282
+ <p>[실제 사례나 예시]</p>
283
+ <p>&nbsp;</p>
284
+
285
+ <h2>[핵심 질문 2]</h2>
286
+ <p>[동일 구조 — 답 먼저, 설명 나중]</p>
287
+ <p>&nbsp;</p>
288
+
289
+ <h2>[핵심 질문 3]</h2>
290
+ <p>[동일 구조]</p>
291
+ <p>&nbsp;</p>
292
+
293
+ <h2>[핵심 질문 4 — 심화 또는 의외의 질문]</h2>
294
+ <p>[이 섹션은 독자가 생각 못 했던 질문 — 전문성 어필]</p>
61
295
  <p>&nbsp;</p>
62
296
 
63
- <!-- 4. 핵심 정리 -->
64
297
  <h2>핵심 정리</h2>
65
298
  <ul>
66
- <li>[핵심 1]</li>
67
- <li>[핵심 2]</li>
68
- <li>[핵심 3]</li>
299
+ <li>[Q1 핵심 답 — 한 줄]</li>
300
+ <li>[Q2 핵심 답 — 한 줄]</li>
301
+ <li>[Q3 핵심 답 — 한 줄]</li>
69
302
  </ul>
70
303
  <p>&nbsp;</p>
71
304
 
72
- <!-- 5. 마무리 -->
73
- <p>[구체적 실행 제안]</p>
305
+ <p>[추가 궁금한 점은 댓글로 — 독자 참여 유도]</p>
74
306
  ```
75
307
 
76
- ### Naver 전용 규칙
308
+ ---
77
309
 
78
- - 일반 `<p>` 태그 사용 — `data-ke-*` 속성 사용 금지
79
- - `<p>&nbsp;</p>`로 여백 처리
80
- - 일반 `<blockquote>` 사용 Naver가 인용 컴포넌트로 자동 변환
81
- - HTML은 SE Editor 컴포넌트로 서버에서 자동 변환
310
+ ## 포맷 선택 가이드
311
+
312
+ | 주제 | 추천 포맷 |
313
+ |---------|---------|
314
+ | 도구/서비스 소개, 경험 공유 | **story** |
315
+ | 설치법, 사용법, 단계별 방법 | **howto** |
316
+ | 추천 목록, 비교 정리 | **list** |
317
+ | 심층 분석, 솔직 리뷰 | **review** |
318
+ | 개념 설명, 자주 묻는 질문 | **qa** |
319
+
320
+ ---
82
321
 
83
322
  ## 이미지 규칙
84
323
 
85
- - `--related-image-keywords`에 영어 키워드 2~3개 항상 포함
86
- - `--image-upload-limit 1`, `--minimum-image-count 1` 설정
87
- - `--no-auto-upload-images`는 사용자 명시 요청 시만
324
+ - `--related-image-keywords`에 영어 키워드 2~3개 (구체적일수록 좋음)
325
+ - `--image-upload-limit 5`, `--minimum-image-count 3` 기본값
326
+ - 소제목 위에 이미지 배치 — "시각 → 텍스트" 순서가 이해 빠름
327
+ - 이미지 없는 글은 네이버 D.I.A. 평가에서 불리
88
328
 
89
329
  ## 발행 후 검증
90
330
 
@@ -100,21 +100,58 @@ npx viruagent-cli --spec <command>
100
100
 
101
101
  ## 글쓰기 규칙 (블로그 공통)
102
102
 
103
- - **제목**: 핵심 키워드 포함. 10~20자. 짧고 임팩트 있게.
104
- - **분량**: 3000~4000자. 깊이 있게, 채우기 아닌 실질 내용.
105
- - **단락**: 3~5문장씩. 1~2문장 단락 반복 금지.
106
- - **서론**: 2~3개 단락으로 맥락과 독자 공감 형성.
107
- - **본문 섹션**: h2 섹션에 2~3개 실질 단락. 바로 목록 나열 금지.
108
- - **목록**: 3개 이상 구체적 항목일 때만 사용.
109
- - **근거**: 본문 섹션마다 전문가 인용, 데이터, 실제 사례 하나 포함.
110
- - **관점 전환**: 독자 생각을 리프레이밍하는 포인트 최소 1곳.
111
- - **전환**: 섹션 간 브릿지 문장으로 연결.
112
- - **강조**: `<strong>`으로 핵심 용어 (섹션당 2~3개 max).
113
- - **소제목**: `<h2>` 사용. `<h3>` 사용 금지.
114
- - **톤**: 대화체이되 실질적 내용.
115
- - **마무리**: 구체적이고 실행 가능한 제안으로 끝.
116
- - **SEO**: 제목, 단락, h2 최소 1곳에 핵심 키워드 배치.
117
- - **태그**: 정확히 5개, 쉼표 구분, 언어와 일치.
103
+ ### 포맷 선택 (글 성격에 따라 결정)
104
+ | 포맷 | 용도 | 체류시간 | AI탐지 위험 |
105
+ |------|------|---------|-----------|
106
+ | **story** | 경험 후기, 사례, 인사이트 | 최고 | 낮음 |
107
+ | **howto** | 설치법, 단계별 가이드 | 높음 | 중간 |
108
+ | **list** | 추천 목록, 비교 정리 | 낮음 | 높음 |
109
+ | **review** | 심층 분석, 솔직 리뷰 | 높음 | 낮음 |
110
+ | **qa** | 개념 설명, FAQ | 중간 | 중간 |
111
+
112
+ **기본 추천: story형** 체류시간 최고, AI 탐지 회피 최적.
113
+
114
+ ### 제목
115
+ - **네이버**: 15~25자, 핵심 키워드 앞배치
116
+ - **티스토리**: 25~35자, 숫자/연도 포함 CTR +23%
117
+ - 키워드는 제목 앞쪽에 뒤에 오면 검색 가중치 낮음
118
+
119
+ ### 분량
120
+ - **네이버**: 1,500~2,500자 (경쟁 키워드 2,500~3,500자)
121
+ - **티스토리**: 3,000~5,000자 (구글 상위 10위 평균 5,000자)
122
+
123
+ ### 서론 (첫 3문장이 체류시간 결정)
124
+ - **공감형**: 독자 상황 공감 → 반전 → 이 글의 약속
125
+ - **손실 회피형**: 모르면 손해 + 수치 → 해결책 예고
126
+ - **질문형**: 검색 쿼리 그대로 → 데이터 → 내용 예고
127
+ - 도입부에 `<blockquote>`로 임팩트 한 줄 배치
128
+
129
+ ### 본문 구조
130
+ - **단락**: 모바일 기준 2~3문장 (최대 4문장). 공백 줄로 호흡 조절
131
+ - **소제목 간격**: 네이버 300~400자마다 `<h2>`, 티스토리 600~1,000자마다 `<h3>`
132
+ - **티스토리 H태그**: `<h2>` → `<h3>` → `<h4>` 계층 준수. 본문에 `<h1>` 사용 금지
133
+ - **네이버**: `<h2>`만 사용 (h3 불필요)
134
+ - **목차**: 티스토리는 3개 이상 섹션이면 앵커 링크 목차 필수
135
+ - **문장 리듬**: 짧은 문장과 긴 문장을 의도적으로 섞기 (균일하면 AI 탐지)
136
+
137
+ ### 이미지
138
+ - **네이버**: 소제목마다 1장, 총 5~10장 권장
139
+ - **티스토리**: 1~3장 + alt 태그 `핵심키워드 + 설명` 형식 필수
140
+ - 이미지는 설명 단락 **위**에 배치 — 시각 → 텍스트 순서
141
+
142
+ ### AI 탐지 회피 필수 규칙
143
+ - 직접 경험 기반 문장 단락마다 1개 이상
144
+ - "~에 대해 알아보겠습니다", "정리하자면", "마무리로" 금지
145
+ - 균일한 3단락 공식(도입→근거→요약) 반복 금지
146
+ - 모든 섹션을 같은 길이로 쓰지 말 것
147
+
148
+ ### 공통
149
+ - **강조**: `<strong>`으로 핵심 용어 (섹션당 2~3개 max)
150
+ - **근거**: 섹션마다 데이터, 수치, 실제 사례 중 하나 포함
151
+ - **내부 링크**: 티스토리는 관련 글 2~4개 연결 (체류시간 35% 연장)
152
+ - **마무리**: 구체적 행동 제안 + 댓글/공유 유도
153
+ - **태그**: 정확히 5개, 쉼표 구분, 글 언어와 일치
154
+ - **SEO**: 제목, 첫 단락, 소제목 최소 1곳에 핵심 키워드 배치
118
155
 
119
156
  ## 공통 에러 처리
120
157