@mytechtoday/augment-extensions 0.2.0 → 0.5.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 (420) 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/design/color/themes/catppuccin-latte/README.md +23 -0
  125. package/augment-extensions/domain-rules/design/color/themes/catppuccin-latte/module.json +26 -0
  126. package/augment-extensions/domain-rules/design/color/themes/catppuccin-mocha/README.md +23 -0
  127. package/augment-extensions/domain-rules/design/color/themes/catppuccin-mocha/module.json +26 -0
  128. package/augment-extensions/domain-rules/design/color/themes/dracula/README.md +23 -0
  129. package/augment-extensions/domain-rules/design/color/themes/dracula/module.json +26 -0
  130. package/augment-extensions/domain-rules/design/color/themes/gruvbox-dark/README.md +23 -0
  131. package/augment-extensions/domain-rules/design/color/themes/gruvbox-dark/module.json +26 -0
  132. package/augment-extensions/domain-rules/design/color/themes/gruvbox-light/README.md +23 -0
  133. package/augment-extensions/domain-rules/design/color/themes/gruvbox-light/module.json +26 -0
  134. package/augment-extensions/domain-rules/design/color/themes/high-contrast/README.md +27 -0
  135. package/augment-extensions/domain-rules/design/color/themes/high-contrast/module.json +26 -0
  136. package/augment-extensions/domain-rules/design/color/themes/monokai/README.md +23 -0
  137. package/augment-extensions/domain-rules/design/color/themes/monokai/module.json +26 -0
  138. package/augment-extensions/domain-rules/design/color/themes/nord/README.md +23 -0
  139. package/augment-extensions/domain-rules/design/color/themes/nord/module.json +26 -0
  140. package/augment-extensions/domain-rules/design/color/themes/one-dark/README.md +23 -0
  141. package/augment-extensions/domain-rules/design/color/themes/one-dark/module.json +26 -0
  142. package/augment-extensions/domain-rules/design/color/themes/one-light/README.md +23 -0
  143. package/augment-extensions/domain-rules/design/color/themes/one-light/module.json +26 -0
  144. package/augment-extensions/domain-rules/design/color/themes/solarized-dark/README.md +23 -0
  145. package/augment-extensions/domain-rules/design/color/themes/solarized-dark/module.json +26 -0
  146. package/augment-extensions/domain-rules/design/color/themes/solarized-light/README.md +23 -0
  147. package/augment-extensions/domain-rules/design/color/themes/solarized-light/module.json +26 -0
  148. package/augment-extensions/domain-rules/design/color/themes/tokyo-night/README.md +23 -0
  149. package/augment-extensions/domain-rules/design/color/themes/tokyo-night/module.json +26 -0
  150. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/README.md +136 -0
  151. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/SCHEMA-VALIDATION-REPORT.md +216 -0
  152. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/brand-kit-example.yaml +292 -0
  153. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/campaign-brief-example.yaml +389 -0
  154. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/content-calendar-example.yaml +643 -0
  155. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/email-newsletter-example.md +376 -0
  156. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/landing-page-example.md +934 -0
  157. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/ppc-ad-copy-example.md +301 -0
  158. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/seo-blog-post-example.md +347 -0
  159. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/social-media-campaign-example.md +606 -0
  160. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/module.json +50 -0
  161. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/affiliate-influencer-marketing.md +593 -0
  162. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/asset-management.md +418 -0
  163. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/brand-consistency.md +210 -0
  164. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/content-marketing.md +337 -0
  165. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/conversion-optimization.md +455 -0
  166. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/direct-sales.md +499 -0
  167. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/email-marketing.md +439 -0
  168. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/legal-compliance.md +227 -0
  169. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/ppc-advertising.md +569 -0
  170. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/seo-optimization.md +470 -0
  171. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/social-media-marketing.md +414 -0
  172. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/universal-marketing.md +177 -0
  173. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/schemas/asset-inventory.schema.json +247 -0
  174. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/schemas/brand-kit.schema.json +326 -0
  175. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/schemas/campaign-brief.schema.json +342 -0
  176. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/schemas/color-palette.schema.json +223 -0
  177. package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/schemas/content-template.schema.json +383 -0
  178. package/augment-extensions/domain-rules/mcp/README.md +150 -0
  179. package/augment-extensions/domain-rules/mcp/examples/compressed-example.md +522 -0
  180. package/augment-extensions/domain-rules/mcp/examples/graph-augmented-example.md +520 -0
  181. package/augment-extensions/domain-rules/mcp/examples/hybrid-example.md +570 -0
  182. package/augment-extensions/domain-rules/mcp/examples/state-based-example.md +427 -0
  183. package/augment-extensions/domain-rules/mcp/examples/token-based-example.md +435 -0
  184. package/augment-extensions/domain-rules/mcp/examples/vector-based-example.md +502 -0
  185. package/augment-extensions/domain-rules/mcp/module.json +49 -0
  186. package/augment-extensions/domain-rules/mcp/rules/compressed-mcp.md +595 -0
  187. package/augment-extensions/domain-rules/mcp/rules/configuration.md +345 -0
  188. package/augment-extensions/domain-rules/mcp/rules/graph-augmented-mcp.md +687 -0
  189. package/augment-extensions/domain-rules/mcp/rules/hybrid-mcp.md +636 -0
  190. package/augment-extensions/domain-rules/mcp/rules/state-based-mcp.md +484 -0
  191. package/augment-extensions/domain-rules/mcp/rules/testing-validation.md +360 -0
  192. package/augment-extensions/domain-rules/mcp/rules/token-based-mcp.md +393 -0
  193. package/augment-extensions/domain-rules/mcp/rules/universal-rules.md +194 -0
  194. package/augment-extensions/domain-rules/mcp/rules/vector-based-mcp.md +625 -0
  195. package/augment-extensions/workflows/beads/module.json +4 -3
  196. package/augment-extensions/workflows/beads-integration/IMPLEMENTATION-STATUS.md +145 -0
  197. package/augment-extensions/workflows/beads-integration/README.md +143 -0
  198. package/augment-extensions/workflows/beads-integration/config/defaults.json +32 -0
  199. package/augment-extensions/workflows/beads-integration/config/schema.json +140 -0
  200. package/augment-extensions/workflows/beads-integration/examples/basic-task-generation.md +293 -0
  201. package/augment-extensions/workflows/beads-integration/module.json +75 -0
  202. package/augment-extensions/workflows/beads-integration/rules/core-rules.md +219 -0
  203. package/augment-extensions/workflows/beads-integration/rules/effectiveness-standards.md +256 -0
  204. package/augment-extensions/workflows/beads-integration/rules/task-generation.md +607 -0
  205. package/augment-extensions/workflows/database/README.md +195 -0
  206. package/augment-extensions/workflows/database/ai-prompt-testing.md +295 -0
  207. package/augment-extensions/workflows/database/examples/migration-example.md +498 -0
  208. package/augment-extensions/workflows/database/examples/optimization-example.md +496 -0
  209. package/augment-extensions/workflows/database/examples/schema-design-example.md +444 -0
  210. package/augment-extensions/workflows/database/module.json +42 -0
  211. package/augment-extensions/workflows/database/rules/data-migration.md +249 -0
  212. package/augment-extensions/workflows/database/rules/documentation-standards.md +339 -0
  213. package/augment-extensions/workflows/database/rules/migration-workflow.md +352 -0
  214. package/augment-extensions/workflows/database/rules/optimization-workflow.md +435 -0
  215. package/augment-extensions/workflows/database/rules/schema-design-workflow.md +535 -0
  216. package/augment-extensions/workflows/database/rules/testing-patterns.md +305 -0
  217. package/augment-extensions/workflows/database/rules/workflow.md +458 -0
  218. package/augment-extensions/workflows/openspec/module.json +4 -3
  219. package/augment-extensions/writing-standards/screenplay/README.md +300 -0
  220. package/augment-extensions/writing-standards/screenplay/_templates/README.md +121 -0
  221. package/augment-extensions/writing-standards/screenplay/_templates/genre-template.md +153 -0
  222. package/augment-extensions/writing-standards/screenplay/_templates/style-template.md +243 -0
  223. package/augment-extensions/writing-standards/screenplay/_templates/theme-template.md +213 -0
  224. package/augment-extensions/writing-standards/screenplay/examples/aaa-hollywood-scene.fountain +164 -0
  225. package/augment-extensions/writing-standards/screenplay/examples/beat-sheet-example.yaml +95 -0
  226. package/augment-extensions/writing-standards/screenplay/examples/character-profile-example.yaml +116 -0
  227. package/augment-extensions/writing-standards/screenplay/examples/commercial-30sec.fountain +151 -0
  228. package/augment-extensions/writing-standards/screenplay/examples/independent-monologue.fountain +67 -0
  229. package/augment-extensions/writing-standards/screenplay/examples/news-segment.fountain +142 -0
  230. package/augment-extensions/writing-standards/screenplay/examples/plot-outline-example.yaml +184 -0
  231. package/augment-extensions/writing-standards/screenplay/examples/tv-episode-teaser.fountain +204 -0
  232. package/augment-extensions/writing-standards/screenplay/genres/README.md +181 -0
  233. package/augment-extensions/writing-standards/screenplay/genres/examples/.gitkeep +2 -0
  234. package/augment-extensions/writing-standards/screenplay/genres/module.json +70 -0
  235. package/augment-extensions/writing-standards/screenplay/genres/rules/.gitkeep +2 -0
  236. package/augment-extensions/writing-standards/screenplay/genres/rules/action.md +399 -0
  237. package/augment-extensions/writing-standards/screenplay/genres/rules/adventure.md +407 -0
  238. package/augment-extensions/writing-standards/screenplay/genres/rules/animation.md +293 -0
  239. package/augment-extensions/writing-standards/screenplay/genres/rules/biographical.md +293 -0
  240. package/augment-extensions/writing-standards/screenplay/genres/rules/comedy.md +401 -0
  241. package/augment-extensions/writing-standards/screenplay/genres/rules/documentary.md +293 -0
  242. package/augment-extensions/writing-standards/screenplay/genres/rules/drama.md +409 -0
  243. package/augment-extensions/writing-standards/screenplay/genres/rules/fantasy.md +293 -0
  244. package/augment-extensions/writing-standards/screenplay/genres/rules/historical.md +293 -0
  245. package/augment-extensions/writing-standards/screenplay/genres/rules/horror.md +268 -0
  246. package/augment-extensions/writing-standards/screenplay/genres/rules/musical.md +294 -0
  247. package/augment-extensions/writing-standards/screenplay/genres/rules/mystery.md +293 -0
  248. package/augment-extensions/writing-standards/screenplay/genres/rules/noir.md +294 -0
  249. package/augment-extensions/writing-standards/screenplay/genres/rules/romance.md +293 -0
  250. package/augment-extensions/writing-standards/screenplay/genres/rules/sci-fi.md +289 -0
  251. package/augment-extensions/writing-standards/screenplay/genres/rules/superhero.md +293 -0
  252. package/augment-extensions/writing-standards/screenplay/genres/rules/thriller.md +294 -0
  253. package/augment-extensions/writing-standards/screenplay/genres/rules/western.md +293 -0
  254. package/augment-extensions/writing-standards/screenplay/module.json +124 -0
  255. package/augment-extensions/writing-standards/screenplay/rules/aaa-hollywood-films.md +339 -0
  256. package/augment-extensions/writing-standards/screenplay/rules/ai-integration-testing.md +329 -0
  257. package/augment-extensions/writing-standards/screenplay/rules/character-development.md +169 -0
  258. package/augment-extensions/writing-standards/screenplay/rules/commercials.md +437 -0
  259. package/augment-extensions/writing-standards/screenplay/rules/dialogue-writing.md +263 -0
  260. package/augment-extensions/writing-standards/screenplay/rules/diversity-inclusion.md +261 -0
  261. package/augment-extensions/writing-standards/screenplay/rules/examples-guide.md +315 -0
  262. package/augment-extensions/writing-standards/screenplay/rules/formatting-validation.md +413 -0
  263. package/augment-extensions/writing-standards/screenplay/rules/fountain-format.md +372 -0
  264. package/augment-extensions/writing-standards/screenplay/rules/independent-films.md +374 -0
  265. package/augment-extensions/writing-standards/screenplay/rules/live-tv-productions.md +443 -0
  266. package/augment-extensions/writing-standards/screenplay/rules/narrative-structures.md +207 -0
  267. package/augment-extensions/writing-standards/screenplay/rules/news-broadcasts.md +444 -0
  268. package/augment-extensions/writing-standards/screenplay/rules/pacing-timing.md +331 -0
  269. package/augment-extensions/writing-standards/screenplay/rules/quality-review-checklist.md +334 -0
  270. package/augment-extensions/writing-standards/screenplay/rules/quick-reference.md +299 -0
  271. package/augment-extensions/writing-standards/screenplay/rules/screen-continuity.md +263 -0
  272. package/augment-extensions/writing-standards/screenplay/rules/streaming-content.md +412 -0
  273. package/augment-extensions/writing-standards/screenplay/rules/trope-management.md +370 -0
  274. package/augment-extensions/writing-standards/screenplay/rules/tv-series.md +374 -0
  275. package/augment-extensions/writing-standards/screenplay/rules/universal-formatting.md +339 -0
  276. package/augment-extensions/writing-standards/screenplay/rules/vscode-integration.md +277 -0
  277. package/augment-extensions/writing-standards/screenplay/rules/web-content.md +393 -0
  278. package/augment-extensions/writing-standards/screenplay/schemas/beat-sheet.json +332 -0
  279. package/augment-extensions/writing-standards/screenplay/schemas/character-profile.json +247 -0
  280. package/augment-extensions/writing-standards/screenplay/schemas/feature-selection.json +200 -0
  281. package/augment-extensions/writing-standards/screenplay/schemas/plot-outline.json +233 -0
  282. package/augment-extensions/writing-standards/screenplay/schemas/screenplay-config.json +245 -0
  283. package/augment-extensions/writing-standards/screenplay/schemas/trope-inventory.json +221 -0
  284. package/augment-extensions/writing-standards/screenplay/styles/README.md +159 -0
  285. package/augment-extensions/writing-standards/screenplay/styles/examples/.gitkeep +2 -0
  286. package/augment-extensions/writing-standards/screenplay/styles/examples/style-applications.md +1449 -0
  287. package/augment-extensions/writing-standards/screenplay/styles/module.json +64 -0
  288. package/augment-extensions/writing-standards/screenplay/styles/rules/.gitkeep +2 -0
  289. package/augment-extensions/writing-standards/screenplay/styles/rules/dialogue-centric.md +520 -0
  290. package/augment-extensions/writing-standards/screenplay/styles/rules/ensemble.md +499 -0
  291. package/augment-extensions/writing-standards/screenplay/styles/rules/epic.md +497 -0
  292. package/augment-extensions/writing-standards/screenplay/styles/rules/experimental.md +492 -0
  293. package/augment-extensions/writing-standards/screenplay/styles/rules/flashback.md +509 -0
  294. package/augment-extensions/writing-standards/screenplay/styles/rules/linear.md +490 -0
  295. package/augment-extensions/writing-standards/screenplay/styles/rules/minimalist.md +499 -0
  296. package/augment-extensions/writing-standards/screenplay/styles/rules/non-linear.md +501 -0
  297. package/augment-extensions/writing-standards/screenplay/styles/rules/poetic.md +499 -0
  298. package/augment-extensions/writing-standards/screenplay/styles/rules/realistic.md +498 -0
  299. package/augment-extensions/writing-standards/screenplay/styles/rules/satirical.md +499 -0
  300. package/augment-extensions/writing-standards/screenplay/styles/rules/surreal.md +508 -0
  301. package/augment-extensions/writing-standards/screenplay/styles/rules/voice-over.md +500 -0
  302. package/augment-extensions/writing-standards/screenplay/themes/README.md +158 -0
  303. package/augment-extensions/writing-standards/screenplay/themes/examples/.gitkeep +2 -0
  304. package/augment-extensions/writing-standards/screenplay/themes/examples/common-mistakes-and-fixes.md +643 -0
  305. package/augment-extensions/writing-standards/screenplay/themes/examples/complete-scene-example.md +311 -0
  306. package/augment-extensions/writing-standards/screenplay/themes/examples/individual-theme-examples.md +562 -0
  307. package/augment-extensions/writing-standards/screenplay/themes/examples/multi-theme-weaving.md +538 -0
  308. package/augment-extensions/writing-standards/screenplay/themes/examples/theme-application-guide.md +432 -0
  309. package/augment-extensions/writing-standards/screenplay/themes/examples/theme-integration-across-acts.md +637 -0
  310. package/augment-extensions/writing-standards/screenplay/themes/module.json +66 -0
  311. package/augment-extensions/writing-standards/screenplay/themes/rules/.gitkeep +2 -0
  312. package/augment-extensions/writing-standards/screenplay/themes/rules/ambition.md +458 -0
  313. package/augment-extensions/writing-standards/screenplay/themes/rules/betrayal.md +490 -0
  314. package/augment-extensions/writing-standards/screenplay/themes/rules/environment.md +458 -0
  315. package/augment-extensions/writing-standards/screenplay/themes/rules/fate.md +459 -0
  316. package/augment-extensions/writing-standards/screenplay/themes/rules/friendship.md +491 -0
  317. package/augment-extensions/writing-standards/screenplay/themes/rules/growth.md +491 -0
  318. package/augment-extensions/writing-standards/screenplay/themes/rules/identity.md +490 -0
  319. package/augment-extensions/writing-standards/screenplay/themes/rules/isolation.md +464 -0
  320. package/augment-extensions/writing-standards/screenplay/themes/rules/justice.md +461 -0
  321. package/augment-extensions/writing-standards/screenplay/themes/rules/love.md +489 -0
  322. package/augment-extensions/writing-standards/screenplay/themes/rules/power.md +494 -0
  323. package/augment-extensions/writing-standards/screenplay/themes/rules/redemption.md +483 -0
  324. package/augment-extensions/writing-standards/screenplay/themes/rules/revenge.md +489 -0
  325. package/augment-extensions/writing-standards/screenplay/themes/rules/survival.md +496 -0
  326. package/augment-extensions/writing-standards/screenplay/themes/rules/technology.md +463 -0
  327. package/cli/MODULES.md +302 -0
  328. package/cli/dist/cli.js +168 -10
  329. package/cli/dist/cli.js.map +1 -1
  330. package/cli/dist/commands/catalog.d.ts +13 -0
  331. package/cli/dist/commands/catalog.d.ts.map +1 -0
  332. package/cli/dist/commands/catalog.js +104 -0
  333. package/cli/dist/commands/catalog.js.map +1 -0
  334. package/cli/dist/commands/gui.d.ts +6 -0
  335. package/cli/dist/commands/gui.d.ts.map +1 -0
  336. package/cli/dist/commands/gui.js +211 -0
  337. package/cli/dist/commands/gui.js.map +1 -0
  338. package/cli/dist/commands/init.d.ts.map +1 -1
  339. package/cli/dist/commands/init.js +12 -0
  340. package/cli/dist/commands/init.js.map +1 -1
  341. package/cli/dist/commands/install-rules.d.ts +14 -0
  342. package/cli/dist/commands/install-rules.d.ts.map +1 -0
  343. package/cli/dist/commands/install-rules.js +127 -0
  344. package/cli/dist/commands/install-rules.js.map +1 -0
  345. package/cli/dist/commands/link.d.ts.map +1 -1
  346. package/cli/dist/commands/link.js +9 -11
  347. package/cli/dist/commands/link.js.map +1 -1
  348. package/cli/dist/commands/list.d.ts.map +1 -1
  349. package/cli/dist/commands/list.js +11 -28
  350. package/cli/dist/commands/list.js.map +1 -1
  351. package/cli/dist/commands/mcp.d.ts +48 -0
  352. package/cli/dist/commands/mcp.d.ts.map +1 -0
  353. package/cli/dist/commands/mcp.js +229 -0
  354. package/cli/dist/commands/mcp.js.map +1 -0
  355. package/cli/dist/commands/self-remove.d.ts +7 -0
  356. package/cli/dist/commands/self-remove.d.ts.map +1 -0
  357. package/cli/dist/commands/self-remove.js +179 -0
  358. package/cli/dist/commands/self-remove.js.map +1 -0
  359. package/cli/dist/commands/show.d.ts +19 -0
  360. package/cli/dist/commands/show.d.ts.map +1 -1
  361. package/cli/dist/commands/show.js +478 -63
  362. package/cli/dist/commands/show.js.map +1 -1
  363. package/cli/dist/commands/skill.d.ts +67 -0
  364. package/cli/dist/commands/skill.d.ts.map +1 -0
  365. package/cli/dist/commands/skill.js +513 -0
  366. package/cli/dist/commands/skill.js.map +1 -0
  367. package/cli/dist/commands/unlink.d.ts +6 -0
  368. package/cli/dist/commands/unlink.d.ts.map +1 -0
  369. package/cli/dist/commands/unlink.js +115 -0
  370. package/cli/dist/commands/unlink.js.map +1 -0
  371. package/cli/dist/commands/validate.d.ts +6 -0
  372. package/cli/dist/commands/validate.d.ts.map +1 -0
  373. package/cli/dist/commands/validate.js +159 -0
  374. package/cli/dist/commands/validate.js.map +1 -0
  375. package/cli/dist/types/gui.d.ts +62 -0
  376. package/cli/dist/types/gui.d.ts.map +1 -0
  377. package/cli/dist/types/gui.js +30 -0
  378. package/cli/dist/types/gui.js.map +1 -0
  379. package/cli/dist/utils/catalog-sync.d.ts +22 -0
  380. package/cli/dist/utils/catalog-sync.d.ts.map +1 -0
  381. package/cli/dist/utils/catalog-sync.js +157 -0
  382. package/cli/dist/utils/catalog-sync.js.map +1 -0
  383. package/cli/dist/utils/character-count.d.ts +56 -0
  384. package/cli/dist/utils/character-count.d.ts.map +1 -0
  385. package/cli/dist/utils/character-count.js +190 -0
  386. package/cli/dist/utils/character-count.js.map +1 -0
  387. package/cli/dist/utils/documentation-validator.d.ts +18 -0
  388. package/cli/dist/utils/documentation-validator.d.ts.map +1 -0
  389. package/cli/dist/utils/documentation-validator.js +233 -0
  390. package/cli/dist/utils/documentation-validator.js.map +1 -0
  391. package/cli/dist/utils/gui-helpers.d.ts +23 -0
  392. package/cli/dist/utils/gui-helpers.d.ts.map +1 -0
  393. package/cli/dist/utils/gui-helpers.js +159 -0
  394. package/cli/dist/utils/gui-helpers.js.map +1 -0
  395. package/cli/dist/utils/install-rules.d.ts +32 -0
  396. package/cli/dist/utils/install-rules.d.ts.map +1 -0
  397. package/cli/dist/utils/install-rules.js +375 -0
  398. package/cli/dist/utils/install-rules.js.map +1 -0
  399. package/cli/dist/utils/mcp-integration.d.ts +70 -0
  400. package/cli/dist/utils/mcp-integration.d.ts.map +1 -0
  401. package/cli/dist/utils/mcp-integration.js +292 -0
  402. package/cli/dist/utils/mcp-integration.js.map +1 -0
  403. package/cli/dist/utils/module-system.d.ts +232 -0
  404. package/cli/dist/utils/module-system.d.ts.map +1 -0
  405. package/cli/dist/utils/module-system.js +900 -0
  406. package/cli/dist/utils/module-system.js.map +1 -0
  407. package/cli/dist/utils/modules-catalog.d.ts +33 -0
  408. package/cli/dist/utils/modules-catalog.d.ts.map +1 -0
  409. package/cli/dist/utils/modules-catalog.js +163 -0
  410. package/cli/dist/utils/modules-catalog.js.map +1 -0
  411. package/cli/dist/utils/rule-install-hooks.d.ts +19 -0
  412. package/cli/dist/utils/rule-install-hooks.d.ts.map +1 -0
  413. package/cli/dist/utils/rule-install-hooks.js +224 -0
  414. package/cli/dist/utils/rule-install-hooks.js.map +1 -0
  415. package/cli/dist/utils/skill-system.d.ts +95 -0
  416. package/cli/dist/utils/skill-system.d.ts.map +1 -0
  417. package/cli/dist/utils/skill-system.js +313 -0
  418. package/cli/dist/utils/skill-system.js.map +1 -0
  419. package/modules.md +559 -105
  420. package/package.json +17 -6
