@modootoday/datalab-extension-mcp 1.7.0 → 1.8.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/README.en.md +55 -9
- package/README.md +47 -9
- package/dist/browsers-KHRZKQVP.js +119 -0
- package/dist/{dist-WMNHKGZR.js → chunk-5S7RFXIU.js} +1032 -442
- package/dist/chunk-6JBLBCLU.js +17524 -0
- package/dist/chunk-NKUU3DAF.js +15888 -0
- package/dist/cli.js +64 -4
- package/dist/dist-JICXADYR.js +105 -0
- package/dist/index.d.ts +22 -4
- package/dist/index.js +2 -1
- package/dist/skills-ACWHUGX7.js +101 -0
- package/package.json +3 -5
- package/skills/datalab-ad-disclosure-check/SKILL.md +74 -0
- package/skills/datalab-ad-disclosure-check/references/ad-disclosure-rules.md +98 -0
- package/skills/datalab-ad-disclosure-check/references/naver-terms-excerpt.md +28 -0
- package/skills/datalab-blog-widget/SKILL.md +65 -0
- package/skills/datalab-blog-widget/references/naver-constraints.md +51 -0
- package/skills/datalab-blog-widget/references/templates.md +123 -0
- package/skills/datalab-card-news/SKILL.md +93 -0
- package/skills/datalab-card-news/references/slide-structure.md +48 -0
- package/skills/datalab-cta-rewrite/SKILL.md +55 -0
- package/skills/datalab-cta-rewrite/references/output-format.md +24 -0
- package/skills/datalab-cta-rewrite/references/principles.md +36 -0
- package/skills/datalab-material-suggestion/SKILL.md +70 -0
- package/skills/datalab-material-suggestion/references/discovery.md +47 -0
- package/skills/datalab-material-suggestion/references/output-format.md +41 -0
- package/skills/datalab-photo-prompt/SKILL.md +52 -0
- package/skills/datalab-photo-prompt/references/prompt-dimensions.md +43 -0
- package/skills/datalab-photo-prompt/references/style-vocabulary.md +35 -0
- package/skills/datalab-reader-simulation/SKILL.md +83 -0
- package/skills/datalab-reader-simulation/references/checklist-format.md +36 -0
- package/skills/datalab-research-brief/SKILL.md +77 -0
- package/skills/datalab-research-brief/references/brief-format.md +39 -0
- package/skills/datalab-social-repurpose/SKILL.md +70 -0
- package/skills/datalab-social-repurpose/references/output-format.md +43 -0
- package/skills/datalab-social-repurpose/references/platform-specs.md +44 -0
- package/skills/datalab-tone-manner/SKILL.md +59 -0
- package/skills/datalab-tone-manner/references/analysis-dimensions.md +51 -0
- package/skills/datalab-tone-manner/references/spec-format.md +58 -0
- package/skills/datalab-tutorial-post/SKILL.md +61 -0
- package/skills/datalab-tutorial-post/references/analogy-and-case-templates.md +37 -0
- package/skills/datalab-tutorial-post/references/structure-and-length.md +22 -0
- package/skills/datalab-tutorial-post/references/tone-and-hooks.md +26 -0
- package/skills/datalab-video-script/SKILL.md +84 -0
- package/skills/datalab-video-script/references/scene-structure.md +41 -0
- package/skills/datalab-video-script/references/writing-for-the-ear.md +22 -0
- package/dist/chunk-NYUIYZG6.js +0 -32468
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# 네이버 블로그 HTML 제약
|
|
2
|
+
|
|
3
|
+
네이버가 정책을 바꿨을 수 있다 — 이 문서와 실제 에디터의 반응이 다르면 에디터 쪽을 믿는다.
|
|
4
|
+
|
|
5
|
+
## 허용 태그
|
|
6
|
+
|
|
7
|
+
`span` `br` `hr` `img` `a` — 이 다섯만. `div` · `p` · `h1`~`h6` · `ul` · `ol` · `li` ·
|
|
8
|
+
`table` · `form` · `input` · `button` · `iframe` · 스크립트 · `style` · `link` 전부 막힌다.
|
|
9
|
+
|
|
10
|
+
## 필수 속성
|
|
11
|
+
|
|
12
|
+
- 링크: `href` 와 `target="_top"` (`_blank` 나 생략은 깨진다)
|
|
13
|
+
- 이미지: `src` 와 `alt`
|
|
14
|
+
|
|
15
|
+
## 크기
|
|
16
|
+
|
|
17
|
+
- 위젯(사이드바): 폭 170px 고정, 최대 높이 600px, 최대 2,000바이트(UTF-8)
|
|
18
|
+
- 프로필·섹션(본문): 폭 고정 없음, `max-width:960px` 만
|
|
19
|
+
|
|
20
|
+
## 금지
|
|
21
|
+
|
|
22
|
+
- `<style>` · `<link>` · class 속성 — 스타일은 반드시 인라인 `style` 속성으로
|
|
23
|
+
- 모든 이벤트 핸들러, `javascript:` 스킴, CSS `expression(`, `@import`
|
|
24
|
+
- `position:fixed`
|
|
25
|
+
- 링크 안에 링크 중첩
|
|
26
|
+
|
|
27
|
+
## 구조 대체표
|
|
28
|
+
|
|
29
|
+
| 원래 태그 | 대체 |
|
|
30
|
+
| --------- | --------------------------------------------- |
|
|
31
|
+
| `div` | `span` + `display:block` |
|
|
32
|
+
| `p` | margin 준 block span |
|
|
33
|
+
| `h1`~`h6` | font-size·weight 준 span |
|
|
34
|
+
| `ul`·`li` | "• " 접두 block span |
|
|
35
|
+
| `table` | `display:grid` 또는 `display:table` span 조합 |
|
|
36
|
+
| `button` | `target="_top"` 링크에 스타일 |
|
|
37
|
+
|
|
38
|
+
## 바이트 절약
|
|
39
|
+
|
|
40
|
+
- 색상 6자리를 3자리로 (`#ffffff` → `#fff`)
|
|
41
|
+
- `0px` · `0em` → `0`
|
|
42
|
+
- margin·padding 개별 지정 대신 결합 (`margin:10px 0`)
|
|
43
|
+
- font 관련 속성을 `font:` 단축형으로
|
|
44
|
+
- 콜론·세미콜론 주변 공백 제거
|
|
45
|
+
|
|
46
|
+
넘치면 이 순서로 뺀다: 장식(그림자·모서리) → 전환효과 → 보조 색상 → 폰트 변형 → 간격.
|
|
47
|
+
|
|
48
|
+
## 인코딩 비용
|
|
49
|
+
|
|
50
|
+
ASCII 1바이트, 한글 3바이트, 이모지 4바이트 — 본문에 한글이 많으면 2,000바이트가 금방
|
|
51
|
+
찬다. 이모지는 문자 그대로 쓰지 말고 엔티티로.
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# 기준 템플릿
|
|
2
|
+
|
|
3
|
+
전부 `references/naver-constraints.md` 의 다섯 태그 규칙을 지킨다. `[ ]` 는 자리표시자다.
|
|
4
|
+
|
|
5
|
+
## 위젯 — 프로필 카드 (170px)
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<span style="width:170px;font:11px -apple-system,sans-serif">
|
|
9
|
+
<span
|
|
10
|
+
style="background:#fff;border:1px solid #ddd;border-radius:6px;padding:12px;text-align:center;display:block"
|
|
11
|
+
>
|
|
12
|
+
<span
|
|
13
|
+
style="width:48px;height:48px;margin:0 auto 8px;border-radius:50%;overflow:hidden;display:block"
|
|
14
|
+
><img
|
|
15
|
+
src="[이미지URL]"
|
|
16
|
+
style="width:100%;height:100%;object-fit:cover"
|
|
17
|
+
alt="프로필"
|
|
18
|
+
/></span>
|
|
19
|
+
<span style="font-weight:600;font-size:12px;display:block">[이름]</span>
|
|
20
|
+
<span style="color:#666;font-size:10px;display:block">[한줄소개]</span>
|
|
21
|
+
</span>
|
|
22
|
+
</span>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## 위젯 — 방문자 카운터 (170px)
|
|
26
|
+
|
|
27
|
+
숫자는 실제 값을 가져왔을 때만 채우고 기준 날짜를 붙인다. 아니면 `0000`.
|
|
28
|
+
|
|
29
|
+
```html
|
|
30
|
+
<span style="width:170px;font:11px -apple-system,sans-serif">
|
|
31
|
+
<span
|
|
32
|
+
style="background:#03c75a;color:#fff;padding:16px;border-radius:6px;text-align:center;display:block"
|
|
33
|
+
>
|
|
34
|
+
<span style="font-size:24px;font-weight:700;display:block">[0000]</span>
|
|
35
|
+
<span style="font-size:10px;opacity:.9;display:block"
|
|
36
|
+
>오늘 방문자 · [기준일]</span
|
|
37
|
+
>
|
|
38
|
+
</span>
|
|
39
|
+
</span>
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## 위젯 — 최근 게시물 (170px)
|
|
43
|
+
|
|
44
|
+
실제 게시물 URL을 모르면 `href="#"` 로 두고 사용자에게 채워달라고 말한다.
|
|
45
|
+
|
|
46
|
+
```html
|
|
47
|
+
<span style="width:170px;font:11px -apple-system,sans-serif">
|
|
48
|
+
<span
|
|
49
|
+
style="background:#fff;border:1px solid #ddd;border-radius:6px;padding:10px;display:block"
|
|
50
|
+
>
|
|
51
|
+
<span style="font-weight:600;color:#03c75a;font-size:12px;display:block"
|
|
52
|
+
>최근 게시물</span
|
|
53
|
+
>
|
|
54
|
+
<span style="display:block;padding:6px 0;border-bottom:1px solid #f0f0f0">
|
|
55
|
+
<a
|
|
56
|
+
href="[게시물URL]"
|
|
57
|
+
target="_top"
|
|
58
|
+
style="display:block;color:#333;text-decoration:none;font-size:10px"
|
|
59
|
+
>[제목]</a
|
|
60
|
+
>
|
|
61
|
+
<span style="color:#888;font-size:9px;display:block">[날짜]</span>
|
|
62
|
+
</span>
|
|
63
|
+
</span>
|
|
64
|
+
</span>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## 위젯·카테고리 — 메뉴 목록 (170px)
|
|
68
|
+
|
|
69
|
+
hover 효과 없음(구현 불가). 정적 스타일만.
|
|
70
|
+
|
|
71
|
+
```html
|
|
72
|
+
<span style="width:170px;font:11px -apple-system,sans-serif">
|
|
73
|
+
<span
|
|
74
|
+
style="background:#fff;border:1px solid #ddd;border-radius:6px;padding:10px;display:block"
|
|
75
|
+
>
|
|
76
|
+
<span style="font-weight:600;color:#03c75a;font-size:12px;display:block"
|
|
77
|
+
>카테고리</span
|
|
78
|
+
>
|
|
79
|
+
<a
|
|
80
|
+
href="[URL]"
|
|
81
|
+
target="_top"
|
|
82
|
+
style="display:block;padding:6px 8px;color:#333;text-decoration:none;font-size:10px;border-bottom:1px solid #f0f0f0"
|
|
83
|
+
>[카테고리명] ([0000])</a
|
|
84
|
+
>
|
|
85
|
+
</span>
|
|
86
|
+
</span>
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## 프로필 섹션 (본문)
|
|
90
|
+
|
|
91
|
+
```html
|
|
92
|
+
<span style="display:block;max-width:960px;margin:0 auto;padding:20px">
|
|
93
|
+
<span
|
|
94
|
+
style="display:block;text-align:center;padding:40px 20px;background:#f8f9fa;border-radius:12px"
|
|
95
|
+
>
|
|
96
|
+
<span
|
|
97
|
+
style="width:120px;height:120px;margin:0 auto 20px;border-radius:50%;overflow:hidden;display:block"
|
|
98
|
+
><img
|
|
99
|
+
src="[이미지URL]"
|
|
100
|
+
style="width:100%;height:100%;object-fit:cover"
|
|
101
|
+
alt="프로필"
|
|
102
|
+
/></span>
|
|
103
|
+
<span style="font:700 24px sans-serif;display:block">[이름]</span>
|
|
104
|
+
<span style="color:#666;display:block">[한줄소개]</span>
|
|
105
|
+
</span>
|
|
106
|
+
</span>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## 게시물 목록 (겸용)
|
|
110
|
+
|
|
111
|
+
```html
|
|
112
|
+
<span style="display:block;max-height:400px;overflow-y:auto">
|
|
113
|
+
<span style="display:block;padding:8px 0;border-bottom:1px solid #f0f0f0">
|
|
114
|
+
<a
|
|
115
|
+
href="[게시물URL]"
|
|
116
|
+
target="_top"
|
|
117
|
+
style="display:block;color:#333;text-decoration:none"
|
|
118
|
+
>[제목]</a
|
|
119
|
+
>
|
|
120
|
+
<span style="color:#888;font-size:11px;display:block">[날짜]</span>
|
|
121
|
+
</span>
|
|
122
|
+
</span>
|
|
123
|
+
```
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: datalab-card-news
|
|
3
|
+
description: 글이나 주제를 여러 장짜리 캔버스로 기획해 열려 있는 사진 편집기에 실제로 만들어 넣는다. 카드뉴스·캐러셀·발표자료·PT 슬라이드에 사용한다. 캔버스가 열려 있어야 하고 AI 이미지 생성은 유료라 매수를 먼저 확인한다.
|
|
4
|
+
license: Proprietary
|
|
5
|
+
metadata:
|
|
6
|
+
tools: photo_canvas_get, photo_canvas_resize, photo_page_add, photo_page_reorder, photo_background_set, photo_text_add, photo_shape_add, photo_sticker_add, photo_frame_add, photo_template_apply, photo_node_arrange, photo_node_update, photo_gallery_list, photo_image_add_from_gallery, generate_images, my_content_read, my_content_info
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# 카드뉴스 기획과 제작
|
|
10
|
+
|
|
11
|
+
글이나 주제 하나를 인스타그램 카드뉴스로 기획하고, 열려 있는 사진 편집기 캔버스에
|
|
12
|
+
슬라이드마다 실제로 만들어 넣는다. 산출물은 다른 곳에 붙여넣을 텍스트가 아니라 완성된
|
|
13
|
+
캔버스 그 자체다.
|
|
14
|
+
|
|
15
|
+
## 시작하기 전에 — 캔버스가 열려 있어야 한다
|
|
16
|
+
|
|
17
|
+
`photo_canvas_get` 으로 먼저 확인한다.
|
|
18
|
+
|
|
19
|
+
- 열려 있으면 그 캔버스에 만든다. 기존 페이지가 있으면 이어서 쓸지 새로 시작할지 묻는다.
|
|
20
|
+
- 열려 있지 않으면 만들 수 없다. 사진 편집기를 먼저 열어 달라고 안내하고 멈춘다.
|
|
21
|
+
**캔버스를 대신 열어주는 도구는 없다.**
|
|
22
|
+
|
|
23
|
+
## 무엇을 읽고 시작하나
|
|
24
|
+
|
|
25
|
+
1. 사용자가 글이나 주제를 직접 줬으면 그것이 기준이다.
|
|
26
|
+
2. "이 글을 카드뉴스로" 처럼 이미 발행한 글을 가리키면 `my_content_read` 로 본문을 읽는다.
|
|
27
|
+
제목만 알고 있으면 `my_content_info` 로 먼저 찾는다.
|
|
28
|
+
3. 둘 다 없으면 무슨 주제인지 묻고 멈춘다. **지어내지 않는다.**
|
|
29
|
+
|
|
30
|
+
## 기획은 짧게 확인만 한다
|
|
31
|
+
|
|
32
|
+
설문을 순서대로 재생하지 않는다. 다음 세 가지만 확인되면 바로 만든다.
|
|
33
|
+
|
|
34
|
+
- **플랫폼** — 인스타그램(1:1 또는 4:5)이 기본. 다르면 물어본다.
|
|
35
|
+
- **슬라이드 수** — 안 정했으면 본문 분량 기준으로 5~7장을 제안하고 확인만 받는다.
|
|
36
|
+
- **스타일 방향** — 색·톤을 한두 마디로. 몰라도 진행하고 기본값(단색 배경 + 절제된 톤)을
|
|
37
|
+
쓴다.
|
|
38
|
+
|
|
39
|
+
슬라이드 역할과 텍스트 요소별 글자수 가이드는 `references/slide-structure.md`.
|
|
40
|
+
|
|
41
|
+
## 만들기
|
|
42
|
+
|
|
43
|
+
첫 페이지 전에 `photo_canvas_resize` 로 플랫폼 비율을 맞춘다. 이후 슬라이드마다:
|
|
44
|
+
|
|
45
|
+
1. `photo_page_add` 로 페이지를 만든다.
|
|
46
|
+
2. `photo_background_set` 으로 배경을 정한다 — 단색·그라데이션이 기본값이다.
|
|
47
|
+
3. 이미지가 필요하면 `photo_gallery_list` 로 갤러리를 먼저 본다. 쓸 이미지가 있으면
|
|
48
|
+
`photo_image_add_from_gallery` 로 넣는다. 없고 사용자가 원하면 아래 "이미지 생성은
|
|
49
|
+
유료다"를 따른다.
|
|
50
|
+
4. `photo_text_add` 로 타이틀·서브타이틀·본문·CTA 텍스트를 넣는다.
|
|
51
|
+
5. 장식이 필요하면 `photo_shape_add` · `photo_sticker_add` · `photo_frame_add`. 여러
|
|
52
|
+
페이지에 같은 레이아웃을 반복하려면 `photo_template_apply`.
|
|
53
|
+
6. 배치는 `photo_node_arrange`, 슬라이드 순서는 `photo_page_reorder` 로 조정한다.
|
|
54
|
+
|
|
55
|
+
수정 요청이 오면 `photo_node_update` 로 기존 요소를 고친다.
|
|
56
|
+
|
|
57
|
+
**페이지나 요소를 지우는 도구는 이 스킬에 없다.** 지워야 하면 사용자가 편집기에서 직접
|
|
58
|
+
하도록 안내한다 — 되돌리기 어려운 동작이라 이 스킬이 대신 하지 않는다.
|
|
59
|
+
|
|
60
|
+
## 이미지 생성은 유료다
|
|
61
|
+
|
|
62
|
+
`generate_images` 는 사용자에게 과금된다. 슬라이드마다 하나씩 생성하면 N장이 N번 과금이다.
|
|
63
|
+
|
|
64
|
+
- 기본은 색·그라데이션 배경 + 텍스트만으로 시안을 제안한다. 과금이 없다.
|
|
65
|
+
- AI 이미지를 원하면 **몇 장을 생성할지 먼저 확인한다.** 예: "8슬라이드 전부 AI 이미지로
|
|
66
|
+
만들면 8번 과금돼요. 몇 장이나 할까요?"
|
|
67
|
+
- 실제 단가는 알 수 없다 — 매수만 명확히 확인하고, 승인 없이 슬라이드 수만큼 자동으로
|
|
68
|
+
돌리지 않는다.
|
|
69
|
+
|
|
70
|
+
## 없는 것 (찾지 마라)
|
|
71
|
+
|
|
72
|
+
- 사진 편집기를 대신 열어주는 도구는 없다.
|
|
73
|
+
- 외부 이미지 생성기에 복사해 붙여넣을 프롬프트 형식은 만들지 않는다. 이 표면은 도구를
|
|
74
|
+
직접 부른다.
|
|
75
|
+
- 저장 수·공유 수·완독률 같은 성과를 읽어오는 도구는 없다. 캡션에 "저장을 유도하는 문구를
|
|
76
|
+
넣으라"는 제안은 할 수 있지만 그 결과 수치를 지어내거나 예측하지 않는다.
|
|
77
|
+
- 프롬프트나 디자인에 품질 점수를 매기지 않는다.
|
|
78
|
+
|
|
79
|
+
## 슬라이드에 숫자를 지어내지 않는다
|
|
80
|
+
|
|
81
|
+
발표자료 요청은 사용자가 실제 판단에 쓸 가능성이 높다. 그런데 이 스킬에는 차트 도구도,
|
|
82
|
+
데이터를 캔버스에 자동 반영하는 도구도 없다 — 숫자는 전부 손으로 적히는 텍스트다.
|
|
83
|
+
|
|
84
|
+
- 사용자가 준 숫자만 옮긴다. 출처를 함께 적는다.
|
|
85
|
+
- 현재값·목표값·ROI·성장률·시장규모 같은 칸을 **채워 넣지 않는다.** 빈칸으로 두고 "이
|
|
86
|
+
숫자는 확인해서 채워 주세요"라고 말한다.
|
|
87
|
+
- 그럴듯한 예시 수치로 자리를 메우지 않는다 — 붙여넣는 순간 사실처럼 보인다.
|
|
88
|
+
|
|
89
|
+
## 산출물
|
|
90
|
+
|
|
91
|
+
- 완성된 캔버스 — 열려 있던 그 캔버스에 페이지가 채워진 상태.
|
|
92
|
+
- 복사용 텍스트 요약 — 슬라이드별 헤드라인과 서브텍스트, 캔버스에 넣은 내용 그대로.
|
|
93
|
+
- 원하면 해시태그 제안. 예상 도달·참여 수치는 붙이지 않는다.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# 슬라이드 구조
|
|
2
|
+
|
|
3
|
+
## 역할
|
|
4
|
+
|
|
5
|
+
- **HOOK** — 첫 장. 시선을 끄는 한 줄 + 넓은 텍스트 공간.
|
|
6
|
+
- **INFO** — 정보 전달. 아이콘·번호 + 여백 중심.
|
|
7
|
+
- **VISUAL** — 이미지가 주인공, 텍스트는 최소로.
|
|
8
|
+
- **STORY** — 사례나 경험을 서술.
|
|
9
|
+
- **CTA** — 마지막 장. 행동 유도 문구 + 계정·링크.
|
|
10
|
+
|
|
11
|
+
슬라이드가 2장뿐이면 HOOK + CTA로 충분하다. 5~7장이면 HOOK 1 + INFO/VISUAL 3~5 + CTA 1이
|
|
12
|
+
흔한 배분이다. 슬라이드 수가 늘어난다고 억지로 다섯 역할을 다 채우지 않는다.
|
|
13
|
+
|
|
14
|
+
## 텍스트 요소 — 넣기 전에 정할 것
|
|
15
|
+
|
|
16
|
+
검증해 주는 도구는 없으니 상한을 넘겨도 오류는 나지 않는다. 카드 안에서 잘려 보이지 않게
|
|
17
|
+
스스로 지키는 기준으로 쓴다.
|
|
18
|
+
|
|
19
|
+
| 요소 | 용도 | 대략 상한 | 비고 |
|
|
20
|
+
| ---------- | ----------------------- | --------- | ----------------------- |
|
|
21
|
+
| 타이틀 | 슬라이드 메인 헤드라인 | 20자 | 모든 슬라이드에 필수 |
|
|
22
|
+
| 서브타이틀 | 타이틀을 보완하는 한 줄 | 40자 | 없어도 된다 |
|
|
23
|
+
| 본문 | 설명·불릿 | 100자 | INFO·STORY 슬라이드에만 |
|
|
24
|
+
| CTA | 행동 유도 문구 | 15자 | CTA 슬라이드에만 |
|
|
25
|
+
| 캡션 | 출처·계정 핸들 | 30자 | 선택 |
|
|
26
|
+
|
|
27
|
+
## 여러 페이지를 만들 때 지킬 것
|
|
28
|
+
|
|
29
|
+
- 배경 처리(단색·그라데이션·패턴)를 슬라이드마다 바꾸지 않는다. 한 번 정했으면
|
|
30
|
+
`photo_template_apply` 로 나머지 페이지에 반복 적용한다.
|
|
31
|
+
- 로고·워터마크를 넣기로 했으면 모든 페이지에서 같은 위치를 쓴다.
|
|
32
|
+
- 아이콘·스티커 스타일(라인·필·입체)을 슬라이드마다 섞지 않는다.
|
|
33
|
+
- 색 팔레트는 3~4개로 제한한다. 슬라이드마다 새 색을 추가하면 일관성이 깨진다.
|
|
34
|
+
|
|
35
|
+
## 용도별 비율
|
|
36
|
+
|
|
37
|
+
| 용도 | 비율 |
|
|
38
|
+
| ----------- | --------------- |
|
|
39
|
+
| 인스타그램 | 1:1 또는 4:5 |
|
|
40
|
+
| 페이스북 | 1:1 또는 가로형 |
|
|
41
|
+
| 링크드인 | 1.91:1 또는 1:1 |
|
|
42
|
+
| 발표자료·PT | 16:9 |
|
|
43
|
+
|
|
44
|
+
발표자료는 역할 이름표만 다르다 — HOOK 대신 표지, INFO 대신 본문, CTA 대신 맺음. 구조는
|
|
45
|
+
같고 화면이 크니 글자수는 조금 넉넉해도 된다(타이틀 30자, 본문 150자).
|
|
46
|
+
|
|
47
|
+
비율을 모르면 인스타그램 1:1을 기본값으로 쓰고, 나중에 바꿔야 하면 다시
|
|
48
|
+
`photo_canvas_resize` 를 부른다.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: datalab-cta-rewrite
|
|
3
|
+
description: 블로그 글 마무리의 행동 유도 문구를 명확하고 구체적인 표현으로 다시 쓴다. "마무리 문구 다듬어줘", "CTA 수정", "구매 유도 문구" 요청에 사용한다. 전환율 예측이나 성과 보장, A/B 테스트는 하지 않는다.
|
|
4
|
+
license: Proprietary
|
|
5
|
+
metadata:
|
|
6
|
+
tools: editor_read, editor_read_structure, my_content_read, my_content_detail, search_keywords, autocomplete_keywords
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# CTA 다시쓰기
|
|
10
|
+
|
|
11
|
+
블로그 글 마무리의 행동 유도 문구를 고쳐 쓴다. 산출물은 후보 문구 2~3개다 — 편집기에
|
|
12
|
+
자동으로 넣지 않는다. 붙여넣기는 사용자가 한다.
|
|
13
|
+
|
|
14
|
+
## 원문 확보
|
|
15
|
+
|
|
16
|
+
우선순위가 있다.
|
|
17
|
+
|
|
18
|
+
1. 사용자가 CTA 문구나 글 전체를 직접 붙여넣었으면 그것이 원문이다. 아래를 건너뛴다.
|
|
19
|
+
2. 지금 편집기에 열려 있는 초안이면 `editor_read` · `editor_read_structure` 로 읽는다.
|
|
20
|
+
3. 이미 발행한 글이면 `my_content_read` · `my_content_detail` 로 읽는다 — 어떤 글인지
|
|
21
|
+
특정할 정보(제목·URL)가 있어야 한다.
|
|
22
|
+
4. 셋 다 없으면 원문이 없다. 글을 붙여넣거나 어떤 글인지 말해 달라고 하고 멈춘다.
|
|
23
|
+
**지어내지 않는다.**
|
|
24
|
+
|
|
25
|
+
## CTA 찾기
|
|
26
|
+
|
|
27
|
+
원문에서 마무리 행동 유도 문단을 찾는다. 없으면(정보 전달만 하는 글) 새로 쓸 후보를
|
|
28
|
+
제시한다 — 기존 문장을 "고쳤다"고 하지 않는다.
|
|
29
|
+
|
|
30
|
+
## 검색어로 표현 다듬기 (해당하면)
|
|
31
|
+
|
|
32
|
+
CTA가 특정 상품·서비스를 가리키면 `search_keywords` · `autocomplete_keywords` 로 그 상품을
|
|
33
|
+
실제로 어떤 말로 검색하는지 확인하고 그 표현을 문구에 반영할 수 있다. 홍보 대상이 없는
|
|
34
|
+
정보 전달 글이면 이 단계는 생략한다.
|
|
35
|
+
|
|
36
|
+
검색어 통계는 **그 키워드를 검색한 사람들**의 것이지 이 블로그 독자의 것이 아니다.
|
|
37
|
+
"우리 독자는 20대 여성이 많다" 같은 문장의 근거로 쓰지 않는다.
|
|
38
|
+
|
|
39
|
+
## 다시쓰기
|
|
40
|
+
|
|
41
|
+
원칙은 `references/principles.md`. 형식은 `references/output-format.md`.
|
|
42
|
+
|
|
43
|
+
## 지어내지 않는다
|
|
44
|
+
|
|
45
|
+
- 전환율·클릭률 예측, 개선율, ROI, 매출 증가액 — 관측할 도구가 없다.
|
|
46
|
+
- "만 명이 선택한", "N% 만족" 같은 검증 안 된 숫자 — 실제로 집계한 값이 아니면 쓰지 않는다.
|
|
47
|
+
- 재고·마감 임박 같은 사실이 아닌 긴급성 — 사용자가 사실이라고 확인해 준 것만 쓴다.
|
|
48
|
+
- A/B 테스트 설계, 샘플 크기 계산 — 트래픽을 나눠 보여줄 도구가 없다.
|
|
49
|
+
|
|
50
|
+
## 이 스킬이 하지 않는 것
|
|
51
|
+
|
|
52
|
+
- 편집기를 직접 고치지 않는다. 후보를 내고 적용은 사용자가 한다.
|
|
53
|
+
- 상품 상세페이지·랜딩페이지는 다루지 않는다 — 네이버 블로그 편집기만 읽는다.
|
|
54
|
+
- 스토어 매출로 이 CTA가 얼마나 팔렸는지 잇지 않는다. 어떤 독자가 어떤 글을 보고
|
|
55
|
+
구매했는지 이어 볼 도구가 없다 — 이으면 상관을 인과로 둔갑시키는 것이다.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# 출력 형식
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
CTA 후보
|
|
5
|
+
|
|
6
|
+
원문 CTA: {있으면 인용, 없으면 "없음 — 새로 제안"}
|
|
7
|
+
|
|
8
|
+
1. {후보 문구}
|
|
9
|
+
기법: {명확성 | 구체성 | 마찰 줄이기 | 검색어 반영 — 복수 가능}
|
|
10
|
+
근거: {왜 이 표현을 골랐는지 한 줄. 검색어를 반영했으면 어떤 검색어를 확인했는지}
|
|
11
|
+
|
|
12
|
+
2. ...
|
|
13
|
+
(2~3개)
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## 넣지 않는 것
|
|
17
|
+
|
|
18
|
+
| 넣지 않는 것 | 왜 |
|
|
19
|
+
| ------------------------------------------ | ----------------------------------------------------- |
|
|
20
|
+
| 예상 전환율·클릭률·개선율 | 관측하거나 집계할 도구가 없다 |
|
|
21
|
+
| A안·B안 승자 판정 | 실제로 게시하고 비교한 적이 없다 |
|
|
22
|
+
| ROI·매출 증가 예측 | 스토어 매출은 별개 데이터이고 이 글과 이어 볼 수 없다 |
|
|
23
|
+
| 후기 수·구매자 수 같은 사회적 증명 숫자 | 집계한 값이 아니면 허위표시 소지 |
|
|
24
|
+
| "최적 게시 시간대", "이 색이 더 잘 눌린다" | 클릭·색상 반응 데이터를 보지 않는다 |
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# 다시쓰기 원칙
|
|
2
|
+
|
|
3
|
+
수치나 심리 실험 결과를 인용하지 않는다. 아래는 문구 자체의 기법이다.
|
|
4
|
+
|
|
5
|
+
## 명확성
|
|
6
|
+
|
|
7
|
+
- 동사 하나, 행동 하나. "더 알아보고 구매까지 고려해보세요" 대신 "지금 확인하기".
|
|
8
|
+
- 무엇을 누르면 무슨 일이 일어나는지 문구만 보고 알 수 있어야 한다.
|
|
9
|
+
|
|
10
|
+
## 구체성
|
|
11
|
+
|
|
12
|
+
- "문의하기"보다 "3분 견적 받기"처럼 걸리는 시간이나 받는 것을 명시한다.
|
|
13
|
+
- 막연한 혜택보다 구체적 혜택("첫 구매 무료배송")을 쓴다 — **사실일 때만.**
|
|
14
|
+
|
|
15
|
+
## 마찰 줄이기
|
|
16
|
+
|
|
17
|
+
- 실제로 절차가 짧다면 그것을 드러낸다("1분 완료").
|
|
18
|
+
- 위험 부담 문구는 사용자가 실제로 제공하는 보장만 언급한다.
|
|
19
|
+
|
|
20
|
+
## 원문 어조 유지
|
|
21
|
+
|
|
22
|
+
존댓말·반말과 격식 수준은 원문을 따른다. 원문이 정보성 글이면 문구도 강매처럼 들리지
|
|
23
|
+
않게 조절한다.
|
|
24
|
+
|
|
25
|
+
## 검색어 반영 (도구로 확인했을 때만)
|
|
26
|
+
|
|
27
|
+
확인한 실제 검색 표현이 있으면 그 단어를 우선 반영한다. 독자가 쓰는 말을 쓰는 게
|
|
28
|
+
유리하다는 것은 일반적으로 알려진 원칙일 뿐, 이 확장으로 그 효과를 측정하지는 않는다.
|
|
29
|
+
|
|
30
|
+
## 쓰지 않는 기법
|
|
31
|
+
|
|
32
|
+
- 근거 없는 희소성("마지막 기회", "재고 소진 임박")은 사실이 아니면 표시광고법상 허위·과장
|
|
33
|
+
표시 소지가 있다.
|
|
34
|
+
- 꾸며낸 후기 수·구매자 수·만족도는 절대 쓰지 않는다.
|
|
35
|
+
- 세대나 성별을 근거로 한 고정관념 카피는 쓰지 않는다. 이 블로그 독자가 누구인지 확인해
|
|
36
|
+
주는 도구가 없다.
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: datalab-material-suggestion
|
|
3
|
+
description: 블로그에 쓸 다음 소재를 검색량·트렌드·경쟁 콘텐츠로 뒷받침해 추천한다. 소재 추천, 콘텐츠 아이디어, 다음 글감, 시리즈 기획, "이 소재 경쟁력 있을까"에 사용한다. 네이버 블로그 기준이며 확장이 붙어 있으면 도구로 확인한 근거를 붙인다.
|
|
4
|
+
license: Proprietary
|
|
5
|
+
metadata:
|
|
6
|
+
tools: search_keywords, autocomplete_keywords, kin_question_demand, keyword_trend, keyword_yoy, keyword_opportunity, daily_trend, my_soaring, my_top_content, search_blog, blog_profile, blog_posts, benchmark_gap
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# 소재 제안
|
|
10
|
+
|
|
11
|
+
블로그에 다음에 뭘 쓸지 정하는 걸 돕는다. 산출물은 후보 소재 목록과 각 소재를 고른
|
|
12
|
+
근거다 — 원고를 쓰지는 않는다.
|
|
13
|
+
|
|
14
|
+
## 무엇부터 하나
|
|
15
|
+
|
|
16
|
+
1. 플랫폼과 카테고리가 이미 정해져 있으면(예: "네이버 블로그 육아 소재") 바로 조사로
|
|
17
|
+
들어간다.
|
|
18
|
+
2. 안 정해져 있으면 `references/discovery.md` 의 질문 순서로 먼저 묻는다.
|
|
19
|
+
플랫폼·카테고리는 필수, 타겟과 목적은 있으면 좋고 없어도 진행한다.
|
|
20
|
+
3. 조사가 끝나면 후보를 추리고 `references/output-format.md` 형식으로 낸다.
|
|
21
|
+
|
|
22
|
+
## 네이버 블로그 밖의 플랫폼
|
|
23
|
+
|
|
24
|
+
유튜브·인스타그램·브런치·티스토리 요청도 받는다. 다만 이 확장의 도구는 전부 네이버
|
|
25
|
+
데이터다 — 다른 플랫폼 소재는 `references/discovery.md` 의 일반 지식(포맷·시즌 패턴)으로만
|
|
26
|
+
제안하고, 검색량이나 경쟁 콘텐츠를 **확인했다고 말하지 않는다**. 네이버 블로그일 때만
|
|
27
|
+
도구로 뒷받침한다.
|
|
28
|
+
|
|
29
|
+
## 조사
|
|
30
|
+
|
|
31
|
+
네이버 블로그 소재라면 아래 순서로 확인하고, 확인한 것만 근거로 쓴다.
|
|
32
|
+
|
|
33
|
+
1. **니즈** — `search_keywords` · `autocomplete_keywords` 로 실제 검색어를,
|
|
34
|
+
`kin_question_demand` 로 못 풀린 질문을 본다.
|
|
35
|
+
2. **시의성** — `daily_trend` · `my_soaring` 로 지금 오르는 것을, `keyword_trend` ·
|
|
36
|
+
`keyword_yoy` 로 계절성을 본다.
|
|
37
|
+
3. **경쟁** — `search_blog` 로 상위 글을, `blog_profile` · `blog_posts` 로 경쟁 블로그를
|
|
38
|
+
본다. 상위 글이 다루지 않은 부분이 차별화 지점이다.
|
|
39
|
+
4. **본인 강점** — 기존 방향을 물었다면 `my_top_content` 로 이미 잘 된 글을 확인해
|
|
40
|
+
소재와 엮는다.
|
|
41
|
+
|
|
42
|
+
**호출은 라운드당 한 번씩만** — 후보 소재마다 매번 다시 조회하지 않는다. 조사는 한 번,
|
|
43
|
+
후보는 그 결과에서 여러 개 뽑는다.
|
|
44
|
+
|
|
45
|
+
## 앵글과 시리즈
|
|
46
|
+
|
|
47
|
+
같은 소재도 접근이 여러 개다: 방법형 / 목록형 / 비교형 / 경험담형 / 문제해결형 /
|
|
48
|
+
오해바로잡기형 / 타겟특화형 / 심화형. 후보마다 다른 앵글을 섞는다 — 전부 "가이드"면
|
|
49
|
+
다양성이 없는 것이다. 템플릿은 `references/discovery.md`.
|
|
50
|
+
|
|
51
|
+
시리즈로 묶을 수 있으면 표시한다: 심화형(입문→고급) / 확장형(영역별) / 기간형(N일차) /
|
|
52
|
+
사례형.
|
|
53
|
+
|
|
54
|
+
## 점수를 지어내지 않는다
|
|
55
|
+
|
|
56
|
+
"추천도 95%", "검색잠재력 20/25" 같은 가중치 점수를 쓰지 않는다 — 계산한 적 없는 수를
|
|
57
|
+
적으면 모델이 사실처럼 말하게 된다.
|
|
58
|
+
|
|
59
|
+
- 셀 수 있는 것(도구가 준 검색량, 실제 순위, 상위 글 개수)은 숫자 그대로 인용한다.
|
|
60
|
+
- 셀 수 없는 것(차별화 정도, 반응 예상, 경쟁력)은 점수를 매기지 않고 **왜 그렇게 보는지**
|
|
61
|
+
한 줄로 쓴다 — "상위 10개 글 중 8개가 15개월 이전 글이다" 처럼 확인한 사실을 근거로 댄다.
|
|
62
|
+
- 소재 유형(트렌드형/에버그린형/니치형/리사이클형)은 범주 표시이지 점수가 아니라서 남긴다.
|
|
63
|
+
- 별점·난이도 등급도 뺐다 — 실제로 재본 적 없는 주관적 등급이다.
|
|
64
|
+
|
|
65
|
+
## 이 스킬이 하지 않는 것
|
|
66
|
+
|
|
67
|
+
- 원고를 쓰지 않는다. 소재가 정해지면 사용자가 초안 작성을 요청해야 한다.
|
|
68
|
+
- 소재를 자동으로 발행 캘린더에 넣지 않는다.
|
|
69
|
+
- 투자·의료·법률 카테고리 소재는 정보 전달 소재로만 제안한다. 확정적 조언이나 수익 보장
|
|
70
|
+
표현은 쓰지 않는다.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# 정보 수집과 배경 지식
|
|
2
|
+
|
|
3
|
+
## 질문 순서
|
|
4
|
+
|
|
5
|
+
플랫폼과 카테고리가 없으면 이 순서로 묻는다. 한 번에 다 묻지 않는다 — 답을 받고 다음
|
|
6
|
+
질문으로 넘어간다.
|
|
7
|
+
|
|
8
|
+
1. **플랫폼** (필수) — "어떤 플랫폼에 올릴 콘텐츠인가요?" 예: 네이버블로그, 유튜브,
|
|
9
|
+
인스타그램, 브런치, 티스토리
|
|
10
|
+
2. **카테고리** (필수) — "어떤 주제 영역인가요?" 예: 라이프스타일, 육아, 테크, 여행, 재테크
|
|
11
|
+
3. **타겟** (있으면 좋음) — "주로 어떤 분들이 보시나요?"
|
|
12
|
+
4. **목적** (있으면 좋음) — "정보 전달인가요, 수익화인가요, 브랜딩인가요?"
|
|
13
|
+
5. **기존 방향/강점** (선택) — "이미 운영 중인 채널이 있다면 어떤 글을 쓰셨나요?"
|
|
14
|
+
|
|
15
|
+
플랫폼과 카테고리만 있어도 조사를 시작할 수 있다. 나머지는 진행하면서 채워도 된다.
|
|
16
|
+
|
|
17
|
+
## 앵글 템플릿
|
|
18
|
+
|
|
19
|
+
- 방법형: "{주제} 하는 법"
|
|
20
|
+
- 목록형: "{숫자}가지 {주제}"
|
|
21
|
+
- 비교형: "{A} vs {B}"
|
|
22
|
+
- 경험담형: "내가 {주제}를 해본 결과"
|
|
23
|
+
- 문제해결형: "{문제}? {해결책}"
|
|
24
|
+
- 오해바로잡기형: "{주제}에 대한 오해와 진실"
|
|
25
|
+
- 타겟특화형: "{타겟}을 위한 {주제}"
|
|
26
|
+
- 심화형: "{주제} 완벽 가이드"
|
|
27
|
+
|
|
28
|
+
앵글은 소재를 못 정했을 때 붙이는 접근법이지 소재 자체가 아니다. 같은 소재에 두세 앵글을
|
|
29
|
+
시험해 보고 조사 결과(니즈·경쟁)에 맞는 것을 고른다.
|
|
30
|
+
|
|
31
|
+
## 네이버 블로그 밖 플랫폼 — 도구 없이 쓰는 일반 지식
|
|
32
|
+
|
|
33
|
+
도구로 확인이 안 되니 참고용으로만 쓴다. 사실처럼 단정하지 않는다.
|
|
34
|
+
|
|
35
|
+
- **유튜브**: 시청지속률·클릭률 중심. 강한 포맷은 튜토리얼, 리뷰/언박싱, 브이로그, 리스트,
|
|
36
|
+
챌린지.
|
|
37
|
+
- **인스타그램**: 저장·공유 중심. 강한 포맷은 캐러셀 가이드, 인포그래픽, 짧은 릴스 팁.
|
|
38
|
+
- **브런치**: 큐레이션과 글 품질 중심. 에세이·심층 인사이트·연재가 강하다.
|
|
39
|
+
- **티스토리**: 구글 SEO 중심. 상세 가이드·비교·문제해결형이 강하다.
|
|
40
|
+
|
|
41
|
+
## 시즌 캘린더 (일반 지식 — 실측 아님)
|
|
42
|
+
|
|
43
|
+
1월 신년·다이어트, 2월 설날·입학, 3월 신학기·봄, 5월 가정의달, 7~8월 휴가·여름,
|
|
44
|
+
9월 추석·개학, 10월 가을여행·할로윈, 11월 수능·연말계획, 12월 크리스마스·연말결산.
|
|
45
|
+
|
|
46
|
+
네이버 블로그라면 이 계절감이 실제로 맞는지 `keyword_yoy` 로 확인할 수 있다 — 확인 없이
|
|
47
|
+
이 표만 보고 단정하지 않는다.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# 출력 형식
|
|
2
|
+
|
|
3
|
+
```
|
|
4
|
+
소재 제안
|
|
5
|
+
|
|
6
|
+
대상: {플랫폼} / {카테고리}{, 타겟 — 있으면}
|
|
7
|
+
|
|
8
|
+
1. {소재명} — {유형: 트렌드형|에버그린형|니치형|리사이클형}
|
|
9
|
+
앵글: {한 문장}
|
|
10
|
+
근거: {조사에서 확인한 사실 인용 — 검색어, 순위, 상위 글 개수 등}
|
|
11
|
+
비어 있는 부분: {상위 글이 안 다루는 것 — 없으면 생략}
|
|
12
|
+
|
|
13
|
+
2. ...
|
|
14
|
+
(3~7개, 최소 3개, 앵글은 최소 3종 다르게)
|
|
15
|
+
|
|
16
|
+
확장/시리즈 (해당하면)
|
|
17
|
+
{소재} → {시리즈화 방향}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## 소재당 반드시 있어야 하는 것
|
|
21
|
+
|
|
22
|
+
- **근거** — 조사 단계에서 실제로 확인한 것 하나. 확인한 게 없으면(다른 플랫폼 등)
|
|
23
|
+
"일반 패턴 기반, 실측 확인 안 됨" 이라고 적는다.
|
|
24
|
+
- **유형** — 트렌드형·에버그린형·니치형·리사이클형 중 하나. 범주일 뿐 점수가 아니다.
|
|
25
|
+
|
|
26
|
+
## 간단 모드
|
|
27
|
+
|
|
28
|
+
사용자가 "빠르게" 또는 "간단히" 라고 했을 때만: 소재 3개, 한 줄씩. "1. {소재명} — {앵글}".
|
|
29
|
+
|
|
30
|
+
## 넣지 않는 것
|
|
31
|
+
|
|
32
|
+
아래는 결과물에 넣지 않는다. 요청받아도 왜 안 되는지 설명하고 대신 근거를 인용한다.
|
|
33
|
+
|
|
34
|
+
| 뺀 것 | 왜 |
|
|
35
|
+
| -------------------------------------------------------------- | ---------------------------------------------------- |
|
|
36
|
+
| 추천도 %, 별점 | 계산한 적 없는 수 |
|
|
37
|
+
| 검색잠재력·참여유발력·차별화·실현가능성·확장가능성 가중치 점수 | 채점 기준이 없다. 도구가 준 숫자를 인용하는 게 낫다 |
|
|
38
|
+
| 난이도 등급(쉬움~어려움) | 실제로 재본 적 없는 주관적 등급 |
|
|
39
|
+
| "심층 검색으로 조사하라"는 안내 | 이 패널엔 그 도구가 없다 — 실제 도구 호출로 대체했다 |
|
|
40
|
+
| "최적 발행 시점 오전 10시" 류 확정 문장 | 확인 없이 넣은 추정. 근거가 있을 때만 쓴다 |
|
|
41
|
+
| 사례의 예시 점수(95%, 92%, 81/100 등) | 같은 이유 |
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: datalab-photo-prompt
|
|
3
|
+
description: 원하는 사진을 설명으로 받아 프롬프트로 다듬고 이미지 생성 도구로 실제 사진을 만든다. AI 사진 생성, 블로그 썸네일 제작, "이런 사진 만들어줘" 요청에 사용한다. 생성은 유료라 실행 전 항상 비용 확인을 받는다.
|
|
4
|
+
license: Proprietary
|
|
5
|
+
metadata:
|
|
6
|
+
tools: generate_images
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# 사진 생성 프롬프트
|
|
10
|
+
|
|
11
|
+
원하는 사진을 말로 설명하면 그 설명을 프롬프트로 다듬어 `generate_images` 로 실제 사진을
|
|
12
|
+
만든다. 이 스킬은 **생성만** 한다 — 이미 있는 사진을 보정하거나 리터칭하지 않는다.
|
|
13
|
+
|
|
14
|
+
## 절차
|
|
15
|
+
|
|
16
|
+
1. **무엇을 만들지 듣는다.** 피사체, 배경·환경, 스타일이나 무드, 원하면 구도까지. 한 번에
|
|
17
|
+
다 안 줘도 된다 — `references/prompt-dimensions.md` 축을 따라 부족한 것만 묻는다.
|
|
18
|
+
2. **문장 하나로 조립한다.** 나열형 키워드가 아니라 자연어 한 문단. 모호한 말은 구체적으로
|
|
19
|
+
바꾼다("여자" → "카페 창가에 앉아 노트북을 보는 20대 여성, 베이지 니트"). 스타일·조명
|
|
20
|
+
어휘는 `references/style-vocabulary.md`.
|
|
21
|
+
3. **부르기 전에 비용을 확인받는다.** `generate_images` 호출은 매번 과금된다. "이 사진을
|
|
22
|
+
생성하면 비용이 발생합니다. 진행할까요?" 를 묻고 동의를 받은 뒤에만 부른다. 변형을 여러
|
|
23
|
+
장 만들 때도 **장마다 다시 확인받는다** — 한 번의 동의가 이후 호출까지 덮지 않는다.
|
|
24
|
+
4. `generate_images` 를 부른다. 입력 파라미터는 그 도구 자체의 스키마를 그 자리에서 따른다.
|
|
25
|
+
5. 결과를 전달하고 어디에 들어갔는지 알려준다.
|
|
26
|
+
|
|
27
|
+
## 없는 것 (찾지 마라)
|
|
28
|
+
|
|
29
|
+
- **사진을 고치는 도구는 없다.** 이 표면의 사진 편집기는 텍스트·스티커·프레임·배경색을
|
|
30
|
+
얹고 페이지를 배치하는 합성 편집기다. 노출·화이트밸런스·피부 보정·잡티 제거·배경 지우기
|
|
31
|
+
같은 픽셀 단위 보정은 어떤 도구에도 없다. 리터칭·객체 제거·배경 교체·업스케일·오래된
|
|
32
|
+
사진 복원은 대응 도구가 없어 하지 않는다.
|
|
33
|
+
- **생성기별로 나눠 만들지 않는다.** 실행하는 도구는 `generate_images` 하나뿐이다. 외부
|
|
34
|
+
생성기용 파라미터 문법이나 생성기 간 변환은 쓸 데가 없다.
|
|
35
|
+
- **프롬프트나 사진에 점수·등급을 매기지 않는다.** "완성도 87/100", "A+ 등급" 같은 건
|
|
36
|
+
아무 근거도 없다.
|
|
37
|
+
- **업로드된 실제 인물 사진을 고치거나 합성하지 않는다.** `generate_images` 는 새 이미지를
|
|
38
|
+
만드는 도구지 올려준 사진 속 사람을 리터칭하거나 외모를 바꾸는 도구가 아니다. "이 사람
|
|
39
|
+
피부 보정해줘", "이 사진에서 저 사람 지워줘" 요청은 범위 밖이라고 말하고 멈춘다.
|
|
40
|
+
- **생성된 사진을 캔버스에 자동으로 넣지 않는다.** 사용자가 편집기에서 갤러리를 열어 직접
|
|
41
|
+
가져오게 한다.
|
|
42
|
+
|
|
43
|
+
## 촬영 설정을 지어내지 않는다
|
|
44
|
+
|
|
45
|
+
참고 사진이 있어도 조리개·셔터스피드·ISO 같은 값은 알 수 없다. **눈에 보이는 것만** 말로
|
|
46
|
+
옮긴다 — "배경이 많이 흐림"은 관찰이고 "f/1.8 추정"은 지어낸 숫자다. 후자는 쓰지 않는다.
|
|
47
|
+
|
|
48
|
+
## 참고 사진이 있을 때
|
|
49
|
+
|
|
50
|
+
스타일 참고로만 쓴다. 장르(인물·풍경·제품 등), 조명 방향과 질감, 색감, 분위기를 말로 옮겨
|
|
51
|
+
새 프롬프트에 반영한다. 어휘는 `references/style-vocabulary.md`. **그 사진 자체를 고치지는
|
|
52
|
+
않는다** — 새로 만들 사진의 스타일 재료일 뿐이다.
|