transskill 0.3.0 → 0.4.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.
@@ -1,12 +1,10 @@
1
1
  /**
2
- * Publish command — audit, fork, and PR a skill to the registry.
2
+ * Publish command — v2: lightweight link submission.
3
3
  *
4
- * Flow:
5
- * 1. Validate skill directory (SKILL.md + frontmatter)
6
- * 2. Parse + audit (mandatory, score >= 90 unless --force)
7
- * 3. GitHub API: fork → branch → upload SKILL.md → update registry.json → PR
4
+ * No more file uploads. Publishing a skill just adds a link entry
5
+ * to registry.json pointing to the original source.
8
6
  */
9
- import { readFileSync, existsSync, readdirSync, statSync } from 'node:fs';
7
+ import { readFileSync, existsSync, statSync } from 'node:fs';
10
8
  import { join } from 'node:path';
11
9
  import { intro, outro, spinner, log } from '@clack/prompts';
12
10
  import chalk from 'chalk';
@@ -21,6 +19,16 @@ const REGISTRY_REPO = 'transskill-registry';
21
19
  const REGISTRY_FULL = `${REGISTRY_OWNER}/${REGISTRY_REPO}`;
22
20
  const GITHUB_API = 'https://api.github.com';
23
21
  // ──────────────────────────────────────────────
22
+ // Error type
23
+ // ──────────────────────────────────────────────
24
+ /** Error thrown to abort publish (messages already printed via log/outro). */
25
+ export class PublishError extends Error {
26
+ constructor(msg) {
27
+ super(msg || 'Publish aborted');
28
+ this.name = 'PublishError';
29
+ }
30
+ }
31
+ // ──────────────────────────────────────────────
24
32
  // GitHub API helpers
25
33
  // ──────────────────────────────────────────────
26
34
  function getToken() {
@@ -29,9 +37,9 @@ function getToken() {
29
37
  console.error('');
30
38
  log.error('GITHUB_TOKEN environment variable not set.');
31
39
  log.info('Create a token at https://github.com/settings/tokens');
32
- log.info('Then set: export GITHUB_TOKEN=ghp_xxx');
40
+ log.info('Then set: export GITHUB_TOKEN=***');
33
41
  console.error('');
34
- process.exit(1);
42
+ throw new PublishError();
35
43
  }
36
44
  return token;
37
45
  }
@@ -44,60 +52,44 @@ function ghHeaders(token) {
44
52
  };
45
53
  }
