@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,612 @@
1
+ // ========================================
2
+ // VARIABLE DECLARATIONS
3
+ // ========================================
4
+
5
+ // ✅ GOOD: Use const for values that won't be reassigned
6
+ const API_URL = 'https://api.example.com';
7
+ const MAX_RETRIES = 3;
8
+ const user = { name: 'John', age: 30 };
9
+ const items = [1, 2, 3, 4, 5];
10
+
11
+ // ✅ GOOD: Use let for values that will be reassigned
12
+ let count = 0;
13
+ let status = 'pending';
14
+
15
+ // ❌ BAD: Never use var
16
+ // var x = 10;
17
+
18
+ // ========================================
19
+ // ARROW FUNCTIONS
20
+ // ========================================
21
+
22
+ // ✅ GOOD: Arrow functions for callbacks
23
+ const numbers = [1, 2, 3, 4, 5];
24
+ const doubled = numbers.map(n => n * 2);
25
+ const evens = numbers.filter(n => n % 2 === 0);
26
+ const sum = numbers.reduce((acc, n) => acc + n, 0);
27
+
28
+ // ✅ GOOD: Arrow function with multiple statements
29
+ const processUser = (user) => {
30
+ const fullName = `${user.firstName} ${user.lastName}`;
31
+ const age = calculateAge(user.birthDate);
32
+ return { fullName, age };
33
+ };
34
+
35
+ // ✅ GOOD: Traditional function for methods
36
+ const calculator = {
37
+ value: 0,
38
+ add(n) {
39
+ this.value += n;
40
+ return this;
41
+ },
42
+ multiply(n) {
43
+ this.value *= n;
44
+ return this;
45
+ }
46
+ };
47
+
48
+ // ========================================
49
+ // TEMPLATE LITERALS
50
+ // ========================================
51
+
52
+ // ✅ GOOD: Template literals for string interpolation
53
+ const name = 'Alice';
54
+ const age = 25;
55
+ const greeting = `Hello, ${name}! You are ${age} years old.`;
56
+
57
+ // ✅ GOOD: Multi-line strings
58
+ const html = `
59
+ <div class="card">
60
+ <h2>${name}</h2>
61
+ <p>Age: ${age}</p>
62
+ </div>
63
+ `;
64
+
65
+ // ✅ GOOD: Expression evaluation
66
+ const price = 19.99;
67
+ const quantity = 3;
68
+ const total = `Total: $${(price * quantity).toFixed(2)}`;
69
+
70
+ // ========================================
71
+ // DESTRUCTURING
72
+ // ========================================
73
+
74
+ // ✅ GOOD: Object destructuring
75
+ const userObj = { firstName: 'John', lastName: 'Doe', email: 'john@example.com' };
76
+ const { firstName, lastName, email } = userObj;
77
+
78
+ // ✅ GOOD: Destructuring with default values
79
+ const { theme = 'light', language = 'en' } = {};
80
+
81
+ // ✅ GOOD: Nested destructuring
82
+ const response = {
83
+ data: {
84
+ user: { id: 1, name: 'Alice' }
85
+ }
86
+ };
87
+ const { data: { user: { id, name } } } = response;
88
+
89
+ // ✅ GOOD: Array destructuring
90
+ const colors = ['red', 'green', 'blue'];
91
+ const [primary, secondary, tertiary] = colors;
92
+
93
+ // ✅ GOOD: Rest operator in destructuring
94
+ const [first, ...rest] = [1, 2, 3, 4, 5];
95
+ const { id: userId, ...userDetails } = { id: 1, name: 'Bob', age: 30 };
96
+
97
+ // ========================================
98
+ // SPREAD OPERATOR
99
+ // ========================================
100
+
101
+ // ✅ GOOD: Array spreading
102
+ const arr1 = [1, 2, 3];
103
+ const arr2 = [4, 5, 6];
104
+ const combined = [...arr1, ...arr2];
105
+
106
+ // ✅ GOOD: Object spreading
107
+ const defaults = { theme: 'light', fontSize: 14 };
108
+ const userPrefs = { fontSize: 16, language: 'en' };
109
+ const settings = { ...defaults, ...userPrefs };
110
+
111
+ // ✅ GOOD: Copying arrays/objects
112
+ const originalArray = [1, 2, 3];
113
+ const copiedArray = [...originalArray];
114
+
115
+ const originalObject = { a: 1, b: 2 };
116
+ const copiedObject = { ...originalObject };
117
+
118
+ // ========================================
119
+ // DEFAULT PARAMETERS
120
+ // ========================================
121
+
122
+ // ✅ GOOD: Default function parameters
123
+ function greet(name = 'Guest', greeting = 'Hello') {
124
+ return `${greeting}, ${name}!`;
125
+ }
126
+
127
+ // ✅ GOOD: Default with destructuring
128
+ function createUser({ name = 'Anonymous', role = 'user' } = {}) {
129
+ return { name, role, createdAt: new Date() };
130
+ }
131
+
132
+ // ========================================
133
+ // OPTIONAL CHAINING
134
+ // ========================================
135
+
136
+ // ✅ GOOD: Optional chaining for nested properties
137
+ const userData = { profile: { address: { city: 'New York' } } };
138
+ const city = userData?.profile?.address?.city;
139
+ const zipCode = userData?.profile?.address?.zipCode; // undefined, no error
140
+
141
+ // ✅ GOOD: Optional chaining with arrays
142
+ const firstItem = items?.[0];
143
+
144
+ // ✅ GOOD: Optional chaining with methods
145
+ const result = obj?.method?.();
146
+
147
+ // ========================================
148
+ // NULLISH COALESCING
149
+ // ========================================
150
+
151
+ // ✅ GOOD: Nullish coalescing operator (??)
152
+ const userInput = null;
153
+ const value = userInput ?? 'default value';
154
+
155
+ // ✅ GOOD: Difference from || operator
156
+ const count1 = 0;
157
+ const result1 = count1 || 10; // 10 (falsy)
158
+ const result2 = count1 ?? 10; // 0 (only null/undefined)
159
+
160
+ const emptyString = '';
161
+ const text1 = emptyString || 'default'; // 'default'
162
+ const text2 = emptyString ?? 'default'; // ''
163
+
164
+ // ========================================
165
+ // ES6 MODULES
166
+ // ========================================
167
+
168
+ // ✅ GOOD: Named exports
169
+ export const API_KEY = 'abc123';
170
+ export function fetchData(url) {
171
+ return fetch(url).then(res => res.json());
172
+ }
173
+
174
+ export class UserService {
175
+ constructor(apiUrl) {
176
+ this.apiUrl = apiUrl;
177
+ }
178
+
179
+ async getUser(id) {
180
+ const response = await fetch(`${this.apiUrl}/users/${id}`);
181
+ return response.json();
182
+ }
183
+ }
184
+
185
+ // ✅ GOOD: Default export
186
+ export default class App {
187
+ constructor() {
188
+ this.init();
189
+ }
190
+
191
+ init() {
192
+ console.log('App initialized');
193
+ }
194
+ }
195
+
196
+ // ✅ GOOD: Importing
197
+ // import App from './App.js';
198
+ // import { fetchData, UserService } from './services.js';
199
+ // import * as utils from './utils.js';
200
+
201
+ // ========================================
202
+ // ASYNC/AWAIT PATTERNS
203
+ // ========================================
204
+
205
+ // ✅ GOOD: Async function with error handling
206
+ async function fetchUserData(userId) {
207
+ try {
208
+ const response = await fetch(`${API_URL}/users/${userId}`);
209
+
210
+ if (!response.ok) {
211
+ throw new Error(`HTTP error! status: ${response.status}`);
212
+ }
213
+
214
+ const data = await response.json();
215
+ return data;
216
+ } catch (error) {
217
+ console.error('Failed to fetch user:', error);
218
+ throw error;
219
+ }
220
+ }
221
+
222
+ // ✅ GOOD: Promise.all for parallel requests
223
+ async function fetchMultipleUsers(userIds) {
224
+ try {
225
+ const promises = userIds.map(id => fetchUserData(id));
226
+ const users = await Promise.all(promises);
227
+ return users;
228
+ } catch (error) {
229
+ console.error('Failed to fetch users:', error);
230
+ throw error;
231
+ }
232
+ }
233
+
234
+ // ✅ GOOD: Async arrow function
235
+ const loadData = async () => {
236
+ const data = await fetchUserData(1);
237
+ return data;
238
+ };
239
+
240
+ // ========================================
241
+ // ARRAY METHODS
242
+ // ========================================
243
+
244
+ const products = [
245
+ { id: 1, name: 'Laptop', price: 999, category: 'electronics' },
246
+ { id: 2, name: 'Mouse', price: 29, category: 'electronics' },
247
+ { id: 3, name: 'Desk', price: 299, category: 'furniture' }
248
+ ];
249
+
250
+ // ✅ GOOD: map - transform array
251
+ const productNames = products.map(p => p.name);
252
+
253
+ // ✅ GOOD: filter - select items
254
+ const electronics = products.filter(p => p.category === 'electronics');
255
+ const affordable = products.filter(p => p.price < 100);
256
+
257
+ // ✅ GOOD: find - get first match
258
+ const laptop = products.find(p => p.name === 'Laptop');
259
+
260
+ // ✅ GOOD: reduce - aggregate values
261
+ const totalPrice = products.reduce((sum, p) => sum + p.price, 0);
262
+
263
+ // ✅ GOOD: some - check if any match
264
+ const hasExpensive = products.some(p => p.price > 500);
265
+
266
+ // ✅ GOOD: every - check if all match
267
+ const allAffordable = products.every(p => p.price < 1000);
268
+
269
+ // ✅ GOOD: Method chaining
270
+ const expensiveElectronics = products
271
+ .filter(p => p.category === 'electronics')
272
+ .filter(p => p.price > 50)
273
+ .map(p => p.name);
274
+
275
+ // ========================================
276
+ // OBJECT METHODS
277
+ // ========================================
278
+
279
+ const userProfile = {
280
+ id: 1,
281
+ name: 'Alice',
282
+ email: 'alice@example.com',
283
+ role: 'admin'
284
+ };
285
+
286
+ // ✅ GOOD: Object.keys, Object.values, Object.entries
287
+ const keys = Object.keys(userProfile);
288
+ const values = Object.values(userProfile);
289
+ const entries = Object.entries(userProfile);
290
+
291
+ // ✅ GOOD: Object.assign for merging
292
+ const updated = Object.assign({}, userProfile, { role: 'superadmin' });
293
+
294
+ // ✅ GOOD: Object.fromEntries
295
+ const pairs = [['a', 1], ['b', 2]];
296
+ const obj = Object.fromEntries(pairs);
297
+
298
+ // ========================================
299
+ // DOM MANIPULATION
300
+ // ========================================
301
+
302
+ // ✅ GOOD: querySelector for single element
303
+ const header = document.querySelector('.header');
304
+ const submitBtn = document.querySelector('#submit-btn');
305
+
306
+ // ✅ GOOD: querySelectorAll for multiple elements
307
+ const cards = document.querySelectorAll('.card');
308
+ const inputs = document.querySelectorAll('input[type="text"]');
309
+
310
+ // ✅ GOOD: Event listeners with arrow functions
311
+ submitBtn?.addEventListener('click', (event) => {
312
+ event.preventDefault();
313
+ console.log('Form submitted');
314
+ });
315
+
316
+ // ✅ GOOD: Event delegation
317
+ document.querySelector('.card-container')?.addEventListener('click', (event) => {
318
+ if (event.target.matches('.card__button')) {
319
+ const cardId = event.target.dataset.cardId;
320
+ console.log(`Card ${cardId} clicked`);
321
+ }
322
+ });
323
+
324
+ // ✅ GOOD: Creating elements
325
+ function createCard(title, content) {
326
+ const card = document.createElement('div');
327
+ card.className = 'card';
328
+
329
+ const cardHeader = document.createElement('div');
330
+ cardHeader.className = 'card__header';
331
+ cardHeader.textContent = title;
332
+
333
+ const cardBody = document.createElement('div');
334
+ cardBody.className = 'card__body';
335
+ cardBody.textContent = content;
336
+
337
+ card.appendChild(cardHeader);
338
+ card.appendChild(cardBody);
339
+
340
+ return card;
341
+ }
342
+
343
+ // ✅ GOOD: Using data attributes
344
+ const element = document.querySelector('[data-user-id="123"]');
345
+ const userId = element?.dataset.userId;
346
+
347
+ // ========================================
348
+ // ERROR HANDLING
349
+ // ========================================
350
+
351
+ // ✅ GOOD: Try-catch for synchronous code
352
+ function parseJSON(jsonString) {
353
+ try {
354
+ return JSON.parse(jsonString);
355
+ } catch (error) {
356
+ console.error('Invalid JSON:', error.message);
357
+ return null;
358
+ }
359
+ }
360
+
361
+ // ✅ GOOD: Custom error classes
362
+ class ValidationError extends Error {
363
+ constructor(message, field) {
364
+ super(message);
365
+ this.name = 'ValidationError';
366
+ this.field = field;
367
+ }
368
+ }
369
+
370
+ function validateEmail(email) {
371
+ if (!email.includes('@')) {
372
+ throw new ValidationError('Invalid email format', 'email');
373
+ }
374
+ return true;
375
+ }
376
+
377
+ // ========================================
378
+ // ES6 CLASSES
379
+ // ========================================
380
+
381
+ // ✅ GOOD: Class with constructor and methods
382
+ class User {
383
+ constructor(name, email) {
384
+ this.name = name;
385
+ this.email = email;
386
+ this.createdAt = new Date();
387
+ }
388
+
389
+ getProfile() {
390
+ return {
391
+ name: this.name,
392
+ email: this.email,
393
+ memberSince: this.createdAt
394
+ };
395
+ }
396
+
397
+ updateEmail(newEmail) {
398
+ if (!newEmail.includes('@')) {
399
+ throw new ValidationError('Invalid email', 'email');
400
+ }
401
+ this.email = newEmail;
402
+ }
403
+ }
404
+
405
+ // ✅ GOOD: Class inheritance
406
+ class AdminUser extends User {
407
+ constructor(name, email, permissions) {
408
+ super(name, email);
409
+ this.permissions = permissions;
410
+ }
411
+
412
+ hasPermission(permission) {
413
+ return this.permissions.includes(permission);
414
+ }
415
+
416
+ getProfile() {
417
+ return {
418
+ ...super.getProfile(),
419
+ role: 'admin',
420
+ permissions: this.permissions
421
+ };
422
+ }
423
+ }
424
+
425
+ // ✅ GOOD: Static methods
426
+ class MathUtils {
427
+ static add(a, b) {
428
+ return a + b;
429
+ }
430
+
431
+ static multiply(a, b) {
432
+ return a * b;
433
+ }
434
+ }
435
+
436
+ // Usage: MathUtils.add(5, 3)
437
+
438
+ // ✅ GOOD: Private fields (modern JavaScript)
439
+ class BankAccount {
440
+ #balance = 0; // Private field
441
+
442
+ constructor(initialBalance) {
443
+ this.#balance = initialBalance;
444
+ }
445
+
446
+ deposit(amount) {
447
+ if (amount > 0) {
448
+ this.#balance += amount;
449
+ }
450
+ }
451
+
452
+ getBalance() {
453
+ return this.#balance;
454
+ }
455
+ }
456
+
457
+ // ========================================
458
+ // MODERN PATTERNS
459
+ // ========================================
460
+
461
+ // ✅ GOOD: Debounce function
462
+ function debounce(func, delay) {
463
+ let timeoutId;
464
+ return function (...args) {
465
+ clearTimeout(timeoutId);
466
+ timeoutId = setTimeout(() => func.apply(this, args), delay);
467
+ };
468
+ }
469
+
470
+ // Usage
471
+ const handleSearch = debounce((query) => {
472
+ console.log('Searching for:', query);
473
+ }, 300);
474
+
475
+ // ✅ GOOD: Throttle function
476
+ function throttle(func, limit) {
477
+ let inThrottle;
478
+ return function (...args) {
479
+ if (!inThrottle) {
480
+ func.apply(this, args);
481
+ inThrottle = true;
482
+ setTimeout(() => inThrottle = false, limit);
483
+ }
484
+ };
485
+ }
486
+
487
+ // ✅ GOOD: Memoization
488
+ function memoize(fn) {
489
+ const cache = new Map();
490
+ return function (...args) {
491
+ const key = JSON.stringify(args);
492
+ if (cache.has(key)) {
493
+ return cache.get(key);
494
+ }
495
+ const result = fn.apply(this, args);
496
+ cache.set(key, result);
497
+ return result;
498
+ };
499
+ }
500
+
501
+ // ✅ GOOD: Composition
502
+ const compose = (...fns) => x => fns.reduceRight((acc, fn) => fn(acc), x);
503
+
504
+ const addOne = x => x + 1;
505
+ const double = x => x * 2;
506
+ const square = x => x * x;
507
+
508
+ const transform = compose(square, double, addOne);
509
+ // transform(3) => square(double(addOne(3))) => square(double(4)) => square(8) => 64
510
+
511
+ // ========================================
512
+ // FETCH API EXAMPLES
513
+ // ========================================
514
+
515
+ // ✅ GOOD: GET request
516
+ async function getUsers() {
517
+ try {
518
+ const response = await fetch(`${API_URL}/users`);
519
+
520
+ if (!response.ok) {
521
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
522
+ }
523
+
524
+ const users = await response.json();
525
+ return users;
526
+ } catch (error) {
527
+ console.error('Failed to fetch users:', error);
528
+ throw error;
529
+ }
530
+ }
531
+
532
+ // ✅ GOOD: POST request
533
+ async function createUser(userData) {
534
+ try {
535
+ const response = await fetch(`${API_URL}/users`, {
536
+ method: 'POST',
537
+ headers: {
538
+ 'Content-Type': 'application/json',
539
+ },
540
+ body: JSON.stringify(userData)
541
+ });
542
+
543
+ if (!response.ok) {
544
+ throw new Error(`HTTP ${response.status}`);
545
+ }
546
+
547
+ const newUser = await response.json();
548
+ return newUser;
549
+ } catch (error) {
550
+ console.error('Failed to create user:', error);
551
+ throw error;
552
+ }
553
+ }
554
+
555
+ // ✅ GOOD: Request with timeout
556
+ async function fetchWithTimeout(url, timeout = 5000) {
557
+ const controller = new AbortController();
558
+ const timeoutId = setTimeout(() => controller.abort(), timeout);
559
+
560
+ try {
561
+ const response = await fetch(url, { signal: controller.signal });
562
+ clearTimeout(timeoutId);
563
+ return response;
564
+ } catch (error) {
565
+ if (error.name === 'AbortError') {
566
+ throw new Error('Request timeout');
567
+ }
568
+ throw error;
569
+ }
570
+ }
571
+
572
+ // ========================================
573
+ // UTILITY FUNCTIONS
574
+ // ========================================
575
+
576
+ // ✅ GOOD: Deep clone
577
+ function deepClone(obj) {
578
+ return JSON.parse(JSON.stringify(obj));
579
+ }
580
+
581
+ // ✅ GOOD: Check if object is empty
582
+ function isEmpty(obj) {
583
+ return Object.keys(obj).length === 0;
584
+ }
585
+
586
+ // ✅ GOOD: Capitalize first letter
587
+ function capitalize(str) {
588
+ return str.charAt(0).toUpperCase() + str.slice(1);
589
+ }
590
+
591
+ // ✅ GOOD: Generate unique ID
592
+ function generateId() {
593
+ return `${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
594
+ }
595
+
596
+ // ✅ GOOD: Format currency
597
+ function formatCurrency(amount, currency = 'USD') {
598
+ return new Intl.NumberFormat('en-US', {
599
+ style: 'currency',
600
+ currency
601
+ }).format(amount);
602
+ }
603
+
604
+ // ✅ GOOD: Format date
605
+ function formatDate(date, locale = 'en-US') {
606
+ return new Intl.DateTimeFormat(locale, {
607
+ year: 'numeric',
608
+ month: 'long',
609
+ day: 'numeric'
610
+ }).format(new Date(date));
611
+ }
612
+
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "js-standards",
3
+ "version": "1.0.0",
4
+ "displayName": "JavaScript Standards",
5
+ "description": "Comprehensive JavaScript coding standards for modern web development with ES6+, DOM manipulation, async patterns, and framework integration",
6
+ "type": "coding-standards",
7
+ "language": "javascript",
8
+ "tags": ["javascript", "js", "web", "frontend", "es6", "async", "dom"],
9
+ "dependencies": [],
10
+ "augment": {
11
+ "characterCount": 101818,
12
+ "priority": "high",
13
+ "category": "coding-standards",
14
+ "appliesTo": {
15
+ "filePatterns": [
16
+ "**/*.js",
17
+ "**/*.mjs",
18
+ "**/*.cjs"
19
+ ],
20
+ "projectTypes": [
21
+ "web",
22
+ "frontend",
23
+ "node"
24
+ ]
25
+ }
26
+ },
27
+ "installation": {
28
+ "required": false,
29
+ "steps": [
30
+ "Link module using: augx link coding-standards/js",
31
+ "Or manually copy contents to project's .augment/ folder"
32
+ ]
33
+ },
34
+ "contents": {
35
+ "rules": [
36
+ "javascript-standards.md",
37
+ "dom-manipulation.md",
38
+ "async-patterns.md",
39
+ "performance.md",
40
+ "tooling.md"
41
+ ],
42
+ "examples": [
43
+ "javascript-examples.js",
44
+ "async-examples.js",
45
+ "dom-examples.js"
46
+ ]
47
+ }
48
+ }
49
+