codexkit 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/.codex/.env.example +27 -0
- package/.codex/.template-manifest.json +631 -0
- package/.codex/.version +1 -0
- package/.codex/agents/builder.toml +104 -0
- package/.codex/agents/debugger.toml +67 -0
- package/.codex/agents/general.toml +41 -0
- package/.codex/agents/painter.toml +40 -0
- package/.codex/agents/planner.toml +60 -0
- package/.codex/agents/refactorer.toml +76 -0
- package/.codex/agents/reviewer.toml +60 -0
- package/.codex/agents/runner.toml +40 -0
- package/.codex/agents/scout.toml +133 -0
- package/.codex/agents/shipper.toml +69 -0
- package/.codex/agents/vision.toml +69 -0
- package/.codex/config.toml +146 -0
- package/.codex/context/architecture.md +66 -0
- package/.codex/context/conventions.md +98 -0
- package/.codex/context/current-priorities.md +33 -0
- package/.codex/context/decision-log.md +93 -0
- package/.codex/context/gotchas.md +42 -0
- package/.codex/context/index.md +21 -0
- package/.codex/context/session-context.md +11 -0
- package/.codex/context/worklog.md +9 -0
- package/.codex/hooks/README.md +17 -0
- package/.codex/hooks/after_agent.sh +11 -0
- package/.codex/hooks/after_tool_use.sh +10 -0
- package/.codex/hooks/post_commit.sh +10 -0
- package/.codex/hooks/pre_commit.sh +6 -0
- package/.codex/hooks/session_start.sh +18 -0
- package/.codex/hooks/stop.sh +10 -0
- package/.codex/mcp/README.md +143 -0
- package/.codex/mcp/basic-memory.toml.example +10 -0
- package/.codex/mcp/context7.toml.example +13 -0
- package/.codex/mcp/exa.toml.example +12 -0
- package/.codex/mcp/memory-bridge.toml.example +15 -0
- package/.codex/mcp/memory.toml.example +6 -0
- package/.codex/mcp/ref.toml.example +13 -0
- package/.codex/mcp/tilth.toml.example +10 -0
- package/.codex/memory/README.md +29 -0
- package/.codex/memory/_templates/README.md +26 -0
- package/.codex/memory/_templates/design.md +15 -0
- package/.codex/memory/_templates/gotcha.md +9 -0
- package/.codex/memory/_templates/handoff.md +9 -0
- package/.codex/memory/_templates/prd.md +13 -0
- package/.codex/memory/_templates/project.md +9 -0
- package/.codex/memory/_templates/proposal.md +13 -0
- package/.codex/memory/_templates/research.md +9 -0
- package/.codex/memory/_templates/roadmap.md +11 -0
- package/.codex/memory/_templates/session-context.md +7 -0
- package/.codex/memory/_templates/state.md +11 -0
- package/.codex/memory/_templates/tasks.md +9 -0
- package/.codex/memory/_templates/tech-stack.md +9 -0
- package/.codex/memory/_templates/user.md +7 -0
- package/.codex/memory/project/gotchas.md +5 -0
- package/.codex/memory/project/project.md +12 -0
- package/.codex/memory/project/roadmap.md +15 -0
- package/.codex/memory/project/state.md +22 -0
- package/.codex/memory/project/tech-stack.md +19 -0
- package/.codex/memory/project/user.md +10 -0
- package/.codex/memory/research/.gitkeep +1 -0
- package/.codex/memory/session-context.md +18 -0
- package/.codex/plans/README.md +7 -0
- package/.codex/prompts/compound.md +154 -0
- package/.codex/prompts/create.md +238 -0
- package/.codex/prompts/design.md +90 -0
- package/.codex/prompts/handoff.md +184 -0
- package/.codex/prompts/init-context.md +185 -0
- package/.codex/prompts/init-user.md +93 -0
- package/.codex/prompts/init.md +103 -0
- package/.codex/prompts/lfg.md +140 -0
- package/.codex/prompts/plan.md +140 -0
- package/.codex/prompts/pr.md +150 -0
- package/.codex/prompts/research.md +137 -0
- package/.codex/prompts/resume.md +105 -0
- package/.codex/prompts/review-codebase.md +147 -0
- package/.codex/prompts/ship.md +334 -0
- package/.codex/prompts/start.md +141 -0
- package/.codex/prompts/status.md +102 -0
- package/.codex/prompts/ui-inspire.md +151 -0
- package/.codex/prompts/ui-review.md +86 -0
- package/.codex/prompts/verify.md +181 -0
- package/.codex/scripts/append_worklog.sh +20 -0
- package/.codex/scripts/apply_worklog_archive.sh +48 -0
- package/.codex/scripts/audit_memory_hygiene.sh +102 -0
- package/.codex/scripts/build_memory_index.sh +167 -0
- package/.codex/scripts/build_prior_related_work.sh +127 -0
- package/.codex/scripts/build_startup_brief.sh +52 -0
- package/.codex/scripts/close_bead.sh +103 -0
- package/.codex/scripts/detect_changed_files.sh +38 -0
- package/.codex/scripts/ensure_beads.sh +14 -0
- package/.codex/scripts/memory_search.sh +292 -0
- package/.codex/scripts/prepare_worklog_archive.sh +115 -0
- package/.codex/scripts/search_bead_context.sh +214 -0
- package/.codex/scripts/start_bead.sh +129 -0
- package/.codex/scripts/sync_bead_context.sh +288 -0
- package/.codex/scripts/validate_memory_docs.sh +44 -0
- package/.codex/scripts/verify_bead.sh +154 -0
- package/.codex/skills/accessibility-audit/SKILL.md +191 -0
- package/.codex/skills/agent-browser/SKILL.md +413 -0
- package/.codex/skills/agent-teams/SKILL.md +268 -0
- package/.codex/skills/augment-context-engine/SKILL.md +115 -0
- package/.codex/skills/augment-context-engine/mcp.json +6 -0
- package/.codex/skills/beads/SKILL.md +181 -0
- package/.codex/skills/beads/references/BEST_PRACTICES.md +27 -0
- package/.codex/skills/beads/references/BOUNDARIES.md +219 -0
- package/.codex/skills/beads/references/DEPENDENCIES.md +124 -0
- package/.codex/skills/beads/references/EXAMPLES.md +45 -0
- package/.codex/skills/beads/references/FILE_CLAIMING.md +101 -0
- package/.codex/skills/beads/references/GIT_SYNC.md +25 -0
- package/.codex/skills/beads/references/HIERARCHY.md +71 -0
- package/.codex/skills/beads/references/MULTI_AGENT.md +40 -0
- package/.codex/skills/beads/references/RESUMABILITY.md +177 -0
- package/.codex/skills/beads/references/SESSION_PROTOCOL.md +61 -0
- package/.codex/skills/beads/references/TASK_CREATION.md +38 -0
- package/.codex/skills/beads/references/TROUBLESHOOTING.md +38 -0
- package/.codex/skills/beads/references/WORKFLOWS.md +226 -0
- package/.codex/skills/beads-bridge/SKILL.md +321 -0
- package/.codex/skills/brainstorming/SKILL.md +114 -0
- package/.codex/skills/bug-triage/SKILL.md +191 -0
- package/.codex/skills/chrome-devtools/SKILL.md +76 -0
- package/.codex/skills/chrome-devtools/mcp.json +19 -0
- package/.codex/skills/cloudflare/SKILL.md +253 -0
- package/.codex/skills/cloudflare/references/agents-sdk/README.md +35 -0
- package/.codex/skills/cloudflare/references/agents-sdk/api.md +100 -0
- package/.codex/skills/cloudflare/references/agents-sdk/configuration.md +99 -0
- package/.codex/skills/cloudflare/references/agents-sdk/gotchas.md +59 -0
- package/.codex/skills/cloudflare/references/agents-sdk/patterns.md +89 -0
- package/.codex/skills/cloudflare/references/ai-gateway/README.md +695 -0
- package/.codex/skills/cloudflare/references/ai-search/README.md +14 -0
- package/.codex/skills/cloudflare/references/ai-search/api.md +38 -0
- package/.codex/skills/cloudflare/references/ai-search/configuration.md +52 -0
- package/.codex/skills/cloudflare/references/ai-search/gotchas.md +41 -0
- package/.codex/skills/cloudflare/references/ai-search/patterns.md +45 -0
- package/.codex/skills/cloudflare/references/analytics-engine/README.md +14 -0
- package/.codex/skills/cloudflare/references/analytics-engine/api.md +27 -0
- package/.codex/skills/cloudflare/references/analytics-engine/configuration.md +45 -0
- package/.codex/skills/cloudflare/references/analytics-engine/gotchas.md +3 -0
- package/.codex/skills/cloudflare/references/analytics-engine/patterns.md +36 -0
- package/.codex/skills/cloudflare/references/api/README.md +21 -0
- package/.codex/skills/cloudflare/references/api/api.md +31 -0
- package/.codex/skills/cloudflare/references/api/configuration.md +20 -0
- package/.codex/skills/cloudflare/references/api/gotchas.md +28 -0
- package/.codex/skills/cloudflare/references/api/patterns.md +47 -0
- package/.codex/skills/cloudflare/references/api-shield/README.md +20 -0
- package/.codex/skills/cloudflare/references/api-shield/api.md +78 -0
- package/.codex/skills/cloudflare/references/api-shield/configuration.md +128 -0
- package/.codex/skills/cloudflare/references/api-shield/gotchas.md +51 -0
- package/.codex/skills/cloudflare/references/api-shield/patterns.md +145 -0
- package/.codex/skills/cloudflare/references/argo-smart-routing/README.md +16 -0
- package/.codex/skills/cloudflare/references/argo-smart-routing/api.md +50 -0
- package/.codex/skills/cloudflare/references/argo-smart-routing/configuration.md +53 -0
- package/.codex/skills/cloudflare/references/argo-smart-routing/gotchas.md +16 -0
- package/.codex/skills/cloudflare/references/argo-smart-routing/patterns.md +45 -0
- package/.codex/skills/cloudflare/references/bindings/README.md +14 -0
- package/.codex/skills/cloudflare/references/bindings/api.md +3 -0
- package/.codex/skills/cloudflare/references/bindings/configuration.md +58 -0
- package/.codex/skills/cloudflare/references/bindings/gotchas.md +35 -0
- package/.codex/skills/cloudflare/references/bindings/patterns.md +37 -0
- package/.codex/skills/cloudflare/references/bot-management/README.md +71 -0
- package/.codex/skills/cloudflare/references/bot-management/api.md +168 -0
- package/.codex/skills/cloudflare/references/bot-management/configuration.md +114 -0
- package/.codex/skills/cloudflare/references/bot-management/gotchas.md +99 -0
- package/.codex/skills/cloudflare/references/bot-management/patterns.md +125 -0
- package/.codex/skills/cloudflare/references/browser-rendering/README.md +16 -0
- package/.codex/skills/cloudflare/references/browser-rendering/api.md +54 -0
- package/.codex/skills/cloudflare/references/browser-rendering/configuration.md +47 -0
- package/.codex/skills/cloudflare/references/browser-rendering/gotchas.md +29 -0
- package/.codex/skills/cloudflare/references/browser-rendering/patterns.md +29 -0
- package/.codex/skills/cloudflare/references/c3/README.md +264 -0
- package/.codex/skills/cloudflare/references/cache-reserve/README.md +93 -0
- package/.codex/skills/cloudflare/references/cache-reserve/api.md +176 -0
- package/.codex/skills/cloudflare/references/cache-reserve/configuration.md +164 -0
- package/.codex/skills/cloudflare/references/cache-reserve/gotchas.md +203 -0
- package/.codex/skills/cloudflare/references/cache-reserve/patterns.md +180 -0
- package/.codex/skills/cloudflare/references/containers/README.md +16 -0
- package/.codex/skills/cloudflare/references/containers/api.md +43 -0
- package/.codex/skills/cloudflare/references/containers/configuration.md +56 -0
- package/.codex/skills/cloudflare/references/containers/gotchas.md +21 -0
- package/.codex/skills/cloudflare/references/containers/patterns.md +40 -0
- package/.codex/skills/cloudflare/references/cron-triggers/README.md +85 -0
- package/.codex/skills/cloudflare/references/cron-triggers/api.md +198 -0
- package/.codex/skills/cloudflare/references/cron-triggers/configuration.md +151 -0
- package/.codex/skills/cloudflare/references/cron-triggers/gotchas.md +129 -0
- package/.codex/skills/cloudflare/references/cron-triggers/patterns.md +122 -0
- package/.codex/skills/cloudflare/references/d1/README.md +92 -0
- package/.codex/skills/cloudflare/references/d1/api.md +141 -0
- package/.codex/skills/cloudflare/references/d1/configuration.md +127 -0
- package/.codex/skills/cloudflare/references/d1/gotchas.md +70 -0
- package/.codex/skills/cloudflare/references/d1/patterns.md +144 -0
- package/.codex/skills/cloudflare/references/ddos/README.md +34 -0
- package/.codex/skills/cloudflare/references/ddos/api.md +136 -0
- package/.codex/skills/cloudflare/references/ddos/configuration.md +67 -0
- package/.codex/skills/cloudflare/references/ddos/gotchas.md +114 -0
- package/.codex/skills/cloudflare/references/ddos/patterns.md +158 -0
- package/.codex/skills/cloudflare/references/do-storage/README.md +62 -0
- package/.codex/skills/cloudflare/references/do-storage/api.md +89 -0
- package/.codex/skills/cloudflare/references/do-storage/configuration.md +116 -0
- package/.codex/skills/cloudflare/references/do-storage/gotchas.md +93 -0
- package/.codex/skills/cloudflare/references/do-storage/patterns.md +112 -0
- package/.codex/skills/cloudflare/references/durable-objects/README.md +125 -0
- package/.codex/skills/cloudflare/references/durable-objects/api.md +152 -0
- package/.codex/skills/cloudflare/references/durable-objects/configuration.md +148 -0
- package/.codex/skills/cloudflare/references/durable-objects/gotchas.md +158 -0
- package/.codex/skills/cloudflare/references/durable-objects/patterns.md +255 -0
- package/.codex/skills/cloudflare/references/email-routing/README.md +18 -0
- package/.codex/skills/cloudflare/references/email-routing/api.md +46 -0
- package/.codex/skills/cloudflare/references/email-routing/configuration.md +63 -0
- package/.codex/skills/cloudflare/references/email-routing/gotchas.md +16 -0
- package/.codex/skills/cloudflare/references/email-routing/patterns.md +46 -0
- package/.codex/skills/cloudflare/references/email-workers/README.md +598 -0
- package/.codex/skills/cloudflare/references/hyperdrive/README.md +62 -0
- package/.codex/skills/cloudflare/references/hyperdrive/api.md +137 -0
- package/.codex/skills/cloudflare/references/hyperdrive/configuration.md +133 -0
- package/.codex/skills/cloudflare/references/hyperdrive/gotchas.md +184 -0
- package/.codex/skills/cloudflare/references/hyperdrive/patterns.md +176 -0
- package/.codex/skills/cloudflare/references/images/README.md +14 -0
- package/.codex/skills/cloudflare/references/images/api.md +3 -0
- package/.codex/skills/cloudflare/references/images/configuration.md +45 -0
- package/.codex/skills/cloudflare/references/images/gotchas.md +23 -0
- package/.codex/skills/cloudflare/references/images/patterns.md +31 -0
- package/.codex/skills/cloudflare/references/kv/README.md +60 -0
- package/.codex/skills/cloudflare/references/kv/api.md +114 -0
- package/.codex/skills/cloudflare/references/kv/configuration.md +92 -0
- package/.codex/skills/cloudflare/references/kv/gotchas.md +117 -0
- package/.codex/skills/cloudflare/references/kv/patterns.md +139 -0
- package/.codex/skills/cloudflare/references/miniflare/README.md +64 -0
- package/.codex/skills/cloudflare/references/miniflare/api.md +144 -0
- package/.codex/skills/cloudflare/references/miniflare/configuration.md +203 -0
- package/.codex/skills/cloudflare/references/miniflare/gotchas.md +187 -0
- package/.codex/skills/cloudflare/references/miniflare/patterns.md +211 -0
- package/.codex/skills/cloudflare/references/network-interconnect/README.md +60 -0
- package/.codex/skills/cloudflare/references/network-interconnect/api.md +240 -0
- package/.codex/skills/cloudflare/references/network-interconnect/configuration.md +127 -0
- package/.codex/skills/cloudflare/references/network-interconnect/gotchas.md +171 -0
- package/.codex/skills/cloudflare/references/network-interconnect/patterns.md +171 -0
- package/.codex/skills/cloudflare/references/observability/README.md +18 -0
- package/.codex/skills/cloudflare/references/observability/api.md +51 -0
- package/.codex/skills/cloudflare/references/observability/configuration.md +60 -0
- package/.codex/skills/cloudflare/references/observability/gotchas.md +36 -0
- package/.codex/skills/cloudflare/references/observability/patterns.md +42 -0
- package/.codex/skills/cloudflare/references/pages/README.md +76 -0
- package/.codex/skills/cloudflare/references/pages/api.md +200 -0
- package/.codex/skills/cloudflare/references/pages/configuration.md +228 -0
- package/.codex/skills/cloudflare/references/pages/gotchas.md +161 -0
- package/.codex/skills/cloudflare/references/pages/patterns.md +145 -0
- package/.codex/skills/cloudflare/references/pages-functions/README.md +57 -0
- package/.codex/skills/cloudflare/references/pages-functions/api.md +201 -0
- package/.codex/skills/cloudflare/references/pages-functions/configuration.md +159 -0
- package/.codex/skills/cloudflare/references/pages-functions/gotchas.md +151 -0
- package/.codex/skills/cloudflare/references/pages-functions/patterns.md +190 -0
- package/.codex/skills/cloudflare/references/pipelines/README.md +664 -0
- package/.codex/skills/cloudflare/references/pulumi/README.md +107 -0
- package/.codex/skills/cloudflare/references/pulumi/api.md +194 -0
- package/.codex/skills/cloudflare/references/pulumi/configuration.md +216 -0
- package/.codex/skills/cloudflare/references/pulumi/gotchas.md +223 -0
- package/.codex/skills/cloudflare/references/pulumi/patterns.md +139 -0
- package/.codex/skills/cloudflare/references/queues/README.md +69 -0
- package/.codex/skills/cloudflare/references/queues/api.md +138 -0
- package/.codex/skills/cloudflare/references/queues/configuration.md +125 -0
- package/.codex/skills/cloudflare/references/queues/gotchas.md +112 -0
- package/.codex/skills/cloudflare/references/queues/patterns.md +155 -0
- package/.codex/skills/cloudflare/references/r2/README.md +61 -0
- package/.codex/skills/cloudflare/references/r2/api.md +127 -0
- package/.codex/skills/cloudflare/references/r2/configuration.md +76 -0
- package/.codex/skills/cloudflare/references/r2/gotchas.md +94 -0
- package/.codex/skills/cloudflare/references/r2/patterns.md +127 -0
- package/.codex/skills/cloudflare/references/r2-data-catalog/README.md +18 -0
- package/.codex/skills/cloudflare/references/r2-data-catalog/api.md +29 -0
- package/.codex/skills/cloudflare/references/r2-data-catalog/configuration.md +39 -0
- package/.codex/skills/cloudflare/references/r2-data-catalog/gotchas.md +20 -0
- package/.codex/skills/cloudflare/references/r2-data-catalog/patterns.md +46 -0
- package/.codex/skills/cloudflare/references/r2-sql/README.md +512 -0
- package/.codex/skills/cloudflare/references/realtime-sfu/README.md +21 -0
- package/.codex/skills/cloudflare/references/realtime-sfu/api.md +135 -0
- package/.codex/skills/cloudflare/references/realtime-sfu/configuration.md +63 -0
- package/.codex/skills/cloudflare/references/realtime-sfu/gotchas.md +75 -0
- package/.codex/skills/cloudflare/references/realtime-sfu/patterns.md +102 -0
- package/.codex/skills/cloudflare/references/realtimekit/README.md +81 -0
- package/.codex/skills/cloudflare/references/realtimekit/api.md +164 -0
- package/.codex/skills/cloudflare/references/realtimekit/configuration.md +147 -0
- package/.codex/skills/cloudflare/references/realtimekit/gotchas.md +172 -0
- package/.codex/skills/cloudflare/references/realtimekit/patterns.md +155 -0
- package/.codex/skills/cloudflare/references/sandbox/README.md +90 -0
- package/.codex/skills/cloudflare/references/sandbox/api.md +178 -0
- package/.codex/skills/cloudflare/references/sandbox/configuration.md +131 -0
- package/.codex/skills/cloudflare/references/sandbox/gotchas.md +156 -0
- package/.codex/skills/cloudflare/references/sandbox/patterns.md +203 -0
- package/.codex/skills/cloudflare/references/secrets-store/README.md +58 -0
- package/.codex/skills/cloudflare/references/secrets-store/api.md +182 -0
- package/.codex/skills/cloudflare/references/secrets-store/configuration.md +140 -0
- package/.codex/skills/cloudflare/references/secrets-store/gotchas.md +129 -0
- package/.codex/skills/cloudflare/references/secrets-store/patterns.md +218 -0
- package/.codex/skills/cloudflare/references/smart-placement/README.md +91 -0
- package/.codex/skills/cloudflare/references/smart-placement/api.md +139 -0
- package/.codex/skills/cloudflare/references/smart-placement/configuration.md +129 -0
- package/.codex/skills/cloudflare/references/smart-placement/gotchas.md +87 -0
- package/.codex/skills/cloudflare/references/smart-placement/patterns.md +135 -0
- package/.codex/skills/cloudflare/references/snippets/README.md +15 -0
- package/.codex/skills/cloudflare/references/snippets/api.md +47 -0
- package/.codex/skills/cloudflare/references/snippets/configuration.md +33 -0
- package/.codex/skills/cloudflare/references/snippets/gotchas.md +21 -0
- package/.codex/skills/cloudflare/references/snippets/patterns.md +34 -0
- package/.codex/skills/cloudflare/references/spectrum/README.md +16 -0
- package/.codex/skills/cloudflare/references/spectrum/api.md +24 -0
- package/.codex/skills/cloudflare/references/spectrum/configuration.md +43 -0
- package/.codex/skills/cloudflare/references/spectrum/gotchas.md +42 -0
- package/.codex/skills/cloudflare/references/spectrum/patterns.md +40 -0
- package/.codex/skills/cloudflare/references/static-assets/README.md +14 -0
- package/.codex/skills/cloudflare/references/static-assets/api.md +3 -0
- package/.codex/skills/cloudflare/references/static-assets/configuration.md +47 -0
- package/.codex/skills/cloudflare/references/static-assets/gotchas.md +44 -0
- package/.codex/skills/cloudflare/references/static-assets/patterns.md +42 -0
- package/.codex/skills/cloudflare/references/stream/README.md +103 -0
- package/.codex/skills/cloudflare/references/stream/api.md +204 -0
- package/.codex/skills/cloudflare/references/stream/configuration.md +127 -0
- package/.codex/skills/cloudflare/references/stream/gotchas.md +131 -0
- package/.codex/skills/cloudflare/references/stream/patterns.md +152 -0
- package/.codex/skills/cloudflare/references/tail-workers/README.md +640 -0
- package/.codex/skills/cloudflare/references/terraform/README.md +76 -0
- package/.codex/skills/cloudflare/references/terraform/api.md +159 -0
- package/.codex/skills/cloudflare/references/terraform/configuration.md +156 -0
- package/.codex/skills/cloudflare/references/terraform/gotchas.md +207 -0
- package/.codex/skills/cloudflare/references/terraform/patterns.md +135 -0
- package/.codex/skills/cloudflare/references/tunnel/README.md +82 -0
- package/.codex/skills/cloudflare/references/tunnel/api.md +105 -0
- package/.codex/skills/cloudflare/references/tunnel/configuration.md +113 -0
- package/.codex/skills/cloudflare/references/tunnel/gotchas.md +115 -0
- package/.codex/skills/cloudflare/references/tunnel/patterns.md +157 -0
- package/.codex/skills/cloudflare/references/turn/README.md +699 -0
- package/.codex/skills/cloudflare/references/turnstile/README.md +14 -0
- package/.codex/skills/cloudflare/references/turnstile/api.md +3 -0
- package/.codex/skills/cloudflare/references/turnstile/configuration.md +19 -0
- package/.codex/skills/cloudflare/references/turnstile/gotchas.md +27 -0
- package/.codex/skills/cloudflare/references/turnstile/patterns.md +41 -0
- package/.codex/skills/cloudflare/references/vectorize/README.md +682 -0
- package/.codex/skills/cloudflare/references/waf/README.md +14 -0
- package/.codex/skills/cloudflare/references/waf/api.md +3 -0
- package/.codex/skills/cloudflare/references/waf/configuration.md +44 -0
- package/.codex/skills/cloudflare/references/waf/gotchas.md +24 -0
- package/.codex/skills/cloudflare/references/waf/patterns.md +29 -0
- package/.codex/skills/cloudflare/references/web-analytics/README.md +19 -0
- package/.codex/skills/cloudflare/references/web-analytics/api.md +52 -0
- package/.codex/skills/cloudflare/references/web-analytics/configuration.md +31 -0
- package/.codex/skills/cloudflare/references/web-analytics/gotchas.md +28 -0
- package/.codex/skills/cloudflare/references/web-analytics/patterns.md +52 -0
- package/.codex/skills/cloudflare/references/workerd/README.md +47 -0
- package/.codex/skills/cloudflare/references/workerd/api.md +199 -0
- package/.codex/skills/cloudflare/references/workerd/configuration.md +185 -0
- package/.codex/skills/cloudflare/references/workerd/gotchas.md +203 -0
- package/.codex/skills/cloudflare/references/workerd/patterns.md +216 -0
- package/.codex/skills/cloudflare/references/workers/README.md +96 -0
- package/.codex/skills/cloudflare/references/workers/api.md +137 -0
- package/.codex/skills/cloudflare/references/workers/configuration.md +147 -0
- package/.codex/skills/cloudflare/references/workers/gotchas.md +99 -0
- package/.codex/skills/cloudflare/references/workers/patterns.md +149 -0
- package/.codex/skills/cloudflare/references/workers-ai/README.md +116 -0
- package/.codex/skills/cloudflare/references/workers-for-platforms/README.md +48 -0
- package/.codex/skills/cloudflare/references/workers-for-platforms/api.md +169 -0
- package/.codex/skills/cloudflare/references/workers-for-platforms/configuration.md +136 -0
- package/.codex/skills/cloudflare/references/workers-for-platforms/gotchas.md +130 -0
- package/.codex/skills/cloudflare/references/workers-for-platforms/patterns.md +170 -0
- package/.codex/skills/cloudflare/references/workers-playground/README.md +16 -0
- package/.codex/skills/cloudflare/references/workers-playground/api.md +20 -0
- package/.codex/skills/cloudflare/references/workers-playground/configuration.md +3 -0
- package/.codex/skills/cloudflare/references/workers-playground/gotchas.md +35 -0
- package/.codex/skills/cloudflare/references/workers-playground/patterns.md +42 -0
- package/.codex/skills/cloudflare/references/workers-vpc/README.md +579 -0
- package/.codex/skills/cloudflare/references/workflows/README.md +62 -0
- package/.codex/skills/cloudflare/references/workflows/api.md +125 -0
- package/.codex/skills/cloudflare/references/workflows/configuration.md +177 -0
- package/.codex/skills/cloudflare/references/workflows/gotchas.md +136 -0
- package/.codex/skills/cloudflare/references/workflows/patterns.md +132 -0
- package/.codex/skills/cloudflare/references/wrangler/README.md +90 -0
- package/.codex/skills/cloudflare/references/wrangler/api.md +140 -0
- package/.codex/skills/cloudflare/references/wrangler/configuration.md +128 -0
- package/.codex/skills/cloudflare/references/wrangler/gotchas.md +93 -0
- package/.codex/skills/cloudflare/references/wrangler/patterns.md +150 -0
- package/.codex/skills/cloudflare/references/zaraz/README.md +360 -0
- package/.codex/skills/code-navigation/SKILL.md +130 -0
- package/.codex/skills/code-review/SKILL.md +208 -0
- package/.codex/skills/compaction/SKILL.md +317 -0
- package/.codex/skills/condition-based-waiting/SKILL.md +123 -0
- package/.codex/skills/condition-based-waiting/example.ts +158 -0
- package/.codex/skills/context-engineering/SKILL.md +176 -0
- package/.codex/skills/context-initialization/SKILL.md +70 -0
- package/.codex/skills/context-management/SKILL.md +163 -0
- package/.codex/skills/core-data-expert/SKILL.md +93 -0
- package/.codex/skills/core-data-expert/references/batch-operations.md +543 -0
- package/.codex/skills/core-data-expert/references/cloudkit-integration.md +259 -0
- package/.codex/skills/core-data-expert/references/concurrency.md +522 -0
- package/.codex/skills/core-data-expert/references/fetch-requests.md +643 -0
- package/.codex/skills/core-data-expert/references/glossary.md +233 -0
- package/.codex/skills/core-data-expert/references/migration.md +393 -0
- package/.codex/skills/core-data-expert/references/model-configuration.md +597 -0
- package/.codex/skills/core-data-expert/references/performance.md +300 -0
- package/.codex/skills/core-data-expert/references/persistent-history.md +553 -0
- package/.codex/skills/core-data-expert/references/project-audit.md +60 -0
- package/.codex/skills/core-data-expert/references/saving.md +574 -0
- package/.codex/skills/core-data-expert/references/stack-setup.md +625 -0
- package/.codex/skills/core-data-expert/references/testing.md +300 -0
- package/.codex/skills/core-data-expert/references/threading.md +589 -0
- package/.codex/skills/debugging/SKILL.md +203 -0
- package/.codex/skills/deep-research/SKILL.md +384 -0
- package/.codex/skills/defense-in-depth/SKILL.md +166 -0
- package/.codex/skills/dependency-upgrades/SKILL.md +198 -0
- package/.codex/skills/design-system-audit/SKILL.md +153 -0
- package/.codex/skills/development-lifecycle/SKILL.md +356 -0
- package/.codex/skills/dispatching-parallel-agents/SKILL.md +191 -0
- package/.codex/skills/docs-handoff/SKILL.md +175 -0
- package/.codex/skills/executing-plans/SKILL.md +247 -0
- package/.codex/skills/figma/SKILL.md +224 -0
- package/.codex/skills/figma/mcp.json +6 -0
- package/.codex/skills/finishing-a-development-branch/SKILL.md +357 -0
- package/.codex/skills/frontend-design/SKILL.md +176 -0
- package/.codex/skills/gemini-large-context/SKILL.md +216 -0
- package/.codex/skills/git-pr-prep/SKILL.md +179 -0
- package/.codex/skills/index-knowledge/SKILL.md +413 -0
- package/.codex/skills/jira/SKILL.md +283 -0
- package/.codex/skills/jira/mcp.json +6 -0
- package/.codex/skills/memory-system/SKILL.md +93 -0
- package/.codex/skills/mockup-to-code/SKILL.md +184 -0
- package/.codex/skills/mqdh/SKILL.md +171 -0
- package/.codex/skills/obsidian/SKILL.md +187 -0
- package/.codex/skills/obsidian/mcp.json +22 -0
- package/.codex/skills/opensrc/SKILL.md +127 -0
- package/.codex/skills/opensrc/references/architecture.md +176 -0
- package/.codex/skills/opensrc/references/cli-usage.md +176 -0
- package/.codex/skills/opensrc/references/registry-support.md +137 -0
- package/.codex/skills/pdf-extract/SKILL.md +438 -0
- package/.codex/skills/playwright/SKILL.md +320 -0
- package/.codex/skills/playwright/mcp.json +16 -0
- package/.codex/skills/playwriter/SKILL.md +158 -0
- package/.codex/skills/polar/SKILL.md +102 -0
- package/.codex/skills/prd/SKILL.md +146 -0
- package/.codex/skills/prd-task/SKILL.md +182 -0
- package/.codex/skills/prd-task/references/prd-schema.json +124 -0
- package/.codex/skills/prompt-leverage/SKILL.md +69 -0
- package/.codex/skills/prompt-leverage/agents/openai.yaml +4 -0
- package/.codex/skills/prompt-leverage/references/framework.md +91 -0
- package/.codex/skills/prompt-leverage/scripts/augment_prompt.py +114 -0
- package/.codex/skills/ralph/SKILL.md +296 -0
- package/.codex/skills/react-best-practices/AGENTS.md +2410 -0
- package/.codex/skills/react-best-practices/README.md +123 -0
- package/.codex/skills/react-best-practices/SKILL.md +133 -0
- package/.codex/skills/react-best-practices/metadata.json +15 -0
- package/.codex/skills/react-best-practices/rules/_sections.md +46 -0
- package/.codex/skills/react-best-practices/rules/_template.md +28 -0
- package/.codex/skills/react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/.codex/skills/react-best-practices/rules/advanced-use-latest.md +49 -0
- package/.codex/skills/react-best-practices/rules/async-api-routes.md +38 -0
- package/.codex/skills/react-best-practices/rules/async-defer-await.md +80 -0
- package/.codex/skills/react-best-practices/rules/async-dependencies.md +36 -0
- package/.codex/skills/react-best-practices/rules/async-parallel.md +28 -0
- package/.codex/skills/react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/.codex/skills/react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/.codex/skills/react-best-practices/rules/bundle-conditional.md +31 -0
- package/.codex/skills/react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/.codex/skills/react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/.codex/skills/react-best-practices/rules/bundle-preload.md +50 -0
- package/.codex/skills/react-best-practices/rules/client-event-listeners.md +74 -0
- package/.codex/skills/react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/.codex/skills/react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/.codex/skills/react-best-practices/rules/client-swr-dedup.md +56 -0
- package/.codex/skills/react-best-practices/rules/js-batch-dom-css.md +82 -0
- package/.codex/skills/react-best-practices/rules/js-cache-function-results.md +80 -0
- package/.codex/skills/react-best-practices/rules/js-cache-property-access.md +28 -0
- package/.codex/skills/react-best-practices/rules/js-cache-storage.md +70 -0
- package/.codex/skills/react-best-practices/rules/js-combine-iterations.md +32 -0
- package/.codex/skills/react-best-practices/rules/js-early-exit.md +50 -0
- package/.codex/skills/react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/.codex/skills/react-best-practices/rules/js-index-maps.md +37 -0
- package/.codex/skills/react-best-practices/rules/js-length-check-first.md +49 -0
- package/.codex/skills/react-best-practices/rules/js-min-max-loop.md +82 -0
- package/.codex/skills/react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/.codex/skills/react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/.codex/skills/react-best-practices/rules/rendering-activity.md +26 -0
- package/.codex/skills/react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/.codex/skills/react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/.codex/skills/react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/.codex/skills/react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/.codex/skills/react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/.codex/skills/react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/.codex/skills/react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/.codex/skills/react-best-practices/rules/rerender-dependencies.md +45 -0
- package/.codex/skills/react-best-practices/rules/rerender-derived-state.md +29 -0
- package/.codex/skills/react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/.codex/skills/react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/.codex/skills/react-best-practices/rules/rerender-memo.md +44 -0
- package/.codex/skills/react-best-practices/rules/rerender-transitions.md +40 -0
- package/.codex/skills/react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/.codex/skills/react-best-practices/rules/server-cache-lru.md +41 -0
- package/.codex/skills/react-best-practices/rules/server-cache-react.md +76 -0
- package/.codex/skills/react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/.codex/skills/react-best-practices/rules/server-serialization.md +38 -0
- package/.codex/skills/receiving-code-review/SKILL.md +252 -0
- package/.codex/skills/refactoring/SKILL.md +217 -0
- package/.codex/skills/repo-orientation/SKILL.md +156 -0
- package/.codex/skills/requesting-code-review/SKILL.md +397 -0
- package/.codex/skills/resend/SKILL.md +177 -0
- package/.codex/skills/resend/references/react-email.md +287 -0
- package/.codex/skills/resend/references/receive-email.md +248 -0
- package/.codex/skills/resend/references/send-email.md +318 -0
- package/.codex/skills/root-cause-tracing/SKILL.md +192 -0
- package/.codex/skills/root-cause-tracing/find-polluter.sh +63 -0
- package/.codex/skills/safe-implementation/SKILL.md +205 -0
- package/.codex/skills/session-management/SKILL.md +10 -0
- package/.codex/skills/sharing-skills/SKILL.md +214 -0
- package/.codex/skills/skill-creator/SKILL.md +156 -0
- package/.codex/skills/source-code-research/SKILL.md +293 -0
- package/.codex/skills/source-code-research/references/analysis-tips.md +43 -0
- package/.codex/skills/source-code-research/references/anti-patterns.md +36 -0
- package/.codex/skills/source-code-research/references/common-patterns.md +57 -0
- package/.codex/skills/source-code-research/references/example-workflow.md +60 -0
- package/.codex/skills/source-code-research/references/further-reading.md +5 -0
- package/.codex/skills/source-code-research/references/source-structure.md +45 -0
- package/.codex/skills/stitch/SKILL.md +147 -0
- package/.codex/skills/stitch/mcp.json +9 -0
- package/.codex/skills/structured-edit/SKILL.md +181 -0
- package/.codex/skills/subagent-driven-development/SKILL.md +237 -0
- package/.codex/skills/supabase/SKILL.md +130 -0
- package/.codex/skills/supabase/mcp.json +27 -0
- package/.codex/skills/supabase-postgres-best-practices/AGENTS.md +1490 -0
- package/.codex/skills/supabase-postgres-best-practices/SKILL.md +65 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/advanced-full-text-search.md +55 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/advanced-jsonb-indexing.md +49 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/conn-idle-timeout.md +46 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/conn-limits.md +44 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/conn-pooling.md +41 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/conn-prepared-statements.md +46 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/data-batch-inserts.md +54 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/data-n-plus-one.md +53 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/data-pagination.md +50 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/data-upsert.md +50 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/lock-advisory.md +56 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/lock-deadlock-prevention.md +68 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/lock-short-transactions.md +50 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/lock-skip-locked.md +54 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/monitor-explain-analyze.md +45 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/monitor-pg-stat-statements.md +55 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/monitor-vacuum-analyze.md +55 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/query-composite-indexes.md +44 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/query-covering-indexes.md +40 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/query-index-types.md +45 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/query-missing-indexes.md +43 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/query-partial-indexes.md +45 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/schema-data-types.md +46 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/schema-foreign-key-indexes.md +59 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/schema-lowercase-identifiers.md +55 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/schema-partitioning.md +55 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/schema-primary-keys.md +61 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/security-privileges.md +54 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/security-rls-basics.md +50 -0
- package/.codex/skills/supabase-postgres-best-practices/rules/security-rls-performance.md +57 -0
- package/.codex/skills/swarm-coordination/SKILL.md +179 -0
- package/.codex/skills/swarm-coordination/references/architecture.md +39 -0
- package/.codex/skills/swarm-coordination/references/delegation-worker-protocol.md +145 -0
- package/.codex/skills/swarm-coordination/references/dependency-graph.md +50 -0
- package/.codex/skills/swarm-coordination/references/drift-check.md +90 -0
- package/.codex/skills/swarm-coordination/references/integration-beads.md +20 -0
- package/.codex/skills/swarm-coordination/references/launch-flow.md +186 -0
- package/.codex/skills/swarm-coordination/references/reconciler.md +172 -0
- package/.codex/skills/swarm-coordination/references/tier-enforcement.md +78 -0
- package/.codex/skills/swarm-coordination/references/tmux-integration.md +134 -0
- package/.codex/skills/swift-concurrency/SKILL.md +266 -0
- package/.codex/skills/swift-concurrency/references/actors.md +640 -0
- package/.codex/skills/swift-concurrency/references/async-algorithms.md +822 -0
- package/.codex/skills/swift-concurrency/references/async-await-basics.md +249 -0
- package/.codex/skills/swift-concurrency/references/async-sequences.md +670 -0
- package/.codex/skills/swift-concurrency/references/core-data.md +533 -0
- package/.codex/skills/swift-concurrency/references/glossary.md +128 -0
- package/.codex/skills/swift-concurrency/references/linting.md +142 -0
- package/.codex/skills/swift-concurrency/references/memory-management.md +542 -0
- package/.codex/skills/swift-concurrency/references/migration.md +1076 -0
- package/.codex/skills/swift-concurrency/references/performance.md +574 -0
- package/.codex/skills/swift-concurrency/references/sendable.md +578 -0
- package/.codex/skills/swift-concurrency/references/tasks.md +604 -0
- package/.codex/skills/swift-concurrency/references/testing.md +565 -0
- package/.codex/skills/swift-concurrency/references/threading.md +452 -0
- package/.codex/skills/swiftui-expert-skill/SKILL.md +329 -0
- package/.codex/skills/swiftui-expert-skill/references/animation-advanced.md +351 -0
- package/.codex/skills/swiftui-expert-skill/references/animation-basics.md +284 -0
- package/.codex/skills/swiftui-expert-skill/references/animation-transitions.md +326 -0
- package/.codex/skills/swiftui-expert-skill/references/image-optimization.md +286 -0
- package/.codex/skills/swiftui-expert-skill/references/layout-best-practices.md +312 -0
- package/.codex/skills/swiftui-expert-skill/references/liquid-glass.md +377 -0
- package/.codex/skills/swiftui-expert-skill/references/list-patterns.md +153 -0
- package/.codex/skills/swiftui-expert-skill/references/modern-apis.md +400 -0
- package/.codex/skills/swiftui-expert-skill/references/performance-patterns.md +377 -0
- package/.codex/skills/swiftui-expert-skill/references/scroll-patterns.md +305 -0
- package/.codex/skills/swiftui-expert-skill/references/sheet-navigation-patterns.md +292 -0
- package/.codex/skills/swiftui-expert-skill/references/state-management.md +447 -0
- package/.codex/skills/swiftui-expert-skill/references/text-formatting.md +285 -0
- package/.codex/skills/swiftui-expert-skill/references/view-structure.md +276 -0
- package/.codex/skills/systematic-debugging/SKILL.md +402 -0
- package/.codex/skills/task-planning/SKILL.md +205 -0
- package/.codex/skills/test-driven-development/SKILL.md +388 -0
- package/.codex/skills/test-strategy/SKILL.md +186 -0
- package/.codex/skills/testing-anti-patterns/SKILL.md +320 -0
- package/.codex/skills/testing-skills-with-subagents/SKILL.md +405 -0
- package/.codex/skills/tilth-cli/SKILL.md +180 -0
- package/.codex/skills/tool-priority/SKILL.md +299 -0
- package/.codex/skills/ui-inspiration-scout/SKILL.md +203 -0
- package/.codex/skills/ui-ux-research/SKILL.md +35 -0
- package/.codex/skills/using-git-worktrees/SKILL.md +259 -0
- package/.codex/skills/using-skills/SKILL.md +117 -0
- package/.codex/skills/v0/SKILL.md +158 -0
- package/.codex/skills/v0/mcp.json +6 -0
- package/.codex/skills/v1-run/SKILL.md +175 -0
- package/.codex/skills/v1-run/mcp.json +6 -0
- package/.codex/skills/vercel-deploy-claimable/SKILL.md +124 -0
- package/.codex/skills/vercel-deploy-claimable/scripts/deploy.sh +249 -0
- package/.codex/skills/verification/SKILL.md +191 -0
- package/.codex/skills/verification-before-completion/SKILL.md +236 -0
- package/.codex/skills/visual-analysis/SKILL.md +154 -0
- package/.codex/skills/web-design-guidelines/SKILL.md +46 -0
- package/.codex/skills/writing-plans/SKILL.md +320 -0
- package/.codex/skills/writing-skills/SKILL.md +287 -0
- package/.codex/skills/writing-skills/anthropic-best-practices.md +1173 -0
- package/.codex/skills/writing-skills/graphviz-conventions.dot +172 -0
- package/.codex/skills/writing-skills/persuasion-principles.md +220 -0
- package/.codex/skills/writing-skills/references/anti-patterns.md +25 -0
- package/.codex/skills/writing-skills/references/claude-search-optimization.md +140 -0
- package/.codex/skills/writing-skills/references/discovery-workflow.md +11 -0
- package/.codex/skills/writing-skills/references/file-organization.md +32 -0
- package/.codex/skills/writing-skills/references/flowcharts-and-examples.md +57 -0
- package/.codex/skills/writing-skills/references/rationalization-hardening.md +75 -0
- package/.codex/skills/writing-skills/references/testing-skill-types.md +52 -0
- package/.template-manifest.json +631 -0
- package/AGENTS.md +719 -0
- package/AGENTS.override.md.example +7 -0
- package/CHANGELOG.md +28 -0
- package/LICENSE +21 -0
- package/README.md +641 -0
- package/bin/codexkit +148 -0
- package/install/bead-close.sh +20 -0
- package/install/bead-search.sh +18 -0
- package/install/bead-start.sh +20 -0
- package/install/bead-sync.sh +19 -0
- package/install/bead-verify.sh +20 -0
- package/install/generate-manifest.sh +55 -0
- package/install/install-global.sh +150 -0
- package/install/install-project.sh +704 -0
- package/install/install-remote.sh +152 -0
- package/install/patch.sh +478 -0
- package/install/plugin.sh +565 -0
- package/install/run-codex.sh +68 -0
- package/install/template.sh +620 -0
- package/install/validate.sh +653 -0
- package/package.json +39 -0
- package/templates/global/.codex-config-template.toml +87 -0
- package/templates/global/AGENTS.override.md +18 -0
- package/templates/global/README.md +29 -0
- package/templates/project/.codex-config-template.toml +26 -0
- package/templates/project/AGENTS.md.template +27 -0
- package/templates/project/README.md +24 -0
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: playwright
|
|
3
|
+
description: Browser automation for testing, screenshots, form validation, and UX verification. Uses Playwright CLI for token-efficient automation, with MCP fallback for complex exploratory workflows.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
tags: [automation, mcp, testing]
|
|
6
|
+
dependencies: []
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Playwright Browser Automation
|
|
10
|
+
|
|
11
|
+
## When to Use
|
|
12
|
+
|
|
13
|
+
- When you need automated browser testing, screenshots, or form workflows via Playwright CLI/MCP.
|
|
14
|
+
|
|
15
|
+
## When NOT to Use
|
|
16
|
+
|
|
17
|
+
- When you specifically need to control your existing Chrome session (use playwriter instead).
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
## Quick Decision
|
|
21
|
+
|
|
22
|
+
| Scenario | Use |
|
|
23
|
+
| --------------------------------------------------- | ------- |
|
|
24
|
+
| Quick screenshots, simple forms, token efficiency | **CLI** |
|
|
25
|
+
| Complex exploratory testing, self-healing workflows | **MCP** |
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## CLI Mode (Recommended)
|
|
30
|
+
|
|
31
|
+
The CLI approach is **token-efficient** - no large schemas or verbose accessibility trees in context. Best for most automation tasks.
|
|
32
|
+
|
|
33
|
+
### Installation
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npm install -g @playwright/cli@latest
|
|
37
|
+
playwright-cli install --skills # Optional: install for Claude/Copilot
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### Core Workflow
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
# 1. Open browser and navigate
|
|
44
|
+
bash({ command: "playwright-cli open https://example.com" })
|
|
45
|
+
|
|
46
|
+
# 2. Get element refs (snapshot)
|
|
47
|
+
bash({ command: "playwright-cli snapshot" })
|
|
48
|
+
|
|
49
|
+
# 3. Interact using refs
|
|
50
|
+
bash({ command: "playwright-cli fill e12 'test@example.com'" })
|
|
51
|
+
bash({ command: "playwright-cli click e34" })
|
|
52
|
+
|
|
53
|
+
# 4. Screenshot
|
|
54
|
+
bash({ command: "playwright-cli screenshot --filename=/tmp/result.png" })
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Commands Reference
|
|
58
|
+
|
|
59
|
+
#### Navigation
|
|
60
|
+
|
|
61
|
+
| Command | Description |
|
|
62
|
+
| ------------ | ---------------------------------------- |
|
|
63
|
+
| `open [url]` | Open browser, optionally navigate to URL |
|
|
64
|
+
| `goto <url>` | Navigate to URL |
|
|
65
|
+
| `close` | Close the page/browser |
|
|
66
|
+
| `go-back` | Go back to previous page |
|
|
67
|
+
| `go-forward` | Go forward to next page |
|
|
68
|
+
| `reload` | Reload current page |
|
|
69
|
+
|
|
70
|
+
#### Interaction
|
|
71
|
+
|
|
72
|
+
| Command | Description |
|
|
73
|
+
| -------------------------- | ----------------------------------------- |
|
|
74
|
+
| `snapshot` | Capture page snapshot to get element refs |
|
|
75
|
+
| `type <text>` | Type text into focused element |
|
|
76
|
+
| `fill <ref> <text>` | Fill text into specific element |
|
|
77
|
+
| `click <ref> [button]` | Click element (left/right/middle) |
|
|
78
|
+
| `dblclick <ref>` | Double-click element |
|
|
79
|
+
| `hover <ref>` | Hover over element |
|
|
80
|
+
| `drag <startRef> <endRef>` | Drag and drop |
|
|
81
|
+
| `select <ref> <value>` | Select dropdown option |
|
|
82
|
+
| `check <ref>` | Check checkbox/radio |
|
|
83
|
+
| `uncheck <ref>` | Uncheck checkbox |
|
|
84
|
+
| `upload <file>` | Upload file(s) |
|
|
85
|
+
|
|
86
|
+
#### Keyboard
|
|
87
|
+
|
|
88
|
+
| Command | Description |
|
|
89
|
+
| --------------- | -------------------------------------- |
|
|
90
|
+
| `press <key>` | Press key (e.g., `Enter`, `ArrowLeft`) |
|
|
91
|
+
| `keydown <key>` | Hold key down |
|
|
92
|
+
| `keyup <key>` | Release key |
|
|
93
|
+
|
|
94
|
+
#### Screenshots & PDF
|
|
95
|
+
|
|
96
|
+
| Command | Description |
|
|
97
|
+
| ------------------------------------ | -------------------------- |
|
|
98
|
+
| `screenshot [ref]` | Screenshot page or element |
|
|
99
|
+
| `screenshot --filename=/tmp/out.png` | Save to specific path |
|
|
100
|
+
| `pdf` | Save page as PDF |
|
|
101
|
+
| `pdf --filename=page.pdf` | Save PDF to specific path |
|
|
102
|
+
|
|
103
|
+
#### Tabs
|
|
104
|
+
|
|
105
|
+
| Command | Description |
|
|
106
|
+
| -------------------- | -------------- |
|
|
107
|
+
| `tab-list` | List all tabs |
|
|
108
|
+
| `tab-new [url]` | Create new tab |
|
|
109
|
+
| `tab-close [index]` | Close tab |
|
|
110
|
+
| `tab-select <index>` | Switch to tab |
|
|
111
|
+
|
|
112
|
+
#### Storage
|
|
113
|
+
|
|
114
|
+
| Command | Description |
|
|
115
|
+
| -------------------------------- | ------------------------------- |
|
|
116
|
+
| `cookie-list` | List cookies |
|
|
117
|
+
| `cookie-get <name>` | Get cookie value |
|
|
118
|
+
| `cookie-set <name> <value>` | Set cookie |
|
|
119
|
+
| `cookie-delete <name>` | Delete cookie |
|
|
120
|
+
| `cookie-clear` | Clear all cookies |
|
|
121
|
+
| `localstorage-list` | List localStorage |
|
|
122
|
+
| `localstorage-get <key>` | Get localStorage value |
|
|
123
|
+
| `localstorage-set <key> <value>` | Set localStorage |
|
|
124
|
+
| `sessionstorage-*` | Same pattern for sessionStorage |
|
|
125
|
+
|
|
126
|
+
#### Network
|
|
127
|
+
|
|
128
|
+
| Command | Description |
|
|
129
|
+
| ------------------- | --------------------- |
|
|
130
|
+
| `route <pattern>` | Mock network requests |
|
|
131
|
+
| `route-list` | List active routes |
|
|
132
|
+
| `unroute [pattern]` | Remove route(s) |
|
|
133
|
+
|
|
134
|
+
#### DevTools
|
|
135
|
+
|
|
136
|
+
| Command | Description |
|
|
137
|
+
| ----------------------- | ----------------------------------- |
|
|
138
|
+
| `console [min-level]` | List console messages |
|
|
139
|
+
| `network` | List network requests |
|
|
140
|
+
| `eval <func> [ref]` | Evaluate JavaScript on page/element |
|
|
141
|
+
| `run-code <code>` | Run Playwright code snippet |
|
|
142
|
+
| `tracing-start` | Start trace recording |
|
|
143
|
+
| `tracing-stop` | Stop trace recording |
|
|
144
|
+
| `video-start` | Start video recording |
|
|
145
|
+
| `video-stop [filename]` | Stop video recording |
|
|
146
|
+
|
|
147
|
+
### CLI Options
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# Headless mode
|
|
151
|
+
playwright-cli open https://example.com --headless
|
|
152
|
+
|
|
153
|
+
# Choose browser
|
|
154
|
+
playwright-cli open https://example.com --browser=firefox
|
|
155
|
+
|
|
156
|
+
# Emulate device
|
|
157
|
+
playwright-cli open https://example.com --device="iPhone 14"
|
|
158
|
+
|
|
159
|
+
# Named session (isolated browser)
|
|
160
|
+
playwright-cli -s=project1 open https://example.com
|
|
161
|
+
|
|
162
|
+
# See all options
|
|
163
|
+
playwright-cli --help
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### CLI Examples
|
|
167
|
+
|
|
168
|
+
#### Test Responsive Design
|
|
169
|
+
|
|
170
|
+
```typescript
|
|
171
|
+
// Desktop
|
|
172
|
+
bash({ command: "playwright-cli open http://localhost:3000" });
|
|
173
|
+
bash({ command: "playwright-cli resize 1920 1080" });
|
|
174
|
+
bash({ command: "playwright-cli screenshot --filename=/tmp/desktop.png" });
|
|
175
|
+
|
|
176
|
+
// Mobile
|
|
177
|
+
bash({ command: "playwright-cli resize 390 844" }); // iPhone 14
|
|
178
|
+
bash({ command: "playwright-cli screenshot --filename=/tmp/mobile.png" });
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
#### Fill a Form
|
|
182
|
+
|
|
183
|
+
```typescript
|
|
184
|
+
bash({ command: "playwright-cli open http://localhost:3000/contact" });
|
|
185
|
+
|
|
186
|
+
// Get snapshot to see element refs
|
|
187
|
+
bash({ command: "playwright-cli snapshot" });
|
|
188
|
+
|
|
189
|
+
// Fill using refs from snapshot output
|
|
190
|
+
bash({ command: "playwright-cli fill e12 'John Doe'" });
|
|
191
|
+
bash({ command: "playwright-cli fill e34 'john@example.com'" });
|
|
192
|
+
bash({ command: "playwright-cli click e56" }); // Submit button
|
|
193
|
+
|
|
194
|
+
// Wait for confirmation
|
|
195
|
+
bash({ command: "playwright-cli eval 'document.body.innerText.includes(\"Thank you\")'" });
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
#### Multi-Step Login Flow
|
|
199
|
+
|
|
200
|
+
```typescript
|
|
201
|
+
bash({ command: "playwright-cli open https://app.example.com/login" });
|
|
202
|
+
bash({ command: "playwright-cli snapshot" });
|
|
203
|
+
|
|
204
|
+
bash({ command: "playwright-cli fill e10 'username'" });
|
|
205
|
+
bash({ command: "playwright-cli fill e12 'password'" });
|
|
206
|
+
bash({ command: "playwright-cli click e15" });
|
|
207
|
+
|
|
208
|
+
// Verify logged in
|
|
209
|
+
bash({ command: "playwright-cli eval 'document.querySelector(\".dashboard\") !== null'" });
|
|
210
|
+
bash({ command: "playwright-cli screenshot --filename=/tmp/logged-in.png" });
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
#### Session Management
|
|
214
|
+
|
|
215
|
+
```typescript
|
|
216
|
+
// List all browser sessions
|
|
217
|
+
bash({ command: "playwright-cli list" });
|
|
218
|
+
|
|
219
|
+
// Use named session
|
|
220
|
+
bash({ command: "playwright-cli -s=project1 open https://example.com" });
|
|
221
|
+
|
|
222
|
+
// Close specific session
|
|
223
|
+
bash({ command: "playwright-cli -s=project1 close" });
|
|
224
|
+
|
|
225
|
+
// Close all browsers
|
|
226
|
+
bash({ command: "playwright-cli close-all" });
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## MCP Mode (Fallback)
|
|
232
|
+
|
|
233
|
+
Use MCP for complex exploratory workflows or when you need persistent browser state with rich introspection.
|
|
234
|
+
|
|
235
|
+
### Tools (8 Essential)
|
|
236
|
+
|
|
237
|
+
- `browser_navigate` - Navigate to URL
|
|
238
|
+
- `browser_snapshot` - Get accessibility snapshot with element refs
|
|
239
|
+
- `browser_take_screenshot` - Capture screenshot
|
|
240
|
+
- `browser_click` - Click element by ref
|
|
241
|
+
- `browser_type` - Type text (appends)
|
|
242
|
+
- `browser_fill` - Fill input (clears first, then types)
|
|
243
|
+
- `browser_wait_for` - Wait for text or selector
|
|
244
|
+
- `browser_resize` - Resize viewport or emulate device
|
|
245
|
+
|
|
246
|
+
### MCP Workflow
|
|
247
|
+
|
|
248
|
+
```typescript
|
|
249
|
+
// Navigate
|
|
250
|
+
skill_mcp(
|
|
251
|
+
(skill_name = "playwright"),
|
|
252
|
+
(tool_name = "browser_navigate"),
|
|
253
|
+
(arguments = '{"url": "https://example.com"}'),
|
|
254
|
+
);
|
|
255
|
+
|
|
256
|
+
// Get element refs
|
|
257
|
+
skill_mcp((skill_name = "playwright"), (tool_name = "browser_snapshot"));
|
|
258
|
+
|
|
259
|
+
// Interact
|
|
260
|
+
skill_mcp(
|
|
261
|
+
(skill_name = "playwright"),
|
|
262
|
+
(tool_name = "browser_click"),
|
|
263
|
+
(arguments = '{"element": "Submit", "ref": "e12"}'),
|
|
264
|
+
);
|
|
265
|
+
|
|
266
|
+
// Screenshot
|
|
267
|
+
skill_mcp(
|
|
268
|
+
(skill_name = "playwright"),
|
|
269
|
+
(tool_name = "browser_take_screenshot"),
|
|
270
|
+
(arguments = '{"filename": "/tmp/result.png"}'),
|
|
271
|
+
);
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
### MCP Configuration
|
|
275
|
+
|
|
276
|
+
```json
|
|
277
|
+
{
|
|
278
|
+
"playwright": {
|
|
279
|
+
"command": "npx",
|
|
280
|
+
"args": ["@playwright/mcp@latest"],
|
|
281
|
+
"includeTools": [
|
|
282
|
+
"browser_navigate",
|
|
283
|
+
"browser_snapshot",
|
|
284
|
+
"browser_take_screenshot",
|
|
285
|
+
"browser_click",
|
|
286
|
+
"browser_type",
|
|
287
|
+
"browser_fill",
|
|
288
|
+
"browser_wait_for",
|
|
289
|
+
"browser_resize"
|
|
290
|
+
]
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## Best Practices
|
|
298
|
+
|
|
299
|
+
1. **Default to CLI** for token efficiency
|
|
300
|
+
2. **Snapshot before interact** - always get element refs first
|
|
301
|
+
3. **Use named sessions** (`-s=`) for isolated browser contexts
|
|
302
|
+
4. **Save outputs to /tmp** for easy access and cleanup
|
|
303
|
+
5. **Check console/network** for debugging: `playwright-cli console error`
|
|
304
|
+
6. **Use eval for custom checks** when built-in commands aren't enough
|
|
305
|
+
|
|
306
|
+
## Troubleshooting
|
|
307
|
+
|
|
308
|
+
| Issue | Solution |
|
|
309
|
+
| ------------------- | ------------------------------------------------ |
|
|
310
|
+
| Element not found | Re-run snapshot to get fresh refs |
|
|
311
|
+
| Page not loading | Check network with `playwright-cli network` |
|
|
312
|
+
| Timing issues | Use `eval` to check conditions before proceeding |
|
|
313
|
+
| Session conflicts | Use named sessions (`-s=project1`) |
|
|
314
|
+
| Browser won't close | `playwright-cli kill-all` as last resort |
|
|
315
|
+
|
|
316
|
+
## References
|
|
317
|
+
|
|
318
|
+
- [Playwright CLI GitHub](https://github.com/microsoft/playwright-cli)
|
|
319
|
+
- [Playwright MCP GitHub](https://github.com/microsoft/playwright-mcp)
|
|
320
|
+
- [Playwright Docs](https://playwright.dev)
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"playwright": {
|
|
3
|
+
"command": "npx",
|
|
4
|
+
"args": ["@playwright/mcp@latest"],
|
|
5
|
+
"includeTools": [
|
|
6
|
+
"browser_navigate",
|
|
7
|
+
"browser_snapshot",
|
|
8
|
+
"browser_take_screenshot",
|
|
9
|
+
"browser_click",
|
|
10
|
+
"browser_type",
|
|
11
|
+
"browser_fill",
|
|
12
|
+
"browser_wait_for",
|
|
13
|
+
"browser_resize"
|
|
14
|
+
]
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: playwriter
|
|
3
|
+
description: Browser automation via Chrome extension. Single execute tool with full Playwright API. Uses your existing browser with extensions, sessions, cookies. 90% less context than traditional browser MCP.
|
|
4
|
+
mcp:
|
|
5
|
+
playwriter:
|
|
6
|
+
command: npx
|
|
7
|
+
args: ["playwriter@latest"]
|
|
8
|
+
version: 1.0.0
|
|
9
|
+
tags: [automation, mcp]
|
|
10
|
+
dependencies: []
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Playwriter Browser Automation (MCP)
|
|
14
|
+
|
|
15
|
+
## When to Use
|
|
16
|
+
|
|
17
|
+
- When you need to automate your existing Chrome browser session via the Playwriter extension.
|
|
18
|
+
|
|
19
|
+
## When NOT to Use
|
|
20
|
+
|
|
21
|
+
- When you need a fresh, isolated browser instance without your local extensions/cookies.
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
- **Uses your existing browser** - extensions, sessions, cookies all work
|
|
25
|
+
- **Single `execute` tool** - send Playwright code snippets directly
|
|
26
|
+
- **90% less context** - no tool schema bloat
|
|
27
|
+
- **Full Playwright API** - LLMs already know it from training
|
|
28
|
+
- **Bypass automation detection** - disconnect extension when needed
|
|
29
|
+
|
|
30
|
+
## Prerequisites
|
|
31
|
+
|
|
32
|
+
**You must install the Chrome extension first:**
|
|
33
|
+
|
|
34
|
+
1. Install [Playwriter Extension](https://chromewebstore.google.com/detail/playwriter-mcp/jfeammnjpkecdekppnclgkkffahnhfhe)
|
|
35
|
+
2. Click extension icon on tabs you want to control (icon turns green)
|
|
36
|
+
3. Now the skill can interact with those tabs
|
|
37
|
+
|
|
38
|
+
## Quick Start
|
|
39
|
+
|
|
40
|
+
After loading this skill:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
# List available tabs (enabled ones)
|
|
44
|
+
skill_mcp(skill_name="playwriter", tool_name="listTabs")
|
|
45
|
+
|
|
46
|
+
# Execute Playwright code on a tab
|
|
47
|
+
skill_mcp(skill_name="playwriter", tool_name="execute", arguments='{"tabId": "tab-id-here", "code": "await page.goto(\"https://example.com\")"}')
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Available Tools
|
|
51
|
+
|
|
52
|
+
| Tool | Description | Arguments |
|
|
53
|
+
| ---------- | -------------------------------- | --------------------------------- |
|
|
54
|
+
| `listTabs` | List tabs with extension enabled | `{}` |
|
|
55
|
+
| `execute` | Run Playwright code snippet | `{"tabId": "...", "code": "..."}` |
|
|
56
|
+
|
|
57
|
+
That's it. Two tools. The power is in the Playwright code you send.
|
|
58
|
+
|
|
59
|
+
## The `execute` Pattern
|
|
60
|
+
|
|
61
|
+
Send any valid Playwright code. The `page` object is already available:
|
|
62
|
+
|
|
63
|
+
```javascript
|
|
64
|
+
// Navigate
|
|
65
|
+
await page.goto("https://github.com");
|
|
66
|
+
|
|
67
|
+
// Click
|
|
68
|
+
await page.click("button.sign-in");
|
|
69
|
+
|
|
70
|
+
// Fill form
|
|
71
|
+
await page.fill("#email", "user@example.com");
|
|
72
|
+
await page.fill("#password", "secret");
|
|
73
|
+
await page.click('button[type="submit"]');
|
|
74
|
+
|
|
75
|
+
// Wait for element
|
|
76
|
+
await page.waitForSelector(".dashboard");
|
|
77
|
+
|
|
78
|
+
// Get text
|
|
79
|
+
const title = await page.title();
|
|
80
|
+
|
|
81
|
+
// Screenshot
|
|
82
|
+
await page.screenshot({ path: "/tmp/screenshot.png" });
|
|
83
|
+
|
|
84
|
+
// Complex selectors
|
|
85
|
+
await page.click("text=Submit");
|
|
86
|
+
await page.click('[data-testid="login-btn"]');
|
|
87
|
+
|
|
88
|
+
// Evaluate JS in page
|
|
89
|
+
const links = await page.evaluate(() =>
|
|
90
|
+
Array.from(document.querySelectorAll("a")).map((a) => a.href),
|
|
91
|
+
);
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Examples
|
|
95
|
+
|
|
96
|
+
### Navigate and Screenshot
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
skill_mcp(skill_name="playwriter", tool_name="execute", arguments='{"tabId": "abc123", "code": "await page.goto(\"https://example.com\"); await page.screenshot({ path: \"/tmp/example.png\" })"}')
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### Fill a Form
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
skill_mcp(skill_name="playwriter", tool_name="execute", arguments='{"tabId": "abc123", "code": "await page.fill(\"#name\", \"John Doe\"); await page.fill(\"#email\", \"john@example.com\"); await page.click(\"button[type=submit]\")"}')
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Login Flow (Using Your Saved Sessions)
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
# If you're already logged in via browser, just navigate
|
|
112
|
+
skill_mcp(skill_name="playwriter", tool_name="execute", arguments='{"tabId": "abc123", "code": "await page.goto(\"https://github.com/settings/profile\")"}')
|
|
113
|
+
|
|
114
|
+
# Your cookies/session already work - no login needed!
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Scrape Data
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
skill_mcp(skill_name="playwriter", tool_name="execute", arguments='{"tabId": "abc123", "code": "const items = await page.$$eval(\".product\", els => els.map(e => ({ name: e.querySelector(\"h2\").textContent, price: e.querySelector(\".price\").textContent }))); return items"}')
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Test Responsive
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
skill_mcp(skill_name="playwriter", tool_name="execute", arguments='{"tabId": "abc123", "code": "await page.setViewportSize({ width: 375, height: 667 }); await page.screenshot({ path: \"/tmp/mobile.png\" })"}')
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Bypassing Automation Detection
|
|
130
|
+
|
|
131
|
+
For sites that detect automation (Google login, etc.):
|
|
132
|
+
|
|
133
|
+
1. **Disconnect the extension** before sensitive actions
|
|
134
|
+
2. Perform login manually
|
|
135
|
+
3. **Reconnect** after authentication
|
|
136
|
+
4. Continue automation with your authenticated session
|
|
137
|
+
|
|
138
|
+
This works because the browser is real - not a Puppeteer/Playwright-spawned instance.
|
|
139
|
+
|
|
140
|
+
## vs Traditional Playwright MCP
|
|
141
|
+
|
|
142
|
+
| Aspect | `playwright` skill | `playwriter` skill |
|
|
143
|
+
| -------------------- | ----------------------- | ----------------------- |
|
|
144
|
+
| Tools | 17+ | 2 |
|
|
145
|
+
| Context usage | High | ~90% less |
|
|
146
|
+
| Browser | New instance | Your existing browser |
|
|
147
|
+
| Extensions | None | All yours |
|
|
148
|
+
| Sessions/cookies | Fresh | Your logged-in sessions |
|
|
149
|
+
| Automation detection | Always detected | Can bypass |
|
|
150
|
+
| API knowledge | Must learn tool schemas | Standard Playwright |
|
|
151
|
+
|
|
152
|
+
## Tips
|
|
153
|
+
|
|
154
|
+
- **List tabs first** to get valid tabId values
|
|
155
|
+
- **Chain commands** in single execute for efficiency
|
|
156
|
+
- **Use your sessions** - if you're logged into GitHub in Chrome, it just works
|
|
157
|
+
- **Return data** from execute to get values back
|
|
158
|
+
- **Standard Playwright docs** apply - no special syntax to learn
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: polar
|
|
3
|
+
description: Polar payment platform integration for monetization, subscriptions, and license keys. Use when implementing checkout, managing products, or building customer portals.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
tags: [integration, mcp]
|
|
6
|
+
dependencies: []
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Polar Integration
|
|
10
|
+
|
|
11
|
+
## When to Use
|
|
12
|
+
|
|
13
|
+
- When implementing Polar checkout, subscriptions, or license key flows.
|
|
14
|
+
|
|
15
|
+
## When NOT to Use
|
|
16
|
+
|
|
17
|
+
- When payments are handled by a different platform.
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
## What I Do
|
|
21
|
+
|
|
22
|
+
- Guide implementation of Polar checkout and payments
|
|
23
|
+
- Help with subscription management and billing
|
|
24
|
+
- Assist with license key validation
|
|
25
|
+
- Set up webhook handlers for payment events
|
|
26
|
+
|
|
27
|
+
## When to Use Me
|
|
28
|
+
|
|
29
|
+
- Implementing checkout flow for a product
|
|
30
|
+
- Adding subscription billing to an app
|
|
31
|
+
- Setting up license key validation
|
|
32
|
+
- Building a customer portal
|
|
33
|
+
- Handling payment webhooks
|
|
34
|
+
|
|
35
|
+
## Quick Start
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npm install @polar-sh/sdk
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
```typescript
|
|
42
|
+
import { Polar } from "@polar-sh/sdk";
|
|
43
|
+
|
|
44
|
+
const polar = new Polar({
|
|
45
|
+
accessToken: process.env.POLAR_ACCESS_TOKEN!,
|
|
46
|
+
server: "production", // or "sandbox"
|
|
47
|
+
});
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Key APIs
|
|
51
|
+
|
|
52
|
+
| API | Purpose |
|
|
53
|
+
| ----------------------- | --------------------------------- |
|
|
54
|
+
| `polar.products.*` | Create/manage products and prices |
|
|
55
|
+
| `polar.checkouts.*` | Create checkout sessions |
|
|
56
|
+
| `polar.subscriptions.*` | Manage subscriptions |
|
|
57
|
+
| `polar.orders.*` | View order history |
|
|
58
|
+
| `polar.customers.*` | Customer management |
|
|
59
|
+
| `polar.licenseKeys.*` | Issue and validate licenses |
|
|
60
|
+
|
|
61
|
+
## Environment Variables
|
|
62
|
+
|
|
63
|
+
| Variable | Description |
|
|
64
|
+
| ---------------------- | ------------------------------- |
|
|
65
|
+
| `POLAR_ACCESS_TOKEN` | Organization Access Token (OAT) |
|
|
66
|
+
| `POLAR_WEBHOOK_SECRET` | Webhook signing secret |
|
|
67
|
+
|
|
68
|
+
## Common Patterns
|
|
69
|
+
|
|
70
|
+
### Create Checkout
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
const checkout = await polar.checkouts.create({
|
|
74
|
+
productId: "prod_xxx",
|
|
75
|
+
successUrl: "https://myapp.com/success",
|
|
76
|
+
});
|
|
77
|
+
// Redirect to checkout.url
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Validate License Key
|
|
81
|
+
|
|
82
|
+
```typescript
|
|
83
|
+
const result = await polar.licenseKeys.validate({
|
|
84
|
+
key: "XXXX-XXXX-XXXX-XXXX",
|
|
85
|
+
organizationId: "org_xxx",
|
|
86
|
+
});
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Handle Webhook
|
|
90
|
+
|
|
91
|
+
```typescript
|
|
92
|
+
import { validateEvent } from "@polar-sh/sdk/webhooks";
|
|
93
|
+
|
|
94
|
+
const event = validateEvent(body, signature, process.env.POLAR_WEBHOOK_SECRET!);
|
|
95
|
+
// event.type: "subscription.created", "order.created", etc.
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Links
|
|
99
|
+
|
|
100
|
+
- [Dashboard](https://polar.sh)
|
|
101
|
+
- [API Docs](https://docs.polar.sh/api-reference)
|
|
102
|
+
- [SDK](https://www.npmjs.com/package/@polar-sh/sdk)
|