@fprad0/skill-master-mcp 0.0.2 → 0.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/CHANGELOG.md CHANGED
@@ -7,6 +7,12 @@ All notable changes to `skill_master` will be tracked here.
7
7
  - Prepare a public npm publication path with dedicated workflow and operator guide.
8
8
  - Upgrade release automation from Node `20` to Node `22`.
9
9
 
10
+ ## [0.0.3] - 2026-06-26
11
+
12
+ - Add `skill-master-menu` as a human-facing CLI for local status, checks, build, public npm validation, and private registry setup.
13
+ - Keep `skill-master-mcp` reserved for MCP clients over `stdio`.
14
+ - Document public npm install state and global commands.
15
+
10
16
  ## [0.0.2] - 2026-06-25
11
17
 
12
18
  - Add private-registry setup helpers for Windows, Linux, and Node-based package flows.
package/README.md CHANGED
@@ -10,14 +10,15 @@ Criar um MCP capaz de catalogar skills locais e remotas, recomendar as melhores
10
10
 
11
11
  ## Decisao da versao 00.02
12
12
 
13
- A versao `00.02` consolida a distribuicao multiplataforma e o pacote privado:
13
+ A versao `00.02` consolida:
14
14
 
15
- - repositorio pessoal no GitHub como fonte de verdade
15
+ - distribuicao publica por `npmjs.org`
16
+ - distribuicao privada por GitHub Packages
16
17
  - manifesto remoto de versao e canal
17
18
  - launcher local com verificacao de atualizacao
18
19
  - atualizacao por `git pull --ff-only` quando o diretorio estiver limpo
19
20
  - fallback seguro quando houver alteracoes locais
20
- - arquitetura preparada para pacote npm privado, GitHub Releases e MCP remoto no futuro
21
+ - arquitetura preparada para MCP remoto no futuro
21
22
 
22
23
  ## Compatibilidade atual
23
24
 
@@ -25,32 +26,38 @@ O projeto agora possui fluxo operacional para:
25
26
 
26
27
  - Windows: `scripts/install-skill-master.ps1`, `scripts/update-skill-master.ps1`, `scripts/skill-master-launcher.ps1`
27
28
  - Linux: `scripts/install-skill-master.sh`, `scripts/update-skill-master.sh`, `scripts/skill-master-launcher.sh`
28
- - Clientes AI: Codex, Claude Desktop, Claude Code, Gemini CLI, Gemini Code Assist e clientes MCP genericos via stdio
29
+ - clientes AI: Codex, Claude Desktop, Claude Code, Gemini CLI, Gemini Code Assist e clientes MCP genericos via stdio
29
30
 
30
- Requisitos praticos nos dois ambientes:
31
+ Requisitos praticos:
31
32
 
32
- - `git`
33
+ - `git` para o modo clone + launcher
33
34
  - `node` `18+`
34
35
  - `npm`
35
- - acesso ao repositorio GitHub configurado
36
+ - acesso ao repositorio GitHub configurado no fluxo privado
36
37
 
37
38
  ## Instalacao rapida
38
39
 
39
40
  ### Windows
40
41
 
41
42
  ```powershell
42
- powershell -ExecutionPolicy Bypass -File scripts/install-skill-master.ps1
43
+ npm install -g @fprad0/skill-master-mcp
43
44
  ```
44
45
 
45
- ### Linux
46
+ ### Linux / macOS
46
47
 
47
48
  ```bash
48
- bash scripts/install-skill-master.sh
49
+ npm install -g @fprad0/skill-master-mcp
50
+ ```
51
+
52
+ Se a ideia for apenas testar sem install global:
53
+
54
+ ```bash
55
+ npx -y @fprad0/skill-master-mcp@latest
49
56
  ```
50
57
 
51
58
  ## Instalacao via pacote privado
52
59
 
53
- O projeto agora tambem pode ser distribuido como pacote privado via GitHub Packages.
60
+ O projeto tambem pode ser distribuido como pacote privado via GitHub Packages.
54
61
 
55
62
  Nome do pacote:
56
63
 
@@ -64,7 +71,7 @@ Fluxo resumido:
64
71
  2. configurar o cliente MCP para executar `npx -y @fprad0/skill-master-mcp@latest`;
65
72
  3. reiniciar o cliente.
66
73
 
