@mytechtoday/augment-extensions 0.1.2 → 0.4.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 (316) hide show
  1. package/README.md +614 -39
  2. package/augment-extensions/coding-standards/bash/README.md +196 -0
  3. package/augment-extensions/coding-standards/bash/module.json +163 -0
  4. package/augment-extensions/coding-standards/bash/rules/naming-conventions.md +336 -0
  5. package/augment-extensions/coding-standards/bash/rules/universal-standards.md +289 -0
  6. package/augment-extensions/coding-standards/css/README.md +40 -0
  7. package/augment-extensions/coding-standards/css/examples/css-examples.css +550 -0
  8. package/augment-extensions/coding-standards/css/module.json +44 -0
  9. package/augment-extensions/coding-standards/css/rules/css-modern-features.md +448 -0
  10. package/augment-extensions/coding-standards/css/rules/css-standards.md +492 -0
  11. package/augment-extensions/coding-standards/html/README.md +40 -0
  12. package/augment-extensions/coding-standards/html/examples/html-examples.html +267 -0
  13. package/augment-extensions/coding-standards/html/examples/responsive-layout.html +505 -0
  14. package/augment-extensions/coding-standards/html/module.json +44 -0
  15. package/augment-extensions/coding-standards/html/rules/html-standards.md +349 -0
  16. package/augment-extensions/coding-standards/html-css-js/README.md +194 -0
  17. package/augment-extensions/coding-standards/html-css-js/examples/async-examples.js +487 -0
  18. package/augment-extensions/coding-standards/html-css-js/examples/css-examples.css +550 -0
  19. package/augment-extensions/coding-standards/html-css-js/examples/dom-examples.js +667 -0
  20. package/augment-extensions/coding-standards/html-css-js/examples/html-examples.html +267 -0
  21. package/augment-extensions/coding-standards/html-css-js/examples/javascript-examples.js +612 -0
  22. package/augment-extensions/coding-standards/html-css-js/examples/responsive-layout.html +505 -0
  23. package/augment-extensions/coding-standards/html-css-js/module.json +48 -0
  24. package/augment-extensions/coding-standards/html-css-js/rules/async-patterns.md +515 -0
  25. package/augment-extensions/coding-standards/html-css-js/rules/css-modern-features.md +448 -0
  26. package/augment-extensions/coding-standards/html-css-js/rules/css-standards.md +492 -0
  27. package/augment-extensions/coding-standards/html-css-js/rules/dom-manipulation.md +439 -0
  28. package/augment-extensions/coding-standards/html-css-js/rules/html-standards.md +349 -0
  29. package/augment-extensions/coding-standards/html-css-js/rules/javascript-standards.md +486 -0
  30. package/augment-extensions/coding-standards/html-css-js/rules/performance.md +463 -0
  31. package/augment-extensions/coding-standards/html-css-js/rules/tooling.md +543 -0
  32. package/augment-extensions/coding-standards/js/README.md +46 -0
  33. package/augment-extensions/coding-standards/js/examples/async-examples.js +487 -0
  34. package/augment-extensions/coding-standards/js/examples/dom-examples.js +667 -0
  35. package/augment-extensions/coding-standards/js/examples/javascript-examples.js +612 -0
  36. package/augment-extensions/coding-standards/js/module.json +49 -0
  37. package/augment-extensions/coding-standards/js/rules/async-patterns.md +515 -0
  38. package/augment-extensions/coding-standards/js/rules/dom-manipulation.md +439 -0
  39. package/augment-extensions/coding-standards/js/rules/javascript-standards.md +486 -0
  40. package/augment-extensions/coding-standards/js/rules/performance.md +463 -0
  41. package/augment-extensions/coding-standards/js/rules/tooling.md +543 -0
  42. package/augment-extensions/coding-standards/php/README.md +248 -0
  43. package/augment-extensions/coding-standards/php/examples/api-endpoint-example.php +204 -0
  44. package/augment-extensions/coding-standards/php/examples/cli-command-example.php +206 -0
  45. package/augment-extensions/coding-standards/php/examples/legacy-refactoring-example.php +234 -0
  46. package/augment-extensions/coding-standards/php/examples/web-application-example.php +211 -0
  47. package/augment-extensions/coding-standards/php/examples/woocommerce-extension-example.php +215 -0
  48. package/augment-extensions/coding-standards/php/examples/wordpress-plugin-example.php +189 -0
  49. package/augment-extensions/coding-standards/php/module.json +166 -0
  50. package/augment-extensions/coding-standards/php/rules/api-development.md +480 -0
  51. package/augment-extensions/coding-standards/php/rules/category-configuration.md +332 -0
  52. package/augment-extensions/coding-standards/php/rules/cli-tools.md +472 -0
  53. package/augment-extensions/coding-standards/php/rules/cms-integration.md +561 -0
  54. package/augment-extensions/coding-standards/php/rules/code-quality.md +402 -0
  55. package/augment-extensions/coding-standards/php/rules/documentation.md +425 -0
  56. package/augment-extensions/coding-standards/php/rules/ecommerce.md +627 -0
  57. package/augment-extensions/coding-standards/php/rules/error-handling.md +336 -0
  58. package/augment-extensions/coding-standards/php/rules/legacy-migration.md +677 -0
  59. package/augment-extensions/coding-standards/php/rules/naming-conventions.md +279 -0
  60. package/augment-extensions/coding-standards/php/rules/performance.md +392 -0
  61. package/augment-extensions/coding-standards/php/rules/psr-standards.md +186 -0
  62. package/augment-extensions/coding-standards/php/rules/security.md +358 -0
  63. package/augment-extensions/coding-standards/php/rules/testing.md +403 -0
  64. package/augment-extensions/coding-standards/php/rules/type-declarations.md +331 -0
  65. package/augment-extensions/coding-standards/php/rules/web-applications.md +426 -0
  66. package/augment-extensions/coding-standards/powershell/README.md +154 -0
  67. package/augment-extensions/coding-standards/powershell/examples/admin-example.ps1 +272 -0
  68. package/augment-extensions/coding-standards/powershell/examples/automation-example.ps1 +173 -0
  69. package/augment-extensions/coding-standards/powershell/examples/cloud-example.ps1 +243 -0
  70. package/augment-extensions/coding-standards/powershell/examples/cross-platform-example.ps1 +297 -0
  71. package/augment-extensions/coding-standards/powershell/examples/dsc-example.ps1 +224 -0
  72. package/augment-extensions/coding-standards/powershell/examples/legacy-migration-example.ps1 +340 -0
  73. package/augment-extensions/coding-standards/powershell/examples/module-example.psm1 +255 -0
  74. package/augment-extensions/coding-standards/powershell/module.json +165 -0
  75. package/augment-extensions/coding-standards/powershell/rules/administrative-tools.md +439 -0
  76. package/augment-extensions/coding-standards/powershell/rules/automation-scripts.md +240 -0
  77. package/augment-extensions/coding-standards/powershell/rules/cloud-orchestration.md +384 -0
  78. package/augment-extensions/coding-standards/powershell/rules/configuration-schema.md +383 -0
  79. package/augment-extensions/coding-standards/powershell/rules/cross-platform-scripts.md +482 -0
  80. package/augment-extensions/coding-standards/powershell/rules/dsc-configurations.md +296 -0
  81. package/augment-extensions/coding-standards/powershell/rules/error-handling.md +314 -0
  82. package/augment-extensions/coding-standards/powershell/rules/legacy-migrations.md +466 -0
  83. package/augment-extensions/coding-standards/powershell/rules/modules-functions.md +244 -0
  84. package/augment-extensions/coding-standards/powershell/rules/naming-conventions.md +266 -0
  85. package/augment-extensions/coding-standards/powershell/rules/performance-optimization.md +209 -0
  86. package/augment-extensions/coding-standards/powershell/rules/security-practices.md +314 -0
  87. package/augment-extensions/coding-standards/powershell/rules/testing-guidelines.md +268 -0
  88. package/augment-extensions/coding-standards/powershell/rules/universal-standards.md +197 -0
  89. package/augment-extensions/coding-standards/python/README.md +12 -8
  90. package/augment-extensions/coding-standards/python/examples/best-practices.py +373 -0
  91. package/augment-extensions/coding-standards/python/module.json +8 -4
  92. package/augment-extensions/coding-standards/python/rules/async-patterns.md +884 -0
  93. package/augment-extensions/coding-standards/python/rules/documentation.md +831 -0
  94. package/augment-extensions/coding-standards/python/rules/error-handling.md +855 -68
  95. package/augment-extensions/coding-standards/python/rules/testing.md +409 -0
  96. package/augment-extensions/coding-standards/python/rules/tooling.md +446 -0
  97. package/augment-extensions/coding-standards/python/rules/type-hints.md +115 -50
  98. package/augment-extensions/collections/html-css-js/README.md +82 -0
  99. package/augment-extensions/collections/html-css-js/collection.json +41 -0
  100. package/augment-extensions/domain-rules/database/README.md +161 -0
  101. package/augment-extensions/domain-rules/database/examples/flat-database-example.md +793 -0
  102. package/augment-extensions/domain-rules/database/examples/hybrid-database-example.md +1132 -0
  103. package/augment-extensions/domain-rules/database/examples/nosql-document-example.md +868 -0
  104. package/augment-extensions/domain-rules/database/examples/nosql-graph-example.md +805 -0
  105. package/augment-extensions/domain-rules/database/examples/relational-schema-example.md +621 -0
  106. package/augment-extensions/domain-rules/database/examples/vector-database-example.md +965 -0
  107. package/augment-extensions/domain-rules/database/module.json +28 -0
  108. package/augment-extensions/domain-rules/database/rules/flat-databases.md +624 -0
  109. package/augment-extensions/domain-rules/database/rules/nosql-databases.md +588 -0
  110. package/augment-extensions/domain-rules/database/rules/nosql-document-stores.md +856 -0
  111. package/augment-extensions/domain-rules/database/rules/nosql-graph-databases.md +778 -0
  112. package/augment-extensions/domain-rules/database/rules/nosql-key-value-stores.md +963 -0
  113. package/augment-extensions/domain-rules/database/rules/performance-optimization.md +1076 -0
  114. package/augment-extensions/domain-rules/database/rules/relational-databases.md +697 -0
  115. package/augment-extensions/domain-rules/database/rules/relational-indexing.md +671 -0
  116. package/augment-extensions/domain-rules/database/rules/relational-query-optimization.md +607 -0
  117. package/augment-extensions/domain-rules/database/rules/relational-schema-design.md +907 -0
  118. package/augment-extensions/domain-rules/database/rules/relational-transactions.md +783 -0
  119. package/augment-extensions/domain-rules/database/rules/security-standards.md +980 -0
  120. package/augment-extensions/domain-rules/database/rules/universal-best-practices.md +485 -0
  121. package/augment-extensions/domain-rules/database/rules/vector-databases.md +521 -0
  122. package/augment-extensions/domain-rules/database/rules/vector-embeddings.md +858 -0
  123. package/augment-extensions/domain-rules/database/rules/vector-indexing.md +934 -0
  124. package/augment-extensions/domain-rules/mcp/README.md +150 -0
  125. package/augment-extensions/domain-rules/mcp/examples/compressed-example.md +522 -0
  126. package/augment-extensions/domain-rules/mcp/examples/graph-augmented-example.md +520 -0
  127. package/augment-extensions/domain-rules/mcp/examples/hybrid-example.md +570 -0
  128. package/augment-extensions/domain-rules/mcp/examples/state-based-example.md +427 -0
  129. package/augment-extensions/domain-rules/mcp/examples/token-based-example.md +435 -0
  130. package/augment-extensions/domain-rules/mcp/examples/vector-based-example.md +502 -0
  131. package/augment-extensions/domain-rules/mcp/module.json +49 -0
  132. package/augment-extensions/domain-rules/mcp/rules/compressed-mcp.md +595 -0
  133. package/augment-extensions/domain-rules/mcp/rules/configuration.md +345 -0
  134. package/augment-extensions/domain-rules/mcp/rules/graph-augmented-mcp.md +687 -0
  135. package/augment-extensions/domain-rules/mcp/rules/hybrid-mcp.md +636 -0
  136. package/augment-extensions/domain-rules/mcp/rules/state-based-mcp.md +484 -0
  137. package/augment-extensions/domain-rules/mcp/rules/testing-validation.md +360 -0
  138. package/augment-extensions/domain-rules/mcp/rules/token-based-mcp.md +393 -0
  139. package/augment-extensions/domain-rules/mcp/rules/universal-rules.md +194 -0
  140. package/augment-extensions/domain-rules/mcp/rules/vector-based-mcp.md +625 -0
  141. package/augment-extensions/domain-rules/wordpress/README.md +163 -0
  142. package/augment-extensions/domain-rules/wordpress/module.json +32 -0
  143. package/augment-extensions/domain-rules/wordpress/rules/coding-standards.md +617 -0
  144. package/augment-extensions/domain-rules/wordpress/rules/directory-structure.md +270 -0
  145. package/augment-extensions/domain-rules/wordpress/rules/file-patterns.md +423 -0
  146. package/augment-extensions/domain-rules/wordpress/rules/gutenberg-blocks.md +493 -0
  147. package/augment-extensions/domain-rules/wordpress/rules/performance.md +568 -0
  148. package/augment-extensions/domain-rules/wordpress/rules/plugin-development.md +510 -0
  149. package/augment-extensions/domain-rules/wordpress/rules/project-detection.md +251 -0
  150. package/augment-extensions/domain-rules/wordpress/rules/rest-api.md +501 -0
  151. package/augment-extensions/domain-rules/wordpress/rules/security.md +564 -0
  152. package/augment-extensions/domain-rules/wordpress/rules/theme-development.md +388 -0
  153. package/augment-extensions/domain-rules/wordpress/rules/woocommerce.md +441 -0
  154. package/augment-extensions/domain-rules/wordpress-plugin/README.md +139 -0
  155. package/augment-extensions/domain-rules/wordpress-plugin/examples/ajax-plugin.md +1599 -0
  156. package/augment-extensions/domain-rules/wordpress-plugin/examples/custom-post-type-plugin.md +1727 -0
  157. package/augment-extensions/domain-rules/wordpress-plugin/examples/gutenberg-block-plugin.md +428 -0
  158. package/augment-extensions/domain-rules/wordpress-plugin/examples/gutenberg-block.md +422 -0
  159. package/augment-extensions/domain-rules/wordpress-plugin/examples/mvc-plugin.md +1623 -0
  160. package/augment-extensions/domain-rules/wordpress-plugin/examples/object-oriented-plugin.md +1343 -0
  161. package/augment-extensions/domain-rules/wordpress-plugin/examples/rest-endpoint.md +734 -0
  162. package/augment-extensions/domain-rules/wordpress-plugin/examples/settings-page-plugin.md +1350 -0
  163. package/augment-extensions/domain-rules/wordpress-plugin/examples/simple-procedural-plugin.md +503 -0
  164. package/augment-extensions/domain-rules/wordpress-plugin/examples/singleton-plugin.md +971 -0
  165. package/augment-extensions/domain-rules/wordpress-plugin/module.json +53 -0
  166. package/augment-extensions/domain-rules/wordpress-plugin/rules/activation-hooks.md +770 -0
  167. package/augment-extensions/domain-rules/wordpress-plugin/rules/admin-interface.md +874 -0
  168. package/augment-extensions/domain-rules/wordpress-plugin/rules/ajax-handlers.md +629 -0
  169. package/augment-extensions/domain-rules/wordpress-plugin/rules/asset-management.md +559 -0
  170. package/augment-extensions/domain-rules/wordpress-plugin/rules/context-providers.md +709 -0
  171. package/augment-extensions/domain-rules/wordpress-plugin/rules/cron-jobs.md +736 -0
  172. package/augment-extensions/domain-rules/wordpress-plugin/rules/database-management.md +1057 -0
  173. package/augment-extensions/domain-rules/wordpress-plugin/rules/documentation-standards.md +463 -0
  174. package/augment-extensions/domain-rules/wordpress-plugin/rules/frontend-functionality.md +478 -0
  175. package/augment-extensions/domain-rules/wordpress-plugin/rules/gutenberg-blocks.md +818 -0
  176. package/augment-extensions/domain-rules/wordpress-plugin/rules/internationalization.md +416 -0
  177. package/augment-extensions/domain-rules/wordpress-plugin/rules/migration.md +667 -0
  178. package/augment-extensions/domain-rules/wordpress-plugin/rules/performance-optimization.md +878 -0
  179. package/augment-extensions/domain-rules/wordpress-plugin/rules/plugin-architecture.md +693 -0
  180. package/augment-extensions/domain-rules/wordpress-plugin/rules/plugin-structure.md +352 -0
  181. package/augment-extensions/domain-rules/wordpress-plugin/rules/rest-api.md +818 -0
  182. package/augment-extensions/domain-rules/wordpress-plugin/rules/scaffolding-workflow.md +624 -0
  183. package/augment-extensions/domain-rules/wordpress-plugin/rules/security-best-practices.md +866 -0
  184. package/augment-extensions/domain-rules/wordpress-plugin/rules/testing-patterns.md +1165 -0
  185. package/augment-extensions/domain-rules/wordpress-plugin/rules/testing.md +414 -0
  186. package/augment-extensions/domain-rules/wordpress-plugin/rules/vscode-integration.md +751 -0
  187. package/augment-extensions/domain-rules/wordpress-plugin/rules/woocommerce-integration.md +949 -0
  188. package/augment-extensions/domain-rules/wordpress-plugin/rules/wordpress-org-submission.md +458 -0
  189. package/augment-extensions/examples/gutenberg-block-plugin/README.md +101 -0
  190. package/augment-extensions/examples/gutenberg-block-plugin/examples/testimonial-block.md +428 -0
  191. package/augment-extensions/examples/gutenberg-block-plugin/module.json +40 -0
  192. package/augment-extensions/examples/rest-api-plugin/README.md +98 -0
  193. package/augment-extensions/examples/rest-api-plugin/examples/task-manager-api.md +1299 -0
  194. package/augment-extensions/examples/rest-api-plugin/module.json +40 -0
  195. package/augment-extensions/examples/woocommerce-extension/README.md +98 -0
  196. package/augment-extensions/examples/woocommerce-extension/examples/product-customizer.md +763 -0
  197. package/augment-extensions/examples/woocommerce-extension/module.json +40 -0
  198. package/augment-extensions/workflows/beads/module.json +4 -3
  199. package/augment-extensions/workflows/database/README.md +195 -0
  200. package/augment-extensions/workflows/database/ai-prompt-testing.md +295 -0
  201. package/augment-extensions/workflows/database/examples/migration-example.md +498 -0
  202. package/augment-extensions/workflows/database/examples/optimization-example.md +496 -0
  203. package/augment-extensions/workflows/database/examples/schema-design-example.md +444 -0
  204. package/augment-extensions/workflows/database/module.json +42 -0
  205. package/augment-extensions/workflows/database/rules/data-migration.md +249 -0
  206. package/augment-extensions/workflows/database/rules/documentation-standards.md +339 -0
  207. package/augment-extensions/workflows/database/rules/migration-workflow.md +352 -0
  208. package/augment-extensions/workflows/database/rules/optimization-workflow.md +435 -0
  209. package/augment-extensions/workflows/database/rules/schema-design-workflow.md +535 -0
  210. package/augment-extensions/workflows/database/rules/testing-patterns.md +305 -0
  211. package/augment-extensions/workflows/database/rules/workflow.md +458 -0
  212. package/augment-extensions/workflows/openspec/module.json +4 -3
  213. package/augment-extensions/workflows/wordpress-plugin/README.md +232 -0
  214. package/augment-extensions/workflows/wordpress-plugin/ai-prompts.md +839 -0
  215. package/augment-extensions/workflows/wordpress-plugin/bead-decomposition-patterns.md +854 -0
  216. package/augment-extensions/workflows/wordpress-plugin/examples/complete-plugin-example.md +540 -0
  217. package/augment-extensions/workflows/wordpress-plugin/examples/custom-post-type-example.md +1083 -0
  218. package/augment-extensions/workflows/wordpress-plugin/examples/feature-addition-workflow.md +669 -0
  219. package/augment-extensions/workflows/wordpress-plugin/examples/plugin-creation-workflow.md +597 -0
  220. package/augment-extensions/workflows/wordpress-plugin/examples/secure-form-handler-example.md +925 -0
  221. package/augment-extensions/workflows/wordpress-plugin/examples/security-audit-workflow.md +752 -0
  222. package/augment-extensions/workflows/wordpress-plugin/examples/wordpress-org-submission-workflow.md +773 -0
  223. package/augment-extensions/workflows/wordpress-plugin/module.json +49 -0
  224. package/augment-extensions/workflows/wordpress-plugin/rules/best-practices.md +942 -0
  225. package/augment-extensions/workflows/wordpress-plugin/rules/development-workflow.md +702 -0
  226. package/augment-extensions/workflows/wordpress-plugin/rules/submission-workflow.md +728 -0
  227. package/augment-extensions/workflows/wordpress-plugin/rules/testing-workflow.md +775 -0
  228. package/augment-extensions/writing-standards/screenplay/README.md +171 -0
  229. package/augment-extensions/writing-standards/screenplay/examples/aaa-hollywood-scene.fountain +164 -0
  230. package/augment-extensions/writing-standards/screenplay/module.json +124 -0
  231. package/augment-extensions/writing-standards/screenplay/rules/universal-formatting.md +339 -0
  232. package/cli/MODULES.md +302 -0
  233. package/cli/dist/cli.js +142 -9
  234. package/cli/dist/cli.js.map +1 -1
  235. package/cli/dist/commands/catalog.d.ts +13 -0
  236. package/cli/dist/commands/catalog.d.ts.map +1 -0
  237. package/cli/dist/commands/catalog.js +104 -0
  238. package/cli/dist/commands/catalog.js.map +1 -0
  239. package/cli/dist/commands/gui.d.ts +6 -0
  240. package/cli/dist/commands/gui.d.ts.map +1 -0
  241. package/cli/dist/commands/gui.js +211 -0
  242. package/cli/dist/commands/gui.js.map +1 -0
  243. package/cli/dist/commands/init.d.ts.map +1 -1
  244. package/cli/dist/commands/init.js +12 -0
  245. package/cli/dist/commands/init.js.map +1 -1
  246. package/cli/dist/commands/install-rules.d.ts +14 -0
  247. package/cli/dist/commands/install-rules.d.ts.map +1 -0
  248. package/cli/dist/commands/install-rules.js +127 -0
  249. package/cli/dist/commands/install-rules.js.map +1 -0
  250. package/cli/dist/commands/link.d.ts.map +1 -1
  251. package/cli/dist/commands/link.js +9 -11
  252. package/cli/dist/commands/link.js.map +1 -1
  253. package/cli/dist/commands/list.d.ts.map +1 -1
  254. package/cli/dist/commands/list.js +11 -28
  255. package/cli/dist/commands/list.js.map +1 -1
  256. package/cli/dist/commands/mcp.d.ts +48 -0
  257. package/cli/dist/commands/mcp.d.ts.map +1 -0
  258. package/cli/dist/commands/mcp.js +229 -0
  259. package/cli/dist/commands/mcp.js.map +1 -0
  260. package/cli/dist/commands/self-remove.d.ts +7 -0
  261. package/cli/dist/commands/self-remove.d.ts.map +1 -0
  262. package/cli/dist/commands/self-remove.js +179 -0
  263. package/cli/dist/commands/self-remove.js.map +1 -0
  264. package/cli/dist/commands/show.d.ts.map +1 -1
  265. package/cli/dist/commands/show.js +42 -71
  266. package/cli/dist/commands/show.js.map +1 -1
  267. package/cli/dist/commands/skill.d.ts +67 -0
  268. package/cli/dist/commands/skill.d.ts.map +1 -0
  269. package/cli/dist/commands/skill.js +513 -0
  270. package/cli/dist/commands/skill.js.map +1 -0
  271. package/cli/dist/commands/unlink.d.ts +6 -0
  272. package/cli/dist/commands/unlink.d.ts.map +1 -0
  273. package/cli/dist/commands/unlink.js +115 -0
  274. package/cli/dist/commands/unlink.js.map +1 -0
  275. package/cli/dist/commands/validate.d.ts +6 -0
  276. package/cli/dist/commands/validate.d.ts.map +1 -0
  277. package/cli/dist/commands/validate.js +159 -0
  278. package/cli/dist/commands/validate.js.map +1 -0
  279. package/cli/dist/utils/catalog-sync.d.ts +22 -0
  280. package/cli/dist/utils/catalog-sync.d.ts.map +1 -0
  281. package/cli/dist/utils/catalog-sync.js +157 -0
  282. package/cli/dist/utils/catalog-sync.js.map +1 -0
  283. package/cli/dist/utils/character-count.d.ts +56 -0
  284. package/cli/dist/utils/character-count.d.ts.map +1 -0
  285. package/cli/dist/utils/character-count.js +190 -0
  286. package/cli/dist/utils/character-count.js.map +1 -0
  287. package/cli/dist/utils/documentation-validator.d.ts +18 -0
  288. package/cli/dist/utils/documentation-validator.d.ts.map +1 -0
  289. package/cli/dist/utils/documentation-validator.js +233 -0
  290. package/cli/dist/utils/documentation-validator.js.map +1 -0
  291. package/cli/dist/utils/install-rules.d.ts +32 -0
  292. package/cli/dist/utils/install-rules.d.ts.map +1 -0
  293. package/cli/dist/utils/install-rules.js +375 -0
  294. package/cli/dist/utils/install-rules.js.map +1 -0
  295. package/cli/dist/utils/mcp-integration.d.ts +70 -0
  296. package/cli/dist/utils/mcp-integration.d.ts.map +1 -0
  297. package/cli/dist/utils/mcp-integration.js +292 -0
  298. package/cli/dist/utils/mcp-integration.js.map +1 -0
  299. package/cli/dist/utils/module-system.d.ts +153 -0
  300. package/cli/dist/utils/module-system.d.ts.map +1 -0
  301. package/cli/dist/utils/module-system.js +528 -0
  302. package/cli/dist/utils/module-system.js.map +1 -0
  303. package/cli/dist/utils/modules-catalog.d.ts +33 -0
  304. package/cli/dist/utils/modules-catalog.d.ts.map +1 -0
  305. package/cli/dist/utils/modules-catalog.js +163 -0
  306. package/cli/dist/utils/modules-catalog.js.map +1 -0
  307. package/cli/dist/utils/rule-install-hooks.d.ts +19 -0
  308. package/cli/dist/utils/rule-install-hooks.d.ts.map +1 -0
  309. package/cli/dist/utils/rule-install-hooks.js +224 -0
  310. package/cli/dist/utils/rule-install-hooks.js.map +1 -0
  311. package/cli/dist/utils/skill-system.d.ts +95 -0
  312. package/cli/dist/utils/skill-system.d.ts.map +1 -0
  313. package/cli/dist/utils/skill-system.js +313 -0
  314. package/cli/dist/utils/skill-system.js.map +1 -0
  315. package/modules.md +534 -70
  316. package/package.json +12 -3