@@ -0,0 +1,272 @@
1
+ <#
2
+ .SYNOPSIS
3
+ Administrative tools example demonstrating AD/Exchange management with efficient filtering.
4
+
5
+ .DESCRIPTION
6
+ Complete example showing:
7
+ - Active Directory user management with server-side filtering
8
+ - Bulk operations with error handling
9
+ - Audit logging and reporting
10
+ - Exchange mailbox management
11
+ - Progress reporting for long-running operations
12
+
13
+ .PARAMETER Action
14
+ Action to perform (AuditInactiveUsers, DisableInactiveUsers, ExportMailboxSizes)
15
+
16
+ .PARAMETER DaysInactive
17
+ Number of days to consider a user inactive
18
+
19
+ .PARAMETER OutputPath
20
+ Path for output reports
21
+
22
+ .EXAMPLE
23
+ .\admin-example.ps1 -Action AuditInactiveUsers -DaysInactive 90 -OutputPath C:\Reports
24
+ #>
25
+
26
+ #Requires -Version 7.4
27
+ #Requires -Modules ActiveDirectory
28
+
29
+ [CmdletBinding(SupportsShouldProcess)]
30
+ param(
31
+ [Parameter(Mandatory)]
32
+ [ValidateSet('AuditInactiveUsers', 'DisableInactiveUsers', 'ExportMailboxSizes')]
33
+ [string]$Action,
34
+
35
+ [Parameter()]
36
+ [ValidateRange(1, 365)]
37
+ [int]$DaysInactive = 90,
38
+
39
+ [Parameter()]
40
+ [ValidateScript({ Test-Path $_ -PathType Container })]
41
+ [string]$OutputPath = $PWD
42
+ )
43
+
44
+ Set-StrictMode -Version Latest
45
+ $ErrorActionPreference = 'Stop'
46
+
47
+ #region Helper Functions
48
+
49
+ function Write-AuditLog
50
+ {
51
+ [CmdletBinding()]
52
+ param(
53
+ [Parameter(Mandatory)]
54
+ [string]$Message,
55
+
56
+ [Parameter()]
57
+ [ValidateSet('Info', 'Warning', 'Error')]
58
+ [string]$Level = 'Info',
59
+
60
+ [Parameter()]
61
+ [string]$LogPath = (Join-Path $OutputPath "audit-$(Get-Date -Format 'yyyy-MM-dd').log")
62
+ )
63
+
64
+ $timestamp = Get-Date -Format 'yyyy-MM-dd HH:mm:ss'
65
+ $logEntry = "[$timestamp] [$Level] $Message"
66
+
67
+ Add-Content -Path $LogPath -Value $logEntry
68
+
69
+ switch ($Level)
70
+ {
71
+ 'Info' { Write-Verbose $Message }
72
+ 'Warning' { Write-Warning $Message }
73
+ 'Error' { Write-Error $Message }
74
+ }
75
+ }
76
+
77
+ #endregion
78
+
79
+ #region Active Directory Functions
80
+
81
+ function Get-InactiveADUsers
82
+ {
83
+ [CmdletBinding()]
84
+ param(
85
+ [Parameter(Mandatory)]
86
+ [int]$DaysInactive
87
+ )
88
+
89
+ Write-AuditLog "Searching for users inactive for $DaysInactive days"
90
+
91
+ $cutoffDate = (Get-Date).AddDays(-$DaysInactive)
92
+
93
+ # ✅ GOOD: Server-side filtering with -Filter parameter
94
+ $filterParams = @{
95
+ Filter = "LastLogonDate -lt '$cutoffDate' -and Enabled -eq 'True'"
96
+ Properties = @(
97
+ 'LastLogonDate'
98
+ 'EmailAddress'
99
+ 'Department'
100
+ 'Manager'
101
+ 'Created'
102
+ )
103
+ ErrorAction = 'Stop'
104
+ }
105
+
106
+ try
107
+ {
108
+ $users = Get-ADUser @filterParams
109
+ Write-AuditLog "Found $($users.Count) inactive users"
110
+
111
+ return $users | Select-Object `
112
+ Name,
113
+ SamAccountName,
114
+ EmailAddress,
115
+ Department,
116
+ LastLogonDate,
117
+ @{Name='DaysInactive'; Expression={ ((Get-Date) - $_.LastLogonDate).Days }},
118
+ Created
119
+ }
120
+ catch
121
+ {
122
+ Write-AuditLog "Failed to query AD users: $_" -Level Error
123
+ throw
124
+ }
125
+ }
126
+
127
+ function Disable-InactiveADUsersBulk
128
+ {
129
+ [CmdletBinding(SupportsShouldProcess)]
130
+ param(
131
+ [Parameter(Mandatory, ValueFromPipeline)]
132
+ [Microsoft.ActiveDirectory.Management.ADUser[]]$Users
133
+ )
134
+
135
+ begin
136
+ {
137
+ $successCount = 0
138
+ $failureCount = 0
139
+ $errors = [System.Collections.Generic.List[PSObject]]::new()
140
+ $totalUsers = @($Users).Count
141
+ $currentUser = 0
142
+ }
143
+
144
+ process
145
+ {
146
+ foreach ($user in $Users)
147
+ {
148
+ $currentUser++
149
+ $percentComplete = ($currentUser / $totalUsers) * 100
150
+
151
+ Write-Progress -Activity "Disabling Inactive Users" `
152
+ -Status "Processing $($user.SamAccountName)" `
153
+ -PercentComplete $percentComplete `
154
+ -CurrentOperation "$currentUser of $totalUsers"
155
+
156
+ if ($PSCmdlet.ShouldProcess($user.SamAccountName, 'Disable AD User'))
157
+ {
158
+ try
159
+ {
160
+ # Disable user and add description
161
+ $description = "Disabled on $(Get-Date -Format 'yyyy-MM-dd') - Inactive for $DaysInactive days"
162
+
163
+ Set-ADUser -Identity $user.SamAccountName `
164
+ -Enabled $false `
165
+ -Description $description `
166
+ -ErrorAction Stop
167
+
168
+ $successCount++
169
+ Write-AuditLog "Disabled user: $($user.SamAccountName)"
170
+ }
171
+ catch
172
+ {
173
+ $failureCount++
174
+ $errorObj = [PSCustomObject]@{
175
+ User = $user.SamAccountName
176
+ Error = $_.Exception.Message
177
+ Timestamp = Get-Date
178
+ }
179
+ $errors.Add($errorObj)
180
+ Write-AuditLog "Failed to disable $($user.SamAccountName): $_" -Level Warning
181
+ }
182
+ }
183
+ }
184
+ }
185
+
186
+ end
187
+ {
188
+ Write-Progress -Activity "Disabling Inactive Users" -Completed
189
+
190
+ $summary = "Bulk disable complete: $successCount succeeded, $failureCount failed"
191
+ Write-AuditLog $summary
192
+ Write-Host "`n$summary" -ForegroundColor $(if ($failureCount -eq 0) { 'Green' } else { 'Yellow' })
193
+
194
+ if ($errors.Count -gt 0)
195
+ {
196
+ $errorReport = Join-Path $OutputPath "disable-errors-$(Get-Date -Format 'yyyy-MM-dd-HHmmss').csv"
197
+ $errors | Export-Csv -Path $errorReport -NoTypeInformation
198
+ Write-Host "Error report saved to: $errorReport" -ForegroundColor Yellow
199
+ }
200
+ }
201
+ }
202
+
203
+ #endregion
204
+
205
+ #region Main Execution
206
+
207
+ try
208
+ {
209
+ Write-Host "Starting administrative action: $Action" -ForegroundColor Cyan
210
+ Write-AuditLog "Starting action: $Action with parameters: DaysInactive=$DaysInactive"
211
+
212
+ switch ($Action)
213
+ {
214
+ 'AuditInactiveUsers'
215
+ {
216
+ $inactiveUsers = Get-InactiveADUsers -DaysInactive $DaysInactive
217
+
218
+ if ($inactiveUsers.Count -gt 0)
219
+ {
220
+ $reportPath = Join-Path $OutputPath "inactive-users-$(Get-Date -Format 'yyyy-MM-dd-HHmmss').csv"
221
+ $inactiveUsers | Export-Csv -Path $reportPath -NoTypeInformation
222
+
223
+ Write-Host "`n✓ Found $($inactiveUsers.Count) inactive users" -ForegroundColor Green
224
+ Write-Host "Report saved to: $reportPath" -ForegroundColor Cyan
225
+
226
+ # Display summary
227
+ $inactiveUsers | Group-Object Department |
228
+ Select-Object Name, Count |
229
+ Sort-Object Count -Descending |
230
+ Format-Table -AutoSize
231
+ }
232
+ else
233
+ {
234
+ Write-Host "`n✓ No inactive users found" -ForegroundColor Green
235
+ }
236
+ }
237
+
238
+ 'DisableInactiveUsers'
239
+ {
240
+ $inactiveUsers = Get-InactiveADUsers -DaysInactive $DaysInactive
241
+
242
+ if ($inactiveUsers.Count -gt 0)
243
+ {
244
+ Write-Host "`nFound $($inactiveUsers.Count) inactive users to disable" -ForegroundColor Yellow
245
+ $inactiveUsers | Disable-InactiveADUsersBulk -WhatIf:$WhatIfPreference
246
+ }
247
+ else
248
+ {
249
+ Write-Host "`n✓ No inactive users to disable" -ForegroundColor Green
250
+ }
251
+ }
252
+
253
+ 'ExportMailboxSizes'
254
+ {
255
+ Write-Host "`nExporting mailbox sizes..." -ForegroundColor Cyan
256
+ Write-AuditLog "Mailbox size export not implemented in this example"
257
+ Write-Host "✓ This action would export mailbox sizes (not implemented)" -ForegroundColor Yellow
258
+ }
259
+ }
260
+
261
+ Write-AuditLog "Action completed successfully: $Action"
262
+ Write-Host "`n✓ Administrative action completed successfully" -ForegroundColor Green
263
+ }
264
+ catch
265
+ {
266
+ Write-AuditLog "Action failed: $_" -Level Error
267
+ Write-Host "`n✗ Administrative action failed: $_" -ForegroundColor Red
268
+ exit 1
269
+ }
270
+
271
+ #endregion
272
+
@@ -0,0 +1,173 @@
1
+ <#
2
+ .SYNOPSIS
3
+ Automated system maintenance script with comprehensive error handling and logging.
4
+
5
+ .DESCRIPTION
6
+ This script demonstrates PowerShell automation best practices including:
7
+ - Comment-based help
8
+ - Parameter validation
9
+ - Error handling with try/catch
10
+ - Logging and auditing
11
+ - Progress reporting
12
+ - Cleanup operations
13
+
14
+ .PARAMETER ComputerName
15
+ Target computer(s) for maintenance operations.
16
+
17
+ .PARAMETER LogPath
18
+ Path to log file. Defaults to script directory.
19
+
20
+ .PARAMETER SkipDiskCleanup
21
+ Skip disk cleanup operations.
22
+
23
+ .PARAMETER WhatIf
24
+ Show what would happen without making changes.
25
+
26
+ .EXAMPLE
27
+ .\automation-example.ps1 -ComputerName 'SERVER01'
28
+ Run maintenance on SERVER01 with default settings.
29
+
30
+ .EXAMPLE
31
+ .\automation-example.ps1 -ComputerName 'SERVER01','SERVER02' -SkipDiskCleanup -WhatIf
32
+ Preview maintenance on multiple servers without disk cleanup.
33
+
34
+ .NOTES
35
+ Author: PowerShell Standards Team
36
+ Version: 1.0.0
37
+ Requires: PowerShell 7.4+
38
+ #>
39
+
40
+ #Requires -Version 7.4
41
+ #Requires -RunAsAdministrator
42
+
43
+ [CmdletBinding(SupportsShouldProcess)]
44
+ param(
45
+ [Parameter(Mandatory, ValueFromPipeline)]
46
+ [ValidateNotNullOrEmpty()]
47
+ [string[]]$ComputerName,
48
+
49
+ [Parameter()]
50
+ [ValidateScript({ Test-Path (Split-Path $_) })]
51
+ [string]$LogPath = (Join-Path $PSScriptRoot 'maintenance.log'),
52
+
53
+ [Parameter()]
54
+ [switch]$SkipDiskCleanup
55
+ )
56
+
57
+ begin
58
+ {
59
+ # Initialize logging
60
+ function Write-Log
61
+ {
62
+ [CmdletBinding()]
63
+ param(
64
+ [Parameter(Mandatory)]
65
+ [ValidateSet('Info', 'Warning', 'Error', 'Success')]
66
+ [string]$Level,
67
+
68
+ [Parameter(Mandatory)]
69
+ [string]$Message
70
+ )
71
+
72
+ $timestamp = Get-Date -Format 'yyyy-MM-dd HH:mm:ss'
73
+ $logEntry = "[$timestamp] [$Level] $Message"
74
+
75
+ Add-Content -Path $LogPath -Value $logEntry
76
+
77
+ switch ($Level)
78
+ {
79
+ 'Info' { Write-Verbose $Message }
80
+ 'Warning' { Write-Warning $Message }
81
+ 'Error' { Write-Error $Message }
82
+ 'Success' { Write-Output $Message }
83
+ }
84
+ }
85
+
86
+ Write-Log -Level Info -Message "Starting maintenance script"
87
+ Write-Log -Level Info -Message "Target computers: $($ComputerName -join ', ')"
88
+
89
+ $totalComputers = $ComputerName.Count
90
+ $currentComputer = 0
91
+ }
92
+
93
+ process
94
+ {
95
+ foreach ($computer in $ComputerName)
96
+ {
97
+ $currentComputer++
98
+ $percentComplete = ($currentComputer / $totalComputers) * 100
99
+
100
+ Write-Progress -Activity "System Maintenance" `
101
+ -Status "Processing $computer" `
102
+ -PercentComplete $percentComplete `
103
+ -CurrentOperation "Computer $currentComputer of $totalComputers"
104
+
105
+ try
106
+ {
107
+ # Test connectivity
108
+ Write-Log -Level Info -Message "Testing connectivity to $computer"
109
+
110
+ if (-not (Test-Connection -ComputerName $computer -Count 1 -Quiet))
111
+ {
112
+ throw "Computer $computer is not reachable"
113
+ }
114
+
115
+ # Get system information
116
+ Write-Log -Level Info -Message "Gathering system information from $computer"
117
+
118
+ $session = New-CimSession -ComputerName $computer -ErrorAction Stop
119
+
120
+ try
121
+ {
122
+ $os = Get-CimInstance -CimSession $session -ClassName Win32_OperatingSystem
123
+ $disk = Get-CimInstance -CimSession $session -ClassName Win32_LogicalDisk -Filter "DeviceID='C:'"
124
+
125
+ Write-Log -Level Info -Message "$computer - OS: $($os.Caption), Free Space: $([math]::Round($disk.FreeSpace / 1GB, 2)) GB"
126
+
127
+ # Check disk space
128
+ $freeSpacePercent = ($disk.FreeSpace / $disk.Size) * 100
129
+
130
+ if ($freeSpacePercent -lt 10)
131
+ {
132
+ Write-Log -Level Warning -Message "$computer - Low disk space: $([math]::Round($freeSpacePercent, 2))%"
133
+
134
+ if (-not $SkipDiskCleanup)
135
+ {
136
+ if ($PSCmdlet.ShouldProcess($computer, "Clean temporary files"))
137
+ {
138
+ Write-Log -Level Info -Message "$computer - Starting disk cleanup"
139
+ # Disk cleanup logic here
140
+ Write-Log -Level Success -Message "$computer - Disk cleanup completed"
141
+ }
142
+ }
143
+ }
144
+
145
+ # Check for pending updates
146
+ Write-Log -Level Info -Message "$computer - Checking for pending updates"
147
+
148
+ # Update check logic here
149
+
150
+ Write-Log -Level Success -Message "$computer - Maintenance completed successfully"
151
+ }
152
+ finally
153
+ {
154
+ Remove-CimSession -CimSession $session
155
+ }
156
+ }
157
+ catch
158
+ {
159
+ Write-Log -Level Error -Message "$computer - Maintenance failed: $($_.Exception.Message)"
160
+
161
+ # Continue processing other computers
162
+ continue
163
+ }
164
+ }
165
+ }
166
+
167
+ end
168
+ {
169
+ Write-Progress -Activity "System Maintenance" -Completed
170
+ Write-Log -Level Info -Message "Maintenance script completed"
171
+ Write-Output "Log file: $LogPath"
172
+ }
173
+
@@ -0,0 +1,243 @@
1
+ <#
2
+ .SYNOPSIS
3
+ Azure/AWS cloud orchestration example demonstrating authentication and resource management.
4
+
5
+ .DESCRIPTION
6
+ Complete example showing:
7
+ - Azure authentication (Managed Identity, Service Principal)
8
+ - AWS authentication (IAM roles, profiles)
9
+ - Resource provisioning and management
10
+ - Error handling and logging
11
+ - Idempotent operations
12
+
13
+ .PARAMETER Environment
14
+ Target environment (Dev, Test, Prod)
15
+
16
+ .PARAMETER CloudProvider
17
+ Cloud provider to use (Azure, AWS)
18
+
19
+ .EXAMPLE
20
+ .\cloud-example.ps1 -Environment Dev -CloudProvider Azure
21
+ #>
22
+
23
+ #Requires -Version 7.4
24
+ #Requires -Modules Az.Accounts, Az.Resources
25
+
26
+ [CmdletBinding(SupportsShouldProcess)]
27
+ param(
28
+ [Parameter(Mandatory)]
29
+ [ValidateSet('Dev', 'Test', 'Prod')]
30
+ [string]$Environment,
31
+
32
+ [Parameter(Mandatory)]
33
+ [ValidateSet('Azure', 'AWS')]
34
+ [string]$CloudProvider
35
+ )
36
+
37
+ Set-StrictMode -Version Latest
38
+ $ErrorActionPreference = 'Stop'
39
+
40
+ #region Azure Functions
41
+
42
+ function Connect-AzureEnvironment
43
+ {
44
+ [CmdletBinding()]
45
+ param(
46
+ [Parameter(Mandatory)]
47
+ [string]$TenantId,
48
+
49
+ [Parameter()]
50
+ [switch]$UseManagedIdentity
51
+ )
52
+
53
+ try
54
+ {
55
+ if ($UseManagedIdentity)
56
+ {
57
+ Write-Verbose "Connecting to Azure using Managed Identity"
58
+ Connect-AzAccount -Identity -ErrorAction Stop
59
+ }
60
+ else
61
+ {
62
+ Write-Verbose "Connecting to Azure using Service Principal"
63
+ # In production, retrieve from Key Vault or secure storage
64
+ $credential = Get-Credential -Message "Enter Service Principal credentials"
65
+ $appId = Read-Host "Enter Application ID"
66
+
67
+ Connect-AzAccount -ServicePrincipal -TenantId $TenantId `
68
+ -Credential $credential -ApplicationId $appId -ErrorAction Stop
69
+ }
70
+
71
+ Write-Host "✓ Connected to Azure" -ForegroundColor Green
72
+ }
73
+ catch
74
+ {
75
+ Write-Error "Failed to connect to Azure: $_"
76
+ throw
77
+ }
78
+ }
79
+
80
+ function New-AzureResourceDeployment
81
+ {
82
+ [CmdletBinding(SupportsShouldProcess)]
83
+ param(
84
+ [Parameter(Mandatory)]
85
+ [string]$ResourceGroupName,
86
+
87
+ [Parameter(Mandatory)]
88
+ [string]$Location,
89
+
90
+ [Parameter()]
91
+ [hashtable]$Tags = @{}
92
+ )
93
+
94
+ if ($PSCmdlet.ShouldProcess($ResourceGroupName, 'Create/Update Resource Group'))
95
+ {
96
+ try
97
+ {
98
+ # Idempotent: Check if resource group exists
99
+ $rg = Get-AzResourceGroup -Name $ResourceGroupName -ErrorAction SilentlyContinue
100
+
101
+ if ($null -eq $rg)
102
+ {
103
+ Write-Verbose "Creating new resource group: $ResourceGroupName"
104
+ $rg = New-AzResourceGroup -Name $ResourceGroupName -Location $Location -Tag $Tags
105
+ Write-Host "✓ Created resource group: $ResourceGroupName" -ForegroundColor Green
106
+ }
107
+ else
108
+ {
109
+ Write-Verbose "Resource group already exists: $ResourceGroupName"
110
+ # Update tags if different
111
+ if ($Tags.Count -gt 0)
112
+ {
113
+ Set-AzResourceGroup -Name $ResourceGroupName -Tag $Tags | Out-Null
114
+ Write-Host "✓ Updated resource group tags" -ForegroundColor Green
115
+ }
116
+ }
117
+
118
+ return $rg
119
+ }
120
+ catch
121
+ {
122
+ Write-Error "Failed to create/update resource group: $_"
123
+ throw
124
+ }
125
+ }
126
+ }
127
+
128
+ #endregion
129
+
130
+ #region AWS Functions
131
+
132
+ function Connect-AWSEnvironment
133
+ {
134
+ [CmdletBinding()]
135
+ param(
136
+ [Parameter(Mandatory)]
137
+ [string]$ProfileName,
138
+
139
+ [Parameter(Mandatory)]
140
+ [string]$Region
141
+ )
142
+
143
+ try
144
+ {
145
+ # Set AWS credentials from profile
146
+ Set-AWSCredential -ProfileName $ProfileName -ErrorAction Stop
147
+ Set-DefaultAWSRegion -Region $Region -ErrorAction Stop
148
+
149
+ Write-Host "✓ Connected to AWS (Profile: $ProfileName, Region: $Region)" -ForegroundColor Green
150
+ }
151
+ catch
152
+ {
153
+ Write-Error "Failed to connect to AWS: $_"
154
+ throw
155
+ }
156
+ }
157
+
158
+ #endregion
159
+
160
+ #region Main Execution
161
+
162
+ try
163
+ {
164
+ Write-Host "Starting cloud orchestration for $CloudProvider ($Environment environment)" -ForegroundColor Cyan
165
+
166
+ # Environment-specific configuration
167
+ $config = @{
168
+ Dev = @{
169
+ Azure = @{
170
+ TenantId = '00000000-0000-0000-0000-000000000000'
171
+ Location = 'eastus'
172
+ ResourceGroupName = 'rg-dev-example'
173
+ }
174
+ AWS = @{
175
+ ProfileName = 'dev-profile'
176
+ Region = 'us-east-1'
177
+ }
178
+ }
179
+ Test = @{
180
+ Azure = @{
181
+ TenantId = '11111111-1111-1111-1111-111111111111'
182
+ Location = 'centralus'
183
+ ResourceGroupName = 'rg-test-example'
184
+ }
185
+ AWS = @{
186
+ ProfileName = 'test-profile'
187
+ Region = 'us-west-2'
188
+ }
189
+ }
190
+ Prod = @{
191
+ Azure = @{
192
+ TenantId = '22222222-2222-2222-2222-222222222222'
193
+ Location = 'westus'
194
+ ResourceGroupName = 'rg-prod-example'
195
+ }
196
+ AWS = @{
197
+ ProfileName = 'prod-profile'
198
+ Region = 'us-east-1'
199
+ }
200
+ }
201
+ }
202
+
203
+ $envConfig = $config[$Environment][$CloudProvider]
204
+
205
+ # Common tags
206
+ $tags = @{
207
+ Environment = $Environment
208
+ ManagedBy = 'PowerShell'
209
+ CreatedDate = (Get-Date -Format 'yyyy-MM-dd')
210
+ }
211
+
212
+ switch ($CloudProvider)
213
+ {
214
+ 'Azure'
215
+ {
216
+ Connect-AzureEnvironment -TenantId $envConfig.TenantId -UseManagedIdentity:$false
217
+
218
+ $deployment = New-AzureResourceDeployment `
219
+ -ResourceGroupName $envConfig.ResourceGroupName `
220
+ -Location $envConfig.Location `
221
+ -Tags $tags `
222
+ -WhatIf:$WhatIfPreference
223
+
224
+ Write-Host "`n✓ Azure deployment completed successfully" -ForegroundColor Green
225
+ }
226
+
227
+ 'AWS'
228
+ {
229
+ Connect-AWSEnvironment -ProfileName $envConfig.ProfileName -Region $envConfig.Region
230
+
231
+ # AWS resource creation would go here
232
+ Write-Host "`n✓ AWS deployment completed successfully" -ForegroundColor Green
233
+ }
234
+ }
235
+ }
236
+ catch
237
+ {
238
+ Write-Error "Cloud orchestration failed: $_"
239
+ exit 1
240
+ }
241
+
242
+ #endregion
243
+