67
- Atalho operacional:
74
+ Atalhos operacionais:
68
75
 
69
76
  - Windows: `powershell -ExecutionPolicy Bypass -File .\scripts\configure-private-registry.ps1 -Validate`
70
77
  - Linux: `bash ./scripts/configure-private-registry.sh --validate`
@@ -87,17 +94,38 @@ Leia:
87
94
 
88
95
  ## Instalacao via npm publico
89
96
 
90
- O repositório agora tambem pode ser preparado para distribuicao por `npmjs.org`, que e o caminho necessario para chegar em instalacao simples com:
97
+ O pacote publico ja esta disponivel em `npmjs.org`.
98
+
99
+ Comandos principais:
91
100
 
92
101
  ```bash
93
102
  npm install -g @fprad0/skill-master-mcp
94
103
  ```
95
104
 
96
- Estado atual:
105
+ ```bash
106
+ npx -y @fprad0/skill-master-mcp@latest
107
+ ```
108
+
109
+ Estado atual validado em `2026-06-26`:
110
+
111
+ - pacote publico publicado: `@fprad0/skill-master-mcp@0.0.2`
112
+ - dist-tag `latest` apontando para `0.0.2`
113
+ - workflow `Publish Skill Master to npmjs` concluido com sucesso
114
+ - `npm install` e `npx` confirmados
115
+
116
+ O pacote `0.0.3` adiciona o menu operacional. Depois da publicacao dessa versao, os comandos globais principais ficam:
97
117
 
98
- - o fluxo de publicacao publica foi preparado no repositório;
99
- - o pacote `0.0.2` ainda nao esta publicado no npm publico neste momento;
100
- - enquanto isso nao acontecer, o install simples por `npm install` continua bloqueado pelo uso de GitHub Packages privado.
118
+ ```bash
119
+ skill-master-mcp
120
+ skill-master-menu
121
+ skill-master-configure-private-registry
122
+ ```
123
+
124
+ O `skill-master-mcp` deve continuar reservado para clientes MCP via `stdio`. Para operacao humana, status local e checks, use:
125
+
126
+ ```bash
127
+ skill-master-menu
128
+ ```
101
129
 
102
130
  Leia:
103
131
 
@@ -118,7 +146,7 @@ Os dois caminhos configuram:
118
146
 
119
147
  ## Compatibilidade com Claude e Gemini
120
148
 
121
- A versao `00.02` documenta compatibilidade operacional com:
149
+ A versao `00.02` documenta compatibilidade operacional ja preparada para:
122
150
 
123
151
  - Claude Desktop
124
152
  - Claude Code
@@ -136,11 +164,11 @@ Leia:
136
164
 
137
165
  O `skill_master` pode aprender com as skills ja existentes em cada maquina instalada, mas o compartilhamento entre computadores segue um fluxo seguro:
138
166
 
139
- - catalogo local automatico;
140
- - deduplicacao por nome e hash;
141
- - pacote local de contribuicao;
142
- - revisao de risco e privacidade;
143
- - aprovacao humana antes de qualquer distribuicao.
167
+ - catalogo local automatico
168
+ - deduplicacao por nome e hash
169
+ - pacote local de contribuicao
170
+ - revisao de risco e privacidade
171
+ - aprovacao humana antes de qualquer distribuicao
144
172
 
145
173
  Ferramentas MCP principais:
146
174
 
package/VERSION.md CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  Versão funcional planejada: `00.02`
4
4
 
5
- Versão técnica para empacotamento semântico: `0.0.2`
5
+ Versão técnica para empacotamento semântico: `0.0.3`
6
6
 
7
7
  ## Observação
8
8
 
