memory-journal-mcp 7.7.0 → 8.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/README.md +126 -56
- package/dist/chunk-6OHRCNYW.js +3231 -0
- package/dist/chunk-JFMITANR.js +5168 -0
- package/dist/{chunk-QCQPAF4I.js → chunk-MWNLAEHR.js} +301 -4321
- package/dist/{chunk-ARLYSFSI.js → chunk-UHSO65A4.js} +4242 -6092
- package/dist/cli.js +21 -3
- package/dist/index.d.ts +16 -13
- package/dist/index.js +4 -2
- package/dist/resources-IJVKDFGS.js +2 -0
- package/dist/tools-44DGXE3V.js +2 -0
- package/dist/worker-script.js +201 -20
- package/package.json +7 -4
- package/skills/README.md +62 -25
- package/skills/adversarial-performance/SKILL.md +139 -0
- package/skills/adversarial-performance/references/audit-categories.md +462 -0
- package/skills/adversarial-performance/references/copilot-performance-prompts.md +44 -0
- package/skills/adversarial-performance/references/copilot-usage.md +16 -0
- package/skills/adversarial-performance/references/feedback-loop.md +177 -0
- package/skills/adversarial-performance/references/multi-pass-performance-protocol.md +398 -0
- package/skills/adversarial-planner/SKILL.md +23 -54
- package/skills/adversarial-planner/references/copilot-integration.md +25 -40
- package/skills/adversarial-planner/references/copilot-usage.md +16 -0
- package/skills/adversarial-planner/references/multi-pass-protocol.md +4 -0
- package/skills/adversarial-security/SKILL.md +149 -0
- package/skills/adversarial-security/references/adversarial-base-protocol.md +44 -0
- package/skills/adversarial-security/references/audit-categories.md +723 -0
- package/skills/adversarial-security/references/copilot-security-prompts.md +142 -0
- package/skills/adversarial-security/references/copilot-usage.md +16 -0
- package/skills/adversarial-security/references/feedback-loop.md +206 -0
- package/skills/adversarial-security/references/journal-opt-out.md +7 -0
- package/skills/adversarial-security/references/multi-pass-security-protocol.md +403 -0
- package/skills/adversarial-skill-audit/SKILL.md +118 -0
- package/skills/adversarial-skill-audit/references/audit-categories.md +308 -0
- package/skills/adversarial-skill-audit/references/copilot-skill-prompts.md +68 -0
- package/skills/adversarial-skill-audit/references/copilot-usage.md +16 -0
- package/skills/adversarial-skill-audit/references/feedback-loop.md +155 -0
- package/skills/adversarial-skill-audit/references/multi-pass-skill-protocol.md +367 -0
- package/skills/adversarial-skill-audit/scripts/check-skills.ps1 +48 -0
- package/skills/adversarial-skill-audit/scripts/run-copilot.ps1 +52 -0
- package/skills/adversarial-workflow-audit/SKILL.md +82 -0
- package/skills/adversarial-workflow-audit/references/audit-categories.md +28 -0
- package/skills/adversarial-workflow-audit/references/copilot-usage.md +16 -0
- package/skills/adversarial-workflow-audit/scripts/check-workflows.ps1 +24 -0
- package/skills/agents-sdk/SKILL.md +220 -0
- package/skills/agents-sdk/references/callable.md +92 -0
- package/skills/agents-sdk/references/codemode.md +209 -0
- package/skills/agents-sdk/references/email.md +144 -0
- package/skills/agents-sdk/references/mcp/SKILL.md +65 -0
- package/skills/agents-sdk/references/mcp/code-mode-reference.md +245 -0
- package/skills/agents-sdk/references/mcp/oauth-reference.md +359 -0
- package/skills/agents-sdk/references/mcp/references/architecture-reference.md +208 -0
- package/skills/agents-sdk/references/mcp/references/cloudflare-quickstart.md +156 -0
- package/skills/agents-sdk/references/mcp/references/error-handling.md +343 -0
- package/skills/agents-sdk/references/mcp/references/http-security.md +164 -0
- package/skills/agents-sdk/references/mcp/references/implementation-guide.md +507 -0
- package/skills/agents-sdk/references/mcp/references/testing-reference.md +171 -0
- package/skills/agents-sdk/references/mcp.md +157 -0
- package/skills/agents-sdk/references/state-scheduling.md +164 -0
- package/skills/agents-sdk/references/streaming-chat.md +168 -0
- package/skills/agents-sdk/references/workflows.md +136 -0
- package/skills/auth-identity/SKILL.md +48 -0
- package/skills/autonomous-dev/SKILL.md +46 -23
- package/skills/autonomous-dev/references/workflow_orchestration.md +22 -0
- package/skills/aws/SKILL.md +39 -0
- package/skills/azure/SKILL.md +38 -0
- package/skills/bin/sync.js +7 -1
- package/skills/biome/SKILL.md +59 -0
- package/skills/bun/SKILL.md +8 -2
- package/skills/cloudflare/SKILL.md +37 -0
- package/skills/cloudflare/references/agents-sdk/README.md +95 -0
- package/skills/cloudflare/references/agents-sdk/api.md +195 -0
- package/skills/cloudflare/references/agents-sdk/configuration.md +178 -0
- package/skills/cloudflare/references/agents-sdk/gotchas.md +173 -0
- package/skills/cloudflare/references/agents-sdk/patterns.md +215 -0
- package/skills/cloudflare/references/ai-gateway/README.md +176 -0
- package/skills/cloudflare/references/ai-gateway/configuration.md +117 -0
- package/skills/cloudflare/references/ai-gateway/dynamic-routing.md +88 -0
- package/skills/cloudflare/references/ai-gateway/features.md +96 -0
- package/skills/cloudflare/references/ai-gateway/sdk-integration.md +110 -0
- package/skills/cloudflare/references/ai-gateway/troubleshooting.md +90 -0
- package/skills/cloudflare/references/ai-search/README.md +145 -0
- package/skills/cloudflare/references/ai-search/api.md +87 -0
- package/skills/cloudflare/references/ai-search/configuration.md +91 -0
- package/skills/cloudflare/references/ai-search/gotchas.md +92 -0
- package/skills/cloudflare/references/ai-search/patterns.md +87 -0
- package/skills/cloudflare/references/analytics-engine/README.md +96 -0
- package/skills/cloudflare/references/analytics-engine/api.md +112 -0
- package/skills/cloudflare/references/analytics-engine/configuration.md +107 -0
- package/skills/cloudflare/references/analytics-engine/gotchas.md +87 -0
- package/skills/cloudflare/references/analytics-engine/patterns.md +83 -0
- package/skills/cloudflare/references/api/README.md +66 -0
- package/skills/cloudflare/references/api/api.md +205 -0
- package/skills/cloudflare/references/api/configuration.md +158 -0
- package/skills/cloudflare/references/api/gotchas.md +231 -0
- package/skills/cloudflare/references/api/patterns.md +208 -0
- package/skills/cloudflare/references/api-shield/README.md +44 -0
- package/skills/cloudflare/references/api-shield/api.md +153 -0
- package/skills/cloudflare/references/api-shield/configuration.md +210 -0
- package/skills/cloudflare/references/api-shield/gotchas.md +132 -0
- package/skills/cloudflare/references/api-shield/patterns.md +185 -0
- package/skills/cloudflare/references/argo-smart-routing/README.md +96 -0
- package/skills/cloudflare/references/argo-smart-routing/api.md +253 -0
- package/skills/cloudflare/references/argo-smart-routing/configuration.md +205 -0
- package/skills/cloudflare/references/argo-smart-routing/gotchas.md +115 -0
- package/skills/cloudflare/references/argo-smart-routing/patterns.md +107 -0
- package/skills/cloudflare/references/bindings/README.md +127 -0
- package/skills/cloudflare/references/bindings/api.md +214 -0
- package/skills/cloudflare/references/bindings/configuration.md +200 -0
- package/skills/cloudflare/references/bindings/gotchas.md +210 -0
- package/skills/cloudflare/references/bindings/patterns.md +205 -0
- package/skills/cloudflare/references/bot-management/README.md +95 -0
- package/skills/cloudflare/references/bot-management/api.md +175 -0
- package/skills/cloudflare/references/bot-management/configuration.md +175 -0
- package/skills/cloudflare/references/bot-management/gotchas.md +116 -0
- package/skills/cloudflare/references/bot-management/patterns.md +181 -0
- package/skills/cloudflare/references/browser-rendering/README.md +84 -0
- package/skills/cloudflare/references/browser-rendering/api.md +108 -0
- package/skills/cloudflare/references/browser-rendering/configuration.md +78 -0
- package/skills/cloudflare/references/browser-rendering/gotchas.md +91 -0
- package/skills/cloudflare/references/browser-rendering/patterns.md +93 -0
- package/skills/cloudflare/references/c3/README.md +111 -0
- package/skills/cloudflare/references/c3/api.md +71 -0
- package/skills/cloudflare/references/c3/configuration.md +85 -0
- package/skills/cloudflare/references/c3/gotchas.md +97 -0
- package/skills/cloudflare/references/c3/patterns.md +84 -0
- package/skills/cloudflare/references/cache-reserve/README.md +150 -0
- package/skills/cloudflare/references/cache-reserve/api.md +184 -0
- package/skills/cloudflare/references/cache-reserve/configuration.md +170 -0
- package/skills/cloudflare/references/cache-reserve/gotchas.md +136 -0
- package/skills/cloudflare/references/cache-reserve/patterns.md +197 -0
- package/skills/cloudflare/references/containers/README.md +87 -0
- package/skills/cloudflare/references/containers/api.md +197 -0
- package/skills/cloudflare/references/containers/configuration.md +191 -0
- package/skills/cloudflare/references/containers/gotchas.md +182 -0
- package/skills/cloudflare/references/containers/patterns.md +204 -0
- package/skills/cloudflare/references/cron-triggers/README.md +101 -0
- package/skills/cloudflare/references/cron-triggers/api.md +224 -0
- package/skills/cloudflare/references/cron-triggers/configuration.md +190 -0
- package/skills/cloudflare/references/cron-triggers/gotchas.md +207 -0
- package/skills/cloudflare/references/cron-triggers/patterns.md +274 -0
- package/skills/cloudflare/references/d1/README.md +137 -0
- package/skills/cloudflare/references/d1/api.md +213 -0
- package/skills/cloudflare/references/d1/configuration.md +198 -0
- package/skills/cloudflare/references/d1/gotchas.md +98 -0
- package/skills/cloudflare/references/d1/patterns.md +240 -0
- package/skills/cloudflare/references/ddos/README.md +42 -0
- package/skills/cloudflare/references/ddos/api.md +158 -0
- package/skills/cloudflare/references/ddos/configuration.md +94 -0
- package/skills/cloudflare/references/ddos/gotchas.md +114 -0
- package/skills/cloudflare/references/ddos/patterns.md +220 -0
- package/skills/cloudflare/references/decision-trees.md +95 -0
- package/skills/cloudflare/references/do-storage/README.md +79 -0
- package/skills/cloudflare/references/do-storage/api.md +107 -0
- package/skills/cloudflare/references/do-storage/configuration.md +114 -0
- package/skills/cloudflare/references/do-storage/gotchas.md +153 -0
- package/skills/cloudflare/references/do-storage/patterns.md +210 -0
- package/skills/cloudflare/references/do-storage/testing.md +186 -0
- package/skills/cloudflare/references/durable-objects/README.md +194 -0
- package/skills/cloudflare/references/durable-objects/api.md +205 -0
- package/skills/cloudflare/references/durable-objects/configuration.md +160 -0
- package/skills/cloudflare/references/durable-objects/gotchas.md +200 -0
- package/skills/cloudflare/references/durable-objects/patterns.md +205 -0
- package/skills/cloudflare/references/email-routing/README.md +89 -0
- package/skills/cloudflare/references/email-routing/api.md +192 -0
- package/skills/cloudflare/references/email-routing/configuration.md +187 -0
- package/skills/cloudflare/references/email-routing/gotchas.md +203 -0
- package/skills/cloudflare/references/email-routing/patterns.md +241 -0
- package/skills/cloudflare/references/email-workers/README.md +153 -0
- package/skills/cloudflare/references/email-workers/api.md +227 -0
- package/skills/cloudflare/references/email-workers/configuration.md +115 -0
- package/skills/cloudflare/references/email-workers/gotchas.md +133 -0
- package/skills/cloudflare/references/email-workers/patterns.md +108 -0
- package/skills/cloudflare/references/graphql-api/README.md +147 -0
- package/skills/cloudflare/references/graphql-api/api.md +175 -0
- package/skills/cloudflare/references/graphql-api/configuration.md +151 -0
- package/skills/cloudflare/references/graphql-api/gotchas.md +111 -0
- package/skills/cloudflare/references/graphql-api/patterns.md +276 -0
- package/skills/cloudflare/references/hyperdrive/README.md +84 -0
- package/skills/cloudflare/references/hyperdrive/api.md +149 -0
- package/skills/cloudflare/references/hyperdrive/configuration.md +166 -0
- package/skills/cloudflare/references/hyperdrive/gotchas.md +77 -0
- package/skills/cloudflare/references/hyperdrive/patterns.md +203 -0
- package/skills/cloudflare/references/images/README.md +65 -0
- package/skills/cloudflare/references/images/api.md +101 -0
- package/skills/cloudflare/references/images/configuration.md +206 -0
- package/skills/cloudflare/references/images/gotchas.md +106 -0
- package/skills/cloudflare/references/images/patterns.md +126 -0
- package/skills/cloudflare/references/kv/README.md +90 -0
- package/skills/cloudflare/references/kv/api.md +163 -0
- package/skills/cloudflare/references/kv/configuration.md +148 -0
- package/skills/cloudflare/references/kv/gotchas.md +133 -0
- package/skills/cloudflare/references/kv/patterns.md +195 -0
- package/skills/cloudflare/references/miniflare/README.md +113 -0
- package/skills/cloudflare/references/miniflare/api.md +204 -0
- package/skills/cloudflare/references/miniflare/configuration.md +174 -0
- package/skills/cloudflare/references/miniflare/gotchas.md +179 -0
- package/skills/cloudflare/references/miniflare/patterns.md +187 -0
- package/skills/cloudflare/references/network-interconnect/README.md +104 -0
- package/skills/cloudflare/references/network-interconnect/api.md +220 -0
- package/skills/cloudflare/references/network-interconnect/configuration.md +123 -0
- package/skills/cloudflare/references/network-interconnect/gotchas.md +175 -0
- package/skills/cloudflare/references/network-interconnect/patterns.md +174 -0
- package/skills/cloudflare/references/observability/README.md +93 -0
- package/skills/cloudflare/references/observability/api.md +168 -0
- package/skills/cloudflare/references/observability/configuration.md +178 -0
- package/skills/cloudflare/references/observability/gotchas.md +125 -0
- package/skills/cloudflare/references/observability/patterns.md +105 -0
- package/skills/cloudflare/references/pages/README.md +92 -0
- package/skills/cloudflare/references/pages/api.md +205 -0
- package/skills/cloudflare/references/pages/configuration.md +216 -0
- package/skills/cloudflare/references/pages/gotchas.md +218 -0
- package/skills/cloudflare/references/pages/patterns.md +215 -0
- package/skills/cloudflare/references/pages-functions/README.md +104 -0
- package/skills/cloudflare/references/pages-functions/api.md +159 -0
- package/skills/cloudflare/references/pages-functions/configuration.md +130 -0
- package/skills/cloudflare/references/pages-functions/gotchas.md +102 -0
- package/skills/cloudflare/references/pages-functions/patterns.md +148 -0
- package/skills/cloudflare/references/pipelines/README.md +109 -0
- package/skills/cloudflare/references/pipelines/api.md +214 -0
- package/skills/cloudflare/references/pipelines/configuration.md +98 -0
- package/skills/cloudflare/references/pipelines/gotchas.md +84 -0
- package/skills/cloudflare/references/pipelines/patterns.md +87 -0
- package/skills/cloudflare/references/product-index.md +112 -0
- package/skills/cloudflare/references/pulumi/README.md +113 -0
- package/skills/cloudflare/references/pulumi/api.md +230 -0
- package/skills/cloudflare/references/pulumi/configuration.md +213 -0
- package/skills/cloudflare/references/pulumi/gotchas.md +205 -0
- package/skills/cloudflare/references/pulumi/patterns.md +260 -0
- package/skills/cloudflare/references/queues/README.md +99 -0
- package/skills/cloudflare/references/queues/api.md +211 -0
- package/skills/cloudflare/references/queues/configuration.md +151 -0
- package/skills/cloudflare/references/queues/gotchas.md +210 -0
- package/skills/cloudflare/references/queues/patterns.md +220 -0
- package/skills/cloudflare/references/r2/README.md +97 -0
- package/skills/cloudflare/references/r2/api.md +235 -0
- package/skills/cloudflare/references/r2/configuration.md +176 -0
- package/skills/cloudflare/references/r2/gotchas.md +190 -0
- package/skills/cloudflare/references/r2/patterns.md +203 -0
- package/skills/cloudflare/references/r2-data-catalog/README.md +157 -0
- package/skills/cloudflare/references/r2-data-catalog/api.md +199 -0
- package/skills/cloudflare/references/r2-data-catalog/configuration.md +205 -0
- package/skills/cloudflare/references/r2-data-catalog/gotchas.md +170 -0
- package/skills/cloudflare/references/r2-data-catalog/patterns.md +191 -0
- package/skills/cloudflare/references/r2-sql/README.md +138 -0
- package/skills/cloudflare/references/r2-sql/SKILL.md.backup +512 -0
- package/skills/cloudflare/references/r2-sql/api.md +159 -0
- package/skills/cloudflare/references/r2-sql/configuration.md +152 -0
- package/skills/cloudflare/references/r2-sql/gotchas.md +228 -0
- package/skills/cloudflare/references/r2-sql/patterns.md +230 -0
- package/skills/cloudflare/references/realtime-sfu/README.md +66 -0
- package/skills/cloudflare/references/realtime-sfu/api.md +164 -0
- package/skills/cloudflare/references/realtime-sfu/configuration.md +141 -0
- package/skills/cloudflare/references/realtime-sfu/gotchas.md +138 -0
- package/skills/cloudflare/references/realtime-sfu/patterns.md +187 -0
- package/skills/cloudflare/references/realtimekit/README.md +118 -0
- package/skills/cloudflare/references/realtimekit/api.md +234 -0
- package/skills/cloudflare/references/realtimekit/configuration.md +226 -0
- package/skills/cloudflare/references/realtimekit/gotchas.md +206 -0
- package/skills/cloudflare/references/realtimekit/patterns.md +240 -0
- package/skills/cloudflare/references/sandbox/README.md +104 -0
- package/skills/cloudflare/references/sandbox/api.md +200 -0
- package/skills/cloudflare/references/sandbox/configuration.md +154 -0
- package/skills/cloudflare/references/sandbox/gotchas.md +201 -0
- package/skills/cloudflare/references/sandbox/patterns.md +195 -0
- package/skills/cloudflare/references/secrets-store/README.md +77 -0
- package/skills/cloudflare/references/secrets-store/api.md +199 -0
- package/skills/cloudflare/references/secrets-store/configuration.md +187 -0
- package/skills/cloudflare/references/secrets-store/gotchas.md +97 -0
- package/skills/cloudflare/references/secrets-store/patterns.md +218 -0
- package/skills/cloudflare/references/smart-placement/README.md +143 -0
- package/skills/cloudflare/references/smart-placement/api.md +192 -0
- package/skills/cloudflare/references/smart-placement/configuration.md +202 -0
- package/skills/cloudflare/references/smart-placement/gotchas.md +180 -0
- package/skills/cloudflare/references/smart-placement/patterns.md +190 -0
- package/skills/cloudflare/references/snippets/README.md +74 -0
- package/skills/cloudflare/references/snippets/api.md +214 -0
- package/skills/cloudflare/references/snippets/configuration.md +239 -0
- package/skills/cloudflare/references/snippets/gotchas.md +104 -0
- package/skills/cloudflare/references/snippets/patterns.md +135 -0
- package/skills/cloudflare/references/spectrum/README.md +52 -0
- package/skills/cloudflare/references/spectrum/api.md +184 -0
- package/skills/cloudflare/references/spectrum/configuration.md +203 -0
- package/skills/cloudflare/references/spectrum/gotchas.md +155 -0
- package/skills/cloudflare/references/spectrum/patterns.md +206 -0
- package/skills/cloudflare/references/static-assets/README.md +65 -0
- package/skills/cloudflare/references/static-assets/api.md +201 -0
- package/skills/cloudflare/references/static-assets/configuration.md +186 -0
- package/skills/cloudflare/references/static-assets/gotchas.md +164 -0
- package/skills/cloudflare/references/static-assets/patterns.md +189 -0
- package/skills/cloudflare/references/stream/README.md +123 -0
- package/skills/cloudflare/references/stream/api-live.md +202 -0
- package/skills/cloudflare/references/stream/api.md +206 -0
- package/skills/cloudflare/references/stream/configuration.md +151 -0
- package/skills/cloudflare/references/stream/gotchas.md +139 -0
- package/skills/cloudflare/references/stream/patterns.md +217 -0
- package/skills/cloudflare/references/tail-workers/README.md +92 -0
- package/skills/cloudflare/references/tail-workers/api.md +203 -0
- package/skills/cloudflare/references/tail-workers/configuration.md +178 -0
- package/skills/cloudflare/references/tail-workers/gotchas.md +206 -0
- package/skills/cloudflare/references/tail-workers/patterns.md +190 -0
- package/skills/cloudflare/references/terraform/README.md +100 -0
- package/skills/cloudflare/references/terraform/api.md +178 -0
- package/skills/cloudflare/references/terraform/configuration.md +197 -0
- package/skills/cloudflare/references/terraform/gotchas.md +150 -0
- package/skills/cloudflare/references/terraform/patterns.md +174 -0
- package/skills/cloudflare/references/tunnel/README.md +137 -0
- package/skills/cloudflare/references/tunnel/api.md +205 -0
- package/skills/cloudflare/references/tunnel/configuration.md +163 -0
- package/skills/cloudflare/references/tunnel/gotchas.md +159 -0
- package/skills/cloudflare/references/tunnel/networking.md +174 -0
- package/skills/cloudflare/references/tunnel/patterns.md +199 -0
- package/skills/cloudflare/references/turn/README.md +86 -0
- package/skills/cloudflare/references/turn/api.md +236 -0
- package/skills/cloudflare/references/turn/configuration.md +181 -0
- package/skills/cloudflare/references/turn/gotchas.md +236 -0
- package/skills/cloudflare/references/turn/patterns.md +228 -0
- package/skills/cloudflare/references/turnstile/README.md +102 -0
- package/skills/cloudflare/references/turnstile/api.md +253 -0
- package/skills/cloudflare/references/turnstile/configuration.md +242 -0
- package/skills/cloudflare/references/turnstile/gotchas.md +253 -0
- package/skills/cloudflare/references/turnstile/patterns.md +195 -0
- package/skills/cloudflare/references/vectorize/README.md +133 -0
- package/skills/cloudflare/references/vectorize/api.md +89 -0
- package/skills/cloudflare/references/vectorize/configuration.md +91 -0
- package/skills/cloudflare/references/vectorize/gotchas.md +83 -0
- package/skills/cloudflare/references/vectorize/patterns.md +92 -0
- package/skills/cloudflare/references/waf/README.md +125 -0
- package/skills/cloudflare/references/waf/api.md +203 -0
- package/skills/cloudflare/references/waf/configuration.md +215 -0
- package/skills/cloudflare/references/waf/gotchas.md +208 -0
- package/skills/cloudflare/references/waf/patterns.md +236 -0
- package/skills/cloudflare/references/web-analytics/README.md +149 -0
- package/skills/cloudflare/references/web-analytics/configuration.md +81 -0
- package/skills/cloudflare/references/web-analytics/gotchas.md +86 -0
- package/skills/cloudflare/references/web-analytics/integration.md +63 -0
- package/skills/cloudflare/references/web-analytics/patterns.md +98 -0
- package/skills/cloudflare/references/workerd/README.md +85 -0
- package/skills/cloudflare/references/workerd/api.md +219 -0
- package/skills/cloudflare/references/workerd/configuration.md +200 -0
- package/skills/cloudflare/references/workerd/gotchas.md +151 -0
- package/skills/cloudflare/references/workerd/patterns.md +205 -0
- package/skills/cloudflare/references/workers/README.md +110 -0
- package/skills/cloudflare/references/workers/api.md +197 -0
- package/skills/cloudflare/references/workers/configuration.md +184 -0
- package/skills/cloudflare/references/workers/frameworks.md +200 -0
- package/skills/cloudflare/references/workers/gotchas.md +145 -0
- package/skills/cloudflare/references/workers/patterns.md +220 -0
- package/skills/cloudflare/references/workers-ai/README.md +206 -0
- package/skills/cloudflare/references/workers-ai/api.md +115 -0
- package/skills/cloudflare/references/workers-ai/configuration.md +98 -0
- package/skills/cloudflare/references/workers-ai/gotchas.md +130 -0
- package/skills/cloudflare/references/workers-ai/patterns.md +122 -0
- package/skills/cloudflare/references/workers-for-platforms/README.md +95 -0
- package/skills/cloudflare/references/workers-for-platforms/api.md +212 -0
- package/skills/cloudflare/references/workers-for-platforms/configuration.md +178 -0
- package/skills/cloudflare/references/workers-for-platforms/gotchas.md +134 -0
- package/skills/cloudflare/references/workers-for-platforms/patterns.md +210 -0
- package/skills/cloudflare/references/workers-playground/README.md +131 -0
- package/skills/cloudflare/references/workers-playground/api.md +101 -0
- package/skills/cloudflare/references/workers-playground/configuration.md +169 -0
- package/skills/cloudflare/references/workers-playground/gotchas.md +88 -0
- package/skills/cloudflare/references/workers-playground/patterns.md +134 -0
- package/skills/cloudflare/references/workers-vpc/README.md +130 -0
- package/skills/cloudflare/references/workers-vpc/api.md +196 -0
- package/skills/cloudflare/references/workers-vpc/configuration.md +151 -0
- package/skills/cloudflare/references/workers-vpc/gotchas.md +171 -0
- package/skills/cloudflare/references/workers-vpc/patterns.md +235 -0
- package/skills/cloudflare/references/workflows/README.md +72 -0
- package/skills/cloudflare/references/workflows/api.md +237 -0
- package/skills/cloudflare/references/workflows/configuration.md +158 -0
- package/skills/cloudflare/references/workflows/gotchas.md +97 -0
- package/skills/cloudflare/references/workflows/patterns.md +245 -0
- package/skills/cloudflare/references/wrangler/README.md +143 -0
- package/skills/cloudflare/references/wrangler/api.md +188 -0
- package/skills/cloudflare/references/wrangler/configuration.md +198 -0
- package/skills/cloudflare/references/wrangler/gotchas.md +212 -0
- package/skills/cloudflare/references/wrangler/patterns.md +211 -0
- package/skills/cloudflare/references/zaraz/IMPLEMENTATION_SUMMARY.md +131 -0
- package/skills/cloudflare/references/zaraz/README.md +114 -0
- package/skills/cloudflare/references/zaraz/api.md +118 -0
- package/skills/cloudflare/references/zaraz/configuration.md +94 -0
- package/skills/cloudflare/references/zaraz/gotchas.md +88 -0
- package/skills/cloudflare/references/zaraz/patterns.md +77 -0
- package/skills/docker/SKILL.md +7 -101
- package/skills/docker/references/advanced-examples.md +71 -0
- package/skills/docker/references/templates.md +34 -0
- package/skills/docs-marketer/SKILL.md +178 -0
- package/skills/docs-marketer/references/audit-categories.md +328 -0
- package/skills/docs-marketer/references/copilot-docs-prompts.md +88 -0
- package/skills/docs-marketer/references/copilot-usage.md +16 -0
- package/skills/docs-marketer/references/feedback-loop.md +155 -0
- package/skills/docs-marketer/references/multi-pass-docs-protocol.md +410 -0
- package/skills/drizzle-orm/SKILL.md +82 -0
- package/skills/durable-objects/SKILL.md +167 -0
- package/skills/durable-objects/references/advanced_features.md +29 -0
- package/skills/durable-objects/references/rules.md +300 -0
- package/skills/durable-objects/references/testing.md +261 -0
- package/skills/durable-objects/references/workers.md +336 -0
- package/skills/gcp/SKILL.md +37 -0
- package/skills/github-actions/SKILL.md +5 -58
- package/skills/github-actions/references/templates.md +65 -0
- package/skills/github-commander/SKILL.md +13 -21
- package/skills/github-commander/workflows/copilot-audit.md +12 -12
- package/skills/github-copilot-cli/SKILL.md +21 -26
- package/skills/github-repo-setup/SKILL.md +136 -0
- package/skills/github-repo-setup/references/community-standards.md +136 -0
- package/skills/github-repo-setup/references/github-automation.md +490 -0
- package/skills/github-repo-setup/references/inline-templates.md +205 -0
- package/skills/github-repo-setup/references/project-config.md +320 -0
- package/skills/gitlab/SKILL.md +7 -2
- package/skills/gitlab/package-lock.json +389 -389
- package/skills/golang/SKILL.md +8 -1
- package/skills/graphql/SKILL.md +30 -0
- package/skills/hono/SKILL.md +82 -0
- package/skills/journal-optimizer/SKILL.md +206 -0
- package/skills/journal-optimizer/references/optimizer-scripts.md +169 -0
- package/skills/llm-app-engineering/SKILL.md +18 -0
- package/skills/monorepo/SKILL.md +56 -0
- package/skills/multi-agent-orchestration/SKILL.md +14 -0
- package/skills/mysql/SKILL.md +6 -2
- package/skills/next-best-practices/SKILL.md +86 -0
- package/skills/next-best-practices/references/cache-components-examples.md +234 -0
- package/skills/next-best-practices/references/cache-components.md +210 -0
- package/skills/next-best-practices/references/upgrade-decision-tree.md +33 -0
- package/skills/next-best-practices/references/upgrade.md +43 -0
- package/skills/next-cache-components/SKILL.md +441 -0
- package/skills/next-upgrade/SKILL.md +43 -0
- package/skills/next-upgrade/references/decision-tree.md +33 -0
- package/skills/nodejs/SKILL.md +46 -0
- package/skills/opentelemetry/SKILL.md +62 -0
- package/skills/package.json +39 -4
- package/skills/playwright-standard/SKILL.md +6 -11
- package/skills/playwright-standard/references/locators.md +7 -0
- package/skills/postgres/SKILL.md +6 -1
- package/skills/python/SKILL.md +8 -70
- package/skills/python/references/advanced-patterns.md +37 -0
- package/skills/python/references/config-templates.md +48 -0
- package/skills/rag-pipelines/SKILL.md +14 -0
- package/skills/redis/SKILL.md +31 -0
- package/skills/render/SKILL.md +35 -0
- package/skills/rust/SKILL.md +15 -25
- package/skills/rust/references/borrow-checker.md +13 -0
- package/skills/rust/references/ecosystem.md +11 -0
- package/skills/sandbox-sdk/SKILL.md +186 -0
- package/skills/sandbox-sdk/references/api-quick-ref.md +113 -0
- package/skills/sandbox-sdk/references/examples.md +52 -0
- package/skills/shadcn-ui/SKILL.md +22 -57
- package/skills/skill-builder/SKILL.md +23 -424
- package/skills/skill-builder/references/tutorial.md +457 -0
- package/skills/sqlite/SKILL.md +16 -5
- package/skills/table.md +59 -0
- package/skills/tailwind-css/SKILL.md +11 -60
- package/skills/tailwind-css/references/component-patterns.md +52 -0
- package/skills/trpc/SKILL.md +56 -0
- package/skills/typescript/SKILL.md +30 -433
- package/skills/typescript/references/tutorial.md +453 -0
- package/skills/vercel-ai-sdk/SKILL.md +48 -0
- package/skills/vitest-standard/SKILL.md +5 -11
- package/skills/vitest-standard/references/assertions.md +11 -0
- package/skills/web-perf/SKILL.md +207 -0
- package/skills/workers-best-practices/SKILL.md +120 -0
- package/skills/workers-best-practices/references/anti-patterns.md +18 -0
- package/skills/workers-best-practices/references/review.md +174 -0
- package/skills/workers-best-practices/references/rules.md +485 -0
- package/skills/wrangler/SKILL.md +43 -0
- package/skills/wrangler/references/cli-commands.md +861 -0
- package/skills/zod/SKILL.md +48 -0
- package/dist/tools-P4VGG4FH.js +0 -1
- package/skills/react-best-practices/AGENTS.md +0 -2883
- package/skills/react-best-practices/SKILL.md +0 -138
- /package/skills/{react-best-practices → next-best-practices}/README.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/metadata.json +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/_sections.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/_template.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/advanced-event-handler-refs.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/advanced-init-once.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/advanced-use-latest.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/async-api-routes.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/async-defer-await.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/async-dependencies.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/async-parallel.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/async-suspense-boundaries.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/bundle-barrel-imports.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/bundle-conditional.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/bundle-defer-third-party.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/bundle-dynamic-imports.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/bundle-preload.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/client-event-listeners.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/client-localstorage-schema.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/client-passive-event-listeners.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/client-swr-dedup.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-batch-dom-css.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-function-results.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-property-access.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-storage.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-combine-iterations.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-early-exit.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-hoist-regexp.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-index-maps.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-length-check-first.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-min-max-loop.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-set-map-lookups.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/js-tosorted-immutable.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-activity.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-animate-svg-wrapper.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-conditional-render.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-content-visibility.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hoist-jsx.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-no-flicker.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-suppress-warning.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-svg-precision.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rendering-usetransition-loading.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-defer-reads.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-dependencies.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state-no-effect.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-functional-setstate.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-lazy-state-init.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo-with-default-value.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-move-effect-to-event.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-simple-expression-in-memo.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-transitions.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/rerender-use-ref-transient-values.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/server-after-nonblocking.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/server-auth-actions.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-lru.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-react.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/server-dedup-props.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/server-parallel-fetching.md +0 -0
- /package/skills/{react-best-practices → next-best-practices}/rules/server-serialization.md +0 -0
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
# Wrangler Development Patterns
|
|
2
|
+
|
|
3
|
+
Common workflows and best practices.
|
|
4
|
+
|
|
5
|
+
## New Worker Project
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
wrangler init my-worker && cd my-worker
|
|
9
|
+
wrangler dev # Develop locally
|
|
10
|
+
wrangler deploy # Deploy
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Local Development
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
wrangler dev # Local mode (fast, simulated)
|
|
17
|
+
wrangler dev --remote # Remote mode (production-accurate)
|
|
18
|
+
wrangler dev --env staging --port 8787
|
|
19
|
+
wrangler dev --inspector-port 9229 # Enable debugging
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Debug: chrome://inspect → Configure → localhost:9229
|
|
23
|
+
|
|
24
|
+
## Secrets
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# Production
|
|
28
|
+
echo "secret-value" | wrangler secret put SECRET_KEY
|
|
29
|
+
|
|
30
|
+
# Local: use .dev.vars (gitignored)
|
|
31
|
+
# SECRET_KEY=local-dev-key
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Adding KV
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
wrangler kv namespace create MY_KV
|
|
38
|
+
wrangler kv namespace create MY_KV --preview
|
|
39
|
+
# Add to wrangler.jsonc: { "binding": "MY_KV", "id": "abc123" }
|
|
40
|
+
wrangler deploy
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Adding D1
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
wrangler d1 create my-db
|
|
47
|
+
wrangler d1 migrations create my-db "initial_schema"
|
|
48
|
+
# Edit migration file in migrations/, then:
|
|
49
|
+
wrangler d1 migrations apply my-db --local
|
|
50
|
+
wrangler deploy
|
|
51
|
+
wrangler d1 migrations apply my-db --remote
|
|
52
|
+
|
|
53
|
+
# Time Travel (restore to point in time)
|
|
54
|
+
wrangler d1 time-travel restore my-db --timestamp 2025-01-01T12:00:00Z
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Multi-Environment
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
wrangler deploy --env staging
|
|
61
|
+
wrangler deploy --env production
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
```jsonc
|
|
65
|
+
{ "env": { "staging": { "vars": { "ENV": "staging" } } } }
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Testing
|
|
69
|
+
|
|
70
|
+
### Integration Tests with Node.js Test Runner
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
import { startWorker } from 'wrangler'
|
|
74
|
+
import { describe, it, before, after } from 'node:test'
|
|
75
|
+
import assert from 'node:assert'
|
|
76
|
+
|
|
77
|
+
describe('API', () => {
|
|
78
|
+
let worker
|
|
79
|
+
|
|
80
|
+
before(async () => {
|
|
81
|
+
worker = await startWorker({
|
|
82
|
+
config: 'wrangler.jsonc',
|
|
83
|
+
remote: 'minimal', // Fast tests with real bindings
|
|
84
|
+
})
|
|
85
|
+
})
|
|
86
|
+
|
|
87
|
+
after(async () => await worker.dispose())
|
|
88
|
+
|
|
89
|
+
it('creates user', async () => {
|
|
90
|
+
const response = await worker.fetch('http://example.com/api/users', {
|
|
91
|
+
method: 'POST',
|
|
92
|
+
body: JSON.stringify({ name: 'Alice' }),
|
|
93
|
+
})
|
|
94
|
+
assert.strictEqual(response.status, 201)
|
|
95
|
+
})
|
|
96
|
+
})
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### Testing with Vitest
|
|
100
|
+
|
|
101
|
+
Install: `npm install -D vitest @cloudflare/vitest-pool-workers`
|
|
102
|
+
|
|
103
|
+
**vitest.config.ts:**
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config'
|
|
107
|
+
export default defineWorkersConfig({
|
|
108
|
+
test: { poolOptions: { workers: { wrangler: { configPath: './wrangler.jsonc' } } } },
|
|
109
|
+
})
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
**tests/api.test.ts:**
|
|
113
|
+
|
|
114
|
+
```typescript
|
|
115
|
+
import { env, SELF } from 'cloudflare:test'
|
|
116
|
+
import { describe, it, expect } from 'vitest'
|
|
117
|
+
|
|
118
|
+
it('fetches users', async () => {
|
|
119
|
+
const response = await SELF.fetch('https://example.com/api/users')
|
|
120
|
+
expect(response.status).toBe(200)
|
|
121
|
+
})
|
|
122
|
+
|
|
123
|
+
it('uses bindings', async () => {
|
|
124
|
+
await env.MY_KV.put('key', 'value')
|
|
125
|
+
expect(await env.MY_KV.get('key')).toBe('value')
|
|
126
|
+
})
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Multi-Worker Development (Service Bindings)
|
|
130
|
+
|
|
131
|
+
```typescript
|
|
132
|
+
const authWorker = await startWorker({ config: './auth/wrangler.jsonc' })
|
|
133
|
+
const apiWorker = await startWorker({
|
|
134
|
+
config: './api/wrangler.jsonc',
|
|
135
|
+
bindings: { AUTH: authWorker }, // Service binding
|
|
136
|
+
})
|
|
137
|
+
|
|
138
|
+
// Test API calling AUTH
|
|
139
|
+
const response = await apiWorker.fetch('http://example.com/api/protected')
|
|
140
|
+
await authWorker.dispose()
|
|
141
|
+
await apiWorker.dispose()
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Mock External APIs
|
|
145
|
+
|
|
146
|
+
```typescript
|
|
147
|
+
const worker = await startWorker({
|
|
148
|
+
config: 'wrangler.jsonc',
|
|
149
|
+
outboundService: (req) => {
|
|
150
|
+
const url = new URL(req.url)
|
|
151
|
+
if (url.hostname === 'api.external.com') {
|
|
152
|
+
return new Response(JSON.stringify({ mocked: true }), {
|
|
153
|
+
headers: { 'content-type': 'application/json' },
|
|
154
|
+
})
|
|
155
|
+
}
|
|
156
|
+
return fetch(req) // Pass through other requests
|
|
157
|
+
},
|
|
158
|
+
})
|
|
159
|
+
|
|
160
|
+
// Test Worker that calls external API
|
|
161
|
+
const response = await worker.fetch('http://example.com/proxy')
|
|
162
|
+
// Worker internally fetches api.external.com - gets mocked response
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## Monitoring & Versions
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
wrangler tail # Real-time logs
|
|
169
|
+
wrangler tail --status error # Filter errors
|
|
170
|
+
wrangler versions list
|
|
171
|
+
wrangler rollback [id]
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## TypeScript
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
wrangler types # Generate types from config
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
```typescript
|
|
181
|
+
export default {
|
|
182
|
+
async fetch(request: Request, env: Env): Promise<Response> {
|
|
183
|
+
return Response.json({ value: await env.MY_KV.get('key') })
|
|
184
|
+
},
|
|
185
|
+
} satisfies ExportedHandler<Env>
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## Workers Assets
|
|
189
|
+
|
|
190
|
+
```jsonc
|
|
191
|
+
{ "assets": { "directory": "./dist", "binding": "ASSETS" } }
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
```typescript
|
|
195
|
+
export default {
|
|
196
|
+
async fetch(request, env) {
|
|
197
|
+
// API routes first
|
|
198
|
+
if (new URL(request.url).pathname.startsWith('/api/')) {
|
|
199
|
+
return Response.json({ data: 'from API' })
|
|
200
|
+
}
|
|
201
|
+
return env.ASSETS.fetch(request) // Static assets
|
|
202
|
+
},
|
|
203
|
+
}
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## See Also
|
|
207
|
+
|
|
208
|
+
- [README.md](./README.md) - Commands
|
|
209
|
+
- [configuration.md](./configuration.md) - Config
|
|
210
|
+
- [api.md](./api.md) - Programmatic API
|
|
211
|
+
- [gotchas.md](./gotchas.md) - Issues
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# Zaraz Reference Implementation Summary
|
|
2
|
+
|
|
3
|
+
## Files Created
|
|
4
|
+
|
|
5
|
+
| File | Lines | Purpose |
|
|
6
|
+
| ---------------- | --------- | --------------------------------------------- |
|
|
7
|
+
| README.md | 111 | Navigation, decision tree, quick start |
|
|
8
|
+
| api.md | 287 | Web API reference, Zaraz Context |
|
|
9
|
+
| configuration.md | 307 | Dashboard setup, triggers, tools, consent |
|
|
10
|
+
| patterns.md | 430 | SPA, e-commerce, Worker integration |
|
|
11
|
+
| gotchas.md | 317 | Troubleshooting, limits, tool-specific issues |
|
|
12
|
+
| **Total** | **1,452** | **vs 366 original** |
|
|
13
|
+
|
|
14
|
+
## Key Improvements Applied
|
|
15
|
+
|
|
16
|
+
### Structure
|
|
17
|
+
|
|
18
|
+
- ✅ Created 5-file progressive disclosure system
|
|
19
|
+
- ✅ Added navigation table in README
|
|
20
|
+
- ✅ Added decision tree for routing
|
|
21
|
+
- ✅ Added "Reading Order by Task" guide
|
|
22
|
+
- ✅ Cross-referenced files throughout
|
|
23
|
+
|
|
24
|
+
### New Content Added
|
|
25
|
+
|
|
26
|
+
- ✅ Zaraz Context (system/client properties)
|
|
27
|
+
- ✅ History Change trigger for SPA tracking
|
|
28
|
+
- ✅ Context Enrichers pattern
|
|
29
|
+
- ✅ Worker Variables pattern
|
|
30
|
+
- ✅ Consent management deep dive
|
|
31
|
+
- ✅ Tool-specific quirks (GA4, Facebook, Google Ads)
|
|
32
|
+
- ✅ GTM migration guide
|
|
33
|
+
- ✅ Comprehensive troubleshooting
|
|
34
|
+
- ✅ "When NOT to use Zaraz" section
|
|
35
|
+
- ✅ TypeScript type definitions
|
|
36
|
+
|
|
37
|
+
### Preserved Content
|
|
38
|
+
|
|
39
|
+
- ✅ All original API methods
|
|
40
|
+
- ✅ E-commerce tracking examples
|
|
41
|
+
- ✅ Consent management
|
|
42
|
+
- ✅ Workers integration (expanded)
|
|
43
|
+
- ✅ Common patterns (expanded)
|
|
44
|
+
- ✅ Debugging tools
|
|
45
|
+
- ✅ Reference links
|
|
46
|
+
|
|
47
|
+
## Progressive Disclosure Impact
|
|
48
|
+
|
|
49
|
+
### Before (Monolithic)
|
|
50
|
+
|
|
51
|
+
All tasks loaded 366 lines regardless of need.
|
|
52
|
+
|
|
53
|
+
### After (Progressive)
|
|
54
|
+
|
|
55
|
+
- **Track event task**: README (111) + api.md (287) = 398 lines
|
|
56
|
+
- **Debug issue**: gotchas.md (317) = 317 lines (13% reduction)
|
|
57
|
+
- **Configure tool**: configuration.md (307) = 307 lines (16% reduction)
|
|
58
|
+
- **SPA tracking**: README + patterns.md (SPA section) ~180 lines (51% reduction)
|
|
59
|
+
|
|
60
|
+
**Net effect:** Task-specific loading reduces unnecessary content by 13-51% depending on use case.
|
|
61
|
+
|
|
62
|
+
## File Summary
|
|
63
|
+
|
|
64
|
+
### README.md (111 lines)
|
|
65
|
+
|
|
66
|
+
- Overview and core concepts
|
|
67
|
+
- Quick start guide
|
|
68
|
+
- When to use Zaraz vs Workers
|
|
69
|
+
- Navigation table
|
|
70
|
+
- Reading order by task
|
|
71
|
+
- Decision tree
|
|
72
|
+
|
|
73
|
+
### api.md (287 lines)
|
|
74
|
+
|
|
75
|
+
- zaraz.track()
|
|
76
|
+
- zaraz.set()
|
|
77
|
+
- zaraz.ecommerce()
|
|
78
|
+
- Zaraz Context (system/client properties)
|
|
79
|
+
- zaraz.consent API
|
|
80
|
+
- zaraz.debug
|
|
81
|
+
- Cookie methods
|
|
82
|
+
- TypeScript definitions
|
|
83
|
+
|
|
84
|
+
### configuration.md (307 lines)
|
|
85
|
+
|
|
86
|
+
- Dashboard setup flow
|
|
87
|
+
- Trigger types (including History Change)
|
|
88
|
+
- Tool configuration (GA4, Facebook, Google Ads)
|
|
89
|
+
- Actions and action rules
|
|
90
|
+
- Selective loading
|
|
91
|
+
- Consent management setup
|
|
92
|
+
- Privacy features
|
|
93
|
+
- Testing workflow
|
|
94
|
+
|
|
95
|
+
### patterns.md (430 lines)
|
|
96
|
+
|
|
97
|
+
- SPA tracking (React, Vue, Next.js)
|
|
98
|
+
- User identification flows
|
|
99
|
+
- Complete e-commerce funnel
|
|
100
|
+
- A/B testing
|
|
101
|
+
- Worker integration (Context Enrichers, Worker Variables, HTML injection)
|
|
102
|
+
- Multi-tool coordination
|
|
103
|
+
- GTM migration
|
|
104
|
+
- Best practices
|
|
105
|
+
|
|
106
|
+
### gotchas.md (317 lines)
|
|
107
|
+
|
|
108
|
+
- Events not firing (5-step debug process)
|
|
109
|
+
- Consent issues
|
|
110
|
+
- SPA tracking pitfalls
|
|
111
|
+
- Performance issues
|
|
112
|
+
- Tool-specific quirks
|
|
113
|
+
- Data layer issues
|
|
114
|
+
- Limits table
|
|
115
|
+
- When NOT to use Zaraz
|
|
116
|
+
- Debug checklist
|
|
117
|
+
|
|
118
|
+
## Quality Metrics
|
|
119
|
+
|
|
120
|
+
- ✅ All files use consistent markdown formatting
|
|
121
|
+
- ✅ Code examples include language tags
|
|
122
|
+
- ✅ Tables for structured data (limits, parameters, comparisons)
|
|
123
|
+
- ✅ Problem → Cause → Solution format in gotchas
|
|
124
|
+
- ✅ Cross-references between files
|
|
125
|
+
- ✅ No "see documentation" placeholders
|
|
126
|
+
- ✅ Real, actionable examples throughout
|
|
127
|
+
- ✅ Verified API syntax for Workers
|
|
128
|
+
|
|
129
|
+
## Original Backup
|
|
130
|
+
|
|
131
|
+
Original SKILL.md preserved as `_SKILL_old.md` for reference.
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# Cloudflare Zaraz
|
|
2
|
+
|
|
3
|
+
Expert guidance for Cloudflare Zaraz - server-side tag manager for loading third-party tools at the edge.
|
|
4
|
+
|
|
5
|
+
## What is Zaraz?
|
|
6
|
+
|
|
7
|
+
Zaraz offloads third-party scripts (analytics, ads, chat, marketing) to Cloudflare's edge, improving site speed, privacy, and security. Zero client-side performance impact.
|
|
8
|
+
|
|
9
|
+
**Core Concepts:**
|
|
10
|
+
|
|
11
|
+
- **Server-side execution** - Scripts run on Cloudflare, not user's browser
|
|
12
|
+
- **Single HTTP request** - All tools loaded via one endpoint
|
|
13
|
+
- **Privacy-first** - Control data sent to third parties
|
|
14
|
+
- **No client-side JS overhead** - Minimal browser impact
|
|
15
|
+
|
|
16
|
+
## Quick Start
|
|
17
|
+
|
|
18
|
+
1. Navigate to domain > Zaraz in Cloudflare dashboard
|
|
19
|
+
2. Click "Start setup"
|
|
20
|
+
3. Add tools (Google Analytics, Facebook Pixel, etc.)
|
|
21
|
+
4. Configure triggers (when tools fire)
|
|
22
|
+
5. Add tracking code to your site:
|
|
23
|
+
|
|
24
|
+
```javascript
|
|
25
|
+
// Track page view
|
|
26
|
+
zaraz.track('page_view')
|
|
27
|
+
|
|
28
|
+
// Track custom event
|
|
29
|
+
zaraz.track('button_click', { button_id: 'cta' })
|
|
30
|
+
|
|
31
|
+
// Set user properties
|
|
32
|
+
zaraz.set('userId', 'user_123')
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## When to Use Zaraz
|
|
36
|
+
|
|
37
|
+
**Use Zaraz when:**
|
|
38
|
+
|
|
39
|
+
- Adding multiple third-party tools (analytics, ads, marketing)
|
|
40
|
+
- Site performance is critical (no client-side JS overhead)
|
|
41
|
+
- Privacy compliance required (GDPR, CCPA)
|
|
42
|
+
- Non-technical teams need to manage tools
|
|
43
|
+
|
|
44
|
+
**Use Workers directly when:**
|
|
45
|
+
|
|
46
|
+
- Building custom server-side tracking logic
|
|
47
|
+
- Need full control over data processing
|
|
48
|
+
- Integrating with complex backend systems
|
|
49
|
+
- Zaraz's tool library doesn't meet needs
|
|
50
|
+
|
|
51
|
+
## In This Reference
|
|
52
|
+
|
|
53
|
+
| File | Purpose | When to Read |
|
|
54
|
+
| -------------------------------------- | -------------------------------------- | -------------------------------- |
|
|
55
|
+
| [api.md](./api.md) | Web API, zaraz object, consent methods | Implementing tracking calls |
|
|
56
|
+
| [configuration.md](./configuration.md) | Dashboard setup, triggers, tools | Initial setup, adding tools |
|
|
57
|
+
| [patterns.md](./patterns.md) | SPA, e-commerce, Worker integration | Best practices, common scenarios |
|
|
58
|
+
| [gotchas.md](./gotchas.md) | Troubleshooting, limits, pitfalls | Debugging issues |
|
|
59
|
+
|
|
60
|
+
## Reading Order by Task
|
|
61
|
+
|
|
62
|
+
| Task | Files to Read |
|
|
63
|
+
| --------------------- | ----------------------------------------- |
|
|
64
|
+
| Add analytics to site | README → configuration.md |
|
|
65
|
+
| Track custom events | README → api.md |
|
|
66
|
+
| Debug tracking issues | gotchas.md |
|
|
67
|
+
| SPA tracking | api.md → patterns.md (SPA section) |
|
|
68
|
+
| E-commerce tracking | api.md#ecommerce → patterns.md#ecommerce |
|
|
69
|
+
| Worker integration | patterns.md#worker-integration |
|
|
70
|
+
| GDPR compliance | api.md#consent → configuration.md#consent |
|
|
71
|
+
|
|
72
|
+
## Decision Tree
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
What do you need?
|
|
76
|
+
|
|
77
|
+
├─ Track events in browser → api.md
|
|
78
|
+
│ ├─ Page views, clicks → zaraz.track()
|
|
79
|
+
│ ├─ User properties → zaraz.set()
|
|
80
|
+
│ └─ E-commerce → zaraz.ecommerce()
|
|
81
|
+
│
|
|
82
|
+
├─ Configure Zaraz → configuration.md
|
|
83
|
+
│ ├─ Add GA4/Facebook → tools setup
|
|
84
|
+
│ ├─ When tools fire → triggers
|
|
85
|
+
│ └─ GDPR consent → consent purposes
|
|
86
|
+
│
|
|
87
|
+
├─ Integrate with Workers → patterns.md#worker-integration
|
|
88
|
+
│ ├─ Enrich context → Context Enrichers
|
|
89
|
+
│ └─ Inject tracking → HTML rewriting
|
|
90
|
+
│
|
|
91
|
+
└─ Debug issues → gotchas.md
|
|
92
|
+
├─ Events not firing → troubleshooting
|
|
93
|
+
├─ Consent issues → consent debugging
|
|
94
|
+
└─ Performance → debugging tools
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## Key Features
|
|
98
|
+
|
|
99
|
+
- **100+ Pre-built Tools** - GA4, Facebook, Google Ads, TikTok, etc.
|
|
100
|
+
- **Zero Client Impact** - Runs at Cloudflare's edge, not browser
|
|
101
|
+
- **Privacy Controls** - Consent management, data filtering
|
|
102
|
+
- **Custom Tools** - Build Managed Components for proprietary systems
|
|
103
|
+
- **Worker Integration** - Enrich context, compute dynamic values
|
|
104
|
+
- **Debug Mode** - Real-time event inspection
|
|
105
|
+
|
|
106
|
+
## Reference
|
|
107
|
+
|
|
108
|
+
- [Zaraz Docs](https://developers.cloudflare.com/zaraz/)
|
|
109
|
+
- [Web API](https://developers.cloudflare.com/zaraz/web-api/)
|
|
110
|
+
- [Managed Components](https://developers.cloudflare.com/zaraz/advanced/load-custom-managed-component/)
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
This skill focuses exclusively on Zaraz. For Workers development, see `cloudflare-workers` skill.
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# Zaraz Web API
|
|
2
|
+
|
|
3
|
+
Client-side JavaScript API for tracking events, setting properties, and managing consent.
|
|
4
|
+
|
|
5
|
+
## zaraz.track()
|
|
6
|
+
|
|
7
|
+
```javascript
|
|
8
|
+
zaraz.track('button_click')
|
|
9
|
+
zaraz.track('purchase', { value: 99.99, currency: 'USD', item_id: '12345' })
|
|
10
|
+
zaraz.track('pageview', { page_path: '/products', page_title: 'Products' }) // SPA
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
**Params:** `eventName` (string), `properties` (object, optional). Fire-and-forget.
|
|
14
|
+
|
|
15
|
+
## zaraz.set()
|
|
16
|
+
|
|
17
|
+
```javascript
|
|
18
|
+
zaraz.set('userId', 'user_12345')
|
|
19
|
+
zaraz.set({ email: '[email protected]', plan: 'premium', country: 'US' })
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Properties persist for page session. Use for user identification and segmentation.
|
|
23
|
+
|
|
24
|
+
## zaraz.ecommerce()
|
|
25
|
+
|
|
26
|
+
```javascript
|
|
27
|
+
zaraz.ecommerce('Product Viewed', { product_id: 'SKU123', name: 'Widget', price: 49.99 })
|
|
28
|
+
zaraz.ecommerce('Product Added', { product_id: 'SKU123', quantity: 2, price: 49.99 })
|
|
29
|
+
zaraz.ecommerce('Order Completed', {
|
|
30
|
+
order_id: 'ORD-789',
|
|
31
|
+
total: 149.98,
|
|
32
|
+
currency: 'USD',
|
|
33
|
+
products: [{ product_id: 'SKU123', quantity: 2, price: 49.99 }],
|
|
34
|
+
})
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Events:** `Product Viewed`, `Product Added`, `Product Removed`, `Cart Viewed`, `Checkout Started`, `Order Completed`
|
|
38
|
+
|
|
39
|
+
Tools auto-map to GA4, Facebook CAPI, etc.
|
|
40
|
+
|
|
41
|
+
## System Properties (Triggers)
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
{{system.page.url}} {{system.page.title}} {{system.page.referrer}}
|
|
45
|
+
{{system.device.ip}} {{system.device.userAgent}} {{system.device.language}}
|
|
46
|
+
{{system.cookies.name}} {{client.__zarazTrack.userId}}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## zaraz.consent
|
|
50
|
+
|
|
51
|
+
```javascript
|
|
52
|
+
// Check
|
|
53
|
+
const purposes = zaraz.consent.getAll() // { analytics: true, marketing: false }
|
|
54
|
+
|
|
55
|
+
// Set
|
|
56
|
+
zaraz.consent.modal = true // Show modal
|
|
57
|
+
zaraz.consent.setAll({ analytics: true, marketing: false })
|
|
58
|
+
zaraz.consent.set('marketing', true)
|
|
59
|
+
|
|
60
|
+
// Listen
|
|
61
|
+
zaraz.consent.addEventListener('consentChanged', () => {
|
|
62
|
+
if (zaraz.consent.getAll().marketing) zaraz.track('marketing_consent_granted')
|
|
63
|
+
})
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Flow:** Configure purposes in dashboard → Map tools to purposes → Show modal/set programmatically → Tools fire when allowed
|
|
67
|
+
|
|
68
|
+
## zaraz.debug
|
|
69
|
+
|
|
70
|
+
```javascript
|
|
71
|
+
zaraz.debug = true
|
|
72
|
+
zaraz.track('test_event')
|
|
73
|
+
console.log(zaraz.tools) // View loaded tools
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Cookie Methods
|
|
77
|
+
|
|
78
|
+
```javascript
|
|
79
|
+
zaraz.getCookie('session_id') // Zaraz namespace
|
|
80
|
+
zaraz.readCookie('_ga') // Any cookie
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Async Behavior
|
|
84
|
+
|
|
85
|
+
All methods fire-and-forget. Events batched and sent asynchronously:
|
|
86
|
+
|
|
87
|
+
```javascript
|
|
88
|
+
zaraz.track('event1')
|
|
89
|
+
zaraz.set('prop', 'value')
|
|
90
|
+
zaraz.track('event2') // All batched
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## TypeScript Types
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
interface Zaraz {
|
|
97
|
+
track(event: string, properties?: Record<string, unknown>): void
|
|
98
|
+
set(key: string, value: unknown): void
|
|
99
|
+
set(properties: Record<string, unknown>): void
|
|
100
|
+
ecommerce(event: string, properties: Record<string, unknown>): void
|
|
101
|
+
consent: {
|
|
102
|
+
getAll(): Record<string, boolean>
|
|
103
|
+
setAll(purposes: Record<string, boolean>): void
|
|
104
|
+
set(purpose: string, value: boolean): void
|
|
105
|
+
addEventListener(event: 'consentChanged', callback: () => void): void
|
|
106
|
+
modal: boolean
|
|
107
|
+
}
|
|
108
|
+
debug: boolean
|
|
109
|
+
tools?: string[]
|
|
110
|
+
getCookie(name: string): string | undefined
|
|
111
|
+
readCookie(name: string): string | undefined
|
|
112
|
+
}
|
|
113
|
+
declare global {
|
|
114
|
+
interface Window {
|
|
115
|
+
zaraz: Zaraz
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
```
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Zaraz Configuration
|
|
2
|
+
|
|
3
|
+
## Dashboard Setup
|
|
4
|
+
|
|
5
|
+
1. Domain → Zaraz → Start setup
|
|
6
|
+
2. Add tool (e.g., Google Analytics 4)
|
|
7
|
+
3. Enter credentials (GA4: `G-XXXXXXXXXX`)
|
|
8
|
+
4. Configure triggers
|
|
9
|
+
5. Save and Publish
|
|
10
|
+
|
|
11
|
+
## Triggers
|
|
12
|
+
|
|
13
|
+
| Type | When | Use Case |
|
|
14
|
+
| --------------- | ----------------- | ------------------ |
|
|
15
|
+
| Pageview | Page load | Track page views |
|
|
16
|
+
| Click | Element clicked | Button tracking |
|
|
17
|
+
| Form Submission | Form submitted | Lead capture |
|
|
18
|
+
| History Change | URL changes (SPA) | React/Vue routing |
|
|
19
|
+
| Variable Match | Custom condition | Conditional firing |
|
|
20
|
+
|
|
21
|
+
### History Change (SPA)
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
Type: History Change
|
|
25
|
+
Event: pageview
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Fires on `pushState`, `replaceState`, hash changes. **No manual tracking needed.**
|
|
29
|
+
|
|
30
|
+
### Click Trigger
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
Type: Click
|
|
34
|
+
CSS Selector: .buy-button
|
|
35
|
+
Event: purchase_intent
|
|
36
|
+
Properties:
|
|
37
|
+
button_text: {{system.clickElement.text}}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Tool Configuration
|
|
41
|
+
|
|
42
|
+
**GA4:**
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
Measurement ID: G-XXXXXXXXXX
|
|
46
|
+
Events: page_view, purchase, user_engagement
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Facebook Pixel:**
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
Pixel ID: 1234567890123456
|
|
53
|
+
Events: PageView, Purchase, AddToCart
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Google Ads:**
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
Conversion ID: AW-XXXXXXXXX
|
|
60
|
+
Conversion Label: YYYYYYYYYY
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Consent Management
|
|
64
|
+
|
|
65
|
+
1. Settings → Consent → Create purposes (analytics, marketing)
|
|
66
|
+
2. Map tools to purposes
|
|
67
|
+
3. Set behavior: "Do not load until consent granted"
|
|
68
|
+
|
|
69
|
+
**Programmatic consent:**
|
|
70
|
+
|
|
71
|
+
```javascript
|
|
72
|
+
zaraz.consent.setAll({ analytics: true, marketing: true })
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Privacy Features
|
|
76
|
+
|
|
77
|
+
| Feature | Default |
|
|
78
|
+
| ---------------- | -------------------- |
|
|
79
|
+
| IP Anonymization | Enabled |
|
|
80
|
+
| Cookie Control | Via consent purposes |
|
|
81
|
+
| GDPR/CCPA | Consent modal |
|
|
82
|
+
|
|
83
|
+
## Testing
|
|
84
|
+
|
|
85
|
+
1. **Preview Mode** - test without publishing
|
|
86
|
+
2. **Debug Mode** - `zaraz.debug = true`
|
|
87
|
+
3. **Network tab** - filter "zaraz"
|
|
88
|
+
|
|
89
|
+
## Limits
|
|
90
|
+
|
|
91
|
+
| Resource | Limit |
|
|
92
|
+
| ---------------- | ----- |
|
|
93
|
+
| Event properties | 100KB |
|
|
94
|
+
| Consent purposes | 20 |
|