@fprad0/skill-master-mcp 0.0.12 → 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.
- package/CHANGELOG.md +100 -88
- package/README.md +472 -472
- package/VERSION.md +9 -9
- package/bin/lib/bootstrap-global-core.mjs +34 -0
- package/bin/lib/client-config.mjs +287 -285
- package/bin/lib/doctor-core.mjs +202 -0
- package/bin/lib/menu-core.mjs +1792 -1514
- package/bin/lib/operation-result.mjs +59 -0
- package/bin/lib/register-clients-core.mjs +247 -0
- package/bin/lib/skill-installation.mjs +215 -215
- package/bin/lib/update-cli-core.mjs +117 -0
- package/bin/skill-master-activation.mjs +165 -163
- package/bin/skill-master-bootstrap-global.mjs +61 -49
- package/bin/skill-master-configure-private-registry.mjs +3 -3
- package/bin/skill-master-doctor.mjs +239 -228
- package/bin/skill-master-eval-activation.mjs +32 -32
- package/bin/skill-master-install-global-skills.mjs +59 -59
- package/bin/skill-master-install-project-skills.mjs +97 -97
- package/bin/skill-master-menu.mjs +489 -378
- package/bin/skill-master-register-clients.mjs +232 -153
- package/bin/skill-master-success-skills.mjs +357 -307
- package/bin/skill-master-update.mjs +121 -72
- package/bin/skill-master.mjs +3 -3
- package/dist/activation.d.ts.map +1 -1
- package/dist/activation.js +12 -0
- package/dist/activation.js.map +1 -1
- package/dist/prompt-router.d.ts.map +1 -1
- package/dist/prompt-router.js +19 -0
- package/dist/prompt-router.js.map +1 -1
- package/dist/recommender.d.ts.map +1 -1
- package/dist/recommender.js +4 -1
- package/dist/recommender.js.map +1 -1
- package/docs/architecture/APRENDIZADO_DE_IMPLEMENTACOES_BEM_SUCEDIDAS.md +125 -125
- package/docs/architecture/ARQUITETURA_AUTO_UPDATE.md +9 -9
- package/docs/architecture/PLANO_MASTER_ACIONAMENTO_AUTOMATICO_E_APRENDIZADO.md +341 -341
- package/docs/architecture/REDE_SEGURA_DE_SKILLS.md +148 -148
- package/docs/operations/GUIA_MULTI_COMPUTADOR.md +262 -262
- package/docs/operations/GUIA_NPM_PRIVADO.md +294 -294
- package/docs/operations/GUIA_NPM_PUBLICO.md +147 -147
- package/docs/operations/MENU_VISUAL_EVIDENCE_2026-06-28.md +66 -66
- package/docs/operations/assets/menu-frame-compact.html +36 -33
- package/docs/operations/assets/menu-frame-dna-hero.html +87 -0
- package/docs/operations/assets/menu-frame-fine-helix.html +89 -0
- package/docs/operations/assets/menu-frame-large.html +44 -41
- package/docs/operations/assets/menu-frame-running.html +41 -38
- package/docs/operations/assets/menu-frame-score-10-contact-sheet.html +184 -0
- package/docs/operations/cross-platform-auth-transfer/ANALISE_COMPATIBILIDADE_MCP_2026-06-28.md +140 -140
- package/docs/operations/cross-platform-auth-transfer/README_TRANSFERENCIA.md +85 -85
- package/docs/operations/reborn-menu-cyberpunk-transfer/ANALISE_MENU_REBORN_CYBERPUNK_2026-06-28.md +174 -174
- package/docs/operations/reborn-menu-cyberpunk-transfer/HANDOFF_IMPLEMENTACAO_REBORN_CYBERPUNK_2026-06-28.md +119 -119
- package/docs/operations/reborn-menu-cyberpunk-transfer/ORDEM_DE_EXECUCAO_MENU_REBORN_CYBERPUNK.md +134 -134
- package/docs/operations/reborn-menu-cyberpunk-transfer/README_TRANSFERENCIA.md +84 -84
- package/docs/operations/reborn-menu-cyberpunk-transfer/README_TRANSFERENCIA_REBORN_PACKAGE.md +56 -56
- package/docs/operations/token-economy-transfer/ANALISE_AVANCADA_ECONOMIA_TOKENS_2026-06-30.md +141 -0
- package/docs/operations/token-economy-transfer/PLANO_DEV_SENIOR_MASTER_TOKEN_ECONOMY_2026-06-30.md +171 -0
- package/docs/operations/token-economy-transfer/README_TRANSFERENCIA_TOKEN_ECONOMY.md +31 -0
- package/docs/planning/MENU_RUNTIME_CORRECTION_PLAN_2026-06-30.md +551 -0
- package/docs/planning/V0_0_9_APROVACAO_CRITICA_MENSAGENS_DE_VENDA.md +85 -85
- package/docs/planning/V0_0_9_FONTES_E_CRITERIOS_DE_AUTORIDADE.md +139 -139
- package/docs/planning/V0_0_9_MATRIZ_SKILLS_MULTIDISCIPLINARES.md +105 -105
- package/docs/planning/V0_0_9_POLITICA_MORAL_CATOLICA_PARA_IA.md +181 -181
- package/docs/planning/V0_0_9_PROMPTS_EXECUCAO.md +59 -59
- package/docs/planning/V0_0_9_ROADMAP_DISCERNIMENTO_E_CONHECIMENTO_AMPLO.md +181 -181
- package/docs/planning/mcp-1.0.0/00_RESUMO_EXECUTIVO_AUDITORIA_MENU.md +118 -0
- package/docs/planning/mcp-1.0.0/01_MATRIZ_TESTES_MENU_E_RESULTADOS.md +250 -0
- package/docs/planning/mcp-1.0.0/02_PLANO_CORRECAO_ATIVAR_SKILL_APRENDIDA.md +200 -0
- package/docs/planning/mcp-1.0.0/03_PLANO_COMPATIBILIDADE_WINDOWS_LINUX_MACOS.md +167 -0
- package/docs/planning/mcp-1.0.0/04_PLANO_UI_CYBERPUNK_PIXEL_ART_E_PERFORMANCE.md +165 -0
- package/docs/planning/mcp-1.0.0/05_PROMPT_TASK_EXECUCAO_CORRECOES.md +151 -0
- package/docs/planning/mcp-1.0.0/06_CHECKLIST_REGRESSAO_PRE_RELEASE.md +159 -0
- package/docs/planning/mcp-1.0.0/07_RELATORIO_APLICACAO_CORRECOES_MENU_SKILL_MASTER.md +136 -0
- package/docs/planning/mcp-1.0.0/08_AUDITORIA_CRITICA_MENU_NOTA_E_DNA_REFINADO.md +184 -0
- package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/00_PROMPT_TASK_MASTER_NOTA_10_10.md +103 -0
- package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/01_PROMPT_TASK_FINE_HELIX_DNA.md +116 -0
- package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/02_PROMPT_TASK_DNA_HERO_BOOT_AND_MOTION.md +109 -0
- package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/03_PROMPT_TASK_MENU_UX_HELP_ERROR_COPY.md +99 -0
- package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/04_PROMPT_TASK_EVIDENCE_RENDERER_1_0_0.md +97 -0
- package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/05_PROMPT_TASK_CROSS_PLATFORM_UTF8_MOJIBAKE.md +99 -0
- package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/06_PROMPT_TASK_VISUAL_REGRESSION_QA.md +105 -0
- package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/07_PROMPT_TASK_PRE_RELEASE_SCORE_GATE_10_10.md +104 -0
- package/docs/planning/mcp-1.0.0/prompt-tasks-nota-10-10/README_ORDEM_EXECUCAO_NOTA_10_10.md +77 -0
- package/docs/prompt-tasks/PROMPT_TASK_001_BOOTSTRAP_SKILL_MASTER_MCP.md +6 -6
- package/docs/prompt-tasks/PROMPT_TASK_002_AUTO_UPDATE_LAUNCHER.md +6 -6
- package/docs/prompt-tasks/PROMPT_TASK_003_REMOTE_MANIFEST_AND_RELEASES.md +6 -6
- package/docs/prompt-tasks/PROMPT_TASK_004_MULTI_USER_DISTRIBUTION.md +6 -6
- package/docs/prompt-tasks/PROMPT_TASK_005_SECURITY_AND_QUALITY_GATE.md +6 -6
- package/docs/prompt-tasks/PROMPT_TASK_006_MASTER_ACIONAMENTO_APRENDIZADO.md +83 -83
- package/docs/prompt-tasks/PROMPT_TASK_007_PERSONA_ORQUESTRADORA.md +88 -88
- package/docs/prompt-tasks/PROMPT_TASK_008_PROMPT_ROUTER_MODOS_ATIVACAO.md +156 -156
- package/docs/prompt-tasks/PROMPT_TASK_009_PIPELINE_APRENDIZADO_SUCESSO.md +105 -105
- package/docs/prompt-tasks/PROMPT_TASK_010_EVALS_GOVERNANCA_ATIVACAO.md +119 -119
- package/docs/prompt-tasks/PROMPT_TASK_011_MENU_NOTIFICACOES_NOTION.md +120 -120
- package/docs/prompt-tasks/PROMPT_TASK_012_MENU_CYBERPUNK_PIXEL_FRAME.md +123 -123
- package/docs/prompt-tasks/PROMPT_TASK_013_MENU_FLUID_DNA_ANIMATION.md +114 -114
- package/docs/prompt-tasks/PROMPT_TASK_014_MENU_FUNCTIONAL_PARITY_QA.md +157 -157
- package/docs/prompt-tasks/PROMPT_TASK_015_TRANSFER_RELEASE_HANDOFF.md +127 -127
- package/docs/prompt-tasks/PROMPT_TASK_016_CROSS_PLATFORM_MCP_AUTH_REGISTRATION.md +107 -107
- package/docs/prompt-tasks/PROMPT_TASK_018_NPM_PUBLISH_2FA_SETUP.md +80 -80
- package/docs/prompt-tasks/PROMPT_TASK_019_TOKEN_ECONOMY_GLOBAL_SKILLS.md +56 -0
- package/docs/prompt-tasks/PROMPT_TASK_MASTER_EXECUTOR.md +6 -6
- package/docs/skill-candidates/v0.0.10/cli-creator/LICENSE.txt +201 -201
- package/docs/skill-candidates/v0.0.10/cli-creator/SKILL.md +160 -160
- package/docs/skill-candidates/v0.0.10/cli-creator/agents/openai.yaml +4 -4
- package/docs/skill-candidates/v0.0.10/cli-creator/references/agent-cli-patterns.md +154 -154
- package/docs/skill-candidates/v0.0.10/developer-workstation-ops/SKILL.md +32 -32
- package/docs/skill-candidates/v0.0.10/figma/LICENSE.txt +1 -1
- package/docs/skill-candidates/v0.0.10/figma/SKILL.md +42 -42
- package/docs/skill-candidates/v0.0.10/figma/agents/openai.yaml +14 -14
- package/docs/skill-candidates/v0.0.10/figma/assets/figma-small.svg +3 -3
- package/docs/skill-candidates/v0.0.10/figma/assets/icon.svg +28 -28
- package/docs/skill-candidates/v0.0.10/figma/references/figma-mcp-config.md +35 -35
- package/docs/skill-candidates/v0.0.10/figma/references/figma-tools-and-prompts.md +34 -34
- package/docs/skill-candidates/v0.0.10/figma-code-connect-components/LICENSE.TXT +1 -1
- package/docs/skill-candidates/v0.0.10/figma-code-connect-components/SKILL.md +349 -349
- package/docs/skill-candidates/v0.0.10/figma-code-connect-components/agents/openai.yaml +14 -14
- package/docs/skill-candidates/v0.0.10/figma-code-connect-components/assets/figma-small.svg +3 -3
- package/docs/skill-candidates/v0.0.10/figma-code-connect-components/assets/icon.svg +28 -28
- package/docs/skill-candidates/v0.0.10/figma-code-connect-components/references/mapping-checklist.md +7 -7
- package/docs/skill-candidates/v0.0.10/figma-code-connect-components/scripts/normalize_node_id.py +25 -25
- package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/LICENSE.TXT +1 -1
- package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/SKILL.md +537 -537
- package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/agents/openai.yaml +14 -14
- package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/assets/figma-small.svg +3 -3
- package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/assets/icon.svg +28 -28
- package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/references/rule-template.md +15 -15
- package/docs/skill-candidates/v0.0.10/figma-create-design-system-rules/scripts/check_agents_md.sh +9 -9
- package/docs/skill-candidates/v0.0.10/figma-generate-design/LICENSE.TXT +1 -1
- package/docs/skill-candidates/v0.0.10/figma-generate-design/SKILL.md +341 -341
- package/docs/skill-candidates/v0.0.10/figma-generate-design/agents/openai.yaml +14 -14
- package/docs/skill-candidates/v0.0.10/figma-generate-design/assets/figma-small.svg +3 -3
- package/docs/skill-candidates/v0.0.10/figma-generate-design/assets/icon.svg +28 -28
- package/docs/skill-candidates/v0.0.10/figma-generate-design/maintainers.yml +1 -1
- package/docs/skill-candidates/v0.0.10/figma-generate-library/LICENSE.TXT +1 -1
- package/docs/skill-candidates/v0.0.10/figma-generate-library/SKILL.md +314 -314
- package/docs/skill-candidates/v0.0.10/figma-generate-library/agents/openai.yaml +14 -14
- package/docs/skill-candidates/v0.0.10/figma-generate-library/assets/figma-small.svg +3 -3
- package/docs/skill-candidates/v0.0.10/figma-generate-library/assets/icon.svg +28 -28
- package/docs/skill-candidates/v0.0.10/figma-generate-library/maintainers.yml +3 -3
- package/docs/skill-candidates/v0.0.10/figma-generate-library/references/code-connect-setup.md +260 -260
- package/docs/skill-candidates/v0.0.10/figma-generate-library/references/component-creation.md +1014 -1014
- package/docs/skill-candidates/v0.0.10/figma-generate-library/references/discovery-phase.md +518 -518
- package/docs/skill-candidates/v0.0.10/figma-generate-library/references/documentation-creation.md +834 -834
- package/docs/skill-candidates/v0.0.10/figma-generate-library/references/error-recovery.md +540 -540
- package/docs/skill-candidates/v0.0.10/figma-generate-library/references/naming-conventions.md +527 -527
- package/docs/skill-candidates/v0.0.10/figma-generate-library/references/token-creation.md +962 -962
- package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/bindVariablesToComponent.js +110 -110
- package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/cleanupOrphans.js +127 -127
- package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/createComponentWithVariants.js +148 -148
- package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/createDocumentationPage.js +139 -139
- package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/createSemanticTokens.js +108 -108
- package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/createVariableCollection.js +49 -49
- package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/inspectFileStructure.js +121 -121
- package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/rehydrateState.js +92 -92
- package/docs/skill-candidates/v0.0.10/figma-generate-library/scripts/validateCreation.js +83 -83
- package/docs/skill-candidates/v0.0.10/figma-implement-design/LICENSE.txt +1 -1
- package/docs/skill-candidates/v0.0.10/figma-implement-design/SKILL.md +258 -258
- package/docs/skill-candidates/v0.0.10/figma-implement-design/agents/openai.yaml +14 -14
- package/docs/skill-candidates/v0.0.10/figma-implement-design/assets/figma-small.svg +3 -3
- package/docs/skill-candidates/v0.0.10/figma-implement-design/assets/icon.svg +28 -28
- package/docs/skill-candidates/v0.0.10/figma-use/LICENSE.TXT +1 -1
- package/docs/skill-candidates/v0.0.10/figma-use/SKILL.md +233 -233
- package/docs/skill-candidates/v0.0.10/figma-use/agents/openai.yaml +14 -14
- package/docs/skill-candidates/v0.0.10/figma-use/assets/figma-small.svg +3 -3
- package/docs/skill-candidates/v0.0.10/figma-use/assets/icon.svg +28 -28
- package/docs/skill-candidates/v0.0.10/figma-use/maintainers.yml +1 -1
- package/docs/skill-candidates/v0.0.10/figma-use/references/api-reference.md +301 -301
- package/docs/skill-candidates/v0.0.10/figma-use/references/common-patterns.md +512 -512
- package/docs/skill-candidates/v0.0.10/figma-use/references/component-patterns.md +488 -488
- package/docs/skill-candidates/v0.0.10/figma-use/references/effect-style-patterns.md +123 -123
- package/docs/skill-candidates/v0.0.10/figma-use/references/gotchas.md +599 -599
- package/docs/skill-candidates/v0.0.10/figma-use/references/maintainers.yml +12 -12
- package/docs/skill-candidates/v0.0.10/figma-use/references/plugin-api-patterns.md +513 -513
- package/docs/skill-candidates/v0.0.10/figma-use/references/plugin-api-standalone.d.ts +11293 -11293
- package/docs/skill-candidates/v0.0.10/figma-use/references/plugin-api-standalone.index.md +441 -441
- package/docs/skill-candidates/v0.0.10/figma-use/references/text-style-patterns.md +203 -203
- package/docs/skill-candidates/v0.0.10/figma-use/references/validation-and-recovery.md +109 -109
- package/docs/skill-candidates/v0.0.10/figma-use/references/variable-patterns.md +354 -354
- package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/maintainers.yml +9 -9
- package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-components--creating.md +17 -17
- package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-components--using.md +17 -17
- package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-components.md +50 -50
- package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-effect-styles.md +52 -52
- package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-text-styles.md +90 -90
- package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-variables--creating.md +13 -13
- package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-variables--using.md +13 -13
- package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds-variables.md +64 -64
- package/docs/skill-candidates/v0.0.10/figma-use/references/working-with-design-systems/wwds.md +41 -41
- package/docs/skill-candidates/v0.0.10/frontend-design/LICENSE.txt +177 -177
- package/docs/skill-candidates/v0.0.10/frontend-design/SKILL.md +55 -55
- package/docs/skill-candidates/v0.0.10/frontend-ui-ux-systems/SKILL.md +32 -32
- package/docs/skill-candidates/v0.0.10/github/SKILL.md +74 -74
- package/docs/skill-candidates/v0.0.10/github/agents/openai.yaml +6 -6
- package/docs/skill-candidates/v0.0.10/github/assets/github-small.svg +3 -3
- package/docs/skill-candidates/v0.0.10/image-graphic-design-rendering/SKILL.md +28 -28
- package/docs/skill-candidates/v0.0.10/language-quality-pt-en-fr-it-ru/SKILL.md +28 -28
- package/docs/skill-candidates/v0.0.10/math-physics-reasoning/SKILL.md +28 -28
- package/docs/skill-candidates/v0.0.10/mcp-builder/LICENSE.txt +201 -201
- package/docs/skill-candidates/v0.0.10/mcp-builder/SKILL.md +236 -236
- package/docs/skill-candidates/v0.0.10/mcp-builder/reference/evaluation.md +601 -601
- package/docs/skill-candidates/v0.0.10/mcp-builder/reference/mcp_best_practices.md +249 -249
- package/docs/skill-candidates/v0.0.10/mcp-builder/reference/node_mcp_server.md +969 -969
- package/docs/skill-candidates/v0.0.10/mcp-builder/reference/python_mcp_server.md +718 -718
- package/docs/skill-candidates/v0.0.10/mcp-builder/scripts/connections.py +151 -151
- package/docs/skill-candidates/v0.0.10/mcp-builder/scripts/evaluation.py +373 -373
- package/docs/skill-candidates/v0.0.10/mcp-builder/scripts/example_evaluation.xml +22 -22
- package/docs/skill-candidates/v0.0.10/mcp-builder/scripts/requirements.txt +2 -2
- package/docs/skill-candidates/v0.0.10/mcp-client-readiness/SKILL.md +31 -31
- package/docs/skill-candidates/v0.0.10/openai-docs/LICENSE.txt +201 -201
- package/docs/skill-candidates/v0.0.10/openai-docs/SKILL.md +161 -161
- package/docs/skill-candidates/v0.0.10/openai-docs/agents/openai.yaml +14 -14
- package/docs/skill-candidates/v0.0.10/openai-docs/assets/openai-small.svg +3 -3
- package/docs/skill-candidates/v0.0.10/openai-docs/references/latest-model.md +37 -37
- package/docs/skill-candidates/v0.0.10/openai-docs/references/prompting-guide.md +244 -244
- package/docs/skill-candidates/v0.0.10/openai-docs/references/upgrade-guide.md +181 -181
- package/docs/skill-candidates/v0.0.10/openai-docs/scripts/fetch-codex-manual.mjs +598 -598
- package/docs/skill-candidates/v0.0.10/openai-docs/scripts/resolve-latest-model-info.js +147 -147
- package/docs/skill-candidates/v0.0.10/playwright/NOTICE.txt +14 -14
- package/docs/skill-candidates/v0.0.10/playwright/SKILL.md +147 -147
- package/docs/skill-candidates/v0.0.10/playwright/agents/openai.yaml +6 -6
- package/docs/skill-candidates/v0.0.10/playwright/assets/playwright-small.svg +3 -3
- package/docs/skill-candidates/v0.0.10/playwright/references/cli.md +116 -116
- package/docs/skill-candidates/v0.0.10/playwright/references/workflows.md +95 -95
- package/docs/skill-candidates/v0.0.10/playwright/scripts/playwright_cli.sh +25 -25
- package/docs/skill-candidates/v0.0.10/polyglot-backend-engineering/SKILL.md +32 -32
- package/docs/skill-candidates/v0.0.10/screenshot/LICENSE.txt +201 -201
- package/docs/skill-candidates/v0.0.10/screenshot/SKILL.md +267 -267
- package/docs/skill-candidates/v0.0.10/screenshot/agents/openai.yaml +6 -6
- package/docs/skill-candidates/v0.0.10/screenshot/assets/screenshot-small.svg +5 -5
- package/docs/skill-candidates/v0.0.10/screenshot/scripts/ensure_macos_permissions.sh +54 -54
- package/docs/skill-candidates/v0.0.10/screenshot/scripts/macos_display_info.swift +22 -22
- package/docs/skill-candidates/v0.0.10/screenshot/scripts/macos_permissions.swift +40 -40
- package/docs/skill-candidates/v0.0.10/screenshot/scripts/macos_window_info.swift +126 -126
- package/docs/skill-candidates/v0.0.10/screenshot/scripts/take_screenshot.ps1 +163 -163
- package/docs/skill-candidates/v0.0.10/screenshot/scripts/take_screenshot.py +585 -585
- package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/SKILL.md +62 -62
- package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/agents/openai.yaml +4 -4
- package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/references/activation-policy.md +77 -77
- package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/references/human-approval-policy.md +83 -83
- package/docs/skill-candidates/v0.0.10/skill-master-orchestrator/references/persona-dev-senior-master.md +46 -46
- package/docs/skill-candidates/v0.0.10/terminal-menu-operations/SKILL.md +30 -30
- package/docs/skill-candidates/v0.0.10/terminal-pixel-art-tui/SKILL.md +43 -43
- package/docs/skill-candidates/v0.0.10/webapp-testing/LICENSE.txt +201 -201
- package/docs/skill-candidates/v0.0.10/webapp-testing/SKILL.md +95 -95
- package/docs/skill-candidates/v0.0.10/webapp-testing/examples/console_logging.py +34 -34
- package/docs/skill-candidates/v0.0.10/webapp-testing/examples/element_discovery.py +39 -39
- package/docs/skill-candidates/v0.0.10/webapp-testing/examples/static_html_automation.py +32 -32
- package/docs/skill-candidates/v0.0.10/webapp-testing/scripts/with_server.py +105 -105
- package/docs/skill-candidates/v0.0.10/winui-app/LICENSE.txt +201 -201
- package/docs/skill-candidates/v0.0.10/winui-app/SKILL.md +94 -94
- package/docs/skill-candidates/v0.0.10/winui-app/agents/openai.yaml +5 -5
- package/docs/skill-candidates/v0.0.10/winui-app/config.yaml +50 -50
- package/docs/skill-candidates/v0.0.10/winui-app/references/_sections.md +96 -96
- package/docs/skill-candidates/v0.0.10/winui-app/references/accessibility-input-and-localization.md +51 -51
- package/docs/skill-candidates/v0.0.10/winui-app/references/build-run-and-launch-verification.md +72 -72
- package/docs/skill-candidates/v0.0.10/winui-app/references/community-toolkit-controls-and-helpers.md +57 -57
- package/docs/skill-candidates/v0.0.10/winui-app/references/controls-layout-and-adaptive-ui.md +84 -84
- package/docs/skill-candidates/v0.0.10/winui-app/references/foundation-environment-audit-and-remediation.md +82 -82
- package/docs/skill-candidates/v0.0.10/winui-app/references/foundation-setup-and-project-selection.md +67 -67
- package/docs/skill-candidates/v0.0.10/winui-app/references/foundation-template-first-recovery.md +62 -62
- package/docs/skill-candidates/v0.0.10/winui-app/references/foundation-winui-app-structure.md +62 -62
- package/docs/skill-candidates/v0.0.10/winui-app/references/motion-animations-and-polish.md +45 -45
- package/docs/skill-candidates/v0.0.10/winui-app/references/performance-diagnostics-and-responsiveness.md +46 -46
- package/docs/skill-candidates/v0.0.10/winui-app/references/sample-source-map.md +37 -37
- package/docs/skill-candidates/v0.0.10/winui-app/references/shell-navigation-and-windowing.md +67 -67
- package/docs/skill-candidates/v0.0.10/winui-app/references/styling-theming-materials-and-icons.md +71 -71
- package/docs/skill-candidates/v0.0.10/winui-app/references/testing-debugging-and-review-checklists.md +77 -77
- package/docs/skill-candidates/v0.0.10/winui-app/references/windows-app-sdk-lifecycle-notifications-and-deployment.md +52 -52
- package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/SKILL.md +398 -398
- package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/common-patterns.md +330 -330
- package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/complete-examples.md +871 -871
- package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/component-patterns.md +501 -501
- package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/data-fetching.md +766 -766
- package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/file-organization.md +501 -501
- package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/loading-and-error-states.md +500 -500
- package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/performance.md +405 -405
- package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/routing-guide.md +363 -363
- package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/styling-guide.md +427 -427
- package/docs/skill-candidates/v0.0.11/frontend-dev-guidelines/resources/typescript-standards.md +417 -417
- package/docs/skill-candidates/v0.0.11/git-version-control-ops/SKILL.md +34 -34
- package/docs/skill-candidates/v0.0.11/go-engineering/SKILL.md +34 -34
- package/docs/skill-candidates/v0.0.11/java-engineering/SKILL.md +34 -34
- package/docs/skill-candidates/v0.0.11/javascript-engineering/SKILL.md +34 -34
- package/docs/skill-candidates/v0.0.11/json-contract-design/SKILL.md +34 -34
- package/docs/skill-candidates/v0.0.11/multi-client-mcp-ops/SKILL.md +36 -36
- package/docs/skill-candidates/v0.0.11/nextjs/SKILL.md +745 -745
- package/docs/skill-candidates/v0.0.11/nextjs/agents/openai.yaml +3 -3
- package/docs/skill-candidates/v0.0.11/nextjs/references/app-router-files.md +94 -94
- package/docs/skill-candidates/v0.0.11/python-engineering/SKILL.md +34 -34
- package/docs/skill-candidates/v0.0.11/ruby-engineering/SKILL.md +34 -34
- package/docs/skill-candidates/v0.0.11/senior-fullstack/SKILL.md +209 -209
- package/docs/skill-candidates/v0.0.11/senior-fullstack/references/architecture_patterns.md +103 -103
- package/docs/skill-candidates/v0.0.11/senior-fullstack/references/development_workflows.md +103 -103
- package/docs/skill-candidates/v0.0.11/senior-fullstack/references/tech_stack_guide.md +103 -103
- package/docs/skill-candidates/v0.0.11/senior-fullstack/scripts/code_quality_analyzer.py +114 -114
- package/docs/skill-candidates/v0.0.11/senior-fullstack/scripts/fullstack_scaffolder.py +114 -114
- package/docs/skill-candidates/v0.0.11/senior-fullstack/scripts/project_scaffolder.py +114 -114
- package/docs/skill-candidates/v0.0.11/shadcn/SKILL.md +573 -573
- package/docs/skill-candidates/v0.0.11/shadcn/agents/openai.yaml +3 -3
- package/docs/skill-candidates/v0.0.11/sql-postgresql-engineering/SKILL.md +34 -34
- package/docs/skill-candidates/v0.0.11/terminal-shell-ops/SKILL.md +34 -34
- package/docs/skill-candidates/v0.0.11/typescript-expert/SKILL.md +429 -429
- package/docs/skill-candidates/v0.0.11/typescript-expert/references/tsconfig-strict.json +91 -91
- package/docs/skill-candidates/v0.0.11/typescript-expert/references/typescript-cheatsheet.md +383 -383
- package/docs/skill-candidates/v0.0.11/typescript-expert/references/utility-types.ts +335 -335
- package/docs/skill-candidates/v0.0.11/typescript-expert/scripts/ts_diagnostic.py +203 -203
- package/docs/skill-candidates/v0.0.11/ui-component-primitives/SKILL.md +34 -34
- package/docs/skill-candidates/v0.0.11/web-mobile-design-systems/SKILL.md +34 -34
- package/docs/skill-candidates/v0.0.11/windows-linux-platform-ops/SKILL.md +34 -34
- package/docs/skill-candidates/v0.0.12/context-compression-handoff/SKILL.md +47 -0
- package/docs/skill-candidates/v0.0.12/csharp-senior-master-engineering/SKILL.md +32 -32
- package/docs/skill-candidates/v0.0.12/css-senior-master-engineering/SKILL.md +32 -32
- package/docs/skill-candidates/v0.0.12/go-senior-master-engineering/SKILL.md +32 -32
- package/docs/skill-candidates/v0.0.12/html-senior-master-engineering/SKILL.md +32 -32
- package/docs/skill-candidates/v0.0.12/javascript-senior-master-engineering/SKILL.md +32 -32
- package/docs/skill-candidates/v0.0.12/json-senior-master-engineering/SKILL.md +32 -32
- package/docs/skill-candidates/v0.0.12/prompt-budget-gate/SKILL.md +46 -0
- package/docs/skill-candidates/v0.0.12/python-senior-master-engineering/SKILL.md +32 -32
- package/docs/skill-candidates/v0.0.12/react-senior-master-engineering/SKILL.md +32 -32
- package/docs/skill-candidates/v0.0.12/ruby-senior-master-engineering/SKILL.md +32 -32
- package/docs/skill-candidates/v0.0.12/senior-master-code-optimizer/SKILL.md +48 -48
- package/docs/skill-candidates/v0.0.12/sql-senior-master-engineering/SKILL.md +31 -31
- package/docs/skill-candidates/v0.0.12/token-economy-orchestrator/SKILL.md +38 -0
- package/docs/skill-candidates/v0.0.12/typescript-senior-master-engineering/SKILL.md +35 -35
- package/docs/skill-candidates/v0.0.9/ai-ethics-human-dignity/SKILL.md +32 -32
- package/docs/skill-candidates/v0.0.9/broad-domain-router/SKILL.md +41 -41
- package/docs/skill-candidates/v0.0.9/catholic-moral-discernment/SKILL.md +31 -31
- package/docs/skill-candidates/v0.0.9/engineering-systems-master/SKILL.md +31 -31
- package/docs/skill-candidates/v0.0.9/language-quality-pt-en-fr/SKILL.md +28 -28
- package/docs/skill-candidates/v0.0.9/math-science-reasoning/SKILL.md +29 -29
- package/docs/skill-candidates/v0.0.9/philosophy-sociology-discernment/SKILL.md +28 -28
- package/docs/skill-candidates/v0.0.9/professional-boundary-triage/SKILL.md +40 -40
- package/docs/skill-candidates/v0.0.9/release-ethics-gate/SKILL.md +32 -32
- package/docs/skill-candidates/v0.0.9/source-authority-reviewer/SKILL.md +31 -31
- package/examples/client-configs/claude-code.commands.md +21 -21
- package/examples/client-configs/claude-code.project.mcp.json +18 -18
- package/examples/client-configs/claude-desktop.macos.json +18 -18
- package/examples/client-configs/claude-desktop.windows.json +20 -20
- package/examples/client-configs/codex.windows.toml +11 -11
- package/examples/client-configs/gemini-code-assist.intellij.mcp.json +18 -18
- package/examples/client-configs/gemini.linux.settings.json +21 -21
- package/examples/client-configs/gemini.windows.settings.json +23 -23
- package/examples/client-configs/generic-stdio.json +16 -16
- package/manifests/channels/beta.json +24 -24
- package/manifests/channels/stable.json +25 -25
- package/network/approved-skills.json +54 -54
- package/network/unapproved-skill-candidates.json +110 -110
- package/package.json +89 -86
- package/scripts/configure-private-registry.mjs +208 -208
- package/scripts/lib/private-registry.mjs +97 -97
- package/scripts/render-menu-evidence.mjs +196 -130
- package/scripts/verify-menu-actions.mjs +112 -107
- package/scripts/verify-menu-visual.mjs +90 -0
- package/sources.json +11 -11
|
@@ -0,0 +1,551 @@
|
|
|
1
|
+
# Menu Runtime Correction Plan - 2026-06-30
|
|
2
|
+
|
|
3
|
+
Status: planejamento detalhado
|
|
4
|
+
Escopo: `skill-master-menu`, `skill-master-bootstrap-global`, `skill-master-register-clients`, `skill-master-update`, `skill-master-doctor`
|
|
5
|
+
Meta: corrigir erros reais observados no menu em ambiente Windows e melhorar o comportamento operacional para notebooks novos e multiplos clientes MCP.
|
|
6
|
+
|
|
7
|
+
## Resumo executivo
|
|
8
|
+
|
|
9
|
+
Os erros reportados nao sao do mesmo tipo. Existem tres problemas principais:
|
|
10
|
+
|
|
11
|
+
1. `bootstrap-global` e `register-clients` tratam falha do Claude Code como erro fatal do fluxo inteiro, mesmo quando Codex, Claude Desktop, Gemini e Antigravity foram configurados com sucesso.
|
|
12
|
+
2. `skill-master-update` tenta atualizar o pacote global enquanto o proprio pacote esta em uso, o que causa `EBUSY` no Windows. Alem disso, o launcher atual usa `shell: true` e gera aviso de deprecacao.
|
|
13
|
+
3. `doctor` informa corretamente o problema do Claude Code, mas as recomendacoes ainda sao pouco contextuais e repetem comandos que ja falharam, sem classificar melhor o motivo da falha.
|
|
14
|
+
|
|
15
|
+
O plano abaixo separa correcao funcional, contrato operacional, UX de terminal e validacao para evitar regressao.
|
|
16
|
+
|
|
17
|
+
## Principios de decisao
|
|
18
|
+
|
|
19
|
+
- O menu deve ser confiavel para humanos: uma acao parcial nao pode parecer falha total quando a maior parte do trabalho funcionou.
|
|
20
|
+
- O MCP nao deve tentar atualizar a propria pasta global enquanto seu processo ainda esta rodando a partir dela.
|
|
21
|
+
- Claude Code deve ser tratado como cliente suportado, mas operacionalmente opcional quando os outros clientes foram aplicados com sucesso.
|
|
22
|
+
- Todo fluxo mutante precisa emitir diagnostico suficiente para uma pessoa entender se faltou PATH, CLI, permissao, arquivo bloqueado ou restart.
|
|
23
|
+
- A correcao deve manter `--run`, `--status`, `--help`, `doctor` e instalacao global via npm funcionando sem depender de TTY.
|
|
24
|
+
|
|
25
|
+
## Contrato operacional proposto
|
|
26
|
+
|
|
27
|
+
### Classes de resultado
|
|
28
|
+
|
|
29
|
+
| Classe | Exit code | Uso | Render do menu |
|
|
30
|
+
| --- | ---: | --- | --- |
|
|
31
|
+
| sucesso | `0` | tudo aplicado ou nada precisava mudar | `RESULT-OK` |
|
|
32
|
+
| aviso | `10` | acao principal aplicada, mas ha cliente opcional ou etapa secundaria pendente | `RESULT-WARN` |
|
|
33
|
+
| erro de usuario/ambiente | `20` | prerequisito ausente, pacote em uso, CLI indisponivel, auth ausente | `RESULT-ERROR` com proximo passo |
|
|
34
|
+
| erro fatal | `30` | falha de escrita, JSON irrecuperavel sem `--force`, comando obrigatorio falhou | `RESULT-ERROR` com bloqueio |
|
|
35
|
+
|
|
36
|
+
### Contrato de saida textual
|
|
37
|
+
|
|
38
|
+
Cada subcomando operacional deve imprimir um resumo previsivel:
|
|
39
|
+
|
|
40
|
+
```text
|
|
41
|
+
[skill_master] Summary
|
|
42
|
+
- Result: ok|warning|error
|
|
43
|
+
- Applied: N
|
|
44
|
+
- Warnings: N
|
|
45
|
+
- Failed: N
|
|
46
|
+
- Next: comando ou acao humana
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
O menu pode continuar lendo apenas exit code nesta versao. A saida padronizada prepara uma etapa futura com `--json` sem exigir refatoracao grande agora.
|
|
50
|
+
|
|
51
|
+
### Criterio para `warning`
|
|
52
|
+
|
|
53
|
+
Um fluxo retorna `10` quando:
|
|
54
|
+
|
|
55
|
+
- pelo menos uma acao principal foi aplicada com sucesso;
|
|
56
|
+
- a falha restante e recuperavel;
|
|
57
|
+
- a falha restante nao corrompe configuracao;
|
|
58
|
+
- a mensagem mostra o proximo passo exato.
|
|
59
|
+
|
|
60
|
+
Exemplo: Codex, Claude Desktop, Gemini e Antigravity foram registrados, mas Claude Code falhou por CLI ausente ou sem saida.
|
|
61
|
+
|
|
62
|
+
## Matriz de severidade
|
|
63
|
+
|
|
64
|
+
| Caso | Severidade | Resultado esperado |
|
|
65
|
+
| --- | --- | --- |
|
|
66
|
+
| Claude Code CLI ausente e demais clientes ok | aviso | `RESULT-WARN`, proximo passo manual |
|
|
67
|
+
| `claude mcp add` retorna sem saida e demais clientes ok | aviso | `RESULT-WARN`, diagnostico classificado |
|
|
68
|
+
| Codex config nao pode ser escrita | fatal | `RESULT-ERROR`, apontar arquivo |
|
|
69
|
+
| Claude Desktop JSON invalido sem `--force` | fatal | `RESULT-ERROR`, recomendar `--force` se seguro |
|
|
70
|
+
| `npm install -g` detecta pacote em uso | erro de ambiente | `RESULT-ERROR`, orientar update fora do menu ou agendamento |
|
|
71
|
+
| Doctor encontra somente Claude Code pendente | aviso em readiness | proxima acao especifica para Claude Code |
|
|
72
|
+
| Doctor encontra skills globais faltando | erro de ambiente | recomendar install-global-skills |
|
|
73
|
+
|
|
74
|
+
## Ordem tecnica recomendada
|
|
75
|
+
|
|
76
|
+
1. Criar helpers puros e testaveis para classificar resultados de clientes e updates.
|
|
77
|
+
2. Ajustar `register-clients` para produzir resultado por cliente.
|
|
78
|
+
3. Ajustar `bootstrap-global` para propagar aviso sem tratar como falha total.
|
|
79
|
+
4. Ajustar `menu-core` para renderizar `RESULT-WARN`.
|
|
80
|
+
5. Ajustar `update` para evitar `shell: true` e detectar execucao dentro do proprio pacote.
|
|
81
|
+
6. Ajustar `doctor` para recomendacoes contextuais.
|
|
82
|
+
7. Rodar testes focados e `npm run check`.
|
|
83
|
+
|
|
84
|
+
## Erro 1 - Bootstrap global falha por causa do Claude Code
|
|
85
|
+
|
|
86
|
+
### Sintoma observado
|
|
87
|
+
|
|
88
|
+
- `install-global-skills` conclui com sucesso.
|
|
89
|
+
- `register-clients` registra Codex, Claude Desktop, Gemini e Antigravity.
|
|
90
|
+
- Claude Code falha com:
|
|
91
|
+
`Claude Code registration failed (unknown): no output`
|
|
92
|
+
- O fluxo inteiro termina com `RESULT-ERROR`.
|
|
93
|
+
|
|
94
|
+
### Causa raiz provavel
|
|
95
|
+
|
|
96
|
+
- Arquivo principal: [bin/skill-master-register-clients.mjs](</home/dev/Área de trabalho/VSCODE/skill-master-mcp/bin/skill-master-register-clients.mjs>)
|
|
97
|
+
- O registrador usa `spawnSync(claudeCodeCommand, claudeCodeArgs)` e, se o status nao for `0`, seta `process.exitCode = 1`.
|
|
98
|
+
- O bootstrap chama o registrador com `--apply-all --force` e trata qualquer codigo diferente de `0` como falha total do bootstrap.
|
|
99
|
+
- Isso mistura:
|
|
100
|
+
- erro critico do fluxo inteiro;
|
|
101
|
+
- falha parcial de um cliente opcional;
|
|
102
|
+
- ausencia do CLI do Claude Code;
|
|
103
|
+
- falha de execucao sem diagnostico.
|
|
104
|
+
|
|
105
|
+
### Correcao planejada
|
|
106
|
+
|
|
107
|
+
1. Transformar `register-clients` em fluxo com resultado estruturado por cliente.
|
|
108
|
+
2. Diferenciar estados:
|
|
109
|
+
- `ok`
|
|
110
|
+
- `already-configured`
|
|
111
|
+
- `skipped-optional`
|
|
112
|
+
- `partial-warning`
|
|
113
|
+
- `fatal`
|
|
114
|
+
3. No modo `--apply-all`, nao retornar erro fatal se somente Claude Code falhar e os demais clientes forem aplicados com sucesso.
|
|
115
|
+
4. Retornar erro fatal somente quando:
|
|
116
|
+
- o servidor MCP nao puder ser resolvido;
|
|
117
|
+
- escrita de arquivo de cliente obrigatorio falhar;
|
|
118
|
+
- todos os clientes selecionados falharem.
|
|
119
|
+
|
|
120
|
+
### Melhoria de UX planejada
|
|
121
|
+
|
|
122
|
+
1. Mostrar no menu um resultado do tipo `RESULT-WARN` quando houver sucesso parcial.
|
|
123
|
+
2. Exibir resumo por cliente:
|
|
124
|
+
- `Codex: ok`
|
|
125
|
+
- `Claude Desktop: ok`
|
|
126
|
+
- `Claude Code: warn`
|
|
127
|
+
- `Gemini: ok`
|
|
128
|
+
- `Antigravity: ok`
|
|
129
|
+
3. Na volta ao menu, manter a operacao como concluida com aviso, nao como erro total.
|
|
130
|
+
|
|
131
|
+
### Validacao
|
|
132
|
+
|
|
133
|
+
- `skill-master-menu --run bootstrap-global --yes` deve terminar como sucesso parcial quando apenas Claude Code falhar.
|
|
134
|
+
- `skill-master-register-clients --apply-all --force` deve retornar `0` se ao menos os clientes nao opcionais forem aplicados corretamente.
|
|
135
|
+
- Testes novos devem cobrir:
|
|
136
|
+
- sucesso total;
|
|
137
|
+
- falha parcial no Claude Code;
|
|
138
|
+
- falha fatal de escrita de arquivo.
|
|
139
|
+
|
|
140
|
+
## Erro 2 - Registro do Claude Code falha com "unknown: no output"
|
|
141
|
+
|
|
142
|
+
### Sintoma observado
|
|
143
|
+
|
|
144
|
+
- O menu informa:
|
|
145
|
+
`Claude Code registration failed (unknown): no output`
|
|
146
|
+
- O `doctor` mostra:
|
|
147
|
+
`mode=list-failed command=nao encontrado em claude mcp list`
|
|
148
|
+
|
|
149
|
+
### Causa raiz provavel
|
|
150
|
+
|
|
151
|
+
- Arquivos principais:
|
|
152
|
+
- [bin/skill-master-register-clients.mjs](</home/dev/Área de trabalho/VSCODE/skill-master-mcp/bin/skill-master-register-clients.mjs>)
|
|
153
|
+
- [bin/skill-master-doctor.mjs](</home/dev/Área de trabalho/VSCODE/skill-master-mcp/bin/skill-master-doctor.mjs>)
|
|
154
|
+
- [bin/lib/client-config.mjs](</home/dev/Área de trabalho/VSCODE/skill-master-mcp/bin/lib/client-config.mjs>)
|
|
155
|
+
- O fluxo atual assume que `claude` esta acessivel pelo nome simples.
|
|
156
|
+
- No Windows, pode existir um destes cenarios:
|
|
157
|
+
- `claude` nao esta no PATH do processo;
|
|
158
|
+
- o executavel real e `claude.cmd`;
|
|
159
|
+
- o `claude mcp add` abre um processo com comportamento diferente e retorna sem stdout/stderr;
|
|
160
|
+
- `claude mcp list` falha sem diagnostico util.
|
|
161
|
+
|
|
162
|
+
### Correcao planejada
|
|
163
|
+
|
|
164
|
+
1. Criar resolucao robusta do comando do Claude Code:
|
|
165
|
+
- tentar `claude`
|
|
166
|
+
- tentar `claude.cmd` no Windows
|
|
167
|
+
- tentar caminho absoluto detectado por `where`
|
|
168
|
+
2. Capturar melhor o resultado do processo:
|
|
169
|
+
- `status`
|
|
170
|
+
- `signal`
|
|
171
|
+
- `error.code`
|
|
172
|
+
- `error.message`
|
|
173
|
+
- stdout
|
|
174
|
+
- stderr
|
|
175
|
+
3. Se o CLI existir, validar primeiro:
|
|
176
|
+
- `claude --version`
|
|
177
|
+
- `claude mcp list`
|
|
178
|
+
4. Se `claude mcp add` falhar, imprimir diagnostico classificado:
|
|
179
|
+
- `cli-missing`
|
|
180
|
+
- `cli-not-runnable`
|
|
181
|
+
- `mcp-subcommand-missing`
|
|
182
|
+
- `registration-failed`
|
|
183
|
+
5. Gerar comando manual recomendado com quoting correto para Windows.
|
|
184
|
+
|
|
185
|
+
### Melhoria de UX planejada
|
|
186
|
+
|
|
187
|
+
1. Alterar a mensagem do menu de:
|
|
188
|
+
`failed (unknown): no output`
|
|
189
|
+
para algo como:
|
|
190
|
+
`Claude Code: CLI encontrado, mas 'claude mcp add' falhou sem saida. Tente abrir o Claude Code e executar o comando manual abaixo.`
|
|
191
|
+
2. Exibir o comando manual pronto no painel de detalhes quando a acao selecionada for `register-clients`.
|
|
192
|
+
3. Adicionar uma acao de menu futura:
|
|
193
|
+
`Diagnosticar Claude Code`
|
|
194
|
+
|
|
195
|
+
### Validacao
|
|
196
|
+
|
|
197
|
+
- Teste unitario para resolucao de `claude.cmd` no Windows.
|
|
198
|
+
- Teste para classificacao de falha com `status`, `signal` e `error`.
|
|
199
|
+
- Smoke manual em Windows com:
|
|
200
|
+
- CLI ausente
|
|
201
|
+
- CLI presente
|
|
202
|
+
- `mcp list` sem `skill_master`
|
|
203
|
+
- `mcp add` bem-sucedido
|
|
204
|
+
|
|
205
|
+
## Erro 3 - Atualizacao global falha com `EBUSY`
|
|
206
|
+
|
|
207
|
+
### Sintoma observado
|
|
208
|
+
|
|
209
|
+
- `skill-master-update` roda:
|
|
210
|
+
`npm install -g @fprad0/skill-master-mcp@latest`
|
|
211
|
+
- No Windows, npm tenta renomear a pasta ativa do pacote.
|
|
212
|
+
- O processo falha com:
|
|
213
|
+
`EBUSY: resource busy or locked`
|
|
214
|
+
|
|
215
|
+
### Causa raiz provavel
|
|
216
|
+
|
|
217
|
+
- Arquivo principal: [bin/skill-master-update.mjs](</home/dev/Área de trabalho/VSCODE/skill-master-mcp/bin/skill-master-update.mjs>)
|
|
218
|
+
- O comando de update esta sendo executado a partir do proprio pacote global em uso.
|
|
219
|
+
- O pacote em execucao segura locks ou referencias em `node_modules/@fprad0/skill-master-mcp`.
|
|
220
|
+
- O update usa `shell: true` no Windows, gerando tambem `DEP0190`.
|
|
221
|
+
|
|
222
|
+
### Correcao planejada
|
|
223
|
+
|
|
224
|
+
1. Remover `shell: true` do fluxo de update.
|
|
225
|
+
2. Resolver o executavel npm de forma robusta:
|
|
226
|
+
- `npm.cmd` no Windows
|
|
227
|
+
- `npm` no Linux/macOS
|
|
228
|
+
- ou `process.execPath` + `npm-cli.js` quando necessario
|
|
229
|
+
3. Mudar a estrategia de auto-update:
|
|
230
|
+
- o menu nao deve tentar substituir o pacote enquanto ele ainda esta rodando do mesmo path;
|
|
231
|
+
- em vez disso, deve gerar um handoff seguro.
|
|
232
|
+
4. Implementar um destes caminhos:
|
|
233
|
+
- `A.` modo recomendado: imprimir comando e instruir a sair do menu antes de atualizar;
|
|
234
|
+
- `B.` modo melhor: spawn detached de um script temporario fora do diretorio do pacote, que espera o processo atual encerrar e so entao roda o npm install global.
|
|
235
|
+
|
|
236
|
+
### Melhoria de UX planejada
|
|
237
|
+
|
|
238
|
+
1. Trocar o texto atual de:
|
|
239
|
+
`Roda npm install -g fora do processo MCP stdio.`
|
|
240
|
+
para algo mais preciso:
|
|
241
|
+
`A atualizacao exige que o processo atual seja encerrado antes da troca do pacote.`
|
|
242
|
+
2. Se o update for disparado de dentro do menu:
|
|
243
|
+
- mostrar `RESULT-WARN`
|
|
244
|
+
- exibir comando pronto
|
|
245
|
+
- oferecer opcao futura de `agendar atualizacao ao sair`
|
|
246
|
+
3. Se ocorrer `EBUSY`, traduzir para mensagem humana:
|
|
247
|
+
`O pacote esta em uso neste momento. Feche o menu e rode o update fora desta execucao.`
|
|
248
|
+
|
|
249
|
+
### Validacao
|
|
250
|
+
|
|
251
|
+
- Sem `DEP0190` no Windows.
|
|
252
|
+
- Update nao deve mais tentar atualizar o pacote em uso sem aviso.
|
|
253
|
+
- Smoke manual:
|
|
254
|
+
- update disparado fora do menu
|
|
255
|
+
- update disparado no menu
|
|
256
|
+
- dry-run
|
|
257
|
+
|
|
258
|
+
## Erro 4 - Doctor recomenda comandos pouco contextuais
|
|
259
|
+
|
|
260
|
+
### Sintoma observado
|
|
261
|
+
|
|
262
|
+
- O `doctor` detecta corretamente que Claude Code nao esta pronto.
|
|
263
|
+
- Ainda assim recomenda:
|
|
264
|
+
- `skill-master-register-clients --apply-all --force`
|
|
265
|
+
- `skill-master-register-clients --apply-claude-code --claude-code-scope user`
|
|
266
|
+
- `skill-master-menu --run bootstrap-global --yes`
|
|
267
|
+
- Isso mistura remedios amplos com remedio especifico.
|
|
268
|
+
|
|
269
|
+
### Causa raiz provavel
|
|
270
|
+
|
|
271
|
+
- Arquivo principal: [bin/skill-master-doctor.mjs](</home/dev/Área de trabalho/VSCODE/skill-master-mcp/bin/skill-master-doctor.mjs>)
|
|
272
|
+
- As recomendacoes sao estaticas e nao derivam do tipo exato de falha.
|
|
273
|
+
|
|
274
|
+
### Correcao planejada
|
|
275
|
+
|
|
276
|
+
1. Tornar o `doctor` orientado por diagnostico:
|
|
277
|
+
- se somente Claude Code falhar, recomendar apenas comando do Claude Code
|
|
278
|
+
- se skills globais faltarem, recomendar `install-global-skills`
|
|
279
|
+
- se Codex estiver ausente, recomendar `register-clients --apply-codex`
|
|
280
|
+
2. Classificar `Readiness global` em:
|
|
281
|
+
- `ready`
|
|
282
|
+
- `partial`
|
|
283
|
+
- `blocked`
|
|
284
|
+
3. Mostrar motivo dominante.
|
|
285
|
+
|
|
286
|
+
### Melhoria de UX planejada
|
|
287
|
+
|
|
288
|
+
1. Exibir um bloco:
|
|
289
|
+
`Falha dominante: Claude Code nao registrado`
|
|
290
|
+
2. Mostrar uma unica proxima acao recomendada, seguida de acoes alternativas.
|
|
291
|
+
3. No menu, refletir isso no painel `DETAIL FOCUS`.
|
|
292
|
+
|
|
293
|
+
### Validacao
|
|
294
|
+
|
|
295
|
+
- `doctor` com apenas Claude Code faltando nao deve recomendar bootstrap completo como primeira opcao.
|
|
296
|
+
- Testes para matriz de recomendacoes por tipo de falha.
|
|
297
|
+
|
|
298
|
+
## Erro 5 - Resultado do menu nao diferencia erro fatal de warning parcial
|
|
299
|
+
|
|
300
|
+
### Sintoma observado
|
|
301
|
+
|
|
302
|
+
- Tanto no bootstrap quanto no registro de clientes, o menu exibe `RESULT-ERROR`.
|
|
303
|
+
- Isso passa a impressao de falha total, embora a maior parte da operacao tenha funcionado.
|
|
304
|
+
|
|
305
|
+
### Causa raiz provavel
|
|
306
|
+
|
|
307
|
+
- O menu trabalha hoje principalmente com `code === 0` ou `code !== 0`.
|
|
308
|
+
- Falta um contrato mais rico entre subcomandos e o renderer do menu.
|
|
309
|
+
|
|
310
|
+
### Correcao planejada
|
|
311
|
+
|
|
312
|
+
1. Definir um contrato de saida para subcomandos operacionais:
|
|
313
|
+
- `0`: sucesso
|
|
314
|
+
- `10`: sucesso parcial / warning
|
|
315
|
+
- `20+`: erro fatal
|
|
316
|
+
2. Ensinar o menu a renderizar:
|
|
317
|
+
- `RESULT-OK`
|
|
318
|
+
- `RESULT-WARN`
|
|
319
|
+
- `RESULT-ERROR`
|
|
320
|
+
3. Opcionalmente, permitir `--json` nos subcomandos para leitura estruturada pelo menu no futuro.
|
|
321
|
+
|
|
322
|
+
### Melhoria de UX planejada
|
|
323
|
+
|
|
324
|
+
1. Mostrar contagem:
|
|
325
|
+
`4 clientes ok | 1 cliente com aviso`
|
|
326
|
+
2. Mostrar um proximo passo exato no proprio resultado.
|
|
327
|
+
3. Manter a tecla de retorno ao menu, mas com resumo objetivo do que ainda falta.
|
|
328
|
+
|
|
329
|
+
### Validacao
|
|
330
|
+
|
|
331
|
+
- Bootstrap com Claude Code falhando deve renderizar `RESULT-WARN`.
|
|
332
|
+
- Update com `EBUSY` deve renderizar `RESULT-ERROR` com traducao humana.
|
|
333
|
+
|
|
334
|
+
## Plano de implementacao recomendado
|
|
335
|
+
|
|
336
|
+
### Fase 0 - Preparar testes e contratos
|
|
337
|
+
|
|
338
|
+
Objetivo: criar uma rede minima de seguranca antes de mexer em fluxo global.
|
|
339
|
+
|
|
340
|
+
Tarefas:
|
|
341
|
+
|
|
342
|
+
1. Criar helper de resultado operacional, preferencialmente em `bin/lib/operation-result.mjs`.
|
|
343
|
+
2. Modelar estados: `ok`, `warning`, `error`, `fatal`.
|
|
344
|
+
3. Criar testes unitarios para mapear estado em exit code e titulo de resultado.
|
|
345
|
+
4. Atualizar `formatResultMessage` para aceitar `0`, `10`, `20` e `30+`.
|
|
346
|
+
|
|
347
|
+
Aceite:
|
|
348
|
+
|
|
349
|
+
- `formatResultMessage(10)` renderiza `RESULT-WARN`.
|
|
350
|
+
- `formatResultMessage(0)` continua renderizando `RESULT-OK`.
|
|
351
|
+
- `formatResultMessage(1)` continua renderizando `RESULT-ERROR` para compatibilidade.
|
|
352
|
+
|
|
353
|
+
### Fase 1 - Corrigir `register-clients`
|
|
354
|
+
|
|
355
|
+
Objetivo: parar de transformar falha parcial do Claude Code em erro total.
|
|
356
|
+
|
|
357
|
+
Arquivos:
|
|
358
|
+
|
|
359
|
+
- [bin/skill-master-register-clients.mjs](</home/dev/Área de trabalho/VSCODE/skill-master-mcp/bin/skill-master-register-clients.mjs>)
|
|
360
|
+
- [bin/lib/client-config.mjs](</home/dev/Área de trabalho/VSCODE/skill-master-mcp/bin/lib/client-config.mjs>)
|
|
361
|
+
- [src/client-config.test.ts](</home/dev/Área de trabalho/VSCODE/skill-master-mcp/src/client-config.test.ts>)
|
|
362
|
+
|
|
363
|
+
Tarefas:
|
|
364
|
+
|
|
365
|
+
1. Criar `resolveClaudeCodeCommand()` com suporte a `claude`, `claude.cmd` e caminho absoluto encontrado por `where` no Windows.
|
|
366
|
+
2. Criar `classifyClaudeCodeResult()` para converter `status`, `signal`, `error`, stdout e stderr em diagnostico legivel.
|
|
367
|
+
3. Trocar `actions.push(string)` por `results.push({ client, status, message, next })`.
|
|
368
|
+
4. Quando somente Claude Code falhar em `--apply-all`, retornar `10`.
|
|
369
|
+
5. Quando o usuario chamar apenas `--apply-claude-code` e ele falhar, retornar `20`.
|
|
370
|
+
|
|
371
|
+
Aceite:
|
|
372
|
+
|
|
373
|
+
- `skill-master-register-clients --apply-all --force` termina em warning se apenas Claude Code falhar.
|
|
374
|
+
- `skill-master-register-clients --apply-claude-code` termina em erro se Claude Code falhar.
|
|
375
|
+
- A saida nunca mais deve dizer `failed (unknown): no output` sem contexto.
|
|
376
|
+
|
|
377
|
+
### Fase 2 - Corrigir `bootstrap-global`
|
|
378
|
+
|
|
379
|
+
Objetivo: refletir corretamente sucesso parcial do fluxo completo.
|
|
380
|
+
|
|
381
|
+
Arquivos:
|
|
382
|
+
|
|
383
|
+
- [bin/skill-master-bootstrap-global.mjs](</home/dev/Área de trabalho/VSCODE/skill-master-mcp/bin/skill-master-bootstrap-global.mjs>)
|
|
384
|
+
|
|
385
|
+
Tarefas:
|
|
386
|
+
|
|
387
|
+
1. Rodar `install-global-skills`.
|
|
388
|
+
2. Rodar `register-clients --apply-all --force`.
|
|
389
|
+
3. Se install falhar, retornar erro fatal.
|
|
390
|
+
4. Se register retornar `10`, imprimir `Global bootstrap complete with warnings` e retornar `10`.
|
|
391
|
+
5. Se register retornar `0`, imprimir `Global bootstrap complete` e retornar `0`.
|
|
392
|
+
|
|
393
|
+
Aceite:
|
|
394
|
+
|
|
395
|
+
- O caso reportado pelo usuario deve virar `RESULT-WARN`, nao `RESULT-ERROR`.
|
|
396
|
+
- O log deve mostrar claramente que skills globais foram instaladas e que apenas Claude Code ficou pendente.
|
|
397
|
+
|
|
398
|
+
### Fase 3 - Corrigir `skill-master-update`
|
|
399
|
+
|
|
400
|
+
Objetivo: acabar com `DEP0190` e tratar `EBUSY` como estado operacional previsivel.
|
|
401
|
+
|
|
402
|
+
Arquivos:
|
|
403
|
+
|
|
404
|
+
- [bin/skill-master-update.mjs](</home/dev/Área de trabalho/VSCODE/skill-master-mcp/bin/skill-master-update.mjs>)
|
|
405
|
+
- novo teste sugerido: `src/update-cli.test.ts`
|
|
406
|
+
|
|
407
|
+
Tarefas:
|
|
408
|
+
|
|
409
|
+
1. Criar `resolveNpmExecutable()`:
|
|
410
|
+
- Windows: preferir `npm.cmd`;
|
|
411
|
+
- Linux/macOS: `npm`;
|
|
412
|
+
- fallback: `process.execPath` + `npm-cli.js` quando detectavel.
|
|
413
|
+
2. Remover `shell: true`.
|
|
414
|
+
3. Detectar quando `process.argv[1]` esta dentro de `node_modules/@fprad0/skill-master-mcp`.
|
|
415
|
+
4. Se estiver rodando de dentro do pacote global e for Windows, nao executar update direto por padrao.
|
|
416
|
+
5. Imprimir comando seguro para rodar fora do menu:
|
|
417
|
+
`npm install -g @fprad0/skill-master-mcp@latest --registry=https://registry.npmjs.org`
|
|
418
|
+
6. Adicionar opcao futura ou imediata `--force-direct` para permitir comportamento antigo em ambiente controlado.
|
|
419
|
+
|
|
420
|
+
Aceite:
|
|
421
|
+
|
|
422
|
+
- `skill-master-update --dry-run` continua imprimindo o comando.
|
|
423
|
+
- Executar pelo menu no Windows nao tenta renomear o pacote em uso.
|
|
424
|
+
- Nao aparece mais `DEP0190`.
|
|
425
|
+
- Erro `EBUSY` recebe mensagem humana se ainda ocorrer em uso externo.
|
|
426
|
+
|
|
427
|
+
### Fase 4 - Corrigir `doctor`
|
|
428
|
+
|
|
429
|
+
Objetivo: transformar o doctor em orientador contextual.
|
|
430
|
+
|
|
431
|
+
Arquivos:
|
|
432
|
+
|
|
433
|
+
- [bin/skill-master-doctor.mjs](</home/dev/Área de trabalho/VSCODE/skill-master-mcp/bin/skill-master-doctor.mjs>)
|
|
434
|
+
|
|
435
|
+
Tarefas:
|
|
436
|
+
|
|
437
|
+
1. Criar `diagnoseReadiness(clients, skills, bins, packageState)`.
|
|
438
|
+
2. Criar `recommendedActionsForDiagnosis(diagnosis)`.
|
|
439
|
+
3. Quando apenas Claude Code falhar, recomendar primeiro:
|
|
440
|
+
`skill-master-register-clients --apply-claude-code --claude-code-scope user`
|
|
441
|
+
4. Quando o CLI do Claude Code nao for encontrado, recomendar:
|
|
442
|
+
instalar/abrir Claude Code ou pular se nao usar esse cliente.
|
|
443
|
+
5. Manter `--strict` retornando erro quando readiness nao for total.
|
|
444
|
+
|
|
445
|
+
Aceite:
|
|
446
|
+
|
|
447
|
+
- Doctor nao recomenda bootstrap completo como primeira acao quando apenas Claude Code falhou.
|
|
448
|
+
- Doctor mostra `Falha dominante`.
|
|
449
|
+
- Doctor diferencia `partial` de `blocked`.
|
|
450
|
+
|
|
451
|
+
### Fase 5 - Melhorar UX do menu
|
|
452
|
+
|
|
453
|
+
Objetivo: mostrar resultado correto e proximo passo dentro do menu.
|
|
454
|
+
|
|
455
|
+
Arquivos:
|
|
456
|
+
|
|
457
|
+
- [bin/lib/menu-core.mjs](</home/dev/Área de trabalho/VSCODE/skill-master-mcp/bin/lib/menu-core.mjs>)
|
|
458
|
+
- [bin/skill-master-menu.mjs](</home/dev/Área de trabalho/VSCODE/skill-master-mcp/bin/skill-master-menu.mjs>)
|
|
459
|
+
- [src/menu-core.test.ts](</home/dev/Área de trabalho/VSCODE/skill-master-mcp/src/menu-core.test.ts>)
|
|
460
|
+
|
|
461
|
+
Tarefas:
|
|
462
|
+
|
|
463
|
+
1. Renderizar `RESULT-WARN` com cor amber.
|
|
464
|
+
2. Mensagem:
|
|
465
|
+
`Comando concluido com avisos.`
|
|
466
|
+
3. Explicar:
|
|
467
|
+
`workflow liberado, mas existe uma acao recomendada`
|
|
468
|
+
4. Preservar comportamento atual para `RESULT-OK` e `RESULT-ERROR`.
|
|
469
|
+
5. No painel de detalhe de `updateGlobal`, informar que update dentro do menu exige handoff.
|
|
470
|
+
|
|
471
|
+
Aceite:
|
|
472
|
+
|
|
473
|
+
- `formatResultMessage(10)` passa no teste.
|
|
474
|
+
- O usuario nao confunde sucesso parcial com falha total.
|
|
475
|
+
|
|
476
|
+
## Matriz de tarefas por arquivo
|
|
477
|
+
|
|
478
|
+
| Arquivo | Mudanca | Teste minimo |
|
|
479
|
+
| --- | --- | --- |
|
|
480
|
+
| `bin/skill-master-register-clients.mjs` | status por cliente e warning parcial | mock de Claude Code falhando |
|
|
481
|
+
| `bin/lib/client-config.mjs` | resolver CLI do Claude Code e formatar comando | teste Windows `claude.cmd` |
|
|
482
|
+
| `bin/skill-master-bootstrap-global.mjs` | aceitar warning parcial | teste de spawn com code `10` |
|
|
483
|
+
| `bin/skill-master-update.mjs` | remover `shell: true`, detectar pacote em uso | `--dry-run`, resolver npm |
|
|
484
|
+
| `bin/skill-master-doctor.mjs` | diagnostico dominante e recomendacao contextual | doctor com apenas Claude Code pendente |
|
|
485
|
+
| `bin/lib/menu-core.mjs` | `RESULT-WARN` | `formatResultMessage(10)` |
|
|
486
|
+
| `scripts/verify-menu-actions.mjs` | confirmar que novas acoes continuam protegidas | `npm run verify:menu` |
|
|
487
|
+
|
|
488
|
+
## Plano de testes
|
|
489
|
+
|
|
490
|
+
### Testes unitarios
|
|
491
|
+
|
|
492
|
+
- `src/client-config.test.ts`
|
|
493
|
+
- `src/menu-core.test.ts`
|
|
494
|
+
- novo `src/register-clients.test.ts`
|
|
495
|
+
- novo `src/update-cli.test.ts`
|
|
496
|
+
- novo `src/doctor-diagnosis.test.ts`
|
|
497
|
+
|
|
498
|
+
### Testes de integracao locais
|
|
499
|
+
|
|
500
|
+
```bash
|
|
501
|
+
npm run check
|
|
502
|
+
node bin/skill-master-menu.mjs --run doctor
|
|
503
|
+
node bin/skill-master-register-clients.mjs --write-snippets --snippets-dir .tmp-client-snippets
|
|
504
|
+
node bin/skill-master-update.mjs --dry-run
|
|
505
|
+
node scripts/verify-menu-actions.mjs
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
### Smoke Windows recomendado
|
|
509
|
+
|
|
510
|
+
```powershell
|
|
511
|
+
skill-master-menu --run doctor
|
|
512
|
+
skill-master-register-clients --apply-all --force
|
|
513
|
+
skill-master-menu --run bootstrap-global --yes
|
|
514
|
+
skill-master-update --dry-run
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
Se Claude Code continuar falhando:
|
|
518
|
+
|
|
519
|
+
```powershell
|
|
520
|
+
claude --version
|
|
521
|
+
claude mcp list
|
|
522
|
+
skill-master-register-clients --apply-claude-code --claude-code-scope user
|
|
523
|
+
```
|
|
524
|
+
|
|
525
|
+
## Stop rules
|
|
526
|
+
|
|
527
|
+
- Nao publicar pacote npm sem autorizacao explicita.
|
|
528
|
+
- Nao apagar configs existentes de Codex, Claude, Gemini ou Antigravity.
|
|
529
|
+
- Nao sobrescrever JSON invalido sem backup.
|
|
530
|
+
- Nao executar update global destrutivo enquanto o pacote estiver em uso.
|
|
531
|
+
- Nao tratar Claude Code como pronto sem `claude mcp list` confirmando `skill_master`.
|
|
532
|
+
|
|
533
|
+
## Arquivos que devem ser alterados
|
|
534
|
+
|
|
535
|
+
- [bin/skill-master-register-clients.mjs](</home/dev/Área de trabalho/VSCODE/skill-master-mcp/bin/skill-master-register-clients.mjs>)
|
|
536
|
+
- [bin/skill-master-bootstrap-global.mjs](</home/dev/Área de trabalho/VSCODE/skill-master-mcp/bin/skill-master-bootstrap-global.mjs>)
|
|
537
|
+
- [bin/skill-master-update.mjs](</home/dev/Área de trabalho/VSCODE/skill-master-mcp/bin/skill-master-update.mjs>)
|
|
538
|
+
- [bin/skill-master-doctor.mjs](</home/dev/Área de trabalho/VSCODE/skill-master-mcp/bin/skill-master-doctor.mjs>)
|
|
539
|
+
- [bin/lib/menu-core.mjs](</home/dev/Área de trabalho/VSCODE/skill-master-mcp/bin/lib/menu-core.mjs>)
|
|
540
|
+
- [src/client-config.test.ts](</home/dev/Área de trabalho/VSCODE/skill-master-mcp/src/client-config.test.ts>)
|
|
541
|
+
- [src/menu-core.test.ts](</home/dev/Área de trabalho/VSCODE/skill-master-mcp/src/menu-core.test.ts>)
|
|
542
|
+
- novos testes para update/bootstrap/doctor
|
|
543
|
+
|
|
544
|
+
## Criterios de aceite
|
|
545
|
+
|
|
546
|
+
- `bootstrap-global` nao falha totalmente quando apenas Claude Code apresentar problema opcional.
|
|
547
|
+
- `register-clients` classifica corretamente erro, skip e warning.
|
|
548
|
+
- `update` nao gera `DEP0190` e nao falha por `EBUSY` sem mensagem humana e estrategia segura.
|
|
549
|
+
- `doctor` recomenda a proxima acao correta para o problema dominante.
|
|
550
|
+
- O menu diferencia `OK`, `WARN` e `ERROR`.
|
|
551
|
+
- `npm run check` passa.
|