@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,439 @@
1
+ # DOM Manipulation
2
+
3
+ ## Overview
4
+
5
+ This guide provides best practices for DOM queries, element manipulation, and event handling in vanilla JavaScript.
6
+
7
+ ---
8
+
9
+ ## DOM Queries
10
+
11
+ ### Use querySelector and querySelectorAll
12
+
13
+ **RECOMMENDED**: Prefer `querySelector` and `querySelectorAll` over older methods:
14
+
15
+ ```javascript
16
+ // ✅ GOOD: Modern selectors
17
+ const header = document.querySelector('.header');
18
+ const buttons = document.querySelectorAll('.btn');
19
+ const firstItem = document.querySelector('#list > li:first-child');
20
+
21
+ // ❌ BAD: Legacy methods
22
+ const header = document.getElementById('header');
23
+ const buttons = document.getElementsByClassName('btn');
24
+ const items = document.getElementsByTagName('li');
25
+ ```
26
+
27
+ **REASON**: `querySelector` uses CSS selectors and returns static NodeLists.
28
+
29
+ ### Cache DOM Queries
30
+
31
+ **RECOMMENDED**: Cache DOM queries when used multiple times:
32
+
33
+ ```javascript
34
+ // ✅ GOOD: Cache the query
35
+ const container = document.querySelector('.container');
36
+ container.classList.add('active');
37
+ container.setAttribute('data-loaded', 'true');
38
+ container.appendChild(newElement);
39
+
40
+ // ❌ BAD: Repeated queries
41
+ document.querySelector('.container').classList.add('active');
42
+ document.querySelector('.container').setAttribute('data-loaded', 'true');
43
+ document.querySelector('.container').appendChild(newElement);
44
+ ```
45
+
46
+ ### Use Data Attributes for JavaScript Hooks
47
+
48
+ **RECOMMENDED**: Use `data-js-*` attributes for JavaScript selectors:
49
+
50
+ ```html
51
+ <!-- HTML -->
52
+ <button class="btn btn-primary" data-js-submit>Submit</button>
53
+ <div class="modal" data-js-modal="user-settings"></div>
54
+ ```
55
+
56
+ ```javascript
57
+ // ✅ GOOD: Separation of concerns
58
+ const submitBtn = document.querySelector('[data-js-submit]');
59
+ const modal = document.querySelector('[data-js-modal="user-settings"]');
60
+
61
+ // ❌ BAD: Coupling with CSS classes
62
+ const submitBtn = document.querySelector('.btn-primary');
63
+ ```
64
+
65
+ **REASON**: Separates styling concerns from JavaScript behavior.
66
+
67
+ ---
68
+
69
+ ## Element Manipulation
70
+
71
+ ### Creating Elements
72
+
73
+ **RECOMMENDED**: Use `createElement` and set properties:
74
+
75
+ ```javascript
76
+ // ✅ GOOD: Create and configure
77
+ const button = document.createElement('button');
78
+ button.textContent = 'Click me';
79
+ button.className = 'btn btn-primary';
80
+ button.setAttribute('data-js-action', 'submit');
81
+
82
+ container.appendChild(button);
83
+
84
+ // ✅ ALSO GOOD: Template literals for complex HTML
85
+ const html = `
86
+ <div class="card">
87
+ <h2>${title}</h2>
88
+ <p>${description}</p>
89
+ </div>
90
+ `;
91
+ container.insertAdjacentHTML('beforeend', html);
92
+ ```
93
+
94
+ ### Modifying Elements
95
+
96
+ **RECOMMENDED**: Use modern DOM APIs:
97
+
98
+ ```javascript
99
+ // ✅ GOOD: classList API
100
+ element.classList.add('active');
101
+ element.classList.remove('hidden');
102
+ element.classList.toggle('expanded');
103
+ element.classList.contains('active'); // Check
104
+
105
+ // ❌ BAD: className manipulation
106
+ element.className += ' active';
107
+ element.className = element.className.replace('hidden', '');
108
+
109
+ // ✅ GOOD: dataset API
110
+ element.dataset.userId = '123';
111
+ element.dataset.status = 'active';
112
+ console.log(element.dataset.userId); // '123'
113
+
114
+ // ❌ BAD: setAttribute for data attributes
115
+ element.setAttribute('data-user-id', '123');
116
+ ```
117
+
118
+ ### Removing Elements
119
+
120
+ **RECOMMENDED**: Use `remove()` method:
121
+
122
+ ```javascript
123
+ // ✅ GOOD: Modern removal
124
+ element.remove();
125
+
126
+ // ❌ BAD: Legacy removal
127
+ element.parentNode.removeChild(element);
128
+ ```
129
+
130
+ ---
131
+
132
+ ## Event Handling
133
+
134
+ ### Use addEventListener
135
+
136
+ **REQUIRED**: Use `addEventListener` instead of inline handlers:
137
+
138
+ ```javascript
139
+ // ✅ GOOD: addEventListener
140
+ const button = document.querySelector('[data-js-submit]');
141
+ button.addEventListener('click', handleSubmit);
142
+
143
+ function handleSubmit(event) {
144
+ event.preventDefault();
145
+ // Handle click
146
+ }
147
+
148
+ // ❌ BAD: Inline handler
149
+ // <button onclick="handleSubmit()">Submit</button>
150
+
151
+ // ❌ BAD: Property assignment
152
+ button.onclick = handleSubmit;
153
+ ```
154
+
155
+ **REASON**: `addEventListener` allows multiple listeners and better control.
156
+
157
+ ### Event Delegation
158
+
159
+ **RECOMMENDED**: Use event delegation for dynamic elements:
160
+
161
+ ```javascript
162
+ // ✅ GOOD: Event delegation
163
+ const list = document.querySelector('.todo-list');
164
+
165
+ list.addEventListener('click', (event) => {
166
+ if (event.target.matches('[data-js-delete]')) {
167
+ const item = event.target.closest('.todo-item');
168
+ item.remove();
169
+ }
170
+ });
171
+
172
+ // ❌ BAD: Individual listeners (memory leak for dynamic items)
173
+ const deleteButtons = document.querySelectorAll('[data-js-delete]');
174
+ deleteButtons.forEach(button => {
175
+ button.addEventListener('click', handleDelete);
176
+ });
177
+ ```
178
+
179
+ **REASON**: Event delegation works for dynamically added elements and uses less memory.
180
+
181
+ ### Remove Event Listeners
182
+
183
+ **RECOMMENDED**: Remove event listeners when no longer needed:
184
+
185
+ ```javascript
186
+ // ✅ GOOD: Cleanup
187
+ function setupModal() {
188
+ const closeBtn = document.querySelector('[data-js-close]');
189
+
190
+ function handleClose() {
191
+ modal.classList.remove('open');
192
+ closeBtn.removeEventListener('click', handleClose);
193
+ }
194
+
195
+ closeBtn.addEventListener('click', handleClose);
196
+ }
197
+
198
+ // ✅ GOOD: AbortController for cleanup
199
+ const controller = new AbortController();
200
+
201
+ button.addEventListener('click', handleClick, {
202
+ signal: controller.signal
203
+ });
204
+
205
+ // Later: Remove all listeners
206
+ controller.abort();
207
+ ```
208
+
209
+ ### Passive Event Listeners
210
+
211
+ **RECOMMENDED**: Use passive listeners for scroll/touch events:
212
+
213
+ ```javascript
214
+ // ✅ GOOD: Passive listener (better performance)
215
+ document.addEventListener('scroll', handleScroll, { passive: true });
216
+ document.addEventListener('touchstart', handleTouch, { passive: true });
217
+
218
+ // ❌ BAD: Non-passive (can block scrolling)
219
+ document.addEventListener('scroll', handleScroll);
220
+ ```
221
+
222
+ **REASON**: Passive listeners improve scrolling performance by telling the browser you won't call `preventDefault()`.
223
+
224
+ ### Event Object
225
+
226
+ **RECOMMENDED**: Use event object properties:
227
+
228
+ ```javascript
229
+ // ✅ GOOD: Use event properties
230
+ button.addEventListener('click', (event) => {
231
+ event.preventDefault(); // Prevent default action
232
+ event.stopPropagation(); // Stop bubbling
233
+
234
+ const target = event.target; // Element that triggered event
235
+ const currentTarget = event.currentTarget; // Element with listener
236
+
237
+ console.log(event.type); // 'click'
238
+ console.log(event.key); // For keyboard events
239
+ });
240
+ ```
241
+
242
+ ---
243
+
244
+ ## DOM Traversal
245
+
246
+ ### Modern Traversal Methods
247
+
248
+ **RECOMMENDED**: Use modern traversal methods:
249
+
250
+ ```javascript
251
+ // ✅ GOOD: Modern methods
252
+ const parent = element.closest('.container');
253
+ const next = element.nextElementSibling;
254
+ const prev = element.previousElementSibling;
255
+ const children = element.children; // HTMLCollection
256
+ const firstChild = element.firstElementChild;
257
+ const lastChild = element.lastElementChild;
258
+
259
+ // ❌ BAD: Legacy methods (include text nodes)
260
+ const parent = element.parentNode;
261
+ const next = element.nextSibling;
262
+ const children = element.childNodes;
263
+ ```
264
+
265
+ ### Finding Elements
266
+
267
+ **RECOMMENDED**: Use `closest()` for ancestor lookup:
268
+
269
+ ```javascript
270
+ // ✅ GOOD: Find ancestor
271
+ button.addEventListener('click', (event) => {
272
+ const card = event.target.closest('.card');
273
+ const cardId = card.dataset.id;
274
+ });
275
+
276
+ // ❌ BAD: Manual traversal
277
+ let card = event.target;
278
+ while (card && !card.classList.contains('card')) {
279
+ card = card.parentElement;
280
+ }
281
+ ```
282
+
283
+ ---
284
+
285
+ ## Performance Best Practices
286
+
287
+ ### Batch DOM Updates
288
+
289
+ **RECOMMENDED**: Batch DOM updates to minimize reflows:
290
+
291
+ ```javascript
292
+ // ✅ GOOD: Batch updates
293
+ const fragment = document.createDocumentFragment();
294
+
295
+ items.forEach(item => {
296
+ const li = document.createElement('li');
297
+ li.textContent = item.name;
298
+ fragment.appendChild(li);
299
+ });
300
+
301
+ list.appendChild(fragment); // Single reflow
302
+
303
+ // ❌ BAD: Multiple reflows
304
+ items.forEach(item => {
305
+ const li = document.createElement('li');
306
+ li.textContent = item.name;
307
+ list.appendChild(li); // Reflow on each append
308
+ });
309
+ ```
310
+
311
+ ### Read Then Write
312
+
313
+ **RECOMMENDED**: Batch reads and writes separately:
314
+
315
+ ```javascript
316
+ // ✅ GOOD: Read all, then write all
317
+ const heights = elements.map(el => el.offsetHeight); // Read
318
+ elements.forEach((el, i) => {
319
+ el.style.height = `${heights[i] * 2}px`; // Write
320
+ });
321
+
322
+ // ❌ BAD: Interleaved reads and writes (causes layout thrashing)
323
+ elements.forEach(el => {
324
+ const height = el.offsetHeight; // Read (forces layout)
325
+ el.style.height = `${height * 2}px`; // Write
326
+ });
327
+ ```
328
+
329
+ ### Debounce Expensive Operations
330
+
331
+ **RECOMMENDED**: Debounce frequent events:
332
+
333
+ ```javascript
334
+ // ✅ GOOD: Debounce resize/scroll
335
+ function debounce(func, wait) {
336
+ let timeout;
337
+ return function executedFunction(...args) {
338
+ clearTimeout(timeout);
339
+ timeout = setTimeout(() => func(...args), wait);
340
+ };
341
+ }
342
+
343
+ const handleResize = debounce(() => {
344
+ // Expensive operation
345
+ recalculateLayout();
346
+ }, 250);
347
+
348
+ window.addEventListener('resize', handleResize);
349
+ ```
350
+
351
+ ---
352
+
353
+ ## Common Patterns
354
+
355
+ ### Toggle Visibility
356
+
357
+ ```javascript
358
+ // ✅ GOOD: Toggle with class
359
+ element.classList.toggle('hidden');
360
+
361
+ // CSS
362
+ .hidden {
363
+ display: none;
364
+ }
365
+ ```
366
+
367
+ ### Show/Hide Elements
368
+
369
+ ```javascript
370
+ // ✅ GOOD: Semantic classes
371
+ function showElement(element) {
372
+ element.classList.remove('hidden');
373
+ element.setAttribute('aria-hidden', 'false');
374
+ }
375
+
376
+ function hideElement(element) {
377
+ element.classList.add('hidden');
378
+ element.setAttribute('aria-hidden', 'true');
379
+ }
380
+ ```
381
+
382
+ ### Form Handling
383
+
384
+ ```javascript
385
+ // ✅ GOOD: Form submission
386
+ const form = document.querySelector('[data-js-form]');
387
+
388
+ form.addEventListener('submit', async (event) => {
389
+ event.preventDefault();
390
+
391
+ const formData = new FormData(form);
392
+ const data = Object.fromEntries(formData);
393
+
394
+ try {
395
+ await submitForm(data);
396
+ form.reset();
397
+ } catch (error) {
398
+ showError(error.message);
399
+ }
400
+ });
401
+ ```
402
+
403
+ ### Dynamic Content Loading
404
+
405
+ ```javascript
406
+ // ✅ GOOD: Load and insert content
407
+ async function loadContent(url, container) {
408
+ try {
409
+ const response = await fetch(url);
410
+ const html = await response.text();
411
+
412
+ container.innerHTML = html;
413
+
414
+ // Re-attach event listeners if needed
415
+ initializeEventListeners(container);
416
+ } catch (error) {
417
+ container.innerHTML = '<p>Error loading content</p>';
418
+ }
419
+ }
420
+ ```
421
+
422
+ ---
423
+
424
+ ## Summary
425
+
426
+ **Key Principles**:
427
+ 1. Use `querySelector`/`querySelectorAll` for DOM queries
428
+ 2. Cache DOM queries when used multiple times
429
+ 3. Use `data-js-*` attributes for JavaScript hooks
430
+ 4. Use `addEventListener` (never inline handlers)
431
+ 5. Use event delegation for dynamic elements
432
+ 6. Remove event listeners when no longer needed
433
+ 7. Use passive listeners for scroll/touch events
434
+ 8. Batch DOM updates to minimize reflows
435
+ 9. Use modern DOM APIs (`classList`, `dataset`, `closest`)
436
+ 10. Debounce expensive operations
437
+
438
+
439
+