@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,480 @@
1
+ # PHP API Development Best Practices
2
+
3
+ ## Overview
4
+
5
+ This guide provides best practices for developing RESTful APIs in PHP, including proper HTTP method usage, authentication, response formatting, versioning, and error handling.
6
+
7
+ ## RESTful Design Principles
8
+
9
+ ### HTTP Methods
10
+
11
+ Use HTTP methods semantically:
12
+
13
+ - **GET** - Retrieve resources (idempotent, safe)
14
+ - **POST** - Create new resources
15
+ - **PUT** - Replace entire resource
16
+ - **PATCH** - Partial update of resource
17
+ - **DELETE** - Remove resource
18
+
19
+ ```php
20
+ <?php
21
+
22
+ namespace App\Controllers\Api;
23
+
24
+ use App\Models\User;
25
+ use Illuminate\Http\JsonResponse;
26
+ use Illuminate\Http\Request;
27
+
28
+ class UserApiController
29
+ {
30
+ // GET /api/users - List all users
31
+ public function index(): JsonResponse
32
+ {
33
+ $users = User::paginate(20);
34
+
35
+ return response()->json([
36
+ 'data' => $users->items(),
37
+ 'meta' => [
38
+ 'current_page' => $users->currentPage(),
39
+ 'total' => $users->total(),
40
+ 'per_page' => $users->perPage()
41
+ ],
42
+ 'links' => [
43
+ 'self' => url('/api/users'),
44
+ 'next' => $users->nextPageUrl(),
45
+ 'prev' => $users->previousPageUrl()
46
+ ]
47
+ ]);
48
+ }
49
+
50
+ // GET /api/users/{id} - Get single user
51
+ public function show(int $id): JsonResponse
52
+ {
53
+ $user = User::findOrFail($id);
54
+
55
+ return response()->json([
56
+ 'data' => $user,
57
+ 'links' => [
58
+ 'self' => url("/api/users/{$id}"),
59
+ 'posts' => url("/api/users/{$id}/posts")
60
+ ]
61
+ ]);
62
+ }
63
+
64
+ // POST /api/users - Create new user
65
+ public function store(Request $request): JsonResponse
66
+ {
67
+ $validated = $request->validate([
68
+ 'name' => 'required|string|max:255',
69
+ 'email' => 'required|email|unique:users'
70
+ ]);
71
+
72
+ $user = User::create($validated);
73
+
74
+ return response()->json([
75
+ 'data' => $user,
76
+ 'message' => 'User created successfully'
77
+ ], 201);
78
+ }
79
+
80
+ // PUT /api/users/{id} - Replace entire user
81
+ public function update(Request $request, int $id): JsonResponse
82
+ {
83
+ $user = User::findOrFail($id);
84
+
85
+ $validated = $request->validate([
86
+ 'name' => 'required|string|max:255',
87
+ 'email' => 'required|email|unique:users,email,' . $id
88
+ ]);
89
+
90
+ $user->update($validated);
91
+
92
+ return response()->json([
93
+ 'data' => $user,
94
+ 'message' => 'User updated successfully'
95
+ ]);
96
+ }
97
+
98
+ // PATCH /api/users/{id} - Partial update
99
+ public function patch(Request $request, int $id): JsonResponse
100
+ {
101
+ $user = User::findOrFail($id);
102
+
103
+ $validated = $request->validate([
104
+ 'name' => 'sometimes|string|max:255',
105
+ 'email' => 'sometimes|email|unique:users,email,' . $id
106
+ ]);
107
+
108
+ $user->update($validated);
109
+
110
+ return response()->json([
111
+ 'data' => $user
112
+ ]);
113
+ }
114
+
115
+ // DELETE /api/users/{id} - Delete user
116
+ public function destroy(int $id): JsonResponse
117
+ {
118
+ $user = User::findOrFail($id);
119
+ $user->delete();
120
+
121
+ return response()->json([
122
+ 'message' => 'User deleted successfully'
123
+ ], 204);
124
+ }
125
+ }
126
+ ```
127
+
128
+ ### Resource Naming
129
+
130
+ **Use plural nouns** for resource names:
131
+
132
+ ```
133
+ ✅ Good:
134
+ GET /api/users
135
+ GET /api/users/123
136
+ GET /api/users/123/posts
137
+ POST /api/posts
138
+
139
+ ❌ Bad:
140
+ GET /api/getUsers
141
+ GET /api/user/123
142
+ POST /api/createPost
143
+ ```
144
+
145
+ ## API Versioning
146
+
147
+ ### URL-Based Versioning
148
+
149
+ ```php
150
+ <?php
151
+
152
+ // routes/api.php
153
+ Route::prefix('v1')->group(function () {
154
+ Route::apiResource('users', UserApiController::class);
155
+ Route::apiResource('posts', PostApiController::class);
156
+ });
157
+
158
+ Route::prefix('v2')->group(function () {
159
+ Route::apiResource('users', V2\UserApiController::class);
160
+ Route::apiResource('posts', V2\PostApiController::class);
161
+ });
162
+
163
+ // URLs:
164
+ // /api/v1/users
165
+ // /api/v2/users
166
+ ```
167
+
168
+ ### Header-Based Versioning
169
+
170
+ ```php
171
+ <?php
172
+
173
+ // Middleware to handle API versioning
174
+ class ApiVersion
175
+ {
176
+ public function handle(Request $request, Closure $next)
177
+ {
178
+ $version = $request->header('Accept-Version', 'v1');
179
+
180
+ $request->attributes->set('api_version', $version);
181
+
182
+ return $next($request);
183
+ }
184
+ }
185
+ ```
186
+
187
+ ## Authentication
188
+
189
+ ### JWT Authentication
190
+
191
+ ```php
192
+ <?php
193
+
194
+ use Firebase\JWT\JWT;
195
+ use Firebase\JWT\Key;
196
+
197
+ class JwtAuthController
198
+ {
199
+ public function login(Request $request): JsonResponse
200
+ {
201
+ $credentials = $request->validate([
202
+ 'email' => 'required|email',
203
+ 'password' => 'required'
204
+ ]);
205
+
206
+ if (!Auth::attempt($credentials)) {
207
+ return response()->json([
208
+ 'error' => 'Invalid credentials'
209
+ ], 401);
210
+ }
211
+
212
+ $user = Auth::user();
213
+ $token = $this->generateToken($user);
214
+
215
+ return response()->json([
216
+ 'access_token' => $token,
217
+ 'token_type' => 'Bearer',
218
+ 'expires_in' => 3600
219
+ ]);
220
+ }
221
+
222
+ private function generateToken(User $user): string
223
+ {
224
+ $payload = [
225
+ 'iss' => config('app.url'),
226
+ 'sub' => $user->id,
227
+ 'iat' => time(),
228
+ 'exp' => time() + 3600
229
+ ];
230
+
231
+ return JWT::encode($payload, config('jwt.secret'), 'HS256');
232
+ }
233
+ }
234
+ ```
235
+
236
+ ### API Token Authentication
237
+
238
+ ```php
239
+ <?php
240
+
241
+ // Middleware
242
+ class AuthenticateApiToken
243
+ {
244
+ public function handle(Request $request, Closure $next)
245
+ {
246
+ $token = $request->bearerToken();
247
+
248
+ if (!$token) {
249
+ return response()->json([
250
+ 'error' => 'Unauthorized'
251
+ ], 401);
252
+ }
253
+
254
+ $user = User::where('api_token', hash('sha256', $token))->first();
255
+
256
+ if (!$user) {
257
+ return response()->json([
258
+ 'error' => 'Invalid token'
259
+ ], 401);
260
+ }
261
+
262
+ Auth::setUser($user);
263
+
264
+ return $next($request);
265
+ }
266
+ }
267
+ ```
268
+
269
+ ## Response Formatting
270
+
271
+ ### Consistent Response Structure
272
+
273
+ ```php
274
+ <?php
275
+
276
+ namespace App\Http\Resources;
277
+
278
+ use Illuminate\Http\Resources\Json\JsonResource;
279
+
280
+ class UserResource extends JsonResource
281
+ {
282
+ public function toArray($request): array
283
+ {
284
+ return [
285
+ 'id' => $this->id,
286
+ 'name' => $this->name,
287
+ 'email' => $this->email,
288
+ 'created_at' => $this->created_at->toIso8601String(),
289
+ 'updated_at' => $this->updated_at->toIso8601String(),
290
+ 'links' => [
291
+ 'self' => url("/api/users/{$this->id}"),
292
+ 'posts' => url("/api/users/{$this->id}/posts")
293
+ ]
294
+ ];
295
+ }
296
+ }
297
+
298
+ // Usage in controller
299
+ public function show(int $id): JsonResponse
300
+ {
301
+ $user = User::findOrFail($id);
302
+ return new UserResource($user);
303
+ }
304
+ ```
305
+
306
+ ### HTTP Status Codes
307
+
308
+ Use appropriate status codes:
309
+
310
+ ```php
311
+ <?php
312
+
313
+ // Success responses
314
+ return response()->json($data, 200); // OK
315
+ return response()->json($data, 201); // Created
316
+ return response()->json(null, 204); // No Content
317
+
318
+ // Client error responses
319
+ return response()->json(['error' => 'Bad Request'], 400);
320
+ return response()->json(['error' => 'Unauthorized'], 401);
321
+ return response()->json(['error' => 'Forbidden'], 403);
322
+ return response()->json(['error' => 'Not Found'], 404);
323
+ return response()->json(['error' => 'Validation Failed'], 422);
324
+
325
+ // Server error responses
326
+ return response()->json(['error' => 'Internal Server Error'], 500);
327
+ return response()->json(['error' => 'Service Unavailable'], 503);
328
+ ```
329
+
330
+ ### Error Response Format
331
+
332
+ ```php
333
+ <?php
334
+
335
+ namespace App\Exceptions;
336
+
337
+ use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
338
+ use Illuminate\Validation\ValidationException;
339
+ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
340
+
341
+ class Handler extends ExceptionHandler
342
+ {
343
+ public function render($request, Throwable $exception)
344
+ {
345
+ if ($request->is('api/*')) {
346
+ return $this->handleApiException($request, $exception);
347
+ }
348
+
349
+ return parent::render($request, $exception);
350
+ }
351
+
352
+ private function handleApiException($request, Throwable $exception)
353
+ {
354
+ if ($exception instanceof ValidationException) {
355
+ return response()->json([
356
+ 'error' => 'Validation failed',
357
+ 'message' => $exception->getMessage(),
358
+ 'errors' => $exception->errors()
359
+ ], 422);
360
+ }
361
+
362
+ if ($exception instanceof NotFoundHttpException) {
363
+ return response()->json([
364
+ 'error' => 'Resource not found',
365
+ 'message' => 'The requested resource does not exist'
366
+ ], 404);
367
+ }
368
+
369
+ return response()->json([
370
+ 'error' => 'Server error',
371
+ 'message' => config('app.debug') ? $exception->getMessage() : 'An error occurred'
372
+ ], 500);
373
+ }
374
+ }
375
+ ```
376
+
377
+ ## Pagination
378
+
379
+ ### Implementing Pagination
380
+
381
+ ```php
382
+ <?php
383
+
384
+ public function index(Request $request): JsonResponse
385
+ {
386
+ $perPage = $request->input('per_page', 20);
387
+ $users = User::paginate($perPage);
388
+
389
+ return response()->json([
390
+ 'data' => UserResource::collection($users),
391
+ 'meta' => [
392
+ 'current_page' => $users->currentPage(),
393
+ 'from' => $users->firstItem(),
394
+ 'to' => $users->lastItem(),
395
+ 'total' => $users->total(),
396
+ 'per_page' => $users->perPage(),
397
+ 'last_page' => $users->lastPage()
398
+ ],
399
+ 'links' => [
400
+ 'first' => $users->url(1),
401
+ 'last' => $users->url($users->lastPage()),
402
+ 'prev' => $users->previousPageUrl(),
403
+ 'next' => $users->nextPageUrl()
404
+ ]
405
+ ]);
406
+ }
407
+ ```
408
+
409
+ ## Rate Limiting
410
+
411
+ ### Implementing Rate Limits
412
+
413
+ ```php
414
+ <?php
415
+
416
+ // routes/api.php
417
+ Route::middleware(['throttle:60,1'])->group(function () {
418
+ Route::apiResource('users', UserApiController::class);
419
+ });
420
+
421
+ // Custom rate limiter
422
+ use Illuminate\Cache\RateLimiting\Limit;
423
+ use Illuminate\Support\Facades\RateLimiter;
424
+
425
+ RateLimiter::for('api', function (Request $request) {
426
+ return Limit::perMinute(60)->by($request->user()?->id ?: $request->ip());
427
+ });
428
+
429
+ // Different limits for authenticated vs guest
430
+ RateLimiter::for('api', function (Request $request) {
431
+ return $request->user()
432
+ ? Limit::perMinute(100)->by($request->user()->id)
433
+ : Limit::perMinute(20)->by($request->ip());
434
+ });
435
+ ```
436
+
437
+ ## Best Practices
438
+
439
+ ### ✅ DO
440
+
441
+ - Use API resources for consistent response formatting
442
+ - Implement proper authentication (JWT, OAuth 2.0)
443
+ - Use rate limiting to prevent abuse
444
+ - Version your API from the start
445
+ - Return appropriate HTTP status codes
446
+ - Implement HATEOAS links in responses
447
+ - Use pagination for list endpoints
448
+ - Validate all input data
449
+ - Log API requests and errors
450
+ - Document your API (OpenAPI/Swagger)
451
+ - Use HTTPS in production
452
+ - Implement proper CORS configuration
453
+
454
+ ### ❌ DON'T
455
+
456
+ - Return HTML from API endpoints
457
+ - Use sessions for API authentication
458
+ - Expose internal error details in production
459
+ - Use GET requests for state-changing operations
460
+ - Return different response structures for same endpoint
461
+ - Ignore API versioning
462
+ - Allow unlimited requests (no rate limiting)
463
+ - Use verbs in endpoint URLs
464
+ - Return 200 OK for errors
465
+ - Expose sensitive data in responses
466
+
467
+ ## Security Checklist
468
+
469
+ - [ ] Authentication required for protected endpoints
470
+ - [ ] Rate limiting implemented
471
+ - [ ] Input validation on all endpoints
472
+ - [ ] HTTPS enforced
473
+ - [ ] CORS properly configured
474
+ - [ ] API tokens stored securely (hashed)
475
+ - [ ] Sensitive data not exposed in responses
476
+ - [ ] SQL injection prevention (prepared statements)
477
+ - [ ] XSS prevention (proper encoding)
478
+ - [ ] CSRF protection (for cookie-based auth)
479
+ - [ ] Request size limits enforced
480
+ - [ ] Proper error handling (no stack traces in production)