@fprad0/skill-master-mcp 1.0.0 → 1.0.1

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.
Files changed (38) hide show
  1. package/CHANGELOG.md +9 -3
  2. package/README.md +2 -2
  3. package/VERSION.md +4 -4
  4. package/bin/lib/client-config.mjs +11 -9
  5. package/bin/lib/menu-core.mjs +241 -70
  6. package/bin/skill-master-activation.mjs +3 -1
  7. package/bin/skill-master-menu.mjs +127 -17
  8. package/bin/skill-master-success-skills.mjs +52 -2
  9. package/docs/operations/assets/menu-frame-compact.html +78 -75
  10. package/docs/operations/assets/menu-frame-dna-hero.html +87 -0
  11. package/docs/operations/assets/menu-frame-fine-helix.html +89 -0
  12. package/docs/operations/assets/menu-frame-large.html +86 -83
  13. package/docs/operations/assets/menu-frame-running.html +82 -79
  14. package/docs/operations/assets/menu-frame-score-10-contact-sheet.html +184 -0
  15. package/docs/planning/mcp-1.0.0/00_RESUMO_EXECUTIVO_AUDITORIA_MENU.md +118 -0
  16. package/docs/planning/mcp-1.0.0/01_MATRIZ_TESTES_MENU_E_RESULTADOS.md +250 -0
  17. package/docs/planning/mcp-1.0.0/02_PLANO_CORRECAO_ATIVAR_SKILL_APRENDIDA.md +200 -0
  18. package/docs/planning/mcp-1.0.0/03_PLANO_COMPATIBILIDADE_WINDOWS_LINUX_MACOS.md +167 -0
  19. package/docs/planning/mcp-1.0.0/04_PLANO_UI_CYBERPUNK_PIXEL_ART_E_PERFORMANCE.md +165 -0
  20. package/docs/planning/mcp-1.0.0/05_PROMPT_TASK_EXECUCAO_CORRECOES.md +151 -0
  21. package/docs/planning/mcp-1.0.0/06_CHECKLIST_REGRESSAO_PRE_RELEASE.md +159 -0
  22. package/docs/planning/mcp-1.0.0/07_RELATORIO_APLICACAO_CORRECOES_MENU_SKILL_MASTER.md +136 -0
  23. package/docs/planning/mcp-1.0.0/08_AUDITORIA_CRITICA_MENU_NOTA_E_DNA_REFINADO.md +184 -0
  24. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/00_PROMPT_TASK_MASTER_NOTA_10_10.md +103 -0
  25. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/01_PROMPT_TASK_FINE_HELIX_DNA.md +116 -0
  26. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/02_PROMPT_TASK_DNA_HERO_BOOT_AND_MOTION.md +109 -0
  27. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/03_PROMPT_TASK_MENU_UX_HELP_ERROR_COPY.md +99 -0
  28. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/04_PROMPT_TASK_EVIDENCE_RENDERER_1_0_0.md +97 -0
  29. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/05_PROMPT_TASK_CROSS_PLATFORM_UTF8_MOJIBAKE.md +99 -0
  30. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/06_PROMPT_TASK_VISUAL_REGRESSION_QA.md +105 -0
  31. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/07_PROMPT_TASK_PRE_RELEASE_SCORE_GATE_10_10.md +104 -0
  32. package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/README_ORDEM_EXECUCAO_NOTA_10_10.md +77 -0
  33. package/manifests/channels/beta.json +7 -7
  34. package/manifests/channels/stable.json +8 -8
  35. package/package.json +16 -14
  36. package/scripts/render-menu-evidence.mjs +115 -49
  37. package/scripts/verify-menu-actions.mjs +13 -8
  38. package/scripts/verify-menu-visual.mjs +90 -0
