@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,482 @@
1
+ # PowerShell Cross-Platform Scripts
2
+
3
+ Best practices for cross-platform PowerShell development, OS-agnostic patterns, and path handling.
4
+
5
+ ## OS Detection
6
+
7
+ ### Detect Operating System
8
+
9
+ ```powershell
10
+ #Requires -Version 7.4
11
+
12
+ function Get-OperatingSystemInfo
13
+ {
14
+ [CmdletBinding()]
15
+ param()
16
+
17
+ $osInfo = [PSCustomObject]@{
18
+ IsWindows = $IsWindows
19
+ IsLinux = $IsLinux
20
+ IsMacOS = $IsMacOS
21
+ Platform = if ($IsWindows) { 'Windows' }
22
+ elseif ($IsLinux) { 'Linux' }
23
+ elseif ($IsMacOS) { 'macOS' }
24
+ else { 'Unknown' }
25
+ Version = [System.Environment]::OSVersion.Version
26
+ Architecture = [System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture
27
+ }
28
+
29
+ return $osInfo
30
+ }
31
+
32
+ # Usage
33
+ $os = Get-OperatingSystemInfo
34
+ Write-Output "Running on $($os.Platform) $($os.Architecture)"
35
+ ```
36
+
37
+ ### Platform-Specific Code
38
+
39
+ ```powershell
40
+ function Invoke-PlatformSpecificCommand
41
+ {
42
+ [CmdletBinding()]
43
+ param(
44
+ [Parameter(Mandatory)]
45
+ [string]$TaskName
46
+ )
47
+
48
+ switch ($true)
49
+ {
50
+ $IsWindows
51
+ {
52
+ Write-Verbose "Executing Windows-specific code for: $TaskName"
53
+ # Windows-specific implementation
54
+ Get-Service | Where-Object Status -eq 'Running'
55
+ }
56
+
57
+ $IsLinux
58
+ {
59
+ Write-Verbose "Executing Linux-specific code for: $TaskName"
60
+ # Linux-specific implementation
61
+ systemctl list-units --type=service --state=running
62
+ }
63
+
64
+ $IsMacOS
65
+ {
66
+ Write-Verbose "Executing macOS-specific code for: $TaskName"
67
+ # macOS-specific implementation
68
+ launchctl list | Where-Object { $_ -match 'Running' }
69
+ }
70
+
71
+ default
72
+ {
73
+ throw "Unsupported operating system"
74
+ }
75
+ }
76
+ }
77
+ ```
78
+
79
+ ## Path Handling
80
+
81
+ ### Cross-Platform Path Construction
82
+
83
+ ```powershell
84
+ # ✅ GOOD: Use Join-Path for cross-platform paths
85
+ function Get-ConfigFilePath
86
+ {
87
+ [CmdletBinding()]
88
+ param(
89
+ [Parameter()]
90
+ [string]$ConfigFileName = 'config.json'
91
+ )
92
+
93
+ # Get platform-specific config directory
94
+ $configDir = if ($IsWindows)
95
+ {
96
+ Join-Path $env:APPDATA 'MyApp'
97
+ }
98
+ elseif ($IsLinux)
99
+ {
100
+ Join-Path $env:HOME '.config/myapp'
101
+ }
102
+ elseif ($IsMacOS)
103
+ {
104
+ Join-Path $env:HOME 'Library/Application Support/MyApp'
105
+ }
106
+
107
+ # Ensure directory exists
108
+ if (-not (Test-Path $configDir))
109
+ {
110
+ New-Item -Path $configDir -ItemType Directory -Force | Out-Null
111
+ }
112
+
113
+ return Join-Path $configDir $ConfigFileName
114
+ }
115
+
116
+ # ❌ BAD: Hardcoded path separators
117
+ # $path = "C:\Users\$env:USERNAME\config.json" # Windows-only
118
+ # $path = "/home/$env:USER/config.json" # Linux-only
119
+ ```
120
+
121
+ ### Path Normalization
122
+
123
+ ```powershell
124
+ function ConvertTo-NormalizedPath
125
+ {
126
+ [CmdletBinding()]
127
+ param(
128
+ [Parameter(Mandatory, ValueFromPipeline)]
129
+ [string]$Path
130
+ )
131
+
132
+ process
133
+ {
134
+ # Convert to absolute path
135
+ $absolutePath = [System.IO.Path]::GetFullPath($Path)
136
+
137
+ # Normalize separators for current platform
138
+ $normalizedPath = $absolutePath -replace '[\\/]', [System.IO.Path]::DirectorySeparatorChar
139
+
140
+ return $normalizedPath
141
+ }
142
+ }
143
+
144
+ # Usage
145
+ $path = 'some/mixed\path/to\file.txt'
146
+ $normalized = ConvertTo-NormalizedPath -Path $path
147
+ ```
148
+
149
+ ### Temporary File Handling
150
+
151
+ ```powershell
152
+ function New-CrossPlatformTempFile
153
+ {
154
+ [CmdletBinding()]
155
+ param(
156
+ [Parameter()]
157
+ [string]$Prefix = 'temp',
158
+
159
+ [Parameter()]
160
+ [string]$Extension = '.tmp'
161
+ )
162
+
163
+ # Get platform-specific temp directory
164
+ $tempDir = [System.IO.Path]::GetTempPath()
165
+
166
+ # Generate unique filename
167
+ $fileName = "$Prefix-$(Get-Date -Format 'yyyyMMdd-HHmmss')-$([guid]::NewGuid().ToString('N').Substring(0,8))$Extension"
168
+
169
+ $tempFile = Join-Path $tempDir $fileName
170
+
171
+ # Create empty file
172
+ New-Item -Path $tempFile -ItemType File -Force | Out-Null
173
+
174
+ return $tempFile
175
+ }
176
+ ```
177
+
178
+ ## Environment Variables
179
+
180
+ ### Cross-Platform Environment Access
181
+
182
+ ```powershell
183
+ function Get-UserHomeDirectory
184
+ {
185
+ [CmdletBinding()]
186
+ param()
187
+
188
+ $homeDir = if ($IsWindows)
189
+ {
190
+ $env:USERPROFILE
191
+ }
192
+ else
193
+ {
194
+ $env:HOME
195
+ }
196
+
197
+ return $homeDir
198
+ }
199
+
200
+ function Get-PathSeparator
201
+ {
202
+ [CmdletBinding()]
203
+ param()
204
+
205
+ return if ($IsWindows) { ';' } else { ':' }
206
+ }
207
+
208
+ function Add-ToPathEnvironment
209
+ {
210
+ [CmdletBinding()]
211
+ param(
212
+ [Parameter(Mandatory)]
213
+ [string]$Directory,
214
+
215
+ [Parameter()]
216
+ [ValidateSet('User', 'Machine', 'Process')]
217
+ [string]$Scope = 'Process'
218
+ )
219
+
220
+ $separator = Get-PathSeparator
221
+ $currentPath = [Environment]::GetEnvironmentVariable('PATH', $Scope)
222
+
223
+ if ($currentPath -notlike "*$Directory*")
224
+ {
225
+ $newPath = "$currentPath$separator$Directory"
226
+ [Environment]::SetEnvironmentVariable('PATH', $newPath, $Scope)
227
+ Write-Verbose "Added $Directory to PATH ($Scope)"
228
+ }
229
+ }
230
+ ```
231
+
232
+ ## Line Endings
233
+
234
+ ### Handle Line Endings Correctly
235
+
236
+ ```powershell
237
+ function ConvertTo-PlatformLineEndings
238
+ {
239
+ [CmdletBinding()]
240
+ param(
241
+ [Parameter(Mandatory)]
242
+ [string]$FilePath,
243
+
244
+ [Parameter()]
245
+ [switch]$InPlace
246
+ )
247
+
248
+ $content = Get-Content -Path $FilePath -Raw
249
+
250
+ # Determine platform-specific line ending
251
+ $lineEnding = if ($IsWindows) { "`r`n" } else { "`n" }
252
+
253
+ # Normalize to platform line endings
254
+ $normalized = $content -replace '(\r\n|\r|\n)', $lineEnding
255
+
256
+ if ($InPlace)
257
+ {
258
+ Set-Content -Path $FilePath -Value $normalized -NoNewline
259
+ Write-Verbose "Updated line endings in: $FilePath"
260
+ }
261
+ else
262
+ {
263
+ return $normalized
264
+ }
265
+ }
266
+ ```
267
+
268
+ ## Process Management
269
+
270
+ ### Cross-Platform Process Execution
271
+
272
+ ```powershell
273
+ function Start-CrossPlatformProcess
274
+ {
275
+ [CmdletBinding()]
276
+ param(
277
+ [Parameter(Mandatory)]
278
+ [string]$Command,
279
+
280
+ [Parameter()]
281
+ [string[]]$Arguments = @(),
282
+
283
+ [Parameter()]
284
+ [string]$WorkingDirectory = (Get-Location).Path
285
+ )
286
+
287
+ try
288
+ {
289
+ $processInfo = @{
290
+ FilePath = $Command
291
+ ArgumentList = $Arguments
292
+ WorkingDirectory = $WorkingDirectory
293
+ NoNewWindow = $true
294
+ Wait = $true
295
+ PassThru = $true
296
+ ErrorAction = 'Stop'
297
+ }
298
+
299
+ # On non-Windows, may need to use full path
300
+ if (-not $IsWindows)
301
+ {
302
+ $commandPath = (Get-Command $Command -ErrorAction SilentlyContinue).Source
303
+ if ($commandPath)
304
+ {
305
+ $processInfo['FilePath'] = $commandPath
306
+ }
307
+ }
308
+
309
+ $process = Start-Process @processInfo
310
+
311
+ return [PSCustomObject]@{
312
+ ExitCode = $process.ExitCode
313
+ Success = $process.ExitCode -eq 0
314
+ }
315
+ }
316
+ catch
317
+ {
318
+ Write-Error "Failed to start process: $_"
319
+ throw
320
+ }
321
+ }
322
+ ```
323
+
324
+ ## File Permissions
325
+
326
+ ### Cross-Platform Permission Handling
327
+
328
+ ```powershell
329
+ function Set-CrossPlatformExecutable
330
+ {
331
+ [CmdletBinding()]
332
+ param(
333
+ [Parameter(Mandatory)]
334
+ [ValidateScript({ Test-Path $_ })]
335
+ [string]$FilePath
336
+ )
337
+
338
+ if ($IsWindows)
339
+ {
340
+ # Windows doesn't use execute permissions
341
+ Write-Verbose "Windows detected - no permission changes needed"
342
+ }
343
+ else
344
+ {
345
+ # Unix-like systems: set execute permission
346
+ try
347
+ {
348
+ chmod +x $FilePath
349
+ Write-Verbose "Set execute permission on: $FilePath"
350
+ }
351
+ catch
352
+ {
353
+ Write-Error "Failed to set execute permission: $_"
354
+ throw
355
+ }
356
+ }
357
+ }
358
+
359
+ function Test-FileExecutable
360
+ {
361
+ [CmdletBinding()]
362
+ param(
363
+ [Parameter(Mandatory)]
364
+ [string]$FilePath
365
+ )
366
+
367
+ if ($IsWindows)
368
+ {
369
+ # On Windows, check file extension
370
+ $extension = [System.IO.Path]::GetExtension($FilePath)
371
+ return $extension -in @('.exe', '.bat', '.cmd', '.ps1')
372
+ }
373
+ else
374
+ {
375
+ # On Unix-like, check execute permission
376
+ $fileInfo = Get-Item $FilePath
377
+ return $fileInfo.UnixMode -match 'x'
378
+ }
379
+ }
380
+ ```
381
+
382
+ ## Character Encoding
383
+
384
+ ### Handle Encoding Consistently
385
+
386
+ ```powershell
387
+ function Read-CrossPlatformTextFile
388
+ {
389
+ [CmdletBinding()]
390
+ param(
391
+ [Parameter(Mandatory)]
392
+ [string]$FilePath,
393
+
394
+ [Parameter()]
395
+ [System.Text.Encoding]$Encoding = [System.Text.Encoding]::UTF8
396
+ )
397
+
398
+ try
399
+ {
400
+ $content = Get-Content -Path $FilePath -Encoding $Encoding -Raw
401
+ return $content
402
+ }
403
+ catch
404
+ {
405
+ Write-Error "Failed to read file: $_"
406
+ throw
407
+ }
408
+ }
409
+
410
+ function Write-CrossPlatformTextFile
411
+ {
412
+ [CmdletBinding()]
413
+ param(
414
+ [Parameter(Mandatory)]
415
+ [string]$FilePath,
416
+
417
+ [Parameter(Mandatory)]
418
+ [string]$Content,
419
+
420
+ [Parameter()]
421
+ [System.Text.Encoding]$Encoding = [System.Text.Encoding]::UTF8
422
+ )
423
+
424
+ try
425
+ {
426
+ # Use UTF8 without BOM for cross-platform compatibility
427
+ $utf8NoBom = New-Object System.Text.UTF8Encoding $false
428
+ [System.IO.File]::WriteAllText($FilePath, $Content, $utf8NoBom)
429
+ Write-Verbose "Wrote file with UTF-8 (no BOM): $FilePath"
430
+ }
431
+ catch
432
+ {
433
+ Write-Error "Failed to write file: $_"
434
+ throw
435
+ }
436
+ }
437
+ ```
438
+
439
+ ## Testing Cross-Platform Code
440
+
441
+ ### Platform-Specific Tests
442
+
443
+ ```powershell
444
+ Describe 'Cross-Platform Functionality' {
445
+ Context 'Path Handling' {
446
+ It 'Should create platform-appropriate paths' {
447
+ $path = Get-ConfigFilePath
448
+ $path | Should -Not -BeNullOrEmpty
449
+ Test-Path (Split-Path $path) | Should -Be $true
450
+ }
451
+ }
452
+
453
+ Context 'OS Detection' {
454
+ It 'Should detect current OS' {
455
+ $os = Get-OperatingSystemInfo
456
+ $os.Platform | Should -BeIn @('Windows', 'Linux', 'macOS')
457
+ }
458
+ }
459
+
460
+ Context 'Platform-Specific Behavior' -Skip:(-not $IsLinux) {
461
+ It 'Should execute Linux-specific code' {
462
+ # Linux-only test
463
+ { Invoke-PlatformSpecificCommand -TaskName 'Test' } | Should -Not -Throw
464
+ }
465
+ }
466
+ }
467
+ ```
468
+
469
+ ## Best Practices
470
+
471
+ 1. **Use automatic variables** - $IsWindows, $IsLinux, $IsMacOS
472
+ 2. **Use Join-Path** - Never hardcode path separators
473
+ 3. **Normalize paths** - Convert to platform-appropriate format
474
+ 4. **Handle line endings** - Use platform-appropriate line endings
475
+ 5. **Use UTF-8 without BOM** - For maximum compatibility
476
+ 6. **Test on all platforms** - Use CI/CD for multi-platform testing
477
+ 7. **Avoid platform-specific cmdlets** - Or provide alternatives
478
+ 8. **Use [System.IO.Path]** - For path operations
479
+ 9. **Document platform requirements** - Clearly state limitations
480
+ 10. **Provide fallbacks** - Graceful degradation when features unavailable
481
+
482
+