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.
Files changed (531) hide show
  1. package/README.md +126 -56
  2. package/dist/chunk-6OHRCNYW.js +3231 -0
  3. package/dist/chunk-JFMITANR.js +5168 -0
  4. package/dist/{chunk-6LPTBIB6.js → chunk-MWNLAEHR.js} +309 -4332
  5. package/dist/{chunk-ARLYSFSI.js → chunk-UHSO65A4.js} +4242 -6092
  6. package/dist/cli.js +21 -3
  7. package/dist/index.d.ts +16 -13
  8. package/dist/index.js +4 -2
  9. package/dist/resources-IJVKDFGS.js +2 -0
  10. package/dist/tools-44DGXE3V.js +2 -0
  11. package/dist/worker-script.js +201 -20
  12. package/package.json +6 -4
  13. package/skills/README.md +62 -25
  14. package/skills/adversarial-performance/SKILL.md +139 -0
  15. package/skills/adversarial-performance/references/audit-categories.md +462 -0
  16. package/skills/adversarial-performance/references/copilot-performance-prompts.md +44 -0
  17. package/skills/adversarial-performance/references/copilot-usage.md +16 -0
  18. package/skills/adversarial-performance/references/feedback-loop.md +177 -0
  19. package/skills/adversarial-performance/references/multi-pass-performance-protocol.md +398 -0
  20. package/skills/adversarial-planner/SKILL.md +23 -54
  21. package/skills/adversarial-planner/references/copilot-integration.md +25 -40
  22. package/skills/adversarial-planner/references/copilot-usage.md +16 -0
  23. package/skills/adversarial-planner/references/multi-pass-protocol.md +4 -0
  24. package/skills/adversarial-security/SKILL.md +149 -0
  25. package/skills/adversarial-security/references/adversarial-base-protocol.md +44 -0
  26. package/skills/adversarial-security/references/audit-categories.md +723 -0
  27. package/skills/adversarial-security/references/copilot-security-prompts.md +142 -0
  28. package/skills/adversarial-security/references/copilot-usage.md +16 -0
  29. package/skills/adversarial-security/references/feedback-loop.md +206 -0
  30. package/skills/adversarial-security/references/journal-opt-out.md +7 -0
  31. package/skills/adversarial-security/references/multi-pass-security-protocol.md +403 -0
  32. package/skills/adversarial-skill-audit/SKILL.md +118 -0
  33. package/skills/adversarial-skill-audit/references/audit-categories.md +308 -0
  34. package/skills/adversarial-skill-audit/references/copilot-skill-prompts.md +68 -0
  35. package/skills/adversarial-skill-audit/references/copilot-usage.md +16 -0
  36. package/skills/adversarial-skill-audit/references/feedback-loop.md +155 -0
  37. package/skills/adversarial-skill-audit/references/multi-pass-skill-protocol.md +367 -0
  38. package/skills/adversarial-skill-audit/scripts/check-skills.ps1 +48 -0
  39. package/skills/adversarial-skill-audit/scripts/run-copilot.ps1 +52 -0
  40. package/skills/adversarial-workflow-audit/SKILL.md +82 -0
  41. package/skills/adversarial-workflow-audit/references/audit-categories.md +28 -0
  42. package/skills/adversarial-workflow-audit/references/copilot-usage.md +16 -0
  43. package/skills/adversarial-workflow-audit/scripts/check-workflows.ps1 +24 -0
  44. package/skills/agents-sdk/SKILL.md +220 -0
  45. package/skills/agents-sdk/references/callable.md +92 -0
  46. package/skills/agents-sdk/references/codemode.md +209 -0
  47. package/skills/agents-sdk/references/email.md +144 -0
  48. package/skills/agents-sdk/references/mcp/SKILL.md +65 -0
  49. package/skills/agents-sdk/references/mcp/code-mode-reference.md +245 -0
  50. package/skills/agents-sdk/references/mcp/oauth-reference.md +359 -0
  51. package/skills/agents-sdk/references/mcp/references/architecture-reference.md +208 -0
  52. package/skills/agents-sdk/references/mcp/references/cloudflare-quickstart.md +156 -0
  53. package/skills/agents-sdk/references/mcp/references/error-handling.md +343 -0
  54. package/skills/agents-sdk/references/mcp/references/http-security.md +164 -0
  55. package/skills/agents-sdk/references/mcp/references/implementation-guide.md +507 -0
  56. package/skills/agents-sdk/references/mcp/references/testing-reference.md +171 -0
  57. package/skills/agents-sdk/references/mcp.md +157 -0
  58. package/skills/agents-sdk/references/state-scheduling.md +164 -0
  59. package/skills/agents-sdk/references/streaming-chat.md +168 -0
  60. package/skills/agents-sdk/references/workflows.md +136 -0
  61. package/skills/auth-identity/SKILL.md +48 -0
  62. package/skills/autonomous-dev/SKILL.md +46 -23
  63. package/skills/autonomous-dev/references/workflow_orchestration.md +22 -0
  64. package/skills/aws/SKILL.md +39 -0
  65. package/skills/azure/SKILL.md +38 -0
  66. package/skills/bin/sync.js +7 -1
  67. package/skills/biome/SKILL.md +59 -0
  68. package/skills/bun/SKILL.md +8 -2
  69. package/skills/cloudflare/SKILL.md +37 -0
  70. package/skills/cloudflare/references/agents-sdk/README.md +95 -0
  71. package/skills/cloudflare/references/agents-sdk/api.md +195 -0
  72. package/skills/cloudflare/references/agents-sdk/configuration.md +178 -0
  73. package/skills/cloudflare/references/agents-sdk/gotchas.md +173 -0
  74. package/skills/cloudflare/references/agents-sdk/patterns.md +215 -0
  75. package/skills/cloudflare/references/ai-gateway/README.md +176 -0
  76. package/skills/cloudflare/references/ai-gateway/configuration.md +117 -0
  77. package/skills/cloudflare/references/ai-gateway/dynamic-routing.md +88 -0
  78. package/skills/cloudflare/references/ai-gateway/features.md +96 -0
  79. package/skills/cloudflare/references/ai-gateway/sdk-integration.md +110 -0
  80. package/skills/cloudflare/references/ai-gateway/troubleshooting.md +90 -0
  81. package/skills/cloudflare/references/ai-search/README.md +145 -0
  82. package/skills/cloudflare/references/ai-search/api.md +87 -0
  83. package/skills/cloudflare/references/ai-search/configuration.md +91 -0
  84. package/skills/cloudflare/references/ai-search/gotchas.md +92 -0
  85. package/skills/cloudflare/references/ai-search/patterns.md +87 -0
  86. package/skills/cloudflare/references/analytics-engine/README.md +96 -0
  87. package/skills/cloudflare/references/analytics-engine/api.md +112 -0
  88. package/skills/cloudflare/references/analytics-engine/configuration.md +107 -0
  89. package/skills/cloudflare/references/analytics-engine/gotchas.md +87 -0
  90. package/skills/cloudflare/references/analytics-engine/patterns.md +83 -0
  91. package/skills/cloudflare/references/api/README.md +66 -0
  92. package/skills/cloudflare/references/api/api.md +205 -0
  93. package/skills/cloudflare/references/api/configuration.md +158 -0
  94. package/skills/cloudflare/references/api/gotchas.md +231 -0
  95. package/skills/cloudflare/references/api/patterns.md +208 -0
  96. package/skills/cloudflare/references/api-shield/README.md +44 -0
  97. package/skills/cloudflare/references/api-shield/api.md +153 -0
  98. package/skills/cloudflare/references/api-shield/configuration.md +210 -0
  99. package/skills/cloudflare/references/api-shield/gotchas.md +132 -0
  100. package/skills/cloudflare/references/api-shield/patterns.md +185 -0
  101. package/skills/cloudflare/references/argo-smart-routing/README.md +96 -0
  102. package/skills/cloudflare/references/argo-smart-routing/api.md +253 -0
  103. package/skills/cloudflare/references/argo-smart-routing/configuration.md +205 -0
  104. package/skills/cloudflare/references/argo-smart-routing/gotchas.md +115 -0
  105. package/skills/cloudflare/references/argo-smart-routing/patterns.md +107 -0
  106. package/skills/cloudflare/references/bindings/README.md +127 -0
  107. package/skills/cloudflare/references/bindings/api.md +214 -0
  108. package/skills/cloudflare/references/bindings/configuration.md +200 -0
  109. package/skills/cloudflare/references/bindings/gotchas.md +210 -0
  110. package/skills/cloudflare/references/bindings/patterns.md +205 -0
  111. package/skills/cloudflare/references/bot-management/README.md +95 -0
  112. package/skills/cloudflare/references/bot-management/api.md +175 -0
  113. package/skills/cloudflare/references/bot-management/configuration.md +175 -0
  114. package/skills/cloudflare/references/bot-management/gotchas.md +116 -0
  115. package/skills/cloudflare/references/bot-management/patterns.md +181 -0
  116. package/skills/cloudflare/references/browser-rendering/README.md +84 -0
  117. package/skills/cloudflare/references/browser-rendering/api.md +108 -0
  118. package/skills/cloudflare/references/browser-rendering/configuration.md +78 -0
  119. package/skills/cloudflare/references/browser-rendering/gotchas.md +91 -0
  120. package/skills/cloudflare/references/browser-rendering/patterns.md +93 -0
  121. package/skills/cloudflare/references/c3/README.md +111 -0
  122. package/skills/cloudflare/references/c3/api.md +71 -0
  123. package/skills/cloudflare/references/c3/configuration.md +85 -0
  124. package/skills/cloudflare/references/c3/gotchas.md +97 -0
  125. package/skills/cloudflare/references/c3/patterns.md +84 -0
  126. package/skills/cloudflare/references/cache-reserve/README.md +150 -0
  127. package/skills/cloudflare/references/cache-reserve/api.md +184 -0
  128. package/skills/cloudflare/references/cache-reserve/configuration.md +170 -0
  129. package/skills/cloudflare/references/cache-reserve/gotchas.md +136 -0
  130. package/skills/cloudflare/references/cache-reserve/patterns.md +197 -0
  131. package/skills/cloudflare/references/containers/README.md +87 -0
  132. package/skills/cloudflare/references/containers/api.md +197 -0
  133. package/skills/cloudflare/references/containers/configuration.md +191 -0
  134. package/skills/cloudflare/references/containers/gotchas.md +182 -0
  135. package/skills/cloudflare/references/containers/patterns.md +204 -0
  136. package/skills/cloudflare/references/cron-triggers/README.md +101 -0
  137. package/skills/cloudflare/references/cron-triggers/api.md +224 -0
  138. package/skills/cloudflare/references/cron-triggers/configuration.md +190 -0
  139. package/skills/cloudflare/references/cron-triggers/gotchas.md +207 -0
  140. package/skills/cloudflare/references/cron-triggers/patterns.md +274 -0
  141. package/skills/cloudflare/references/d1/README.md +137 -0
  142. package/skills/cloudflare/references/d1/api.md +213 -0
  143. package/skills/cloudflare/references/d1/configuration.md +198 -0
  144. package/skills/cloudflare/references/d1/gotchas.md +98 -0
  145. package/skills/cloudflare/references/d1/patterns.md +240 -0
  146. package/skills/cloudflare/references/ddos/README.md +42 -0
  147. package/skills/cloudflare/references/ddos/api.md +158 -0
  148. package/skills/cloudflare/references/ddos/configuration.md +94 -0
  149. package/skills/cloudflare/references/ddos/gotchas.md +114 -0
  150. package/skills/cloudflare/references/ddos/patterns.md +220 -0
  151. package/skills/cloudflare/references/decision-trees.md +95 -0
  152. package/skills/cloudflare/references/do-storage/README.md +79 -0
  153. package/skills/cloudflare/references/do-storage/api.md +107 -0
  154. package/skills/cloudflare/references/do-storage/configuration.md +114 -0
  155. package/skills/cloudflare/references/do-storage/gotchas.md +153 -0
  156. package/skills/cloudflare/references/do-storage/patterns.md +210 -0
  157. package/skills/cloudflare/references/do-storage/testing.md +186 -0
  158. package/skills/cloudflare/references/durable-objects/README.md +194 -0
  159. package/skills/cloudflare/references/durable-objects/api.md +205 -0
  160. package/skills/cloudflare/references/durable-objects/configuration.md +160 -0
  161. package/skills/cloudflare/references/durable-objects/gotchas.md +200 -0
  162. package/skills/cloudflare/references/durable-objects/patterns.md +205 -0
  163. package/skills/cloudflare/references/email-routing/README.md +89 -0
  164. package/skills/cloudflare/references/email-routing/api.md +192 -0
  165. package/skills/cloudflare/references/email-routing/configuration.md +187 -0
  166. package/skills/cloudflare/references/email-routing/gotchas.md +203 -0
  167. package/skills/cloudflare/references/email-routing/patterns.md +241 -0
  168. package/skills/cloudflare/references/email-workers/README.md +153 -0
  169. package/skills/cloudflare/references/email-workers/api.md +227 -0
  170. package/skills/cloudflare/references/email-workers/configuration.md +115 -0
  171. package/skills/cloudflare/references/email-workers/gotchas.md +133 -0
  172. package/skills/cloudflare/references/email-workers/patterns.md +108 -0
  173. package/skills/cloudflare/references/graphql-api/README.md +147 -0
  174. package/skills/cloudflare/references/graphql-api/api.md +175 -0
  175. package/skills/cloudflare/references/graphql-api/configuration.md +151 -0
  176. package/skills/cloudflare/references/graphql-api/gotchas.md +111 -0
  177. package/skills/cloudflare/references/graphql-api/patterns.md +276 -0
  178. package/skills/cloudflare/references/hyperdrive/README.md +84 -0
  179. package/skills/cloudflare/references/hyperdrive/api.md +149 -0
  180. package/skills/cloudflare/references/hyperdrive/configuration.md +166 -0
  181. package/skills/cloudflare/references/hyperdrive/gotchas.md +77 -0
  182. package/skills/cloudflare/references/hyperdrive/patterns.md +203 -0
  183. package/skills/cloudflare/references/images/README.md +65 -0
  184. package/skills/cloudflare/references/images/api.md +101 -0
  185. package/skills/cloudflare/references/images/configuration.md +206 -0
  186. package/skills/cloudflare/references/images/gotchas.md +106 -0
  187. package/skills/cloudflare/references/images/patterns.md +126 -0
  188. package/skills/cloudflare/references/kv/README.md +90 -0
  189. package/skills/cloudflare/references/kv/api.md +163 -0
  190. package/skills/cloudflare/references/kv/configuration.md +148 -0
  191. package/skills/cloudflare/references/kv/gotchas.md +133 -0
  192. package/skills/cloudflare/references/kv/patterns.md +195 -0
  193. package/skills/cloudflare/references/miniflare/README.md +113 -0
  194. package/skills/cloudflare/references/miniflare/api.md +204 -0
  195. package/skills/cloudflare/references/miniflare/configuration.md +174 -0
  196. package/skills/cloudflare/references/miniflare/gotchas.md +179 -0
  197. package/skills/cloudflare/references/miniflare/patterns.md +187 -0
  198. package/skills/cloudflare/references/network-interconnect/README.md +104 -0
  199. package/skills/cloudflare/references/network-interconnect/api.md +220 -0
  200. package/skills/cloudflare/references/network-interconnect/configuration.md +123 -0
  201. package/skills/cloudflare/references/network-interconnect/gotchas.md +175 -0
  202. package/skills/cloudflare/references/network-interconnect/patterns.md +174 -0
  203. package/skills/cloudflare/references/observability/README.md +93 -0
  204. package/skills/cloudflare/references/observability/api.md +168 -0
  205. package/skills/cloudflare/references/observability/configuration.md +178 -0
  206. package/skills/cloudflare/references/observability/gotchas.md +125 -0
  207. package/skills/cloudflare/references/observability/patterns.md +105 -0
  208. package/skills/cloudflare/references/pages/README.md +92 -0
  209. package/skills/cloudflare/references/pages/api.md +205 -0
  210. package/skills/cloudflare/references/pages/configuration.md +216 -0
  211. package/skills/cloudflare/references/pages/gotchas.md +218 -0
  212. package/skills/cloudflare/references/pages/patterns.md +215 -0
  213. package/skills/cloudflare/references/pages-functions/README.md +104 -0
  214. package/skills/cloudflare/references/pages-functions/api.md +159 -0
  215. package/skills/cloudflare/references/pages-functions/configuration.md +130 -0
  216. package/skills/cloudflare/references/pages-functions/gotchas.md +102 -0
  217. package/skills/cloudflare/references/pages-functions/patterns.md +148 -0
  218. package/skills/cloudflare/references/pipelines/README.md +109 -0
  219. package/skills/cloudflare/references/pipelines/api.md +214 -0
  220. package/skills/cloudflare/references/pipelines/configuration.md +98 -0
  221. package/skills/cloudflare/references/pipelines/gotchas.md +84 -0
  222. package/skills/cloudflare/references/pipelines/patterns.md +87 -0
  223. package/skills/cloudflare/references/product-index.md +112 -0
  224. package/skills/cloudflare/references/pulumi/README.md +113 -0
  225. package/skills/cloudflare/references/pulumi/api.md +230 -0
  226. package/skills/cloudflare/references/pulumi/configuration.md +213 -0
  227. package/skills/cloudflare/references/pulumi/gotchas.md +205 -0
  228. package/skills/cloudflare/references/pulumi/patterns.md +260 -0
  229. package/skills/cloudflare/references/queues/README.md +99 -0
  230. package/skills/cloudflare/references/queues/api.md +211 -0
  231. package/skills/cloudflare/references/queues/configuration.md +151 -0
  232. package/skills/cloudflare/references/queues/gotchas.md +210 -0
  233. package/skills/cloudflare/references/queues/patterns.md +220 -0
  234. package/skills/cloudflare/references/r2/README.md +97 -0
  235. package/skills/cloudflare/references/r2/api.md +235 -0
  236. package/skills/cloudflare/references/r2/configuration.md +176 -0
  237. package/skills/cloudflare/references/r2/gotchas.md +190 -0
  238. package/skills/cloudflare/references/r2/patterns.md +203 -0
  239. package/skills/cloudflare/references/r2-data-catalog/README.md +157 -0
  240. package/skills/cloudflare/references/r2-data-catalog/api.md +199 -0
  241. package/skills/cloudflare/references/r2-data-catalog/configuration.md +205 -0
  242. package/skills/cloudflare/references/r2-data-catalog/gotchas.md +170 -0
  243. package/skills/cloudflare/references/r2-data-catalog/patterns.md +191 -0
  244. package/skills/cloudflare/references/r2-sql/README.md +138 -0
  245. package/skills/cloudflare/references/r2-sql/SKILL.md.backup +512 -0
  246. package/skills/cloudflare/references/r2-sql/api.md +159 -0
  247. package/skills/cloudflare/references/r2-sql/configuration.md +152 -0
  248. package/skills/cloudflare/references/r2-sql/gotchas.md +228 -0
  249. package/skills/cloudflare/references/r2-sql/patterns.md +230 -0
  250. package/skills/cloudflare/references/realtime-sfu/README.md +66 -0
  251. package/skills/cloudflare/references/realtime-sfu/api.md +164 -0
  252. package/skills/cloudflare/references/realtime-sfu/configuration.md +141 -0
  253. package/skills/cloudflare/references/realtime-sfu/gotchas.md +138 -0
  254. package/skills/cloudflare/references/realtime-sfu/patterns.md +187 -0
  255. package/skills/cloudflare/references/realtimekit/README.md +118 -0
  256. package/skills/cloudflare/references/realtimekit/api.md +234 -0
  257. package/skills/cloudflare/references/realtimekit/configuration.md +226 -0
  258. package/skills/cloudflare/references/realtimekit/gotchas.md +206 -0
  259. package/skills/cloudflare/references/realtimekit/patterns.md +240 -0
  260. package/skills/cloudflare/references/sandbox/README.md +104 -0
  261. package/skills/cloudflare/references/sandbox/api.md +200 -0
  262. package/skills/cloudflare/references/sandbox/configuration.md +154 -0
  263. package/skills/cloudflare/references/sandbox/gotchas.md +201 -0
  264. package/skills/cloudflare/references/sandbox/patterns.md +195 -0
  265. package/skills/cloudflare/references/secrets-store/README.md +77 -0
  266. package/skills/cloudflare/references/secrets-store/api.md +199 -0
  267. package/skills/cloudflare/references/secrets-store/configuration.md +187 -0
  268. package/skills/cloudflare/references/secrets-store/gotchas.md +97 -0
  269. package/skills/cloudflare/references/secrets-store/patterns.md +218 -0
  270. package/skills/cloudflare/references/smart-placement/README.md +143 -0
  271. package/skills/cloudflare/references/smart-placement/api.md +192 -0
  272. package/skills/cloudflare/references/smart-placement/configuration.md +202 -0
  273. package/skills/cloudflare/references/smart-placement/gotchas.md +180 -0
  274. package/skills/cloudflare/references/smart-placement/patterns.md +190 -0
  275. package/skills/cloudflare/references/snippets/README.md +74 -0
  276. package/skills/cloudflare/references/snippets/api.md +214 -0
  277. package/skills/cloudflare/references/snippets/configuration.md +239 -0
  278. package/skills/cloudflare/references/snippets/gotchas.md +104 -0
  279. package/skills/cloudflare/references/snippets/patterns.md +135 -0
  280. package/skills/cloudflare/references/spectrum/README.md +52 -0
  281. package/skills/cloudflare/references/spectrum/api.md +184 -0
  282. package/skills/cloudflare/references/spectrum/configuration.md +203 -0
  283. package/skills/cloudflare/references/spectrum/gotchas.md +155 -0
  284. package/skills/cloudflare/references/spectrum/patterns.md +206 -0
  285. package/skills/cloudflare/references/static-assets/README.md +65 -0
  286. package/skills/cloudflare/references/static-assets/api.md +201 -0
  287. package/skills/cloudflare/references/static-assets/configuration.md +186 -0
  288. package/skills/cloudflare/references/static-assets/gotchas.md +164 -0
  289. package/skills/cloudflare/references/static-assets/patterns.md +189 -0
  290. package/skills/cloudflare/references/stream/README.md +123 -0
  291. package/skills/cloudflare/references/stream/api-live.md +202 -0
  292. package/skills/cloudflare/references/stream/api.md +206 -0
  293. package/skills/cloudflare/references/stream/configuration.md +151 -0
  294. package/skills/cloudflare/references/stream/gotchas.md +139 -0
  295. package/skills/cloudflare/references/stream/patterns.md +217 -0
  296. package/skills/cloudflare/references/tail-workers/README.md +92 -0
  297. package/skills/cloudflare/references/tail-workers/api.md +203 -0
  298. package/skills/cloudflare/references/tail-workers/configuration.md +178 -0
  299. package/skills/cloudflare/references/tail-workers/gotchas.md +206 -0
  300. package/skills/cloudflare/references/tail-workers/patterns.md +190 -0
  301. package/skills/cloudflare/references/terraform/README.md +100 -0
  302. package/skills/cloudflare/references/terraform/api.md +178 -0
  303. package/skills/cloudflare/references/terraform/configuration.md +197 -0
  304. package/skills/cloudflare/references/terraform/gotchas.md +150 -0
  305. package/skills/cloudflare/references/terraform/patterns.md +174 -0
  306. package/skills/cloudflare/references/tunnel/README.md +137 -0
  307. package/skills/cloudflare/references/tunnel/api.md +205 -0
  308. package/skills/cloudflare/references/tunnel/configuration.md +163 -0
  309. package/skills/cloudflare/references/tunnel/gotchas.md +159 -0
  310. package/skills/cloudflare/references/tunnel/networking.md +174 -0
  311. package/skills/cloudflare/references/tunnel/patterns.md +199 -0
  312. package/skills/cloudflare/references/turn/README.md +86 -0
  313. package/skills/cloudflare/references/turn/api.md +236 -0
  314. package/skills/cloudflare/references/turn/configuration.md +181 -0
  315. package/skills/cloudflare/references/turn/gotchas.md +236 -0
  316. package/skills/cloudflare/references/turn/patterns.md +228 -0
  317. package/skills/cloudflare/references/turnstile/README.md +102 -0
  318. package/skills/cloudflare/references/turnstile/api.md +253 -0
  319. package/skills/cloudflare/references/turnstile/configuration.md +242 -0
  320. package/skills/cloudflare/references/turnstile/gotchas.md +253 -0
  321. package/skills/cloudflare/references/turnstile/patterns.md +195 -0
  322. package/skills/cloudflare/references/vectorize/README.md +133 -0
  323. package/skills/cloudflare/references/vectorize/api.md +89 -0
  324. package/skills/cloudflare/references/vectorize/configuration.md +91 -0
  325. package/skills/cloudflare/references/vectorize/gotchas.md +83 -0
  326. package/skills/cloudflare/references/vectorize/patterns.md +92 -0
  327. package/skills/cloudflare/references/waf/README.md +125 -0
  328. package/skills/cloudflare/references/waf/api.md +203 -0
  329. package/skills/cloudflare/references/waf/configuration.md +215 -0
  330. package/skills/cloudflare/references/waf/gotchas.md +208 -0
  331. package/skills/cloudflare/references/waf/patterns.md +236 -0
  332. package/skills/cloudflare/references/web-analytics/README.md +149 -0
  333. package/skills/cloudflare/references/web-analytics/configuration.md +81 -0
  334. package/skills/cloudflare/references/web-analytics/gotchas.md +86 -0
  335. package/skills/cloudflare/references/web-analytics/integration.md +63 -0
  336. package/skills/cloudflare/references/web-analytics/patterns.md +98 -0
  337. package/skills/cloudflare/references/workerd/README.md +85 -0
  338. package/skills/cloudflare/references/workerd/api.md +219 -0
  339. package/skills/cloudflare/references/workerd/configuration.md +200 -0
  340. package/skills/cloudflare/references/workerd/gotchas.md +151 -0
  341. package/skills/cloudflare/references/workerd/patterns.md +205 -0
  342. package/skills/cloudflare/references/workers/README.md +110 -0
  343. package/skills/cloudflare/references/workers/api.md +197 -0
  344. package/skills/cloudflare/references/workers/configuration.md +184 -0
  345. package/skills/cloudflare/references/workers/frameworks.md +200 -0
  346. package/skills/cloudflare/references/workers/gotchas.md +145 -0
  347. package/skills/cloudflare/references/workers/patterns.md +220 -0
  348. package/skills/cloudflare/references/workers-ai/README.md +206 -0
  349. package/skills/cloudflare/references/workers-ai/api.md +115 -0
  350. package/skills/cloudflare/references/workers-ai/configuration.md +98 -0
  351. package/skills/cloudflare/references/workers-ai/gotchas.md +130 -0
  352. package/skills/cloudflare/references/workers-ai/patterns.md +122 -0
  353. package/skills/cloudflare/references/workers-for-platforms/README.md +95 -0
  354. package/skills/cloudflare/references/workers-for-platforms/api.md +212 -0
  355. package/skills/cloudflare/references/workers-for-platforms/configuration.md +178 -0
  356. package/skills/cloudflare/references/workers-for-platforms/gotchas.md +134 -0
  357. package/skills/cloudflare/references/workers-for-platforms/patterns.md +210 -0
  358. package/skills/cloudflare/references/workers-playground/README.md +131 -0
  359. package/skills/cloudflare/references/workers-playground/api.md +101 -0
  360. package/skills/cloudflare/references/workers-playground/configuration.md +169 -0
  361. package/skills/cloudflare/references/workers-playground/gotchas.md +88 -0
  362. package/skills/cloudflare/references/workers-playground/patterns.md +134 -0
  363. package/skills/cloudflare/references/workers-vpc/README.md +130 -0
  364. package/skills/cloudflare/references/workers-vpc/api.md +196 -0
  365. package/skills/cloudflare/references/workers-vpc/configuration.md +151 -0
  366. package/skills/cloudflare/references/workers-vpc/gotchas.md +171 -0
  367. package/skills/cloudflare/references/workers-vpc/patterns.md +235 -0
  368. package/skills/cloudflare/references/workflows/README.md +72 -0
  369. package/skills/cloudflare/references/workflows/api.md +237 -0
  370. package/skills/cloudflare/references/workflows/configuration.md +158 -0
  371. package/skills/cloudflare/references/workflows/gotchas.md +97 -0
  372. package/skills/cloudflare/references/workflows/patterns.md +245 -0
  373. package/skills/cloudflare/references/wrangler/README.md +143 -0
  374. package/skills/cloudflare/references/wrangler/api.md +188 -0
  375. package/skills/cloudflare/references/wrangler/configuration.md +198 -0
  376. package/skills/cloudflare/references/wrangler/gotchas.md +212 -0
  377. package/skills/cloudflare/references/wrangler/patterns.md +211 -0
  378. package/skills/cloudflare/references/zaraz/IMPLEMENTATION_SUMMARY.md +131 -0
  379. package/skills/cloudflare/references/zaraz/README.md +114 -0
  380. package/skills/cloudflare/references/zaraz/api.md +118 -0
  381. package/skills/cloudflare/references/zaraz/configuration.md +94 -0
  382. package/skills/cloudflare/references/zaraz/gotchas.md +88 -0
  383. package/skills/cloudflare/references/zaraz/patterns.md +77 -0
  384. package/skills/docker/SKILL.md +7 -101
  385. package/skills/docker/references/advanced-examples.md +71 -0
  386. package/skills/docker/references/templates.md +34 -0
  387. package/skills/docs-marketer/SKILL.md +178 -0
  388. package/skills/docs-marketer/references/audit-categories.md +328 -0
  389. package/skills/docs-marketer/references/copilot-docs-prompts.md +88 -0
  390. package/skills/docs-marketer/references/copilot-usage.md +16 -0
  391. package/skills/docs-marketer/references/feedback-loop.md +155 -0
  392. package/skills/docs-marketer/references/multi-pass-docs-protocol.md +410 -0
  393. package/skills/drizzle-orm/SKILL.md +82 -0
  394. package/skills/durable-objects/SKILL.md +167 -0
  395. package/skills/durable-objects/references/advanced_features.md +29 -0
  396. package/skills/durable-objects/references/rules.md +300 -0
  397. package/skills/durable-objects/references/testing.md +261 -0
  398. package/skills/durable-objects/references/workers.md +336 -0
  399. package/skills/gcp/SKILL.md +37 -0
  400. package/skills/github-actions/SKILL.md +5 -58
  401. package/skills/github-actions/references/templates.md +65 -0
  402. package/skills/github-commander/SKILL.md +13 -21
  403. package/skills/github-commander/workflows/copilot-audit.md +12 -12
  404. package/skills/github-copilot-cli/SKILL.md +21 -26
  405. package/skills/github-repo-setup/SKILL.md +136 -0
  406. package/skills/github-repo-setup/references/community-standards.md +136 -0
  407. package/skills/github-repo-setup/references/github-automation.md +490 -0
  408. package/skills/github-repo-setup/references/inline-templates.md +205 -0
  409. package/skills/github-repo-setup/references/project-config.md +320 -0
  410. package/skills/gitlab/SKILL.md +7 -2
  411. package/skills/gitlab/package-lock.json +389 -389
  412. package/skills/golang/SKILL.md +8 -1
  413. package/skills/graphql/SKILL.md +30 -0
  414. package/skills/hono/SKILL.md +82 -0
  415. package/skills/journal-optimizer/SKILL.md +206 -0
  416. package/skills/journal-optimizer/references/optimizer-scripts.md +169 -0
  417. package/skills/llm-app-engineering/SKILL.md +18 -0
  418. package/skills/monorepo/SKILL.md +56 -0
  419. package/skills/multi-agent-orchestration/SKILL.md +14 -0
  420. package/skills/mysql/SKILL.md +6 -2
  421. package/skills/next-best-practices/SKILL.md +86 -0
  422. package/skills/next-best-practices/references/cache-components-examples.md +234 -0
  423. package/skills/next-best-practices/references/cache-components.md +210 -0
  424. package/skills/next-best-practices/references/upgrade-decision-tree.md +33 -0
  425. package/skills/next-best-practices/references/upgrade.md +43 -0
  426. package/skills/next-cache-components/SKILL.md +441 -0
  427. package/skills/next-upgrade/SKILL.md +43 -0
  428. package/skills/next-upgrade/references/decision-tree.md +33 -0
  429. package/skills/nodejs/SKILL.md +46 -0
  430. package/skills/opentelemetry/SKILL.md +62 -0
  431. package/skills/package.json +39 -4
  432. package/skills/playwright-standard/SKILL.md +6 -11
  433. package/skills/playwright-standard/references/locators.md +7 -0
  434. package/skills/postgres/SKILL.md +6 -1
  435. package/skills/python/SKILL.md +8 -70
  436. package/skills/python/references/advanced-patterns.md +37 -0
  437. package/skills/python/references/config-templates.md +48 -0
  438. package/skills/rag-pipelines/SKILL.md +14 -0
  439. package/skills/redis/SKILL.md +31 -0
  440. package/skills/render/SKILL.md +35 -0
  441. package/skills/rust/SKILL.md +15 -25
  442. package/skills/rust/references/borrow-checker.md +13 -0
  443. package/skills/rust/references/ecosystem.md +11 -0
  444. package/skills/sandbox-sdk/SKILL.md +186 -0
  445. package/skills/sandbox-sdk/references/api-quick-ref.md +113 -0
  446. package/skills/sandbox-sdk/references/examples.md +52 -0
  447. package/skills/shadcn-ui/SKILL.md +22 -57
  448. package/skills/skill-builder/SKILL.md +23 -424
  449. package/skills/skill-builder/references/tutorial.md +457 -0
  450. package/skills/sqlite/SKILL.md +16 -5
  451. package/skills/table.md +59 -0
  452. package/skills/tailwind-css/SKILL.md +11 -60
  453. package/skills/tailwind-css/references/component-patterns.md +52 -0
  454. package/skills/trpc/SKILL.md +56 -0
  455. package/skills/typescript/SKILL.md +30 -433
  456. package/skills/typescript/references/tutorial.md +453 -0
  457. package/skills/vercel-ai-sdk/SKILL.md +48 -0
  458. package/skills/vitest-standard/SKILL.md +5 -11
  459. package/skills/vitest-standard/references/assertions.md +11 -0
  460. package/skills/web-perf/SKILL.md +207 -0
  461. package/skills/workers-best-practices/SKILL.md +120 -0
  462. package/skills/workers-best-practices/references/anti-patterns.md +18 -0
  463. package/skills/workers-best-practices/references/review.md +174 -0
  464. package/skills/workers-best-practices/references/rules.md +485 -0
  465. package/skills/wrangler/SKILL.md +43 -0
  466. package/skills/wrangler/references/cli-commands.md +861 -0
  467. package/skills/zod/SKILL.md +48 -0
  468. package/dist/tools-P4VGG4FH.js +0 -1
  469. package/skills/react-best-practices/AGENTS.md +0 -2883
  470. package/skills/react-best-practices/SKILL.md +0 -138
  471. /package/skills/{react-best-practices → next-best-practices}/README.md +0 -0
  472. /package/skills/{react-best-practices → next-best-practices}/metadata.json +0 -0
  473. /package/skills/{react-best-practices → next-best-practices}/rules/_sections.md +0 -0
  474. /package/skills/{react-best-practices → next-best-practices}/rules/_template.md +0 -0
  475. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-event-handler-refs.md +0 -0
  476. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-init-once.md +0 -0
  477. /package/skills/{react-best-practices → next-best-practices}/rules/advanced-use-latest.md +0 -0
  478. /package/skills/{react-best-practices → next-best-practices}/rules/async-api-routes.md +0 -0
  479. /package/skills/{react-best-practices → next-best-practices}/rules/async-defer-await.md +0 -0
  480. /package/skills/{react-best-practices → next-best-practices}/rules/async-dependencies.md +0 -0
  481. /package/skills/{react-best-practices → next-best-practices}/rules/async-parallel.md +0 -0
  482. /package/skills/{react-best-practices → next-best-practices}/rules/async-suspense-boundaries.md +0 -0
  483. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-barrel-imports.md +0 -0
  484. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-conditional.md +0 -0
  485. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-defer-third-party.md +0 -0
  486. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-dynamic-imports.md +0 -0
  487. /package/skills/{react-best-practices → next-best-practices}/rules/bundle-preload.md +0 -0
  488. /package/skills/{react-best-practices → next-best-practices}/rules/client-event-listeners.md +0 -0
  489. /package/skills/{react-best-practices → next-best-practices}/rules/client-localstorage-schema.md +0 -0
  490. /package/skills/{react-best-practices → next-best-practices}/rules/client-passive-event-listeners.md +0 -0
  491. /package/skills/{react-best-practices → next-best-practices}/rules/client-swr-dedup.md +0 -0
  492. /package/skills/{react-best-practices → next-best-practices}/rules/js-batch-dom-css.md +0 -0
  493. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-function-results.md +0 -0
  494. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-property-access.md +0 -0
  495. /package/skills/{react-best-practices → next-best-practices}/rules/js-cache-storage.md +0 -0
  496. /package/skills/{react-best-practices → next-best-practices}/rules/js-combine-iterations.md +0 -0
  497. /package/skills/{react-best-practices → next-best-practices}/rules/js-early-exit.md +0 -0
  498. /package/skills/{react-best-practices → next-best-practices}/rules/js-hoist-regexp.md +0 -0
  499. /package/skills/{react-best-practices → next-best-practices}/rules/js-index-maps.md +0 -0
  500. /package/skills/{react-best-practices → next-best-practices}/rules/js-length-check-first.md +0 -0
  501. /package/skills/{react-best-practices → next-best-practices}/rules/js-min-max-loop.md +0 -0
  502. /package/skills/{react-best-practices → next-best-practices}/rules/js-set-map-lookups.md +0 -0
  503. /package/skills/{react-best-practices → next-best-practices}/rules/js-tosorted-immutable.md +0 -0
  504. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-activity.md +0 -0
  505. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-animate-svg-wrapper.md +0 -0
  506. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-conditional-render.md +0 -0
  507. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-content-visibility.md +0 -0
  508. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hoist-jsx.md +0 -0
  509. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-no-flicker.md +0 -0
  510. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-hydration-suppress-warning.md +0 -0
  511. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-svg-precision.md +0 -0
  512. /package/skills/{react-best-practices → next-best-practices}/rules/rendering-usetransition-loading.md +0 -0
  513. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-defer-reads.md +0 -0
  514. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-dependencies.md +0 -0
  515. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state-no-effect.md +0 -0
  516. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-derived-state.md +0 -0
  517. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-functional-setstate.md +0 -0
  518. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-lazy-state-init.md +0 -0
  519. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo-with-default-value.md +0 -0
  520. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-memo.md +0 -0
  521. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-move-effect-to-event.md +0 -0
  522. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-simple-expression-in-memo.md +0 -0
  523. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-transitions.md +0 -0
  524. /package/skills/{react-best-practices → next-best-practices}/rules/rerender-use-ref-transient-values.md +0 -0
  525. /package/skills/{react-best-practices → next-best-practices}/rules/server-after-nonblocking.md +0 -0
  526. /package/skills/{react-best-practices → next-best-practices}/rules/server-auth-actions.md +0 -0
  527. /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-lru.md +0 -0
  528. /package/skills/{react-best-practices → next-best-practices}/rules/server-cache-react.md +0 -0
  529. /package/skills/{react-best-practices → next-best-practices}/rules/server-dedup-props.md +0 -0
  530. /package/skills/{react-best-practices → next-best-practices}/rules/server-parallel-fetching.md +0 -0
  531. /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 { VERSION, DEFAULT_AUDIT_LOG_MAX_SIZE_BYTES, createServer } from './chunk-6LPTBIB6.js';
