@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,197 @@
1
+ # PowerShell Universal Standards
2
+
3
+ Cross-cutting standards that apply to ALL PowerShell code regardless of project category.
4
+
5
+ ## Core Principles
6
+
7
+ ### 1. Readability First
8
+ - Code is read more often than written
9
+ - Optimize for maintainability over cleverness
10
+ - Use descriptive names over comments when possible
11
+
12
+ ### 2. Consistency
13
+ - Follow established patterns within the codebase
14
+ - Use consistent formatting and style
15
+ - Maintain consistent error handling approaches
16
+
17
+ ### 3. Explicit Over Implicit
18
+ - Prefer explicit parameter names
19
+ - Avoid positional parameters in scripts
20
+ - Use full cmdlet names in scripts (aliases OK in console)
21
+
22
+ ## Script Structure
23
+
24
+ ### Script Header Template
25
+
26
+ ```powershell
27
+ <#
28
+ .SYNOPSIS
29
+ Brief description of what the script does
30
+
31
+ .DESCRIPTION
32
+ Detailed description of functionality, requirements, and behavior
33
+
34
+ .PARAMETER ParameterName
35
+ Description of each parameter
36
+
37
+ .EXAMPLE
38
+ Example-Command -Parameter Value
39
+ Description of what this example does
40
+
41
+ .NOTES
42
+ Author: Your Name
43
+ Version: 1.0.0
44
+ Last Modified: 2026-01-30
45
+ Requires: PowerShell 7.4+
46
+
47
+ .LINK
48
+ https://docs.microsoft.com/powershell/
49
+ #>
50
+ ```
51
+
52
+ ### Strict Mode
53
+
54
+ **ALWAYS** enable strict mode at the beginning of scripts:
55
+
56
+ ```powershell
57
+ #Requires -Version 7.4
58
+ Set-StrictMode -Version Latest
59
+ $ErrorActionPreference = 'Stop'
60
+ ```
61
+
62
+ **Why:**
63
+ - Catches undefined variables
64
+ - Enforces best practices
65
+ - Prevents silent failures
66
+
67
+ ### Script Organization
68
+
69
+ ```powershell
70
+ #Requires -Version 7.4
71
+ Set-StrictMode -Version Latest
72
+
73
+ # 1. Script header (comment-based help)
74
+ # 2. Parameters
75
+ # 3. Functions (if any)
76
+ # 4. Main script logic
77
+ # 5. Cleanup (if needed)
78
+ ```
79
+
80
+ ## Code Style
81
+
82
+ ### Indentation
83
+ - **4 spaces** (not tabs)
84
+ - Consistent throughout file
85
+
86
+ ### Brace Style
87
+ Use **Allman style** (opening brace on new line):
88
+
89
+ ```powershell
90
+ # ✅ Correct
91
+ if ($condition)
92
+ {
93
+ Write-Output "True"
94
+ }
95
+
96
+ # ❌ Incorrect
97
+ if ($condition) {
98
+ Write-Output "True"
99
+ }
100
+ ```
101
+
102
+ ### Line Length
103
+ - **Maximum 120 characters** per line
104
+ - Break long lines at logical points
105
+ - Use splatting for long parameter lists
106
+
107
+ ```powershell
108
+ # ✅ Use splatting for readability
109
+ $params = @{
110
+ Path = 'C:\Logs\application.log'
111
+ Filter = '*.log'
112
+ Recurse = $true
113
+ ErrorAction = 'Stop'
114
+ }
115
+ Get-ChildItem @params
116
+ ```
117
+
118
+ ### Whitespace
119
+ - One blank line between functions
120
+ - No trailing whitespace
121
+ - Blank line at end of file
122
+
123
+ ## Comments
124
+
125
+ ### When to Comment
126
+
127
+ ✅ **DO comment:**
128
+ - Complex algorithms or business logic
129
+ - Non-obvious workarounds
130
+ - Regex patterns
131
+ - Magic numbers
132
+
133
+ ❌ **DON'T comment:**
134
+ - Obvious code
135
+ - What the code does (use descriptive names instead)
136
+ - Commented-out code (use version control)
137
+
138
+ ### Comment Style
139
+
140
+ ```powershell
141
+ # Single-line comment for brief explanations
142
+
143
+ <#
144
+ Multi-line comment for:
145
+ - Longer explanations
146
+ - Temporarily disabling code blocks
147
+ - Documentation
148
+ #>
149
+ ```
150
+
151
+ ## Output and Logging
152
+
153
+ ### Use Appropriate Streams
154
+
155
+ ```powershell
156
+ # Information (default output)
157
+ Write-Output "Processing complete"
158
+
159
+ # Verbose (detailed progress)
160
+ Write-Verbose "Processing file: $fileName" -Verbose:$VerbosePreference
161
+
162
+ # Warning (non-fatal issues)
163
+ Write-Warning "File not found, using default"
164
+
165
+ # Error (fatal issues)
166
+ Write-Error "Cannot proceed without required file"
167
+
168
+ # Debug (troubleshooting)
169
+ Write-Debug "Variable value: $myVar" -Debug:$DebugPreference
170
+ ```
171
+
172
+ ### Structured Logging
173
+
174
+ ```powershell
175
+ function Write-Log
176
+ {
177
+ [CmdletBinding()]
178
+ param(
179
+ [Parameter(Mandatory)]
180
+ [string]$Message,
181
+
182
+ [ValidateSet('Info', 'Warning', 'Error')]
183
+ [string]$Level = 'Info'
184
+ )
185
+
186
+ $timestamp = Get-Date -Format 'yyyy-MM-dd HH:mm:ss'
187
+ $logMessage = "[$timestamp] [$Level] $Message"
188
+
189
+ switch ($Level)
190
+ {
191
+ 'Info' { Write-Output $logMessage }
192
+ 'Warning' { Write-Warning $logMessage }
193
+ 'Error' { Write-Error $logMessage }
194
+ }
195
+ }
196
+ ```
197
+
@@ -8,10 +8,11 @@ This module provides detailed guidelines for writing clean, maintainable, and Py
8
8
 
