@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,677 @@
1
+ # PHP Legacy Code Migration Best Practices
2
+
3
+ ## Overview
4
+
5
+ This guide provides strategies for refactoring legacy PHP code to modern standards, including introducing namespaces, adding type hints, implementing dependency injection, and applying design patterns.
6
+
7
+ ## Refactoring Strategies
8
+
9
+ ### Strangler Fig Pattern
10
+
11
+ **Gradually replace legacy code** without a complete rewrite.
12
+
13
+ ```php
14
+ <?php
15
+
16
+ // Step 1: Create new implementation alongside legacy code
17
+ namespace App\Services;
18
+
19
+ class ModernUserService
20
+ {
21
+ public function createUser(string $name, string $email): User
22
+ {
23
+ // New implementation with type hints, validation, etc.
24
+ $user = new User();
25
+ $user->name = $name;
26
+ $user->email = $email;
27
+ $user->save();
28
+
29
+ return $user;
30
+ }
31
+ }
32
+
33
+ // Step 2: Create adapter/facade to route to new or old implementation
34
+ class UserServiceFacade
35
+ {
36
+ private $modernService;
37
+ private $useModern;
38
+
39
+ public function __construct(ModernUserService $modernService, bool $useModern = false)
40
+ {
41
+ $this->modernService = $modernService;
42
+ $this->useModern = $useModern;
43
+ }
44
+
45
+ public function createUser($name, $email)
46
+ {
47
+ if ($this->useModern) {
48
+ return $this->modernService->createUser($name, $email);
49
+ } else {
50
+ // Call legacy function
51
+ return legacy_create_user($name, $email);
52
+ }
53
+ }
54
+ }
55
+
56
+ // Step 3: Gradually migrate callers to use facade
57
+ // Step 4: Enable modern implementation via feature flag
58
+ // Step 5: Remove legacy code once fully migrated
59
+ ```
60
+
61
+ ### Characterization Tests
62
+
63
+ **Write tests for legacy code before refactoring:**
64
+
65
+ ```php
66
+ <?php
67
+
68
+ use PHPUnit\Framework\TestCase;
69
+
70
+ class LegacyUserFunctionsTest extends TestCase
71
+ {
72
+ /**
73
+ * Characterization test - documents current behavior
74
+ */
75
+ public function test_legacy_create_user_returns_user_id()
76
+ {
77
+ $userId = legacy_create_user('John Doe', 'john@example.com');
78
+
79
+ $this->assertIsInt($userId);
80
+ $this->assertGreaterThan(0, $userId);
81
+ }
82
+
83
+ /**
84
+ * Test edge cases
85
+ */
86
+ public function test_legacy_create_user_with_duplicate_email()
87
+ {
88
+ legacy_create_user('User 1', 'test@example.com');
89
+
90
+ $this->expectException(\Exception::class);
91
+ legacy_create_user('User 2', 'test@example.com');
92
+ }
93
+ }
94
+ ```
95
+
96
+ ## Introducing Namespaces (PSR-4)
97
+
98
+ ### Before: No Namespaces
99
+
100
+ ```php
101
+ <?php
102
+
103
+ // includes/User.php
104
+ class User
105
+ {
106
+ public $id;
107
+ public $name;
108
+
109
+ public function save()
110
+ {
111
+ // Save to database
112
+ }
113
+ }
114
+
115
+ // includes/UserRepository.php
116
+ class UserRepository
117
+ {
118
+ public function find($id)
119
+ {
120
+ // Find user
121
+ }
122
+ }
123
+ ```
124
+
125
+ ### After: With Namespaces
126
+
127
+ ```php
128
+ <?php
129
+
130
+ // src/Models/User.php
131
+ namespace App\Models;
132
+
133
+ class User
134
+ {
135
+ private int $id;
136
+ private string $name;
137
+
138
+ public function save(): void
139
+ {
140
+ // Save to database
141
+ }
142
+ }
143
+
144
+ // src/Repositories/UserRepository.php
145
+ namespace App\Repositories;
146
+
147
+ use App\Models\User;
148
+
149
+ class UserRepository
150
+ {
151
+ public function find(int $id): ?User
152
+ {
153
+ // Find user
154
+ }
155
+ }
156
+
157
+ // composer.json
158
+ {
159
+ "autoload": {
160
+ "psr-4": {
161
+ "App\\": "src/"
162
+ }
163
+ }
164
+ }
165
+ ```
166
+
167
+ ### Migration Steps
168
+
169
+ ```php
170
+ <?php
171
+
172
+ // Step 1: Add namespace to class
173
+ namespace App\Models;
174
+
175
+ class User
176
+ {
177
+ // Existing code
178
+ }
179
+
180
+ // Step 2: Update all references
181
+ // Before:
182
+ $user = new User();
183
+
184
+ // After:
185
+ use App\Models\User;
186
+ $user = new User();
187
+
188
+ // Or:
189
+ $user = new \App\Models\User();
190
+
191
+ // Step 3: Set up autoloading
192
+ require 'vendor/autoload.php';
193
+
194
+ // Step 4: Remove old require/include statements
195
+ // Before:
196
+ require_once 'includes/User.php';
197
+
198
+ // After: (not needed with autoloading)
199
+ ```
200
+
201
+ ## Adding Type Hints Incrementally
202
+
203
+ ### Level 1: Add Return Types
204
+
205
+ ```php
206
+ <?php
207
+
208
+ // Before
209
+ function getUser($id)
210
+ {
211
+ return User::find($id);
212
+ }
213
+
214
+ // After
215
+ function getUser($id): ?User
216
+ {
217
+ return User::find($id);
218
+ }
219
+ ```
220
+
221
+ ### Level 2: Add Parameter Types
222
+
223
+ ```php
224
+ <?php
225
+
226
+ // Before
227
+ function createUser($name, $email)
228
+ {
229
+ // ...
230
+ }
231
+
232
+ // After
233
+ function createUser(string $name, string $email): User
234
+ {
235
+ // ...
236
+ }
237
+ ```
238
+
239
+ ### Level 3: Add Property Types (PHP 7.4+)
240
+
241
+ ```php
242
+ <?php
243
+
244
+ // Before
245
+ class User
246
+ {
247
+ public $id;
248
+ public $name;
249
+ public $email;
250
+ public $createdAt;
251
+ }
252
+
253
+ // After
254
+ class User
255
+ {
256
+ public int $id;
257
+ public string $name;
258
+ public string $email;
259
+ public ?\DateTime $createdAt = null;
260
+ }
261
+ ```
262
+
263
+ ### Level 4: Add Strict Types
264
+
265
+ ```php
266
+ <?php
267
+
268
+ declare(strict_types=1);
269
+
270
+ namespace App\Models;
271
+
272
+ class User
273
+ {
274
+ public function __construct(
275
+ private int $id,
276
+ private string $name,
277
+ private string $email
278
+ ) {}
279
+ }
280
+ ```
281
+
282
+ ## Dependency Injection
283
+
284
+ ### Before: Global Dependencies
285
+
286
+ ```php
287
+ <?php
288
+
289
+ // Legacy code with global database connection
290
+ function getUser($id)
291
+ {
292
+ global $db;
293
+
294
+ $stmt = $db->prepare("SELECT * FROM users WHERE id = ?");
295
+ $stmt->execute([$id]);
296
+ return $stmt->fetch();
297
+ }
298
+
299
+ // Usage
300
+ $user = getUser(123);
301
+ ```
302
+
303
+ ### After: Constructor Injection
304
+
305
+ ```php
306
+ <?php
307
+
308
+ namespace App\Repositories;
309
+
310
+ use PDO;
311
+
312
+ class UserRepository
313
+ {
314
+ private PDO $db;
315
+
316
+ public function __construct(PDO $db)
317
+ {
318
+ $this->db = $db;
319
+ }
320
+
321
+ public function find(int $id): ?array
322
+ {
323
+ $stmt = $this->db->prepare("SELECT * FROM users WHERE id = ?");
324
+ $stmt->execute([$id]);
325
+ return $stmt->fetch() ?: null;
326
+ }
327
+ }
328
+
329
+ // Usage with DI container
330
+ $container = new Container();
331
+ $container->bind(PDO::class, function() {
332
+ return new PDO('mysql:host=localhost;dbname=mydb', 'user', 'pass');
333
+ });
334
+
335
+ $userRepo = $container->make(UserRepository::class);
336
+ $user = $userRepo->find(123);
337
+ ```
338
+
339
+ ### Service Container
340
+
341
+ ```php
342
+ <?php
343
+
344
+ namespace App\Container;
345
+
346
+ class Container
347
+ {
348
+ private array $bindings = [];
349
+ private array $instances = [];
350
+
351
+ public function bind(string $abstract, callable $concrete): void
352
+ {
353
+ $this->bindings[$abstract] = $concrete;
354
+ }
355
+
356
+ public function singleton(string $abstract, callable $concrete): void
357
+ {
358
+ $this->bind($abstract, function() use ($abstract, $concrete) {
359
+ if (!isset($this->instances[$abstract])) {
360
+ $this->instances[$abstract] = $concrete();
361
+ }
362
+ return $this->instances[$abstract];
363
+ });
364
+ }
365
+
366
+ public function make(string $abstract): object
367
+ {
368
+ if (isset($this->bindings[$abstract])) {
369
+ return $this->bindings[$abstract]();
370
+ }
371
+
372
+ return $this->resolve($abstract);
373
+ }
374
+
375
+ private function resolve(string $class): object
376
+ {
377
+ $reflector = new \ReflectionClass($class);
378
+ $constructor = $reflector->getConstructor();
379
+
380
+ if (!$constructor) {
381
+ return new $class();
382
+ }
383
+
384
+ $dependencies = [];
385
+ foreach ($constructor->getParameters() as $param) {
386
+ $type = $param->getType();
387
+ if ($type && !$type->isBuiltin()) {
388
+ $dependencies[] = $this->make($type->getName());
389
+ }
390
+ }
391
+
392
+ return $reflector->newInstanceArgs($dependencies);
393
+ }
394
+ }
395
+ ```
396
+
397
+ ## Refactoring Procedural to OOP
398
+
399
+ ### Before: Procedural Code
400
+
401
+ ```php
402
+ <?php
403
+
404
+ // functions.php
405
+ function calculate_order_total($items, $tax_rate, $shipping_cost)
406
+ {
407
+ $subtotal = 0;
408
+ foreach ($items as $item) {
409
+ $subtotal += $item['price'] * $item['quantity'];
410
+ }
411
+
412
+ $tax = $subtotal * $tax_rate;
413
+ $total = $subtotal + $tax + $shipping_cost;
414
+
415
+ return [
416
+ 'subtotal' => $subtotal,
417
+ 'tax' => $tax,
418
+ 'shipping' => $shipping_cost,
419
+ 'total' => $total
420
+ ];
421
+ }
422
+
423
+ function apply_discount($total, $discount_code)
424
+ {
425
+ global $db;
426
+
427
+ $discount = $db->query("SELECT * FROM discounts WHERE code = '$discount_code'")->fetch();
428
+
429
+ if ($discount) {
430
+ return $total - ($total * $discount['percentage'] / 100);
431
+ }
432
+
433
+ return $total;
434
+ }
435
+ ```
436
+
437
+ ### After: Object-Oriented Code
438
+
439
+ ```php
440
+ <?php
441
+
442
+ namespace App\Services;
443
+
444
+ use App\Models\Order;
445
+ use App\Repositories\DiscountRepository;
446
+
447
+ class OrderCalculator
448
+ {
449
+ private float $taxRate;
450
+
451
+ public function __construct(
452
+ private DiscountRepository $discountRepo,
453
+ float $taxRate = 0.08
454
+ ) {
455
+ $this->taxRate = $taxRate;
456
+ }
457
+
458
+ public function calculateTotal(Order $order): OrderTotal
459
+ {
460
+ $subtotal = $this->calculateSubtotal($order->items);
461
+ $tax = $subtotal * $this->taxRate;
462
+ $shipping = $this->calculateShipping($order);
463
+ $total = $subtotal + $tax + $shipping;
464
+
465
+ return new OrderTotal(
466
+ subtotal: $subtotal,
467
+ tax: $tax,
468
+ shipping: $shipping,
469
+ total: $total
470
+ );
471
+ }
472
+
473
+ public function applyDiscount(float $total, string $discountCode): float
474
+ {
475
+ $discount = $this->discountRepo->findByCode($discountCode);
476
+
477
+ if (!$discount || !$discount->isValid()) {
478
+ return $total;
479
+ }
480
+
481
+ return $total - ($total * $discount->percentage / 100);
482
+ }
483
+
484
+ private function calculateSubtotal(array $items): float
485
+ {
486
+ return array_reduce($items, function($sum, $item) {
487
+ return $sum + ($item->price * $item->quantity);
488
+ }, 0.0);
489
+ }
490
+
491
+ private function calculateShipping(Order $order): float
492
+ {
493
+ // Shipping calculation logic
494
+ return 10.00;
495
+ }
496
+ }
497
+
498
+ class OrderTotal
499
+ {
500
+ public function __construct(
501
+ public readonly float $subtotal,
502
+ public readonly float $tax,
503
+ public readonly float $shipping,
504
+ public readonly float $total
505
+ ) {}
506
+ }
507
+ ```
508
+
509
+ ## Extracting Classes from Large Files
510
+
511
+ ### Before: God Class
512
+
513
+ ```php
514
+ <?php
515
+
516
+ class User
517
+ {
518
+ public function save() { /* ... */ }
519
+ public function delete() { /* ... */ }
520
+ public function sendEmail($subject, $body) { /* ... */ }
521
+ public function hashPassword($password) { /* ... */ }
522
+ public function validateEmail($email) { /* ... */ }
523
+ public function generateToken() { /* ... */ }
524
+ public function logActivity($action) { /* ... */ }
525
+ // 50+ more methods...
526
+ }
527
+ ```
528
+
529
+ ### After: Single Responsibility
530
+
531
+ ```php
532
+ <?php
533
+
534
+ namespace App\Models;
535
+
536
+ class User
537
+ {
538
+ public function save(): void { /* ... */ }
539
+ public function delete(): void { /* ... */ }
540
+ }
541
+
542
+ namespace App\Services;
543
+
544
+ class UserMailer
545
+ {
546
+ public function sendWelcomeEmail(User $user): void { /* ... */ }
547
+ public function sendPasswordReset(User $user): void { /* ... */ }
548
+ }
549
+
550
+ class PasswordHasher
551
+ {
552
+ public function hash(string $password): string { /* ... */ }
553
+ public function verify(string $password, string $hash): bool { /* ... */ }
554
+ }
555
+
556
+ class EmailValidator
557
+ {
558
+ public function validate(string $email): bool { /* ... */ }
559
+ }
560
+
561
+ class TokenGenerator
562
+ {
563
+ public function generate(): string { /* ... */ }
564
+ }
565
+
566
+ class ActivityLogger
567
+ {
568
+ public function log(User $user, string $action): void { /* ... */ }
569
+ }
570
+ ```
571
+
572
+ ## Database Query Migration
573
+
574
+ ### Before: Direct Queries
575
+
576
+ ```php
577
+ <?php
578
+
579
+ function getActiveUsers()
580
+ {
581
+ global $db;
582
+
583
+ $result = mysql_query("SELECT * FROM users WHERE active = 1");
584
+ $users = [];
585
+
586
+ while ($row = mysql_fetch_assoc($result)) {
587
+ $users[] = $row;
588
+ }
589
+
590
+ return $users;
591
+ }
592
+ ```
593
+
594
+ ### After: Query Builder/ORM
595
+
596
+ ```php
597
+ <?php
598
+
599
+ namespace App\Repositories;
600
+
601
+ use Illuminate\Database\Capsule\Manager as DB;
602
+ use App\Models\User;
603
+
604
+ class UserRepository
605
+ {
606
+ public function getActiveUsers(): array
607
+ {
608
+ return User::where('active', true)->get()->toArray();
609
+ }
610
+
611
+ // Or with query builder
612
+ public function getActiveUsersQueryBuilder(): array
613
+ {
614
+ return DB::table('users')
615
+ ->where('active', true)
616
+ ->get()
617
+ ->toArray();
618
+ }
619
+ }
620
+ ```
621
+
622
+ ## Best Practices
623
+
624
+ ### ✅ DO
625
+
626
+ - Write characterization tests before refactoring
627
+ - Use strangler fig pattern for gradual migration
628
+ - Introduce namespaces incrementally
629
+ - Add type hints progressively (return types first)
630
+ - Implement dependency injection
631
+ - Extract classes with single responsibility
632
+ - Use modern PHP features (7.4+, 8.0+)
633
+ - Migrate to PSR-4 autoloading
634
+ - Replace global variables with dependency injection
635
+ - Use ORM/query builder instead of raw SQL
636
+ - Document migration decisions
637
+ - Keep legacy code working during migration
638
+
639
+ ### ❌ DON'T
640
+
641
+ - Attempt complete rewrite without tests
642
+ - Break existing functionality
643
+ - Mix old and new patterns in same class
644
+ - Skip testing during migration
645
+ - Remove legacy code before migration complete
646
+ - Ignore backward compatibility
647
+ - Rush the migration process
648
+ - Forget to update documentation
649
+ - Leave dead code in codebase
650
+ - Use deprecated PHP features in new code
651
+
652
+ ## Migration Checklist
653
+
654
+ - [ ] Write characterization tests for legacy code
655
+ - [ ] Set up PSR-4 autoloading
656
+ - [ ] Introduce namespaces incrementally
657
+ - [ ] Add return type hints
658
+ - [ ] Add parameter type hints
659
+ - [ ] Add property type hints
660
+ - [ ] Implement dependency injection
661
+ - [ ] Extract single-responsibility classes
662
+ - [ ] Migrate to ORM/query builder
663
+ - [ ] Remove global variables
664
+ - [ ] Update to modern PHP version (8.0+)
665
+ - [ ] Enable strict types
666
+ - [ ] Remove deprecated function calls
667
+ - [ ] Update documentation
668
+ - [ ] Remove dead code
669
+
670
+ ## Tools
671
+
672
+ - **PHPStan** - Static analysis to find bugs
673
+ - **Rector** - Automated refactoring tool
674
+ - **PHP-CS-Fixer** - Code style fixer
675
+ - **PHPUnit** - Testing framework
676
+ - **Composer** - Dependency management and autoloading
677
+