@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,831 @@
1
+ # Python Documentation Standards
2
+
3
+ Comprehensive guide to writing clear, consistent Python documentation using docstrings.
4
+
5
+ ## Docstring Basics
6
+
7
+ ### PEP 257 Conventions
8
+
9
+ All public modules, classes, functions, and methods should have docstrings.
10
+
11
+ ```python
12
+ # Module docstring
13
+ """Module for user authentication.
14
+
15
+ This module provides functions and classes for authenticating users,
16
+ managing sessions, and handling permissions.
17
+ """
18
+
19
+ # Function docstring
20
+ def authenticate_user(username: str, password: str) -> bool:
21
+ """Authenticate user with username and password.
22
+
23
+ Args:
24
+ username: User's username
25
+ password: User's password
26
+
27
+ Returns:
28
+ True if authentication successful, False otherwise
29
+ """
30
+ pass
31
+
32
+ # Class docstring
33
+ class UserManager:
34
+ """Manage user accounts and authentication.
35
+
36
+ This class provides methods for creating, updating, and deleting
37
+ user accounts, as well as authenticating users.
38
+
39
+ Attributes:
40
+ db_connection: Database connection for user data
41
+ cache: Cache for frequently accessed user data
42
+ """
43
+ pass
44
+ ```
45
+
46
+ ### One-Line vs Multi-Line Docstrings
47
+
48
+ ```python
49
+ # One-line docstring - For simple, obvious functions
50
+ def get_user_id(username: str) -> int:
51
+ """Return user ID for given username."""
52
+ pass
53
+
54
+ # Multi-line docstring - For complex functions
55
+ def create_user(
56
+ username: str,
57
+ email: str,
58
+ password: str,
59
+ role: str = "user",
60
+ ) -> User:
61
+ """Create a new user account.
62
+
63
+ Creates a new user with the given credentials and role.
64
+ Validates email format and password strength before creation.
65
+
66
+ Args:
67
+ username: Unique username for the user
68
+ email: User's email address
69
+ password: User's password (will be hashed)
70
+ role: User role (default: "user")
71
+
72
+ Returns:
73
+ Created User object
74
+
75
+ Raises:
76
+ ValidationError: If email or password is invalid
77
+ DuplicateUserError: If username already exists
78
+ """
79
+ pass
80
+ ```
81
+
82
+ ## Google Style Docstrings
83
+
84
+ Google style is clean, readable, and widely used.
85
+
86
+ ### Function Documentation
87
+
88
+ ```python
89
+ def fetch_user_data(
90
+ user_id: int,
91
+ include_posts: bool = False,
92
+ max_posts: int = 10,
93
+ ) -> dict:
94
+ """Fetch user data from database.
95
+
96
+ Retrieves user information including profile data and optionally
97
+ recent posts. Uses caching to improve performance.
98
+
99
+ Args:
100
+ user_id: Unique identifier for the user
101
+ include_posts: Whether to include user's posts (default: False)
102
+ max_posts: Maximum number of posts to include (default: 10)
103
+
104
+ Returns:
105
+ Dictionary containing user data with keys:
106
+ - id: User ID
107
+ - username: User's username
108
+ - email: User's email
109
+ - posts: List of posts (if include_posts=True)
110
+
111
+ Raises:
112
+ UserNotFoundError: If user with given ID doesn't exist
113
+ DatabaseError: If database query fails
114
+
115
+ Example:
116
+ >>> user = fetch_user_data(123, include_posts=True)
117
+ >>> print(user['username'])
118
+ 'john_doe'
119
+ """
120
+ pass
121
+ ```
122
+
123
+ ### Class Documentation
124
+
125
+ ```python
126
+ class DatabaseConnection:
127
+ """Manage database connections with connection pooling.
128
+
129
+ This class provides a connection pool for database operations,
130
+ automatically handling connection lifecycle and retries.
131
+
132
+ Attributes:
133
+ host: Database host address
134
+ port: Database port number
135
+ database: Database name
136
+ pool_size: Maximum number of connections in pool
137
+
138
+ Example:
139
+ >>> db = DatabaseConnection("localhost", 5432, "mydb")
140
+ >>> with db.get_connection() as conn:
141
+ ... result = conn.execute("SELECT * FROM users")
142
+ """
143
+
144
+ def __init__(
145
+ self,
146
+ host: str,
147
+ port: int,
148
+ database: str,
149
+ pool_size: int = 10,
150
+ ):
151
+
152
+
153
+ ### Method Documentation
154
+
155
+ ```python
156
+ class UserRepository:
157
+ """Repository for user data operations."""
158
+
159
+ def find_by_email(self, email: str) -> Optional[User]:
160
+ """Find user by email address.
161
+
162
+ Args:
163
+ email: Email address to search for
164
+
165
+ Returns:
166
+ User object if found, None otherwise
167
+
168
+ Example:
169
+ >>> repo = UserRepository()
170
+ >>> user = repo.find_by_email("user@example.com")
171
+ """
172
+ pass
173
+
174
+ def create(
175
+ self,
176
+ username: str,
177
+ email: str,
178
+ password: str,
179
+ ) -> User:
180
+ """Create a new user.
181
+
182
+ Args:
183
+ username: Unique username
184
+ email: User's email address
185
+ password: User's password (will be hashed)
186
+
187
+ Returns:
188
+ Created User object
189
+
190
+ Raises:
191
+ ValidationError: If input validation fails
192
+ DuplicateUserError: If username or email already exists
193
+ """
194
+ pass
195
+
196
+ def update(self, user_id: int, **kwargs) -> User:
197
+ """Update user attributes.
198
+
199
+ Args:
200
+ user_id: ID of user to update
201
+ **kwargs: Attributes to update (username, email, etc.)
202
+
203
+ Returns:
204
+ Updated User object
205
+
206
+ Raises:
207
+ UserNotFoundError: If user doesn't exist
208
+ ValidationError: If update data is invalid
209
+
210
+ Note:
211
+ Only provided attributes will be updated. Password updates
212
+ require separate method for security reasons.
213
+ """
214
+ pass
215
+ ```
216
+
217
+ ### Property Documentation
218
+
219
+ ```python
220
+ class User:
221
+ """User account model."""
222
+
223
+ @property
224
+ def full_name(self) -> str:
225
+ """Return user's full name.
226
+
227
+ Returns:
228
+ Full name as "first_name last_name"
229
+ """
230
+ return f"{self.first_name} {self.last_name}"
231
+
232
+ @property
233
+ def is_active(self) -> bool:
234
+ """Check if user account is active.
235
+
236
+ Returns:
237
+ True if account is active and not suspended
238
+ """
239
+ return self.status == "active" and not self.suspended
240
+ ```
241
+
242
+ ## NumPy Style Docstrings
243
+
244
+ NumPy style uses more structured formatting, popular in scientific computing.
245
+
246
+ ### Function Documentation
247
+
248
+ ```python
249
+ def calculate_statistics(
250
+ data: np.ndarray,
251
+ axis: Optional[int] = None,
252
+ ddof: int = 0,
253
+ ) -> dict:
254
+ """Calculate statistical measures for data.
255
+
256
+ Computes mean, median, standard deviation, and variance
257
+ for the given data array.
258
+
259
+ Parameters
260
+ ----------
261
+ data : np.ndarray
262
+ Input data array
263
+ axis : int, optional
264
+ Axis along which to compute statistics (default: None)
265
+ If None, compute over flattened array
266
+ ddof : int, optional
267
+ Delta degrees of freedom for variance calculation (default: 0)
268
+
269
+ Returns
270
+ -------
271
+ dict
272
+ Dictionary containing:
273
+ - mean : float
274
+ Arithmetic mean
275
+ - median : float
276
+ Median value
277
+ - std : float
278
+ Standard deviation
279
+ - var : float
280
+ Variance
281
+
282
+ Raises
283
+ ------
284
+ ValueError
285
+ If data array is empty
286
+ TypeError
287
+ If data is not a numpy array
288
+
289
+ See Also
290
+ --------
291
+ numpy.mean : Compute arithmetic mean
292
+ numpy.std : Compute standard deviation
293
+
294
+ Notes
295
+ -----
296
+ Uses Welford's online algorithm for numerical stability.
297
+
298
+ Examples
299
+ --------
300
+ >>> data = np.array([1, 2, 3, 4, 5])
301
+ >>> stats = calculate_statistics(data)
302
+ >>> print(stats['mean'])
303
+ 3.0
304
+
305
+ >>> data_2d = np.array([[1, 2], [3, 4]])
306
+ >>> stats = calculate_statistics(data_2d, axis=0)
307
+ >>> print(stats['mean'])
308
+ [2. 3.]
309
+ """
310
+ pass
311
+ ```
312
+
313
+ ### Class Documentation
314
+
315
+ ```python
316
+ class LinearRegression:
317
+ """Linear regression model using least squares.
318
+
319
+ Fits a linear model with coefficients w = (w1, ..., wp)
320
+ to minimize the residual sum of squares between observed
321
+ targets and predicted targets.
322
+
323
+ Parameters
324
+ ----------
325
+ fit_intercept : bool, optional
326
+ Whether to calculate intercept (default: True)
327
+ normalize : bool, optional
328
+ Whether to normalize features (default: False)
329
+ copy_X : bool, optional
330
+ Whether to copy X (default: True)
331
+
332
+ Attributes
333
+ ----------
334
+ coef_ : np.ndarray of shape (n_features,)
335
+ Estimated coefficients for the linear regression
336
+ intercept_ : float
337
+ Independent term in linear model
338
+ rank_ : int
339
+ Rank of matrix X
340
+ singular_ : np.ndarray of shape (min(X, y),)
341
+ Singular values of X
342
+
343
+ Examples
344
+ --------
345
+ >>> X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])
346
+ >>> y = np.dot(X, np.array([1, 2])) + 3
347
+ >>> reg = LinearRegression().fit(X, y)
348
+ >>> reg.score(X, y)
349
+ 1.0
350
+ >>> reg.coef_
351
+ array([1., 2.])
352
+ >>> reg.intercept_
353
+ 3.0
354
+
355
+ Notes
356
+ -----
357
+ From the implementation point of view, this is just plain Ordinary
358
+ Least Squares (scipy.linalg.lstsq) wrapped as a predictor object.
359
+ """
360
+
361
+ def __init__(
362
+ self,
363
+ fit_intercept: bool = True,
364
+ normalize: bool = False,
365
+ copy_X: bool = True,
366
+ ):
367
+ """Initialize linear regression model.
368
+
369
+ Parameters
370
+ ----------
371
+ fit_intercept : bool, optional
372
+ Whether to calculate intercept (default: True)
373
+ normalize : bool, optional
374
+ Whether to normalize features (default: False)
375
+ copy_X : bool, optional
376
+ Whether to copy X (default: True)
377
+ """
378
+ pass
379
+ ```
380
+
381
+ ## Special Sections
382
+
383
+ ### Args/Parameters Section
384
+
385
+ ```python
386
+ def complex_function(
387
+ required_arg: str,
388
+ optional_arg: int = 10,
389
+ *args: str,
390
+ **kwargs: Any,
391
+ ) -> dict:
392
+ """Function with various argument types.
393
+
394
+ Args:
395
+ required_arg: A required string argument
396
+ optional_arg: An optional integer (default: 10)
397
+ *args: Variable positional arguments
398
+ **kwargs: Variable keyword arguments. Supported keys:
399
+ - timeout (float): Request timeout in seconds
400
+ - retries (int): Number of retry attempts
401
+ - debug (bool): Enable debug logging
402
+
403
+ Returns:
404
+ Dictionary with processed results
405
+ """
406
+ pass
407
+ ```
408
+
409
+ ### Returns Section
410
+
411
+ ```python
412
+ # Simple return
413
+ def get_user(user_id: int) -> User:
414
+ """Get user by ID.
415
+
416
+ Args:
417
+ user_id: User ID
418
+
419
+ Returns:
420
+ User object
421
+ """
422
+ pass
423
+
424
+ # Multiple return values (tuple)
425
+ def get_user_stats(user_id: int) -> tuple[int, int, float]:
426
+ """Get user statistics.
427
+
428
+ Args:
429
+ user_id: User ID
430
+
431
+ Returns:
432
+ Tuple containing:
433
+ - post_count: Number of posts
434
+ - follower_count: Number of followers
435
+ - engagement_rate: Engagement rate (0.0 to 1.0)
436
+ """
437
+ pass
438
+
439
+ # Complex return type
440
+ def fetch_data(url: str) -> dict[str, Any]:
441
+ """Fetch data from URL.
442
+
443
+ Args:
444
+ url: URL to fetch from
445
+
446
+ Returns:
447
+ Dictionary containing:
448
+ - status: HTTP status code
449
+ - headers: Response headers
450
+ - body: Response body
451
+ - timestamp: Request timestamp
452
+ """
453
+ pass
454
+ ```
455
+
456
+ ### Raises Section
457
+
458
+ ```python
459
+ def create_user(username: str, email: str) -> User:
460
+ """Create a new user account.
461
+
462
+ Args:
463
+ username: Unique username
464
+ email: User's email address
465
+
466
+ Returns:
467
+ Created User object
468
+
469
+ Raises:
470
+ ValidationError: If username or email is invalid
471
+ DuplicateUserError: If username or email already exists
472
+ DatabaseError: If database operation fails
473
+
474
+ Example:
475
+ >>> user = create_user("john", "john@example.com")
476
+ >>> print(user.username)
477
+ 'john'
478
+ """
479
+ pass
480
+ ```
481
+
482
+ ### Examples Section
483
+
484
+ ```python
485
+ def calculate_discount(
486
+ price: float,
487
+ discount_percent: float,
488
+ ) -> float:
489
+ """Calculate discounted price.
490
+
491
+ Args:
492
+ price: Original price
493
+ discount_percent: Discount percentage (0-100)
494
+
495
+ Returns:
496
+ Discounted price
497
+
498
+ Examples:
499
+ >>> calculate_discount(100.0, 10.0)
500
+ 90.0
501
+
502
+ >>> calculate_discount(50.0, 25.0)
503
+ 37.5
504
+
505
+ >>> calculate_discount(100.0, 0.0)
506
+ 100.0
507
+ """
508
+ pass
509
+ ```
510
+
511
+ ### Notes and Warnings
512
+
513
+ ```python
514
+ def process_large_file(file_path: str) -> None:
515
+ """Process large file in chunks.
516
+
517
+ Args:
518
+ file_path: Path to file to process
519
+
520
+ Note:
521
+ This function processes files in chunks to avoid
522
+ loading entire file into memory. Suitable for
523
+ files larger than available RAM.
524
+
525
+ Warning:
526
+ File must be in UTF-8 encoding. Other encodings
527
+ may cause decoding errors.
528
+
529
+ See Also:
530
+ process_small_file: For files < 100MB
531
+ stream_file: For streaming processing
532
+ """
533
+ pass
534
+ ```
535
+
536
+
537
+ ## Type Hints Integration
538
+
539
+ Type hints and docstrings work together for complete documentation.
540
+
541
+ ### With Type Hints
542
+
543
+ ```python
544
+ from typing import Optional, List, Dict, Any
545
+
546
+ def fetch_users(
547
+ role: str,
548
+ active_only: bool = True,
549
+ limit: Optional[int] = None,
550
+ ) -> List[Dict[str, Any]]:
551
+ """Fetch users by role.
552
+
553
+ Type hints provide type information, docstring provides
554
+ semantic information and constraints.
555
+
556
+ Args:
557
+ role: User role to filter by (e.g., "admin", "user", "guest")
558
+ active_only: Only return active users (default: True)
559
+ limit: Maximum number of users to return (default: None for all)
560
+
561
+ Returns:
562
+ List of user dictionaries, each containing:
563
+ - id: User ID
564
+ - username: Username
565
+ - email: Email address
566
+ - role: User role
567
+
568
+ Note:
569
+ Type hints show List[Dict[str, Any]], but docstring
570
+ specifies the exact structure of each dictionary.
571
+ """
572
+ pass
573
+ ```
574
+
575
+ ### Generic Types
576
+
577
+ ```python
578
+ from typing import TypeVar, Generic, List
579
+
580
+ T = TypeVar('T')
581
+
582
+ class Repository(Generic[T]):
583
+ """Generic repository for data access.
584
+
585
+ Type Parameters:
586
+ T: Type of entity managed by this repository
587
+
588
+ Example:
589
+ >>> user_repo = Repository[User]()
590
+ >>> users = user_repo.find_all()
591
+ """
592
+
593
+ def find_by_id(self, id: int) -> Optional[T]:
594
+ """Find entity by ID.
595
+
596
+ Args:
597
+ id: Entity ID
598
+
599
+ Returns:
600
+ Entity if found, None otherwise
601
+ """
602
+ pass
603
+
604
+ def find_all(self) -> List[T]:
605
+ """Find all entities.
606
+
607
+ Returns:
608
+ List of all entities
609
+ """
610
+ pass
611
+ ```
612
+
613
+ ## Module Documentation
614
+
615
+ ### Module Docstring
616
+
617
+ ```python
618
+ """User authentication and authorization module.
619
+
620
+ This module provides functionality for:
621
+ - User authentication (login, logout, session management)
622
+ - Password hashing and verification
623
+ - Permission checking and role-based access control
624
+ - Token generation and validation
625
+
626
+ Classes:
627
+ Authenticator: Main authentication handler
628
+ PasswordHasher: Password hashing utilities
629
+ PermissionChecker: Permission validation
630
+
631
+ Functions:
632
+ hash_password: Hash a password using bcrypt
633
+ verify_password: Verify password against hash
634
+ generate_token: Generate authentication token
635
+
636
+ Constants:
637
+ TOKEN_EXPIRY: Default token expiration time (seconds)
638
+ MAX_LOGIN_ATTEMPTS: Maximum failed login attempts
639
+
640
+ Example:
641
+ >>> from auth import Authenticator
642
+ >>> auth = Authenticator()
643
+ >>> user = auth.login("username", "password")
644
+ >>> if auth.has_permission(user, "admin"):
645
+ ... print("User is admin")
646
+
647
+ Note:
648
+ This module requires bcrypt and PyJWT packages.
649
+ Install with: pip install bcrypt PyJWT
650
+ """
651
+
652
+ import bcrypt
653
+ import jwt
654
+ from typing import Optional
655
+
656
+ TOKEN_EXPIRY = 3600 # 1 hour
657
+ MAX_LOGIN_ATTEMPTS = 5
658
+ ```
659
+
660
+ ### Package Documentation
661
+
662
+ ```python
663
+ # __init__.py
664
+ """Authentication package.
665
+
666
+ This package provides comprehensive authentication and authorization
667
+ functionality for web applications.
668
+
669
+ Submodules:
670
+ auth: Core authentication logic
671
+ permissions: Permission and role management
672
+ tokens: Token generation and validation
673
+ models: Data models for users and sessions
674
+
675
+ Usage:
676
+ >>> from auth import Authenticator
677
+ >>> from auth.permissions import PermissionChecker
678
+ >>>
679
+ >>> auth = Authenticator()
680
+ >>> user = auth.login("username", "password")
681
+ """
682
+
683
+ from .auth import Authenticator
684
+ from .permissions import PermissionChecker
685
+ from .tokens import TokenGenerator
686
+
687
+ __all__ = [
688
+ "Authenticator",
689
+ "PermissionChecker",
690
+ "TokenGenerator",
691
+ ]
692
+
693
+ __version__ = "1.0.0"
694
+ ```
695
+
696
+ ## Best Practices
697
+
698
+ ### DO
699
+
700
+ ✅ **Write docstrings for all public APIs** - Modules, classes, functions, methods
701
+
702
+ ✅ **Use consistent style** - Choose Google or NumPy style and stick to it
703
+
704
+ ✅ **Document parameters and return values** - Explain what they are and constraints
705
+
706
+ ✅ **Document exceptions** - List all exceptions that can be raised
707
+
708
+ ✅ **Provide examples** - Show how to use the function/class
709
+
710
+ ✅ **Keep docstrings up to date** - Update when code changes
711
+
712
+ ✅ **Use type hints** - Complement docstrings with type information
713
+
714
+ ✅ **Document edge cases** - Explain behavior for special inputs
715
+
716
+ ✅ **Use imperative mood** - "Return user" not "Returns user"
717
+
718
+ ✅ **Be concise but complete** - Provide necessary information without verbosity
719
+
720
+ ### DON'T
721
+
722
+ ❌ **Don't duplicate type information** - Type hints handle types, docstrings handle semantics
723
+
724
+ ```python
725
+ # Bad - Duplicates type information
726
+ def get_user(user_id: int) -> User:
727
+ """Get user by ID.
728
+
729
+ Args:
730
+ user_id (int): User ID as integer
731
+
732
+ Returns:
733
+ User: User object
734
+ """
735
+ pass
736
+
737
+ # Good - Type hints provide type info, docstring provides semantic info
738
+ def get_user(user_id: int) -> User:
739
+ """Get user by ID.
740
+
741
+ Args:
742
+ user_id: Unique identifier for the user
743
+
744
+ Returns:
745
+ User object with all profile data loaded
746
+ """
747
+ pass
748
+ ```
749
+
750
+ ❌ **Don't write obvious docstrings** - Add value, don't state the obvious
751
+
752
+ ```python
753
+ # Bad - States the obvious
754
+ def add(a: int, b: int) -> int:
755
+ """Add two numbers.
756
+
757
+ Args:
758
+ a: First number
759
+ b: Second number
760
+
761
+ Returns:
762
+ Sum of a and b
763
+ """
764
+ return a + b
765
+
766
+ # Good - Simple function, simple docstring
767
+ def add(a: int, b: int) -> int:
768
+ """Return sum of two numbers."""
769
+ return a + b
770
+ ```
771
+
772
+ ❌ **Don't let docstrings get stale** - Update when code changes
773
+
774
+ ❌ **Don't mix docstring styles** - Be consistent across codebase
775
+
776
+ ❌ **Don't document private methods extensively** - Brief docstrings are fine
777
+
778
+ ```python
779
+ # Good - Brief docstring for private method
780
+ def _validate_email(self, email: str) -> bool:
781
+ """Check if email format is valid."""
782
+ return "@" in email and "." in email.split("@")[1]
783
+ ```
784
+
785
+ ## Tools and Validation
786
+
787
+ ### Docstring Linters
788
+
789
+ ```bash
790
+ # pydocstyle - Check docstring conventions
791
+ pip install pydocstyle
792
+ pydocstyle mymodule.py
793
+
794
+ # darglint - Check docstring matches function signature
795
+ pip install darglint
796
+ darglint mymodule.py
797
+
798
+ # interrogate - Check docstring coverage
799
+ pip install interrogate
800
+ interrogate -v mymodule.py
801
+ ```
802
+
803
+ ### Generating Documentation
804
+
805
+ ```bash
806
+ # Sphinx - Generate HTML documentation
807
+ pip install sphinx
808
+ sphinx-quickstart
809
+ sphinx-build -b html docs/ docs/_build/
810
+
811
+ # pdoc - Simple documentation generator
812
+ pip install pdoc
813
+ pdoc --html mymodule
814
+ ```
815
+
816
+ ## Summary
817
+
818
+ **Key Takeaways:**
819
+
820
+ 1. **Write docstrings for all public APIs** - Modules, classes, functions
821
+ 2. **Choose a consistent style** - Google or NumPy style
822
+ 3. **Document parameters, returns, and exceptions** - Be complete
823
+ 4. **Provide examples** - Show usage patterns
824
+ 5. **Use type hints** - Complement docstrings with type information
825
+ 6. **Keep docstrings updated** - Maintain accuracy
826
+ 7. **Be concise but informative** - Add value, avoid verbosity
827
+ 8. **Use imperative mood** - "Return" not "Returns"
828
+ 9. **Document edge cases and constraints** - Explain special behavior
829
+ 10. **Validate with tools** - Use pydocstyle, darglint, interrogate
830
+
831
+