@channeulparks/woorido-skills 1.0.0 → 1.1.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/bin/cli.js +70 -20
- package/package.json +2 -2
package/bin/cli.js
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* WooriDo Skills CLI
|
|
5
5
|
*
|
|
6
6
|
* Usage:
|
|
7
|
-
* npx woorido-skills install
|
|
8
|
-
* npx woorido-skills
|
|
9
|
-
* npx woorido-skills list
|
|
7
|
+
* npx @channeulparks/woorido-skills install
|
|
8
|
+
* npx @channeulparks/woorido-skills uninstall
|
|
9
|
+
* npx @channeulparks/woorido-skills list
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
12
|
const fs = require('fs');
|
|
@@ -29,14 +29,14 @@ const colors = {
|
|
|
29
29
|
*/
|
|
30
30
|
function copyRecursive(src, dest, dryRun = false) {
|
|
31
31
|
const files = [];
|
|
32
|
-
|
|
32
|
+
|
|
33
33
|
function walk(srcPath, destPath) {
|
|
34
34
|
const entries = fs.readdirSync(srcPath, { withFileTypes: true });
|
|
35
|
-
|
|
35
|
+
|
|
36
36
|
for (const entry of entries) {
|
|
37
37
|
const srcFile = path.join(srcPath, entry.name);
|
|
38
38
|
const destFile = path.join(destPath, entry.name);
|
|
39
|
-
|
|
39
|
+
|
|
40
40
|
if (entry.isDirectory()) {
|
|
41
41
|
if (!dryRun && !fs.existsSync(destFile)) {
|
|
42
42
|
fs.mkdirSync(destFile, { recursive: true });
|
|
@@ -48,7 +48,7 @@ function copyRecursive(src, dest, dryRun = false) {
|
|
|
48
48
|
dest: destFile,
|
|
49
49
|
relativeDest: path.relative(TARGET_DIR, destFile),
|
|
50
50
|
});
|
|
51
|
-
|
|
51
|
+
|
|
52
52
|
if (!dryRun) {
|
|
53
53
|
const destDir = path.dirname(destFile);
|
|
54
54
|
if (!fs.existsSync(destDir)) {
|
|
@@ -59,7 +59,7 @@ function copyRecursive(src, dest, dryRun = false) {
|
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
|
|
62
|
+
|
|
63
63
|
walk(src, dest);
|
|
64
64
|
return files;
|
|
65
65
|
}
|
|
@@ -69,25 +69,25 @@ function copyRecursive(src, dest, dryRun = false) {
|
|
|
69
69
|
*/
|
|
70
70
|
function install(options = {}) {
|
|
71
71
|
const { dryRun = false } = options;
|
|
72
|
-
|
|
72
|
+
|
|
73
73
|
console.log();
|
|
74
74
|
console.log(colors.blue('🚀 WooriDo Skills Installer'));
|
|
75
75
|
console.log();
|
|
76
|
-
|
|
76
|
+
|
|
77
77
|
if (dryRun) {
|
|
78
78
|
console.log(colors.yellow('📋 Dry run mode - no files will be created'));
|
|
79
79
|
console.log();
|
|
80
80
|
}
|
|
81
|
-
|
|
81
|
+
|
|
82
82
|
const files = copyRecursive(TEMPLATES_DIR, TARGET_DIR, dryRun);
|
|
83
|
-
|
|
83
|
+
|
|
84
84
|
console.log(colors.dim('Installing files:'));
|
|
85
85
|
console.log();
|
|
86
|
-
|
|
86
|
+
|
|
87
87
|
for (const file of files) {
|
|
88
88
|
console.log(` ${colors.green('✔')} ${file.relativeDest}`);
|
|
89
89
|
}
|
|
90
|
-
|
|
90
|
+
|
|
91
91
|
console.log();
|
|
92
92
|
console.log(colors.green(`✨ Done! ${files.length} files installed.`));
|
|
93
93
|
console.log();
|
|
@@ -101,6 +101,49 @@ function install(options = {}) {
|
|
|
101
101
|
console.log();
|
|
102
102
|
}
|
|
103
103
|
|
|
104
|
+
/**
|
|
105
|
+
* Uninstall command
|
|
106
|
+
*/
|
|
107
|
+
function uninstall(options = {}) {
|
|
108
|
+
const { dryRun = false } = options;
|
|
109
|
+
|
|
110
|
+
console.log();
|
|
111
|
+
console.log(colors.blue('🗑️ WooriDo Skills Uninstaller'));
|
|
112
|
+
console.log();
|
|
113
|
+
|
|
114
|
+
if (dryRun) {
|
|
115
|
+
console.log(colors.yellow('📋 Dry run mode - no files will be deleted'));
|
|
116
|
+
console.log();
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
const pathsToDelete = [
|
|
120
|
+
path.join(TARGET_DIR, '.claude', 'skills', 'woorido'),
|
|
121
|
+
path.join(TARGET_DIR, '.agent', 'workflows'),
|
|
122
|
+
];
|
|
123
|
+
|
|
124
|
+
let deletedCount = 0;
|
|
125
|
+
|
|
126
|
+
for (const targetPath of pathsToDelete) {
|
|
127
|
+
if (fs.existsSync(targetPath)) {
|
|
128
|
+
console.log(` ${colors.red('✖')} Removing ${path.relative(TARGET_DIR, targetPath)}`);
|
|
129
|
+
if (!dryRun) {
|
|
130
|
+
fs.rmSync(targetPath, { recursive: true, force: true });
|
|
131
|
+
}
|
|
132
|
+
deletedCount++;
|
|
133
|
+
} else {
|
|
134
|
+
console.log(` ${colors.dim('○')} ${path.relative(TARGET_DIR, targetPath)} (not found)`);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
console.log();
|
|
139
|
+
if (deletedCount > 0) {
|
|
140
|
+
console.log(colors.green(`✨ Done! Removed ${deletedCount} directories.`));
|
|
141
|
+
} else {
|
|
142
|
+
console.log(colors.yellow('No WooriDo skills found to uninstall.'));
|
|
143
|
+
}
|
|
144
|
+
console.log();
|
|
145
|
+
}
|
|
146
|
+
|
|
104
147
|
/**
|
|
105
148
|
* List command
|
|
106
149
|
*/
|
|
@@ -108,11 +151,11 @@ function list() {
|
|
|
108
151
|
console.log();
|
|
109
152
|
console.log(colors.blue('📦 WooriDo Skills'));
|
|
110
153
|
console.log();
|
|
111
|
-
|
|
154
|
+
|
|
112
155
|
console.log(colors.dim('Unified SKILL.md:'));
|
|
113
156
|
console.log(' .claude/skills/woorido/SKILL.md');
|
|
114
157
|
console.log();
|
|
115
|
-
|
|
158
|
+
|
|
116
159
|
console.log(colors.dim('Antigravity Workflows:'));
|
|
117
160
|
const workflows = [
|
|
118
161
|
'/component - Create WDS React component',
|
|
@@ -124,7 +167,7 @@ function list() {
|
|
|
124
167
|
'/mybatis - Create MyBatis mapper',
|
|
125
168
|
'/django-view - Create Django DRF viewset',
|
|
126
169
|
];
|
|
127
|
-
|
|
170
|
+
|
|
128
171
|
for (const wf of workflows) {
|
|
129
172
|
console.log(` ${wf}`);
|
|
130
173
|
}
|
|
@@ -140,13 +183,17 @@ function help() {
|
|
|
140
183
|
console.log();
|
|
141
184
|
console.log('Commands:');
|
|
142
185
|
console.log(' install Install skills to current directory');
|
|
143
|
-
console.log('
|
|
186
|
+
console.log(' uninstall Remove installed skills');
|
|
144
187
|
console.log(' list List available skills and workflows');
|
|
145
188
|
console.log(' help Show this help message');
|
|
146
189
|
console.log();
|
|
190
|
+
console.log('Options:');
|
|
191
|
+
console.log(' --dry-run Show what would happen without making changes');
|
|
192
|
+
console.log();
|
|
147
193
|
console.log('Examples:');
|
|
148
|
-
console.log(' npx woorido-skills install');
|
|
149
|
-
console.log(' npx woorido-skills
|
|
194
|
+
console.log(' npx @channeulparks/woorido-skills install');
|
|
195
|
+
console.log(' npx @channeulparks/woorido-skills uninstall');
|
|
196
|
+
console.log(' npx @channeulparks/woorido-skills list');
|
|
150
197
|
console.log();
|
|
151
198
|
}
|
|
152
199
|
|
|
@@ -164,6 +211,9 @@ switch (command) {
|
|
|
164
211
|
case 'install':
|
|
165
212
|
install(options);
|
|
166
213
|
break;
|
|
214
|
+
case 'uninstall':
|
|
215
|
+
uninstall(options);
|
|
216
|
+
break;
|
|
167
217
|
case 'list':
|
|
168
218
|
list();
|
|
169
219
|
break;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@channeulparks/woorido-skills",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "WooriDo AI Coding Rules for Claude, Gemini, Antigravity and other AI coding assistants",
|
|
5
5
|
"main": "bin/cli.js",
|
|
6
6
|
"bin": {
|
|
@@ -32,4 +32,4 @@
|
|
|
32
32
|
"type": "git",
|
|
33
33
|
"url": "https://github.com/ParkChanNul/woorido-skills"
|
|
34
34
|
}
|
|
35
|
-
}
|
|
35
|
+
}
|