@fprad0/skill-master-mcp 0.0.11 → 0.0.12
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 +7 -0
- package/README.md +32 -3
- package/VERSION.md +3 -3
- package/bin/lib/client-config.mjs +25 -0
- package/bin/lib/menu-core.mjs +469 -101
- package/bin/lib/skill-installation.mjs +215 -0
- package/bin/skill-master-doctor.mjs +51 -4
- package/bin/skill-master-install-global-skills.mjs +3 -41
- package/bin/skill-master-install-project-skills.mjs +97 -0
- package/bin/skill-master-menu.mjs +91 -6
- package/bin/skill-master-register-clients.mjs +58 -3
- package/docs/operations/GUIA_MULTI_COMPUTADOR.md +8 -1
- package/docs/operations/MENU_VISUAL_EVIDENCE_2026-06-28.md +66 -0
- package/docs/operations/assets/menu-frame-compact.html +76 -0
- package/docs/operations/assets/menu-frame-compact.png +0 -0
- package/docs/operations/assets/menu-frame-large.html +84 -0
- package/docs/operations/assets/menu-frame-large.png +0 -0
- package/docs/operations/assets/menu-frame-running.html +80 -0
- package/docs/operations/assets/menu-frame-running.png +0 -0
- package/docs/operations/cross-platform-auth-transfer/ANALISE_COMPATIBILIDADE_MCP_2026-06-28.md +140 -0
- package/docs/operations/cross-platform-auth-transfer/README_TRANSFERENCIA.md +85 -0
- package/docs/operations/reborn-menu-cyberpunk-transfer/ANALISE_MENU_REBORN_CYBERPUNK_2026-06-28.md +174 -0
- package/docs/operations/reborn-menu-cyberpunk-transfer/HANDOFF_IMPLEMENTACAO_REBORN_CYBERPUNK_2026-06-28.md +119 -0
- package/docs/operations/reborn-menu-cyberpunk-transfer/ORDEM_DE_EXECUCAO_MENU_REBORN_CYBERPUNK.md +134 -0
- package/docs/operations/reborn-menu-cyberpunk-transfer/README_TRANSFERENCIA.md +84 -0
- package/docs/operations/reborn-menu-cyberpunk-transfer/README_TRANSFERENCIA_REBORN_PACKAGE.md +56 -0
- package/docs/operations/reborn-menu-cyberpunk-transfer/references/cyan-hud-frame-sheet.jpg +0 -0
- package/docs/operations/reborn-menu-cyberpunk-transfer/references/cyberpunk-pattern-sheet.jpg +0 -0
- package/docs/operations/reborn-menu-cyberpunk-transfer/references/fluid-workflow-windows.gif +0 -0
- package/docs/prompt-tasks/PROMPT_TASK_001_BOOTSTRAP_SKILL_MASTER_MCP.md +6 -0
- package/docs/prompt-tasks/PROMPT_TASK_002_AUTO_UPDATE_LAUNCHER.md +6 -0
- package/docs/prompt-tasks/PROMPT_TASK_003_REMOTE_MANIFEST_AND_RELEASES.md +6 -0
- package/docs/prompt-tasks/PROMPT_TASK_004_MULTI_USER_DISTRIBUTION.md +6 -0
- package/docs/prompt-tasks/PROMPT_TASK_005_SECURITY_AND_QUALITY_GATE.md +6 -0
- package/docs/prompt-tasks/PROMPT_TASK_006_MASTER_ACIONAMENTO_APRENDIZADO.md +83 -0
- package/docs/prompt-tasks/PROMPT_TASK_007_PERSONA_ORQUESTRADORA.md +88 -0
- package/docs/prompt-tasks/PROMPT_TASK_008_PROMPT_ROUTER_MODOS_ATIVACAO.md +156 -0
- package/docs/prompt-tasks/PROMPT_TASK_009_PIPELINE_APRENDIZADO_SUCESSO.md +105 -0
- package/docs/prompt-tasks/PROMPT_TASK_010_EVALS_GOVERNANCA_ATIVACAO.md +119 -0
- package/docs/prompt-tasks/PROMPT_TASK_011_MENU_NOTIFICACOES_NOTION.md +120 -0
- package/docs/prompt-tasks/PROMPT_TASK_012_MENU_CYBERPUNK_PIXEL_FRAME.md +123 -0
- package/docs/prompt-tasks/PROMPT_TASK_013_MENU_FLUID_DNA_ANIMATION.md +114 -0
- package/docs/prompt-tasks/PROMPT_TASK_014_MENU_FUNCTIONAL_PARITY_QA.md +157 -0
- package/docs/prompt-tasks/PROMPT_TASK_015_TRANSFER_RELEASE_HANDOFF.md +127 -0
- package/docs/prompt-tasks/PROMPT_TASK_016_CROSS_PLATFORM_MCP_AUTH_REGISTRATION.md +107 -0
- package/docs/prompt-tasks/PROMPT_TASK_018_NPM_PUBLISH_2FA_SETUP.md +80 -0
- package/docs/prompt-tasks/PROMPT_TASK_MASTER_EXECUTOR.md +6 -0
- package/docs/skill-candidates/v0.0.12/csharp-senior-master-engineering/SKILL.md +32 -0
- package/docs/skill-candidates/v0.0.12/css-senior-master-engineering/SKILL.md +32 -0
- package/docs/skill-candidates/v0.0.12/go-senior-master-engineering/SKILL.md +32 -0
- package/docs/skill-candidates/v0.0.12/html-senior-master-engineering/SKILL.md +32 -0
- package/docs/skill-candidates/v0.0.12/javascript-senior-master-engineering/SKILL.md +32 -0
- package/docs/skill-candidates/v0.0.12/json-senior-master-engineering/SKILL.md +32 -0
- package/docs/skill-candidates/v0.0.12/python-senior-master-engineering/SKILL.md +32 -0
- package/docs/skill-candidates/v0.0.12/react-senior-master-engineering/SKILL.md +32 -0
- package/docs/skill-candidates/v0.0.12/ruby-senior-master-engineering/SKILL.md +32 -0
- package/docs/skill-candidates/v0.0.12/senior-master-code-optimizer/SKILL.md +48 -0
- package/docs/skill-candidates/v0.0.12/sql-senior-master-engineering/SKILL.md +31 -0
- package/docs/skill-candidates/v0.0.12/typescript-senior-master-engineering/SKILL.md +35 -0
- package/examples/client-configs/claude-code.commands.md +11 -7
- package/manifests/channels/beta.json +6 -6
- package/manifests/channels/stable.json +8 -8
- package/package.json +9 -1
- package/scripts/render-menu-evidence.mjs +130 -0
- package/scripts/verify-menu-actions.mjs +2 -0
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { spawnSync } from 'node:child_process';
|
|
2
3
|
import { mkdirSync, writeFileSync } from 'node:fs';
|
|
3
4
|
import os from 'node:os';
|
|
4
5
|
import path, { dirname } from 'node:path';
|
|
5
6
|
import { fileURLToPath } from 'node:url';
|
|
6
7
|
import {
|
|
7
8
|
appendCodexServer,
|
|
9
|
+
buildClaudeCodeAddArgs,
|
|
8
10
|
buildCodexBlock,
|
|
9
11
|
buildJsonMcpSnippet,
|
|
10
12
|
buildSkillMasterServerConfig,
|
|
11
13
|
defaultClientConfigPaths,
|
|
14
|
+
formatShellCommand,
|
|
12
15
|
mergeMcpServer,
|
|
13
16
|
writeJson,
|
|
14
17
|
} from './lib/client-config.mjs';
|
|
@@ -30,14 +33,18 @@ Uso:
|
|
|
30
33
|
skill-master-register-clients --write-snippets
|
|
31
34
|
skill-master-register-clients --apply-codex
|
|
32
35
|
skill-master-register-clients --apply-claude
|
|
36
|
+
skill-master-register-clients --apply-claude-code
|
|
33
37
|
skill-master-register-clients --apply-gemini
|
|
34
38
|
skill-master-register-clients --apply-antigravity
|
|
35
39
|
skill-master-register-clients --apply-all
|
|
36
40
|
skill-master-register-clients --apply-codex --force
|
|
41
|
+
skill-master-register-clients --apply-claude-code --claude-code-scope user
|
|
37
42
|
|
|
38
43
|
Registra o servidor MCP skill_master como stdio usando Node absoluto e o
|
|
39
44
|
entrypoint absoluto do pacote. Isso evita falhas de PATH em Windows, Linux,
|
|
40
45
|
macOS e apps desktop que nao herdam o terminal.
|
|
46
|
+
|
|
47
|
+
Para Claude Code, o registrador usa o CLI oficial: claude mcp add.
|
|
41
48
|
`);
|
|
42
49
|
process.exit(0);
|
|
43
50
|
}
|
|
@@ -48,22 +55,63 @@ const codexConfig = readValue('--codex-config', clientPaths.codex);
|
|
|
48
55
|
const claudeConfig = readValue('--claude-config', clientPaths.claude);
|
|
49
56
|
const geminiConfig = readValue('--gemini-config', clientPaths.gemini);
|
|
50
57
|
const antigravityConfig = readValue('--antigravity-config', clientPaths.antigravity);
|
|
58
|
+
const claudeCodeScope = readValue('--claude-code-scope', 'user');
|
|
59
|
+
const claudeCodeCommand = readValue('--claude-code-command', 'claude');
|
|
51
60
|
|
|
52
61
|
const applyAll = has('--apply-all');
|
|
53
62
|
const applyCodex = applyAll || has('--apply-codex');
|
|
54
63
|
const applyClaude = applyAll || has('--apply-claude');
|
|
64
|
+
const applyClaudeCode = applyAll || has('--apply-claude-code');
|
|
55
65
|
const applyGemini = applyAll || has('--apply-gemini');
|
|
56
66
|
const applyAntigravity = applyAll || has('--apply-antigravity');
|
|
57
|
-
const writeSnippets = applyAll || has('--write-snippets') || !(applyCodex || applyClaude || applyGemini || applyAntigravity);
|
|
67
|
+
const writeSnippets = applyAll || has('--write-snippets') || !(applyCodex || applyClaude || applyClaudeCode || applyGemini || applyAntigravity);
|
|
58
68
|
const force = has('--force');
|
|
59
69
|
const serverConfig = buildSkillMasterServerConfig({ rootDir });
|
|
60
70
|
const codexBlock = buildCodexBlock(serverConfig);
|
|
61
71
|
const jsonSnippet = buildJsonMcpSnippet(serverConfig);
|
|
72
|
+
const claudeCodeArgs = buildClaudeCodeAddArgs(serverConfig, { scope: claudeCodeScope });
|
|
73
|
+
|
|
74
|
+
function commandExists(command) {
|
|
75
|
+
const lookup = process.platform === 'win32' ? 'where' : 'command';
|
|
76
|
+
const lookupArgs = process.platform === 'win32' ? [command] : ['-v', command];
|
|
77
|
+
const result = spawnSync(lookup, lookupArgs, { shell: process.platform !== 'win32', stdio: 'ignore' });
|
|
78
|
+
return result.status === 0;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function runClaudeCodeRegistration() {
|
|
82
|
+
if (!commandExists(claudeCodeCommand)) {
|
|
83
|
+
return {
|
|
84
|
+
ok: false,
|
|
85
|
+
skipped: true,
|
|
86
|
+
message: `Claude Code CLI '${claudeCodeCommand}' not found; run manually: ${formatShellCommand(claudeCodeCommand, claudeCodeArgs)}`,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
const result = spawnSync(claudeCodeCommand, claudeCodeArgs, {
|
|
91
|
+
encoding: 'utf8',
|
|
92
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
93
|
+
});
|
|
94
|
+
const output = `${result.stdout ?? ''}${result.stderr ?? ''}`.trim();
|
|
95
|
+
|
|
96
|
+
return {
|
|
97
|
+
ok: result.status === 0,
|
|
98
|
+
skipped: false,
|
|
99
|
+
message: result.status === 0
|
|
100
|
+
? `Claude Code registered via ${formatShellCommand(claudeCodeCommand, claudeCodeArgs)}`
|
|
101
|
+
: `Claude Code registration failed (${result.status ?? 'unknown'}): ${output || 'no output'}`,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
62
104
|
|
|
63
105
|
const writeSnippetsFiles = () => {
|
|
64
106
|
mkdirSync(snippetsDir, { recursive: true });
|
|
65
107
|
writeFileSync(path.join(snippetsDir, 'codex.config.toml'), codexBlock.trimStart(), 'utf8');
|
|
66
108
|
writeJson(path.join(snippetsDir, 'claude_desktop_config.skill_master.json'), jsonSnippet);
|
|
109
|
+
writeFileSync(
|
|
110
|
+
path.join(snippetsDir, 'claude-code.commands.md'),
|
|
111
|
+
`# Claude Code - registrar skill_master\n\n\`\`\`bash\n${formatShellCommand(claudeCodeCommand, claudeCodeArgs)}\n\`\`\`\n\nDepois reinicie a sessao do Claude Code e valide com:\n\n\`\`\`bash\nclaude mcp list\n\`\`\`\n`,
|
|
112
|
+
'utf8',
|
|
113
|
+
);
|
|
114
|
+
writeJson(path.join(snippetsDir, 'claude-code.project.mcp.json'), jsonSnippet);
|
|
67
115
|
writeJson(path.join(snippetsDir, 'gemini.settings.skill_master.json'), jsonSnippet);
|
|
68
116
|
writeJson(path.join(snippetsDir, 'antigravity.mcp_config.skill_master.json'), jsonSnippet);
|
|
69
117
|
};
|
|
@@ -78,7 +126,14 @@ if (applyCodex) {
|
|
|
78
126
|
}
|
|
79
127
|
if (applyClaude) {
|
|
80
128
|
mergeMcpServer(claudeConfig, serverConfig, { recoverInvalidJson: force });
|
|
81
|
-
actions.push(`Claude config merged at ${claudeConfig}`);
|
|
129
|
+
actions.push(`Claude Desktop config merged at ${claudeConfig}`);
|
|
130
|
+
}
|
|
131
|
+
if (applyClaudeCode) {
|
|
132
|
+
const result = runClaudeCodeRegistration();
|
|
133
|
+
actions.push(result.message);
|
|
134
|
+
if (!result.ok && !result.skipped) {
|
|
135
|
+
process.exitCode = 1;
|
|
136
|
+
}
|
|
82
137
|
}
|
|
83
138
|
if (applyGemini) {
|
|
84
139
|
mergeMcpServer(geminiConfig, serverConfig, { recoverInvalidJson: force });
|
|
@@ -95,4 +150,4 @@ console.log(`- Args: ${serverConfig.args.join(' ')}`);
|
|
|
95
150
|
for (const action of actions) {
|
|
96
151
|
console.log(`- ${action}`);
|
|
97
152
|
}
|
|
98
|
-
console.log('- Restart Codex, Claude, Gemini or Antigravity after registration.');
|
|
153
|
+
console.log('- Restart Codex, Claude Desktop, Claude Code, Gemini or Antigravity after registration.');
|
|
@@ -57,7 +57,7 @@ skill-master-menu --run doctor
|
|
|
57
57
|
skill-master-menu --run bootstrap-global --yes
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
O bootstrap registra Codex, Claude Desktop, Gemini CLI e Antigravity. Depois, reinicie os clientes.
|
|
60
|
+
O bootstrap registra Codex, Claude Desktop, Claude Code, Gemini CLI e Antigravity quando os clientes locais estiverem disponiveis. Depois, reinicie os clientes.
|
|
61
61
|
|
|
62
62
|
## 3. Instalacao em um novo computador
|
|
63
63
|
|
|
@@ -155,6 +155,13 @@ skill-master-register-clients --apply-all --force
|
|
|
155
155
|
skill-master-menu --run doctor
|
|
156
156
|
```
|
|
157
157
|
|
|
158
|
+
Para corrigir apenas o Claude Code depois de `npm install -g @fprad0/skill-master-mcp`, use:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
skill-master-register-clients --apply-claude-code --claude-code-scope user
|
|
162
|
+
claude mcp list
|
|
163
|
+
```
|
|
164
|
+
|
|
158
165
|
No modelo clone + launcher, o cliente deve chamar o launcher, nao o `dist/index.js` diretamente.
|
|
159
166
|
|
|
160
167
|
Exemplo conceitual:
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
# Menu Visual Evidence - 2026-06-28
|
|
2
|
+
|
|
3
|
+
## Objetivo
|
|
4
|
+
|
|
5
|
+
Registrar evidencias da passada Reborn cyberpunk pixel art do `skill-master-menu`:
|
|
6
|
+
|
|
7
|
+
- `overview` com mini-graficos
|
|
8
|
+
- `telemetry` com sparklines e barras
|
|
9
|
+
- `DNA-CORE` como animacao principal no lado direito, evoluida para `DNA CYBER HELIX`, com matriz braille 2x4, canvas mais cheio, paleta cyberpunk harmonica e scan vivo em cadencia mais fluida
|
|
10
|
+
- intro `BOOT-SEQUENCE`, confirmacao visual e estado `running`
|
|
11
|
+
- layout compacto para terminais menores
|
|
12
|
+
- estado visual de execucao antes de transferir para o stream real do comando
|
|
13
|
+
|
|
14
|
+
## Arquivos de evidencia
|
|
15
|
+
|
|
16
|
+
Gerados pelo script:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
node scripts/render-menu-evidence.mjs
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Arquivos HTML:
|
|
23
|
+
|
|
24
|
+
- `docs/operations/assets/menu-frame-large.html`
|
|
25
|
+
- `docs/operations/assets/menu-frame-compact.html`
|
|
26
|
+
- `docs/operations/assets/menu-frame-running.html`
|
|
27
|
+
|
|
28
|
+
## O que validar visualmente
|
|
29
|
+
|
|
30
|
+
### Frame grande
|
|
31
|
+
|
|
32
|
+
- overview com identidade HUD
|
|
33
|
+
- linha de sinal com mini-graficos
|
|
34
|
+
- `DNA-CORE // DNA CYBER HELIX` como painel visual dominante no lado direito
|
|
35
|
+
- dupla helice renderizada em braille/pixel art, com fitas mais encorpadas, pares de base pontilhados e scan em movimento
|
|
36
|
+
- halo pixelado de baixa prioridade ao redor das fitas para preencher melhor o painel sem virar bloco solido
|
|
37
|
+
- paleta por camada: fita cyan, fita ambar, bases azuis, scan branco e grid cinza
|
|
38
|
+
- ciclo de 36 frames com easing senoidal para suavizar a rotacao visual
|
|
39
|
+
- loop visual do menu em 160ms por frame para animacao mais fluida sem alterar os comandos `--run`
|
|
40
|
+
- `details` com hierarquia visual maior que `actions`
|
|
41
|
+
- `telemetry` com barras e sparklines
|
|
42
|
+
|
|
43
|
+
### Frame compacto
|
|
44
|
+
|
|
45
|
+
- identidade cyberpunk preservada
|
|
46
|
+
- menu continua selecionavel e legivel
|
|
47
|
+
- DNA-CORE e telemetry continuam presentes em versao condensada
|
|
48
|
+
|
|
49
|
+
### Running state
|
|
50
|
+
|
|
51
|
+
- transicao visual clara entre HUD e stream real do comando
|
|
52
|
+
- acao, area e comando ficam explicitos antes da execucao
|
|
53
|
+
|
|
54
|
+
### Fluxos extras cobertos por teste
|
|
55
|
+
|
|
56
|
+
- intro `REBORN / SKILL_MASTER`
|
|
57
|
+
- confirmacao `CONFIRMATION GATE`
|
|
58
|
+
- resultado `SUBROUTINE COMPLETE` ou `SUBROUTINE FAILED`
|
|
59
|
+
- saida textual preservada quando nao ha TTY
|
|
60
|
+
|
|
61
|
+
## Evidencia tecnica
|
|
62
|
+
|
|
63
|
+
- renderer principal: `bin/lib/menu-core.mjs`
|
|
64
|
+
- fluxo interativo: `bin/skill-master-menu.mjs`
|
|
65
|
+
- testes: `src/menu-core.test.ts`
|
|
66
|
+
- validacao: `npm run check`, `node scripts/verify-menu-actions.mjs`, `npm pack --dry-run`
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="pt-BR">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<title>Menu Frame 96x24</title>
|
|
6
|
+
<style>
|
|
7
|
+
:root {
|
|
8
|
+
color-scheme: dark;
|
|
9
|
+
--bg: #060606;
|
|
10
|
+
--panel: #0d0d0d;
|
|
11
|
+
--grid: rgba(255,255,255,0.06);
|
|
12
|
+
--line: rgba(255,255,255,0.25);
|
|
13
|
+
--text: #f3f3f3;
|
|
14
|
+
--muted: #8f949c;
|
|
15
|
+
}
|
|
16
|
+
* { box-sizing: border-box; }
|
|
17
|
+
body {
|
|
18
|
+
margin: 0;
|
|
19
|
+
min-height: 100vh;
|
|
20
|
+
background:
|
|
21
|
+
linear-gradient(var(--grid) 1px, transparent 1px),
|
|
22
|
+
linear-gradient(90deg, var(--grid) 1px, transparent 1px),
|
|
23
|
+
radial-gradient(circle at top, rgba(255,255,255,0.06), transparent 35%),
|
|
24
|
+
var(--bg);
|
|
25
|
+
background-size: 48px 48px, 48px 48px, auto, auto;
|
|
26
|
+
color: var(--text);
|
|
27
|
+
font-family: "Courier New", monospace;
|
|
28
|
+
padding: 32px;
|
|
29
|
+
}
|
|
30
|
+
.frame {
|
|
31
|
+
max-width: max-content;
|
|
32
|
+
background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
|
|
33
|
+
border: 1px solid var(--line);
|
|
34
|
+
box-shadow: 0 0 0 1px rgba(255,255,255,0.04), 0 24px 64px rgba(0,0,0,0.45);
|
|
35
|
+
padding: 20px 24px;
|
|
36
|
+
white-space: pre;
|
|
37
|
+
line-height: 1.1;
|
|
38
|
+
font-size: 13px;
|
|
39
|
+
border-radius: 8px;
|
|
40
|
+
}
|
|
41
|
+
.title {
|
|
42
|
+
margin: 0 0 16px;
|
|
43
|
+
color: var(--muted);
|
|
44
|
+
letter-spacing: 0.12em;
|
|
45
|
+
text-transform: uppercase;
|
|
46
|
+
font-size: 12px;
|
|
47
|
+
}
|
|
48
|
+
</style>
|
|
49
|
+
</head>
|
|
50
|
+
<body>
|
|
51
|
+
<p class="title">Menu Frame 96x24</p>
|
|
52
|
+
<pre class="frame">┏╾────────── OVERVIEW▰▱▱──▰───────────────────────────────────────────────────────────────────╼┓
|
|
53
|
+
▌ ▱SKILL MASTER MENU ▐
|
|
54
|
+
▌ version 0.0.11 | channel 00.05 | readiness ready ▐
|
|
55
|
+
▌ GLOBAL SKILLS 13/13 ▐
|
|
56
|
+
▌ bundle 54 | drafts 3 | study 8 ▐
|
|
57
|
+
▌ ▱signal ██▇▅▄▃▃▃ health ██▇▆▄▃▃▃ ▐
|
|
58
|
+
┗╾────────────────▰▰▰─▱─▱─▱─▱─────────────────────────────────────────────────────────────────╼┛
|
|
59
|
+
|
|
60
|
+
┌╴───────── ACTIONS▱╍╍──▱───────────────────────────────────────╶┐ ┏╾─── DNA-CORE▰───────────╼┓
|
|
61
|
+
│ ╍ACTION GRID │ ▌ ▱DNA CYBER HELIX / ativa ▐
|
|
62
|
+
│ up/down move enter run q exit │ ▌ ⠁ ⠸⣿⣿⡁ ⠁ ⡸⡻⡻ ▐
|
|
63
|
+
│ . Rejeitar skill candidata │ ▌ ⠈⠻⢿⣷⣦⣄⣀⠄⢀⣤⣴⡾⠞⠊ ▐
|
|
64
|
+
│ . Ativar skill aprendida no workspace │ ▌ ⠁ ⠁⣈⣽⣿⣿⣿⣿⣭⣅⡀ ⠁ ▐
|
|
65
|
+
│ > Ativar skill aprendida global │ ▌ ⣀⣴⣿⠿⠛⠛⠓⠒⠛⠛⠻⢿⣷⣤⡀ ▐
|
|
66
|
+
│ ╍. Abrir resumo para Notion │ ▌ ▱ ⠁ ⠸⣿⣿⡁ ⠁ ⡹⡿⡿ ▐
|
|
67
|
+
└╴───────────▱▱▱─╍─╍─╍─╍────────────────────────────────────────╶┘ ┗╾────▰───────────────────╼┛
|
|
68
|
+
╭╼═════════ DETAILS▰▱▱══▰═══════════════════════════════════════╾╮ ┌╴─── TELEMETRY▱──────────╶┐
|
|
69
|
+
▌ ▱DETAIL FOCUS ▐ │ ╍SYSTEM WINDOWS │
|
|
70
|
+
▌ Ativar skill aprendida global ▐ │ selected area ativacao │
|
|
71
|
+
▌ area ativacao-skill | action 21/22 ▐ │ dominant skill fronten │
|
|
72
|
+
▌ -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ▐ │ bundle 54 ██████████ │
|
|
73
|
+
▌ ▱Instala uma skill aprendida em CODEX_HOME/skills ou ▐ │ ╍global 13/13 ████████ │
|
|
74
|
+
╰╼═══════════▰▰▰═▱═▱═▱═▱════════════════════════════════════════╾╯ └╴────▱───────────────────╶┘</pre>
|
|
75
|
+
</body>
|
|
76
|
+
</html>
|
|
Binary file
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="pt-BR">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<title>Menu Frame 120x32</title>
|
|
6
|
+
<style>
|
|
7
|
+
:root {
|
|
8
|
+
color-scheme: dark;
|
|
9
|
+
--bg: #060606;
|
|
10
|
+
--panel: #0d0d0d;
|
|
11
|
+
--grid: rgba(255,255,255,0.06);
|
|
12
|
+
--line: rgba(255,255,255,0.25);
|
|
13
|
+
--text: #f3f3f3;
|
|
14
|
+
--muted: #8f949c;
|
|
15
|
+
}
|
|
16
|
+
* { box-sizing: border-box; }
|
|
17
|
+
body {
|
|
18
|
+
margin: 0;
|
|
19
|
+
min-height: 100vh;
|
|
20
|
+
background:
|
|
21
|
+
linear-gradient(var(--grid) 1px, transparent 1px),
|
|
22
|
+
linear-gradient(90deg, var(--grid) 1px, transparent 1px),
|
|
23
|
+
radial-gradient(circle at top, rgba(255,255,255,0.06), transparent 35%),
|
|
24
|
+
var(--bg);
|
|
25
|
+
background-size: 48px 48px, 48px 48px, auto, auto;
|
|
26
|
+
color: var(--text);
|
|
27
|
+
font-family: "Courier New", monospace;
|
|
28
|
+
padding: 32px;
|
|
29
|
+
}
|
|
30
|
+
.frame {
|
|
31
|
+
max-width: max-content;
|
|
32
|
+
background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
|
|
33
|
+
border: 1px solid var(--line);
|
|
34
|
+
box-shadow: 0 0 0 1px rgba(255,255,255,0.04), 0 24px 64px rgba(0,0,0,0.45);
|
|
35
|
+
padding: 20px 24px;
|
|
36
|
+
white-space: pre;
|
|
37
|
+
line-height: 1.1;
|
|
38
|
+
font-size: 13px;
|
|
39
|
+
border-radius: 8px;
|
|
40
|
+
}
|
|
41
|
+
.title {
|
|
42
|
+
margin: 0 0 16px;
|
|
43
|
+
color: var(--muted);
|
|
44
|
+
letter-spacing: 0.12em;
|
|
45
|
+
text-transform: uppercase;
|
|
46
|
+
font-size: 12px;
|
|
47
|
+
}
|
|
48
|
+
</style>
|
|
49
|
+
</head>
|
|
50
|
+
<body>
|
|
51
|
+
<p class="title">Menu Frame 120x32</p>
|
|
52
|
+
<pre class="frame">┏╾────────── OVERVIEW▰▱▱──▰───────────────────────────────────────────────────────────────────────────────────────────╼┓
|
|
53
|
+
▌ ▱SKILL MASTER MENU ▐
|
|
54
|
+
▌ version 0.0.11 | channel 00.05 | readiness ready ▐
|
|
55
|
+
▌ GLOBAL SKILLS 13/13 ▐
|
|
56
|
+
▌ bundle 54 | drafts 3 | study 8 ▐
|
|
57
|
+
▌ signal ██▇▅▄▃▃▃▄▅▄▄ health ██▇▆▄▃▃▃▄▄▄▄ ▐
|
|
58
|
+
▌ ▱moral-core 10 | frontend-ui 19 | backend-data 10 | ops-clients 12 | knowledge 2 ▐
|
|
59
|
+
┗╾────────────────────▰▰▰─▱─▱─▱─▱─────────────────────────────────────────────────────────────────────────────────────╼┛
|
|
60
|
+
|
|
61
|
+
┌╴────────── ACTIONS▱╍╍──▱────────────────────────────────────────────────────╶┐ ┏╾───── DNA-CORE▰───────────────────╼┓
|
|
62
|
+
│ ╍ACTION GRID │ ▌ ▱DNA CYBER HELIX / diagnostico ▐
|
|
63
|
+
│ up/down move enter run q exit │ ▌ ⠁ ⠸⣿⣿⣄ ⠄ ⠅ ⠄ ⠄ ⠅ ⠄ ⠄ ⡽⡻⡻ ⠁ ▐
|
|
64
|
+
│ . Status local │ ▌ ⠈⠛⠿⢿⣷⣶⣤⣄⣀⣀ ⢀⢀⣀⣤⣴⠶⠟⠛⠉ ▐
|
|
65
|
+
│ > Doctor do menu e clientes MCP │ ▌ ⠁ ⠁ ⢉⣙⣿⣿⠿⣿⣿⣿⣭⣅⣀⡀ ⠁ ⠁ ▐
|
|
66
|
+
│ . Rodar gate completo [off] │ ▌ ⢀⣤⣶⣿⠟⠋⠉⠁⠈ ⠈ ⠉⠙⠛⠻⢿⣷⣦⣄ ▐
|
|
67
|
+
│ . Rodar build [off] │ ▌ ⠁ ⠰⣿⣿⡛⠒⠒⠒⠓⠒⠒⠒⠒⠒⠓⠒⠒⠒⠒⠚⡻⣿⡷ ⠁ ▐
|
|
68
|
+
│ . Validar pacote no npm publico │ ▌ ⠈⠻⠿⣿⣶⣦⣤⣠⡀⠠ ⠠ ⣠⣠⣤⡶⠾⠚⠊ ▐
|
|
69
|
+
│ . Atualizar pacote global via npm │ ▌ ⠁ ⠁ ⠈⠉⣛⣻⣿⣿⣶⣾⣿⣯⣉⡀ ⠁ ⠁ ▐
|
|
70
|
+
│ . Configurar registry privado GitHub Packages │ ▌ ⣀⣤⣶⠾⠛⠋⠉ ⠉⠉⠛⠻⠿⣿⣶⣤⣀ ▐
|
|
71
|
+
│ . Modo de ativacao atual │ ▌ ⠁ ⢰⣿⣿⠉ ⠈ ⠉ ⠈ ⠈ ⠉ ⠈ ⠈⠉⢻⢿⢷ ⠁ ▐
|
|
72
|
+
│ ╍ │ ▌ ⠙⠿⣿⣶⣦⣔ ⠐ ⠐ ⠐ ⠐⢀⣰⣤⡶⠷⠓⠁ ▐
|
|
73
|
+
└╴─────────────▱▱▱─╍─╍─╍─╍────────────────────────────────────────────────────╶┘ ▌ ▱frames 8/36 global 13/13 ▐
|
|
74
|
+
╭╼══════════ DETAILS▰▱▱══▰════════════════════════════════════════════════════╾╮ ┗╾──────▰▰▰─────────────────────────╼┛
|
|
75
|
+
▌ ▱DETAIL FOCUS ▐ ┌╴───── TELEMETRY▱──────────────────╶┐
|
|
76
|
+
▌ Doctor do menu e clientes MCP ▐ │ ╍SYSTEM WINDOWS │
|
|
77
|
+
▌ area diagnostico | action 2/22 ▐ │ selected area diagnostico │
|
|
78
|
+
▌ -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= ▐ │ dominant skill frontend-ui 19 │
|
|
79
|
+
▌ Valida pacote, binarios, skills globais e registros em Codex, Claude, Gemin ▐ │ bundle 54 ████████████████ │
|
|
80
|
+
▌ resultado: Mostra um relatorio GO/NO-GO com proximos comandos recomendados. ▐ │ global 13/13 ████████████████ │
|
|
81
|
+
▌ ▱exec: /usr/bin/node /tmp/skill-master/bin/skill-master-doctor.mjs ▐ │ ╍skills ▅▇██▇▅▄▄▄▄▅▅ │
|
|
82
|
+
╰╼═════════════▰▰▰═▱═▱═▱═▱════════════════════════════════════════════════════╾╯ └╴──────▱▱▱─────────────────────────╶┘</pre>
|
|
83
|
+
</body>
|
|
84
|
+
</html>
|
|
Binary file
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="pt-BR">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<title>Menu Running State</title>
|
|
6
|
+
<style>
|
|
7
|
+
:root {
|
|
8
|
+
color-scheme: dark;
|
|
9
|
+
--bg: #060606;
|
|
10
|
+
--panel: #0d0d0d;
|
|
11
|
+
--grid: rgba(255,255,255,0.06);
|
|
12
|
+
--line: rgba(255,255,255,0.25);
|
|
13
|
+
--text: #f3f3f3;
|
|
14
|
+
--muted: #8f949c;
|
|
15
|
+
}
|
|
16
|
+
* { box-sizing: border-box; }
|
|
17
|
+
body {
|
|
18
|
+
margin: 0;
|
|
19
|
+
min-height: 100vh;
|
|
20
|
+
background:
|
|
21
|
+
linear-gradient(var(--grid) 1px, transparent 1px),
|
|
22
|
+
linear-gradient(90deg, var(--grid) 1px, transparent 1px),
|
|
23
|
+
radial-gradient(circle at top, rgba(255,255,255,0.06), transparent 35%),
|
|
24
|
+
var(--bg);
|
|
25
|
+
background-size: 48px 48px, 48px 48px, auto, auto;
|
|
26
|
+
color: var(--text);
|
|
27
|
+
font-family: "Courier New", monospace;
|
|
28
|
+
padding: 32px;
|
|
29
|
+
}
|
|
30
|
+
.frame {
|
|
31
|
+
max-width: max-content;
|
|
32
|
+
background: linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.01));
|
|
33
|
+
border: 1px solid var(--line);
|
|
34
|
+
box-shadow: 0 0 0 1px rgba(255,255,255,0.04), 0 24px 64px rgba(0,0,0,0.45);
|
|
35
|
+
padding: 20px 24px;
|
|
36
|
+
white-space: pre;
|
|
37
|
+
line-height: 1.1;
|
|
38
|
+
font-size: 13px;
|
|
39
|
+
border-radius: 8px;
|
|
40
|
+
}
|
|
41
|
+
.title {
|
|
42
|
+
margin: 0 0 16px;
|
|
43
|
+
color: var(--muted);
|
|
44
|
+
letter-spacing: 0.12em;
|
|
45
|
+
text-transform: uppercase;
|
|
46
|
+
font-size: 12px;
|
|
47
|
+
}
|
|
48
|
+
</style>
|
|
49
|
+
</head>
|
|
50
|
+
<body>
|
|
51
|
+
<p class="title">Menu Running State</p>
|
|
52
|
+
<pre class="frame">╔╼══════════ RUNNING▰════▰════════════════════════════════════════════════════════════════════════════════════════════╾╗
|
|
53
|
+
▌▌▱SKILL_MASTER WORKFLOW ONLINE ▐▐
|
|
54
|
+
▌▌ area diagnostico | launching Doctor do menu e clientes MCP ▐▐
|
|
55
|
+
▌▌▰pulse █▇▅▄▃▃▄▄▅▄▃▂▂▂▄▆▇█ ▐▐
|
|
56
|
+
▌▌ <=/===/>-<=/===/>-<=/===/>-<=/===/>-<=/===/>-<=/===/>-<=/===/>-<=/===/>-<=/===/>-<=/===/>-<=/===/>-<=/===/>-<=/===/▐▐
|
|
57
|
+
▌▌ . | . + . . + . . + . . +. . + . .+ . . +▐▐
|
|
58
|
+
▌▌▰ + + + + + + + ▐▐
|
|
59
|
+
▌▌ - - |- -+ - - - - - - - - - - - +- - - - - -+ - - - - - - - - - - - +- - - - - -+ -▐▐
|
|
60
|
+
▌▌ + + + + + + + ▐▐
|
|
61
|
+
▌▌▰. | + . .+ . . + . . + . . + . . + . . + . ▐▐
|
|
62
|
+
▌▌ + + + + + + + ▐▐
|
|
63
|
+
▌▌ |+ + + + + + + ▐▐
|
|
64
|
+
▌▌▰ + + + + + + + ▐▐
|
|
65
|
+
▌▌ ▐▐
|
|
66
|
+
▌▌ Valida pacote, binarios, skills globais e registros em Codex, Claude, Gemini e Antigravity. ▐▐
|
|
67
|
+
▌▌▰resultado esperado: Mostra um relatorio GO/NO-GO com proximos comandos recomendados. ▐▐
|
|
68
|
+
▌▌ exec: /usr/bin/node /tmp/skill-master/bin/skill-master-doctor.mjs ▐▐
|
|
69
|
+
▌▌ ▐▐
|
|
70
|
+
▌▌▰handoff: HUD -> stream real do comando ▐▐
|
|
71
|
+
▌▌ ▐▐
|
|
72
|
+
▌▌ ▐▐
|
|
73
|
+
▌▌▰ ▐▐
|
|
74
|
+
▌▌ ▐▐
|
|
75
|
+
▌▌ ▐▐
|
|
76
|
+
▌▌▰ ▐▐
|
|
77
|
+
▌▌▱ ▐▐
|
|
78
|
+
╚╼════════════════════▰▰▰═════════════════════════════════════════════════════════════════════════════════════════════╾╝</pre>
|
|
79
|
+
</body>
|
|
80
|
+
</html>
|
|
Binary file
|
package/docs/operations/cross-platform-auth-transfer/ANALISE_COMPATIBILIDADE_MCP_2026-06-28.md
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
# Analise - Compatibilidade MCP Windows Linux macOS
|
|
2
|
+
|
|
3
|
+
Data: 2026-06-28
|
|
4
|
+
Projeto: `@fprad0/skill-master-mcp`
|
|
5
|
+
Status: correcoes aplicadas localmente, publicacao proibida neste computador
|
|
6
|
+
|
|
7
|
+
## Problema
|
|
8
|
+
|
|
9
|
+
O `skill_master` podia ser instalado corretamente por npm, mas alguns clientes MCP nao conseguiam iniciar o servidor. O ponto mais provavel era a configuracao dos clientes usando:
|
|
10
|
+
|
|
11
|
+
```text
|
|
12
|
+
command = "skill-master-mcp"
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Esse formato depende do `PATH` do processo que abriu o cliente. Em apps desktop no Windows e macOS, e tambem em ambientes Linux com launchers grafico/systemd, o `PATH` pode nao conter a pasta global do npm. Resultado: o pacote esta instalado, mas o cliente diz que nao consegue autorizar/iniciar/encontrar o MCP.
|
|
16
|
+
|
|
17
|
+
## Limite importante
|
|
18
|
+
|
|
19
|
+
Nenhum pacote npm deve burlar autorizacoes do sistema operacional ou do cliente MCP. A correcao segura e suportada e:
|
|
20
|
+
|
|
21
|
+
- registrar o servidor com executavel Node absoluto;
|
|
22
|
+
- passar o entrypoint `bin/skill-master.mjs` absoluto em `args`;
|
|
23
|
+
- manter bootstrap explicito para alterar configs de usuario;
|
|
24
|
+
- diagnosticar configuracoes antigas como `path-bin` ou `launcher`.
|
|
25
|
+
|
|
26
|
+
## Correcao aplicada
|
|
27
|
+
|
|
28
|
+
Foi criado um modulo compartilhado:
|
|
29
|
+
|
|
30
|
+
```text
|
|
31
|
+
bin/lib/client-config.mjs
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Ele centraliza:
|
|
35
|
+
|
|
36
|
+
- paths padrao de Codex, Claude Desktop, Gemini e Antigravity;
|
|
37
|
+
- geracao de config MCP robusta;
|
|
38
|
+
- bloco TOML do Codex;
|
|
39
|
+
- snippets JSON;
|
|
40
|
+
- merge de configs JSON;
|
|
41
|
+
- avaliacao de configs robustas vs antigas.
|
|
42
|
+
|
|
43
|
+
Novo padrao de servidor:
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"command": "/caminho/absoluto/para/node",
|
|
48
|
+
"args": ["/caminho/absoluto/para/bin/skill-master.mjs"],
|
|
49
|
+
"env": {
|
|
50
|
+
"SKILL_MASTER_UPDATE_CHANNEL": "stable"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
No Codex:
|
|
56
|
+
|
|
57
|
+
```toml
|
|
58
|
+
[mcp_servers.skill_master]
|
|
59
|
+
command = "/caminho/absoluto/para/node"
|
|
60
|
+
args = ["/caminho/absoluto/para/bin/skill-master.mjs"]
|
|
61
|
+
startup_timeout_sec = 120
|
|
62
|
+
|
|
63
|
+
[mcp_servers.skill_master.env]
|
|
64
|
+
SKILL_MASTER_UPDATE_CHANNEL = "stable"
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Arquivos alterados
|
|
68
|
+
|
|
69
|
+
```text
|
|
70
|
+
bin/lib/client-config.mjs
|
|
71
|
+
bin/lib/menu-core.mjs
|
|
72
|
+
bin/skill-master-bootstrap-global.mjs
|
|
73
|
+
bin/skill-master-doctor.mjs
|
|
74
|
+
bin/skill-master-register-clients.mjs
|
|
75
|
+
scripts/verify-menu-actions.mjs
|
|
76
|
+
src/client-config.test.ts
|
|
77
|
+
src/menu-core.test.ts
|
|
78
|
+
package.json
|
|
79
|
+
README.md
|
|
80
|
+
CHANGELOG.md
|
|
81
|
+
docs/operations/GUIA_MULTI_COMPUTADOR.md
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Tambem existem arquivos de planejamento visual anteriores em:
|
|
85
|
+
|
|
86
|
+
```text
|
|
87
|
+
docs/operations/reborn-menu-cyberpunk-transfer/
|
|
88
|
+
docs/prompt-tasks/PROMPT_TASK_012_MENU_CYBERPUNK_PIXEL_FRAME.md
|
|
89
|
+
docs/prompt-tasks/PROMPT_TASK_013_MENU_FLUID_DNA_ANIMATION.md
|
|
90
|
+
docs/prompt-tasks/PROMPT_TASK_014_MENU_FUNCTIONAL_PARITY_QA.md
|
|
91
|
+
docs/prompt-tasks/PROMPT_TASK_015_TRANSFER_RELEASE_HANDOFF.md
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Validacao executada localmente
|
|
95
|
+
|
|
96
|
+
```powershell
|
|
97
|
+
npm install
|
|
98
|
+
npm run check
|
|
99
|
+
node bin/skill-master-register-clients.mjs --write-snippets --snippets-dir .tmp-client-snippets
|
|
100
|
+
node bin/skill-master-menu.mjs --status
|
|
101
|
+
node bin/skill-master-doctor.mjs
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Resultado:
|
|
105
|
+
|
|
106
|
+
- build passou;
|
|
107
|
+
- 12 arquivos de teste passaram;
|
|
108
|
+
- 55 testes passaram;
|
|
109
|
+
- matriz de 22 acoes do menu passou;
|
|
110
|
+
- manifestos passaram;
|
|
111
|
+
- snippets gerados usam Node absoluto + `bin/skill-master.mjs` absoluto.
|
|
112
|
+
|
|
113
|
+
## O que validar no computador autorizado
|
|
114
|
+
|
|
115
|
+
```powershell
|
|
116
|
+
git status --short
|
|
117
|
+
npm install
|
|
118
|
+
npm run check
|
|
119
|
+
npm pack --dry-run
|
|
120
|
+
node bin/skill-master-register-clients.mjs --write-snippets --snippets-dir .tmp-client-snippets
|
|
121
|
+
node bin/skill-master-doctor.mjs
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Depois de publicar e instalar globalmente:
|
|
125
|
+
|
|
126
|
+
```powershell
|
|
127
|
+
npm install -g @fprad0/skill-master-mcp@latest
|
|
128
|
+
skill-master-register-clients --apply-all --force
|
|
129
|
+
skill-master-menu --run doctor
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
Reiniciar Codex depois do registro.
|
|
133
|
+
|
|
134
|
+
## Riscos restantes
|
|
135
|
+
|
|
136
|
+
- O usuario ainda precisa permitir que o cliente MCP leia sua configuracao local.
|
|
137
|
+
- macOS Gatekeeper nao deve bloquear scripts npm comuns, mas ambientes corporativos podem ter politicas proprias.
|
|
138
|
+
- Windows pode exigir que Node esteja instalado e acessivel no caminho absoluto gravado.
|
|
139
|
+
- Se o usuario mover/remover a instalacao global depois do registro, e preciso rodar `skill-master-register-clients --apply-all --force` novamente.
|
|
140
|
+
|