2
- import { logger } from './chunk-ARLYSFSI.js';
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 70 tools are categorized here for filtering support.
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' | 'technical_breakthrough' | 'decision' | 'lesson_learned' | 'blocker_resolved' | 'release' | null;
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 { VERSION, createServer } from './chunk-6LPTBIB6.js';
2
- export { META_GROUPS, TOOL_GROUPS, calculateTokenSavings, filterTools, getAllToolNames, getFilterSummary, getToolFilterFromEnv, getToolGroup, isToolEnabled, logger, parseToolFilter } from './chunk-ARLYSFSI.js';
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 = {
@@ -0,0 +1,2 @@
1
+ export { getResources, readResource } from './chunk-JFMITANR.js';
2
+ import './chunk-6OHRCNYW.js';
@@ -0,0 +1,2 @@
1
+ export { callTool, getTools } from './chunk-UHSO65A4.js';
2
+ import './chunk-6OHRCNYW.js';
@@ -46,18 +46,51 @@ function rpcCall(group, method, args) {
46
46
  rpcPort.postMessage(request);
47
47
  });
48
48
  }
49
- function buildApiProxy(methods) {
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
- api[methodName] = (...args) => rpcCall("_topLevel", methodName, args);
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
- groupProxy[methodName] = (...args) => rpcCall(group, methodName, args);
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) => Promise.reject(new Error(reason));
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((g) => g !== "_topLevel");
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. Example: mj.core.help()"
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: mjApi,
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
- const metrics = {
145
- wallTimeMs: Math.round(endTime - startTime),
146
- cpuTimeMs: Math.round((endCpu.user + endCpu.system) / 1e3),
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(code, methodList, timeoutMs ?? 3e4);
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": "7.7.1",
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": "npm run lint && npm run typecheck",
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": "^14.0.3",
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.0",
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, reference docs
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 | Description |
42
- | ---------------------- | --------------------------------------------------------------------------------------------------------------------- |
43
- | `adversarial-planner` | Multi-pass adversarial planning — iterative plan drafting, structured critique, and Copilot validation |
44
- | `autonomous-dev` | Harness for autonomous software development alignment gates, adversarial agents, Git workflows, and CI/CD pipelines |
45
- | `bun` | Master the Bun all-in-one toolkit runtime, package manager, test runner, and bundler |
46
- | `docker` | Production-grade Dockermulti-stage builds, security hardening, Compose v2, BuildKit, and CI/CD integration |
47
- | `github-actions` | GitHub Actions CI/CDSHA pinning, reusable workflows, caching, matrix strategies, and artifacts v4 |
48
- | `github-commander` | GitHub pipeline workflows for orchestrating issues, regressions, and deployments |
49
- | `github-copilot-cli` | Adversarial pre-push validation and full repository code audits driven by the @github/copilot terminal harness |
50
- | `gitlab` | Specialized assistant skill for managing repositories, code search, and CI/CD in GitLab |
51
- | `golang` | Master Go development with production-grade best practices from Google and Uber style guides |
52
- | `mysql` | Enterprise MySQL production rulesquery safety, connection pooling, strict schema configurations |
53
- | `playwright-standard` | Opinionated guidance for Playwright E2E/API tests, Page Object Models, and CI/CD resilience |
54
- | `postgres` | Advanced PostgreSQL patternsindexing layouts, JSONB querying, transactional guardrails, and RLS |
55
- | `python` | Modern Python engineering uv, ruff, type hints, pytest, Pydantic v2, and src/ layout project structure |
56
- | `react-best-practices` | Vercel engineering guidelines for React/Next.js performance, hooks, and bundle optimization |
57
- | `rust` | Master Rust development using a layer-based "meta-cognition" framework for borrowing, lifetimes, and architecture |
58
- | `shadcn-ui` | Deep knowledge of shadcn/ui components, patterns, forms, and best practices |
59
- | `skill-builder` | Guide for creating, evaluating, and refining agent skills progressive disclosure, triggers, and testing |
60
- | `sqlite` | Production configurations for concurrency (WAL), typing (STRICT), and data integrity |
61
- | `tailwind-css` | Tailwind CSS v4 CSS-first configuration, @theme directive, dark mode, responsive design, and v3 migration |
62
- | `typescript` | Enterprise-grade TypeScript development with type-safe patterns, Zod validation, and modern tooling |
63
- | `vitest-standard` | Comprehensive unit testing expertise covering Vitest, TDD, mocking strategies, and test architecture |
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 planningiterative plan drafting, structured critique, and Copilot validation |
46
+ | `adversarial-security` | Multi-pass adversarial security audititerative 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 practicesEntra 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 Dockermulti-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 8 autonomous DevOps workflows for repository stewardship:
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>/`