superskills 0.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/LICENSE +21 -0
- package/README.md +363 -0
- package/bin/superskills +6 -0
- package/dist/catalog/index.d.ts +11 -0
- package/dist/catalog/index.d.ts.map +1 -0
- package/dist/catalog/index.js +203 -0
- package/dist/catalog/index.js.map +1 -0
- package/dist/catalog/tools-catalog.json +243 -0
- package/dist/catalog/types.d.ts +59 -0
- package/dist/catalog/types.d.ts.map +1 -0
- package/dist/catalog/types.js +2 -0
- package/dist/catalog/types.js.map +1 -0
- package/dist/catalog/ui.d.ts +4 -0
- package/dist/catalog/ui.d.ts.map +1 -0
- package/dist/catalog/ui.js +86 -0
- package/dist/catalog/ui.js.map +1 -0
- package/dist/cli/colors.d.ts +8 -0
- package/dist/cli/colors.d.ts.map +1 -0
- package/dist/cli/colors.js +11 -0
- package/dist/cli/colors.js.map +1 -0
- package/dist/discovery/analyze.d.ts +5 -0
- package/dist/discovery/analyze.d.ts.map +1 -0
- package/dist/discovery/analyze.js +190 -0
- package/dist/discovery/analyze.js.map +1 -0
- package/dist/discovery/core.d.ts +16 -0
- package/dist/discovery/core.d.ts.map +1 -0
- package/dist/discovery/core.js +51 -0
- package/dist/discovery/core.js.map +1 -0
- package/dist/discovery/index.d.ts +4 -0
- package/dist/discovery/index.d.ts.map +1 -0
- package/dist/discovery/index.js +233 -0
- package/dist/discovery/index.js.map +1 -0
- package/dist/discovery/schema.d.ts +111 -0
- package/dist/discovery/schema.d.ts.map +1 -0
- package/dist/discovery/schema.js +87 -0
- package/dist/discovery/schema.js.map +1 -0
- package/dist/discovery/types.d.ts +56 -0
- package/dist/discovery/types.d.ts.map +1 -0
- package/dist/discovery/types.js +2 -0
- package/dist/discovery/types.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +523 -0
- package/dist/index.js.map +1 -0
- package/dist/scaffold/index.d.ts +4 -0
- package/dist/scaffold/index.d.ts.map +1 -0
- package/dist/scaffold/index.js +262 -0
- package/dist/scaffold/index.js.map +1 -0
- package/dist/scaffold/templates/claude-md.d.ts +4 -0
- package/dist/scaffold/templates/claude-md.d.ts.map +1 -0
- package/dist/scaffold/templates/claude-md.js +229 -0
- package/dist/scaffold/templates/claude-md.js.map +1 -0
- package/dist/scaffold/templates/claude-settings.d.ts +3 -0
- package/dist/scaffold/templates/claude-settings.d.ts.map +1 -0
- package/dist/scaffold/templates/claude-settings.js +48 -0
- package/dist/scaffold/templates/claude-settings.js.map +1 -0
- package/dist/scaffold/templates/env-example.d.ts +3 -0
- package/dist/scaffold/templates/env-example.d.ts.map +1 -0
- package/dist/scaffold/templates/env-example.js +103 -0
- package/dist/scaffold/templates/env-example.js.map +1 -0
- package/dist/scaffold/templates/package-json.d.ts +2 -0
- package/dist/scaffold/templates/package-json.d.ts.map +1 -0
- package/dist/scaffold/templates/package-json.js +56 -0
- package/dist/scaffold/templates/package-json.js.map +1 -0
- package/dist/scaffold/templates/project-files.d.ts +4 -0
- package/dist/scaffold/templates/project-files.d.ts.map +1 -0
- package/dist/scaffold/templates/project-files.js +459 -0
- package/dist/scaffold/templates/project-files.js.map +1 -0
- package/dist/scaffold/templates/skill-agents.d.ts +4 -0
- package/dist/scaffold/templates/skill-agents.d.ts.map +1 -0
- package/dist/scaffold/templates/skill-agents.js +68 -0
- package/dist/scaffold/templates/skill-agents.js.map +1 -0
- package/dist/scaffold/templates/skill-commands.d.ts +3 -0
- package/dist/scaffold/templates/skill-commands.d.ts.map +1 -0
- package/dist/scaffold/templates/skill-commands.js +509 -0
- package/dist/scaffold/templates/skill-commands.js.map +1 -0
- package/dist/scaffold/templates/teammate-prompts.d.ts +8 -0
- package/dist/scaffold/templates/teammate-prompts.d.ts.map +1 -0
- package/dist/scaffold/templates/teammate-prompts.js +506 -0
- package/dist/scaffold/templates/teammate-prompts.js.map +1 -0
- package/dist/scaffold/types.d.ts +68 -0
- package/dist/scaffold/types.d.ts.map +1 -0
- package/dist/scaffold/types.js +2 -0
- package/dist/scaffold/types.js.map +1 -0
- package/dist/scaffold/ui.d.ts +5 -0
- package/dist/scaffold/ui.d.ts.map +1 -0
- package/dist/scaffold/ui.js +127 -0
- package/dist/scaffold/ui.js.map +1 -0
- package/dist/utils/logger.d.ts +3 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +8 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +69 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,523 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// Check Node.js version before anything else
|
|
3
|
+
const nodeVersion = parseInt(process.versions.node.split('.')[0], 10);
|
|
4
|
+
if (nodeVersion < 20) {
|
|
5
|
+
console.error(`\n SuperSkills requires Node.js 20 or later. You have ${process.versions.node}.`);
|
|
6
|
+
console.error(' Install the latest LTS: https://nodejs.org\n');
|
|
7
|
+
process.exit(1);
|
|
8
|
+
}
|
|
9
|
+
import { Command } from 'commander';
|
|
10
|
+
import * as p from '@clack/prompts';
|
|
11
|
+
import pc from 'picocolors';
|
|
12
|
+
import fs from 'fs-extra';
|
|
13
|
+
import path from 'path';
|
|
14
|
+
import os from 'os';
|
|
15
|
+
import { runDiscovery, processJsonInput, getInputJsonSchema, ValidationError } from './discovery/index.js';
|
|
16
|
+
import { DiscoveryResultSchema } from './discovery/schema.js';
|
|
17
|
+
import { selectTools, loadCatalog, getSdkPackages, getEnvVars } from './catalog/index.js';
|
|
18
|
+
import { runToolSelection } from './catalog/ui.js';
|
|
19
|
+
import { scaffold } from './scaffold/index.js';
|
|
20
|
+
import { runScaffold } from './scaffold/ui.js';
|
|
21
|
+
// Load saved API key from ~/.superskills/.env if not in environment
|
|
22
|
+
const savedEnvPath = path.join(os.homedir(), '.superskills', '.env');
|
|
23
|
+
if (!process.env.ANTHROPIC_API_KEY && fs.pathExistsSync(savedEnvPath)) {
|
|
24
|
+
const envContent = fs.readFileSync(savedEnvPath, 'utf-8');
|
|
25
|
+
for (const line of envContent.split('\n')) {
|
|
26
|
+
const trimmed = line.trim();
|
|
27
|
+
if (trimmed && !trimmed.startsWith('#')) {
|
|
28
|
+
const eqIndex = trimmed.indexOf('=');
|
|
29
|
+
if (eqIndex > 0) {
|
|
30
|
+
const key = trimmed.slice(0, eqIndex).trim();
|
|
31
|
+
const value = trimmed.slice(eqIndex + 1).trim();
|
|
32
|
+
if (key && value && !process.env[key]) {
|
|
33
|
+
process.env[key] = value;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
const program = new Command();
|
|
40
|
+
const VERSION = '0.1.0';
|
|
41
|
+
function displayBanner() {
|
|
42
|
+
console.log('');
|
|
43
|
+
console.log(pc.cyan(' ____ ____ __ _ ____ '));
|
|
44
|
+
console.log(pc.cyan(' / ___| _ _ _ __ ___ _ _/ ___|| | _(_) | |___ '));
|
|
45
|
+
console.log(pc.cyan(' \\___ \\| | | | \'_ \\ / _ \\ \'__\\___ \\| |/ / | | / __|'));
|
|
46
|
+
console.log(pc.cyan(' ___) | |_| | |_) | __/ | ___) | <| | | \\__ \\'));
|
|
47
|
+
console.log(pc.cyan(' |____/ \\__,_| .__/ \\___|_| |____/|_|\\_\\_|_|_|___/'));
|
|
48
|
+
console.log(pc.cyan(' |_| '));
|
|
49
|
+
console.log(pc.dim(` v${VERSION} — business problem in, working project out`));
|
|
50
|
+
console.log('');
|
|
51
|
+
}
|
|
52
|
+
program
|
|
53
|
+
.name('superskills')
|
|
54
|
+
.description('Skills that amplify human capabilities for AI-native product development')
|
|
55
|
+
.version(VERSION);
|
|
56
|
+
// Discovery command
|
|
57
|
+
program
|
|
58
|
+
.command('discovery')
|
|
59
|
+
.alias('d')
|
|
60
|
+
.description('Strategic planning for AI-native projects')
|
|
61
|
+
.option('-v, --verbose', 'Show detailed logs')
|
|
62
|
+
.option('--json', 'JSON output mode (no interactive prompts)')
|
|
63
|
+
.option('-i, --input <file>', 'Input JSON file (requires --json)')
|
|
64
|
+
.option('-o, --output <file>', 'Output JSON file (default: stdout)')
|
|
65
|
+
.option('--schema', 'Print input JSON schema and exit')
|
|
66
|
+
.action(async (options) => {
|
|
67
|
+
try {
|
|
68
|
+
if (options.schema) {
|
|
69
|
+
console.log(JSON.stringify(getInputJsonSchema(), null, 2));
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
if (options.json) {
|
|
73
|
+
await runDiscoveryJsonMode(options);
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
displayBanner();
|
|
77
|
+
const result = await runDiscovery();
|
|
78
|
+
if (!result) {
|
|
79
|
+
process.exit(1);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
handleError(error, options.json);
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
// Tools command
|
|
88
|
+
program
|
|
89
|
+
.command('tools')
|
|
90
|
+
.alias('t')
|
|
91
|
+
.description('Select tools based on discovery result')
|
|
92
|
+
.option('-v, --verbose', 'Show detailed logs')
|
|
93
|
+
.option('--json', 'JSON output mode (no interactive prompts)')
|
|
94
|
+
.option('-i, --input <file>', 'Discovery result JSON file (requires --json)')
|
|
95
|
+
.option('-o, --output <file>', 'Output JSON file (default: stdout)')
|
|
96
|
+
.option('--catalog', 'Print full tools catalog and exit')
|
|
97
|
+
.action(async (options) => {
|
|
98
|
+
try {
|
|
99
|
+
if (options.catalog) {
|
|
100
|
+
const catalog = await loadCatalog();
|
|
101
|
+
console.log(JSON.stringify(catalog, null, 2));
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
if (options.json) {
|
|
105
|
+
await runToolsJsonMode(options);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
displayBanner();
|
|
109
|
+
if (!options.input) {
|
|
110
|
+
console.log(pc.yellow(' No discovery result provided.'));
|
|
111
|
+
console.log(pc.dim(' Running discovery first...\n'));
|
|
112
|
+
const discoveryResult = await runDiscovery();
|
|
113
|
+
if (!discoveryResult) {
|
|
114
|
+
process.exit(1);
|
|
115
|
+
}
|
|
116
|
+
const toolsResult = await runToolSelection(discoveryResult);
|
|
117
|
+
if (!toolsResult) {
|
|
118
|
+
process.exit(1);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
const discoveryResult = await fs.readJSON(options.input);
|
|
123
|
+
const toolsResult = await runToolSelection(discoveryResult);
|
|
124
|
+
if (!toolsResult) {
|
|
125
|
+
process.exit(1);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
catch (error) {
|
|
131
|
+
handleError(error, options.json);
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
// Scaffold command
|
|
135
|
+
program
|
|
136
|
+
.command('scaffold')
|
|
137
|
+
.alias('s')
|
|
138
|
+
.description('Generate project with Agent Team configured')
|
|
139
|
+
.option('-v, --verbose', 'Show detailed logs')
|
|
140
|
+
.option('--json', 'JSON output mode (no interactive prompts)')
|
|
141
|
+
.option('-d, --discovery <file>', 'Discovery result JSON file')
|
|
142
|
+
.option('-t, --tools <file>', 'Tools selection JSON file')
|
|
143
|
+
.option('-o, --output <dir>', 'Output directory (default: ./)')
|
|
144
|
+
.action(async (options) => {
|
|
145
|
+
try {
|
|
146
|
+
if (options.json) {
|
|
147
|
+
await runScaffoldJsonMode(options);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
displayBanner();
|
|
151
|
+
// Run full pipeline if no inputs provided
|
|
152
|
+
let discoveryResult;
|
|
153
|
+
let toolsResult;
|
|
154
|
+
if (options.discovery) {
|
|
155
|
+
discoveryResult = await readAndValidateDiscovery(options.discovery);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
console.log(pc.yellow(' No discovery result provided.'));
|
|
159
|
+
console.log(pc.dim(' Running discovery first...\n'));
|
|
160
|
+
const result = await runDiscovery();
|
|
161
|
+
if (!result) {
|
|
162
|
+
process.exit(1);
|
|
163
|
+
}
|
|
164
|
+
discoveryResult = result;
|
|
165
|
+
}
|
|
166
|
+
if (options.tools) {
|
|
167
|
+
toolsResult = await fs.readJSON(options.tools);
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
console.log('');
|
|
171
|
+
const result = await runToolSelection(discoveryResult);
|
|
172
|
+
if (!result) {
|
|
173
|
+
process.exit(1);
|
|
174
|
+
}
|
|
175
|
+
toolsResult = result;
|
|
176
|
+
}
|
|
177
|
+
console.log('');
|
|
178
|
+
const scaffoldResult = await runScaffold(discoveryResult, toolsResult);
|
|
179
|
+
if (!scaffoldResult) {
|
|
180
|
+
process.exit(1);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
handleError(error, options.json);
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
// JSON mode handlers
|
|
189
|
+
async function runDiscoveryJsonMode(options) {
|
|
190
|
+
const inputData = await getInputData(options.input);
|
|
191
|
+
const result = await processJsonInput(inputData);
|
|
192
|
+
await outputResult(result, options.output);
|
|
193
|
+
}
|
|
194
|
+
async function runToolsJsonMode(options) {
|
|
195
|
+
if (!options.input) {
|
|
196
|
+
throw new Error('--input required in JSON mode. Provide a discovery result file.');
|
|
197
|
+
}
|
|
198
|
+
const discoveryResult = await fs.readJSON(options.input);
|
|
199
|
+
const selection = await selectTools(discoveryResult);
|
|
200
|
+
const output = {
|
|
201
|
+
tools: selection.all.map(s => ({
|
|
202
|
+
id: s.tool.id,
|
|
203
|
+
name: s.tool.name,
|
|
204
|
+
category: s.tool.category,
|
|
205
|
+
sdk: s.tool.sdk,
|
|
206
|
+
reason: s.reason,
|
|
207
|
+
required: s.required
|
|
208
|
+
})),
|
|
209
|
+
packages: getSdkPackages(selection),
|
|
210
|
+
envVars: getEnvVars(selection)
|
|
211
|
+
};
|
|
212
|
+
await outputResult(output, options.output);
|
|
213
|
+
}
|
|
214
|
+
async function runScaffoldJsonMode(options) {
|
|
215
|
+
if (!options.discovery) {
|
|
216
|
+
throw new Error('--discovery required in JSON mode.');
|
|
217
|
+
}
|
|
218
|
+
const discoveryResult = await readAndValidateDiscovery(options.discovery);
|
|
219
|
+
const toolsResult = options.tools
|
|
220
|
+
? await fs.readJSON(options.tools)
|
|
221
|
+
: await selectTools(discoveryResult);
|
|
222
|
+
const result = await scaffold({ discovery: discoveryResult, tools: toolsResult }, { outputDir: options.output || './' });
|
|
223
|
+
console.log(JSON.stringify({
|
|
224
|
+
projectPath: result.projectPath,
|
|
225
|
+
filesCreated: result.filesCreated,
|
|
226
|
+
packagesToInstall: result.packagesToInstall,
|
|
227
|
+
envVars: result.envVars,
|
|
228
|
+
agentTeam: {
|
|
229
|
+
skills: result.agentTeam.skills.map(s => s.name),
|
|
230
|
+
hooks: result.agentTeam.hooks
|
|
231
|
+
}
|
|
232
|
+
}, null, 2));
|
|
233
|
+
}
|
|
234
|
+
async function readAndValidateDiscovery(filePath) {
|
|
235
|
+
if (!await fs.pathExists(filePath)) {
|
|
236
|
+
throw new Error(`Discovery file not found: ${filePath}`);
|
|
237
|
+
}
|
|
238
|
+
const raw = await fs.readJSON(filePath);
|
|
239
|
+
try {
|
|
240
|
+
return DiscoveryResultSchema.parse(raw);
|
|
241
|
+
}
|
|
242
|
+
catch (error) {
|
|
243
|
+
if (error instanceof Error && 'issues' in error) {
|
|
244
|
+
const zodError = error;
|
|
245
|
+
const details = zodError.issues.map(i => ` ${i.path.join('.')}: ${i.message}`).join('\n');
|
|
246
|
+
throw new Error(`Invalid discovery file. Check the JSON structure:\n${details}`);
|
|
247
|
+
}
|
|
248
|
+
throw error;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
async function getInputData(inputFile) {
|
|
252
|
+
if (inputFile) {
|
|
253
|
+
if (!await fs.pathExists(inputFile)) {
|
|
254
|
+
throw new Error(`Input file not found: ${inputFile}`);
|
|
255
|
+
}
|
|
256
|
+
return fs.readJSON(inputFile);
|
|
257
|
+
}
|
|
258
|
+
const stdin = await readStdin();
|
|
259
|
+
if (!stdin) {
|
|
260
|
+
throw new Error('No input provided. Use --input <file> or pipe JSON to stdin.');
|
|
261
|
+
}
|
|
262
|
+
return JSON.parse(stdin);
|
|
263
|
+
}
|
|
264
|
+
async function outputResult(result, outputFile) {
|
|
265
|
+
const output = JSON.stringify(result, null, 2);
|
|
266
|
+
if (outputFile) {
|
|
267
|
+
await fs.writeJSON(outputFile, result, { spaces: 2 });
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
console.log(output);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
async function readStdin() {
|
|
274
|
+
if (process.stdin.isTTY) {
|
|
275
|
+
return null;
|
|
276
|
+
}
|
|
277
|
+
return new Promise((resolve) => {
|
|
278
|
+
let data = '';
|
|
279
|
+
let ended = false;
|
|
280
|
+
process.stdin.setEncoding('utf8');
|
|
281
|
+
process.stdin.on('data', (chunk) => {
|
|
282
|
+
data += chunk;
|
|
283
|
+
});
|
|
284
|
+
process.stdin.on('end', () => {
|
|
285
|
+
ended = true;
|
|
286
|
+
resolve(data || null);
|
|
287
|
+
});
|
|
288
|
+
setTimeout(() => {
|
|
289
|
+
if (!ended && !data)
|
|
290
|
+
resolve(null);
|
|
291
|
+
}, 1000);
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
function handleError(error, jsonMode) {
|
|
295
|
+
if (jsonMode) {
|
|
296
|
+
if (error instanceof ValidationError) {
|
|
297
|
+
console.error(JSON.stringify({ error: 'Validation failed', details: error.errors }));
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
const message = error instanceof Error ? error.message : 'Unknown error';
|
|
301
|
+
console.error(JSON.stringify({ error: message }));
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
else {
|
|
305
|
+
if (error instanceof Error) {
|
|
306
|
+
const msg = error.message;
|
|
307
|
+
console.error(pc.red(`\n Error: ${msg}\n`));
|
|
308
|
+
// Helpful hints for common errors
|
|
309
|
+
if (msg.includes('ANTHROPIC_API_KEY')) {
|
|
310
|
+
console.error(pc.dim(' Get a key at: https://console.anthropic.com/settings/keys'));
|
|
311
|
+
console.error(pc.dim(' Then run: export ANTHROPIC_API_KEY=sk-ant-...\n'));
|
|
312
|
+
}
|
|
313
|
+
else if (msg.includes('ENOENT') || msg.includes('not found')) {
|
|
314
|
+
console.error(pc.dim(' Check the file path and try again.\n'));
|
|
315
|
+
}
|
|
316
|
+
else if (msg.includes('JSON')) {
|
|
317
|
+
console.error(pc.dim(' The input file must be valid JSON. Use --schema to see the expected format.\n'));
|
|
318
|
+
}
|
|
319
|
+
else if (msg.includes('EACCES') || msg.includes('permission')) {
|
|
320
|
+
console.error(pc.dim(' Check file permissions on the output directory.\n'));
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
process.exit(1);
|
|
325
|
+
}
|
|
326
|
+
// Init command — one-time setup
|
|
327
|
+
program
|
|
328
|
+
.command('init')
|
|
329
|
+
.description('One-time setup: save API key and configure Claude Code integration')
|
|
330
|
+
.action(async () => {
|
|
331
|
+
try {
|
|
332
|
+
displayBanner();
|
|
333
|
+
console.log(' One-time setup. Saves your API key and configures Claude Code.\n');
|
|
334
|
+
// Step 1: API key
|
|
335
|
+
let apiKey = process.env.ANTHROPIC_API_KEY || '';
|
|
336
|
+
if (apiKey) {
|
|
337
|
+
p.log.info(`API key already set (starts with ${apiKey.slice(0, 10)}...)`);
|
|
338
|
+
}
|
|
339
|
+
else {
|
|
340
|
+
p.log.info(`Get an Anthropic API key (free tier available):\n` +
|
|
341
|
+
pc.cyan(` https://console.anthropic.com/settings/keys`));
|
|
342
|
+
const key = await p.text({
|
|
343
|
+
message: 'Paste your Anthropic API key:',
|
|
344
|
+
placeholder: 'sk-ant-api03-...',
|
|
345
|
+
validate: (v) => {
|
|
346
|
+
if (!v)
|
|
347
|
+
return 'API key is required';
|
|
348
|
+
if (!v.startsWith('sk-ant-'))
|
|
349
|
+
return 'Should start with sk-ant-';
|
|
350
|
+
return undefined;
|
|
351
|
+
}
|
|
352
|
+
});
|
|
353
|
+
if (p.isCancel(key)) {
|
|
354
|
+
p.cancel('Cancelled');
|
|
355
|
+
process.exit(0);
|
|
356
|
+
}
|
|
357
|
+
apiKey = key;
|
|
358
|
+
}
|
|
359
|
+
// Save to ~/.superskills/.env
|
|
360
|
+
const superskillsDir = path.join(os.homedir(), '.superskills');
|
|
361
|
+
await fs.ensureDir(superskillsDir);
|
|
362
|
+
const envPath = path.join(superskillsDir, '.env');
|
|
363
|
+
await fs.writeFile(envPath, `# SuperSkills API key (saved by superskills init)\nANTHROPIC_API_KEY=${apiKey}\n`, { mode: 0o600 });
|
|
364
|
+
process.env.ANTHROPIC_API_KEY = apiKey;
|
|
365
|
+
p.log.success(`API key saved to ~/.superskills/.env (readable only by you)`);
|
|
366
|
+
// Step 2: Claude Code integration
|
|
367
|
+
const claudeDir = path.join(os.homedir(), '.claude');
|
|
368
|
+
const claudeMdPath = path.join(claudeDir, 'CLAUDE.md');
|
|
369
|
+
await fs.ensureDir(claudeDir);
|
|
370
|
+
const claudeCodeInstructions = generateClaudeCodeInstructions();
|
|
371
|
+
if (await fs.pathExists(claudeMdPath)) {
|
|
372
|
+
const existing = await fs.readFile(claudeMdPath, 'utf-8');
|
|
373
|
+
if (existing.includes('SuperSkills')) {
|
|
374
|
+
p.log.info('~/.claude/CLAUDE.md already has SuperSkills instructions');
|
|
375
|
+
}
|
|
376
|
+
else {
|
|
377
|
+
await fs.appendFile(claudeMdPath, '\n\n' + claudeCodeInstructions);
|
|
378
|
+
p.log.success('Added SuperSkills instructions to ~/.claude/CLAUDE.md');
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
else {
|
|
382
|
+
await fs.writeFile(claudeMdPath, claudeCodeInstructions);
|
|
383
|
+
p.log.success('Created ~/.claude/CLAUDE.md with SuperSkills instructions');
|
|
384
|
+
}
|
|
385
|
+
console.log('');
|
|
386
|
+
p.note(pc.bold('From the terminal:\n') +
|
|
387
|
+
pc.cyan(' npx superskills\n\n') +
|
|
388
|
+
pc.bold('From Claude Code:\n') +
|
|
389
|
+
pc.dim(' Just describe your business problem.\n') +
|
|
390
|
+
pc.dim(' Claude Code does the EIID analysis itself (no API key needed).\n') +
|
|
391
|
+
pc.dim(' Then calls superskills scaffold to generate the project.'), 'Ready to use');
|
|
392
|
+
p.outro(pc.green('Setup complete'));
|
|
393
|
+
}
|
|
394
|
+
catch (error) {
|
|
395
|
+
handleError(error);
|
|
396
|
+
}
|
|
397
|
+
});
|
|
398
|
+
// Default action — full pipeline (discovery → tools → scaffold)
|
|
399
|
+
program
|
|
400
|
+
.action(async () => {
|
|
401
|
+
try {
|
|
402
|
+
displayBanner();
|
|
403
|
+
// Check for API key before starting the pipeline
|
|
404
|
+
if (!process.env.ANTHROPIC_API_KEY) {
|
|
405
|
+
console.log(pc.yellow(' No API key found.\n'));
|
|
406
|
+
console.log(' SuperSkills needs an Anthropic API key for AI analysis.');
|
|
407
|
+
console.log(pc.dim(' Get one at: https://console.anthropic.com/settings/keys\n'));
|
|
408
|
+
const key = await p.text({
|
|
409
|
+
message: 'Paste your Anthropic API key (or run `superskills init` to save it):',
|
|
410
|
+
placeholder: 'sk-ant-api03-...',
|
|
411
|
+
validate: (v) => {
|
|
412
|
+
if (!v)
|
|
413
|
+
return 'API key is required. Get one at console.anthropic.com/settings/keys';
|
|
414
|
+
if (!v.startsWith('sk-ant-'))
|
|
415
|
+
return 'Should start with sk-ant-';
|
|
416
|
+
return undefined;
|
|
417
|
+
}
|
|
418
|
+
});
|
|
419
|
+
if (p.isCancel(key)) {
|
|
420
|
+
p.cancel('Cancelled');
|
|
421
|
+
process.exit(0);
|
|
422
|
+
}
|
|
423
|
+
process.env.ANTHROPIC_API_KEY = key;
|
|
424
|
+
console.log('');
|
|
425
|
+
}
|
|
426
|
+
// Run full pipeline
|
|
427
|
+
const discoveryResult = await runDiscovery();
|
|
428
|
+
if (!discoveryResult) {
|
|
429
|
+
process.exit(1);
|
|
430
|
+
}
|
|
431
|
+
console.log('');
|
|
432
|
+
const toolsResult = await runToolSelection(discoveryResult);
|
|
433
|
+
if (!toolsResult) {
|
|
434
|
+
process.exit(1);
|
|
435
|
+
}
|
|
436
|
+
console.log('');
|
|
437
|
+
const scaffoldResult = await runScaffold(discoveryResult, toolsResult);
|
|
438
|
+
if (!scaffoldResult) {
|
|
439
|
+
process.exit(1);
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
catch (error) {
|
|
443
|
+
handleError(error);
|
|
444
|
+
}
|
|
445
|
+
});
|
|
446
|
+
program.parse();
|
|
447
|
+
function generateClaudeCodeInstructions() {
|
|
448
|
+
return `# SuperSkills — Claude Code Integration
|
|
449
|
+
|
|
450
|
+
When a user describes a business problem and wants to build an AI-native project, use SuperSkills.
|
|
451
|
+
|
|
452
|
+
## How It Works
|
|
453
|
+
|
|
454
|
+
1. **You do the EIID analysis** (no API key needed — you ARE Claude)
|
|
455
|
+
2. **SuperSkills scaffolds the project** via CLI
|
|
456
|
+
|
|
457
|
+
## EIID Framework
|
|
458
|
+
|
|
459
|
+
Every AI-native product works on four layers:
|
|
460
|
+
|
|
461
|
+
- **Enrichment**: Connect data sources, fill gaps, normalize formats
|
|
462
|
+
- **Inference**: Detect patterns, predict outcomes, flag anomalies
|
|
463
|
+
- **Interpretation**: Turn raw inference into actionable insights
|
|
464
|
+
- **Delivery**: Push insights where people are (email, Slack, WhatsApp, Telegram)
|
|
465
|
+
|
|
466
|
+
## Step-by-Step
|
|
467
|
+
|
|
468
|
+
1. Ask the user about their business problem
|
|
469
|
+
2. Analyze it through the EIID framework yourself
|
|
470
|
+
3. Create a discovery.json file with this structure:
|
|
471
|
+
|
|
472
|
+
\`\`\`json
|
|
473
|
+
{
|
|
474
|
+
"projectName": "project-name",
|
|
475
|
+
"context": {
|
|
476
|
+
"forWhom": "client|my_company|me",
|
|
477
|
+
"companyName": "...",
|
|
478
|
+
"businessDescription": "...",
|
|
479
|
+
"industry": "..."
|
|
480
|
+
},
|
|
481
|
+
"problem": "...",
|
|
482
|
+
"desiredOutcome": "...",
|
|
483
|
+
"currentProcess": ["step1", "step2"],
|
|
484
|
+
"availableData": ["source1", "source2"],
|
|
485
|
+
"strategicAnalysis": {
|
|
486
|
+
"industryContext": "...",
|
|
487
|
+
"valueMovement": "...",
|
|
488
|
+
"currentPosition": "...",
|
|
489
|
+
"targetPosition": "...",
|
|
490
|
+
"opportunities": ["..."]
|
|
491
|
+
},
|
|
492
|
+
"eiidMapping": {
|
|
493
|
+
"enrichment": {
|
|
494
|
+
"existingData": ["..."],
|
|
495
|
+
"missingData": ["..."],
|
|
496
|
+
"sources": ["..."]
|
|
497
|
+
},
|
|
498
|
+
"inference": {
|
|
499
|
+
"patterns": ["..."],
|
|
500
|
+
"predictions": ["..."],
|
|
501
|
+
"anomalies": ["..."]
|
|
502
|
+
},
|
|
503
|
+
"interpretation": {
|
|
504
|
+
"insights": ["..."]
|
|
505
|
+
},
|
|
506
|
+
"delivery": {
|
|
507
|
+
"channels": ["email", "slack"],
|
|
508
|
+
"triggers": ["..."]
|
|
509
|
+
}
|
|
510
|
+
},
|
|
511
|
+
"createdAt": "use current ISO 8601 date"
|
|
512
|
+
}
|
|
513
|
+
\`\`\`
|
|
514
|
+
|
|
515
|
+
4. Run scaffold:
|
|
516
|
+
\`\`\`bash
|
|
517
|
+
npx superskills scaffold --json --discovery discovery.json --output ./
|
|
518
|
+
\`\`\`
|
|
519
|
+
|
|
520
|
+
5. Follow the post-scaffold instructions (install deps, set up env vars, run init skills)
|
|
521
|
+
`;
|
|
522
|
+
}
|
|
523
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ScaffoldInput, ScaffoldOptions, ScaffoldResult, AgentTeamConfig, SkillConfig, TeammateConfig } from './types.js';
|
|
2
|
+
export type { ScaffoldInput, ScaffoldOptions, ScaffoldResult, AgentTeamConfig, SkillConfig, TeammateConfig };
|
|
3
|
+
export declare function scaffold(input: ScaffoldInput, options: ScaffoldOptions): Promise<ScaffoldResult>;
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scaffold/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAgB/H,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;AAE7G,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CA+FzB"}
|