@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,627 @@
1
+ # PHP E-commerce Development Best Practices
2
+
3
+ ## Overview
4
+
5
+ This guide provides best practices for developing e-commerce systems in PHP, including shopping cart management, payment gateway integration, order processing, WooCommerce development, and PCI DSS compliance.
6
+
7
+ ## Shopping Cart Management
8
+
9
+ ### Cart Session Handling
10
+
11
+ ```php
12
+ <?php
13
+
14
+ namespace App\Services;
15
+
16
+ class CartService
17
+ {
18
+ private $session;
19
+
20
+ public function __construct(SessionInterface $session)
21
+ {
22
+ $this->session = $session;
23
+ }
24
+
25
+ public function addItem(int $productId, int $quantity = 1, array $options = []): void
26
+ {
27
+ $cart = $this->getCart();
28
+
29
+ $itemKey = $this->generateItemKey($productId, $options);
30
+
31
+ if (isset($cart[$itemKey])) {
32
+ $cart[$itemKey]['quantity'] += $quantity;
33
+ } else {
34
+ $cart[$itemKey] = [
35
+ 'product_id' => $productId,
36
+ 'quantity' => $quantity,
37
+ 'options' => $options,
38
+ 'added_at' => time()
39
+ ];
40
+ }
41
+
42
+ $this->saveCart($cart);
43
+ }
44
+
45
+ public function removeItem(string $itemKey): void
46
+ {
47
+ $cart = $this->getCart();
48
+ unset($cart[$itemKey]);
49
+ $this->saveCart($cart);
50
+ }
51
+
52
+ public function updateQuantity(string $itemKey, int $quantity): void
53
+ {
54
+ $cart = $this->getCart();
55
+
56
+ if ($quantity <= 0) {
57
+ $this->removeItem($itemKey);
58
+ return;
59
+ }
60
+
61
+ if (isset($cart[$itemKey])) {
62
+ $cart[$itemKey]['quantity'] = $quantity;
63
+ $this->saveCart($cart);
64
+ }
65
+ }
66
+
67
+ public function getCart(): array
68
+ {
69
+ return $this->session->get('cart', []);
70
+ }
71
+
72
+ public function clear(): void
73
+ {
74
+ $this->session->remove('cart');
75
+ }
76
+
77
+ public function getTotal(): float
78
+ {
79
+ $cart = $this->getCart();
80
+ $total = 0.0;
81
+
82
+ foreach ($cart as $item) {
83
+ $product = Product::find($item['product_id']);
84
+ $total += $product->price * $item['quantity'];
85
+ }
86
+
87
+ return $total;
88
+ }
89
+
90
+ private function generateItemKey(int $productId, array $options): string
91
+ {
92
+ ksort($options);
93
+ return md5($productId . json_encode($options));
94
+ }
95
+
96
+ private function saveCart(array $cart): void
97
+ {
98
+ $this->session->put('cart', $cart);
99
+ }
100
+ }
101
+ ```
102
+
103
+ ### Stock Validation
104
+
105
+ ```php
106
+ <?php
107
+
108
+ class StockValidator
109
+ {
110
+ public function validateCartStock(array $cart): array
111
+ {
112
+ $errors = [];
113
+
114
+ foreach ($cart as $itemKey => $item) {
115
+ $product = Product::find($item['product_id']);
116
+
117
+ if (!$product) {
118
+ $errors[$itemKey] = 'Product not found';
119
+ continue;
120
+ }
121
+
122
+ if (!$product->is_available) {
123
+ $errors[$itemKey] = 'Product is no longer available';
124
+ continue;
125
+ }
126
+
127
+ if ($product->stock < $item['quantity']) {
128
+ $errors[$itemKey] = "Only {$product->stock} items available";
129
+ }
130
+ }
131
+
132
+ return $errors;
133
+ }
134
+
135
+ public function reserveStock(Order $order): void
136
+ {
137
+ DB::transaction(function () use ($order) {
138
+ foreach ($order->items as $item) {
139
+ $product = Product::lockForUpdate()->find($item->product_id);
140
+
141
+ if ($product->stock < $item->quantity) {
142
+ throw new InsufficientStockException(
143
+ "Insufficient stock for product: {$product->name}"
144
+ );
145
+ }
146
+
147
+ $product->decrement('stock', $item->quantity);
148
+ }
149
+ });
150
+ }
151
+ }
152
+ ```
153
+
154
+ ## Payment Gateway Integration
155
+
156
+ ### Payment Interface
157
+
158
+ ```php
159
+ <?php
160
+
161
+ namespace App\Payments;
162
+
163
+ interface PaymentGatewayInterface
164
+ {
165
+ public function charge(float $amount, string $currency, array $paymentMethod): PaymentResult;
166
+ public function refund(string $transactionId, float $amount): RefundResult;
167
+ public function getTransaction(string $transactionId): Transaction;
168
+ }
169
+
170
+ class PaymentResult
171
+ {
172
+ public function __construct(
173
+ public bool $success,
174
+ public ?string $transactionId,
175
+ public ?string $errorMessage = null
176
+ ) {}
177
+ }
178
+ ```
179
+
180
+ ### Stripe Integration
181
+
182
+ ```php
183
+ <?php
184
+
185
+ namespace App\Payments;
186
+
187
+ use Stripe\StripeClient;
188
+ use Stripe\Exception\ApiErrorException;
189
+
190
+ class StripeGateway implements PaymentGatewayInterface
191
+ {
192
+ private StripeClient $stripe;
193
+
194
+ public function __construct(string $apiKey)
195
+ {
196
+ $this->stripe = new StripeClient($apiKey);
197
+ }
198
+
199
+ public function charge(float $amount, string $currency, array $paymentMethod): PaymentResult
200
+ {
201
+ try {
202
+ $intent = $this->stripe->paymentIntents->create([
203
+ 'amount' => (int)($amount * 100), // Convert to cents
204
+ 'currency' => $currency,
205
+ 'payment_method' => $paymentMethod['id'],
206
+ 'confirm' => true,
207
+ 'metadata' => [
208
+ 'order_id' => $paymentMethod['order_id'] ?? null
209
+ ]
210
+ ]);
211
+
212
+ return new PaymentResult(
213
+ success: $intent->status === 'succeeded',
214
+ transactionId: $intent->id
215
+ );
216
+
217
+ } catch (ApiErrorException $e) {
218
+ return new PaymentResult(
219
+ success: false,
220
+ transactionId: null,
221
+ errorMessage: $e->getMessage()
222
+ );
223
+ }
224
+ }
225
+
226
+ public function refund(string $transactionId, float $amount): RefundResult
227
+ {
228
+ try {
229
+ $refund = $this->stripe->refunds->create([
230
+ 'payment_intent' => $transactionId,
231
+ 'amount' => (int)($amount * 100)
232
+ ]);
233
+
234
+ return new RefundResult(
235
+ success: $refund->status === 'succeeded',
236
+ refundId: $refund->id
237
+ );
238
+
239
+ } catch (ApiErrorException $e) {
240
+ return new RefundResult(
241
+ success: false,
242
+ refundId: null,
243
+ errorMessage: $e->getMessage()
244
+ );
245
+ }
246
+ }
247
+ }
248
+ ```
249
+
250
+ ### Secure Payment Token Handling
251
+
252
+ ```php
253
+ <?php
254
+
255
+ class PaymentTokenService
256
+ {
257
+ public function tokenizeCard(array $cardData): string
258
+ {
259
+ // NEVER store raw card data
260
+ // Use payment gateway's tokenization
261
+
262
+ $token = $this->paymentGateway->createToken([
263
+ 'card' => [
264
+ 'number' => $cardData['number'],
265
+ 'exp_month' => $cardData['exp_month'],
266
+ 'exp_year' => $cardData['exp_year'],
267
+ 'cvc' => $cardData['cvc']
268
+ ]
269
+ ]);
270
+
271
+ // Store only the token, never the card details
272
+ return $token->id;
273
+ }
274
+
275
+ public function chargeToken(string $token, float $amount): PaymentResult
276
+ {
277
+ return $this->paymentGateway->charge($amount, 'usd', [
278
+ 'id' => $token
279
+ ]);
280
+ }
281
+ }
282
+ ```
283
+
284
+ ## Order Processing
285
+
286
+ ### Order Creation with Transactions
287
+
288
+ ```php
289
+ <?php
290
+
291
+ namespace App\Services;
292
+
293
+ use Illuminate\Support\Facades\DB;
294
+
295
+ class OrderService
296
+ {
297
+ public function createOrder(array $cartItems, array $customerData, array $paymentData): Order
298
+ {
299
+ return DB::transaction(function () use ($cartItems, $customerData, $paymentData) {
300
+ // 1. Create order
301
+ $order = Order::create([
302
+ 'customer_id' => $customerData['customer_id'],
303
+ 'status' => 'pending',
304
+ 'subtotal' => $this->calculateSubtotal($cartItems),
305
+ 'tax' => $this->calculateTax($cartItems),
306
+ 'shipping' => $this->calculateShipping($cartItems),
307
+ 'total' => $this->calculateTotal($cartItems)
308
+ ]);
309
+
310
+ // 2. Create order items
311
+ foreach ($cartItems as $item) {
312
+ $product = Product::lockForUpdate()->find($item['product_id']);
313
+
314
+ // Validate stock
315
+ if ($product->stock < $item['quantity']) {
316
+ throw new InsufficientStockException();
317
+ }
318
+
319
+ // Create order item
320
+ $order->items()->create([
321
+ 'product_id' => $product->id,
322
+ 'quantity' => $item['quantity'],
323
+ 'price' => $product->price,
324
+ 'total' => $product->price * $item['quantity']
325
+ ]);
326
+
327
+ // Decrement stock
328
+ $product->decrement('stock', $item['quantity']);
329
+ }
330
+
331
+ // 3. Process payment
332
+ $paymentResult = $this->paymentGateway->charge(
333
+ $order->total,
334
+ 'usd',
335
+ $paymentData
336
+ );
337
+
338
+ if (!$paymentResult->success) {
339
+ throw new PaymentFailedException($paymentResult->errorMessage);
340
+ }
341
+
342
+ // 4. Update order with payment info
343
+ $order->update([
344
+ 'status' => 'paid',
345
+ 'transaction_id' => $paymentResult->transactionId,
346
+ 'paid_at' => now()
347
+ ]);
348
+
349
+ // 5. Send confirmation email
350
+ $this->sendOrderConfirmation($order);
351
+
352
+ return $order;
353
+ });
354
+ }
355
+ }
356
+ ```
357
+
358
+ ## WooCommerce Development
359
+
360
+ ### Custom Product Type
361
+
362
+ ```php
363
+ <?php
364
+
365
+ class WC_Product_Custom extends WC_Product
366
+ {
367
+ public function __construct($product = 0)
368
+ {
369
+ $this->product_type = 'custom';
370
+ parent::__construct($product);
371
+ }
372
+
373
+ public function get_type()
374
+ {
375
+ return 'custom';
376
+ }
377
+
378
+ public function is_purchasable()
379
+ {
380
+ return true;
381
+ }
382
+ }
383
+
384
+ // Register product type
385
+ add_filter('product_type_selector', 'add_custom_product_type');
386
+ function add_custom_product_type($types)
387
+ {
388
+ $types['custom'] = __('Custom Product', 'woocommerce');
389
+ return $types;
390
+ }
391
+
392
+ add_filter('woocommerce_product_class', 'custom_product_class', 10, 2);
393
+ function custom_product_class($classname, $product_type)
394
+ {
395
+ if ($product_type === 'custom') {
396
+ $classname = 'WC_Product_Custom';
397
+ }
398
+ return $classname;
399
+ }
400
+ ```
401
+
402
+ ### WooCommerce Hooks
403
+
404
+ ```php
405
+ <?php
406
+
407
+ // Modify cart item price
408
+ add_action('woocommerce_before_calculate_totals', 'custom_cart_item_price');
409
+ function custom_cart_item_price($cart)
410
+ {
411
+ if (is_admin() && !defined('DOING_AJAX')) {
412
+ return;
413
+ }
414
+
415
+ foreach ($cart->get_cart() as $cart_item) {
416
+ if (isset($cart_item['custom_price'])) {
417
+ $cart_item['data']->set_price($cart_item['custom_price']);
418
+ }
419
+ }
420
+ }
421
+
422
+ // Add custom order meta
423
+ add_action('woocommerce_checkout_create_order', 'save_custom_order_meta', 10, 2);
424
+ function save_custom_order_meta($order, $data)
425
+ {
426
+ if (isset($_POST['custom_field'])) {
427
+ $order->update_meta_data(
428
+ '_custom_field',
429
+ sanitize_text_field($_POST['custom_field'])
430
+ );
431
+ }
432
+ }
433
+
434
+ // Validate checkout fields
435
+ add_action('woocommerce_after_checkout_validation', 'custom_checkout_validation', 10, 2);
436
+ function custom_checkout_validation($data, $errors)
437
+ {
438
+ if (empty($_POST['custom_field'])) {
439
+ $errors->add('validation', __('Custom field is required', 'woocommerce'));
440
+ }
441
+ }
442
+
443
+ // Modify order status
444
+ add_action('woocommerce_order_status_completed', 'custom_order_completed');
445
+ function custom_order_completed($order_id)
446
+ {
447
+ $order = wc_get_order($order_id);
448
+
449
+ // Send custom notification
450
+ // Award loyalty points
451
+ // Update inventory
452
+ }
453
+ ```
454
+
455
+ ### Payment Gateway Extension
456
+
457
+ ```php
458
+ <?php
459
+
460
+ class WC_Gateway_Custom extends WC_Payment_Gateway
461
+ {
462
+ public function __construct()
463
+ {
464
+ $this->id = 'custom_gateway';
465
+ $this->method_title = __('Custom Gateway', 'woocommerce');
466
+ $this->method_description = __('Custom payment gateway', 'woocommerce');
467
+ $this->has_fields = true;
468
+
469
+ $this->init_form_fields();
470
+ $this->init_settings();
471
+
472
+ $this->title = $this->get_option('title');
473
+ $this->description = $this->get_option('description');
474
+
475
+ add_action('woocommerce_update_options_payment_gateways_' . $this->id, [$this, 'process_admin_options']);
476
+ }
477
+
478
+ public function init_form_fields()
479
+ {
480
+ $this->form_fields = [
481
+ 'enabled' => [
482
+ 'title' => __('Enable/Disable', 'woocommerce'),
483
+ 'type' => 'checkbox',
484
+ 'label' => __('Enable Custom Gateway', 'woocommerce'),
485
+ 'default' => 'no'
486
+ ],
487
+ 'title' => [
488
+ 'title' => __('Title', 'woocommerce'),
489
+ 'type' => 'text',
490
+ 'default' => __('Custom Payment', 'woocommerce')
491
+ ],
492
+ 'api_key' => [
493
+ 'title' => __('API Key', 'woocommerce'),
494
+ 'type' => 'password'
495
+ ]
496
+ ];
497
+ }
498
+
499
+ public function process_payment($order_id)
500
+ {
501
+ $order = wc_get_order($order_id);
502
+
503
+ try {
504
+ // Process payment
505
+ $result = $this->gateway->charge(
506
+ $order->get_total(),
507
+ $order->get_currency(),
508
+ $_POST['payment_token']
509
+ );
510
+
511
+ if ($result->success) {
512
+ $order->payment_complete($result->transactionId);
513
+
514
+ return [
515
+ 'result' => 'success',
516
+ 'redirect' => $this->get_return_url($order)
517
+ ];
518
+ } else {
519
+ wc_add_notice($result->errorMessage, 'error');
520
+ return ['result' => 'failure'];
521
+ }
522
+
523
+ } catch (\Exception $e) {
524
+ wc_add_notice(__('Payment error:', 'woocommerce') . ' ' . $e->getMessage(), 'error');
525
+ return ['result' => 'failure'];
526
+ }
527
+ }
528
+ }
529
+
530
+ // Register gateway
531
+ add_filter('woocommerce_payment_gateways', 'add_custom_gateway');
532
+ function add_custom_gateway($gateways)
533
+ {
534
+ $gateways[] = 'WC_Gateway_Custom';
535
+ return $gateways;
536
+ }
537
+ ```
538
+
539
+ ## PCI DSS Compliance
540
+
541
+ ### Security Requirements
542
+
543
+ ```php
544
+ <?php
545
+
546
+ // ❌ NEVER do this - storing card data
547
+ class BadExample
548
+ {
549
+ public function saveCard($cardNumber, $cvv, $expiry)
550
+ {
551
+ // NEVER STORE CARD DATA IN YOUR DATABASE
552
+ DB::table('cards')->insert([
553
+ 'card_number' => $cardNumber, // ❌ VIOLATION
554
+ 'cvv' => $cvv, // ❌ VIOLATION
555
+ 'expiry' => $expiry
556
+ ]);
557
+ }
558
+ }
559
+
560
+ // ✅ Correct approach - use tokenization
561
+ class GoodExample
562
+ {
563
+ public function savePaymentMethod($customerId, $cardData)
564
+ {
565
+ // Use payment gateway's tokenization
566
+ $token = $this->stripe->tokens->create([
567
+ 'card' => $cardData
568
+ ]);
569
+
570
+ // Store only the token
571
+ DB::table('payment_methods')->insert([
572
+ 'customer_id' => $customerId,
573
+ 'token' => $token->id, // ✅ Safe to store
574
+ 'last4' => $token->card->last4,
575
+ 'brand' => $token->card->brand,
576
+ 'exp_month' => $token->card->exp_month,
577
+ 'exp_year' => $token->card->exp_year
578
+ ]);
579
+ }
580
+ }
581
+ ```
582
+
583
+ ## Best Practices
584
+
585
+ ### ✅ DO
586
+
587
+ - Use database transactions for order processing
588
+ - Validate stock before order creation
589
+ - Use payment gateway tokenization
590
+ - Implement idempotent order processing
591
+ - Log all payment transactions
592
+ - Send order confirmation emails
593
+ - Implement proper error handling
594
+ - Use HTTPS for all payment pages
595
+ - Validate all input data
596
+ - Implement rate limiting on checkout
597
+ - Use pessimistic locking for stock updates
598
+ - Follow PCI DSS compliance guidelines
599
+
600
+ ### ❌ DON'T
601
+
602
+ - Store raw credit card data
603
+ - Process payments without validation
604
+ - Skip stock validation
605
+ - Ignore transaction failures
606
+ - Expose payment errors to users
607
+ - Use GET requests for payment processing
608
+ - Store CVV codes
609
+ - Hardcode payment credentials
610
+ - Skip order confirmation emails
611
+ - Allow negative stock values
612
+
613
+ ## Security Checklist
614
+
615
+ - [ ] HTTPS enforced on all pages
616
+ - [ ] Payment data tokenized (never stored)
617
+ - [ ] PCI DSS compliance verified
618
+ - [ ] Input validation on all fields
619
+ - [ ] CSRF protection on checkout
620
+ - [ ] Rate limiting on payment endpoints
621
+ - [ ] Secure session management
622
+ - [ ] SQL injection prevention
623
+ - [ ] XSS prevention
624
+ - [ ] Proper error handling (no sensitive data exposure)
625
+ - [ ] Transaction logging
626
+ - [ ] Fraud detection implemented
627
+