9
- O nome `00.02` será usado na comunicação e nos documentos. Para ferramentas que exigem SemVer, como npm e alguns fluxos de release, usar `0.0.2`.
9
+ O nome `00.02` será usado na comunicação e nos documentos. Para ferramentas que exigem SemVer, como npm e alguns fluxos de release, usar `0.0.3`.
@@ -0,0 +1,170 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { spawn } from 'node:child_process';
4
+ import { existsSync, readFileSync } from 'node:fs';
5
+ import { dirname, join } from 'node:path';
6
+ import { fileURLToPath } from 'node:url';
7
+ import { createInterface } from 'node:readline/promises';
8
+ import { stdin as input, stdout as output } from 'node:process';
9
+
10
+ const rootDir = dirname(dirname(fileURLToPath(import.meta.url)));
11
+
12
+ const commands = {
13
+ status: {
14
+ label: 'Mostrar status local',
15
+ command: process.execPath,
16
+ args: [fileURLToPath(import.meta.url), '--status'],
17
+ },
18
+ check: {
19
+ label: 'Rodar gate completo',
20
+ command: 'npm',
21
+ args: ['run', 'check'],
22
+ },
23
+ build: {
24
+ label: 'Rodar build',
25
+ command: 'npm',
26
+ args: ['run', 'build'],
27
+ },
28
+ publicNpm: {
29
+ label: 'Validar pacote no npm publico',
30
+ command: 'npm',
31
+ args: [
32
+ 'view',
33
+ '@fprad0/skill-master-mcp',
34
+ 'version',
35
+ '--registry=https://registry.npmjs.org',
36
+ ],
37
+ },
38
+ privateRegistry: {
39
+ label: 'Configurar registry privado GitHub Packages',
40
+ command: process.execPath,
41
+ args: ['scripts/configure-private-registry.mjs', '--validate'],
42
+ },
43
+ };
44
+
45
+ const menuItems = [
46
+ ['1', commands.status],
47
+ ['2', commands.check],
48
+ ['3', commands.build],
49
+ ['4', commands.publicNpm],
50
+ ['5', commands.privateRegistry],
51
+ ];
52
+
53
+ function readJson(relativePath) {
54
+ const target = join(rootDir, relativePath);
55
+ if (!existsSync(target)) {
56
+ return null;
57
+ }
58
+
59
+ return JSON.parse(readFileSync(target, 'utf8'));
60
+ }
61
+
62
+ function readText(relativePath) {
63
+ const target = join(rootDir, relativePath);
64
+ if (!existsSync(target)) {
65
+ return null;
66
+ }
67
+
68
+ return readFileSync(target, 'utf8').trim();
69
+ }
70
+
71
+ function printHelp() {
72
+ console.log(`Skill Master Menu
73
+
74
+ Uso:
75
+ skill-master-menu
76
+ skill-master-menu --status
77
+ skill-master-menu --help
78
+
79
+ O comando de menu e voltado para operacao humana. O binario MCP stdio continua sendo:
80
+ skill-master-mcp
81
+ `);
82
+ }
83
+
84
+ function printStatus() {
85
+ const packageJson = readJson('package.json');
86
+ const stableManifest = readJson('manifests/channels/stable.json');
87
+ const versionText = readText('VERSION.md');
88
+
89
+ console.log('Skill Master MCP - status local');
90
+ console.log(`Diretorio: ${rootDir}`);
91
+ console.log(`Pacote: ${packageJson?.name ?? 'nao encontrado'}`);
92
+ console.log(`Semver local: ${packageJson?.version ?? 'nao encontrado'}`);
93
+ console.log(`Manifesto stable: ${stableManifest?.version ?? 'nao encontrado'}`);
94
+ console.log(`Manifesto semver: ${stableManifest?.semver ?? 'nao encontrado'}`);
95
+
96
+ if (versionText) {
97
+ const firstLines = versionText.split('\n').slice(0, 6).join('\n');
98
+ console.log('\nVERSION.md:');
99
+ console.log(firstLines);
100
+ }
101
+ }
102
+
103
+ function runCommand(commandConfig) {
104
+ return new Promise((resolve) => {
105
+ console.log(`\n> ${commandConfig.command} ${commandConfig.args.join(' ')}\n`);
106
+
107
+ const child = spawn(commandConfig.command, commandConfig.args, {
108
+ cwd: rootDir,
109
+ env: process.env,
110
+ shell: process.platform === 'win32',
111
+ stdio: 'inherit',
112
+ });
113
+
114
+ child.on('close', (code) => {
115
+ resolve(code ?? 1);
116
+ });
117
+ });
118
+ }
119
+
120
+ async function runInteractiveMenu() {
121
+ const rl = createInterface({ input, output });
122
+
123
+ try {
124
+ while (true) {
125
+ console.log('\nSkill Master Menu');
126
+ for (const [key, item] of menuItems) {
127
+ console.log(` ${key}. ${item.label}`);
128
+ }
129
+ console.log(' 0. Sair');
130
+
131
+ const answer = (await rl.question('\nEscolha uma opcao: ')).trim();
132
+
133
+ if (answer === '0' || answer.toLowerCase() === 'q') {
134
+ return 0;
135
+ }
136
+
137
+ const selected = menuItems.find(([key]) => key === answer)?.[1];
138
+ if (!selected) {
139
+ console.log('Opcao invalida.');
140
+ continue;
141
+ }
142
+
143
+ const code = await runCommand(selected);
144
+ if (code !== 0) {
145
+ console.log(`\nComando terminou com codigo ${code}.`);
146
+ }
147
+ }
148
+ } finally {
149
+ rl.close();
150
+ }
151
+ }
152
+
153
+ async function main() {
154
+ const args = process.argv.slice(2);
155
+
156
+ if (args.includes('--help') || args.includes('-h')) {
157
+ printHelp();
158
+ return 0;
159
+ }
160
+
161
+ if (args.includes('--status')) {
162
+ printStatus();
163
+ return 0;
164
+ }
165
+
166
+ return runInteractiveMenu();
167
+ }
168
+
169
+ const exitCode = await main();
170
+ process.exitCode = exitCode;
@@ -2,12 +2,12 @@
2
2
  "name": "skill_master",