@@ -0,0 +1,561 @@
1
+ # PHP CMS Integration Best Practices
2
+
3
+ ## Overview
4
+
5
+ This guide provides best practices for developing WordPress and Drupal plugins/modules, including hooks, filters, security, database interactions, and CMS-specific patterns.
6
+
7
+ ## WordPress Development
8
+
9
+ ### Plugin Structure
10
+
11
+ ```php
12
+ <?php
13
+ /**
14
+ * Plugin Name: My Custom Plugin
15
+ * Plugin URI: https://example.com/my-plugin
16
+ * Description: A custom WordPress plugin
17
+ * Version: 1.0.0
18
+ * Author: Your Name
19
+ * Author URI: https://example.com
20
+ * License: GPL v2 or later
21
+ * Text Domain: my-custom-plugin
22
+ * Domain Path: /languages
23
+ */
24
+
25
+ // Prevent direct access
26
+ if (!defined('ABSPATH')) {
27
+ exit;
28
+ }
29
+
30
+ // Define plugin constants
31
+ define('MY_PLUGIN_VERSION', '1.0.0');
32
+ define('MY_PLUGIN_PATH', plugin_dir_path(__FILE__));
33
+ define('MY_PLUGIN_URL', plugin_dir_url(__FILE__));
34
+
35
+ // Autoloader
36
+ require_once MY_PLUGIN_PATH . 'includes/class-my-plugin.php';
37
+
38
+ // Initialize plugin
39
+ function my_plugin_init() {
40
+ $plugin = new My_Plugin();
41
+ $plugin->run();
42
+ }
43
+ add_action('plugins_loaded', 'my_plugin_init');
44
+
45
+ // Activation hook
46
+ register_activation_hook(__FILE__, 'my_plugin_activate');
47
+ function my_plugin_activate() {
48
+ // Create database tables, set default options, etc.
49
+ flush_rewrite_rules();
50
+ }
51
+
52
+ // Deactivation hook
53
+ register_deactivation_hook(__FILE__, 'my_plugin_deactivate');
54
+ function my_plugin_deactivate() {
55
+ flush_rewrite_rules();
56
+ }
57
+ ```
58
+
59
+ ### Hooks and Filters
60
+
61
+ #### Actions
62
+
63
+ ```php
64
+ <?php
65
+
66
+ // Add custom action
67
+ add_action('init', 'my_custom_init_function');
68
+ function my_custom_init_function() {
69
+ // Register custom post types, taxonomies, etc.
70
+ }
71
+
72
+ // Admin menu
73
+ add_action('admin_menu', 'my_plugin_add_admin_menu');
74
+ function my_plugin_add_admin_menu() {
75
+ add_menu_page(
76
+ 'My Plugin', // Page title
77
+ 'My Plugin', // Menu title
78
+ 'manage_options', // Capability
79
+ 'my-plugin', // Menu slug
80
+ 'my_plugin_admin_page', // Callback
81
+ 'dashicons-admin-generic', // Icon
82
+ 20 // Position
83
+ );
84
+ }
85
+
86
+ // Enqueue scripts and styles
87
+ add_action('wp_enqueue_scripts', 'my_plugin_enqueue_assets');
88
+ function my_plugin_enqueue_assets() {
89
+ wp_enqueue_style(
90
+ 'my-plugin-style',
91
+ MY_PLUGIN_URL . 'assets/css/style.css',
92
+ [],
93
+ MY_PLUGIN_VERSION
94
+ );
95
+
96
+ wp_enqueue_script(
97
+ 'my-plugin-script',
98
+ MY_PLUGIN_URL . 'assets/js/script.js',
99
+ ['jquery'],
100
+ MY_PLUGIN_VERSION,
101
+ true
102
+ );
103
+
104
+ // Localize script
105
+ wp_localize_script('my-plugin-script', 'myPluginData', [
106
+ 'ajaxUrl' => admin_url('admin-ajax.php'),
107
+ 'nonce' => wp_create_nonce('my-plugin-nonce')
108
+ ]);
109
+ }
110
+
111
+ // Save post hook
112
+ add_action('save_post', 'my_plugin_save_post_meta', 10, 2);
113
+ function my_plugin_save_post_meta($post_id, $post) {
114
+ // Verify nonce
115
+ if (!isset($_POST['my_plugin_nonce']) ||
116
+ !wp_verify_nonce($_POST['my_plugin_nonce'], 'my_plugin_save')) {
117
+ return;
118
+ }
119
+
120
+ // Check autosave
121
+ if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
122
+ return;
123
+ }
124
+
125
+ // Check permissions
126
+ if (!current_user_can('edit_post', $post_id)) {
127
+ return;
128
+ }
129
+
130
+ // Save meta
131
+ if (isset($_POST['my_custom_field'])) {
132
+ update_post_meta(
133
+ $post_id,
134
+ '_my_custom_field',
135
+ sanitize_text_field($_POST['my_custom_field'])
136
+ );
137
+ }
138
+ }
139
+ ```
140
+
141
+ #### Filters
142
+
143
+ ```php
144
+ <?php
145
+
146
+ // Modify content
147
+ add_filter('the_content', 'my_plugin_modify_content');
148
+ function my_plugin_modify_content($content) {
149
+ if (is_single()) {
150
+ $custom_content = '<div class="custom-notice">Custom notice</div>';
151
+ $content = $custom_content . $content;
152
+ }
153
+ return $content;
154
+ }
155
+
156
+ // Modify query
157
+ add_filter('pre_get_posts', 'my_plugin_modify_query');
158
+ function my_plugin_modify_query($query) {
159
+ if (!is_admin() && $query->is_main_query() && $query->is_home()) {
160
+ $query->set('posts_per_page', 20);
161
+ }
162
+ return $query;
163
+ }
164
+
165
+ // Add custom body class
166
+ add_filter('body_class', 'my_plugin_body_class');
167
+ function my_plugin_body_class($classes) {
168
+ if (is_page('special-page')) {
169
+ $classes[] = 'special-page-class';
170
+ }
171
+ return $classes;
172
+ }
173
+ ```
174
+
175
+ ### Custom Post Types
176
+
177
+ ```php
178
+ <?php
179
+
180
+ add_action('init', 'my_plugin_register_post_type');
181
+ function my_plugin_register_post_type() {
182
+ register_post_type('book', [
183
+ 'labels' => [
184
+ 'name' => __('Books', 'my-plugin'),
185
+ 'singular_name' => __('Book', 'my-plugin'),
186
+ 'add_new' => __('Add New Book', 'my-plugin'),
187
+ 'add_new_item' => __('Add New Book', 'my-plugin'),
188
+ 'edit_item' => __('Edit Book', 'my-plugin'),
189
+ ],
190
+ 'public' => true,
191
+ 'has_archive' => true,
192
+ 'rewrite' => ['slug' => 'books'],
193
+ 'supports' => ['title', 'editor', 'thumbnail', 'excerpt'],
194
+ 'menu_icon' => 'dashicons-book',
195
+ 'show_in_rest' => true, // Enable Gutenberg
196
+ ]);
197
+ }
198
+ ```
199
+
200
+ ### WP_Query
201
+
202
+ ```php
203
+ <?php
204
+
205
+ // Basic query
206
+ $args = [
207
+ 'post_type' => 'post',
208
+ 'posts_per_page' => 10,
209
+ 'orderby' => 'date',
210
+ 'order' => 'DESC',
211
+ ];
212
+
213
+ $query = new WP_Query($args);
214
+
215
+ if ($query->have_posts()) {
216
+ while ($query->have_posts()) {
217
+ $query->the_post();
218
+ the_title('<h2>', '</h2>');
219
+ the_excerpt();
220
+ }
221
+ wp_reset_postdata();
222
+ } else {
223
+ echo '<p>No posts found.</p>';
224
+ }
225
+
226
+ // Advanced query with meta
227
+ $args = [
228
+ 'post_type' => 'book',
229
+ 'meta_query' => [
230
+ 'relation' => 'AND',
231
+ [
232
+ 'key' => '_price',
233
+ 'value' => 20,
234
+ 'compare' => '>=',
235
+ 'type' => 'NUMERIC'
236
+ ],
237
+ [
238
+ 'key' => '_in_stock',
239
+ 'value' => '1',
240
+ 'compare' => '='
241
+ ]
242
+ ],
243
+ 'tax_query' => [
244
+ [
245
+ 'taxonomy' => 'genre',
246
+ 'field' => 'slug',
247
+ 'terms' => 'fiction'
248
+ ]
249
+ ]
250
+ ];
251
+
252
+ $query = new WP_Query($args);
253
+ ```
254
+
255
+ ### Shortcodes
256
+
257
+ ```php
258
+ <?php
259
+
260
+ // Register shortcode
261
+ add_shortcode('my_shortcode', 'my_shortcode_handler');
262
+ function my_shortcode_handler($atts, $content = null) {
263
+ // Parse attributes
264
+ $atts = shortcode_atts([
265
+ 'title' => 'Default Title',
266
+ 'count' => 5,
267
+ 'type' => 'post'
268
+ ], $atts, 'my_shortcode');
269
+
270
+ // Sanitize
271
+ $title = sanitize_text_field($atts['title']);
272
+ $count = absint($atts['count']);
273
+ $type = sanitize_key($atts['type']);
274
+
275
+ // Build output
276
+ ob_start();
277
+ ?>
278
+ <div class="my-shortcode">
279
+ <h3><?php echo esc_html($title); ?></h3>
280
+ <?php
281
+ $query = new WP_Query([
282
+ 'post_type' => $type,
283
+ 'posts_per_page' => $count
284
+ ]);
285
+
286
+ if ($query->have_posts()) {
287
+ echo '<ul>';
288
+ while ($query->have_posts()) {
289
+ $query->the_post();
290
+ echo '<li>' . get_the_title() . '</li>';
291
+ }
292
+ echo '</ul>';
293
+ wp_reset_postdata();
294
+ }
295
+ ?>
296
+ </div>
297
+ <?php
298
+ return ob_get_clean();
299
+ }
300
+
301
+ // Usage: [my_shortcode title="Recent Posts" count="10" type="post"]
302
+ ```
303
+
304
+ ### AJAX Handling
305
+
306
+ ```php
307
+ <?php
308
+
309
+ // Register AJAX handlers
310
+ add_action('wp_ajax_my_ajax_action', 'my_ajax_handler');
311
+ add_action('wp_ajax_nopriv_my_ajax_action', 'my_ajax_handler');
312
+
313
+ function my_ajax_handler() {
314
+ // Verify nonce
315
+ check_ajax_referer('my-plugin-nonce', 'nonce');
316
+
317
+ // Get data
318
+ $data = isset($_POST['data']) ? sanitize_text_field($_POST['data']) : '';
319
+
320
+ // Process
321
+ $result = process_data($data);
322
+
323
+ // Return JSON
324
+ if ($result) {
325
+ wp_send_json_success([
326
+ 'message' => 'Success',
327
+ 'data' => $result
328
+ ]);
329
+ } else {
330
+ wp_send_json_error([
331
+ 'message' => 'Error processing data'
332
+ ]);
333
+ }
334
+ }
335
+ ```
336
+
337
+ ### Security Best Practices
338
+
339
+ #### Nonce Verification
340
+
341
+ ```php
342
+ <?php
343
+
344
+ // Create nonce
345
+ $nonce = wp_create_nonce('my-action');
346
+
347
+ // Verify nonce in form submission
348
+ if (!isset($_POST['my_nonce']) || !wp_verify_nonce($_POST['my_nonce'], 'my-action')) {
349
+ wp_die('Security check failed');
350
+ }
351
+
352
+ // Verify nonce in AJAX
353
+ check_ajax_referer('my-ajax-action', 'nonce');
354
+
355
+ // Verify nonce in URL
356
+ if (!isset($_GET['_wpnonce']) || !wp_verify_nonce($_GET['_wpnonce'], 'my-action')) {
357
+ wp_die('Security check failed');
358
+ }
359
+ ```
360
+
361
+ #### Data Sanitization
362
+
363
+ ```php
364
+ <?php
365
+
366
+ // Sanitize text
367
+ $text = sanitize_text_field($_POST['text']);
368
+
369
+ // Sanitize email
370
+ $email = sanitize_email($_POST['email']);
371
+
372
+ // Sanitize URL
373
+ $url = esc_url_raw($_POST['url']);
374
+
375
+ // Sanitize HTML
376
+ $html = wp_kses_post($_POST['content']);
377
+
378
+ // Sanitize key
379
+ $key = sanitize_key($_POST['key']);
380
+
381
+ // Sanitize file name
382
+ $filename = sanitize_file_name($_FILES['file']['name']);
383
+
384
+ // Sanitize SQL for LIKE
385
+ $search = $wpdb->esc_like($_POST['search']);
386
+ ```
387
+
388
+ #### Output Escaping
389
+
390
+ ```php
391
+ <?php
392
+
393
+ // Escape HTML
394
+ echo esc_html($text);
395
+
396
+ // Escape attributes
397
+ echo '<input type="text" value="' . esc_attr($value) . '">';
398
+
399
+ // Escape URL
400
+ echo '<a href="' . esc_url($url) . '">Link</a>';
401
+
402
+ // Escape JavaScript
403
+ echo '<script>var data = "' . esc_js($data) . '";</script>';
404
+
405
+ // Escape textarea
406
+ echo '<textarea>' . esc_textarea($content) . '</textarea>';
407
+ ```
408
+
409
+ #### Capability Checks
410
+
411
+ ```php
412
+ <?php
413
+
414
+ // Check if user can edit posts
415
+ if (!current_user_can('edit_posts')) {
416
+ wp_die('You do not have permission');
417
+ }
418
+
419
+ // Check if user can manage options
420
+ if (!current_user_can('manage_options')) {
421
+ return;
422
+ }
423
+
424
+ // Check if user can edit specific post
425
+ if (!current_user_can('edit_post', $post_id)) {
426
+ wp_die('You cannot edit this post');
427
+ }
428
+ ```
429
+
430
+ ## Drupal Development
431
+
432
+ ### Module Structure
433
+
434
+ ```php
435
+ <?php
436
+
437
+ // my_module.info.yml
438
+ name: My Module
439
+ type: module
440
+ description: 'A custom Drupal module'
441
+ core_version_requirement: ^9 || ^10
442
+ package: Custom
443
+ dependencies:
444
+ - drupal:node
445
+ - drupal:user
446
+ ```
447
+
448
+ ### Hooks
449
+
450
+ ```php
451
+ <?php
452
+
453
+ /**
454
+ * Implements hook_help().
455
+ */
456
+ function my_module_help($route_name, RouteMatchInterface $route_match) {
457
+ switch ($route_name) {
458
+ case 'help.page.my_module':
459
+ return '<p>' . t('Help text for my module.') . '</p>';
460
+ }
461
+ }
462
+
463
+ /**
464
+ * Implements hook_node_presave().
465
+ */
466
+ function my_module_node_presave(NodeInterface $node) {
467
+ if ($node->getType() == 'article') {
468
+ // Modify node before saving
469
+ $node->setTitle('Modified: ' . $node->getTitle());
470
+ }
471
+ }
472
+
473
+ /**
474
+ * Implements hook_form_alter().
475
+ */
476
+ function my_module_form_alter(&$form, FormStateInterface $form_state, $form_id) {
477
+ if ($form_id == 'node_article_form') {
478
+ $form['title']['#description'] = t('Custom description');
479
+ }
480
+ }
481
+ ```
482
+
483
+ ### Services
484
+
485
+ ```php
486
+ <?php
487
+
488
+ namespace Drupal\my_module\Service;
489
+
490
+ use Drupal\Core\Database\Connection;
491
+ use Drupal\Core\Logger\LoggerChannelFactoryInterface;
492
+
493
+ class MyService {
494
+
495
+ protected $database;
496
+ protected $logger;
497
+
498
+ public function __construct(
499
+ Connection $database,
500
+ LoggerChannelFactoryInterface $logger_factory
501
+ ) {
502
+ $this->database = $database;
503
+ $this->logger = $logger_factory->get('my_module');
504
+ }
505
+
506
+ public function processData($data) {
507
+ try {
508
+ // Process data
509
+ $this->logger->info('Data processed successfully');
510
+ return true;
511
+ } catch (\Exception $e) {
512
+ $this->logger->error('Error: @message', ['@message' => $e->getMessage()]);
513
+ return false;
514
+ }
515
+ }
516
+ }
517
+ ```
518
+
519
+ ## Best Practices
520
+
521
+ ### ✅ DO
522
+
523
+ - Use WordPress/Drupal coding standards
524
+ - Verify nonces for all form submissions
525
+ - Sanitize all input data
526
+ - Escape all output data
527
+ - Check user capabilities before operations
528
+ - Use translation functions for all strings
529
+ - Prefix all function/class names
530
+ - Use hooks and filters instead of modifying core
531
+ - Follow semantic versioning
532
+ - Document code with PHPDoc
533
+ - Use prepared statements for database queries
534
+ - Implement proper error handling
535
+
536
+ ### ❌ DON'T
537
+
538
+ - Modify core files
539
+ - Use global variables unnecessarily
540
+ - Trust user input
541
+ - Output unescaped data
542
+ - Hardcode database table names
543
+ - Use deprecated functions
544
+ - Ignore coding standards
545
+ - Skip nonce verification
546
+ - Use direct database queries without sanitization
547
+ - Suppress errors in production
548
+
549
+ ## Security Checklist
550
+
551
+ - [ ] Nonce verification on all forms
552
+ - [ ] Input sanitization
553
+ - [ ] Output escaping
554
+ - [ ] Capability checks
555
+ - [ ] SQL injection prevention (prepared statements)
556
+ - [ ] XSS prevention
557
+ - [ ] CSRF protection
558
+ - [ ] File upload validation
559
+ - [ ] Secure AJAX handlers
560
+ - [ ] Proper error handling (no sensitive data exposure)
561
+