9
9
  ## Key Benefits
10
10
 
11
- - **Type Safety**: Comprehensive type hints usage
11
+ - **Type Safety**: Comprehensive type hints usage with modern syntax (PEP 484, 585, 604)
12
12
  - **Error Handling**: Proper exception handling patterns
13
13
  - **Code Quality**: PEP 8 compliance and best practices
14
14
  - **Modern Python**: Python 3.10+ features and patterns
15
+ - **Mypy Integration**: Static type checking configuration
15
16
 
16
17
  ## Installation
17
18
 
@@ -23,22 +24,25 @@ augx link coding-standards/python
23
24
 
24
25
  ### Rules
25
26
 
26
- - **naming-conventions.md** - PEP 8 naming standards
27
- - **type-hints.md** - Type hints and type checking
27
+ - **naming-conventions.md** - PEP 8 naming standards (snake_case, UPPER_SNAKE_CASE, PascalCase, _private)
28
+ - **type-hints.md** - Modern type hints (PEP 484, 585, 604) with list[str], str | None, mypy
28
29
  - **error-handling.md** - Exception handling patterns
29
30
  - **best-practices.md** - General Python best practices
30
- - **code-organization.md** - Module and package structure
31
+ - **code-organization.md** - Import organization (stdlib, third-party, local), class structure, module layout
32
+ - **async-patterns.md** - Async/await patterns with asyncio
33
+ - **documentation.md** - Docstring standards and documentation best practices
34
+ - **testing.md** - pytest testing framework, fixtures, parametrization, mocking, coverage
35
+ - **tooling.md** - Black (formatter), mypy (type checker), Ruff (linter), pre-commit hooks, CI/CD
31
36
 
32
37
  ### Examples
33
38
 
34
- - **type-hints-examples.md** - Type hints usage examples
35
- - **error-handling-examples.md** - Exception handling examples
39
+ - **best-practices.py** - Comprehensive Python code examples demonstrating naming conventions, type hints, error handling, async patterns, dataclasses, enums, and modern Python features
36
40
 
37
41
  ## Character Count
38
42
 
39
- ~28,500 characters
43
+ ~116,868 characters
40
44
 
41
45
  ## Version
42
46
 
43
- 1.0.0
47
+ 1.1.0
44
48
 