3
3
  "channel": "beta",
4
4
  "version": "00.02-beta",
5
- "semver": "0.0.2",
6
- "publishedAt": "2026-06-25T18:40:33-03:00",
5
+ "semver": "0.0.3",
6
+ "publishedAt": "2026-06-26T13:05:00-03:00",
7
7
  "git": {
8
8
  "repo": "https://github.com/FPrad0/skill-master-mcp",
9
9
  "branch": "main",
10
- "commit": "1a3cf8c"
10
+ "commit": "933b9fe"
11
11
  },
12
12
  "node": {
13
13
  "minimum": "18.0.0"
@@ -19,7 +19,7 @@
19
19
  "buildCommand": "npm run build"
20
20
  },
21
21
  "changelog": [
22
- "Canal beta acompanha a base 00.02 com helper do registry privado no pacote.",
23
- "Documentacao operacional e exemplos de clientes passam a viajar no tarball."
22
+ "Canal beta acompanha o novo binario skill-master-menu.",
23
+ "Menu operacional permite status, checks, build e validacoes npm sem afetar o servidor MCP stdio."
24
24
  ]
25
25
  }
@@ -2,12 +2,12 @@
2
2
  "name": "skill_master",
3
3
  "channel": "stable",
4
4
  "version": "00.02",
5
- "semver": "0.0.2",
6
- "publishedAt": "2026-06-25T18:40:33-03:00",
5
+ "semver": "0.0.3",
6
+ "publishedAt": "2026-06-26T13:05:00-03:00",
7
7
  "git": {
8
8
  "repo": "https://github.com/FPrad0/skill-master-mcp",
9
9
  "branch": "main",
10
- "commit": "1a3cf8c"
10
+ "commit": "933b9fe"
11
11
  },
12
12
  "node": {
13
13
  "minimum": "18.0.0"
@@ -19,8 +19,8 @@
19
19
  "buildCommand": "npm run build"
20
20
  },
21
21
  "changelog": [
22
- "Pacote privado agora inclui helper para configurar registry e validar acesso.",
23
- "Tarball publicado passa a levar guias operacionais e exemplos de clientes MCP.",
24
- "Gate npm run check volta a ser compativel com Node 18 ou superior."
22
+ "Novo binario skill-master-menu para operacao humana local.",
23
+ "Binario skill-master-mcp permanece reservado para clientes MCP via stdio.",
24
+ "README passa a documentar instalacao publica e comandos globais."
25
25
  ]
26
26
  }
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@fprad0/skill-master-mcp",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Personal MCP server that catalogs, recommends and reports skills with update-aware metadata.",
7
7
  "main": "dist/index.js",
8
8
  "bin": {
9
9
  "skill-master-configure-private-registry": "./bin/skill-master-configure-private-registry.mjs",
10
+ "skill-master-menu": "./bin/skill-master-menu.mjs",
10
11
  "skill-master-mcp": "./bin/skill-master.mjs"
11
12
  },
12
13
  "files": [