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,367 @@
|
|
|
1
|
+
# Multi-Pass Skill Audit Protocol
|
|
2
|
+
|
|
3
|
+
Detailed reference for the 4-phase adversarial skill quality audit. Read
|
|
4
|
+
this for the full review dimensions, scoring system, and output templates.
|
|
5
|
+
|
|
6
|
+
## Phase 1 — Inventory & Profiling (Agent A: Evaluator)
|
|
7
|
+
|
|
8
|
+
### Inputs
|
|
9
|
+
|
|
10
|
+
Before starting, gather context:
|
|
11
|
+
|
|
12
|
+
1. **Skills directory listing** — enumerate all skill directories
|
|
13
|
+
2. **`skill-builder` standards** — read `skill-builder/SKILL.md` and
|
|
14
|
+
`skill-builder/checklist.md` to calibrate quality expectations
|
|
15
|
+
3. **Prior audits** — search the journal:
|
|
16
|
+
```
|
|
17
|
+
search_entries({
|
|
18
|
+
query: "skill audit",
|
|
19
|
+
entry_type: "skill_audit_profile",
|
|
20
|
+
tags: ["adversarial-skill-audit"]
|
|
21
|
+
})
|
|
22
|
+
```
|
|
23
|
+
4. **README & Package inventory** — check if `README.md` lists all skills,
|
|
24
|
+
if `package.json` includes them in `files`, and whether they are current
|
|
25
|
+
|
|
26
|
+
### Per-Skill Scorecard
|
|
27
|
+
|
|
28
|
+
For each skill, produce a scorecard:
|
|
29
|
+
|
|
30
|
+
```markdown
|
|
31
|
+
### [skill-name]
|
|
32
|
+
|
|
33
|
+
**Files**: SKILL.md (X lines, Y KB) + N reference files
|
|
34
|
+
**Description**: [first 100 chars of description]
|
|
35
|
+
|
|
36
|
+
| Category | Score (1–5) | Notes |
|
|
37
|
+
| ------------------------------------- | ----------- | ----- |
|
|
38
|
+
| 1. Frontmatter & Triggering | | |
|
|
39
|
+
| 2. Instruction Clarity | | |
|
|
40
|
+
| 3. Structure & Progressive Disclosure | | |
|
|
41
|
+
| 4. Output Formats | | |
|
|
42
|
+
| 5. Edge Cases & Errors | | |
|
|
43
|
+
| 6. Security & Safety | | |
|
|
44
|
+
| 7. Token Efficiency | | |
|
|
45
|
+
| 8. Maintenance | | |
|
|
46
|
+
| **Average** | **X.X** | |
|
|
47
|
+
|
|
48
|
+
**Top Issue**: [Single most impactful improvement]
|
|
49
|
+
**Grade**: [A–F]
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Scoring Guide
|
|
53
|
+
|
|
54
|
+
| Score | Meaning |
|
|
55
|
+
| ----- | -------------------------------------------------------- |
|
|
56
|
+
| 5 | Excellent — meets or exceeds all skill-builder standards |
|
|
57
|
+
| 4 | Good — minor gaps, functional as-is |
|
|
58
|
+
| 3 | Acceptable — noticeable issues but usable |
|
|
59
|
+
| 2 | Poor — significant gaps affecting agent behavior |
|
|
60
|
+
| 1 | Failing — broken, misleading, or unusable |
|
|
61
|
+
|
|
62
|
+
### Directory-Level Assessment
|
|
63
|
+
|
|
64
|
+
After scoring all skills individually, produce a directory-level overview:
|
|
65
|
+
|
|
66
|
+
```markdown
|
|
67
|
+
## Directory Overview
|
|
68
|
+
|
|
69
|
+
**Total Skills**: N
|
|
70
|
+
**Average Quality Score**: X.X / 5.0
|
|
71
|
+
**Grade Distribution**: A: N, B: N, C: N, D: N, F: N
|
|
72
|
+
|
|
73
|
+
### Score Distribution
|
|
74
|
+
|
|
75
|
+
| Grade | Skills |
|
|
76
|
+
| ----------- | ---------------- |
|
|
77
|
+
| A (4.5–5.0) | skill-a, skill-b |
|
|
78
|
+
| B (3.5–4.4) | skill-c, skill-d |
|
|
79
|
+
| C (2.5–3.4) | skill-e |
|
|
80
|
+
| D (1.5–2.4) | skill-f |
|
|
81
|
+
| F (1.0–1.4) | — |
|
|
82
|
+
|
|
83
|
+
### Cross-Skill Properties
|
|
84
|
+
|
|
85
|
+
- **Potential overlaps**: [skills that cover similar domains]
|
|
86
|
+
- **Coverage gaps**: [domains with no skill coverage]
|
|
87
|
+
- **Consistency issues**: [naming conventions, structure differences]
|
|
88
|
+
- **Inventory accuracy**: [is the README table and package.json current?]
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Journal
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
create_entry({
|
|
95
|
+
content: "<full inventory with all scorecards>",
|
|
96
|
+
entry_type: "skill_audit_profile",
|
|
97
|
+
tags: ["adversarial-skill-audit", "profile"],
|
|
98
|
+
project_number: <project number>
|
|
99
|
+
})
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Phase 2 — Adversarial User Review (Agent B: Adversarial User)
|
|
105
|
+
|
|
106
|
+
Switch mental models. You are now a user who types imprecise, ambiguous
|
|
107
|
+
prompts. Your job is to find where the skills fail — wrong skill triggers,
|
|
108
|
+
no skill triggers, confusing output, or dangerous behavior.
|
|
109
|
+
|
|
110
|
+
### Review Dimensions
|
|
111
|
+
|
|
112
|
+
Score each dimension on a 1–5 scale:
|
|
113
|
+
|
|
114
|
+
| Dimension | Weight | Focus Areas |
|
|
115
|
+
| ------------------------ | ------ | ---------------------------------------------------------------------------------------------------------------- |
|
|
116
|
+
| **Trigger Reliability** | 4 | Does the skill load when it should? Does it avoid loading when it shouldn't? Are trigger keywords comprehensive? |
|
|
117
|
+
| **Instruction Fidelity** | 3 | Will an agent actually follow these instructions correctly? Are there ambiguous steps that invite hallucination? |
|
|
118
|
+
| **Failure Graceful** | 2 | What happens when prerequisites are missing, inputs are weird, or the project doesn't match assumptions? |
|
|
119
|
+
| **Token ROI** | 1 | Is the token cost justified by the value provided? Could the same effect be achieved with fewer tokens? |
|
|
120
|
+
|
|
121
|
+
### Trigger Testing
|
|
122
|
+
|
|
123
|
+
For each skill, construct 3 test prompts:
|
|
124
|
+
|
|
125
|
+
1. **Direct trigger** — a prompt that obviously should load this skill
|
|
126
|
+
2. **Oblique trigger** — a prompt that should load this skill but uses
|
|
127
|
+
different phrasing than the description
|
|
128
|
+
3. **Anti-trigger** — a prompt that sounds related but should NOT load
|
|
129
|
+
this skill
|
|
130
|
+
|
|
131
|
+
Evaluate each:
|
|
132
|
+
|
|
133
|
+
```markdown
|
|
134
|
+
### Trigger Test: [skill-name]
|
|
135
|
+
|
|
136
|
+
| # | Prompt | Should Trigger? | Would It? | Confidence |
|
|
137
|
+
| --- | -------------------------- | --------------- | --------- | --------------------------- |
|
|
138
|
+
| 1 | "Build an MCP server" | Yes | Yes | High |
|
|
139
|
+
| 2 | "Connect my API to Claude" | Yes | Maybe | Medium |
|
|
140
|
+
| 3 | "Write a REST API" | No | Maybe | Low — description too broad |
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Trigger Collision Map
|
|
144
|
+
|
|
145
|
+
Identify prompts where multiple skills would compete to load:
|
|
146
|
+
|
|
147
|
+
```markdown
|
|
148
|
+
### Trigger Collisions
|
|
149
|
+
|
|
150
|
+
| Prompt | Competing Skills | Winner | Issue |
|
|
151
|
+
| ---------------------- | ------------------------------------------ | ------- | --------------------- |
|
|
152
|
+
| "Set up CI/CD" | github-actions, docker, cloudflare | Unclear | All three claim CI/CD |
|
|
153
|
+
| "Deploy to production" | cloudflare, docker, workers-best-practices | Unclear | Ambiguous platform |
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Instruction Stress Tests
|
|
157
|
+
|
|
158
|
+
For each skill, identify instructions that an agent might:
|
|
159
|
+
|
|
160
|
+
- **Misinterpret** — ambiguous phrasing that could lead to wrong behavior
|
|
161
|
+
- **Skip** — low-priority-sounding steps that are actually critical
|
|
162
|
+
- **Over-execute** — instructions that could cause an agent to do too much
|
|
163
|
+
- **Hallucinate from** — vague instructions that invite fabrication
|
|
164
|
+
|
|
165
|
+
```markdown
|
|
166
|
+
### Instruction Issues: [skill-name]
|
|
167
|
+
|
|
168
|
+
| Line/Section | Issue | Type | Example Failure |
|
|
169
|
+
| ------------------------ | ---------------------- | ------------- | ------------------------------- |
|
|
170
|
+
| "Consider using caching" | Vague — agent may skip | Skip risk | Agent ignores caching entirely |
|
|
171
|
+
| "Set up the project" | No specifics | Hallucination | Agent invents project structure |
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Critique Output Format
|
|
175
|
+
|
|
176
|
+
```markdown
|
|
177
|
+
## Adversarial User Review — [Skills Directory]
|
|
178
|
+
|
|
179
|
+
**Overall Quality Score:** [weighted average] / 5.0
|
|
180
|
+
**Directory Grade:** [A–F]
|
|
181
|
+
|
|
182
|
+
### Findings
|
|
183
|
+
|
|
184
|
+
| # | Skill | Category | Severity | Finding | Remediation |
|
|
185
|
+
| --- | ------------- | ---------- | -------- | --------------------------------- | ---------------------------------- |
|
|
186
|
+
| 1 | mcp-builder | Triggering | High | "Connect AI to API" won't trigger | Add to description keywords |
|
|
187
|
+
| 2 | docker | Clarity | Medium | "Set up multi-stage" is ambiguous | Add concrete Dockerfile template |
|
|
188
|
+
| 3 | — (directory) | Collision | High | 3 skills fight over "deploy" | Add disambiguation in descriptions |
|
|
189
|
+
|
|
190
|
+
### Dimension Scores
|
|
191
|
+
|
|
192
|
+
| Dimension | Score | Weight | Weighted |
|
|
193
|
+
| -------------------- | ----- | ------ | -------------------- |
|
|
194
|
+
| Trigger Reliability | [1–5] | 4 | [score × 4] |
|
|
195
|
+
| Instruction Fidelity | [1–5] | 3 | [score × 3] |
|
|
196
|
+
| Failure Graceful | [1–5] | 2 | [score × 2] |
|
|
197
|
+
| Token ROI | [1–5] | 1 | [score × 1] |
|
|
198
|
+
| **Total** | | **10** | **[sum]/50 = [avg]** |
|
|
199
|
+
|
|
200
|
+
### Blocking Issues
|
|
201
|
+
|
|
202
|
+
Skills that are actively harmful, misleading, or security-risk.
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Journal
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
create_entry({
|
|
209
|
+
content: "<full adversarial review>",
|
|
210
|
+
entry_type: "skill_audit_stress",
|
|
211
|
+
tags: ["adversarial-skill-audit", "stress-test"],
|
|
212
|
+
project_number: <project number>
|
|
213
|
+
})
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## Phase 3 — Improvement Plan (Agent A: Evaluator)
|
|
219
|
+
|
|
220
|
+
Switch back to the Evaluator. Address every finding with a disposition.
|
|
221
|
+
|
|
222
|
+
### Disposition Table
|
|
223
|
+
|
|
224
|
+
| Disposition | Meaning |
|
|
225
|
+
| ----------- | ------------------------------------------------- |
|
|
226
|
+
| **Accept** | Implement the improvement |
|
|
227
|
+
| **Reject** | Finding doesn't apply or trade-off isn't worth it |
|
|
228
|
+
| **Modify** | Accept the spirit but implement differently |
|
|
229
|
+
| **Defer** | Acknowledge but defer (document why) |
|
|
230
|
+
|
|
231
|
+
### Improvement Plan Output
|
|
232
|
+
|
|
233
|
+
```markdown
|
|
234
|
+
## Improvement Plan — [Skills Directory]
|
|
235
|
+
|
|
236
|
+
### Disposition Summary
|
|
237
|
+
|
|
238
|
+
| # | Skill | Finding | Disposition | Rationale |
|
|
239
|
+
| --- | ------------- | ----------------------------- | ----------- | -------------------------------- |
|
|
240
|
+
| 1 | mcp-builder | Missing trigger keywords | Accept | Add 5 alternative phrasings |
|
|
241
|
+
| 2 | docker | Ambiguous instruction | Modify | Add example instead of rewriting |
|
|
242
|
+
| 3 | — (directory) | Trigger collision on "deploy" | Accept | Add "NOT for..." clauses |
|
|
243
|
+
|
|
244
|
+
### Priority 1 — Quick Wins (per skill)
|
|
245
|
+
|
|
246
|
+
| Skill | Fix | Effort |
|
|
247
|
+
| ----- | --- | ------- |
|
|
248
|
+
| ... | ... | <15 min |
|
|
249
|
+
|
|
250
|
+
### Priority 2 — Structural Improvements
|
|
251
|
+
|
|
252
|
+
| Skill | Fix | Effort |
|
|
253
|
+
| ----- | --- | --------- |
|
|
254
|
+
| ... | ... | 30–60 min |
|
|
255
|
+
|
|
256
|
+
### Priority 3 — New Skills Needed
|
|
257
|
+
|
|
258
|
+
| Gap | Suggested Skill | Rationale |
|
|
259
|
+
| --- | --------------- | --------- |
|
|
260
|
+
| ... | ... | ... |
|
|
261
|
+
|
|
262
|
+
### Skills to Deprecate or Merge
|
|
263
|
+
|
|
264
|
+
| Skill | Action | Rationale |
|
|
265
|
+
| ----- | ------------ | ------------------ |
|
|
266
|
+
| ... | Merge into X | 90% overlap with X |
|
|
267
|
+
|
|
268
|
+
### Projected Quality Improvement
|
|
269
|
+
|
|
270
|
+
| Metric | Before | After |
|
|
271
|
+
| ------------------ | ------ | ----- |
|
|
272
|
+
| Average score | X.X | X.X |
|
|
273
|
+
| Skills graded A/B | N/M | N/M |
|
|
274
|
+
| Trigger collisions | N | N |
|
|
275
|
+
| Coverage gaps | N | N |
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
### Iteration Control
|
|
279
|
+
|
|
280
|
+
Check: has `MAX_AUDIT_PASSES` been reached?
|
|
281
|
+
|
|
282
|
+
- **No** → return to Phase 2 (stress-test the improvement plan itself)
|
|
283
|
+
- **Yes** → proceed to Phase 4
|
|
284
|
+
|
|
285
|
+
### Journal
|
|
286
|
+
|
|
287
|
+
```
|
|
288
|
+
create_entry({
|
|
289
|
+
content: "<improvement plan with dispositions>",
|
|
290
|
+
entry_type: "skill_audit_remediation",
|
|
291
|
+
tags: ["adversarial-skill-audit", "remediation"],
|
|
292
|
+
project_number: <project number>
|
|
293
|
+
})
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
## Phase 4 — Copilot Validation (External)
|
|
299
|
+
|
|
300
|
+
If available, invoke Copilot CLI. See
|
|
301
|
+
[copilot-skill-prompts.md](copilot-skill-prompts.md).
|
|
302
|
+
|
|
303
|
+
If unavailable, skip gracefully.
|
|
304
|
+
|
|
305
|
+
### Journal
|
|
306
|
+
|
|
307
|
+
```
|
|
308
|
+
create_entry({
|
|
309
|
+
content: "<copilot findings + final dispositions>",
|
|
310
|
+
entry_type: "skill_audit_copilot",
|
|
311
|
+
tags: ["adversarial-skill-audit", "copilot"],
|
|
312
|
+
project_number: <project number>
|
|
313
|
+
})
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
## Final Report Assembly
|
|
319
|
+
|
|
320
|
+
```markdown
|
|
321
|
+
# Adversarial Skill Audit — [Skills Directory]
|
|
322
|
+
|
|
323
|
+
**Date**: [ISO date]
|
|
324
|
+
**Audit Depth**: [surface | standard | thorough]
|
|
325
|
+
**Skills Audited**: N
|
|
326
|
+
**Passes Completed**: N
|
|
327
|
+
**Copilot Validation**: [yes | skipped]
|
|
328
|
+
|
|
329
|
+
## Executive Summary
|
|
330
|
+
|
|
331
|
+
[2–3 sentences: overall quality, critical issues, top recommendation]
|
|
332
|
+
|
|
333
|
+
**Directory Quality Score**: [X.X] / 5.0 — Grade [A–F]
|
|
334
|
+
|
|
335
|
+
## Skill Scoreboard
|
|
336
|
+
|
|
337
|
+
| Skill | Score | Grade | Top Issue |
|
|
338
|
+
| ------------------- | ----- | ----- | ---------------------------------- |
|
|
339
|
+
| adversarial-planner | 4.5 | A | — |
|
|
340
|
+
| docker | 3.2 | C | Ambiguous multi-stage instructions |
|
|
341
|
+
| ... | | | |
|
|
342
|
+
|
|
343
|
+
## Top 5 Improvements (by impact)
|
|
344
|
+
|
|
345
|
+
1. [Highest-impact fix]
|
|
346
|
+
2. ...
|
|
347
|
+
|
|
348
|
+
## Trigger Collision Map
|
|
349
|
+
|
|
350
|
+
[From Phase 2]
|
|
351
|
+
|
|
352
|
+
## Coverage Gap Analysis
|
|
353
|
+
|
|
354
|
+
[Domains without skill coverage]
|
|
355
|
+
|
|
356
|
+
## Full Findings (by severity)
|
|
357
|
+
|
|
358
|
+
[All findings from Phase 2]
|
|
359
|
+
|
|
360
|
+
## Improvement Plan
|
|
361
|
+
|
|
362
|
+
[From Phase 3]
|
|
363
|
+
|
|
364
|
+
## Per-Skill Scorecards
|
|
365
|
+
|
|
366
|
+
[From Phase 1 — all individual scorecards]
|
|
367
|
+
```
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
param (
|
|
2
|
+
[Parameter(Mandatory=$false)]
|
|
3
|
+
[switch]$FormatJson
|
|
4
|
+
)
|
|
5
|
+
|
|
6
|
+
# Resolve the skills root directory, assuming the script is in skills/adversarial-skill-audit/scripts
|
|
7
|
+
$targetDir = Resolve-Path "$PSScriptRoot\..\.."
|
|
8
|
+
$skills = Get-ChildItem -Path $targetDir -Directory | Where-Object Name -notin 'bin', 'node_modules', '.git', '.agents'
|
|
9
|
+
|
|
10
|
+
$results = @()
|
|
11
|
+
|
|
12
|
+
foreach ($skill in $skills) {
|
|
13
|
+
$skillFile = Join-Path $skill.FullName "SKILL.md"
|
|
14
|
+
if (Test-Path $skillFile) {
|
|
15
|
+
$content = Get-Content $skillFile -Raw
|
|
16
|
+
$lines = ($content -split "`n").Count
|
|
17
|
+
$hasName = $content -match "name:.*"
|
|
18
|
+
$hasDesc = $content -match "description:.*"
|
|
19
|
+
$descMatches = [regex]::Match($content, 'description:\s*\|?([^#]*)---', [System.Text.RegularExpressions.RegexOptions]::Singleline)
|
|
20
|
+
$desc = if ($descMatches.Success) { $descMatches.Groups[1].Value.Trim() -replace "`r", "" -replace "`n", " " } else { "None" }
|
|
21
|
+
$descWords = ($desc -split "\s+").Count
|
|
22
|
+
|
|
23
|
+
$obj = [PSCustomObject]@{
|
|
24
|
+
Name = $skill.Name
|
|
25
|
+
Lines = $lines
|
|
26
|
+
HasName = $hasName
|
|
27
|
+
HasDesc = $hasDesc
|
|
28
|
+
DescWords = $descWords
|
|
29
|
+
DescPreview = if ($desc.Length -gt 150) { $desc.Substring(0, 150) + "..." } else { $desc }
|
|
30
|
+
}
|
|
31
|
+
$results += $obj
|
|
32
|
+
} else {
|
|
33
|
+
$results += [PSCustomObject]@{
|
|
34
|
+
Name = $skill.Name
|
|
35
|
+
Lines = 0
|
|
36
|
+
HasName = $false
|
|
37
|
+
HasDesc = $false
|
|
38
|
+
DescWords = 0
|
|
39
|
+
DescPreview = "MISSING SKILL.md"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
if ($FormatJson) {
|
|
45
|
+
$results | ConvertTo-Json -Depth 2
|
|
46
|
+
} else {
|
|
47
|
+
$results | Format-Table -Property Name, Lines, DescWords, DescPreview
|
|
48
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
param (
|
|
2
|
+
[Parameter(Mandatory=$false)]
|
|
3
|
+
[string]$TargetSkill = ""
|
|
4
|
+
)
|
|
5
|
+
|
|
6
|
+
# Resolve the skills root directory
|
|
7
|
+
$skillsDir = Resolve-Path "$PSScriptRoot\..\.."
|
|
8
|
+
|
|
9
|
+
# Ensure gh CLI is available
|
|
10
|
+
if (-not (Get-Command "gh" -ErrorAction SilentlyContinue)) {
|
|
11
|
+
Write-Error "GitHub CLI (gh) is required but not installed."
|
|
12
|
+
exit 1
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
# Determine which skills to run against
|
|
16
|
+
if ($TargetSkill) {
|
|
17
|
+
$targetPath = Join-Path $skillsDir $TargetSkill
|
|
18
|
+
if (-not (Test-Path $targetPath)) {
|
|
19
|
+
Write-Error "Skill directory '$TargetSkill' not found in $skillsDir"
|
|
20
|
+
exit 1
|
|
21
|
+
}
|
|
22
|
+
$skills = @(Get-Item $targetPath)
|
|
23
|
+
} else {
|
|
24
|
+
$skills = Get-ChildItem -Path $skillsDir -Directory | Where-Object Name -notin 'bin', 'node_modules', '.git', '.agents'
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
foreach ($skill in $skills) {
|
|
28
|
+
$skillFile = Join-Path $skill.FullName "SKILL.md"
|
|
29
|
+
if (Test-Path $skillFile) {
|
|
30
|
+
Write-Host "==========================================" -ForegroundColor Cyan
|
|
31
|
+
Write-Host "Validating: $($skill.Name)" -ForegroundColor Cyan
|
|
32
|
+
Write-Host "==========================================" -ForegroundColor Cyan
|
|
33
|
+
|
|
34
|
+
$content = Get-Content $skillFile -Raw
|
|
35
|
+
|
|
36
|
+
$prompt = "You are an expert in AI agent instruction design. Review this agent skill file for quality. `n"
|
|
37
|
+
$prompt += "Evaluate it on:`n1. Trigger reliability`n2. Instruction clarity`n3. Completeness`n4. Token efficiency`n5. Security`n`n"
|
|
38
|
+
$prompt += "File: $($skill.Name)/SKILL.md`n`n"
|
|
39
|
+
$prompt += $content
|
|
40
|
+
$prompt += "`n`nOutput a Markdown table with columns: #, Category, Severity, Finding, Suggestion."
|
|
41
|
+
|
|
42
|
+
# Trim prompt to avoid max command line length issues (approx 8191 chars on Windows)
|
|
43
|
+
$maxLength = 7800
|
|
44
|
+
if ($prompt.Length -gt $maxLength) {
|
|
45
|
+
$prompt = $prompt.Substring(0, $maxLength) + "`n... [CONTENT TRUNCATED FOR LENGTH]"
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
# Execute gh copilot in non-interactive mode with -p
|
|
49
|
+
gh copilot -s -p $prompt
|
|
50
|
+
Write-Host "`n"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: adversarial-workflow-audit
|
|
3
|
+
description: |
|
|
4
|
+
Multi-pass adversarial quality audit for flat markdown workflow files.
|
|
5
|
+
Combines structured evaluation (Agent A) with adversarial stress-testing (Agent B)
|
|
6
|
+
to assess sequential clarity, prerequisite validation, HITL (Human-in-the-loop) safety gates,
|
|
7
|
+
loop prevention, and formatting. Use when auditing workflow scripts (e.g., slash-commands like /bump-deploy),
|
|
8
|
+
or when the user asks to review or improve operational playbooks.
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Adversarial Workflow Audit
|
|
12
|
+
|
|
13
|
+
A multi-pass quality auditing system adapted specifically for manual markdown workflows.
|
|
14
|
+
Unlike agent skills (which trigger automatically), workflows are manually invoked by users
|
|
15
|
+
and execute sequentially. This audit ensures they are deterministic, safe, and robust.
|
|
16
|
+
|
|
17
|
+
## When to Load
|
|
18
|
+
|
|
19
|
+
Load this skill when any of these apply:
|
|
20
|
+
|
|
21
|
+
- Auditing an entire workflows directory for quality and safety.
|
|
22
|
+
- Reviewing a new workflow before finalizing it.
|
|
23
|
+
- The user asks for a workflow quality check or playbook review.
|
|
24
|
+
- The user says "audit this workflow", "review this runbook", "check my playbook", or "review this slash command".
|
|
25
|
+
|
|
26
|
+
## Adversarial Protocol
|
|
27
|
+
|
|
28
|
+
This skill follows the standard dual-agent adversarial pattern (Agent A: The Evaluator, Agent B: The Adversarial Tester).
|
|
29
|
+
For the core pipeline rules, phase definitions, and agent switching protocols, read:
|
|
30
|
+
**[../adversarial-security/references/adversarial-base-protocol.md](../adversarial-security/references/adversarial-base-protocol.md)**
|
|
31
|
+
|
|
32
|
+
## Deep References
|
|
33
|
+
|
|
34
|
+
For the specific audit categories and rubric, read:
|
|
35
|
+
|
|
36
|
+
- **[Audit Categories Reference](references/audit-categories.md)**
|
|
37
|
+
|
|
38
|
+
## External Validation (Phase 4)
|
|
39
|
+
|
|
40
|
+
Phase 4 triggers an independent validation pass using the GitHub CLI (`gh copilot`).
|
|
41
|
+
The `copilot` subcommand is built into modern `gh` CLI — no separate extension is
|
|
42
|
+
needed. This provides a fundamentally different model's perspective on workflow
|
|
43
|
+
quality, catching ambiguous steps and missing safety gates that internal review
|
|
44
|
+
normalizes.
|
|
45
|
+
|
|
46
|
+
**Prerequisites:** `gh` CLI v2.x+ with `gh auth status` passing. If `gh copilot`
|
|
47
|
+
is not available, skip Phase 4 gracefully and note the skip in the journal entry.
|
|
48
|
+
|
|
49
|
+
Read [references/copilot-usage.md](references/copilot-usage.md) for critical non-interactive execution requirements.
|
|
50
|
+
|
|
51
|
+
## Feedback Loop
|
|
52
|
+
|
|
53
|
+
Every phase creates a journal entry for future retrieval. Ensure the `entry_type` and tags map to the protocol table above.
|
|
54
|
+
|
|
55
|
+
### Journal Opt-Out
|
|
56
|
+
|
|
57
|
+
See `../adversarial-security/references/journal-opt-out.md` for instructions on how to handle explicit opt-outs from journaling.
|
|
58
|
+
|
|
59
|
+
## Scripts
|
|
60
|
+
|
|
61
|
+
- `scripts/check-workflows.ps1`: Gathers baseline structural metrics across a workflows directory.
|
|
62
|
+
|
|
63
|
+
## Configuration
|
|
64
|
+
|
|
65
|
+
| Variable | Default | Description |
|
|
66
|
+
| -------------------- | ---------- | ------------------------------------------------- |
|
|
67
|
+
| `MAX_AUDIT_PASSES` | `2` | Maximum stress-test cycles (phases 2–3 repeat) |
|
|
68
|
+
| `AUDIT_DEPTH` | `standard` | Depth: `surface`, `standard`, or `thorough` |
|
|
69
|
+
| `COPILOT_VALIDATION` | `true` | Enable/disable Copilot extension validation phase |
|
|
70
|
+
|
|
71
|
+
### Audit Depth Profiles
|
|
72
|
+
|
|
73
|
+
- **Surface**: Review structure, linear step numbering, and obvious prerequisites. Quick scan for workflow injection vectors.
|
|
74
|
+
- **Standard**: Full audit with all review dimensions and Phase 2 stress testing. Default for most workflows.
|
|
75
|
+
- **Thorough**: Full audit plus cross-workflow impact analysis, ecosystem comparisons, and rigorous infinite loop boundary testing.
|
|
76
|
+
|
|
77
|
+
## Synergies
|
|
78
|
+
|
|
79
|
+
| Skill/Workflow | Relationship |
|
|
80
|
+
| --------------------- | ---------------------------------------------------------------------------------- |
|
|
81
|
+
| `adversarial-planner` | Parent pattern; this skill adapts it for manual execution workflows. |
|
|
82
|
+
| `/doc-audit` | Audits documentation repositories, but not specifically executable workflow steps. |
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Workflow Audit Categories
|
|
2
|
+
|
|
3
|
+
The workflow evaluator and adversarial tester score the workflow against 5 major categories.
|
|
4
|
+
|
|
5
|
+
## 1. Safety Gates (HITL)
|
|
6
|
+
|
|
7
|
+
- **Evaluator**: Are destructive actions (git push, merge, deploy, npm publish, database migrations) explicitly marked with HITL gates (e.g. `STOP HERE. Ask the user for confirmation`)?
|
|
8
|
+
- **Adversarial**: Could an over-eager agent chain tool calls together to bypass a confirmation? Are the stop instructions assertive enough?
|
|
9
|
+
|
|
10
|
+
## 2. Pre-Flight & Prerequisites
|
|
11
|
+
|
|
12
|
+
- **Evaluator**: Does the workflow begin with an explicit step to check prerequisites (e.g., "Run `/security-audit` first" or "Verify tests pass")?
|
|
13
|
+
- **Adversarial**: What if the prerequisite fails? Is there an instruction on what the agent should do, or does it blindly proceed to step 2?
|
|
14
|
+
|
|
15
|
+
## 3. Execution Determinism & Loop Prevention
|
|
16
|
+
|
|
17
|
+
- **Evaluator**: Are instructions explicit and imperative? Is there any ambiguous "try to fix this" wording that lacks boundaries?
|
|
18
|
+
- **Adversarial**: If a tool call (like `npm run build`) fails, does the workflow cap retry attempts or define an escalation path? Vague instructions like "fix errors until it passes" cause expensive infinite loops.
|
|
19
|
+
|
|
20
|
+
## 4. State Management
|
|
21
|
+
|
|
22
|
+
- **Evaluator**: If the workflow spans multiple steps, does it instruct the agent to journal or track state?
|
|
23
|
+
- **Adversarial**: If the user leaves and returns the next day, will the agent know where it left off?
|
|
24
|
+
|
|
25
|
+
## 5. Formatting & Token Efficiency
|
|
26
|
+
|
|
27
|
+
- **Evaluator**: Is the workflow concise? Does it avoid monolithic, repetitive examples? Are code blocks minimized?
|
|
28
|
+
- **Adversarial**: Are there markdown formatting bugs that could break an agent's markdown parser or regex?
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# GitHub Copilot External Validation
|
|
2
|
+
|
|
3
|
+
> **⚠️ CRITICAL — Non-Interactive Mode**: The `gh copilot` CLI must be run in
|
|
4
|
+
> non-interactive mode using the `-p` (or `--prompt`) flag. Interactive mode
|
|
5
|
+
> will hang indefinitely in an automated agent context. Use:
|
|
6
|
+
>
|
|
7
|
+
> ```
|
|
8
|
+
> gh copilot -p "Considering these standards from Phase 0 research: [insert findings]. <prompt>" --allow-tool "shell(find,cat,head,grep)"
|
|
9
|
+
> ```
|
|
10
|
+
>
|
|
11
|
+
> The `--allow-tool` flag grants Copilot read access to the repository files.
|
|
12
|
+
> Always `Set-Location` (or `cd`) to the target repository before invoking.
|
|
13
|
+
>
|
|
14
|
+
> **⚠️ TIMEOUT GUIDANCE**: Expect 60–120 seconds per prompt. In environments with hard synchronous timeouts, use the `-s` flag or allow the command to naturally fall into the background.
|
|
15
|
+
|
|
16
|
+
> **⚠️ CRITICAL — No Fabrication**: You MUST actually execute `gh copilot` commands. Do NOT fabricate or predict what Copilot would say.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
$targetDir = "C:\Users\chris\Desktop\adamic\.agents\workflows"
|
|
2
|
+
$workflows = Get-ChildItem -Path $targetDir -Filter *.md
|
|
3
|
+
|
|
4
|
+
$results = @()
|
|
5
|
+
|
|
6
|
+
foreach ($wf in $workflows) {
|
|
7
|
+
$content = Get-Content $wf.FullName -Raw
|
|
8
|
+
$lines = ($content -split "`n").Count
|
|
9
|
+
$hasDesc = $content -match "description:.*"
|
|
10
|
+
$descMatches = [regex]::Match($content, 'description:\s*\|?([^#]*)---', [System.Text.RegularExpressions.RegexOptions]::Singleline)
|
|
11
|
+
$desc = if ($descMatches.Success) { $descMatches.Groups[1].Value.Trim() -replace "`r", "" -replace "`n", " " } else { "None" }
|
|
12
|
+
$descWords = ($desc -split "\s+").Count
|
|
13
|
+
|
|
14
|
+
$obj = [PSCustomObject]@{
|
|
15
|
+
Name = $wf.BaseName
|
|
16
|
+
Lines = $lines
|
|
17
|
+
HasDesc = $hasDesc
|
|
18
|
+
DescWords = $descWords
|
|
19
|
+
DescPreview = if ($desc.Length -gt 150) { $desc.Substring(0, 150) + "..." } else { $desc }
|
|
20
|
+
}
|
|
21
|
+
$results += $obj
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
$results | ConvertTo-Json -Depth 2
|