@fprad0/skill-master-mcp 0.0.12 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +96 -90
- 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 +293 -293
- package/bin/lib/doctor-core.mjs +202 -0
- package/bin/lib/menu-core.mjs +1629 -1522
- 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 +163 -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 +406 -405
- package/bin/skill-master-register-clients.mjs +232 -153
- package/bin/skill-master-success-skills.mjs +307 -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 +75 -75
- package/docs/operations/assets/menu-frame-large.html +83 -83
- package/docs/operations/assets/menu-frame-running.html +79 -79
- 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/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 +26 -26
- package/manifests/channels/stable.json +27 -27
- package/network/approved-skills.json +54 -54
- package/network/unapproved-skill-candidates.json +110 -110
- package/package.json +87 -86
- package/scripts/configure-private-registry.mjs +208 -208
- package/scripts/lib/private-registry.mjs +97 -97
- package/scripts/render-menu-evidence.mjs +130 -130
- package/scripts/verify-menu-actions.mjs +117 -117
- package/sources.json +11 -11
|
@@ -1,147 +1,147 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
const fs = require("node:fs/promises");
|
|
4
|
-
const path = require("node:path");
|
|
5
|
-
|
|
6
|
-
const DEFAULT_URL =
|
|
7
|
-
"https://developers.openai.com/api/docs/guides/latest-model.md";
|
|
8
|
-
const DEFAULT_BASE_URL = "https://developers.openai.com";
|
|
9
|
-
|
|
10
|
-
function parseArgs(argv) {
|
|
11
|
-
const args = {
|
|
12
|
-
source: process.env.LATEST_MODEL_URL || DEFAULT_URL,
|
|
13
|
-
baseUrl: process.env.LATEST_MODEL_BASE_URL || DEFAULT_BASE_URL,
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
for (let i = 2; i < argv.length; i += 1) {
|
|
17
|
-
const arg = argv[i];
|
|
18
|
-
if (arg === "--source" || arg === "--url") {
|
|
19
|
-
args.source = argv[i + 1];
|
|
20
|
-
i += 1;
|
|
21
|
-
} else if (arg === "--base-url") {
|
|
22
|
-
args.baseUrl = argv[i + 1];
|
|
23
|
-
i += 1;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return args;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
async function readSource(source) {
|
|
31
|
-
if (source.startsWith("file://")) {
|
|
32
|
-
return fs.readFile(new URL(source), "utf8");
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
if (!/^https?:\/\//.test(source)) {
|
|
36
|
-
return fs.readFile(path.resolve(source), "utf8");
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const response = await fetch(source, {
|
|
40
|
-
headers: { accept: "text/markdown,text/plain,*/*" },
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
if (!response.ok) {
|
|
44
|
-
throw new Error(`failed to fetch ${source}: ${response.status}`);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return response.text();
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
function parseIndentedInfo(lines, startIndex) {
|
|
51
|
-
const info = {};
|
|
52
|
-
|
|
53
|
-
for (let i = startIndex + 1; i < lines.length; i += 1) {
|
|
54
|
-
const line = lines[i];
|
|
55
|
-
if (!line.trim()) {
|
|
56
|
-
continue;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
const match = line.match(/^ {2}([A-Za-z][A-Za-z0-9_-]*):\s*(.+?)\s*$/);
|
|
60
|
-
if (!match) {
|
|
61
|
-
break;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
info[match[1]] = match[2].replace(/^["']|["']$/g, "");
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return info;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
function parseFlatInfo(block) {
|
|
71
|
-
const info = {};
|
|
72
|
-
|
|
73
|
-
for (const line of block.split(/\r?\n/)) {
|
|
74
|
-
const match = line.match(/^\s*([A-Za-z][A-Za-z0-9_-]*):\s*(.+?)\s*$/);
|
|
75
|
-
if (match) {
|
|
76
|
-
info[match[1]] = match[2].replace(/^["']|["']$/g, "");
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
return info;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
function extractLatestModelInfo(markdown) {
|
|
84
|
-
const lines = markdown.split(/\r?\n/);
|
|
85
|
-
const latestModelInfoIndex = lines.findIndex((line) =>
|
|
86
|
-
/^latestModelInfo:\s*$/.test(line)
|
|
87
|
-
);
|
|
88
|
-
|
|
89
|
-
if (latestModelInfoIndex >= 0) {
|
|
90
|
-
return parseIndentedInfo(lines, latestModelInfoIndex);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
const commentMatch = markdown.match(
|
|
94
|
-
/<!--\s*latestModelInfo\s*\n([\s\S]*?)\n\s*-->/m
|
|
95
|
-
);
|
|
96
|
-
if (commentMatch) {
|
|
97
|
-
return parseFlatInfo(commentMatch[1]);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
return undefined;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
function modelToSkillSlug(model) {
|
|
104
|
-
return model.trim().replace(/\./g, "p");
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
function absoluteUrl(baseUrl, value) {
|
|
108
|
-
return new URL(value, baseUrl).toString();
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
function normalizeInfo(info, baseUrl) {
|
|
112
|
-
const model = info?.model?.trim();
|
|
113
|
-
const migrationGuide = info?.migrationGuide?.trim();
|
|
114
|
-
const promptingGuide = info?.promptingGuide?.trim();
|
|
115
|
-
|
|
116
|
-
if (!model || !migrationGuide || !promptingGuide) {
|
|
117
|
-
throw new Error(
|
|
118
|
-
"latestModelInfo must include model, migrationGuide, and promptingGuide"
|
|
119
|
-
);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
return {
|
|
123
|
-
model,
|
|
124
|
-
modelSlug: modelToSkillSlug(model),
|
|
125
|
-
migrationGuideUrl: absoluteUrl(baseUrl, migrationGuide),
|
|
126
|
-
promptingGuideUrl: absoluteUrl(baseUrl, promptingGuide),
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
async function main() {
|
|
131
|
-
const { source, baseUrl } = parseArgs(process.argv);
|
|
132
|
-
const markdown = await readSource(source);
|
|
133
|
-
const info = extractLatestModelInfo(markdown);
|
|
134
|
-
|
|
135
|
-
if (!info) {
|
|
136
|
-
throw new Error(`latestModelInfo block not found in ${source}`);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
process.stdout.write(
|
|
140
|
-
`${JSON.stringify(normalizeInfo(info, baseUrl), null, 2)}\n`
|
|
141
|
-
);
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
main().catch((error) => {
|
|
145
|
-
console.error(error.message);
|
|
146
|
-
process.exit(1);
|
|
147
|
-
});
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require("node:fs/promises");
|
|
4
|
+
const path = require("node:path");
|
|
5
|
+
|
|
6
|
+
const DEFAULT_URL =
|
|
7
|
+
"https://developers.openai.com/api/docs/guides/latest-model.md";
|
|
8
|
+
const DEFAULT_BASE_URL = "https://developers.openai.com";
|
|
9
|
+
|
|
10
|
+
function parseArgs(argv) {
|
|
11
|
+
const args = {
|
|
12
|
+
source: process.env.LATEST_MODEL_URL || DEFAULT_URL,
|
|
13
|
+
baseUrl: process.env.LATEST_MODEL_BASE_URL || DEFAULT_BASE_URL,
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
for (let i = 2; i < argv.length; i += 1) {
|
|
17
|
+
const arg = argv[i];
|
|
18
|
+
if (arg === "--source" || arg === "--url") {
|
|
19
|
+
args.source = argv[i + 1];
|
|
20
|
+
i += 1;
|
|
21
|
+
} else if (arg === "--base-url") {
|
|
22
|
+
args.baseUrl = argv[i + 1];
|
|
23
|
+
i += 1;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return args;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
async function readSource(source) {
|
|
31
|
+
if (source.startsWith("file://")) {
|
|
32
|
+
return fs.readFile(new URL(source), "utf8");
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (!/^https?:\/\//.test(source)) {
|
|
36
|
+
return fs.readFile(path.resolve(source), "utf8");
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const response = await fetch(source, {
|
|
40
|
+
headers: { accept: "text/markdown,text/plain,*/*" },
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
if (!response.ok) {
|
|
44
|
+
throw new Error(`failed to fetch ${source}: ${response.status}`);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return response.text();
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function parseIndentedInfo(lines, startIndex) {
|
|
51
|
+
const info = {};
|
|
52
|
+
|
|
53
|
+
for (let i = startIndex + 1; i < lines.length; i += 1) {
|
|
54
|
+
const line = lines[i];
|
|
55
|
+
if (!line.trim()) {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const match = line.match(/^ {2}([A-Za-z][A-Za-z0-9_-]*):\s*(.+?)\s*$/);
|
|
60
|
+
if (!match) {
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
info[match[1]] = match[2].replace(/^["']|["']$/g, "");
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return info;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function parseFlatInfo(block) {
|
|
71
|
+
const info = {};
|
|
72
|
+
|
|
73
|
+
for (const line of block.split(/\r?\n/)) {
|
|
74
|
+
const match = line.match(/^\s*([A-Za-z][A-Za-z0-9_-]*):\s*(.+?)\s*$/);
|
|
75
|
+
if (match) {
|
|
76
|
+
info[match[1]] = match[2].replace(/^["']|["']$/g, "");
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return info;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function extractLatestModelInfo(markdown) {
|
|
84
|
+
const lines = markdown.split(/\r?\n/);
|
|
85
|
+
const latestModelInfoIndex = lines.findIndex((line) =>
|
|
86
|
+
/^latestModelInfo:\s*$/.test(line)
|
|
87
|
+
);
|
|
88
|
+
|
|
89
|
+
if (latestModelInfoIndex >= 0) {
|
|
90
|
+
return parseIndentedInfo(lines, latestModelInfoIndex);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
const commentMatch = markdown.match(
|
|
94
|
+
/<!--\s*latestModelInfo\s*\n([\s\S]*?)\n\s*-->/m
|
|
95
|
+
);
|
|
96
|
+
if (commentMatch) {
|
|
97
|
+
return parseFlatInfo(commentMatch[1]);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function modelToSkillSlug(model) {
|
|
104
|
+
return model.trim().replace(/\./g, "p");
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function absoluteUrl(baseUrl, value) {
|
|
108
|
+
return new URL(value, baseUrl).toString();
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function normalizeInfo(info, baseUrl) {
|
|
112
|
+
const model = info?.model?.trim();
|
|
113
|
+
const migrationGuide = info?.migrationGuide?.trim();
|
|
114
|
+
const promptingGuide = info?.promptingGuide?.trim();
|
|
115
|
+
|
|
116
|
+
if (!model || !migrationGuide || !promptingGuide) {
|
|
117
|
+
throw new Error(
|
|
118
|
+
"latestModelInfo must include model, migrationGuide, and promptingGuide"
|
|
119
|
+
);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
return {
|
|
123
|
+
model,
|
|
124
|
+
modelSlug: modelToSkillSlug(model),
|
|
125
|
+
migrationGuideUrl: absoluteUrl(baseUrl, migrationGuide),
|
|
126
|
+
promptingGuideUrl: absoluteUrl(baseUrl, promptingGuide),
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
async function main() {
|
|
131
|
+
const { source, baseUrl } = parseArgs(process.argv);
|
|
132
|
+
const markdown = await readSource(source);
|
|
133
|
+
const info = extractLatestModelInfo(markdown);
|
|
134
|
+
|
|
135
|
+
if (!info) {
|
|
136
|
+
throw new Error(`latestModelInfo block not found in ${source}`);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
process.stdout.write(
|
|
140
|
+
`${JSON.stringify(normalizeInfo(info, baseUrl), null, 2)}\n`
|
|
141
|
+
);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
main().catch((error) => {
|
|
145
|
+
console.error(error.message);
|
|
146
|
+
process.exit(1);
|
|
147
|
+
});
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
This skill includes material derived from the Microsoft playwright-cli repository.
|
|
2
|
-
|
|
3
|
-
Source:
|
|
4
|
-
- Repository: microsoft/playwright-cli
|
|
5
|
-
- Path: skills/playwright-cli/SKILL.md
|
|
6
|
-
|
|
7
|
-
Copyright (c) Microsoft Corporation.
|
|
8
|
-
|
|
9
|
-
Licensed under the Apache License, Version 2.0.
|
|
10
|
-
See LICENSE.txt in this directory.
|
|
11
|
-
|
|
12
|
-
Modifications:
|
|
13
|
-
- Adapted for the Codex skill collection.
|
|
14
|
-
- Added a wrapper script and local reference guides.
|
|
1
|
+
This skill includes material derived from the Microsoft playwright-cli repository.
|
|
2
|
+
|
|
3
|
+
Source:
|
|
4
|
+
- Repository: microsoft/playwright-cli
|
|
5
|
+
- Path: skills/playwright-cli/SKILL.md
|
|
6
|
+
|
|
7
|
+
Copyright (c) Microsoft Corporation.
|
|
8
|
+
|
|
9
|
+
Licensed under the Apache License, Version 2.0.
|
|
10
|
+
See LICENSE.txt in this directory.
|
|
11
|
+
|
|
12
|
+
Modifications:
|
|
13
|
+
- Adapted for the Codex skill collection.
|
|
14
|
+
- Added a wrapper script and local reference guides.
|
|
@@ -1,147 +1,147 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: "playwright"
|
|
3
|
-
description: "Use when the task requires automating a real browser from the terminal (navigation, form filling, snapshots, screenshots, data extraction, UI-flow debugging) via `playwright-cli` or the bundled wrapper script."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
# Playwright CLI Skill
|
|
8
|
-
|
|
9
|
-
Drive a real browser from the terminal using `playwright-cli`. Prefer the bundled wrapper script so the CLI works even when it is not globally installed.
|
|
10
|
-
Treat this skill as CLI-first automation. Do not pivot to `@playwright/test` unless the user explicitly asks for test files.
|
|
11
|
-
|
|
12
|
-
## Prerequisite check (required)
|
|
13
|
-
|
|
14
|
-
Before proposing commands, check whether `npx` is available (the wrapper depends on it):
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
command -v npx >/dev/null 2>&1
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
If it is not available, pause and ask the user to install Node.js/npm (which provides `npx`). Provide these steps verbatim:
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
# Verify Node/npm are installed
|
|
24
|
-
node --version
|
|
25
|
-
npm --version
|
|
26
|
-
|
|
27
|
-
# If missing, install Node.js/npm, then:
|
|
28
|
-
npm install -g @playwright/cli@latest
|
|
29
|
-
playwright-cli --help
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
Once `npx` is present, proceed with the wrapper script. A global install of `playwright-cli` is optional.
|
|
33
|
-
|
|
34
|
-
## Skill path (set once)
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
|
|
38
|
-
export PWCLI="$CODEX_HOME/skills/playwright/scripts/playwright_cli.sh"
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
User-scoped skills install under `$CODEX_HOME/skills` (default: `~/.codex/skills`).
|
|
42
|
-
|
|
43
|
-
## Quick start
|
|
44
|
-
|
|
45
|
-
Use the wrapper script:
|
|
46
|
-
|
|
47
|
-
```bash
|
|
48
|
-
"$PWCLI" open https://playwright.dev --headed
|
|
49
|
-
"$PWCLI" snapshot
|
|
50
|
-
"$PWCLI" click e15
|
|
51
|
-
"$PWCLI" type "Playwright"
|
|
52
|
-
"$PWCLI" press Enter
|
|
53
|
-
"$PWCLI" screenshot
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
If the user prefers a global install, this is also valid:
|
|
57
|
-
|
|
58
|
-
```bash
|
|
59
|
-
npm install -g @playwright/cli@latest
|
|
60
|
-
playwright-cli --help
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
## Core workflow
|
|
64
|
-
|
|
65
|
-
1. Open the page.
|
|
66
|
-
2. Snapshot to get stable element refs.
|
|
67
|
-
3. Interact using refs from the latest snapshot.
|
|
68
|
-
4. Re-snapshot after navigation or significant DOM changes.
|
|
69
|
-
5. Capture artifacts (screenshot, pdf, traces) when useful.
|
|
70
|
-
|
|
71
|
-
Minimal loop:
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
"$PWCLI" open https://example.com
|
|
75
|
-
"$PWCLI" snapshot
|
|
76
|
-
"$PWCLI" click e3
|
|
77
|
-
"$PWCLI" snapshot
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
## When to snapshot again
|
|
81
|
-
|
|
82
|
-
Snapshot again after:
|
|
83
|
-
|
|
84
|
-
- navigation
|
|
85
|
-
- clicking elements that change the UI substantially
|
|
86
|
-
- opening/closing modals or menus
|
|
87
|
-
- tab switches
|
|
88
|
-
|
|
89
|
-
Refs can go stale. When a command fails due to a missing ref, snapshot again.
|
|
90
|
-
|
|
91
|
-
## Recommended patterns
|
|
92
|
-
|
|
93
|
-
### Form fill and submit
|
|
94
|
-
|
|
95
|
-
```bash
|
|
96
|
-
"$PWCLI" open https://example.com/form
|
|
97
|
-
"$PWCLI" snapshot
|
|
98
|
-
"$PWCLI" fill e1 "user@example.com"
|
|
99
|
-
"$PWCLI" fill e2 "password123"
|
|
100
|
-
"$PWCLI" click e3
|
|
101
|
-
"$PWCLI" snapshot
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
### Debug a UI flow with traces
|
|
105
|
-
|
|
106
|
-
```bash
|
|
107
|
-
"$PWCLI" open https://example.com --headed
|
|
108
|
-
"$PWCLI" tracing-start
|
|
109
|
-
# ...interactions...
|
|
110
|
-
"$PWCLI" tracing-stop
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
### Multi-tab work
|
|
114
|
-
|
|
115
|
-
```bash
|
|
116
|
-
"$PWCLI" tab-new https://example.com
|
|
117
|
-
"$PWCLI" tab-list
|
|
118
|
-
"$PWCLI" tab-select 0
|
|
119
|
-
"$PWCLI" snapshot
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
## Wrapper script
|
|
123
|
-
|
|
124
|
-
The wrapper script uses `npx --package @playwright/cli playwright-cli` so the CLI can run without a global install:
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
"$PWCLI" --help
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
Prefer the wrapper unless the repository already standardizes on a global install.
|
|
131
|
-
|
|
132
|
-
## References
|
|
133
|
-
|
|
134
|
-
Open only what you need:
|
|
135
|
-
|
|
136
|
-
- CLI command reference: `references/cli.md`
|
|
137
|
-
- Practical workflows and troubleshooting: `references/workflows.md`
|
|
138
|
-
|
|
139
|
-
## Guardrails
|
|
140
|
-
|
|
141
|
-
- Always snapshot before referencing element ids like `e12`.
|
|
142
|
-
- Re-snapshot when refs seem stale.
|
|
143
|
-
- Prefer explicit commands over `eval` and `run-code` unless needed.
|
|
144
|
-
- When you do not have a fresh snapshot, use placeholder refs like `eX` and say why; do not bypass refs with `run-code`.
|
|
145
|
-
- Use `--headed` when a visual check will help.
|
|
146
|
-
- When capturing artifacts in this repo, use `output/playwright/` and avoid introducing new top-level artifact folders.
|
|
147
|
-
- Default to CLI commands and workflows, not Playwright test specs.
|
|
1
|
+
---
|
|
2
|
+
name: "playwright"
|
|
3
|
+
description: "Use when the task requires automating a real browser from the terminal (navigation, form filling, snapshots, screenshots, data extraction, UI-flow debugging) via `playwright-cli` or the bundled wrapper script."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
# Playwright CLI Skill
|
|
8
|
+
|
|
9
|
+
Drive a real browser from the terminal using `playwright-cli`. Prefer the bundled wrapper script so the CLI works even when it is not globally installed.
|
|
10
|
+
Treat this skill as CLI-first automation. Do not pivot to `@playwright/test` unless the user explicitly asks for test files.
|
|
11
|
+
|
|
12
|
+
## Prerequisite check (required)
|
|
13
|
+
|
|
14
|
+
Before proposing commands, check whether `npx` is available (the wrapper depends on it):
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
command -v npx >/dev/null 2>&1
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
If it is not available, pause and ask the user to install Node.js/npm (which provides `npx`). Provide these steps verbatim:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
# Verify Node/npm are installed
|
|
24
|
+
node --version
|
|
25
|
+
npm --version
|
|
26
|
+
|
|
27
|
+
# If missing, install Node.js/npm, then:
|
|
28
|
+
npm install -g @playwright/cli@latest
|
|
29
|
+
playwright-cli --help
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Once `npx` is present, proceed with the wrapper script. A global install of `playwright-cli` is optional.
|
|
33
|
+
|
|
34
|
+
## Skill path (set once)
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
export CODEX_HOME="${CODEX_HOME:-$HOME/.codex}"
|
|
38
|
+
export PWCLI="$CODEX_HOME/skills/playwright/scripts/playwright_cli.sh"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
User-scoped skills install under `$CODEX_HOME/skills` (default: `~/.codex/skills`).
|
|
42
|
+
|
|
43
|
+
## Quick start
|
|
44
|
+
|
|
45
|
+
Use the wrapper script:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
"$PWCLI" open https://playwright.dev --headed
|
|
49
|
+
"$PWCLI" snapshot
|
|
50
|
+
"$PWCLI" click e15
|
|
51
|
+
"$PWCLI" type "Playwright"
|
|
52
|
+
"$PWCLI" press Enter
|
|
53
|
+
"$PWCLI" screenshot
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
If the user prefers a global install, this is also valid:
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
npm install -g @playwright/cli@latest
|
|
60
|
+
playwright-cli --help
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Core workflow
|
|
64
|
+
|
|
65
|
+
1. Open the page.
|
|
66
|
+
2. Snapshot to get stable element refs.
|
|
67
|
+
3. Interact using refs from the latest snapshot.
|
|
68
|
+
4. Re-snapshot after navigation or significant DOM changes.
|
|
69
|
+
5. Capture artifacts (screenshot, pdf, traces) when useful.
|
|
70
|
+
|
|
71
|
+
Minimal loop:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
"$PWCLI" open https://example.com
|
|
75
|
+
"$PWCLI" snapshot
|
|
76
|
+
"$PWCLI" click e3
|
|
77
|
+
"$PWCLI" snapshot
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
## When to snapshot again
|
|
81
|
+
|
|
82
|
+
Snapshot again after:
|
|
83
|
+
|
|
84
|
+
- navigation
|
|
85
|
+
- clicking elements that change the UI substantially
|
|
86
|
+
- opening/closing modals or menus
|
|
87
|
+
- tab switches
|
|
88
|
+
|
|
89
|
+
Refs can go stale. When a command fails due to a missing ref, snapshot again.
|
|
90
|
+
|
|
91
|
+
## Recommended patterns
|
|
92
|
+
|
|
93
|
+
### Form fill and submit
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
"$PWCLI" open https://example.com/form
|
|
97
|
+
"$PWCLI" snapshot
|
|
98
|
+
"$PWCLI" fill e1 "user@example.com"
|
|
99
|
+
"$PWCLI" fill e2 "password123"
|
|
100
|
+
"$PWCLI" click e3
|
|
101
|
+
"$PWCLI" snapshot
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Debug a UI flow with traces
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
"$PWCLI" open https://example.com --headed
|
|
108
|
+
"$PWCLI" tracing-start
|
|
109
|
+
# ...interactions...
|
|
110
|
+
"$PWCLI" tracing-stop
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Multi-tab work
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
"$PWCLI" tab-new https://example.com
|
|
117
|
+
"$PWCLI" tab-list
|
|
118
|
+
"$PWCLI" tab-select 0
|
|
119
|
+
"$PWCLI" snapshot
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Wrapper script
|
|
123
|
+
|
|
124
|
+
The wrapper script uses `npx --package @playwright/cli playwright-cli` so the CLI can run without a global install:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
"$PWCLI" --help
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Prefer the wrapper unless the repository already standardizes on a global install.
|
|
131
|
+
|
|
132
|
+
## References
|
|
133
|
+
|
|
134
|
+
Open only what you need:
|
|
135
|
+
|
|
136
|
+
- CLI command reference: `references/cli.md`
|
|
137
|
+
- Practical workflows and troubleshooting: `references/workflows.md`
|
|
138
|
+
|
|
139
|
+
## Guardrails
|
|
140
|
+
|
|
141
|
+
- Always snapshot before referencing element ids like `e12`.
|
|
142
|
+
- Re-snapshot when refs seem stale.
|
|
143
|
+
- Prefer explicit commands over `eval` and `run-code` unless needed.
|
|
144
|
+
- When you do not have a fresh snapshot, use placeholder refs like `eX` and say why; do not bypass refs with `run-code`.
|
|
145
|
+
- Use `--headed` when a visual check will help.
|
|
146
|
+
- When capturing artifacts in this repo, use `output/playwright/` and avoid introducing new top-level artifact folders.
|
|
147
|
+
- Default to CLI commands and workflows, not Playwright test specs.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
interface:
|
|
2
|
-
display_name: "Playwright CLI Skill"
|
|
3
|
-
short_description: "Automate real browsers from the terminal"
|
|
4
|
-
icon_small: "./assets/playwright-small.svg"
|
|
5
|
-
icon_large: "./assets/playwright.png"
|
|
6
|
-
default_prompt: "Automate this browser workflow with Playwright and produce a reliable script with run steps."
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Playwright CLI Skill"
|
|
3
|
+
short_description: "Automate real browsers from the terminal"
|
|
4
|
+
icon_small: "./assets/playwright-small.svg"
|
|
5
|
+
icon_large: "./assets/playwright.png"
|
|
6
|
+
default_prompt: "Automate this browser workflow with Playwright and produce a reliable script with run steps."
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
|
|
2
|
-
<path d="m8.55 7.568.124.028 5.16 1.548.137.054c.606.294.645 1.165.068 1.512l-.133.066-2.236.894-.894 2.236c-.285.713-1.263.714-1.578.065l-.054-.138-1.548-5.16a.866.866 0 0 1 .954-1.105ZM10 12.983l.715-1.787.037-.08a.865.865 0 0 1 .445-.402L12.983 10 8.721 8.72l1.278 4.262ZM4.723 10.38a.532.532 0 0 1 .752.752l-1.414 1.414a.532.532 0 1 1-.752-.752l1.414-1.414ZM2.27 5.86l1.932.517.1.039a.533.533 0 0 1-.269 1.007l-.106-.018-1.932-.517-.101-.039a.532.532 0 0 1 .27-1.006l.106.017Zm9.608-2.62a.532.532 0 0 1 .668.82l-1.414 1.414a.532.532 0 1 1-.752-.752l1.414-1.414.084-.068ZM6.237 1.618a.532.532 0 0 1 .652.377l.518 1.932.017.106a.533.533 0 0 1-1.007.27l-.039-.101-.517-1.932-.017-.106a.532.532 0 0 1 .393-.546Z"/>
|
|
3
|
-
</svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
|
|
2
|
+
<path d="m8.55 7.568.124.028 5.16 1.548.137.054c.606.294.645 1.165.068 1.512l-.133.066-2.236.894-.894 2.236c-.285.713-1.263.714-1.578.065l-.054-.138-1.548-5.16a.866.866 0 0 1 .954-1.105ZM10 12.983l.715-1.787.037-.08a.865.865 0 0 1 .445-.402L12.983 10 8.721 8.72l1.278 4.262ZM4.723 10.38a.532.532 0 0 1 .752.752l-1.414 1.414a.532.532 0 1 1-.752-.752l1.414-1.414ZM2.27 5.86l1.932.517.1.039a.533.533 0 0 1-.269 1.007l-.106-.018-1.932-.517-.101-.039a.532.532 0 0 1 .27-1.006l.106.017Zm9.608-2.62a.532.532 0 0 1 .668.82l-1.414 1.414a.532.532 0 1 1-.752-.752l1.414-1.414.084-.068ZM6.237 1.618a.532.532 0 0 1 .652.377l.518 1.932.017.106a.533.533 0 0 1-1.007.27l-.039-.101-.517-1.932-.017-.106a.532.532 0 0 1 .393-.546Z"/>
|
|
3
|
+
</svg>
|