@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.
- package/README.md +614 -39
- package/augment-extensions/coding-standards/bash/README.md +196 -0
- package/augment-extensions/coding-standards/bash/module.json +163 -0
- package/augment-extensions/coding-standards/bash/rules/naming-conventions.md +336 -0
- package/augment-extensions/coding-standards/bash/rules/universal-standards.md +289 -0
- package/augment-extensions/coding-standards/css/README.md +40 -0
- package/augment-extensions/coding-standards/css/examples/css-examples.css +550 -0
- package/augment-extensions/coding-standards/css/module.json +44 -0
- package/augment-extensions/coding-standards/css/rules/css-modern-features.md +448 -0
- package/augment-extensions/coding-standards/css/rules/css-standards.md +492 -0
- package/augment-extensions/coding-standards/html/README.md +40 -0
- package/augment-extensions/coding-standards/html/examples/html-examples.html +267 -0
- package/augment-extensions/coding-standards/html/examples/responsive-layout.html +505 -0
- package/augment-extensions/coding-standards/html/module.json +44 -0
- package/augment-extensions/coding-standards/html/rules/html-standards.md +349 -0
- package/augment-extensions/coding-standards/html-css-js/README.md +194 -0
- package/augment-extensions/coding-standards/html-css-js/examples/async-examples.js +487 -0
- package/augment-extensions/coding-standards/html-css-js/examples/css-examples.css +550 -0
- package/augment-extensions/coding-standards/html-css-js/examples/dom-examples.js +667 -0
- package/augment-extensions/coding-standards/html-css-js/examples/html-examples.html +267 -0
- package/augment-extensions/coding-standards/html-css-js/examples/javascript-examples.js +612 -0
- package/augment-extensions/coding-standards/html-css-js/examples/responsive-layout.html +505 -0
- package/augment-extensions/coding-standards/html-css-js/module.json +48 -0
- package/augment-extensions/coding-standards/html-css-js/rules/async-patterns.md +515 -0
- package/augment-extensions/coding-standards/html-css-js/rules/css-modern-features.md +448 -0
- package/augment-extensions/coding-standards/html-css-js/rules/css-standards.md +492 -0
- package/augment-extensions/coding-standards/html-css-js/rules/dom-manipulation.md +439 -0
- package/augment-extensions/coding-standards/html-css-js/rules/html-standards.md +349 -0
- package/augment-extensions/coding-standards/html-css-js/rules/javascript-standards.md +486 -0
- package/augment-extensions/coding-standards/html-css-js/rules/performance.md +463 -0
- package/augment-extensions/coding-standards/html-css-js/rules/tooling.md +543 -0
- package/augment-extensions/coding-standards/js/README.md +46 -0
- package/augment-extensions/coding-standards/js/examples/async-examples.js +487 -0
- package/augment-extensions/coding-standards/js/examples/dom-examples.js +667 -0
- package/augment-extensions/coding-standards/js/examples/javascript-examples.js +612 -0
- package/augment-extensions/coding-standards/js/module.json +49 -0
- package/augment-extensions/coding-standards/js/rules/async-patterns.md +515 -0
- package/augment-extensions/coding-standards/js/rules/dom-manipulation.md +439 -0
- package/augment-extensions/coding-standards/js/rules/javascript-standards.md +486 -0
- package/augment-extensions/coding-standards/js/rules/performance.md +463 -0
- package/augment-extensions/coding-standards/js/rules/tooling.md +543 -0
- package/augment-extensions/coding-standards/php/README.md +248 -0
- package/augment-extensions/coding-standards/php/examples/api-endpoint-example.php +204 -0
- package/augment-extensions/coding-standards/php/examples/cli-command-example.php +206 -0
- package/augment-extensions/coding-standards/php/examples/legacy-refactoring-example.php +234 -0
- package/augment-extensions/coding-standards/php/examples/web-application-example.php +211 -0
- package/augment-extensions/coding-standards/php/examples/woocommerce-extension-example.php +215 -0
- package/augment-extensions/coding-standards/php/examples/wordpress-plugin-example.php +189 -0
- package/augment-extensions/coding-standards/php/module.json +166 -0
- package/augment-extensions/coding-standards/php/rules/api-development.md +480 -0
- package/augment-extensions/coding-standards/php/rules/category-configuration.md +332 -0
- package/augment-extensions/coding-standards/php/rules/cli-tools.md +472 -0
- package/augment-extensions/coding-standards/php/rules/cms-integration.md +561 -0
- package/augment-extensions/coding-standards/php/rules/code-quality.md +402 -0
- package/augment-extensions/coding-standards/php/rules/documentation.md +425 -0
- package/augment-extensions/coding-standards/php/rules/ecommerce.md +627 -0
- package/augment-extensions/coding-standards/php/rules/error-handling.md +336 -0
- package/augment-extensions/coding-standards/php/rules/legacy-migration.md +677 -0
- package/augment-extensions/coding-standards/php/rules/naming-conventions.md +279 -0
- package/augment-extensions/coding-standards/php/rules/performance.md +392 -0
- package/augment-extensions/coding-standards/php/rules/psr-standards.md +186 -0
- package/augment-extensions/coding-standards/php/rules/security.md +358 -0
- package/augment-extensions/coding-standards/php/rules/testing.md +403 -0
- package/augment-extensions/coding-standards/php/rules/type-declarations.md +331 -0
- package/augment-extensions/coding-standards/php/rules/web-applications.md +426 -0
- package/augment-extensions/coding-standards/powershell/README.md +154 -0
- package/augment-extensions/coding-standards/powershell/examples/admin-example.ps1 +272 -0
- package/augment-extensions/coding-standards/powershell/examples/automation-example.ps1 +173 -0
- package/augment-extensions/coding-standards/powershell/examples/cloud-example.ps1 +243 -0
- package/augment-extensions/coding-standards/powershell/examples/cross-platform-example.ps1 +297 -0
- package/augment-extensions/coding-standards/powershell/examples/dsc-example.ps1 +224 -0
- package/augment-extensions/coding-standards/powershell/examples/legacy-migration-example.ps1 +340 -0
- package/augment-extensions/coding-standards/powershell/examples/module-example.psm1 +255 -0
- package/augment-extensions/coding-standards/powershell/module.json +165 -0
- package/augment-extensions/coding-standards/powershell/rules/administrative-tools.md +439 -0
- package/augment-extensions/coding-standards/powershell/rules/automation-scripts.md +240 -0
- package/augment-extensions/coding-standards/powershell/rules/cloud-orchestration.md +384 -0
- package/augment-extensions/coding-standards/powershell/rules/configuration-schema.md +383 -0
- package/augment-extensions/coding-standards/powershell/rules/cross-platform-scripts.md +482 -0
- package/augment-extensions/coding-standards/powershell/rules/dsc-configurations.md +296 -0
- package/augment-extensions/coding-standards/powershell/rules/error-handling.md +314 -0
- package/augment-extensions/coding-standards/powershell/rules/legacy-migrations.md +466 -0
- package/augment-extensions/coding-standards/powershell/rules/modules-functions.md +244 -0
- package/augment-extensions/coding-standards/powershell/rules/naming-conventions.md +266 -0
- package/augment-extensions/coding-standards/powershell/rules/performance-optimization.md +209 -0
- package/augment-extensions/coding-standards/powershell/rules/security-practices.md +314 -0
- package/augment-extensions/coding-standards/powershell/rules/testing-guidelines.md +268 -0
- package/augment-extensions/coding-standards/powershell/rules/universal-standards.md +197 -0
- package/augment-extensions/coding-standards/python/README.md +12 -8
- package/augment-extensions/coding-standards/python/examples/best-practices.py +373 -0
- package/augment-extensions/coding-standards/python/module.json +8 -4
- package/augment-extensions/coding-standards/python/rules/async-patterns.md +884 -0
- package/augment-extensions/coding-standards/python/rules/documentation.md +831 -0
- package/augment-extensions/coding-standards/python/rules/error-handling.md +855 -68
- package/augment-extensions/coding-standards/python/rules/testing.md +409 -0
- package/augment-extensions/coding-standards/python/rules/tooling.md +446 -0
- package/augment-extensions/coding-standards/python/rules/type-hints.md +115 -50
- package/augment-extensions/collections/html-css-js/README.md +82 -0
- package/augment-extensions/collections/html-css-js/collection.json +41 -0
- package/augment-extensions/domain-rules/database/README.md +161 -0
- package/augment-extensions/domain-rules/database/examples/flat-database-example.md +793 -0
- package/augment-extensions/domain-rules/database/examples/hybrid-database-example.md +1132 -0
- package/augment-extensions/domain-rules/database/examples/nosql-document-example.md +868 -0
- package/augment-extensions/domain-rules/database/examples/nosql-graph-example.md +805 -0
- package/augment-extensions/domain-rules/database/examples/relational-schema-example.md +621 -0
- package/augment-extensions/domain-rules/database/examples/vector-database-example.md +965 -0
- package/augment-extensions/domain-rules/database/module.json +28 -0
- package/augment-extensions/domain-rules/database/rules/flat-databases.md +624 -0
- package/augment-extensions/domain-rules/database/rules/nosql-databases.md +588 -0
- package/augment-extensions/domain-rules/database/rules/nosql-document-stores.md +856 -0
- package/augment-extensions/domain-rules/database/rules/nosql-graph-databases.md +778 -0
- package/augment-extensions/domain-rules/database/rules/nosql-key-value-stores.md +963 -0
- package/augment-extensions/domain-rules/database/rules/performance-optimization.md +1076 -0
- package/augment-extensions/domain-rules/database/rules/relational-databases.md +697 -0
- package/augment-extensions/domain-rules/database/rules/relational-indexing.md +671 -0
- package/augment-extensions/domain-rules/database/rules/relational-query-optimization.md +607 -0
- package/augment-extensions/domain-rules/database/rules/relational-schema-design.md +907 -0
- package/augment-extensions/domain-rules/database/rules/relational-transactions.md +783 -0
- package/augment-extensions/domain-rules/database/rules/security-standards.md +980 -0
- package/augment-extensions/domain-rules/database/rules/universal-best-practices.md +485 -0
- package/augment-extensions/domain-rules/database/rules/vector-databases.md +521 -0
- package/augment-extensions/domain-rules/database/rules/vector-embeddings.md +858 -0
- package/augment-extensions/domain-rules/database/rules/vector-indexing.md +934 -0
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-latte/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-latte/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-mocha/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-mocha/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/dracula/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/dracula/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-dark/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-dark/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-light/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-light/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/high-contrast/README.md +27 -0
- package/augment-extensions/domain-rules/design/color/themes/high-contrast/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/monokai/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/monokai/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/nord/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/nord/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/one-dark/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/one-dark/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/one-light/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/one-light/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/solarized-dark/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/solarized-dark/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/solarized-light/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/solarized-light/module.json +26 -0
- package/augment-extensions/domain-rules/design/color/themes/tokyo-night/README.md +23 -0
- package/augment-extensions/domain-rules/design/color/themes/tokyo-night/module.json +26 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/README.md +136 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/SCHEMA-VALIDATION-REPORT.md +216 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/brand-kit-example.yaml +292 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/campaign-brief-example.yaml +389 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/content-calendar-example.yaml +643 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/email-newsletter-example.md +376 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/landing-page-example.md +934 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/ppc-ad-copy-example.md +301 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/seo-blog-post-example.md +347 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/examples/social-media-campaign-example.md +606 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/module.json +50 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/affiliate-influencer-marketing.md +593 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/asset-management.md +418 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/brand-consistency.md +210 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/content-marketing.md +337 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/conversion-optimization.md +455 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/direct-sales.md +499 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/email-marketing.md +439 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/legal-compliance.md +227 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/ppc-advertising.md +569 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/seo-optimization.md +470 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/social-media-marketing.md +414 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/rules/universal-marketing.md +177 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/schemas/asset-inventory.schema.json +247 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/schemas/brand-kit.schema.json +326 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/schemas/campaign-brief.schema.json +342 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/schemas/color-palette.schema.json +223 -0
- package/augment-extensions/domain-rules/marketing-standards/seo-sales-marketing/schemas/content-template.schema.json +383 -0
- package/augment-extensions/domain-rules/mcp/README.md +150 -0
- package/augment-extensions/domain-rules/mcp/examples/compressed-example.md +522 -0
- package/augment-extensions/domain-rules/mcp/examples/graph-augmented-example.md +520 -0
- package/augment-extensions/domain-rules/mcp/examples/hybrid-example.md +570 -0
- package/augment-extensions/domain-rules/mcp/examples/state-based-example.md +427 -0
- package/augment-extensions/domain-rules/mcp/examples/token-based-example.md +435 -0
- package/augment-extensions/domain-rules/mcp/examples/vector-based-example.md +502 -0
- package/augment-extensions/domain-rules/mcp/module.json +49 -0
- package/augment-extensions/domain-rules/mcp/rules/compressed-mcp.md +595 -0
- package/augment-extensions/domain-rules/mcp/rules/configuration.md +345 -0
- package/augment-extensions/domain-rules/mcp/rules/graph-augmented-mcp.md +687 -0
- package/augment-extensions/domain-rules/mcp/rules/hybrid-mcp.md +636 -0
- package/augment-extensions/domain-rules/mcp/rules/state-based-mcp.md +484 -0
- package/augment-extensions/domain-rules/mcp/rules/testing-validation.md +360 -0
- package/augment-extensions/domain-rules/mcp/rules/token-based-mcp.md +393 -0
- package/augment-extensions/domain-rules/mcp/rules/universal-rules.md +194 -0
- package/augment-extensions/domain-rules/mcp/rules/vector-based-mcp.md +625 -0
- package/augment-extensions/workflows/beads/module.json +4 -3
- package/augment-extensions/workflows/beads-integration/IMPLEMENTATION-STATUS.md +145 -0
- package/augment-extensions/workflows/beads-integration/README.md +143 -0
- package/augment-extensions/workflows/beads-integration/config/defaults.json +32 -0
- package/augment-extensions/workflows/beads-integration/config/schema.json +140 -0
- package/augment-extensions/workflows/beads-integration/examples/basic-task-generation.md +293 -0
- package/augment-extensions/workflows/beads-integration/module.json +75 -0
- package/augment-extensions/workflows/beads-integration/rules/core-rules.md +219 -0
- package/augment-extensions/workflows/beads-integration/rules/effectiveness-standards.md +256 -0
- package/augment-extensions/workflows/beads-integration/rules/task-generation.md +607 -0
- package/augment-extensions/workflows/database/README.md +195 -0
- package/augment-extensions/workflows/database/ai-prompt-testing.md +295 -0
- package/augment-extensions/workflows/database/examples/migration-example.md +498 -0
- package/augment-extensions/workflows/database/examples/optimization-example.md +496 -0
- package/augment-extensions/workflows/database/examples/schema-design-example.md +444 -0
- package/augment-extensions/workflows/database/module.json +42 -0
- package/augment-extensions/workflows/database/rules/data-migration.md +249 -0
- package/augment-extensions/workflows/database/rules/documentation-standards.md +339 -0
- package/augment-extensions/workflows/database/rules/migration-workflow.md +352 -0
- package/augment-extensions/workflows/database/rules/optimization-workflow.md +435 -0
- package/augment-extensions/workflows/database/rules/schema-design-workflow.md +535 -0
- package/augment-extensions/workflows/database/rules/testing-patterns.md +305 -0
- package/augment-extensions/workflows/database/rules/workflow.md +458 -0
- package/augment-extensions/workflows/openspec/module.json +4 -3
- package/augment-extensions/writing-standards/screenplay/README.md +300 -0
- package/augment-extensions/writing-standards/screenplay/_templates/README.md +121 -0
- package/augment-extensions/writing-standards/screenplay/_templates/genre-template.md +153 -0
- package/augment-extensions/writing-standards/screenplay/_templates/style-template.md +243 -0
- package/augment-extensions/writing-standards/screenplay/_templates/theme-template.md +213 -0
- package/augment-extensions/writing-standards/screenplay/examples/aaa-hollywood-scene.fountain +164 -0
- package/augment-extensions/writing-standards/screenplay/examples/beat-sheet-example.yaml +95 -0
- package/augment-extensions/writing-standards/screenplay/examples/character-profile-example.yaml +116 -0
- package/augment-extensions/writing-standards/screenplay/examples/commercial-30sec.fountain +151 -0
- package/augment-extensions/writing-standards/screenplay/examples/independent-monologue.fountain +67 -0
- package/augment-extensions/writing-standards/screenplay/examples/news-segment.fountain +142 -0
- package/augment-extensions/writing-standards/screenplay/examples/plot-outline-example.yaml +184 -0
- package/augment-extensions/writing-standards/screenplay/examples/tv-episode-teaser.fountain +204 -0
- package/augment-extensions/writing-standards/screenplay/genres/README.md +181 -0
- package/augment-extensions/writing-standards/screenplay/genres/examples/.gitkeep +2 -0
- package/augment-extensions/writing-standards/screenplay/genres/module.json +70 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/.gitkeep +2 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/action.md +399 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/adventure.md +407 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/animation.md +293 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/biographical.md +293 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/comedy.md +401 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/documentary.md +293 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/drama.md +409 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/fantasy.md +293 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/historical.md +293 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/horror.md +268 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/musical.md +294 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/mystery.md +293 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/noir.md +294 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/romance.md +293 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/sci-fi.md +289 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/superhero.md +293 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/thriller.md +294 -0
- package/augment-extensions/writing-standards/screenplay/genres/rules/western.md +293 -0
- package/augment-extensions/writing-standards/screenplay/module.json +124 -0
- package/augment-extensions/writing-standards/screenplay/rules/aaa-hollywood-films.md +339 -0
- package/augment-extensions/writing-standards/screenplay/rules/ai-integration-testing.md +329 -0
- package/augment-extensions/writing-standards/screenplay/rules/character-development.md +169 -0
- package/augment-extensions/writing-standards/screenplay/rules/commercials.md +437 -0
- package/augment-extensions/writing-standards/screenplay/rules/dialogue-writing.md +263 -0
- package/augment-extensions/writing-standards/screenplay/rules/diversity-inclusion.md +261 -0
- package/augment-extensions/writing-standards/screenplay/rules/examples-guide.md +315 -0
- package/augment-extensions/writing-standards/screenplay/rules/formatting-validation.md +413 -0
- package/augment-extensions/writing-standards/screenplay/rules/fountain-format.md +372 -0
- package/augment-extensions/writing-standards/screenplay/rules/independent-films.md +374 -0
- package/augment-extensions/writing-standards/screenplay/rules/live-tv-productions.md +443 -0
- package/augment-extensions/writing-standards/screenplay/rules/narrative-structures.md +207 -0
- package/augment-extensions/writing-standards/screenplay/rules/news-broadcasts.md +444 -0
- package/augment-extensions/writing-standards/screenplay/rules/pacing-timing.md +331 -0
- package/augment-extensions/writing-standards/screenplay/rules/quality-review-checklist.md +334 -0
- package/augment-extensions/writing-standards/screenplay/rules/quick-reference.md +299 -0
- package/augment-extensions/writing-standards/screenplay/rules/screen-continuity.md +263 -0
- package/augment-extensions/writing-standards/screenplay/rules/streaming-content.md +412 -0
- package/augment-extensions/writing-standards/screenplay/rules/trope-management.md +370 -0
- package/augment-extensions/writing-standards/screenplay/rules/tv-series.md +374 -0
- package/augment-extensions/writing-standards/screenplay/rules/universal-formatting.md +339 -0
- package/augment-extensions/writing-standards/screenplay/rules/vscode-integration.md +277 -0
- package/augment-extensions/writing-standards/screenplay/rules/web-content.md +393 -0
- package/augment-extensions/writing-standards/screenplay/schemas/beat-sheet.json +332 -0
- package/augment-extensions/writing-standards/screenplay/schemas/character-profile.json +247 -0
- package/augment-extensions/writing-standards/screenplay/schemas/feature-selection.json +200 -0
- package/augment-extensions/writing-standards/screenplay/schemas/plot-outline.json +233 -0
- package/augment-extensions/writing-standards/screenplay/schemas/screenplay-config.json +245 -0
- package/augment-extensions/writing-standards/screenplay/schemas/trope-inventory.json +221 -0
- package/augment-extensions/writing-standards/screenplay/styles/README.md +159 -0
- package/augment-extensions/writing-standards/screenplay/styles/examples/.gitkeep +2 -0
- package/augment-extensions/writing-standards/screenplay/styles/examples/style-applications.md +1449 -0
- package/augment-extensions/writing-standards/screenplay/styles/module.json +64 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/.gitkeep +2 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/dialogue-centric.md +520 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/ensemble.md +499 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/epic.md +497 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/experimental.md +492 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/flashback.md +509 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/linear.md +490 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/minimalist.md +499 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/non-linear.md +501 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/poetic.md +499 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/realistic.md +498 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/satirical.md +499 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/surreal.md +508 -0
- package/augment-extensions/writing-standards/screenplay/styles/rules/voice-over.md +500 -0
- package/augment-extensions/writing-standards/screenplay/themes/README.md +158 -0
- package/augment-extensions/writing-standards/screenplay/themes/examples/.gitkeep +2 -0
- package/augment-extensions/writing-standards/screenplay/themes/examples/common-mistakes-and-fixes.md +643 -0
- package/augment-extensions/writing-standards/screenplay/themes/examples/complete-scene-example.md +311 -0
- package/augment-extensions/writing-standards/screenplay/themes/examples/individual-theme-examples.md +562 -0
- package/augment-extensions/writing-standards/screenplay/themes/examples/multi-theme-weaving.md +538 -0
- package/augment-extensions/writing-standards/screenplay/themes/examples/theme-application-guide.md +432 -0
- package/augment-extensions/writing-standards/screenplay/themes/examples/theme-integration-across-acts.md +637 -0
- package/augment-extensions/writing-standards/screenplay/themes/module.json +66 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/.gitkeep +2 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/ambition.md +458 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/betrayal.md +490 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/environment.md +458 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/fate.md +459 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/friendship.md +491 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/growth.md +491 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/identity.md +490 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/isolation.md +464 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/justice.md +461 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/love.md +489 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/power.md +494 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/redemption.md +483 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/revenge.md +489 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/survival.md +496 -0
- package/augment-extensions/writing-standards/screenplay/themes/rules/technology.md +463 -0
- package/cli/MODULES.md +302 -0
- package/cli/dist/cli.js +168 -10
- package/cli/dist/cli.js.map +1 -1
- package/cli/dist/commands/catalog.d.ts +13 -0
- package/cli/dist/commands/catalog.d.ts.map +1 -0
- package/cli/dist/commands/catalog.js +104 -0
- package/cli/dist/commands/catalog.js.map +1 -0
- package/cli/dist/commands/gui.d.ts +6 -0
- package/cli/dist/commands/gui.d.ts.map +1 -0
- package/cli/dist/commands/gui.js +211 -0
- package/cli/dist/commands/gui.js.map +1 -0
- package/cli/dist/commands/init.d.ts.map +1 -1
- package/cli/dist/commands/init.js +12 -0
- package/cli/dist/commands/init.js.map +1 -1
- package/cli/dist/commands/install-rules.d.ts +14 -0
- package/cli/dist/commands/install-rules.d.ts.map +1 -0
- package/cli/dist/commands/install-rules.js +127 -0
- package/cli/dist/commands/install-rules.js.map +1 -0
- package/cli/dist/commands/link.d.ts.map +1 -1
- package/cli/dist/commands/link.js +9 -11
- package/cli/dist/commands/link.js.map +1 -1
- package/cli/dist/commands/list.d.ts.map +1 -1
- package/cli/dist/commands/list.js +11 -28
- package/cli/dist/commands/list.js.map +1 -1
- package/cli/dist/commands/mcp.d.ts +48 -0
- package/cli/dist/commands/mcp.d.ts.map +1 -0
- package/cli/dist/commands/mcp.js +229 -0
- package/cli/dist/commands/mcp.js.map +1 -0
- package/cli/dist/commands/self-remove.d.ts +7 -0
- package/cli/dist/commands/self-remove.d.ts.map +1 -0
- package/cli/dist/commands/self-remove.js +179 -0
- package/cli/dist/commands/self-remove.js.map +1 -0
- package/cli/dist/commands/show.d.ts +19 -0
- package/cli/dist/commands/show.d.ts.map +1 -1
- package/cli/dist/commands/show.js +478 -63
- package/cli/dist/commands/show.js.map +1 -1
- package/cli/dist/commands/skill.d.ts +67 -0
- package/cli/dist/commands/skill.d.ts.map +1 -0
- package/cli/dist/commands/skill.js +513 -0
- package/cli/dist/commands/skill.js.map +1 -0
- package/cli/dist/commands/unlink.d.ts +6 -0
- package/cli/dist/commands/unlink.d.ts.map +1 -0
- package/cli/dist/commands/unlink.js +115 -0
- package/cli/dist/commands/unlink.js.map +1 -0
- package/cli/dist/commands/validate.d.ts +6 -0
- package/cli/dist/commands/validate.d.ts.map +1 -0
- package/cli/dist/commands/validate.js +159 -0
- package/cli/dist/commands/validate.js.map +1 -0
- package/cli/dist/types/gui.d.ts +62 -0
- package/cli/dist/types/gui.d.ts.map +1 -0
- package/cli/dist/types/gui.js +30 -0
- package/cli/dist/types/gui.js.map +1 -0
- package/cli/dist/utils/catalog-sync.d.ts +22 -0
- package/cli/dist/utils/catalog-sync.d.ts.map +1 -0
- package/cli/dist/utils/catalog-sync.js +157 -0
- package/cli/dist/utils/catalog-sync.js.map +1 -0
- package/cli/dist/utils/character-count.d.ts +56 -0
- package/cli/dist/utils/character-count.d.ts.map +1 -0
- package/cli/dist/utils/character-count.js +190 -0
- package/cli/dist/utils/character-count.js.map +1 -0
- package/cli/dist/utils/documentation-validator.d.ts +18 -0
- package/cli/dist/utils/documentation-validator.d.ts.map +1 -0
- package/cli/dist/utils/documentation-validator.js +233 -0
- package/cli/dist/utils/documentation-validator.js.map +1 -0
- package/cli/dist/utils/gui-helpers.d.ts +23 -0
- package/cli/dist/utils/gui-helpers.d.ts.map +1 -0
- package/cli/dist/utils/gui-helpers.js +159 -0
- package/cli/dist/utils/gui-helpers.js.map +1 -0
- package/cli/dist/utils/install-rules.d.ts +32 -0
- package/cli/dist/utils/install-rules.d.ts.map +1 -0
- package/cli/dist/utils/install-rules.js +375 -0
- package/cli/dist/utils/install-rules.js.map +1 -0
- package/cli/dist/utils/mcp-integration.d.ts +70 -0
- package/cli/dist/utils/mcp-integration.d.ts.map +1 -0
- package/cli/dist/utils/mcp-integration.js +292 -0
- package/cli/dist/utils/mcp-integration.js.map +1 -0
- package/cli/dist/utils/module-system.d.ts +232 -0
- package/cli/dist/utils/module-system.d.ts.map +1 -0
- package/cli/dist/utils/module-system.js +900 -0
- package/cli/dist/utils/module-system.js.map +1 -0
- package/cli/dist/utils/modules-catalog.d.ts +33 -0
- package/cli/dist/utils/modules-catalog.d.ts.map +1 -0
- package/cli/dist/utils/modules-catalog.js +163 -0
- package/cli/dist/utils/modules-catalog.js.map +1 -0
- package/cli/dist/utils/rule-install-hooks.d.ts +19 -0
- package/cli/dist/utils/rule-install-hooks.d.ts.map +1 -0
- package/cli/dist/utils/rule-install-hooks.js +224 -0
- package/cli/dist/utils/rule-install-hooks.js.map +1 -0
- package/cli/dist/utils/skill-system.d.ts +95 -0
- package/cli/dist/utils/skill-system.d.ts.map +1 -0
- package/cli/dist/utils/skill-system.js +313 -0
- package/cli/dist/utils/skill-system.js.map +1 -0
- package/modules.md +559 -105
- 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
|
+
|