46
54
  async function ghFetch(url, token, options = {}) {
47
- const res = await fetch(url, {
55
+ return fetch(url, {
48
56
  ...options,
49
57
  headers: {
50
58
  ...ghHeaders(token),
51
59
  ...options.headers,
52
60
  },
53
61
  });
54
- return res;
55
62
  }
56
- /**
57
- * Get the authenticated user's GitHub login.
58
- */
59
63
  async function getGitHubUser(token) {
60
64
  const res = await ghFetch(`${GITHUB_API}/user`, token);
61
- if (!res.ok) {
62
- throw new Error(`Failed to authenticate: ${res.status} ${res.statusText}`);
63
- }
65
+ if (!res.ok)
66
+ throw new PublishError(`Failed to authenticate: ${res.status} ${res.statusText}`);
64
67
  const data = await res.json();
65
68
  return data.login;
66
69
  }
67
- /**
68
- * Get the default branch of the registry repo.
69
- */
70
70
  async function getDefaultBranch(token) {
71
71
  const res = await ghFetch(`${GITHUB_API}/repos/${REGISTRY_FULL}`, token);
72
72
  if (!res.ok)
73
- throw new Error(`Failed to get repo info: ${res.status}`);
73
+ throw new PublishError(`Failed to get repo info: ${res.status}`);
74
74
  const data = await res.json();
75
75
  const branch = data.default_branch;
76
- // Get the SHA of the latest commit on the default branch
77
76
  const refRes = await ghFetch(`${GITHUB_API}/repos/${REGISTRY_FULL}/git/ref/heads/${branch}`, token);
78
77
  if (!refRes.ok)
79
- throw new Error(`Failed to get branch ref: ${refRes.status}`);
78
+ throw new PublishError(`Failed to get branch ref: ${refRes.status}`);
80
79
  const refData = await refRes.json();
81
80
  return { name: branch, sha: refData.object.sha };
82
81
  }
83
- /**
84
- * Create a fork of the registry repo (no-op if already exists).
85
- */
86
82
  async function ensureFork(token, user) {
87
- // Check if fork exists
88
83
  const checkRes = await ghFetch(`${GITHUB_API}/repos/${user}/${REGISTRY_REPO}`, token);
89
- if (checkRes.ok) {
90
- // Fork exists
91
- return;
92
- }
84
+ if (checkRes.ok)
85
+ return; // fork exists
93
86
  log.info('Creating fork of transskill-registry…');
94
87
  const res = await ghFetch(`${GITHUB_API}/repos/${REGISTRY_FULL}/forks`, token, {
95
88
  method: 'POST',
96
89
  body: JSON.stringify({}),
97
90
  });
98
91
  if (res.status === 202) {
99
- log.info('Fork creation in progress (this may take a few seconds)…');
100
- // Wait for fork to be ready
92
+ log.info('Fork creation in progress…');
101
93
  let ready = false;
102
94
  let attempts = 0;
103
95
  while (!ready && attempts < 30) {
@@ -108,46 +100,30 @@ async function ensureFork(token, user) {
108
100
  attempts++;
109
101
  }
110
102
  if (!ready)
111
- throw new Error('Timed out waiting for fork to be created');
103
+ throw new PublishError('Timed out waiting for fork');
112
104
  }
113
105
  else if (!res.ok) {
114
106
  const body = await res.json().catch(() => ({}));
115
- throw new Error(`Failed to fork repo: ${res.status} ${body.message || res.statusText}`);
107
+ throw new PublishError(`Failed to fork repo: ${res.status} ${body.message || res.statusText}`);
116
108
  }
117
109
  }
118
- /**
119
- * Create or update a file in the fork via GitHub API.
120
- */
121
110
  async function upsertFile(token, user, branch, path, content, message) {
122
- // Try to get existing file SHA
123
111
  let existingSha;
124
112
  const getRes = await ghFetch(`${GITHUB_API}/repos/${user}/${REGISTRY_REPO}/contents/${path}?ref=${branch}`, token);
125
113
  if (getRes.ok) {
126
114
  const data = await getRes.json();
127
115
  existingSha = data.sha;
128
116
  }
129
- // Base64 encode content
130
117
  const base64 = Buffer.from(content, 'utf-8').toString('base64');
131
- const body = {
132
- message,
133
- content: base64,
134
- branch,
135
- };
136
- if (existingSha) {
118
+ const body = { message, content: base64, branch };
119
+ if (existingSha)
137
120
  body.sha = existingSha;
138
- }
139
- const res = await ghFetch(`${GITHUB_API}/repos/${user}/${REGISTRY_REPO}/contents/${path}`, token, {
140
- method: 'PUT',
141
- body: JSON.stringify(body),
142
- });
121
+ const res = await ghFetch(`${GITHUB_API}/repos/${user}/${REGISTRY_REPO}/contents/${path}`, token, { method: 'PUT', body: JSON.stringify(body) });
143
122
  if (!res.ok) {
144
123
  const errBody = await res.json().catch(() => ({}));
145
- throw new Error(`Failed to write ${path}: ${res.status} ${errBody.message || res.statusText}`);
124
+ throw new PublishError(`Failed to write ${path}: ${res.status} ${errBody.message || res.statusText}`);
146
125
  }
147
126
  }
148
- /**
149
- * Create a pull request.
150
- */
151
127
  async function createPR(token, user, branch, title, body) {
152
128
  const res = await ghFetch(`${GITHUB_API}/repos/${REGISTRY_FULL}/pulls`, token, {
153
129
  method: 'POST',
@@ -160,231 +136,182 @@ async function createPR(token, user, branch, title, body) {
160
136
  });
161
137
  if (!res.ok) {
162
138
  const errBody = await res.json().catch(() => ({}));
163
- throw new Error(`Failed to create PR: ${res.status} ${errBody.message || res.statusText}`);
139
+ throw new PublishError(`Failed to create PR: ${res.status} ${errBody.message || res.statusText}`);
164
140
  }
165
141
  const data = await res.json();
166
142
  return data.html_url;
167
143
  }
168
144
  /**
169
- * Publish a skill directory to the registry.
145
+ * Publish a skill validate, then PR a link to the registry index.
170
146
  */
171
147
  export async function publishSkill(skillPath, options) {
172
148
  const spin = spinner();
173
- intro(chalk.green('📤 TransSkill Publish'));
174
- // Step 1: Resolve and validate skill directory
149
+ intro(chalk.green('📤 TransSkill Publish (v2 — link only)'));
150
+ // Step 1: Resolve and validate
175
151
  const skillDirPath = skillPath.startsWith('/')
176
152
  ? skillPath
177
153
  : join(process.cwd(), skillPath);
178
154
  if (!existsSync(skillDirPath)) {
179
155
  log.error(`Path does not exist: ${skillDirPath}`);
180
- outro('Publish cancelled');
181
- process.exit(1);
156
+ throw new PublishError();
182
157
  }
183
- const stat = statSync(skillDirPath);
184
- if (!stat.isDirectory()) {
185
- log.error(`Expected a directory, got a file: ${skillDirPath}`);
186
- log.info('Usage: transskill publish ./my-skill/');
187
- outro('Publish cancelled');
188
- process.exit(1);
158
+ if (!statSync(skillDirPath).isDirectory()) {
159
+ log.error(`Expected a directory, got a file`);
160
+ throw new PublishError();
189
161
  }
190
- // Check for SKILL.md
191
162
  const skillMdPath = join(skillDirPath, 'SKILL.md');
192
163
  if (!existsSync(skillMdPath)) {
193
- log.error(`Directory does not contain SKILL.md: ${skillDirPath}`);
194
- log.info('A valid skill directory must have a SKILL.md file with frontmatter.');
195
- outro('Publish cancelled');
196
- process.exit(1);
164
+ log.error(`Directory does not contain SKILL.md`);
165
+ throw new PublishError();
197
166
  }
198
- // Step 2: Parse and validate frontmatter
167
+ // Step 2: Parse + validate frontmatter
199
168
  spin.start('Validating SKILL.md…');
200
- let skill;
201
169
  let rawContent;
202
- let skillDir;
203
170
  let frontmatter;
204
171
  try {
205
172
  rawContent = readFileSync(skillMdPath, 'utf-8');
206
173
  const parsed = matter(rawContent);
207
174
  frontmatter = parsed.data;
208
175
  const parser = getParser('skill.md');
209
- skill = parser.parse(rawContent, skillMdPath);
210
- // Also scan directory structure
211
- skillDir = parser.parseDirectory(skillDirPath);
212
- // Validate required frontmatter
176
+ parser.parse(rawContent, skillMdPath);
213
177
  if (!frontmatter.description || typeof frontmatter.description !== 'string') {
214
- throw new Error('"description" field is required in frontmatter');
215
- }
216
- if (!Array.isArray(frontmatter.tags)) {
217
- throw new Error('"tags" field is required and must be an array');
218
- }
219
- if (frontmatter.tags.length === 0) {
220
- throw new Error('"tags" array must have at least one tag');
178
+ throw new Error('"description" field is required');
221
179
  }
222
180
  spin.stop('Validated ✓');
223
- console.log(` Name: ${chalk.bold(skill.name)}`);
224
- console.log(` Description: ${skill.description}`);
225
- if (frontmatter.version) {
226
- console.log(` Version: ${frontmatter.version}`);
227
- }
228
- console.log(` Tags: ${frontmatter.tags.map((t) => chalk.cyan(t)).join(', ')}`);
181
+ console.log(` Name: ${chalk.bold(frontmatter.name || skillMdPath)}`);
182
+ console.log(` Description: ${frontmatter.description}`);
229
183
  console.log('');
230
184
  }
231
185
  catch (err) {
232
186
  spin.stop('Validation failed');
233
187
  const message = err instanceof Error ? err.message : String(err);
234
188
  log.error(`Invalid skill: ${message}`);
235
- outro('Publish cancelled');
236
- process.exit(1);
189
+ throw new PublishError();
237
190
  }
238
- // Step 3: Security audit (mandatory)
191
+ // Step 3: Security audit
239
192
  spin.start('Running security audit…');
240
193
  const engine = new AuditEngine({ lang: 'en' });
241
- const report = engine.auditSkill(skill, skillMdPath);
242
- const score = calculateScore(report);
194
+ const report = engine.auditSkill(matter(rawContent).content, skillMdPath);
195
+ // Actually do proper audit
196
+ const parser = getParser('skill.md');
197
+ const skill = parser.parse(rawContent, skillMdPath);
198
+ const auditReport = engine.auditSkill(skill, skillMdPath);
199
+ const score = calculateScore(auditReport);
243
200
  spin.stop(`Audit complete — score: ${formatScore(score)}`);
244
- if (report.findings.length > 0) {
245
- console.log(engine.reportToString(report));
201
+ if (auditReport.findings.length > 0) {
202
+ console.log(engine.reportToString(auditReport));
246
203
  }
247
204
  else {
248
205
  console.log(` ${chalk.green('✓ No security issues found')}`);
249
206
  }
250
207
  console.log('');
251
208
  if (score < 90 && !options.force) {
252
- log.error(`Audit score ${score}/100 is below the minimum of 90.`);
253
- log.info('Fix the issues or use --force to publish anyway.');
254
- outro('Publish cancelled');
255
- process.exit(1);
209
+ log.error(`Score ${score}/100 is below 90. Use --force to publish anyway.`);
210
+ throw new PublishError();
211
+ }
212
+ // Step 4: Determine source URLs
213
+ const skillName = frontmatter.name || 'unnamed';
214
+ const skillAuthor = frontmatter.author || 'unknown';
215
+ const version = frontmatter.version || '1.0.0';
216
+ // Try to derive GitHub URLs from git remote
217
+ let sourceUrl = options.sourceUrl || '';
218
+ let downloadUrl = options.downloadUrl || '';
219
+ if (!sourceUrl) {
220
+ // Try to read git remote
221
+ const { execSync } = await import('node:child_process');
222
+ try {
223
+ const remote = execSync('git remote get-url origin', { cwd: skillDirPath })
224
+ .toString().trim()
225
+ .replace(/\.git$/, '');
226
+ if (remote.includes('github.com')) {
227
+ sourceUrl = remote;
228
+ const repoPath = remote.replace(/^https?:\/\/github\.com\//, '');
229
+ downloadUrl = `https://raw.githubusercontent.com/${repoPath}/main/SKILL.md`;
230
+ }
231
+ }
232
+ catch {
233
+ // No git remote found
234
+ }
256
235
  }
257
- // Dry run — stop here
236
+ if (!sourceUrl) {
237
+ sourceUrl = `https://github.com/${skillAuthor}/skills`;
238
+ downloadUrl = `https://raw.githubusercontent.com/${skillAuthor}/skills/main/skills/${skillName}/SKILL.md`;
239
+ }
240
+ console.log(` ${chalk.gray('Source:')} ${sourceUrl}`);
241
+ console.log(` ${chalk.gray('Download:')} ${downloadUrl}`);
242
+ console.log('');
243
+ // Dry run
258
244
  if (options.dryRun) {
259
- outro(chalk.yellow('Dry run — no changes made. Use without --dry-run to publish.'));
245
+ outro(chalk.yellow('Dry run — no changes made.'));
260
246
  return;
261
247
  }
262
- // Step 4: GitHub API authenticate and publish
248
+ // Step 5: GitHub — fork branch → update registry.json → PR
263
249
  spin.start('Connecting to GitHub…');
264
250
  let token;
265
251
  let user;
266
- let baseBranch;
267
252
  let baseSha;
268
253
  try {
269
254
  token = getToken();
270
255
  user = await getGitHubUser(token);
271
256
  const base = await getDefaultBranch(token);
272
- baseBranch = base.name;
273
257
  baseSha = base.sha;
274
258
  spin.stop(`Authenticated as ${chalk.bold(user)}`);
275
- console.log(` Registry: ${chalk.cyan(REGISTRY_FULL)}`);
276
- console.log('');
277
259
  }
278
260
  catch (err) {
279
261
  spin.stop('GitHub connection failed');
280
262
  const message = err instanceof Error ? err.message : String(err);
281
263
  log.error(message);
282
- outro('Publish cancelled');
283
- process.exit(1);
264
+ throw new PublishError();
284
265
  }
285
- // Step 5: Fork
266
+ // Fork
286
267
  spin.start('Setting up fork…');
287
268
  try {
288
269
  await ensureFork(token, user);
289
270
  spin.stop('Fork ready ✓');
290
271
  }
291
- catch (err) {
272
+ catch {
292
273
  spin.stop('Fork failed');
293
- const message = err instanceof Error ? err.message : String(err);
294
- log.error(message);
295
- outro('Publish cancelled');
296
- process.exit(1);
274
+ throw new PublishError();
297
275
  }
298
- // Step 6: Create branch
299
- const branchName = `skill/${skill.name.replace(/[^a-zA-Z0-9_-]/g, '-').toLowerCase()}`;
276
+ // Create branch
277
+ const branchName = `add-${skillName.replace(/[^a-z0-9-]/gi, '-').toLowerCase()}`;
300
278
  spin.start(`Creating branch ${chalk.cyan(branchName)}…`);
301
279
  try {
302
280
  const branchRes = await ghFetch(`${GITHUB_API}/repos/${user}/${REGISTRY_REPO}/git/refs`, token, {
303
281
  method: 'POST',
304
- body: JSON.stringify({
305
- ref: `refs/heads/${branchName}`,
306
- sha: baseSha,
307
- }),
282
+ body: JSON.stringify({ ref: `refs/heads/${branchName}`, sha: baseSha }),
308
283
  });
309
284
  if (branchRes.status === 422) {
310
- log.info(`Branch ${branchName} already exists — updating it`);
285
+ log.info(`Branch already exists — updating`);
311
286
  }
312
287
  else if (!branchRes.ok) {
313
- throw new Error(`Failed to create branch: ${branchRes.status}`);
288
+ throw new Error(`HTTP ${branchRes.status}`);
314
289
  }
315
290
  spin.stop('Branch ready ✓');
316
291
  }
317
- catch (err) {
292
+ catch {
318
293
  spin.stop('Branch creation failed');
319
- const message = err instanceof Error ? err.message : String(err);
320
- log.error(message);
321
- outro('Publish cancelled');
322
- process.exit(1);
323
- }
324
- // Step 7: Upload files
325
- const skillDirName = skill.name.replace(/[^a-zA-Z0-9_-]/g, '-').toLowerCase();
326
- const skillRepoPath = `skills/${skillDirName}/SKILL.md`;
327
- spin.start('Uploading SKILL.md…');
328
- try {
329
- await upsertFile(token, user, branchName, skillRepoPath, rawContent, `Add ${skill.name} v${frontmatter.version || '1.0.0'} skill`);
330
- spin.stop('SKILL.md uploaded ✓');
331
- }
332
- catch (err) {
333
- spin.stop('Upload failed');
334
- const message = err instanceof Error ? err.message : String(err);
335
- log.error(message);
336
- outro('Publish cancelled');
337
- process.exit(1);
294
+ throw new PublishError();
338
295
  }
339
- // Upload extra files if any (scripts, assets, references, etc.)
340
- const extraDirNames = ['scripts', 'assets', 'references'];
341
- for (const dirName of extraDirNames) {
342
- const dirPath = join(skillDirPath, dirName);
343
- if (existsSync(dirPath) && statSync(dirPath).isDirectory()) {
344
- spin.start(`Uploading ${dirName}/…`);
345
- try {
346
- const entries = readdirSync(dirPath);
347
- for (const entry of entries) {
348
- const entryPath = join(dirPath, entry);
349
- if (statSync(entryPath).isFile()) {
350
- const content = readFileSync(entryPath, 'utf-8');
351
- const repoEntryPath = `skills/${skillDirName}/${dirName}/${entry}`;
352
- await upsertFile(token, user, branchName, repoEntryPath, content, `Add ${dirName}/${entry}`);
353
- }
354
- }
355
- spin.stop(`${dirName}/ uploaded ✓`);
356
- }
357
- catch (err) {
358
- spin.stop(`${dirName}/ upload issue`);
359
- const message = err instanceof Error ? err.message : String(err);
360
- log.warn(`Failed to upload ${dirName}/: ${message}`);
361
- }
362
- }
363
- }
364
- // Step 8: Update registry.json
296
+ // Fetch current registry.json and update
365
297
  spin.start('Updating registry index…');
366
298
  try {
367
- // Fetch current registry.json from the branch (or upstream)
368
- const currentRegRes = await ghFetch(`${GITHUB_API}/repos/${user}/${REGISTRY_REPO}/contents/registry.json?ref=${branchName}`, token);
299
+ const regRes = await ghFetch(`${GITHUB_API}/repos/${user}/${REGISTRY_REPO}/contents/registry.json?ref=${branchName}`, token);
369
300
  let registry;
370
- if (currentRegRes.ok) {
371
- const currentData = await currentRegRes.json();
372
- const decoded = Buffer.from(currentData.content, 'base64').toString('utf-8');
373
- registry = JSON.parse(decoded);
301
+ if (regRes.ok) {
302
+ const d = await regRes.json();
303
+ registry = JSON.parse(Buffer.from(d.content, 'base64').toString('utf-8'));
374
304
  }
375
305
  else {
376
- // Fallback: fetch from upstream
377
306
  const upRes = await ghFetch(`https://raw.githubusercontent.com/${REGISTRY_FULL}/main/registry.json`, token, { headers: { 'User-Agent': 'transskill-cli' } });
378
- if (!upRes.ok)
379
- throw new Error('Failed to fetch registry.json');
380
307
  registry = await upRes.json();
381
308
  }
382
- // Update or add the skill entry
383
- const existingIdx = registry.skills.findIndex((s) => s.name === skill.name);
384
- const skillEntry = {
385
- name: skill.name,
386
- version: frontmatter.version || '1.0.0',
387
- description: skill.description,
309
+ // Add or update entry
310
+ const existingIdx = registry.skills.findIndex((s) => s.name === skillName);
311
+ const newEntry = {
312
+ name: skillName,
313
+ version,
314
+ description: frontmatter.description,
388
315
  tags: frontmatter.tags || [],
389
316
  author: user,
390
317
  stars: existingIdx >= 0 ? registry.skills[existingIdx].stars : 0,
@@ -392,73 +319,63 @@ export async function publishSkill(skillPath, options) {
392
319
  created: existingIdx >= 0
393
320
  ? registry.skills[existingIdx].created
394
321
  : new Date().toISOString(),
322
+ sourceUrl,
323
+ downloadUrl,
324
+ source: 'manual',
395
325
  };
396
326
  if (existingIdx >= 0) {
397
- registry.skills[existingIdx] = { ...registry.skills[existingIdx], ...skillEntry };
327
+ registry.skills[existingIdx] = { ...registry.skills[existingIdx], ...newEntry };
398
328
  }
399
329
  else {
400
- registry.skills.push(skillEntry);
330
+ registry.skills.push(newEntry);
401
331
  }
402
332
  registry.updated = new Date().toISOString();
403
- const registryJson = JSON.stringify(registry, null, 2);
404
- await upsertFile(token, user, branchName, 'registry.json', registryJson, `Update registry index: add ${skill.name}`);
333
+ await upsertFile(token, user, branchName, 'registry.json', JSON.stringify(registry, null, 2), `Add ${skillName} v${version} to registry index`);
405
334
  spin.stop('Registry index updated ✓');
406
335
  }
407
336
  catch (err) {
408
- spin.stop('Registry update failed');
337
+ spin.stop('Update failed');
409
338
  const message = err instanceof Error ? err.message : String(err);
410
339
  log.error(message);
411
- outro('Publish cancelled');
412
- process.exit(1);
340
+ throw new PublishError();
413
341
  }
414
- // Step 9: Create PR
342
+ // Create PR
415
343
  spin.start('Creating pull request…');
416
344
  try {
417
345
  const prBody = [
418
- `## 📦 ${skill.name}`,
346
+ `## 📦 ${skillName} v${version}`,
419
347
  '',
420
- `${skill.description}`,
348
+ `${frontmatter.description}`,
421
349
  '',
422
350
  '---',
423
351
  '',
352
+ '### Links',
353
+ '',
354
+ `- **Source:** ${sourceUrl}`,
355
+ `- **Download:** ${downloadUrl}`,
356
+ '',
424
357
  '### Audit Report',
425
358
  '',
426
- `- **Audit Score:** ${score}/100`,
359
+ `- **Score:** ${score}/100`,
427
360
  `- **Author:** ${user}`,
428
- ...(Array.isArray(frontmatter.tags)
429
- ? [`- **Tags:** ${frontmatter.tags.join(', ')}`]
430
- : []),
431
- '',
432
- '---',
433
361
  '',
434
362
  '> Published by [TransSkill CLI](https://github.com/ljk-777/transskill)',
435
363
  ].join('\n');
436
- const prUrl = await createPR(token, user, branchName, `Add skill: ${skill.name} v${frontmatter.version || '1.0.0'}`, prBody);
364
+ const prUrl = await createPR(token, user, branchName, `Add ${skillName} v${version} to registry index`, prBody);
437
365
  spin.stop('Pull request created ✓');
438
366
  console.log('');
439
367
  console.log(` ${chalk.green('→')} ${prUrl}`);
440
368
  console.log('');
441
- outro(`${chalk.bold(skill.name)} published! 🎉`);
369
+ outro(`${chalk.bold(skillName)} linked in registry! 🎉`);
442
370
  }
443
- catch (err) {
371
+ catch {
444
372
  spin.stop('PR creation failed');
445
- const message = err instanceof Error ? err.message : String(err);
446
- log.error(message);
447
- outro('Publish failed — files were pushed to the branch but PR could not be created.');
448
- process.exit(1);
373
+ throw new PublishError();
449
374
  }
450
375
  }
451
- /**
452
- * Calculate audit score from report severity counts.
453
- */
454
376
  function calculateScore(report) {
455
377
  const c = report.severityCounts;
456
- let score = 100;
457
- score -= c.critical * 30; // -30 each
458
- score -= c.high * 15; // -15 each
459
- score -= c.medium * 5; // -5 each
460
- score -= c.low * 2; // -2 each
461
- return Math.max(0, score);
378
+ return Math.max(0, 100 - c.critical * 30 - c.high * 15 - c.medium * 5 - c.low * 2);
462
379
  }
463
380
  function formatScore(score) {
464
381
  if (score >= 90)
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/marketplace/publish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/marketplace/publish.ts"],"names":[],"mappings":"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"}