@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,186 @@
1
+ # PSR Standards
2
+
3
+ ## Overview
4
+
5
+ PHP Standards Recommendations (PSR) are coding standards established by the PHP Framework Interop Group (PHP-FIG). This document covers the essential PSR standards that all PHP code should follow.
6
+
7
+ ---
8
+
9
+ ## PSR-1: Basic Coding Standard
10
+
11
+ ### File Requirements
12
+
13
+ **PHP Tags:**
14
+ - Files MUST use only `<?php` and `<?=` tags
15
+ - Short tags (`<?`) MUST NOT be used
16
+ - ASP-style tags (`<%`) MUST NOT be used
17
+
18
+ **File Encoding:**
19
+ - Files MUST use UTF-8 without BOM for PHP code
20
+ - No byte order mark (BOM) should be present
21
+
22
+ **File Purpose:**
23
+ - Files SHOULD either declare symbols (classes, functions, constants) OR cause side-effects (generate output, modify settings)
24
+ - Files SHOULD NOT do both
25
+
26
+ ### Naming Conventions
27
+
28
+ **Namespaces and Classes:**
29
+ - Namespaces and classes MUST follow PSR-4 autoloading standard
30
+ - Class names MUST be declared in PascalCase (e.g., `UserController`)
31
+ - Namespace names MUST match directory structure
32
+
33
+ **Constants:**
34
+ - Class constants MUST be declared in UPPER_SNAKE_CASE
35
+ - Example: `const MAX_RETRY_COUNT = 3;`
36
+
37
+ **Methods:**
38
+ - Method names MUST be declared in camelCase
39
+ - Example: `public function getUserById(int $id): ?User`
40
+
41
+ ---
42
+
43
+ ## PSR-12: Extended Coding Style
44
+
45
+ ### Indentation and Spacing
46
+
47
+ **Indentation:**
48
+ - Code MUST use 4 spaces for indentation
49
+ - Tabs MUST NOT be used
50
+
51
+ **Line Length:**
52
+ - There MUST be no hard limit on line length
53
+ - Soft limit is 120 characters
54
+ - Lines SHOULD NOT exceed 80 characters when practical
55
+
56
+ **Blank Lines:**
57
+ - There MUST be one blank line after namespace declaration
58
+ - There MUST be one blank line after use declarations block
59
+ - There MUST NOT be more than one statement per line
60
+
61
+ ### Braces and Control Structures
62
+
63
+ **Class and Method Braces:**
64
+ - Opening braces for classes MUST be on the next line
65
+ - Opening braces for methods MUST be on the next line
66
+ - Closing braces MUST be on their own line
67
+
68
+ **Control Structure Braces:**
69
+ - Opening braces for control structures MUST be on the same line
70
+ - Closing braces MUST be on the next line after the body
71
+ - Control structure keywords MUST have one space after them
72
+ - Opening parentheses MUST NOT have a space after them
73
+ - Closing parentheses MUST NOT have a space before them
74
+
75
+ **Example:**
76
+ ```php
77
+ <?php
78
+
79
+ namespace App\Controllers;
80
+
81
+ use App\Models\User;
82
+ use App\Services\UserService;
83
+
84
+ class UserController
85
+ {
86
+ public function show(int $id): ?User
87
+ {
88
+ if ($id <= 0) {
89
+ return null;
90
+ }
91
+
92
+ return User::find($id);
93
+ }
94
+ }
95
+ ```
96
+
97
+ ### Visibility and Type Declarations
98
+
99
+ **Visibility:**
100
+ - Visibility MUST be declared on all properties and methods
101
+ - `abstract` and `final` MUST be declared before visibility
102
+ - `static` MUST be declared after visibility
103
+
104
+ **Type Declarations:**
105
+ - Type hints SHOULD be used for all parameters
106
+ - Return types SHOULD be declared for all methods
107
+ - There MUST NOT be a space before the colon in return type declarations
108
+ - There MUST be one space after the colon in return type declarations
109
+
110
+ ---
111
+
112
+ ## PSR-4: Autoloading
113
+
114
+ ### Namespace Structure
115
+
116
+ **Directory Mapping:**
117
+ - Namespace structure MUST match directory structure
118
+ - Each namespace separator corresponds to a directory separator
119
+ - Class names MUST match file names exactly (case-sensitive)
120
+
121
+ **Example:**
122
+ ```
123
+ Namespace: App\Services\Payment
124
+ File path: src/Services/Payment/PaymentService.php
125
+ Class name: PaymentService
126
+ ```
127
+
128
+ ### Autoloader Configuration
129
+
130
+ **Composer autoload:**
131
+ ```json
132
+ {
133
+ "autoload": {
134
+ "psr-4": {
135
+ "App\\": "src/"
136
+ }
137
+ }
138
+ }
139
+ ```
140
+
141
+ ---
142
+
143
+ ## PSR-7: HTTP Messages
144
+
145
+ ### Request and Response Objects
146
+
147
+ **Immutability:**
148
+ - HTTP message objects MUST be immutable
149
+ - Methods that modify state MUST return new instances
150
+
151
+ **Interfaces:**
152
+ - Use `Psr\Http\Message\RequestInterface` for requests
153
+ - Use `Psr\Http\Message\ResponseInterface` for responses
154
+ - Use `Psr\Http\Message\StreamInterface` for message bodies
155
+
156
+ **Example:**
157
+ ```php
158
+ use Psr\Http\Message\ResponseInterface;
159
+ use Psr\Http\Message\ServerRequestInterface;
160
+
161
+ function handleRequest(ServerRequestInterface $request): ResponseInterface
162
+ {
163
+ $response = new Response();
164
+ return $response
165
+ ->withStatus(200)
166
+ ->withHeader('Content-Type', 'application/json')
167
+ ->withBody($stream);
168
+ }
169
+ ```
170
+
171
+ ---
172
+
173
+ ## PSR-11: Container Interface
174
+
175
+ ### Dependency Injection Container
176
+
177
+ **Container Interface:**
178
+ - Implement `Psr\Container\ContainerInterface`
179
+ - `get($id)` method retrieves entries
180
+ - `has($id)` method checks if entry exists
181
+
182
+ **Exception Handling:**
183
+ - Throw `Psr\Container\NotFoundExceptionInterface` when entry not found
184
+ - Throw `Psr\Container\ContainerExceptionInterface` for other errors
185
+
186
+
@@ -0,0 +1,358 @@
1
+ # Security Best Practices
2
+
3
+ ## Overview
4
+
5
+ Security is paramount in PHP development. This document defines security standards following OWASP PHP Security Cheat Sheet guidelines.
6
+
7
+ ---
8
+
9
+ ## Input Validation and Sanitization
10
+
11
+ ### Validate All Input
12
+
13
+ **Rules:**
14
+ - ALL user input MUST be validated
15
+ - Validate on the server side (never trust client-side validation)
16
+ - Use whitelist validation (allow known good) over blacklist (block known bad)
17
+ - Validate data type, length, format, and range
18
+
19
+ **Examples:**
20
+ ```php
21
+ // ✅ Good
22
+ function validateEmail(string $email): bool
23
+ {
24
+ return filter_var($email, FILTER_VALIDATE_EMAIL) !== false;
25
+ }
26
+
27
+ function validateAge(mixed $age): bool
28
+ {
29
+ return filter_var($age, FILTER_VALIDATE_INT, [
30
+ 'options' => ['min_range' => 0, 'max_range' => 150]
31
+ ]) !== false;
32
+ }
33
+
34
+ function processUserInput(array $data): array
35
+ {
36
+ $validated = [];
37
+
38
+ if (!isset($data['email']) || !validateEmail($data['email'])) {
39
+ throw new ValidationException('Invalid email');
40
+ }
41
+ $validated['email'] = $data['email'];
42
+
43
+ if (!isset($data['age']) || !validateAge($data['age'])) {
44
+ throw new ValidationException('Invalid age');
45
+ }
46
+ $validated['age'] = (int)$data['age'];
47
+
48
+ return $validated;
49
+ }
50
+
51
+ // ❌ Bad
52
+ function processUserInput(array $data): array
53
+ {
54
+ return $data; // No validation!
55
+ }
56
+ ```
57
+
58
+ ### Sanitize Input
59
+
60
+ **Rules:**
61
+ - Sanitize input after validation
62
+ - Use appropriate sanitization for context
63
+ - Use `filter_var()` with sanitization filters
64
+
65
+ **Examples:**
66
+ ```php
67
+ // ✅ Good
68
+ $email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
69
+ $url = filter_var($_POST['url'], FILTER_SANITIZE_URL);
70
+ $string = filter_var($_POST['name'], FILTER_SANITIZE_SPECIAL_CHARS);
71
+ ```
72
+
73
+ ---
74
+
75
+ ## SQL Injection Prevention
76
+
77
+ ### Use Prepared Statements
78
+
79
+ **Rules:**
80
+ - ALWAYS use prepared statements with parameter binding
81
+ - NEVER concatenate user input into SQL queries
82
+ - Use ORM query builders when available
83
+
84
+ **Examples:**
85
+ ```php
86
+ // ✅ Good - PDO prepared statement
87
+ $stmt = $pdo->prepare('SELECT * FROM users WHERE email = :email');
88
+ $stmt->execute(['email' => $email]);
89
+ $user = $stmt->fetch();
90
+
91
+ // ✅ Good - ORM query builder
92
+ $user = User::where('email', $email)->first();
93
+
94
+ // ✅ Good - Eloquent with bindings
95
+ $users = DB::select('SELECT * FROM users WHERE status = ?', [$status]);
96
+
97
+ // ❌ CRITICAL VULNERABILITY - SQL Injection
98
+ $query = "SELECT * FROM users WHERE email = '$email'";
99
+ $result = mysqli_query($conn, $query);
100
+ ```
101
+
102
+ ### Escape Output in SQL Context
103
+
104
+ **Rules:**
105
+ - When dynamic SQL is unavoidable, escape properly
106
+ - Use database-specific escaping functions
107
+ - Prefer parameterized queries over escaping
108
+
109
+ **Examples:**
110
+ ```php
111
+ // ✅ Acceptable (but prepared statements are better)
112
+ $email = $pdo->quote($email);
113
+ $query = "SELECT * FROM users WHERE email = $email";
114
+
115
+ // ❌ Bad
116
+ $email = addslashes($email); // Not sufficient!
117
+ ```
118
+
119
+ ---
120
+
121
+ ## Cross-Site Scripting (XSS) Prevention
122
+
123
+ ### Escape Output
124
+
125
+ **Rules:**
126
+ - Escape ALL output to HTML
127
+ - Use context-appropriate escaping
128
+ - Use template engines with auto-escaping
129
+
130
+ **Escaping Functions:**
131
+ - `htmlspecialchars()` - HTML context
132
+ - `htmlentities()` - HTML entities
133
+ - `json_encode()` - JavaScript context
134
+ - `urlencode()` - URL context
135
+
136
+ **Examples:**
137
+ ```php
138
+ // ✅ Good - HTML context
139
+ echo htmlspecialchars($userInput, ENT_QUOTES, 'UTF-8');
140
+
141
+ // ✅ Good - JavaScript context
142
+ echo '<script>var name = ' . json_encode($userName) . ';</script>';
143
+
144
+ // ✅ Good - URL context
145
+ echo '<a href="?search=' . urlencode($searchTerm) . '">Search</a>';
146
+
147
+ // ✅ Good - Template engine (Blade)
148
+ {{ $userInput }} // Auto-escaped
149
+
150
+ // ❌ CRITICAL VULNERABILITY - XSS
151
+ echo $userInput; // Not escaped!
152
+ echo "<div>$userInput</div>"; // Not escaped!
153
+ ```
154
+
155
+ ### Content Security Policy
156
+
157
+ **Rules:**
158
+ - Implement Content Security Policy (CSP) headers
159
+ - Restrict script sources
160
+ - Disable inline scripts when possible
161
+
162
+ **Examples:**
163
+ ```php
164
+ // ✅ Good
165
+ header("Content-Security-Policy: default-src 'self'; script-src 'self' https://trusted-cdn.com");
166
+ ```
167
+
168
+ ---
169
+
170
+ ## Cross-Site Request Forgery (CSRF) Prevention
171
+
172
+ ### CSRF Tokens
173
+
174
+ **Rules:**
175
+ - Use CSRF tokens for all state-changing requests
176
+ - Validate tokens on the server side
177
+ - Regenerate tokens after authentication
178
+
179
+ **Examples:**
180
+ ```php
181
+ // ✅ Good - Generate token
182
+ session_start();
183
+ if (empty($_SESSION['csrf_token'])) {
184
+ $_SESSION['csrf_token'] = bin2hex(random_bytes(32));
185
+ }
186
+
187
+ // ✅ Good - Validate token
188
+ function validateCsrfToken(string $token): bool
189
+ {
190
+ return isset($_SESSION['csrf_token']) && hash_equals($_SESSION['csrf_token'], $token);
191
+ }
192
+
193
+ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
194
+ if (!validateCsrfToken($_POST['csrf_token'] ?? '')) {
195
+ throw new SecurityException('Invalid CSRF token');
196
+ }
197
+ // Process form
198
+ }
199
+
200
+ // HTML form
201
+ echo '<input type="hidden" name="csrf_token" value="' . htmlspecialchars($_SESSION['csrf_token']) . '">';
202
+ ```
203
+
204
+ ---
205
+
206
+ ## Session Security
207
+
208
+ ### Secure Session Configuration
209
+
210
+ **Rules:**
211
+ - Regenerate session ID after authentication
212
+ - Set secure and httponly flags on cookies
213
+ - Implement session timeout
214
+ - Validate session data on each request
215
+
216
+ **Examples:**
217
+ ```php
218
+ // ✅ Good - Secure session configuration
219
+ ini_set('session.cookie_httponly', 1);
220
+ ini_set('session.cookie_secure', 1); // HTTPS only
221
+ ini_set('session.cookie_samesite', 'Strict');
222
+ ini_set('session.use_strict_mode', 1);
223
+
224
+ session_start();
225
+
226
+ // ✅ Good - Regenerate after login
227
+ function loginUser(User $user): void
228
+ {
229
+ session_regenerate_id(true);
230
+ $_SESSION['user_id'] = $user->id;
231
+ $_SESSION['login_time'] = time();
232
+ }
233
+
234
+ // ✅ Good - Session timeout
235
+ function validateSession(): bool
236
+ {
237
+ $timeout = 3600; // 1 hour
238
+
239
+ if (isset($_SESSION['login_time']) && (time() - $_SESSION['login_time']) > $timeout) {
240
+ session_destroy();
241
+ return false;
242
+ }
243
+
244
+ $_SESSION['login_time'] = time(); // Refresh
245
+ return true;
246
+ }
247
+ ```
248
+
249
+ ---
250
+
251
+ ## Password Security
252
+
253
+ ### Password Hashing
254
+
255
+ **Rules:**
256
+ - Use `password_hash()` with bcrypt or argon2
257
+ - NEVER store passwords in plain text
258
+ - Use `password_verify()` for verification
259
+ - Rehash passwords when algorithm changes
260
+
261
+ **Examples:**
262
+ ```php
263
+ // ✅ Good - Hash password
264
+ $hashedPassword = password_hash($password, PASSWORD_ARGON2ID);
265
+
266
+ // ✅ Good - Verify password
267
+ if (password_verify($inputPassword, $user->password)) {
268
+ // Password correct
269
+
270
+ // Rehash if needed
271
+ if (password_needs_rehash($user->password, PASSWORD_ARGON2ID)) {
272
+ $user->password = password_hash($inputPassword, PASSWORD_ARGON2ID);
273
+ $user->save();
274
+ }
275
+ }
276
+
277
+ // ❌ CRITICAL VULNERABILITY
278
+ $password = md5($password); // Weak hashing!
279
+ $password = sha1($password); // Still weak!
280
+ ```
281
+
282
+ ---
283
+
284
+ ## File Upload Security
285
+
286
+ ### Validate Uploads
287
+
288
+ **Rules:**
289
+ - Validate file type (MIME type and extension)
290
+ - Limit file size
291
+ - Store uploads outside web root
292
+ - Generate random filenames
293
+ - Scan for malware when possible
294
+
295
+ **Examples:**
296
+ ```php
297
+ // ✅ Good
298
+ function handleFileUpload(array $file): string
299
+ {
300
+ $allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
301
+ $maxSize = 5 * 1024 * 1024; // 5MB
302
+
303
+ if (!in_array($file['type'], $allowedTypes)) {
304
+ throw new ValidationException('Invalid file type');
305
+ }
306
+
307
+ if ($file['size'] > $maxSize) {
308
+ throw new ValidationException('File too large');
309
+ }
310
+
311
+ $extension = pathinfo($file['name'], PATHINFO_EXTENSION);
312
+ $filename = bin2hex(random_bytes(16)) . '.' . $extension;
313
+ $uploadPath = '/var/uploads/' . $filename; // Outside web root
314
+
315
+ if (!move_uploaded_file($file['tmp_name'], $uploadPath)) {
316
+ throw new RuntimeException('Upload failed');
317
+ }
318
+
319
+ return $filename;
320
+ }
321
+ ```
322
+
323
+ ---
324
+
325
+ ## Authentication and Authorization
326
+
327
+ ### Secure Authentication
328
+
329
+ **Rules:**
330
+ - Implement rate limiting for login attempts
331
+ - Use multi-factor authentication when possible
332
+ - Lock accounts after failed attempts
333
+ - Log authentication events
334
+
335
+ **Examples:**
336
+ ```php
337
+ // ✅ Good
338
+ function attemptLogin(string $email, string $password): bool
339
+ {
340
+ if ($this->isRateLimited($email)) {
341
+ throw new TooManyAttemptsException('Too many login attempts');
342
+ }
343
+
344
+ $user = User::where('email', $email)->first();
345
+
346
+ if (!$user || !password_verify($password, $user->password)) {
347
+ $this->incrementFailedAttempts($email);
348
+ $this->logger->warning('Failed login attempt', ['email' => $email]);
349
+ return false;
350
+ }
351
+
352
+ $this->clearFailedAttempts($email);
353
+ $this->logger->info('Successful login', ['user_id' => $user->id]);
354
+ loginUser($user);
355
+ return true;
356
+ }
357
+ ```
358
+