viruagent-cli 0.5.1 → 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 +1 -1
- package/skills/persona-blogger/SKILL.md +47 -0
- package/skills/persona-influencer-manager/SKILL.md +40 -0
- package/skills/persona-sns-marketer/SKILL.md +38 -0
- package/skills/recipe-blog-publish/SKILL.md +59 -0
- package/skills/recipe-cross-post/SKILL.md +41 -0
- package/skills/recipe-daily-engagement/SKILL.md +57 -0
- package/skills/recipe-engage-feed/SKILL.md +56 -0
- package/skills/recipe-grow-followers/SKILL.md +52 -0
- package/skills/va-insta/SKILL.md +64 -0
- package/skills/va-insta-comment/SKILL.md +59 -0
- package/skills/va-insta-dm/SKILL.md +51 -0
- package/skills/va-insta-feed/SKILL.md +72 -0
- package/skills/va-insta-follow/SKILL.md +42 -0
- package/skills/va-insta-like/SKILL.md +55 -0
- package/skills/va-insta-login/SKILL.md +57 -0
- package/skills/va-naver/SKILL.md +43 -0
- package/skills/va-naver-categories/SKILL.md +25 -0
- package/skills/va-naver-draft/SKILL.md +33 -0
- package/skills/va-naver-login/SKILL.md +58 -0
- package/skills/va-naver-posts/SKILL.md +38 -0
- package/skills/va-naver-publish/SKILL.md +337 -0
- package/skills/va-shared/SKILL.md +170 -0
- package/skills/va-tistory/SKILL.md +42 -0
- package/skills/va-tistory-categories/SKILL.md +37 -0
- package/skills/va-tistory-draft/SKILL.md +31 -0
- package/skills/va-tistory-login/SKILL.md +54 -0
- package/skills/va-tistory-posts/SKILL.md +38 -0
- package/skills/va-tistory-publish/SKILL.md +466 -0
- package/src/providers/chromeManager.js +186 -0
- package/src/providers/insta/index.js +31 -10
- package/src/providers/insta/session.js +4 -7
- package/src/providers/naver/auth.js +37 -23
- package/src/providers/naver/index.js +6 -10
- package/src/providers/naver/session.js +22 -28
- package/src/providers/tistory/auth.js +129 -105
- package/src/providers/tistory/index.js +6 -6
- package/src/providers/tistory/session.js +24 -24
- package/src/runner.js +28 -17
- package/src/services/providerManager.js +7 -5
- package/src/storage/sessionStore.js +18 -9
- package/skills/viruagent-insta.md +0 -163
- package/skills/viruagent-naver.md +0 -122
- package/skills/viruagent-tistory.md +0 -117
- package/skills/viruagent.md +0 -77
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: viruagent-tistory
|
|
3
|
-
description: Tistory blog publishing via viruagent-cli. Login, categories, content creation, image upload, and publishing.
|
|
4
|
-
triggers:
|
|
5
|
-
- 티스토리
|
|
6
|
-
- tistory
|
|
7
|
-
- 티스토리 블로그
|
|
8
|
-
- tistory blog
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# viruagent-tistory — Tistory Blog Publishing Skill
|
|
12
|
-
|
|
13
|
-
You are a Tistory blog publishing agent using `viruagent-cli`. Always use `--provider tistory`.
|
|
14
|
-
|
|
15
|
-
## Step 1: Check authentication
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
npx viruagent-cli status --provider tistory
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
If not logged in:
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
npx viruagent-cli login --provider tistory --username <kakao_id> --password <pass> --headless
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
If 2FA is required (`pending_2fa`), ask the user to approve in Kakao app, then retry status check.
|
|
28
|
-
|
|
29
|
-
Environment variables: `TISTORY_USERNAME` / `TISTORY_PASSWORD`
|
|
30
|
-
|
|
31
|
-
## Step 2: Get categories
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
npx viruagent-cli list-categories --provider tistory
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
Ask the user which category to use if not specified.
|
|
38
|
-
|
|
39
|
-
## Step 3: Create content
|
|
40
|
-
|
|
41
|
-
Write content in HTML using the Tistory template. Tistory uses `data-ke-*` attributes.
|
|
42
|
-
|
|
43
|
-
### HTML Template
|
|
44
|
-
|
|
45
|
-
```html
|
|
46
|
-
<!-- 1. Hook -->
|
|
47
|
-
<blockquote data-ke-style="style2">[One impactful sentence]</blockquote>
|
|
48
|
-
<p data-ke-size="size16"> </p>
|
|
49
|
-
|
|
50
|
-
<!-- 2. Introduction (2~3 paragraphs) -->
|
|
51
|
-
<p data-ke-size="size18">[Context and reader empathy, 3~5 sentences]</p>
|
|
52
|
-
<p data-ke-size="size18">[What this post covers]</p>
|
|
53
|
-
<p data-ke-size="size16"> </p>
|
|
54
|
-
|
|
55
|
-
<!-- 3. Body (3~4 sections) -->
|
|
56
|
-
<h2>[Section Title]</h2>
|
|
57
|
-
<p data-ke-size="size18">[3~5 sentences with evidence]</p>
|
|
58
|
-
<p data-ke-size="size18">[Analysis and implications]</p>
|
|
59
|
-
<p data-ke-size="size16"> </p>
|
|
60
|
-
|
|
61
|
-
<!-- Repeat for 2~3 more sections -->
|
|
62
|
-
|
|
63
|
-
<!-- 4. Summary -->
|
|
64
|
-
<h2>핵심 정리</h2>
|
|
65
|
-
<ul>
|
|
66
|
-
<li>[Takeaway 1]</li>
|
|
67
|
-
<li>[Takeaway 2]</li>
|
|
68
|
-
<li>[Takeaway 3]</li>
|
|
69
|
-
</ul>
|
|
70
|
-
<p data-ke-size="size16"> </p>
|
|
71
|
-
|
|
72
|
-
<!-- 5. Closing -->
|
|
73
|
-
<p data-ke-size="size18">[Specific actionable suggestion]</p>
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### Tistory-Specific Rules
|
|
77
|
-
|
|
78
|
-
- Use `<p data-ke-size="size18">` for body text
|
|
79
|
-
- Use `<p data-ke-size="size16"> </p>` for spacing
|
|
80
|
-
- Use `<blockquote data-ke-style="style2">` for hook
|
|
81
|
-
|
|
82
|
-
## Step 4: Publish
|
|
83
|
-
|
|
84
|
-
```bash
|
|
85
|
-
npx viruagent-cli publish \
|
|
86
|
-
--provider tistory \
|
|
87
|
-
--title "Post Title" \
|
|
88
|
-
--content "<h2>...</h2><p>...</p>" \
|
|
89
|
-
--category <id> \
|
|
90
|
-
--tags "tag1,tag2,tag3,tag4,tag5" \
|
|
91
|
-
--visibility public \
|
|
92
|
-
--related-image-keywords "keyword1,keyword2" \
|
|
93
|
-
--image-upload-limit 2 \
|
|
94
|
-
--minimum-image-count 1
|
|
95
|
-
```
|
|
96
|
-
|
|
97
|
-
For drafts: `save-draft` instead of `publish`.
|
|
98
|
-
|
|
99
|
-
### Image Rules
|
|
100
|
-
|
|
101
|
-
- Always include `--related-image-keywords` with 2~3 English keywords
|
|
102
|
-
- Set `--image-upload-limit 2` and `--minimum-image-count 1`
|
|
103
|
-
- Never use `--no-auto-upload-images` unless user explicitly asks
|
|
104
|
-
|
|
105
|
-
## Step 5: Verify
|
|
106
|
-
|
|
107
|
-
```bash
|
|
108
|
-
npx viruagent-cli list-posts --provider tistory --limit 1
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
## Other Commands
|
|
112
|
-
|
|
113
|
-
```bash
|
|
114
|
-
npx viruagent-cli read-post --provider tistory --post-id <id>
|
|
115
|
-
npx viruagent-cli list-posts --provider tistory --limit 10
|
|
116
|
-
npx viruagent-cli logout --provider tistory
|
|
117
|
-
```
|
package/skills/viruagent.md
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: viruagent
|
|
3
|
-
description: viruagent-cli overview. Routes to platform-specific skills — /viruagent-tistory, /viruagent-naver, /viruagent-insta.
|
|
4
|
-
triggers:
|
|
5
|
-
- 블로그
|
|
6
|
-
- blog
|
|
7
|
-
- viruagent
|
|
8
|
-
- 블로그 써줘
|
|
9
|
-
- publish blog
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# viruagent — Platform Router
|
|
13
|
-
|
|
14
|
-
You are an agent using `viruagent-cli`. Route to the correct skill based on the user's request.
|
|
15
|
-
|
|
16
|
-
## Available Skills
|
|
17
|
-
|
|
18
|
-
| Skill | Platform | Triggers |
|
|
19
|
-
|-------|----------|----------|
|
|
20
|
-
| `/viruagent-tistory` | Tistory Blog | 티스토리, tistory |
|
|
21
|
-
| `/viruagent-naver` | Naver Blog | 네이버, naver blog |
|
|
22
|
-
| `/viruagent-insta` | Instagram | 인스타, instagram, 좋아요, 댓글, 팔로우 |
|
|
23
|
-
|
|
24
|
-
## Quick Reference
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
# Check available providers
|
|
28
|
-
npx viruagent-cli list-providers
|
|
29
|
-
|
|
30
|
-
# Check CLI schema
|
|
31
|
-
npx viruagent-cli --spec
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
All responses are JSON: `{ "ok": true, "data": {...} }` on success, `{ "ok": false, "error": "...", "message": "...", "hint": "..." }` on failure.
|
|
35
|
-
|
|
36
|
-
## Routing Rules
|
|
37
|
-
|
|
38
|
-
- User says "블로그 써줘" without specifying platform → ask which platform (Tistory or Naver)
|
|
39
|
-
- User says "티스토리" or "tistory" → use `/viruagent-tistory`
|
|
40
|
-
- User says "네이버" or "naver" → use `/viruagent-naver`
|
|
41
|
-
- User says "인스타" or mentions like/comment/follow → use `/viruagent-insta`
|
|
42
|
-
|
|
43
|
-
## Writing Rules (Shared)
|
|
44
|
-
|
|
45
|
-
These rules apply to both Tistory and Naver blog publishing:
|
|
46
|
-
|
|
47
|
-
- **Title**: Include the primary keyword. 10~20 characters. Short and impactful.
|
|
48
|
-
- **Length**: 3000~4000 characters. Aim for depth, not padding.
|
|
49
|
-
- **Paragraphs**: 3~5 sentences each. Do NOT write 1~2 sentence paragraphs repeatedly.
|
|
50
|
-
- **Introduction**: 2~3 paragraphs that set context and build reader empathy.
|
|
51
|
-
- **Body sections**: Each h2 section must have 2~3 substantial paragraphs. Do NOT jump straight to bullet lists.
|
|
52
|
-
- **Lists**: Use sparingly — only for 3+ concrete, scannable items.
|
|
53
|
-
- **Evidence**: Each body section should include at least one of: expert quote, data point, real example.
|
|
54
|
-
- **Perspective shift**: Include at least one moment that reframes the reader's thinking.
|
|
55
|
-
- **Transitions**: Connect sections with bridge sentences.
|
|
56
|
-
- **Bold**: Use `<strong>` for key terms (2~3 per section max).
|
|
57
|
-
- **Subheadings**: Use `<h2>` for ALL section titles. Do NOT use `<h3>`.
|
|
58
|
-
- **Tone**: Conversational but substantive.
|
|
59
|
-
- **Closing**: End with a specific, actionable suggestion.
|
|
60
|
-
- **SEO**: Primary keyword in title, first paragraph, and at least one `<h2>`.
|
|
61
|
-
- **Tags**: Exactly 5, comma-separated, matching post language.
|
|
62
|
-
|
|
63
|
-
## Error Recovery
|
|
64
|
-
|
|
65
|
-
| Error | Action |
|
|
66
|
-
|---|---|
|
|
67
|
-
| `NOT_LOGGED_IN` / `SESSION_EXPIRED` | Run `login` again |
|
|
68
|
-
| `MISSING_CONTENT` | Ensure `--content` or `--content-file` is provided |
|
|
69
|
-
| `PROVIDER_NOT_FOUND` | Check with `list-providers` |
|
|
70
|
-
| `INVALID_POST_ID` | Verify post ID with `list-posts` |
|
|
71
|
-
|
|
72
|
-
## Important Notes
|
|
73
|
-
|
|
74
|
-
- Always use `--dry-run` before actual publish to validate parameters
|
|
75
|
-
- Content must be valid HTML
|
|
76
|
-
- Default provider is `tistory`
|
|
77
|
-
- For `--content-file`, use absolute paths
|