@@ -0,0 +1,167 @@
1
+ # MCP 1.0.0 - Plano de Compatibilidade Windows, Linux e macOS
2
+
3
+ ## Problemas Encontrados
4
+
5
+ O comando:
6
+
7
+ ```powershell
8
+ node bin\skill-master-menu.mjs --run check
9
+ ```
10
+
11
+ falhou em Windows com 2 testes.
12
+
13
+ ### Falha 1
14
+
15
+ Arquivo:
16
+
17
+ ```text
18
+ src/client-config.test.ts
19
+ ```
20
+
21
+ Erro:
22
+
23
+ ```text
24
+ expected /opt/skill-master/bin/skill-master.mjs
25
+ received \opt\skill-master\bin\skill-master.mjs
26
+ ```
27
+
28
+ ### Falha 2
29
+
30
+ Arquivo:
31
+
32
+ ```text
33
+ src/project-skills.test.ts
34
+ ```
35
+
36
+ Erro:
37
+
38
+ ```text
39
+ expected /tmp/app/.agents/skills
40
+ received C:\tmp\app\.agents\skills
41
+ ```
42
+
43
+ ## Causa Provavel
44
+
45
+ Os testes usam caminhos POSIX como fixtures, mas o codigo usa APIs de path do sistema operacional atual. No Windows, `path.join` e `path.resolve` convertem para backslash ou prefixam drive.
46
+
47
+ Isso cria falsos negativos em Windows.
48
+
49
+ ## Objetivo
50
+
51
+ Garantir que:
52
+
53
+ - testes passem em Windows, Linux e macOS
54
+ - configs MCP usem o formato correto para cada cliente
55
+ - caminhos de comando sejam robustos
56
+ - caminhos serializados em TOML/JSON nao quebrem por escape
57
+ - fixtures POSIX continuem testaveis no Windows quando necessario
58
+
59
+ ## Plano Tecnico
60
+
61
+ ### 1. Separar path operacional de path serializado
62
+
63
+ Criar helpers claros:
64
+
65
+ ```ts
66
+ toNativePath(value)
67
+ toPosixPath(value)
68
+ toJsonPath(value)
69
+ toTomlPath(value)
70
+ normalizePathForComparison(value)
71
+ ```
72
+
73
+ Uso:
74
+
75
+ - execucao local: native path
76
+ - JSON/TOML de clientes: string absoluta segura
77
+ - testes cross-platform: normalizacao explicita
78
+ - fixtures POSIX: `path.posix`
79
+
80
+ ### 2. Corrigir teste Claude Code
81
+
82
+ O teste que espera:
83
+
84
+ ```text
85
+ /opt/skill-master/bin/skill-master.mjs
86
+ ```
87
+
88
+ deve montar o server com path POSIX preservado ou comparar via normalizacao.
89
+
90
+ Opcoes:
91
+
92
+ 1. Usar `path.posix.join` dentro do fixture.
93
+ 2. Comparar `normalizeSlashes(args[7])`.
94
+ 3. Ajustar `buildClaudeCodeAddArgs` para nao converter path que ja e POSIX absoluto.
95
+
96
+ Recomendacao: preservar POSIX absoluto quando entrada comeca com `/`.
97
+
98
+ ### 3. Corrigir teste de roots do projeto
99
+
100
+ O teste que usa `/tmp/app` deve:
101
+
102
+ - rodar com `path.posix` se o objetivo e POSIX
103
+ - ou aceitar resultado nativo se o objetivo e plataforma atual
104
+
105
+ Recomendacao: dividir em dois testes:
106
+
107
+ - `normalizes native project skill roots`
108
+ - `preserves explicit POSIX roots when requested`
109
+
110
+ ### 4. Adicionar matriz de CI local
111
+
112
+ Scripts sugeridos:
113
+
114
+ ```json
115
+ {
116
+ "test:windows-paths": "vitest run src/client-config.test.ts src/project-skills.test.ts",
117
+ "test:menu": "node scripts/verify-menu-actions.mjs",
118
+ "test:activation-cli": "vitest run src/success-learning.test.ts src/menu-core.test.ts"
119
+ }
120
+ ```
121
+
122
+ ### 5. Validar instalacao global 1.0.0
123
+
124
+ Comandos:
125
+
126
+ ```powershell
127
+ npm install -g @fprad0/skill-master-mcp@1.0.0 --registry=https://registry.npmjs.org
128
+ where skill-master-menu
129
+ skill-master-menu --status
130
+ skill-master-doctor
131
+ ```
132
+
133
+ No Linux/macOS:
134
+
135
+ ```bash
136
+ npm install -g @fprad0/skill-master-mcp@1.0.0 --registry=https://registry.npmjs.org
137
+ command -v skill-master-menu
138
+ skill-master-menu --status
139
+ skill-master-doctor
140
+ ```
141
+
142
+ ## Melhorias no Doctor
143
+
144
+ Hoje o doctor retorna `partial` quando Claude Code esta ausente. Isso pode assustar quando o usuario nao usa Claude Code.
145
+
146
+ Melhoria:
147
+
148
+ - separar clientes obrigatorios de opcionais
149
+ - exibir `ready-with-optional-warnings`
150
+ - retornar exit code 0 quando apenas cliente opcional estiver ausente
151
+
152
+ Estados sugeridos:
153
+
154
+ ```text
155
+ ready
156
+ ready_with_optional_warnings
157
+ partial
158
+ blocked
159
+ ```
160
+
161
+ ## Definition of Done
162
+
163
+ - `npm run check` passa no Windows
164
+ - testes continuam passando em Linux/macOS
165
+ - doctor distingue cliente opcional ausente de falha real
166
+ - registro Codex, Claude Desktop, Gemini e Antigravity permanece com node absoluto
167
+ - nenhum teste usa expectativa POSIX acidental em Windows
@@ -0,0 +1,165 @@
1
+ # MCP 1.0.0 - Plano UI Cyberpunk Pixel Art e Performance
2
+
3
+ ## Estado Atual
4
+
5
+ O menu renderiza frames estilo cyberpunk no modo `--run`, com:
6
+
7
+ - moldura textual forte
8
+ - bloco de status visual
9
+ - resultado OK/ERROR em frame dedicado
10
+ - linguagem coerente com `skill_master`
11
+
12
+ O visual ja esta melhor que um CLI comum, mas ainda pode ficar mais proximo do DNA pixel art desejado.
13
+
14
+ ## Problemas e Oportunidades
15
+
16
+ ### 1. Acoes interativas parecem executaveis em automacao
17
+
18
+ No `--help`, acoes como `promptRecommendation`, `markLearnedStudy`, `activateLearnedLocal` e `activateLearnedGlobal` aparecem como se fossem equivalentes a acoes diretas.
19
+
20
+ Melhoria: mostrar badges.
21
+
22
+ ```text
23
+ [SAFE]
24
+ [WRITES]
25
+ [CONFIRM]
26
+ [TTY]
27
+ [GLOBAL]
28
+ [DRAFT]
29
+ ```
30
+
31
+ ### 2. `approvalPackage` e classificado como read-only no verificador
32
+
33
+ Ele cria arquivo local. Deve ser tratado como `writes-local-safe`, nao `read-only`.
34
+
35
+ ### 3. `doctor` usa linguagem de falha para cliente opcional
36
+
37
+ Quando Claude Code esta ausente, o usuario recebe `Readiness global - partial`, mesmo com Codex, Claude Desktop, Gemini e Antigravity OK.
38
+
39
+ Melhoria visual:
40
+
41
+ ```text
42
+ READY / optional warning
43
+ ```
44
+
45
+ ### 4. Prompt router e ativacao aprendida precisam modo nao interativo
46
+
47
+ Quando chamados via `--run`, falham por TTY. A UI deve mostrar antes:
48
+
49
+ ```text
50
+ Esta acao requer TTY ou --manifest/--prompt.
51
+ ```
52
+
53
+ ### 5. Frames podem informar risco melhor
54
+
55
+ Para acoes globais, o frame deve ter sinal visual diferente:
56
+
57
+ - workspace: cyan
58
+ - global: amber
59
+ - destrutivo/rejeicao: rose
60
+ - diagnostico: white/gray
61
+
62
+ ## Melhorias Visuais Propostas
63
+
64
+ ### Cyberpunk Command Frame 2.0
65
+
66
+ Adicionar uma linha superior com chips:
67
+
68
+ ```text
69
+ [MCP 1.0.0] [GLOBAL] [CONFIRM] [TTY] [RISK:MED]
70
+ ```
71
+
72
+ ### Painel de Acao
73
+
74
+ Para cada item:
75
+
76
+ ```text
77
+ acao: activateLearnedGlobal
78
+ tipo: escreve em CODEX_HOME skills
79
+ entrada: draft manifest
80
+ saida: SKILL.md + skill-master-approval.json
81
+ risco: afeta todos os workspaces
82
+ modo seguro: --manifest <path> --yes
83
+ ```
84
+
85
+ ### Preview Antes de Executar
86
+
87
+ Antes de rodar mutacao:
88
+
89
+ ```text
90
+ Destino: C:\Users\CDT\.codex\skills\<skill>
91
+ Origem: manifest.json
92
+ Hash: sha256...
93
+ Registro: skill-master-approval.json
94
+ ```
95
+
96
+ ### Animacao sem Flicker
97
+
98
+ Manter:
99
+
100
+ - alternate screen
101
+ - cursor restore em `finally`
102
+ - redraw em origem fixa
103
+ - `clearToEnd`, nao clear total repetido
104
+
105
+ Adicionar:
106
+
107
+ - throttle padrao 180ms a 240ms
108
+ - reduzir `getMenuStatus` a cada frame; cachear por 1 segundo
109
+ - recalcular catalogo apenas quando acao terminar ou usuario pedir refresh
110
+
111
+ ## Performance
112
+
113
+ ### Problema Potencial
114
+
115
+ `renderCyberMenu` chama `getMenuStatus(rootDir)` a cada frame. Esse status le arquivos, conta manifests e checa readiness. Em terminais lentos ou repos grandes, isso pode gerar travamentos.
116
+
117
+ ### Plano
118
+
119
+ 1. Criar `createMenuStatusCache({ ttlMs: 1000 })`.
120
+ 2. Atualizar cache ao entrar no menu.
121
+ 3. Reusar cache em frames.
122
+ 4. Invalidar cache apos acao executada.
123
+ 5. Mostrar indicador `status cached` quando estiver renderizando sem recarregar.
124
+
125
+ ### Testes
126
+
127
+ - medir tempo medio de 100 renders
128
+ - testar terminal pequeno `80x24`
129
+ - testar terminal grande `160x50`
130
+ - testar `TERM=dumb`
131
+ - testar `SKILL_MASTER_NO_VISUAL=1`
132
+
133
+ ## Layout
134
+
135
+ ### Regras
136
+
137
+ - texto nunca deve ultrapassar largura do frame
138
+ - labels longos devem truncar com `...`
139
+ - a lista de acoes deve preservar selecao visivel
140
+ - detalhe deve mostrar comando real e risco
141
+ - modo compact deve priorizar acao selecionada, risco e resultado esperado
142
+
143
+ ### Smoke Visual
144
+
145
+ Criar script:
146
+
147
+ ```text
148
+ scripts/render-menu-smoke.mjs
149
+ ```
150
+
151
+ Saidas:
152
+
153
+ - `MCP 1.0.0/menu-frame-120x32.txt`
154
+ - `MCP 1.0.0/menu-frame-80x24.txt`
155
+ - `MCP 1.0.0/menu-running-action.txt`
156
+ - `MCP 1.0.0/menu-confirm-global.txt`
157
+
158
+ ## Definition of Done
159
+
160
+ - `--run` continua sem escape raw em ambiente nao TTY
161
+ - menu interativo nao deixa cursor oculto apos erro
162
+ - acoes globais ficam visualmente diferenciadas
163
+ - acoes TTY-only ficam marcadas
164
+ - cache reduz leituras por frame
165
+ - screenshots/text frames documentados em `MCP 1.0.0`
@@ -0,0 +1,151 @@
1
+ # MCP 1.0.0 - Prompt Task de Execucao das Correcoes
2
+
3
+ ## Objetivo
4
+
5
+ Corrigir o `skill-master-menu` da versao `1.0.0` para que todas as acoes criticas funcionem em modo interativo e nao interativo, com foco especial em ativacao de skill aprendida no workspace e global.
6
+
7
+ ## Contexto
8
+
9
+ Auditoria real em Windows confirmou:
10
+
11
+ - `npm run verify:menu` passa
12
+ - `node bin\skill-master-menu.mjs --run build` passa
13
+ - `node bin\skill-master-menu.mjs --run check` falha por 2 testes de path cross-platform
14
+ - `node bin\skill-master-menu.mjs --run activate-learned-local --yes` falha
15
+ - `node bin\skill-master-menu.mjs --run activate-learned-global --yes` falha
16
+ - o core `activateSuccessSkillDraft` funciona
17
+ - o CLI direto `skill-master-success-skills --activate <manifest> --target <path> --yes` funciona
18
+
19
+ ## Escopo
20
+
21
+ Alterar com cuidado:
22
+
23
+ - `bin/skill-master-menu.mjs`
24
+ - `bin/lib/menu-core.mjs`
25
+ - `bin/skill-master-success-skills.mjs`
26
+ - `src/success-learning.test.ts`
27
+ - `src/menu-core.test.ts`
28
+ - `src/client-config.test.ts`
29
+ - `src/project-skills.test.ts`
30
+ - docs/help quando necessario
31
+
32
+ ## Tarefa 1 - Corrigir Ativacao Local/Global via Menu
33
+
34
+ Adicionar suporte a:
35
+
36
+ ```powershell
37
+ skill-master-menu --run activate-learned-local --manifest <manifest.json> --yes
38
+ skill-master-menu --run activate-learned-global --manifest <manifest.json> --yes
39
+ ```
40
+
41
+ Adicionar fallback seguro:
42
+
43
+ ```powershell
44
+ skill-master-menu --run activate-learned-local --yes
45
+ ```
46
+
47
+ Regras:
48
+
49
+ - 0 drafts prontos: erro claro
50
+ - 1 draft pronto: ativa
51
+ - 2+ drafts prontos: erro pedindo `--manifest`
52
+ - global exige `--yes`
53
+ - sem TTY nunca deve chamar `--activate-interactive`
54
+
55
+ ## Tarefa 2 - Melhorar `skill-master-success-skills`
56
+
57
+ Adicionar:
58
+
59
+ ```powershell
60
+ skill-master-success-skills --activate-ready --target local|global --yes
61
+ ```
62
+
63
+ Comportamento:
64
+
65
+ - usa `SKILL_MASTER_SUCCESS_LEARNING_DIR`
66
+ - filtra apenas `ready-for-human-approval`
67
+ - imprime lista quando ambigua
68
+ - cria `SKILL.md`
69
+ - cria `skill-master-approval.json`
70
+ - atualiza manifest para `activated`
71
+
72
+ ## Tarefa 3 - Prompt Router Nao Interativo
73
+
74
+ Adicionar:
75
+
76
+ ```powershell
77
+ skill-master-menu --run prompt-router --prompt "..."
78
+ ```
79
+
80
+ Deve chamar:
81
+
82
+ ```powershell
83
+ skill-master-activation --route-prompt "..."
84
+ ```
85
+
86
+ Sem `--prompt`, em nao TTY deve falhar com:
87
+
88
+ ```text
89
+ This action requires a TTY or --prompt "..."
90
+ ```
91
+
92
+ ## Tarefa 4 - Corrigir Testes Windows
93
+
94
+ Corrigir:
95
+
96
+ - `src/client-config.test.ts`
97
+ - `src/project-skills.test.ts`
98
+
99
+ Nao mascarar bug real. Separar:
100
+
101
+ - path nativo
102
+ - path POSIX fixture
103
+ - serializacao JSON/TOML
104
+ - comparacao normalizada
105
+
106
+ ## Tarefa 5 - UI e UX
107
+
108
+ Adicionar metadados de acao:
109
+
110
+ ```ts
111
+ mode: 'read-only' | 'writes-local' | 'writes-global' | 'interactive' | 'dev-only'
112
+ risk: 'low' | 'medium' | 'high'
113
+ requiresTty: boolean
114
+ requiresManifest?: boolean
115
+ ```
116
+
117
+ Renderizar badges no menu e no help:
118
+
119
+ ```text
120
+ [SAFE] [TTY] [GLOBAL] [CONFIRM]
121
+ ```
122
+
123
+ ## Validacao Obrigatoria
124
+
125
+ Rodar:
126
+
127
+ ```powershell
128
+ npm run build
129
+ npm test
130
+ npm run verify:menu
131
+ node bin\skill-master-menu.mjs --status
132
+ node bin\skill-master-menu.mjs --run public-npm
133
+ node bin\skill-master-menu.mjs --run activation-status
134
+ node bin\skill-master-menu.mjs --run notifications
135
+ ```
136
+
137
+ Criar teste temporario:
138
+
139
+ 1. gerar draft com `prepareSuccessSkillDraft`
140
+ 2. ativar via menu local com `--manifest --yes`
141
+ 3. ativar via menu global com `--manifest --yes`
142
+ 4. validar arquivos gravados
143
+
144
+ ## Definition of Done
145
+
146
+ - `npm run check` passa no Windows
147
+ - ativacao local/global via menu passa em nao TTY
148
+ - menu interativo continua funcionando
149
+ - `--help` mostra opcoes novas
150
+ - docs de `MCP 1.0.0` atualizados com resultado da correcao
151
+ - nenhuma publicacao npm e feita sem autorizacao explicita
@@ -0,0 +1,159 @@
1
+ # MCP 1.0.0 - Checklist de Regressao Pre-Release
2
+
3
+ Use este checklist antes de publicar a proxima versao depois das correcoes.
4
+
5
+ ## Ambiente
6
+
7
+ - [ ] Windows testado
8
+ - [ ] Linux testado
9
+ - [ ] macOS testado
10
+ - [ ] Node 18 testado
11
+ - [ ] Node 20 testado
12
+ - [ ] Node 22+ testado
13
+ - [ ] npm registry publico acessivel
14
+ - [ ] sem tokens, senhas ou OTPs em logs/arquivos
15
+
16
+ ## Build e Testes
17
+
18
+ ```powershell
19
+ npm install
20
+ npm run build
21
+ npm test
22
+ npm run verify:menu
23
+ npm run check:manifest
24
+ npm pack --dry-run
25
+ ```
26
+
27
+ - [ ] build passou
28
+ - [ ] testes passaram
29
+ - [ ] verify menu passou
30
+ - [ ] manifestos passaram
31
+ - [ ] pack dry-run passou
32
+
33
+ ## Menu
34
+
35
+ ```powershell
36
+ skill-master-menu --help
37
+ skill-master-menu --status
38
+ skill-master-menu --run public-npm
39
+ skill-master-menu --run activation-status
40
+ skill-master-menu --run notifications
41
+ skill-master-menu --run study-skills
42
+ skill-master-menu --run notion-summary
43
+ ```
44
+
45
+ - [ ] help exibe todas as acoes
46
+ - [ ] status correto
47
+ - [ ] npm publico retorna latest
48
+ - [ ] activation status correto
49
+ - [ ] notifications nao falha com 0 drafts
50
+ - [ ] study skills lista candidatos
51
+ - [ ] notion summary nao escreve em Notion
52
+
53
+ ## Acoes Protegidas
54
+
55
+ Sem `--yes`, devem bloquear:
56
+
57
+ ```powershell
58
+ skill-master-menu --run update-global
59
+ skill-master-menu --run install-global-skills
60
+ skill-master-menu --run install-project-skills
61
+ skill-master-menu --run bootstrap-global
62
+ skill-master-menu --run register-clients
63
+ skill-master-menu --run reject-skill
64
+ ```
65
+
66
+ - [ ] todas bloqueiam sem TTY
67
+ - [ ] erro explica como continuar
68
+
69
+ ## Skill Aprendida Local
70
+
71
+ Preparar draft temporario e testar:
72
+
73
+ ```powershell
74
+ skill-master-menu --run activate-learned-local --manifest <manifest.json> --yes
75
+ ```
76
+
77
+ Validar:
78
+
79
+ - [ ] cria `.codex/skills/<skill>/SKILL.md`
80
+ - [ ] cria `.codex/skills/<skill>/skill-master-approval.json`
81
+ - [ ] atualiza manifest para `activated`
82
+ - [ ] rejeita skill nao pronta
83
+ - [ ] rejeita hash divergente
84
+ - [ ] rejeita duplicidade sem `--overwrite`
85
+
86
+ ## Skill Aprendida Global
87
+
88
+ Usar `CODEX_HOME` temporario:
89
+
90
+ ```powershell
91
+ $env:CODEX_HOME = "$env:TEMP\skill-master-global-test"
92
+ skill-master-menu --run activate-learned-global --manifest <manifest.json> --yes
93
+ ```
94
+
95
+ Validar:
96
+
97
+ - [ ] cria `%CODEX_HOME%\skills\<skill>\SKILL.md`
98
+ - [ ] cria `skill-master-approval.json`
99
+ - [ ] nao escreve no global real durante teste
100
+ - [ ] exige `--yes`
101
+ - [ ] mensagem de risco global aparece
102
+
103
+ ## UI Cyberpunk
104
+
105
+ - [ ] menu interativo abre
106
+ - [ ] intro aparece
107
+ - [ ] setas navegam
108
+ - [ ] Enter executa acao segura
109
+ - [ ] confirmacao aparece em acao global
110
+ - [ ] Esc ou q sai
111
+ - [ ] cursor volta ao normal
112
+ - [ ] terminal nao fica em alternate screen
113
+ - [ ] `TERM=dumb` nao imprime escape cru
114
+ - [ ] `SKILL_MASTER_NO_VISUAL=1` desativa visual
115
+
116
+ ## Performance
117
+
118
+ - [ ] menu nao trava ao navegar
119
+ - [ ] status cache reduz custo por frame
120
+ - [ ] render 80x24 nao sobrepoe texto
121
+ - [ ] render 120x32 fica legivel
122
+ - [ ] acoes longas mostram estado de execucao
123
+
124
+ ## Instalacao Global
125
+
126
+ ```powershell
127
+ npm install -g @fprad0/skill-master-mcp@<versao> --registry=https://registry.npmjs.org
128
+ where skill-master-menu
129
+ where skill-master-mcp
130
+ skill-master-doctor
131
+ ```
132
+
133
+ - [ ] binarios existem
134
+ - [ ] doctor passa ou mostra apenas warnings opcionais
135
+ - [ ] Codex config robusta
136
+ - [ ] Claude Desktop config robusta
137
+ - [ ] Gemini config robusta
138
+ - [ ] Antigravity config robusta
139
+
140
+ ## Publicacao
141
+
142
+ Antes de publicar:
143
+
144
+ - [ ] usuario autorizou explicitamente
145
+ - [ ] versao incrementada
146
+ - [ ] changelog atualizado
147
+ - [ ] `npm pack --dry-run` revisado
148
+ - [ ] pacote nao contem segredo
149
+ - [ ] comandos globais preservados em `npm view <pkg>@<versao> bin --json`
150
+
151
+ Depois de publicar:
152
+
153
+ ```powershell
154
+ npm view @fprad0/skill-master-mcp version --registry=https://registry.npmjs.org
155
+ npm view @fprad0/skill-master-mcp dist-tags --json --registry=https://registry.npmjs.org
156
+ ```
157
+
158
+ - [ ] latest aponta para nova versao
159
+ - [ ] instalacao global em maquina limpa passa