@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,426 @@
|
|
|
1
|
+
# PHP Web Applications Best Practices
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This guide provides best practices for developing PHP web applications using MVC architecture, modern frameworks (Laravel, Symfony), templating engines, and secure form handling.
|
|
6
|
+
|
|
7
|
+
## MVC Architecture
|
|
8
|
+
|
|
9
|
+
### Controllers
|
|
10
|
+
|
|
11
|
+
**Keep controllers thin** - Controllers should delegate business logic to services.
|
|
12
|
+
|
|
13
|
+
```php
|
|
14
|
+
<?php
|
|
15
|
+
|
|
16
|
+
namespace App\Controllers;
|
|
17
|
+
|
|
18
|
+
use App\Services\UserService;
|
|
19
|
+
use Symfony\Component\HttpFoundation\Request;
|
|
20
|
+
use Symfony\Component\HttpFoundation\Response;
|
|
21
|
+
|
|
22
|
+
class UserController
|
|
23
|
+
{
|
|
24
|
+
public function __construct(
|
|
25
|
+
private UserService $userService
|
|
26
|
+
) {}
|
|
27
|
+
|
|
28
|
+
public function index(): Response
|
|
29
|
+
{
|
|
30
|
+
// Thin controller - delegates to service
|
|
31
|
+
$users = $this->userService->getAllUsers();
|
|
32
|
+
|
|
33
|
+
return $this->render('users/index', [
|
|
34
|
+
'users' => $users
|
|
35
|
+
]);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
public function store(Request $request): Response
|
|
39
|
+
{
|
|
40
|
+
// Validate and delegate
|
|
41
|
+
$validated = $this->validate($request, [
|
|
42
|
+
'name' => 'required|string|max:255',
|
|
43
|
+
'email' => 'required|email|unique:users'
|
|
44
|
+
]);
|
|
45
|
+
|
|
46
|
+
$user = $this->userService->createUser($validated);
|
|
47
|
+
|
|
48
|
+
return $this->redirect('/users/' . $user->id);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Models
|
|
54
|
+
|
|
55
|
+
**Models handle data logic** - Use Eloquent ORM or Doctrine for database interactions.
|
|
56
|
+
|
|
57
|
+
```php
|
|
58
|
+
<?php
|
|
59
|
+
|
|
60
|
+
namespace App\Models;
|
|
61
|
+
|
|
62
|
+
use Illuminate\Database\Eloquent\Model;
|
|
63
|
+
use Illuminate\Database\Eloquent\Relations\HasMany;
|
|
64
|
+
|
|
65
|
+
class User extends Model
|
|
66
|
+
{
|
|
67
|
+
protected $fillable = ['name', 'email', 'password'];
|
|
68
|
+
|
|
69
|
+
protected $hidden = ['password', 'remember_token'];
|
|
70
|
+
|
|
71
|
+
protected $casts = [
|
|
72
|
+
'email_verified_at' => 'datetime',
|
|
73
|
+
'is_active' => 'boolean'
|
|
74
|
+
];
|
|
75
|
+
|
|
76
|
+
// Relationships
|
|
77
|
+
public function posts(): HasMany
|
|
78
|
+
{
|
|
79
|
+
return $this->hasMany(Post::class);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// Accessors
|
|
83
|
+
public function getFullNameAttribute(): string
|
|
84
|
+
{
|
|
85
|
+
return "{$this->first_name} {$this->last_name}";
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// Scopes
|
|
89
|
+
public function scopeActive($query)
|
|
90
|
+
{
|
|
91
|
+
return $query->where('is_active', true);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Views
|
|
97
|
+
|
|
98
|
+
**Minimal logic in views** - Use template engines with auto-escaping.
|
|
99
|
+
|
|
100
|
+
```php
|
|
101
|
+
<!-- Blade Template (Laravel) -->
|
|
102
|
+
@extends('layouts.app')
|
|
103
|
+
|
|
104
|
+
@section('content')
|
|
105
|
+
<h1>{{ $title }}</h1>
|
|
106
|
+
|
|
107
|
+
@foreach($users as $user)
|
|
108
|
+
<div class="user-card">
|
|
109
|
+
<h2>{{ $user->name }}</h2>
|
|
110
|
+
<p>{{ $user->email }}</p>
|
|
111
|
+
|
|
112
|
+
@if($user->is_active)
|
|
113
|
+
<span class="badge badge-success">Active</span>
|
|
114
|
+
@else
|
|
115
|
+
<span class="badge badge-danger">Inactive</span>
|
|
116
|
+
@endif
|
|
117
|
+
</div>
|
|
118
|
+
@endforeach
|
|
119
|
+
@endsection
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Routing
|
|
123
|
+
|
|
124
|
+
### RESTful Routes
|
|
125
|
+
|
|
126
|
+
```php
|
|
127
|
+
<?php
|
|
128
|
+
|
|
129
|
+
use App\Controllers\UserController;
|
|
130
|
+
use Illuminate\Support\Facades\Route;
|
|
131
|
+
|
|
132
|
+
// RESTful resource routes
|
|
133
|
+
Route::resource('users', UserController::class);
|
|
134
|
+
|
|
135
|
+
// Generates:
|
|
136
|
+
// GET /users -> index()
|
|
137
|
+
// GET /users/create -> create()
|
|
138
|
+
// POST /users -> store()
|
|
139
|
+
// GET /users/{id} -> show()
|
|
140
|
+
// GET /users/{id}/edit -> edit()
|
|
141
|
+
// PUT /users/{id} -> update()
|
|
142
|
+
// DELETE /users/{id} -> destroy()
|
|
143
|
+
|
|
144
|
+
// Route model binding
|
|
145
|
+
Route::get('/users/{user}', function (User $user) {
|
|
146
|
+
return view('users.show', ['user' => $user]);
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
// Route groups with middleware
|
|
150
|
+
Route::middleware(['auth', 'verified'])->group(function () {
|
|
151
|
+
Route::get('/dashboard', [DashboardController::class, 'index']);
|
|
152
|
+
Route::resource('posts', PostController::class);
|
|
153
|
+
});
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Template Engines
|
|
157
|
+
|
|
158
|
+
### Twig (Symfony)
|
|
159
|
+
|
|
160
|
+
```php
|
|
161
|
+
<?php
|
|
162
|
+
|
|
163
|
+
// Controller
|
|
164
|
+
return $this->render('user/profile.html.twig', [
|
|
165
|
+
'user' => $user,
|
|
166
|
+
'posts' => $posts
|
|
167
|
+
]);
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
```twig
|
|
171
|
+
{# Template: user/profile.html.twig #}
|
|
172
|
+
{% extends 'base.html.twig' %}
|
|
173
|
+
|
|
174
|
+
{% block title %}{{ user.name }} - Profile{% endblock %}
|
|
175
|
+
|
|
176
|
+
{% block content %}
|
|
177
|
+
<h1>{{ user.name }}</h1>
|
|
178
|
+
<p>{{ user.email }}</p>
|
|
179
|
+
|
|
180
|
+
{# Auto-escaping enabled by default #}
|
|
181
|
+
<div>{{ user.bio }}</div>
|
|
182
|
+
|
|
183
|
+
{# Raw output (use with caution) #}
|
|
184
|
+
<div>{{ user.html_content|raw }}</div>
|
|
185
|
+
|
|
186
|
+
{# Loops #}
|
|
187
|
+
{% for post in posts %}
|
|
188
|
+
<article>
|
|
189
|
+
<h2>{{ post.title }}</h2>
|
|
190
|
+
<p>{{ post.excerpt }}</p>
|
|
191
|
+
</article>
|
|
192
|
+
{% endfor %}
|
|
193
|
+
{% endblock %}
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Blade (Laravel)
|
|
197
|
+
|
|
198
|
+
```php
|
|
199
|
+
{{-- Template inheritance --}}
|
|
200
|
+
@extends('layouts.app')
|
|
201
|
+
|
|
202
|
+
@section('title', 'User Profile')
|
|
203
|
+
|
|
204
|
+
@section('content')
|
|
205
|
+
<h1>{{ $user->name }}</h1>
|
|
206
|
+
|
|
207
|
+
{{-- Components --}}
|
|
208
|
+
<x-alert type="success">
|
|
209
|
+
Profile updated successfully!
|
|
210
|
+
</x-alert>
|
|
211
|
+
|
|
212
|
+
{{-- Directives --}}
|
|
213
|
+
@auth
|
|
214
|
+
<a href="/profile/edit">Edit Profile</a>
|
|
215
|
+
@endauth
|
|
216
|
+
|
|
217
|
+
@include('partials.user-stats', ['user' => $user])
|
|
218
|
+
@endsection
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
## Form Handling
|
|
222
|
+
|
|
223
|
+
### CSRF Protection
|
|
224
|
+
|
|
225
|
+
**Always use CSRF tokens** for forms.
|
|
226
|
+
|
|
227
|
+
```php
|
|
228
|
+
<!-- Blade -->
|
|
229
|
+
<form method="POST" action="/users">
|
|
230
|
+
@csrf
|
|
231
|
+
<input type="text" name="name" value="{{ old('name') }}">
|
|
232
|
+
<button type="submit">Submit</button>
|
|
233
|
+
</form>
|
|
234
|
+
|
|
235
|
+
<!-- Twig -->
|
|
236
|
+
<form method="post" action="{{ path('user_create') }}">
|
|
237
|
+
<input type="hidden" name="_token" value="{{ csrf_token('user_create') }}">
|
|
238
|
+
<input type="text" name="name">
|
|
239
|
+
<button type="submit">Submit</button>
|
|
240
|
+
</form>
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### Form Validation
|
|
244
|
+
|
|
245
|
+
**Use dedicated validation classes** (Form Requests in Laravel).
|
|
246
|
+
|
|
247
|
+
```php
|
|
248
|
+
<?php
|
|
249
|
+
|
|
250
|
+
namespace App\Http\Requests;
|
|
251
|
+
|
|
252
|
+
use Illuminate\Foundation\Http\FormRequest;
|
|
253
|
+
|
|
254
|
+
class StoreUserRequest extends FormRequest
|
|
255
|
+
{
|
|
256
|
+
public function authorize(): bool
|
|
257
|
+
{
|
|
258
|
+
return $this->user()->can('create', User::class);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
public function rules(): array
|
|
262
|
+
{
|
|
263
|
+
return [
|
|
264
|
+
'name' => 'required|string|max:255',
|
|
265
|
+
'email' => 'required|email|unique:users,email',
|
|
266
|
+
'password' => 'required|min:8|confirmed',
|
|
267
|
+
'age' => 'nullable|integer|min:18|max:120',
|
|
268
|
+
'role' => 'required|in:user,admin,moderator'
|
|
269
|
+
];
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
public function messages(): array
|
|
273
|
+
{
|
|
274
|
+
return [
|
|
275
|
+
'name.required' => 'Please provide your name',
|
|
276
|
+
'email.unique' => 'This email is already registered',
|
|
277
|
+
'password.min' => 'Password must be at least 8 characters'
|
|
278
|
+
];
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
// Controller usage
|
|
283
|
+
public function store(StoreUserRequest $request)
|
|
284
|
+
{
|
|
285
|
+
// Validation already passed
|
|
286
|
+
$validated = $request->validated();
|
|
287
|
+
|
|
288
|
+
$user = User::create($validated);
|
|
289
|
+
|
|
290
|
+
return redirect('/users')->with('success', 'User created!');
|
|
291
|
+
}
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### Displaying Validation Errors
|
|
295
|
+
|
|
296
|
+
```php
|
|
297
|
+
<!-- Blade -->
|
|
298
|
+
@if ($errors->any())
|
|
299
|
+
<div class="alert alert-danger">
|
|
300
|
+
<ul>
|
|
301
|
+
@foreach ($errors->all() as $error)
|
|
302
|
+
<li>{{ $error }}</li>
|
|
303
|
+
@endforeach
|
|
304
|
+
</ul>
|
|
305
|
+
</div>
|
|
306
|
+
@endif
|
|
307
|
+
|
|
308
|
+
<!-- Field-specific errors -->
|
|
309
|
+
<input type="text" name="email" value="{{ old('email') }}"
|
|
310
|
+
class="@error('email') is-invalid @enderror">
|
|
311
|
+
@error('email')
|
|
312
|
+
<span class="error">{{ $message }}</span>
|
|
313
|
+
@enderror
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
## Middleware
|
|
317
|
+
|
|
318
|
+
### Creating Middleware
|
|
319
|
+
|
|
320
|
+
```php
|
|
321
|
+
<?php
|
|
322
|
+
|
|
323
|
+
namespace App\Http\Middleware;
|
|
324
|
+
|
|
325
|
+
use Closure;
|
|
326
|
+
use Illuminate\Http\Request;
|
|
327
|
+
|
|
328
|
+
class CheckUserRole
|
|
329
|
+
{
|
|
330
|
+
public function handle(Request $request, Closure $next, string $role)
|
|
331
|
+
{
|
|
332
|
+
if (!$request->user() || !$request->user()->hasRole($role)) {
|
|
333
|
+
abort(403, 'Unauthorized action.');
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
return $next($request);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
// Usage in routes
|
|
341
|
+
Route::middleware(['auth', 'role:admin'])->group(function () {
|
|
342
|
+
Route::get('/admin/dashboard', [AdminController::class, 'index']);
|
|
343
|
+
});
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
## Session Management
|
|
347
|
+
|
|
348
|
+
### Using Sessions
|
|
349
|
+
|
|
350
|
+
```php
|
|
351
|
+
<?php
|
|
352
|
+
|
|
353
|
+
// Store data
|
|
354
|
+
session(['key' => 'value']);
|
|
355
|
+
$request->session()->put('user_id', $user->id);
|
|
356
|
+
|
|
357
|
+
// Retrieve data
|
|
358
|
+
$value = session('key');
|
|
359
|
+
$userId = $request->session()->get('user_id');
|
|
360
|
+
|
|
361
|
+
// Flash data (available for next request only)
|
|
362
|
+
$request->session()->flash('status', 'Task was successful!');
|
|
363
|
+
|
|
364
|
+
// Regenerate session ID (after login)
|
|
365
|
+
$request->session()->regenerate();
|
|
366
|
+
|
|
367
|
+
// Destroy session (logout)
|
|
368
|
+
$request->session()->invalidate();
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
## Best Practices
|
|
372
|
+
|
|
373
|
+
### ✅ DO
|
|
374
|
+
|
|
375
|
+
- Use route model binding for automatic model injection
|
|
376
|
+
- Implement middleware for cross-cutting concerns (auth, logging, CORS)
|
|
377
|
+
- Use service classes for complex business logic
|
|
378
|
+
- Leverage dependency injection for testability
|
|
379
|
+
- Use database migrations for schema management
|
|
380
|
+
- Implement proper error handling and logging
|
|
381
|
+
- Use environment variables for configuration
|
|
382
|
+
- Enable HTTPS in production
|
|
383
|
+
- Implement rate limiting for public endpoints
|
|
384
|
+
- Use queues for long-running tasks
|
|
385
|
+
|
|
386
|
+
### ❌ DON'T
|
|
387
|
+
|
|
388
|
+
- Put business logic in controllers or views
|
|
389
|
+
- Use raw SQL queries without parameter binding
|
|
390
|
+
- Store sensitive data in sessions without encryption
|
|
391
|
+
- Disable CSRF protection
|
|
392
|
+
- Use `extract()` on user input
|
|
393
|
+
- Echo user input without escaping
|
|
394
|
+
- Use `eval()` or similar dangerous functions
|
|
395
|
+
- Hardcode credentials or API keys
|
|
396
|
+
- Ignore validation errors
|
|
397
|
+
- Use global variables for state management
|
|
398
|
+
|
|
399
|
+
## Security Checklist
|
|
400
|
+
|
|
401
|
+
- [ ] CSRF tokens on all forms
|
|
402
|
+
- [ ] Input validation on all user data
|
|
403
|
+
- [ ] Output escaping in all views
|
|
404
|
+
- [ ] Prepared statements for database queries
|
|
405
|
+
- [ ] HTTPS enforced in production
|
|
406
|
+
- [ ] Secure session configuration (httponly, secure flags)
|
|
407
|
+
- [ ] Password hashing with bcrypt/argon2
|
|
408
|
+
- [ ] Rate limiting on authentication endpoints
|
|
409
|
+
- [ ] SQL injection prevention
|
|
410
|
+
- [ ] XSS prevention
|
|
411
|
+
- [ ] File upload validation
|
|
412
|
+
- [ ] Proper error handling (don't expose stack traces)
|
|
413
|
+
|
|
414
|
+
## Performance Tips
|
|
415
|
+
|
|
416
|
+
- Use eager loading to avoid N+1 queries
|
|
417
|
+
- Implement caching for frequently accessed data
|
|
418
|
+
- Use database indexes on frequently queried columns
|
|
419
|
+
- Optimize images and assets
|
|
420
|
+
- Enable OPcache in production
|
|
421
|
+
- Use CDN for static assets
|
|
422
|
+
- Implement database query logging in development
|
|
423
|
+
- Use pagination for large datasets
|
|
424
|
+
- Minimize middleware stack
|
|
425
|
+
- Use lazy loading for heavy resources
|
|
426
|
+
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# PowerShell Coding Standards
|
|
2
|
+
|
|
3
|
+
Comprehensive PowerShell coding standards for professional, maintainable, and secure PowerShell code.
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
This module provides AI-driven guidance for writing PowerShell code across diverse project types including automation scripts, modules, DSC configurations, cloud orchestration, administrative tools, cross-platform scripts, and legacy migrations.
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
### With CLI (Future)
|
|
12
|
+
```bash
|
|
13
|
+
augx link coding-standards/powershell
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### Without CLI (Current)
|
|
17
|
+
Copy the contents of this module to your project's `.augment/` folder or reference it directly from this repository.
|
|
18
|
+
|
|
19
|
+
## Key Features
|
|
20
|
+
|
|
21
|
+
- **Universal Standards**: Naming conventions, error handling, security practices
|
|
22
|
+
- **Category-Specific Rules**: Tailored guidance for 7 PowerShell project types
|
|
23
|
+
- **Code Examples**: Working examples demonstrating best practices
|
|
24
|
+
- **Configuration System**: Project-specific category selection
|
|
25
|
+
- **PSScriptAnalyzer Integration**: Static analysis compliance
|
|
26
|
+
- **Pester Testing**: Comprehensive testing guidelines
|
|
27
|
+
|
|
28
|
+
## Directory Structure
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
augment-extensions/coding-standards/powershell/
|
|
32
|
+
├── module.json # Module metadata
|
|
33
|
+
├── README.md # This file
|
|
34
|
+
├── rules/
|
|
35
|
+
│ ├── universal-standards.md # Cross-cutting standards
|
|
36
|
+
│ ├── naming-conventions.md # Verb-Noun, PascalCase
|
|
37
|
+
│ ├── error-handling.md # Try-Catch-Finally patterns
|
|
38
|
+
│ ├── security-practices.md # Credential handling, signing
|
|
39
|
+
│ ├── performance-optimization.md # Pipeline efficiency
|
|
40
|
+
│ ├── testing-guidelines.md # Pester integration
|
|
41
|
+
│ ├── configuration-schema.md # Configuration file schema
|
|
42
|
+
│ ├── automation-scripts.md # Category: Automation
|
|
43
|
+
│ ├── modules-functions.md # Category: Modules
|
|
44
|
+
│ ├── dsc-configurations.md # Category: DSC
|
|
45
|
+
│ ├── cloud-orchestration.md # Category: Cloud
|
|
46
|
+
│ ├── administrative-tools.md # Category: Admin
|
|
47
|
+
│ ├── cross-platform-scripts.md # Category: Cross-platform
|
|
48
|
+
│ └── legacy-migrations.md # Category: Legacy
|
|
49
|
+
└── examples/
|
|
50
|
+
├── automation-example.ps1
|
|
51
|
+
├── module-example.psm1
|
|
52
|
+
├── dsc-example.ps1
|
|
53
|
+
├── cloud-example.ps1
|
|
54
|
+
├── admin-example.ps1
|
|
55
|
+
├── cross-platform-example.ps1
|
|
56
|
+
└── legacy-migration-example.ps1
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Core Guidelines
|
|
60
|
+
|
|
61
|
+
### Naming Conventions
|
|
62
|
+
- **Functions**: Verb-Noun format (e.g., `Get-UserData`, `Set-Configuration`)
|
|
63
|
+
- **Parameters**: PascalCase (e.g., `$UserName`, `$FilePath`)
|
|
64
|
+
- **Variables**: camelCase or PascalCase (consistent within project)
|
|
65
|
+
- **Approved Verbs**: Use `Get-Verb` to see approved verbs
|
|
66
|
+
|
|
67
|
+
### Error Handling
|
|
68
|
+
```powershell
|
|
69
|
+
try {
|
|
70
|
+
# Code that might fail
|
|
71
|
+
Get-Item -Path $Path -ErrorAction Stop
|
|
72
|
+
}
|
|
73
|
+
catch [System.IO.FileNotFoundException] {
|
|
74
|
+
Write-Error "File not found: $Path"
|
|
75
|
+
}
|
|
76
|
+
finally {
|
|
77
|
+
# Cleanup code
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Security Practices
|
|
82
|
+
- Use `PSCredential` objects for credentials
|
|
83
|
+
- Never store plain-text passwords
|
|
84
|
+
- Sign scripts for production
|
|
85
|
+
- Validate and sanitize all input
|
|
86
|
+
|
|
87
|
+
### Performance
|
|
88
|
+
- Use pipeline efficiently
|
|
89
|
+
- Avoid unnecessary loops
|
|
90
|
+
- Use `-Filter` instead of `Where-Object` when possible
|
|
91
|
+
- Measure performance with `Measure-Command`
|
|
92
|
+
|
|
93
|
+
## Project Categories
|
|
94
|
+
|
|
95
|
+
### 1. Automation Scripts
|
|
96
|
+
Task automation, scheduled tasks, output formatting
|
|
97
|
+
|
|
98
|
+
### 2. Modules and Functions
|
|
99
|
+
CmdletBinding, parameter sets, SupportsShouldProcess
|
|
100
|
+
|
|
101
|
+
### 3. DSC Configurations
|
|
102
|
+
Declarative scripting, configuration data separation
|
|
103
|
+
|
|
104
|
+
### 4. Cloud Orchestration
|
|
105
|
+
Azure/AWS cmdlets, ARM/Bicep integration
|
|
106
|
+
|
|
107
|
+
### 5. Administrative Tools
|
|
108
|
+
Active Directory, Exchange, SQL management
|
|
109
|
+
|
|
110
|
+
### 6. Cross-Platform Scripts
|
|
111
|
+
OS-agnostic code, path handling
|
|
112
|
+
|
|
113
|
+
### 7. Legacy Migrations
|
|
114
|
+
Windows PowerShell → PowerShell Core
|
|
115
|
+
|
|
116
|
+
## Configuration
|
|
117
|
+
|
|
118
|
+
Create `.augment/powershell-config.json`:
|
|
119
|
+
|
|
120
|
+
```json
|
|
121
|
+
{
|
|
122
|
+
"powershell_categories": ["automation", "modules"],
|
|
123
|
+
"powershell_version": "7.4",
|
|
124
|
+
"strict_mode": true,
|
|
125
|
+
"static_analysis": {
|
|
126
|
+
"tool": "PSScriptAnalyzer",
|
|
127
|
+
"severity": "Warning"
|
|
128
|
+
},
|
|
129
|
+
"testing": {
|
|
130
|
+
"framework": "Pester",
|
|
131
|
+
"version": "5.x"
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Character Count
|
|
137
|
+
|
|
138
|
+
**Total**: ~162,000 characters
|
|
139
|
+
|
|
140
|
+
## Contents
|
|
141
|
+
|
|
142
|
+
- **6 Universal Rule Files**: Standards applying to all PowerShell projects
|
|
143
|
+
- **1 Configuration Schema**: .augment/powershell-config.json schema documentation
|
|
144
|
+
- **7 Category-Specific Rule Files**: Detailed guidance for each project type
|
|
145
|
+
- **7 Code Examples**: Working examples for each category
|
|
146
|
+
|
|
147
|
+
## Usage
|
|
148
|
+
|
|
149
|
+
The AI agent will automatically apply these standards when working with PowerShell files (*.ps1, *.psm1, *.psd1). Configure your project categories in `.augment/powershell-config.json` to load only relevant rules.
|
|
150
|
+
|
|
151
|
+
## Version
|
|
152
|
+
|
|
153
|
+
**1.0.0** - Initial release
|
|
154
|
+
|