@@ -0,0 +1,373 @@
1
+ """
2
+ Python Best Practices Examples
3
+
4
+ This module demonstrates Python coding best practices including:
5
+ - Naming conventions (PEP 8)
6
+ - Type hints (PEP 484, 585, 604)
7
+ - Error handling
8
+ - Async patterns
9
+ - Code organization
10
+ """
11
+
12
+ from __future__ import annotations
13
+
14
+ import asyncio
15
+ import logging
16
+ from collections.abc import Callable, Iterator
17
+ from contextlib import contextmanager
18
+ from dataclasses import dataclass
19
+ from enum import Enum
20
+ from pathlib import Path
21
+ from typing import Any, Protocol
22
+
23
+ # Configure logging
24
+ logger = logging.getLogger(__name__)
25
+
26
+
27
+ # ============================================================================
28
+ # NAMING CONVENTIONS (PEP 8)
29
+ # ============================================================================
30
+
31
+ # Constants: UPPER_SNAKE_CASE
32
+ MAX_RETRY_ATTEMPTS = 3
33
+ DEFAULT_TIMEOUT = 30
34
+ API_BASE_URL = "https://api.example.com"
35
+
36
+ # Classes: PascalCase
37
+ class UserAccount:
38
+ """Represents a user account"""
39
+ pass
40
+
41
+ class HTTPClient:
42
+ """HTTP client for API requests"""
43
+ pass
44
+
45
+ # Functions and variables: snake_case
46
+ def calculate_total_price(items: list[dict[str, Any]]) -> float:
47
+ """Calculate total price from list of items"""
48
+ return sum(item.get("price", 0.0) for item in items)
49
+
50
+ # Private attributes: _leading_underscore
51
+ class BankAccount:
52
+ def __init__(self, account_number: str, balance: float) -> None:
53
+ self.account_number = account_number
54
+ self._balance = balance # Private attribute
55
+
56
+ def get_balance(self) -> float:
57
+ """Public method to access private balance"""
58
+ return self._balance
59
+
60
+
61
+ # ============================================================================
62
+ # TYPE HINTS (PEP 484, 585, 604)
63
+ # ============================================================================
64
+
65
+ # Modern collection types (Python 3.10+, PEP 585)
66
+ def process_user_data(
67
+ users: list[dict[str, Any]]
68
+ ) -> dict[str, list[str]]:
69
+ """Process user data and return grouped by role"""
70
+ result: dict[str, list[str]] = {}
71
+ for user in users:
72
+ role = user.get("role", "unknown")
73
+ if role not in result:
74
+ result[role] = []
75
+ result[role].append(user["name"])
76
+ return result
77
+
78
+ # Union types with | operator (Python 3.10+, PEP 604)
79
+ def find_user(user_id: int) -> dict[str, Any] | None:
80
+ """Find user by ID, returns None if not found"""
81
+ # Simulated database lookup
82
+ return None
83
+
84
+ # Optional parameters with default values
85
+ def create_user(
86
+ username: str,
87
+ email: str,
88
+ age: int | None = None,
89
+ is_active: bool = True
90
+ ) -> dict[str, Any]:
91
+ """Create a new user with optional age"""
92
+ return {
93
+ "username": username,
94
+ "email": email,
95
+ "age": age,
96
+ "is_active": is_active
97
+ }
98
+
99
+ # Callable type hints
100
+ def apply_operation(
101
+ value: int,
102
+ operation: Callable[[int], int]
103
+ ) -> int:
104
+ """Apply an operation function to a value"""
105
+ return operation(value)
106
+
107
+ # Protocol for structural subtyping
108
+ class Drawable(Protocol):
109
+ """Protocol for objects that can be drawn"""
110
+ def draw(self) -> None:
111
+ """Draw the object"""
112
+ ...
113
+
114
+ def render(obj: Drawable) -> None:
115
+ """Render any drawable object"""
116
+ obj.draw()
117
+
118
+
119
+ # ============================================================================
120
+ # DATACLASSES
121
+ # ============================================================================
122
+
123
+ @dataclass
124
+ class User:
125
+ """User model using dataclass"""
126
+ username: str
127
+ email: str
128
+ age: int | None = None
129
+ is_active: bool = True
130
+
131
+ def __post_init__(self) -> None:
132
+ """Validate data after initialization"""
133
+ if not self.email or "@" not in self.email:
134
+ raise ValueError(f"Invalid email: {self.email}")
135
+ if self.age is not None and self.age < 0:
136
+ raise ValueError(f"Age cannot be negative: {self.age}")
137
+
138
+ @dataclass(frozen=True)
139
+ class Point:
140
+ """Immutable point using frozen dataclass"""
141
+ x: float
142
+ y: float
143
+
144
+ def distance_from_origin(self) -> float:
145
+ """Calculate distance from origin"""
146
+ return (self.x ** 2 + self.y ** 2) ** 0.5
147
+
148
+
149
+ # ============================================================================
150
+ # ENUMS
151
+ # ============================================================================
152
+
153
+ class UserRole(Enum):
154
+ """User role enumeration"""
155
+ ADMIN = "admin"
156
+ MODERATOR = "moderator"
157
+ USER = "user"
158
+ GUEST = "guest"
159
+
160
+
161
+ # ============================================================================
162
+ # ERROR HANDLING
163
+ # ============================================================================
164
+
165
+ class ValidationError(Exception):
166
+ """Custom exception for validation errors"""
167
+ pass
168
+
169
+ class UserNotFoundError(Exception):
170
+ """Custom exception for user not found"""
171
+ pass
172
+
173
+ def validate_email(email: str) -> None:
174
+ """Validate email format, raises ValidationError if invalid"""
175
+ if not email or "@" not in email:
176
+ raise ValidationError(f"Invalid email format: {email}")
177
+
178
+ def get_user_by_id(user_id: int) -> dict[str, Any]:
179
+ """Get user by ID with proper error handling"""
180
+ try:
181
+ # Simulated database call
182
+ user = find_user(user_id)
183
+ if user is None:
184
+ raise UserNotFoundError(f"User {user_id} not found")
185
+ return user
186
+ except UserNotFoundError:
187
+ logger.error(f"User {user_id} not found")
188
+ raise
189
+ except Exception as e:
190
+ logger.exception(f"Unexpected error fetching user {user_id}")
191
+ raise RuntimeError(f"Failed to fetch user: {e}") from e
192
+
193
+ # Context manager for resource management
194
+ @contextmanager
195
+ def open_database_connection(db_path: str) -> Iterator[Any]:
196
+ """Context manager for database connection"""
197
+ connection = None
198
+ try:
199
+ # Simulated connection
200
+ connection = f"Connection to {db_path}"
201
+ logger.info(f"Opened database connection: {db_path}")
202
+ yield connection
203
+ except Exception as e:
204
+ logger.error(f"Database error: {e}")
205
+ raise
206
+ finally:
207
+ if connection:
208
+ logger.info(f"Closed database connection: {db_path}")
209
+
210
+ # Using context manager
211
+ def query_database(db_path: str, query: str) -> list[dict[str, Any]]:
212
+ """Query database using context manager"""
213
+ with open_database_connection(db_path) as conn:
214
+ # Execute query
215
+ logger.info(f"Executing query: {query}")
216
+ return []
217
+
218
+
219
+ # ============================================================================
220
+ # ASYNC PATTERNS
221
+ # ============================================================================
222
+
223
+ async def fetch_user_async(user_id: int) -> dict[str, Any] | None:
224
+ """Async function to fetch user data"""
225
+ await asyncio.sleep(0.1) # Simulate network delay
226
+ return {"id": user_id, "name": f"User {user_id}"}
227
+
228
+ async def fetch_multiple_users(user_ids: list[int]) -> list[dict[str, Any]]:
229
+ """Fetch multiple users concurrently"""
230
+ tasks = [fetch_user_async(user_id) for user_id in user_ids]
231
+ results = await asyncio.gather(*tasks)
232
+ return [user for user in results if user is not None]
233
+
234
+ async def process_with_timeout(user_id: int, timeout: float = 5.0) -> dict[str, Any] | None:
235
+ """Process with timeout"""
236
+ try:
237
+ return await asyncio.wait_for(
238
+ fetch_user_async(user_id),
239
+ timeout=timeout
240
+ )
241
+ except asyncio.TimeoutError:
242
+ logger.warning(f"Timeout fetching user {user_id}")
243
+ return None
244
+
245
+
246
+ # ============================================================================
247
+ # CODE ORGANIZATION
248
+ # ============================================================================
249
+
250
+ class UserService:
251
+ """Service class for user operations"""
252
+
253
+ def __init__(self, db_path: str) -> None:
254
+ self._db_path = db_path
255
+ self._cache: dict[int, dict[str, Any]] = {}
256
+
257
+ def get_user(self, user_id: int) -> dict[str, Any] | None:
258
+ """Get user from cache or database"""
259
+ if user_id in self._cache:
260
+ return self._cache[user_id]
261
+
262
+ user = find_user(user_id)
263
+ if user:
264
+ self._cache[user_id] = user
265
+ return user
266
+
267
+ def create_user(self, username: str, email: str) -> dict[str, Any]:
268
+ """Create a new user"""
269
+ validate_email(email)
270
+ user = {
271
+ "id": len(self._cache) + 1,
272
+ "username": username,
273
+ "email": email
274
+ }
275
+ self._cache[user["id"]] = user
276
+ return user
277
+
278
+ def clear_cache(self) -> None:
279
+ """Clear the user cache"""
280
+ self._cache.clear()
281
+
282
+
283
+ # ============================================================================
284
+ # BEST PRACTICES EXAMPLES
285
+ # ============================================================================
286
+
287
+ # Use list comprehensions instead of loops
288
+ def get_active_users(users: list[dict[str, Any]]) -> list[dict[str, Any]]:
289
+ """Get all active users using list comprehension"""
290
+ return [user for user in users if user.get("is_active", False)]
291
+
292
+ # Use dict comprehensions
293
+ def create_user_lookup(users: list[dict[str, Any]]) -> dict[int, str]:
294
+ """Create user ID to name lookup using dict comprehension"""
295
+ return {user["id"]: user["name"] for user in users if "id" in user}
296
+
297
+ # Use enumerate instead of range(len())
298
+ def print_users_with_index(users: list[str]) -> None:
299
+ """Print users with index using enumerate"""
300
+ for index, user in enumerate(users, start=1):
301
+ print(f"{index}. {user}")
302
+
303
+ # Use zip for parallel iteration
304
+ def combine_data(names: list[str], ages: list[int]) -> list[dict[str, Any]]:
305
+ """Combine parallel lists using zip"""
306
+ return [{"name": name, "age": age} for name, age in zip(names, ages)]
307
+
308
+ # Use pathlib instead of os.path
309
+ def read_config_file(config_name: str) -> str:
310
+ """Read config file using pathlib"""
311
+ config_path = Path(__file__).parent / "config" / f"{config_name}.json"
312
+ if not config_path.exists():
313
+ raise FileNotFoundError(f"Config file not found: {config_path}")
314
+ return config_path.read_text()
315
+
316
+ # Use f-strings for formatting
317
+ def format_user_info(user: dict[str, Any]) -> str:
318
+ """Format user info using f-strings"""
319
+ name = user.get("name", "Unknown")
320
+ age = user.get("age", "N/A")
321
+ return f"User: {name}, Age: {age}"
322
+
323
+ # Use walrus operator for assignment in expressions (Python 3.8+)
324
+ def process_data(data: list[str]) -> list[str]:
325
+ """Process data using walrus operator"""
326
+ results = []
327
+ for item in data:
328
+ if (processed := item.strip().upper()):
329
+ results.append(processed)
330
+ return results
331
+
332
+ # Use match-case for pattern matching (Python 3.10+)
333
+ def handle_response(status_code: int) -> str:
334
+ """Handle HTTP response using match-case"""
335
+ match status_code:
336
+ case 200:
337
+ return "Success"
338
+ case 404:
339
+ return "Not Found"
340
+ case 500:
341
+ return "Server Error"
342
+ case _:
343
+ return f"Unknown status: {status_code}"
344
+
345
+
346
+ # ============================================================================
347
+ # MAIN EXECUTION
348
+ # ============================================================================
349
+
350
+ def main() -> None:
351
+ """Main function demonstrating best practices"""
352
+ # Create users
353
+ user1 = User(username="alice", email="alice@example.com", age=30)
354
+ user2 = User(username="bob", email="bob@example.com")
355
+
356
+ print(f"Created users: {user1}, {user2}")
357
+
358
+ # Use service
359
+ service = UserService(db_path="users.db")
360
+ new_user = service.create_user("charlie", "charlie@example.com")
361
+ print(f"Created user via service: {new_user}")
362
+
363
+ # Demonstrate async
364
+ async def run_async_example() -> None:
365
+ users = await fetch_multiple_users([1, 2, 3])
366
+ print(f"Fetched users: {users}")
367
+
368
+ asyncio.run(run_async_example())
369
+
370
+
371
+ if __name__ == "__main__":
372
+ main()
373
+
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "python-standards",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "displayName": "Python Coding Standards",
5
- "description": "Comprehensive Python coding standards including naming conventions, type hints, and error handling",
5
+ "description": "Comprehensive Python coding standards including naming conventions, type hints (PEP 484, 585, 604), and error handling",
6
6
  "type": "coding-standards",
7
7
  "author": "Augment Extensions",
8
8
  "license": "MIT",
9
9
  "augment": {
10
- "characterCount": 28500,
10
+ "characterCount": 116868,
11
11
  "priority": "medium",
12
12
  "category": "coding-standards"
13
13
  },
@@ -18,9 +18,13 @@
18
18
  "tags": [
19
19
  "python",
20
20
  "pep8",
21
+ "pep484",
22
+ "pep585",
23
+ "pep604",
21
24
  "type-hints",
22
25
  "error-handling",
23
- "best-practices"
26
+ "best-practices",
27
+ "mypy"
24
28
  ]
25
29
  }
26
30