too-many-claw 1.0.2 โ†’ 1.0.3

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.md CHANGED
@@ -1,155 +1,155 @@
1
1
  # ๐Ÿฆž Too Many Claw
2
2
 
3
- > OpenClaw ํ™•์žฅ - 35๊ฐœ์˜ AI ์—์ด์ „ํŠธ๊ฐ€ ์œ ๋™์ ์œผ๋กœ ํ˜‘์—…ํ•˜๋Š” ์‹œ์Šคํ…œ
3
+ > OpenClaw Extension - 35 AI agents collaborating dynamically
4
4
 
5
5
  [![npm version](https://badge.fury.io/js/too-many-claw.svg)](https://www.npmjs.com/package/too-many-claw)
6
6
  [![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
7
7
 
8
- ## โœจ ํŠน์ง•
8
+ ## โœจ Features
9
9
 
10
- - **35๊ฐœ ์ „๋ฌธํ™”๋œ ์—์ด์ „ํŠธ** - ๊ฐœ๋ฐœ, ๋””์ž์ธ, ํ…Œ์ŠคํŠธ, ๋ณด์•ˆ, ์‹ฌ๋ฆฌ ์ƒ๋‹ด ๋“ฑ ๋‹ค์–‘ํ•œ ์ „๋ฌธ ๋ถ„์•ผ
11
- - **๋™์  ํ˜‘์—…** - ํ•„์š”์— ๋”ฐ๋ผ ์—์ด์ „ํŠธ๊ฐ€ ์†Œํ™˜๋˜๊ณ  ํ‡ด์žฅํ•˜๋Š” ์œ ๋™์  ํŒ€ ๊ตฌ์„ฑ
12
- - **Discord ํ†ตํ•ฉ** - ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…์œผ๋กœ ์ž์—ฐ์Šค๋Ÿฌ์šด ํ˜‘์—… ๊ฒฝํ—˜
13
- - **๊ทธ๋ฃน์”ฝํฌ ๋ฐฉ์ง€** - ๋น„ํŒ/๊ฒ€์ฆ ์—์ด์ „ํŠธ๋กœ ๊ท ํ˜• ์žกํžŒ ์˜์‚ฌ๊ฒฐ์ •
10
+ - **35 Specialized Agents** - Development, design, testing, security, psychology counseling, and more
11
+ - **Dynamic Collaboration** - Agents are summoned and dismissed as needed
12
+ - **Discord Integration** - Real-time chat for natural collaboration
13
+ - **Groupthink Prevention** - Critic/verification agents ensure balanced decision-making
14
14
 
15
- ## ๐Ÿ“ฆ ์„ค์น˜
15
+ ## ๐Ÿ“ฆ Installation
16
16
 
17
17
  ```bash
18
18
  npm install -g too-many-claw
19
19
  ```
20
20
 
21
- ์„ค์น˜ ์‹œ ์ž๋™์œผ๋กœ:
22
- - `~/.openclaw/` ํ•˜์œ„์— 35๊ฐœ workspace ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ
23
- - ๊ฐ workspace์— SOUL.md (์—์ด์ „ํŠธ ํŽ˜๋ฅด์†Œ๋‚˜) ์ƒ์„ฑ
24
- - `openclaw.json`์— ์—์ด์ „ํŠธ ์„ค์ • ๋ณ‘ํ•ฉ
21
+ During installation, the following is automatically set up:
22
+ - 35 workspace directories under `~/.openclaw/`
23
+ - SOUL.md files (agent personas) for each workspace
24
+ - Agent configuration merged into `openclaw.json`
25
25
 
26
- ## ๐Ÿš€ ์‚ฌ์šฉ๋ฒ•
26
+ ## ๐Ÿš€ Quick Start
27
27
 
28
- ### Discord ๋ด‡ ์‹œ์ž‘
28
+ ### Interactive Setup (Recommended)
29
29
  ```bash
30
- tmc start
30
+ tmc setup
31
31
  ```
32
32
 
33
- ### ํ„ฐ๋ฏธ๋„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ (Discord ์—†์ด ํ…Œ์ŠคํŠธ)
33
+ ### Start Discord Bot
34
34
  ```bash
35
- tmc simulate
35
+ tmc start
36
36
  ```
37
37
 
38
- ### ์—์ด์ „ํŠธ ์ƒํƒœ ํ™•์ธ
38
+ ### Terminal Simulation (No Discord Required)
39
39
  ```bash
40
- tmc status
40
+ tmc simulate
41
41
  ```
42
42
 
43
- ### Discord ์„ค์ • ๋งˆ๋ฒ•์‚ฌ
43
+ ### Check Agent Status
44
44
  ```bash
45
- tmc setup-discord
45
+ tmc status
46
46
  ```
47
47
 
48
- ### ์„ค์ • ์ œ๊ฑฐ
48
+ ### List All Agents
49
49
  ```bash
50
- tmc uninstall
51
- ```
52
-
53
- ## ๐Ÿ‘ฅ ์—์ด์ „ํŠธ ๋ชฉ๋ก
54
-
55
- ### ๐Ÿ  ์ฝ”์–ด
56
- | ID | ์ด๋ฆ„ | ๋ชจ๋ธ | ์—ญํ•  |
57
- |----|------|------|------|
58
- | `base` | Base | Opus | ํŒ€ ์ฝ”๋””๋„ค์ดํ„ฐ (ํ•ญ์ƒ ํ™œ์„ฑ) |
59
-
60
- ### ๐Ÿ” ์กฐ์‚ฌ/๋ถ„์„
61
- | ID | ์ด๋ฆ„ | ๋ชจ๋ธ | ์—ญํ•  |
62
- |----|------|------|------|
63
- | `searcher` | ๊ฒ€์ƒ‰ ์ „๋ฌธ๊ฐ€ | Sonnet | ์ •๋ณด ๊ฒ€์ƒ‰ ๋ฐ ์ž๋ฃŒ ์ˆ˜์ง‘ |
64
- | `tech-researcher` | ์ตœ์‹  ๊ธฐ์ˆ  ์กฐ์‚ฌ ์ „๋ฌธ๊ฐ€ | Sonnet | ๊ธฐ์ˆ  ํŠธ๋ Œ๋“œ ์กฐ์‚ฌ |
65
- | `trend-analyst` | ์œ ํ–‰ ๋ถ„์„ ์ „๋ฌธ๊ฐ€ | Sonnet | ์‹œ์žฅ/ํŠธ๋ Œ๋“œ ๋ถ„์„ |
66
- | `data-provider` | ๋ฐ์ดํ„ฐ ๋งˆ๋ จ ์ „๋ฌธ๊ฐ€ | Sonnet | ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘/์ •์ œ |
67
-
68
- ### ๐Ÿ’š ์‹ฌ๋ฆฌ/์†Œํ†ต
69
- | ID | ์ด๋ฆ„ | ๋ชจ๋ธ | ์—ญํ•  |
70
- |----|------|------|------|
71
- | `counselor` | ์‹ฌ๋ฆฌ ์ƒ๋‹ด๊ฐ€ | Sonnet | ๊ฐ์ • ์ง€์› ๋ฐ ์ƒ๋‹ด |
72
- | `user-psychologist` | ์‚ฌ์šฉ์ž ์‹ฌ๋ฆฌ ๋ถ„์„๊ฐ€ | Opus | ์‚ฌ์šฉ์ž ์˜๋„ ๋ถ„์„ |
73
- | `questioner` | ์งˆ๋ฌธ ์ „๋ฌธ๊ฐ€ | Sonnet | ์š”๊ตฌ์‚ฌํ•ญ ๋ช…ํ™•ํ™” |
74
- | `persuader` | ํ•ฉ๋ฆฌ์  ์„ค๋“ ์ „๋ฌธ๊ฐ€ | Sonnet | ๋…ผ๋ฆฌ์  ์„ค๋“/์ค‘์žฌ |
75
- | `educator` | ๊ต์œก ์ „๋ฌธ๊ฐ€ | Sonnet | ๊ฐœ๋… ์„ค๋ช…/๊ต์œก |
76
-
77
- ### ๐Ÿ“‹ ๊ธฐํš/๊ด€๋ฆฌ
78
- | ID | ์ด๋ฆ„ | ๋ชจ๋ธ | ์—ญํ•  |
79
- |----|------|------|------|
80
- | `planner` | ์ „๋ฌธ์ ์ธ ๊ณ„ํš ์ „๋ฌธ๊ฐ€ | Opus | ๊ณ„ํš ์ˆ˜๋ฆฝ/๋กœ๋“œ๋งต |
81
- | `team-composer` | ์—์ด์ „ํŠธ ํŒ€ ๊ตฌ์„ฑ ์ „๋ฌธ๊ฐ€ | Sonnet | ์ตœ์  ํŒ€ ๊ตฌ์„ฑ |
82
- | `promoter` | ํ™๋ณด ์ „๋ฌธ๊ฐ€ | Sonnet | ๋งˆ์ผ€ํŒ…/๋ธŒ๋žœ๋”ฉ |
83
- | `uploader` | ์—…๋กœ๋” | Haiku | ๋ฐฐํฌ/๋ฆด๋ฆฌ์ฆˆ |
84
-
85
- ### โš™๏ธ ๊ฐœ๋ฐœ
86
- | ID | ์ด๋ฆ„ | ๋ชจ๋ธ | ์—ญํ•  |
87
- |----|------|------|------|
88
- | `backend-dev` | ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž | Sonnet | ์„œ๋ฒ„/API/DB |
89
- | `frontend-dev` | ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž | Sonnet | UI/UX ๊ตฌํ˜„ |
90
- | `designer` | ์ „๋ฌธ ๋””์ž์ด๋„ˆ | Sonnet | UI/UX ๋””์ž์ธ |
91
- | `code-reviewer` | ์ฝ”๋“œ ๋ฆฌ๋ทฐ์–ด | Sonnet | ์ฝ”๋“œ ํ’ˆ์งˆ ๊ฒ€ํ†  |
92
- | `doc-writer` | ๋ฌธ์„œ ์ž‘์„ฑ ์ „๋ฌธ๊ฐ€ | Sonnet | ๋ฌธ์„œํ™” |
93
- | `automator` | ์ž๋™ํ™” ์ „๋ฌธ๊ฐ€ | Sonnet | ์›Œํฌํ”Œ๋กœ์šฐ ์ž๋™ํ™” |
94
- | `prompt-engineer` | ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด | Sonnet | AI ํ”„๋กฌํ”„ํŠธ ์ตœ์ ํ™” |
95
- | `ai-illustrator` | AI ์ผ๋Ÿฌ์ŠคํŠธ ์ƒ์„ฑ ์ „๋ฌธ๊ฐ€ | Sonnet | AI ์ด๋ฏธ์ง€ ์ƒ์„ฑ |
96
-
97
- ### ๐Ÿงช ํ…Œ์ŠคํŠธ/๋ณด์•ˆ
98
- | ID | ์ด๋ฆ„ | ๋ชจ๋ธ | ์—ญํ•  |
99
- |----|------|------|------|
100
- | `program-tester` | ํ”„๋กœ๊ทธ๋žจ ํ…Œ์ŠคํŠธ ์ „๋ฌธ๊ฐ€ | Sonnet | ๊ธฐ์ˆ  ํ…Œ์ŠคํŠธ/QA |
101
- | `user-tester` | ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž ํ…Œ์ŠคํŠธ ์ „๋ฌธ๊ฐ€ | Sonnet | ์‚ฌ์šฉ์„ฑ ๊ฒ€์ฆ |
102
- | `security-checker` | ๋ณด์•ˆ ์ฒดํฌ ์ „๋ฌธ๊ฐ€ | Sonnet | ๋ณด์•ˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ |
103
- | `vuln-finder` | ์ทจ์•ฝ์  ์ฐพ๊ธฐ ์ „๋ฌธ๊ฐ€ | Sonnet | ์ทจ์•ฝ์  ๋ถ„์„ |
104
- | `pentester` | ๋ชจ์˜ํ•ดํ‚น ์ „๋ฌธ๊ฐ€ | Opus | ์นจํˆฌ ํ…Œ์ŠคํŠธ |
105
-
106
- ### ๐Ÿง ๋น„ํŒ/๊ฒ€์ฆ (๊ทธ๋ฃน์”ฝํฌ ๋ฐฉ์ง€)
107
- | ID | ์ด๋ฆ„ | ๋ชจ๋ธ | ์—ญํ•  |
108
- |----|------|------|------|
109
- | `fact-bomber` | ํŒฉํŠธํญํ–‰ ์ „๋ฌธ๊ฐ€ | Sonnet | ํŒฉํŠธ ์ฒดํฌ |
110
- | `roaster` | ๋…์„ค๊ฐ€ | Sonnet | ์ง์„ค์  ๋น„ํŒ |
111
- | `critic` | ๋น„ํŒ๊ฐ€ | Opus | ๋…ผ๋ฆฌ์  ๋น„ํŒ |
112
- | `negativist` | ๋ถ€์ •์ ์ธ ์—์ด์ „ํŠธ | Sonnet | ๋ฆฌ์Šคํฌ ๋ถ„์„ |
113
- | `praiser` | ์นญ์ฐฌ ์ „๋ฌธ๊ฐ€ | Haiku | ๋™๊ธฐ๋ถ€์—ฌ/๊ฒฉ๋ ค |
114
-
115
- ### ๐Ÿ•ณ๏ธ ํŠน์ˆ˜ ์—ญํ• 
116
- | ID | ์ด๋ฆ„ | ๋ชจ๋ธ | ์—ญํ•  |
117
- |----|------|------|------|
118
- | `loophole-finder` | ๊ผผ์ˆ˜ ์ฐพ๊ธฐ ์ „๋ฌธ๊ฐ€ | Sonnet | ๊ทœ์น™ ๋‚ด ์ตœ์ ํ™” |
119
- | `threatener` | ํ˜‘๋ฐ• ์ „๋ฌธ๊ฐ€ | Sonnet | ๋ฐ๋“œ๋ผ์ธ ์••๋ฐ• |
120
- | `dirty-worker` | ๋”ํ‹ฐ์›Œ์ปค | Haiku | ๊ธฐํ”ผ ์—…๋ฌด ๋‹ด๋‹น |
121
-
122
- ## ๐Ÿ’ฌ ์†Œํ†ต ๋ฐฉ์‹
123
-
124
- ### ์—์ด์ „ํŠธ ์†Œํ™˜
125
- ```
126
- @searcher ์ด๊ฑฐ ์ข€ ์ฐพ์•„๋ด
127
- @backend-dev @frontend-dev ๊ฐ™์ด ํ˜‘์—…ํ•ด์„œ ๋งŒ๋“ค์–ด์ค˜
128
- ```
129
-
130
- ### ์—์ด์ „ํŠธ ํ‡ด์žฅ
131
- - **์ž์ง„ ํ‡ด์žฅ**: ์ž‘์—… ์™„๋ฃŒ ์‹œ `(ํ‡ด์žฅ)` ์„ ์–ธ
132
- - **๋ช…๋ น ํ‡ด์žฅ**: Base๊ฐ€ `@์—์ด์ „ํŠธ๋ช… ํ‡ด์žฅํ•ด` ๋ช…๋ น
133
- - **์ธ๊ณ„ ํ‡ด์žฅ**: ๋‹ค๋ฅธ ์—์ด์ „ํŠธ์—๊ฒŒ ์ž‘์—… ๋„˜๊ธฐ๋ฉฐ ํ‡ด์žฅ
134
-
135
- ### ๋ฉ”์‹œ์ง€ ํ˜•์‹
136
- ```
137
- ์ž…์žฅ: "๐Ÿ”ฌ Tech Researcher (์ž…์žฅ) ์•Œ๊ฒ ์–ด, ์กฐ์‚ฌํ•ด๋ณผ๊ฒŒ."
138
- ์ผ๋ฐ˜: "๐Ÿ”ฌ Tech Researcher ์กฐ์‚ฌ ๊ฒฐ๊ณผ ์ •๋ฆฌํ–ˆ์–ด. ..."
139
- ํ‡ด์žฅ: "๐Ÿ”ฌ Tech Researcher ์กฐ์‚ฌ ์™„๋ฃŒ. (ํ‡ด์žฅ)"
140
- ```
141
-
142
- ## ๐Ÿ“ Discord ์ฑ„๋„ ๊ตฌ์กฐ
143
-
144
- ```
145
- #chat - ๋ฉ”์ธ ๋Œ€ํ™” ์ฑ„๋„ (๋ชจ๋“  ์†Œํ†ต)
146
- #status - ์—์ด์ „ํŠธ ์ž…์žฅ/ํ‡ด์žฅ ์ž๋™ ๋กœ๊ทธ
147
- ์Šค๋ ˆ๋“œ - ๋ณต์žกํ•œ ์ž‘์—… ๋ถ„๋ฆฌ
148
- ```
149
-
150
- ## โš™๏ธ ์„ค์ •
151
-
152
- ### ํ™˜๊ฒฝ ๋ณ€์ˆ˜
50
+ tmc agents
51
+ ```
52
+
53
+ ## ๐Ÿ‘ฅ Agent Directory
54
+
55
+ ### ๐Ÿ  Core
56
+ | ID | Name | Model | Role |
57
+ |----|------|-------|------|
58
+ | `base` | Base | Opus | Team Coordinator (always active) |
59
+
60
+ ### ๐Ÿ” Research
61
+ | ID | Name | Model | Role |
62
+ |----|------|-------|------|
63
+ | `searcher` | Search Specialist | Sonnet | Information search and resource collection |
64
+ | `tech-researcher` | Technology Research Specialist | Sonnet | Technology trend investigation |
65
+ | `trend-analyst` | Trend Analysis Specialist | Sonnet | Market/trend analysis |
66
+ | `data-provider` | Data Preparation Specialist | Sonnet | Data collection/processing |
67
+
68
+ ### ๐Ÿ’š Psychology
69
+ | ID | Name | Model | Role |
70
+ |----|------|-------|------|
71
+ | `counselor` | Psychological Counselor | Sonnet | Emotional support and counseling |
72
+ | `user-psychologist` | User Psychology Analyst | Opus | User intent analysis |
73
+ | `questioner` | Questioning Specialist | Sonnet | Requirements clarification |
74
+ | `persuader` | Rational Persuasion Specialist | Sonnet | Logical persuasion/mediation |
75
+ | `educator` | Education Specialist | Sonnet | Concept explanation/teaching |
76
+
77
+ ### ๐Ÿ“‹ Planning
78
+ | ID | Name | Model | Role |
79
+ |----|------|-------|------|
80
+ | `planner` | Professional Planning Specialist | Opus | Planning/roadmaps |
81
+ | `team-composer` | Agent Team Composition Specialist | Sonnet | Optimal team composition |
82
+ | `promoter` | Promotion Specialist | Sonnet | Marketing/branding |
83
+ | `uploader` | Uploader | Haiku | Deployment/release |
84
+
85
+ ### โš™๏ธ Development
86
+ | ID | Name | Model | Role |
87
+ |----|------|-------|------|
88
+ | `backend-dev` | Backend Developer | Sonnet | Server/API/DB |
89
+ | `frontend-dev` | Frontend Developer | Sonnet | UI/UX implementation |
90
+ | `designer` | Professional Designer | Sonnet | UI/UX design |
91
+ | `code-reviewer` | Code Reviewer | Sonnet | Code quality review |
92
+ | `doc-writer` | Documentation Specialist | Sonnet | Documentation |
93
+ | `automator` | Automation Specialist | Sonnet | Workflow automation |
94
+ | `prompt-engineer` | Prompt Engineer | Sonnet | AI prompt optimization |
95
+ | `ai-illustrator` | AI Illustration Generation Specialist | Sonnet | AI image generation |
96
+
97
+ ### ๐Ÿงช Testing/Security
98
+ | ID | Name | Model | Role |
99
+ |----|------|-------|------|
100
+ | `program-tester` | Program Testing Specialist | Sonnet | Technical testing/QA |
101
+ | `user-tester` | General User Testing Specialist | Sonnet | Usability verification |
102
+ | `security-checker` | Security Check Specialist | Sonnet | Security checklist |
103
+ | `vuln-finder` | Vulnerability Discovery Specialist | Sonnet | Vulnerability analysis |
104
+ | `pentester` | Penetration Testing Specialist | Opus | Penetration testing |
105
+
106
+ ### ๐Ÿง Critique (Groupthink Prevention)
107
+ | ID | Name | Model | Role |
108
+ |----|------|-------|------|
109
+ | `fact-bomber` | Fact Check Specialist | Sonnet | Fact checking |
110
+ | `roaster` | Blunt Critic | Sonnet | Direct criticism |
111
+ | `critic` | Critic | Opus | Logical criticism |
112
+ | `negativist` | Negative Agent | Sonnet | Risk analysis |
113
+ | `praiser` | Praise Specialist | Haiku | Motivation/encouragement |
114
+
115
+ ### ๐Ÿ•ณ๏ธ Special Roles
116
+ | ID | Name | Model | Role |
117
+ |----|------|-------|------|
118
+ | `loophole-finder` | Loophole Discovery Specialist | Sonnet | Optimization within rules |
119
+ | `threatener` | Pressure Specialist | Sonnet | Deadline pressure |
120
+ | `dirty-worker` | Dirty Worker | Haiku | Undesirable tasks |
121
+
122
+ ## ๐Ÿ’ฌ Communication
123
+
124
+ ### Summoning Agents
125
+ ```
126
+ @searcher Find this for me
127
+ @backend-dev @frontend-dev Work together on this
128
+ ```
129
+
130
+ ### Agent Exit
131
+ - **Voluntary Exit**: Agent declares `(exit)` when work is complete
132
+ - **Command Exit**: Base commands `@agent-name exit`
133
+ - **Handoff Exit**: Exit while handing work to another agent
134
+
135
+ ### Message Format
136
+ ```
137
+ Entry: "๐Ÿ”ฌ Tech Researcher (entering) Got it, I'll investigate."
138
+ Normal: "๐Ÿ”ฌ Tech Researcher Here are my findings. ..."
139
+ Exit: "๐Ÿ”ฌ Tech Researcher Investigation complete. (exiting)"
140
+ ```
141
+
142
+ ## ๐Ÿ“ Discord Channel Structure
143
+
144
+ ```
145
+ #chat - Main conversation channel (all communication)
146
+ #status - Automatic agent entry/exit logs
147
+ Threads - For complex task separation
148
+ ```
149
+
150
+ ## โš™๏ธ Configuration
151
+
152
+ ### Environment Variables
153
153
  ```bash
154
154
  DISCORD_TOKEN=your_bot_token
155
155
  DISCORD_GUILD_ID=your_server_id
@@ -157,65 +157,65 @@ DISCORD_CHAT_CHANNEL_ID=chat_channel_id
157
157
  DISCORD_STATUS_CHANNEL_ID=status_channel_id
158
158
  ```
159
159
 
160
- ### ์„ค์ • ํŒŒ์ผ
161
- - `~/.openclaw/too-many-claw.json` - Discord ์„ค์ • ๋ฐ ์›นํ›… URL
162
- - `~/.openclaw/openclaw.json` - ์—์ด์ „ํŠธ ์ •์˜ (์ž๋™ ๋ณ‘ํ•ฉ)
163
- - `~/.openclaw/workspace-{id}/SOUL.md` - ์—์ด์ „ํŠธ๋ณ„ ํŽ˜๋ฅด์†Œ๋‚˜
160
+ ### Configuration Files
161
+ - `~/.openclaw/too-many-claw.json` - Discord settings and webhook URLs
162
+ - `~/.openclaw/openclaw.json` - Agent definitions (auto-merged)
163
+ - `~/.openclaw/workspace-{id}/SOUL.md` - Agent personas
164
164
 
165
- ## ๐Ÿ”ง ๊ฐœ๋ฐœ
165
+ ## ๐Ÿ”ง Development
166
166
 
167
167
  ```bash
168
- # ์˜์กด์„ฑ ์„ค์น˜
168
+ # Install dependencies
169
169
  npm install
170
170
 
171
- # ๊ฐœ๋ฐœ ๋ชจ๋“œ
171
+ # Development mode
172
172
  npm run dev
173
173
 
174
- # ๋นŒ๋“œ
174
+ # Build
175
175
  npm run build
176
176
  ```
177
177
 
178
- ## ๐Ÿš€ ๋ฐฐํฌ (npm ํผ๋ธ”๋ฆฌ์‹œ)
178
+ ## ๐Ÿš€ Deployment (npm publish)
179
179
 
180
- ### GitHub Actions ์ž๋™ ๋ฐฐํฌ
180
+ ### Automatic Deployment via GitHub Actions
181
181
 
182
- ์ด ํ”„๋กœ์ ํŠธ๋Š” GitHub Actions๋ฅผ ํ†ตํ•ด npm์— ์ž๋™ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.
182
+ This project is automatically deployed to npm via GitHub Actions.
183
183
 
184
- #### 1. npm ํ† ํฐ ์„ค์ •
184
+ #### 1. npm Token Setup
185
185
 
186
- 1. [npmjs.com](https://www.npmjs.com/) ์—์„œ Access Token ์ƒ์„ฑ
186
+ 1. Generate Access Token at [npmjs.com](https://www.npmjs.com/)
187
187
  - Account โ†’ Access Tokens โ†’ Generate New Token โ†’ Automation
188
- 2. GitHub ์ €์žฅ์†Œ Settings โ†’ Secrets and variables โ†’ Actions
189
- 3. `NPM_TOKEN` ์ด๋ฆ„์œผ๋กœ Secret ์ถ”๊ฐ€
188
+ 2. Go to GitHub repository Settings โ†’ Secrets and variables โ†’ Actions
189
+ 3. Add Secret named `NPM_TOKEN`
190
190
 
191
- #### 2. ๋ฐฐํฌ ํŠธ๋ฆฌ๊ฑฐ
191
+ #### 2. Deployment Triggers
192
192
 
193
- **๋ฐฉ๋ฒ• A: ํƒœ๊ทธ ํ‘ธ์‹œ**
193
+ **Method A: Tag Push**
194
194
  ```bash
195
- # ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ
196
- npm version patch # ๋˜๋Š” minor, major
195
+ # Update version
196
+ npm version patch # or minor, major
197
197
 
198
- # ํƒœ๊ทธ ํ‘ธ์‹œ (์ž๋™ ๋ฐฐํฌ ํŠธ๋ฆฌ๊ฑฐ)
198
+ # Push tags (triggers auto-deployment)
199
199
  git push --tags
200
200
  ```
201
201
 
202
- **๋ฐฉ๋ฒ• B: GitHub Release ์ƒ์„ฑ**
202
+ **Method B: GitHub Release**
203
203
  1. GitHub โ†’ Releases โ†’ Create a new release
204
- 2. ํƒœ๊ทธ ์ƒ์„ฑ (์˜ˆ: `v1.0.1`)
205
- 3. Release ๋ฐœํ–‰ โ†’ ์ž๋™ ๋ฐฐํฌ
204
+ 2. Create tag (e.g., `v1.0.3`)
205
+ 3. Publish release โ†’ Auto-deployment
206
206
 
207
- #### 3. ์›Œํฌํ”Œ๋กœ์šฐ ํŒŒ์ผ
207
+ #### 3. Workflow Files
208
208
 
209
- - `.github/workflows/ci.yml` - PR/ํ‘ธ์‹œ ์‹œ ๋นŒ๋“œ ํ…Œ์ŠคํŠธ (Node 18, 20, 22)
210
- - `.github/workflows/publish.yml` - ํƒœ๊ทธ/๋ฆด๋ฆฌ์Šค ์‹œ npm ๋ฐฐํฌ
209
+ - `.github/workflows/ci.yml` - Build tests on PR/push (Node 18, 20, 22)
210
+ - `.github/workflows/publish.yml` - npm deployment on tag/release
211
211
 
212
- ### ์ˆ˜๋™ ๋ฐฐํฌ
212
+ ### Manual Deployment
213
213
 
214
214
  ```bash
215
215
  npm run build
216
216
  npm publish --access public
217
217
  ```
218
218
 
219
- ## ๐Ÿ“„ ๋ผ์ด์„ ์Šค
219
+ ## ๐Ÿ“„ License
220
220
 
221
221
  Apache 2.0 ยฉ 2024