memory-journal-mcp 7.7.1 → 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-6LPTBIB6.js → chunk-MWNLAEHR.js} +309 -4332
- 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 +6 -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
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
1
|
+
import { createServer } from './chunk-MWNLAEHR.js';
|
|
2
|
+
import './chunk-UHSO65A4.js';
|
|
3
|
+
import { VERSION, DEFAULT_AUDIT_LOG_MAX_SIZE_BYTES } from './chunk-JFMITANR.js';
|
|
4
|
+
import { logger } from './chunk-6OHRCNYW.js';
|
|
3
5
|
import { Command } from 'commander';
|
|
4
6
|
import * as path from 'path';
|
|
5
7
|
import * as fs from 'fs';
|
|
@@ -80,6 +82,14 @@ program.name("memory-journal-mcp").description("Project context management for A
|
|
|
80
82
|
).option(
|
|
81
83
|
"--codemode-internal-full-access",
|
|
82
84
|
"Bypass tool filter constraints within the Code Mode sandbox (env: CODEMODE_INTERNAL_FULL_ACCESS)"
|
|
85
|
+
).option(
|
|
86
|
+
"--prune-older-than-days <days>",
|
|
87
|
+
"Soft-delete entries older than N days with importance below threshold (env: PRUNE_OLDER_THAN_DAYS, 0 = disabled)",
|
|
88
|
+
"0"
|
|
89
|
+
).option(
|
|
90
|
+
"--prune-importance-threshold <n>",
|
|
91
|
+
"Importance score threshold for pruning (env: PRUNE_IMPORTANCE_THRESHOLD, default: 0.15)",
|
|
92
|
+
"0.15"
|
|
83
93
|
).option(
|
|
84
94
|
"--briefing-entries <count>",
|
|
85
95
|
"Number of journal entries in briefing (env: BRIEFING_ENTRY_COUNT)",
|
|
@@ -401,7 +411,15 @@ program.name("memory-journal-mcp").description("Project context management for A
|
|
|
401
411
|
const raw = options.flagVocabulary ?? process.env["FLAG_VOCABULARY"];
|
|
402
412
|
if (!raw) return void 0;
|
|
403
413
|
return raw.split(",").map((s) => s.trim().toLowerCase()).filter(Boolean);
|
|
404
|
-
})()
|
|
414
|
+
})(),
|
|
415
|
+
pruneOlderThanDays: parseConfigIntRequired(
|
|
416
|
+
process.env["PRUNE_OLDER_THAN_DAYS"] ?? options.pruneOlderThanDays,
|
|
417
|
+
"prune-older-than-days",
|
|
418
|
+
0
|
|
419
|
+
),
|
|
420
|
+
pruneImportanceThreshold: parseFloat(
|
|
421
|
+
process.env["PRUNE_IMPORTANCE_THRESHOLD"] ?? options.pruneImportanceThreshold
|
|
422
|
+
)
|
|
405
423
|
});
|
|
406
424
|
} catch (error) {
|
|
407
425
|
logger.error("Failed to start server", {
|
package/dist/index.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ interface AuditConfig {
|
|
|
22
22
|
/**
|
|
23
23
|
* Tool group definitions mapping group names to tool names
|
|
24
24
|
*
|
|
25
|
-
* All
|
|
25
|
+
* All 73 tools are categorized here for filtering support.
|
|
26
26
|
*/
|
|
27
27
|
declare const TOOL_GROUPS: Record<ToolGroup, string[]>;
|
|
28
28
|
/**
|
|
@@ -187,7 +187,7 @@ type EntryType = 'personal_reflection' | 'project_decision' | 'technical_achieve
|
|
|
187
187
|
/**
|
|
188
188
|
* Significance types for important entries
|
|
189
189
|
*/
|
|
190
|
-
type SignificanceType = 'milestone' | 'breakthrough' | '
|
|
190
|
+
type SignificanceType = 'milestone' | 'breakthrough' | 'decision' | 'architecture' | 'lesson_learned' | 'blocker_resolved' | 'release' | 'security' | null;
|
|
191
191
|
/**
|
|
192
192
|
* Relationship types between entries
|
|
193
193
|
*
|
|
@@ -553,18 +553,18 @@ interface IDatabaseAdapter {
|
|
|
553
553
|
entryType?: EntryType;
|
|
554
554
|
tags?: string[];
|
|
555
555
|
isPersonal?: boolean;
|
|
556
|
-
significanceType?: string;
|
|
556
|
+
significanceType?: string | null;
|
|
557
557
|
autoContext?: string | null;
|
|
558
|
-
projectNumber?: number;
|
|
559
|
-
projectOwner?: string;
|
|
560
|
-
issueNumber?: number;
|
|
561
|
-
issueUrl?: string;
|
|
562
|
-
prNumber?: number;
|
|
563
|
-
prUrl?: string;
|
|
564
|
-
prStatus?: string;
|
|
565
|
-
workflowRunId?: number;
|
|
566
|
-
workflowName?: string;
|
|
567
|
-
workflowStatus?: string;
|
|
558
|
+
projectNumber?: number | null;
|
|
559
|
+
projectOwner?: string | null;
|
|
560
|
+
issueNumber?: number | null;
|
|
561
|
+
issueUrl?: string | null;
|
|
562
|
+
prNumber?: number | null;
|
|
563
|
+
prUrl?: string | null;
|
|
564
|
+
prStatus?: string | null;
|
|
565
|
+
workflowRunId?: number | null;
|
|
566
|
+
workflowName?: string | null;
|
|
567
|
+
workflowStatus?: string | null;
|
|
568
568
|
}): JournalEntry | null;
|
|
569
569
|
deleteEntry(id: number, permanent?: boolean): boolean;
|
|
570
570
|
searchEntries(query: string, options?: {
|
|
@@ -737,6 +737,7 @@ interface IDatabaseAdapter {
|
|
|
737
737
|
clearVectors(): void;
|
|
738
738
|
getVectorCount(): number;
|
|
739
739
|
cleanupStaleVectors(): void;
|
|
740
|
+
pruneByImportance(olderThanDays: number, importanceThreshold: number): number;
|
|
740
741
|
executeInTransaction<T>(cb: () => T): T;
|
|
741
742
|
}
|
|
742
743
|
|
|
@@ -775,6 +776,8 @@ interface ServerOptions {
|
|
|
775
776
|
flagVocabulary?: string[];
|
|
776
777
|
allowedIoRoots?: string[];
|
|
777
778
|
codemodeInternalFullAccess?: boolean;
|
|
779
|
+
pruneOlderThanDays?: number;
|
|
780
|
+
pruneImportanceThreshold?: number;
|
|
778
781
|
}
|
|
779
782
|
/**
|
|
780
783
|
* Create and start the MCP server
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
export {
|
|
2
|
-
|
|
1
|
+
export { createServer } from './chunk-MWNLAEHR.js';
|
|
2
|
+
import './chunk-UHSO65A4.js';
|
|
3
|
+
export { VERSION } from './chunk-JFMITANR.js';
|
|
4
|
+
export { META_GROUPS, TOOL_GROUPS, calculateTokenSavings, filterTools, getAllToolNames, getFilterSummary, getToolFilterFromEnv, getToolGroup, isToolEnabled, logger, parseToolFilter } from './chunk-6OHRCNYW.js';
|
|
3
5
|
|
|
4
6
|
// src/types/index.ts
|
|
5
7
|
var DEFAULT_CONFIG = {
|
package/dist/worker-script.js
CHANGED
|
@@ -46,18 +46,51 @@ function rpcCall(group, method, args) {
|
|
|
46
46
|
rpcPort.postMessage(request);
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
|
-
function
|
|
49
|
+
function wrapResult(result) {
|
|
50
|
+
if (result !== null && result !== void 0 && typeof result === "object" && "success" in result && result["success"] === false) {
|
|
51
|
+
const failedResult = result;
|
|
52
|
+
return new Proxy(failedResult, {
|
|
53
|
+
get(target, prop) {
|
|
54
|
+
if (prop in target) return target[prop];
|
|
55
|
+
if (typeof prop === "string" && prop !== "then" && prop !== "catch" && prop !== "finally" && prop !== "constructor" && prop !== "prototype" && prop !== "toJSON") {
|
|
56
|
+
const errVal = target["error"];
|
|
57
|
+
const errorMsg = typeof errVal === "string" ? errVal : "Unknown error";
|
|
58
|
+
throw new Error(
|
|
59
|
+
`Attempted to access missing property '${prop}' on a failed operation. API Error: ${errorMsg}`
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
return void 0;
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
return result;
|
|
67
|
+
}
|
|
68
|
+
function buildApiProxy(methods, schemas, readonlyMode) {
|
|
50
69
|
const api = {};
|
|
51
70
|
for (const [group, methodNames] of Object.entries(methods)) {
|
|
52
71
|
if (group === "_topLevel") {
|
|
53
72
|
for (const methodName of methodNames) {
|
|
54
|
-
|
|
73
|
+
const proxyFn = async (...args) => {
|
|
74
|
+
const result = await rpcCall("_topLevel", methodName, args);
|
|
75
|
+
return wrapResult(result);
|
|
76
|
+
};
|
|
77
|
+
Object.assign(proxyFn, {
|
|
78
|
+
schema: () => Promise.resolve(schemas?.["_topLevel"]?.[methodName] ?? "any")
|
|
79
|
+
});
|
|
80
|
+
api[methodName] = proxyFn;
|
|
55
81
|
}
|
|
56
82
|
continue;
|
|
57
83
|
}
|
|
58
84
|
const groupProxy = {};
|
|
59
85
|
for (const methodName of methodNames) {
|
|
60
|
-
|
|
86
|
+
const proxyFn = async (...args) => {
|
|
87
|
+
const result = await rpcCall(group, methodName, args);
|
|
88
|
+
return wrapResult(result);
|
|
89
|
+
};
|
|
90
|
+
Object.assign(proxyFn, {
|
|
91
|
+
schema: () => Promise.resolve(schemas?.[group]?.[methodName] ?? "any")
|
|
92
|
+
});
|
|
93
|
+
groupProxy[methodName] = proxyFn;
|
|
61
94
|
}
|
|
62
95
|
groupProxy["help"] = () => Promise.resolve({
|
|
63
96
|
group,
|
|
@@ -70,14 +103,18 @@ function buildApiProxy(methods) {
|
|
|
70
103
|
if (key in target) return target[key];
|
|
71
104
|
if (key === "then") return void 0;
|
|
72
105
|
const available = methodNames.join(", ") || "none";
|
|
73
|
-
const reason = methodNames.length === 0 ? `Operation '${key}' is not available \u2014 this group has no methods (read-only mode?). Available: ${available}.` : `Operation '${key}' is not found in group. Available: ${available}.`;
|
|
74
|
-
return (..._args) =>
|
|
106
|
+
const reason = readonlyMode ? `Operation '${key}' is blocked in readonly mode. Read operations only.` : methodNames.length === 0 ? `Operation '${key}' is not available \u2014 this group has no methods (read-only mode?). Available: ${available}.` : `Operation '${key}' is not found in group. Available: ${available}.`;
|
|
107
|
+
return (..._args) => {
|
|
108
|
+
throw new Error(reason);
|
|
109
|
+
};
|
|
75
110
|
}
|
|
76
111
|
});
|
|
77
112
|
api[group] = groupProxyWrapped;
|
|
78
113
|
}
|
|
79
114
|
api["help"] = () => {
|
|
80
|
-
const groups = Object.keys(methods).filter(
|
|
115
|
+
const groups = Object.keys(methods).filter(
|
|
116
|
+
(g) => g !== "_topLevel" && g !== "memory" && g !== "entries"
|
|
117
|
+
);
|
|
81
118
|
let totalMethods = 0;
|
|
82
119
|
for (const group of groups) {
|
|
83
120
|
totalMethods += methods[group]?.length ?? 0;
|
|
@@ -85,18 +122,115 @@ function buildApiProxy(methods) {
|
|
|
85
122
|
return Promise.resolve({
|
|
86
123
|
groups,
|
|
87
124
|
totalMethods,
|
|
88
|
-
usage: "Use mj.<group>.help() for group details.
|
|
125
|
+
usage: "Use mj.<group>.help() for group details. Use mj.<group>.<method>.schema() for parameter details."
|
|
89
126
|
});
|
|
90
127
|
};
|
|
91
|
-
return api
|
|
128
|
+
return new Proxy(api, {
|
|
129
|
+
get(target, prop) {
|
|
130
|
+
if (typeof prop === "symbol") return void 0;
|
|
131
|
+
if (prop in target) return target[prop];
|
|
132
|
+
if (prop === "then") return void 0;
|
|
133
|
+
const available = Object.keys(methods).filter((k) => k !== "_topLevel").join(", ");
|
|
134
|
+
const reason = `Group or property '${prop}' is not found on 'mj'. Available groups: ${available}. Use mj.help() for more info.`;
|
|
135
|
+
return new Proxy(
|
|
136
|
+
() => {
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
apply() {
|
|
140
|
+
throw new Error(reason);
|
|
141
|
+
},
|
|
142
|
+
get(_t, subProp) {
|
|
143
|
+
if (typeof subProp === "symbol") return void 0;
|
|
144
|
+
if (subProp === "then") return void 0;
|
|
145
|
+
return (..._args) => {
|
|
146
|
+
throw new Error(
|
|
147
|
+
`${reason} (Attempted to access 'mj.${prop}.${subProp}')`
|
|
148
|
+
);
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
);
|
|
153
|
+
}
|
|
154
|
+
});
|
|
92
155
|
}
|
|
93
|
-
async function executeCode(code, methodList, timeoutMs) {
|
|
156
|
+
async function executeCode(code, methodList, schemaList, timeoutMs, contextObj, readonlyMode) {
|
|
94
157
|
const startCpu = process.cpuUsage();
|
|
95
158
|
const startTime = performance.now();
|
|
96
159
|
try {
|
|
97
|
-
const mjApi = buildApiProxy(methodList);
|
|
160
|
+
const mjApi = buildApiProxy(methodList, schemaList, readonlyMode);
|
|
161
|
+
const shimMj = new Proxy(mjApi, {
|
|
162
|
+
get(target, prop) {
|
|
163
|
+
if (prop === "mj" || prop === "journal" || prop === "memory") return shimMj;
|
|
164
|
+
if (prop === "executeCode") {
|
|
165
|
+
if ("codemode" in target) {
|
|
166
|
+
const codemodeGroup = target["codemode"];
|
|
167
|
+
return codemodeGroup["mjExecuteCode"] ?? codemodeGroup["executeCode"];
|
|
168
|
+
}
|
|
169
|
+
return () => Promise.reject(
|
|
170
|
+
new Error(
|
|
171
|
+
"You are already inside Code Mode execution. You do not need to call executeCode again. Just write your logic directly (e.g., return await mj.core.createEntry(...))."
|
|
172
|
+
)
|
|
173
|
+
);
|
|
174
|
+
}
|
|
175
|
+
if (prop === "readResource") {
|
|
176
|
+
return () => Promise.reject(
|
|
177
|
+
new Error(
|
|
178
|
+
"Code Mode cannot directly read MCP resources using mj.readResource(). Please use the appropriate mj.* tools (e.g., mj.team.teamListFlags) to query data, or read the resource via standard MCP resource requests outside of Code Mode."
|
|
179
|
+
)
|
|
180
|
+
);
|
|
181
|
+
}
|
|
182
|
+
if (prop === "addEntry" && "core" in target) {
|
|
183
|
+
const coreGroup = target["core"];
|
|
184
|
+
return coreGroup["createEntry"];
|
|
185
|
+
}
|
|
186
|
+
if (prop === "append" && "core" in target) {
|
|
187
|
+
const coreGroup = target["core"];
|
|
188
|
+
const createEntry = coreGroup["createEntry"];
|
|
189
|
+
return (arg1, arg2, arg3) => {
|
|
190
|
+
const tags = Array.isArray(arg1) ? arg1 : [typeof arg1 === "string" ? arg1 : "test"];
|
|
191
|
+
const content = typeof arg2 === "string" ? arg2 : arg2 != null ? JSON.stringify(arg2) : "";
|
|
192
|
+
const metadata = typeof arg3 === "object" && arg3 !== null ? { ...arg3 } : void 0;
|
|
193
|
+
const typeVal = metadata?.["type"];
|
|
194
|
+
const type = typeof typeVal === "string" && typeVal !== "" ? typeVal : "test_entry";
|
|
195
|
+
if (metadata && "type" in metadata) delete metadata["type"];
|
|
196
|
+
return createEntry({ type, tags, content, metadata });
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
if (typeof prop === "string") {
|
|
200
|
+
const DB_TO_JOURNAL = {
|
|
201
|
+
listTables: ["analytics", "getStatistics"],
|
|
202
|
+
describeTable: ["analytics", "getStatistics"],
|
|
203
|
+
count: ["analytics", "getStatistics"],
|
|
204
|
+
analyze: ["analytics", "getStatistics"],
|
|
205
|
+
vacuum: ["analytics", "getStatistics"],
|
|
206
|
+
integrityCheck: ["analytics", "getStatistics"],
|
|
207
|
+
exists: ["core", "getEntryById"],
|
|
208
|
+
upsert: ["core", "createEntry"],
|
|
209
|
+
batchInsert: ["core", "createEntry"],
|
|
210
|
+
readQuery: ["search", "searchEntries"]
|
|
211
|
+
};
|
|
212
|
+
const mapping = DB_TO_JOURNAL[prop];
|
|
213
|
+
if (mapping !== void 0) {
|
|
214
|
+
const [group, method] = mapping;
|
|
215
|
+
if (group in target) {
|
|
216
|
+
return target[group][method];
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return Reflect.get(target, prop);
|
|
221
|
+
}
|
|
222
|
+
});
|
|
98
223
|
const sandbox = {
|
|
99
|
-
mj:
|
|
224
|
+
mj: shimMj,
|
|
225
|
+
journal: shimMj,
|
|
226
|
+
sqlite: shimMj,
|
|
227
|
+
postgres: shimMj,
|
|
228
|
+
mysql: shimMj,
|
|
229
|
+
db: shimMj,
|
|
230
|
+
memory: shimMj,
|
|
231
|
+
// Unified with shimMj to catch memory.append and memory.journal
|
|
232
|
+
sqlite_journal_add_entry: shimMj["core"]?.["createEntry"],
|
|
233
|
+
context: contextObj ?? {},
|
|
100
234
|
console: {
|
|
101
235
|
log: (...args) => args,
|
|
102
236
|
warn: (...args) => args,
|
|
@@ -112,8 +246,16 @@ async function executeCode(code, methodList, timeoutMs) {
|
|
|
112
246
|
__dirname: void 0,
|
|
113
247
|
__filename: void 0,
|
|
114
248
|
global: void 0,
|
|
115
|
-
globalThis: void 0
|
|
249
|
+
globalThis: void 0,
|
|
250
|
+
Proxy: void 0
|
|
116
251
|
};
|
|
252
|
+
for (const key of Object.keys(mjApi)) {
|
|
253
|
+
if (key in sandbox) continue;
|
|
254
|
+
const val = shimMj[key];
|
|
255
|
+
if (typeof val === "function") {
|
|
256
|
+
sandbox[key] = val;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
117
259
|
const context = vm.createContext(sandbox, {
|
|
118
260
|
name: "codemode-worker-sandbox",
|
|
119
261
|
codeGeneration: {
|
|
@@ -121,6 +263,30 @@ async function executeCode(code, methodList, timeoutMs) {
|
|
|
121
263
|
wasm: false
|
|
122
264
|
}
|
|
123
265
|
});
|
|
266
|
+
vm.runInContext(
|
|
267
|
+
`(function() {
|
|
268
|
+
"use strict";
|
|
269
|
+
const builtins = [
|
|
270
|
+
Object, Function, Array, String, Number, Boolean, RegExp,
|
|
271
|
+
Error, TypeError, RangeError, ReferenceError, SyntaxError,
|
|
272
|
+
URIError, EvalError, Map, Set, WeakMap, WeakSet,
|
|
273
|
+
Promise, Date, ArrayBuffer, DataView,
|
|
274
|
+
Int8Array, Uint8Array, Uint8ClampedArray,
|
|
275
|
+
Int16Array, Uint16Array, Int32Array, Uint32Array,
|
|
276
|
+
Float32Array, Float64Array, BigInt64Array, BigUint64Array,
|
|
277
|
+
JSON, Math,
|
|
278
|
+
];
|
|
279
|
+
for (const B of builtins) {
|
|
280
|
+
if (B && typeof B === "function" && B.prototype) {
|
|
281
|
+
try { Object.freeze(B.prototype); } catch(e) {}
|
|
282
|
+
}
|
|
283
|
+
try { Object.freeze(B); } catch(e) {}
|
|
284
|
+
}
|
|
285
|
+
try { Object.freeze(Object.prototype); } catch(e) {}
|
|
286
|
+
try { Object.freeze(Function.prototype); } catch(e) {}
|
|
287
|
+
})()`,
|
|
288
|
+
context
|
|
289
|
+
);
|
|
124
290
|
const wrappedCode = `(async () => { ${transformAutoReturn(code)} })()`;
|
|
125
291
|
const script = new vm.Script(wrappedCode, {
|
|
126
292
|
filename: "codemode-execution.js"
|
|
@@ -141,16 +307,18 @@ async function executeCode(code, methodList, timeoutMs) {
|
|
|
141
307
|
const endTime = performance.now();
|
|
142
308
|
const endCpu = process.cpuUsage(startCpu);
|
|
143
309
|
const error = err instanceof Error ? err : new Error(String(err));
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
memoryUsedMb: 0
|
|
148
|
-
};
|
|
310
|
+
if (error instanceof SyntaxError && error.message.includes("missing ) after argument list")) {
|
|
311
|
+
error.message += "\n\n\u{1F4A1} Tip: When passing long multi-line strings or markdown with embedded quotes, use template literals (backticks `) instead of single/double quotes to avoid escaping SyntaxErrors.";
|
|
312
|
+
}
|
|
149
313
|
return {
|
|
150
314
|
success: false,
|
|
151
315
|
error: error.message,
|
|
152
316
|
stack: error.stack,
|
|
153
|
-
metrics
|
|
317
|
+
metrics: {
|
|
318
|
+
wallTimeMs: Math.round(endTime - startTime),
|
|
319
|
+
cpuTimeMs: Math.round((endCpu.user + endCpu.system) / 1e3),
|
|
320
|
+
memoryUsedMb: 0
|
|
321
|
+
}
|
|
154
322
|
};
|
|
155
323
|
}
|
|
156
324
|
}
|
|
@@ -162,9 +330,12 @@ parentPort?.on("message", (msg) => {
|
|
|
162
330
|
id,
|
|
163
331
|
code,
|
|
164
332
|
methodList,
|
|
333
|
+
schemaList,
|
|
165
334
|
timeoutMs,
|
|
166
335
|
maxResultSize,
|
|
167
|
-
rpcPort: newRpcPort
|
|
336
|
+
rpcPort: newRpcPort,
|
|
337
|
+
contextObj,
|
|
338
|
+
readonlyMode
|
|
168
339
|
} = executeMsg;
|
|
169
340
|
rpcPort = newRpcPort;
|
|
170
341
|
rpcIdCounter = 0;
|
|
@@ -180,7 +351,14 @@ parentPort?.on("message", (msg) => {
|
|
|
180
351
|
}
|
|
181
352
|
}
|
|
182
353
|
});
|
|
183
|
-
const result = await executeCode(
|
|
354
|
+
const result = await executeCode(
|
|
355
|
+
code,
|
|
356
|
+
methodList,
|
|
357
|
+
schemaList,
|
|
358
|
+
timeoutMs ?? 3e4,
|
|
359
|
+
contextObj,
|
|
360
|
+
readonlyMode
|
|
361
|
+
);
|
|
184
362
|
if (result.success) {
|
|
185
363
|
try {
|
|
186
364
|
const egressLimit = maxResultSize ?? 100 * 1024;
|
|
@@ -211,6 +389,9 @@ parentPort?.on("message", (msg) => {
|
|
|
211
389
|
if (byteLength > egressLimit) {
|
|
212
390
|
throw new Error(`EgressLimitExceeded:${byteLength}`);
|
|
213
391
|
}
|
|
392
|
+
result.result = JSON.parse(resultJson);
|
|
393
|
+
} else {
|
|
394
|
+
result.result = void 0;
|
|
214
395
|
}
|
|
215
396
|
} catch (err) {
|
|
216
397
|
result.success = false;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "memory-journal-mcp",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0",
|
|
4
4
|
"description": "Project context management for AI-assisted development - Persistent knowledge graphs and intelligent context recall across fragmented AI threads",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -20,14 +20,16 @@
|
|
|
20
20
|
"lint": "eslint src/ tests/",
|
|
21
21
|
"lint:fix": "eslint src/ tests/ --fix",
|
|
22
22
|
"typecheck": "tsc --noEmit",
|
|
23
|
-
"check": "
|
|
23
|
+
"check": "tsx scripts/run-checks.ts",
|
|
24
24
|
"test": "vitest run",
|
|
25
25
|
"test:watch": "vitest",
|
|
26
26
|
"test:coverage": "vitest run --coverage && npx tsx scripts/update-badges.ts",
|
|
27
27
|
"bench": "vitest bench --run",
|
|
28
28
|
"pretest:e2e": "node -e \"fs.rmSync('.test-output/e2e', { recursive: true, force: true })\"",
|
|
29
29
|
"test:e2e": "playwright test",
|
|
30
|
+
"test:scheduler": "node test-server/scripts/test-scheduler.mjs",
|
|
30
31
|
"generate:instructions": "node scripts/generate-server-instructions.ts",
|
|
32
|
+
"backfill:metadata": "tsx scripts/backfill-metadata.ts",
|
|
31
33
|
"prepublishOnly": "npm run check && npm run test && npm run build"
|
|
32
34
|
},
|
|
33
35
|
"keywords": [
|
|
@@ -65,7 +67,7 @@
|
|
|
65
67
|
"@octokit/graphql": "^9.0.3",
|
|
66
68
|
"@octokit/rest": "^22.0.1",
|
|
67
69
|
"better-sqlite3": "^12.8.0",
|
|
68
|
-
"commander": "^
|
|
70
|
+
"commander": "^15.0.0",
|
|
69
71
|
"express": "^5.2.1",
|
|
70
72
|
"jose": "^6.2.1",
|
|
71
73
|
"simple-git": "^3.35.2",
|
|
@@ -83,7 +85,7 @@
|
|
|
83
85
|
"eslint": "^10.2.0",
|
|
84
86
|
"globals": "^17.4.0",
|
|
85
87
|
"tsup": "^8.5.1",
|
|
86
|
-
"tsx": "4.22.
|
|
88
|
+
"tsx": "4.22.4",
|
|
87
89
|
"typescript": "^6.0.2",
|
|
88
90
|
"typescript-eslint": "^8.58.1",
|
|
89
91
|
"vitest": "^4.1.3"
|
package/skills/README.md
CHANGED
|
@@ -18,9 +18,10 @@ This command will automatically download and synchronize the latest `SKILL.md` f
|
|
|
18
18
|
skills/
|
|
19
19
|
└── <skill-name>/
|
|
20
20
|
├── SKILL.md # Main instruction file (required)
|
|
21
|
+
├── references/ # Progressive disclosure docs to reduce token bloat
|
|
21
22
|
├── scripts/ # Helper scripts and utilities
|
|
22
23
|
├── examples/ # Reference implementations
|
|
23
|
-
└── resources/ # Templates, assets,
|
|
24
|
+
└── resources/ # Templates, assets, external docs
|
|
24
25
|
```
|
|
25
26
|
|
|
26
27
|
### SKILL.md Format
|
|
@@ -38,33 +39,60 @@ The markdown body contains the full instructions the agent follows once the skil
|
|
|
38
39
|
|
|
39
40
|
## Inventory
|
|
40
41
|
|
|
41
|
-
| Skill
|
|
42
|
-
|
|
|
43
|
-
| `adversarial-
|
|
44
|
-
| `
|
|
45
|
-
| `
|
|
46
|
-
| `
|
|
47
|
-
| `
|
|
48
|
-
| `
|
|
49
|
-
| `
|
|
50
|
-
| `
|
|
51
|
-
| `
|
|
52
|
-
| `
|
|
53
|
-
| `
|
|
54
|
-
| `
|
|
55
|
-
| `
|
|
56
|
-
| `
|
|
57
|
-
| `
|
|
58
|
-
| `
|
|
59
|
-
| `
|
|
60
|
-
| `
|
|
61
|
-
| `
|
|
62
|
-
| `
|
|
63
|
-
| `
|
|
42
|
+
| Skill | Description |
|
|
43
|
+
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
|
44
|
+
| `adversarial-performance` | Multi-pass adversarial performance audit — iterative profiling, stress-testing critique, and Copilot validation |
|
|
45
|
+
| `adversarial-planner` | Multi-pass adversarial planning — iterative plan drafting, structured critique, and Copilot validation |
|
|
46
|
+
| `adversarial-security` | Multi-pass adversarial security audit — iterative threat modeling, attack surface analysis, and Copilot validation |
|
|
47
|
+
| `adversarial-skill-audit` | Multi-pass adversarial skill audit — iterative quality evaluation, trigger stress-testing, and Copilot validation |
|
|
48
|
+
| `adversarial-workflow-audit` | Multi-pass adversarial workflow audit — sequential clarity, HITL safety gates, loop prevention, and Copilot validation |
|
|
49
|
+
| `agents-sdk` | Build AI agents on Cloudflare Workers using the Agents SDK |
|
|
50
|
+
| `auth-identity` | Standards for Authentication and Identity management (OAuth, JWTs, RBAC) |
|
|
51
|
+
| `autonomous-dev` | Harness for autonomous software development — alignment gates, adversarial agents, Git workflows, and CI/CD pipelines |
|
|
52
|
+
| `aws` | Comprehensive AWS best practices — IAM, Serverless, S3, RDS, networking, and IaC |
|
|
53
|
+
| `azure` | Microsoft Azure best practices — Entra ID, App Service, AKS, Cosmos DB, networking, and Bicep |
|
|
54
|
+
| `bun` | Master the Bun all-in-one toolkit — runtime, package manager, test runner, and bundler |
|
|
55
|
+
| `cloudflare` | Comprehensive Cloudflare platform skill — decision trees, product index, retrieval sources |
|
|
56
|
+
| `docker` | Production-grade Docker — multi-stage builds, security hardening, Compose v2, BuildKit, and CI/CD integration |
|
|
57
|
+
| `docs-marketer` | Documentation marketability audit — feature visibility, first impressions, competitive differentiation, and cross-surface consistency |
|
|
58
|
+
| `drizzle-orm` | Drizzle ORM best practices — database configuration, schemas, relational queries, migrations |
|
|
59
|
+
| `durable-objects` | Create and review Durable Objects — RPC, SQLite storage, alarms, WebSockets |
|
|
60
|
+
| `gcp` | Google Cloud Platform best practices — IAM, Cloud Run, BigQuery, VPC SC, and Terraform |
|
|
61
|
+
| `github-actions` | GitHub Actions CI/CD — SHA pinning, reusable workflows, caching, matrix strategies, and artifacts v4 |
|
|
62
|
+
| `github-commander` | GitHub pipeline workflows for orchestrating issues, regressions, and deployments |
|
|
63
|
+
| `github-copilot-cli` | Adversarial pre-push validation and full repository code audits driven natively by the `gh copilot` CLI |
|
|
64
|
+
| `github-repo-setup` | Scaffold public TypeScript/Node.js repos under `{{ORG_NAME}}` |
|
|
65
|
+
| `gitlab` | Specialized assistant skill for managing repositories, code search, and CI/CD in GitLab |
|
|
66
|
+
| `golang` | Master Go development with production-grade best practices from Google and Uber style guides |
|
|
67
|
+
| `graphql` | GraphQL best practices — schema design, resolvers, DataLoader for N+1 issues, and mutations |
|
|
68
|
+
| `hono` | Hono framework best practices — edge runtimes, RPC, middleware, validation |
|
|
69
|
+
| `journal-optimizer` | Guided database pruning and optimization — importance audits, orphan cleanup, duplicate detection, and safe soft-delete |
|
|
70
|
+
| `llm-app-engineering` | Master modern LLM application engineering patterns — prompt chains, token management, streaming |
|
|
71
|
+
| `multi-agent-orchestration` | Patterns for multi-agent systems and agentic workflows (e.g. Plan-and-Execute, Supervisor) |
|
|
72
|
+
| `mysql` | Enterprise MySQL production rules — query safety, connection pooling, strict schema configurations |
|
|
73
|
+
| `next-best-practices` | Next.js file conventions, RSC boundaries, data patterns, metadata, error handling |
|
|
74
|
+
| `opentelemetry` | Observability standards using OpenTelemetry — tracing, spans, metrics, exporters |
|
|
75
|
+
| `playwright-standard` | Opinionated guidance for Playwright E2E/API tests, Page Object Models, and CI/CD resilience |
|
|
76
|
+
| `postgres` | Advanced PostgreSQL patterns — indexing layouts, JSONB querying, transactional guardrails, and RLS |
|
|
77
|
+
| `python` | Modern Python engineering — uv, ruff, type hints, pytest, Pydantic v2, and src/ layout project structure |
|
|
78
|
+
| `rag-pipelines` | Best practices for Retrieval-Augmented Generation (RAG) pipelines — embeddings, chunking, retrieval |
|
|
79
|
+
| `redis` | Redis best practices — caching strategies, connection pooling, TTLs, and data structures |
|
|
80
|
+
| `render` | Render deployment best practices — Blueprints, Web Services, databases, and persistent disks |
|
|
81
|
+
| `rust` | Master Rust development using a layer-based "meta-cognition" framework for borrowing, lifetimes, and architecture |
|
|
82
|
+
| `sandbox-sdk` | Sandboxed code execution — interpreters, CI/CD, untrusted code |
|
|
83
|
+
| `shadcn-ui` | Deep knowledge of shadcn/ui components, patterns, forms, and best practices |
|
|
84
|
+
| `skill-builder` | Guide for creating, evaluating, and refining agent skills — progressive disclosure, triggers, and testing |
|
|
85
|
+
| `sqlite` | Production configurations for concurrency (WAL), typing (STRICT), and data integrity |
|
|
86
|
+
| `tailwind-css` | Tailwind CSS v4 — CSS-first configuration, @theme directive, dark mode, responsive design, and v3 migration |
|
|
87
|
+
| `typescript` | Enterprise-grade TypeScript development with type-safe patterns, Zod validation, and modern tooling |
|
|
88
|
+
| `vitest-standard` | Comprehensive unit testing expertise covering Vitest, TDD, mocking strategies, and test architecture |
|
|
89
|
+
| `web-perf` | Chrome DevTools MCP performance auditing — Core Web Vitals, network, accessibility |
|
|
90
|
+
| `workers-best-practices` | Cloudflare Workers production patterns — streaming, bindings, secrets, observability |
|
|
91
|
+
| `wrangler` | Cloudflare Workers CLI for deploying and managing Workers and bindings |
|
|
64
92
|
|
|
65
93
|
## GitHub Commander Workflows
|
|
66
94
|
|
|
67
|
-
This package natively bundles the `github-commander` skill, which equips your AI agent with
|
|
95
|
+
This package natively bundles the `github-commander` skill, which equips your AI agent with 4 autonomous DevOps workflows for repository stewardship:
|
|
68
96
|
|
|
69
97
|
- **`issue-triage`**: End-to-end bug replication, PR submission, and Kanban lifecycle linking.
|
|
70
98
|
- **`milestone-sprint`**: Sequential traversal of all open issues mapped to a specific release target.
|
|
@@ -76,6 +104,15 @@ This package natively bundles the `github-commander` skill, which equips your AI
|
|
|
76
104
|
- **`roadmap-kickoff`**: Parses implementation specifications to sequentially scaffold Epic hierarchies across issues and milestones.
|
|
77
105
|
- **`update-deps`**: Dependency constraint tracking, security patching, and major bump safety tests.
|
|
78
106
|
|
|
107
|
+
## Automated Auditing
|
|
108
|
+
|
|
109
|
+
The `adversarial-skill-audit` skill includes automated scripts for evaluating the skills directory:
|
|
110
|
+
|
|
111
|
+
- `skills/adversarial-skill-audit/scripts/check-skills.ps1`: Generates an inventory of all skills, checking line counts, trigger lengths, and frontmatter compliance.
|
|
112
|
+
- `skills/adversarial-skill-audit/scripts/run-copilot.ps1`: Runs independent validation against the Copilot CLI.
|
|
113
|
+
|
|
114
|
+
> **Latest Audit**: May 26, 2026. The 59 skills in this repository were audited via a multi-pass GitHub Copilot validation sweep, evaluating Trigger Reliability, Instruction Clarity, Completeness, Token Efficiency, and Security. Key improvements identified: consolidating overlapping Next.js and testing skills, enhancing security gating on broad skills, and addressing Cloudflare product-specific coverage gaps.
|
|
115
|
+
|
|
79
116
|
## Adding a Skill
|
|
80
117
|
|
|
81
118
|
1. Create a new directory: `skills/<skill-name>/`
|