@mytechtoday/augment-extensions 0.1.2 → 0.4.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/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/domain-rules/wordpress/README.md +163 -0
- package/augment-extensions/domain-rules/wordpress/module.json +32 -0
- package/augment-extensions/domain-rules/wordpress/rules/coding-standards.md +617 -0
- package/augment-extensions/domain-rules/wordpress/rules/directory-structure.md +270 -0
- package/augment-extensions/domain-rules/wordpress/rules/file-patterns.md +423 -0
- package/augment-extensions/domain-rules/wordpress/rules/gutenberg-blocks.md +493 -0
- package/augment-extensions/domain-rules/wordpress/rules/performance.md +568 -0
- package/augment-extensions/domain-rules/wordpress/rules/plugin-development.md +510 -0
- package/augment-extensions/domain-rules/wordpress/rules/project-detection.md +251 -0
- package/augment-extensions/domain-rules/wordpress/rules/rest-api.md +501 -0
- package/augment-extensions/domain-rules/wordpress/rules/security.md +564 -0
- package/augment-extensions/domain-rules/wordpress/rules/theme-development.md +388 -0
- package/augment-extensions/domain-rules/wordpress/rules/woocommerce.md +441 -0
- package/augment-extensions/domain-rules/wordpress-plugin/README.md +139 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/ajax-plugin.md +1599 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/custom-post-type-plugin.md +1727 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/gutenberg-block-plugin.md +428 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/gutenberg-block.md +422 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/mvc-plugin.md +1623 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/object-oriented-plugin.md +1343 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/rest-endpoint.md +734 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/settings-page-plugin.md +1350 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/simple-procedural-plugin.md +503 -0
- package/augment-extensions/domain-rules/wordpress-plugin/examples/singleton-plugin.md +971 -0
- package/augment-extensions/domain-rules/wordpress-plugin/module.json +53 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/activation-hooks.md +770 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/admin-interface.md +874 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/ajax-handlers.md +629 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/asset-management.md +559 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/context-providers.md +709 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/cron-jobs.md +736 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/database-management.md +1057 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/documentation-standards.md +463 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/frontend-functionality.md +478 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/gutenberg-blocks.md +818 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/internationalization.md +416 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/migration.md +667 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/performance-optimization.md +878 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/plugin-architecture.md +693 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/plugin-structure.md +352 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/rest-api.md +818 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/scaffolding-workflow.md +624 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/security-best-practices.md +866 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/testing-patterns.md +1165 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/testing.md +414 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/vscode-integration.md +751 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/woocommerce-integration.md +949 -0
- package/augment-extensions/domain-rules/wordpress-plugin/rules/wordpress-org-submission.md +458 -0
- package/augment-extensions/examples/gutenberg-block-plugin/README.md +101 -0
- package/augment-extensions/examples/gutenberg-block-plugin/examples/testimonial-block.md +428 -0
- package/augment-extensions/examples/gutenberg-block-plugin/module.json +40 -0
- package/augment-extensions/examples/rest-api-plugin/README.md +98 -0
- package/augment-extensions/examples/rest-api-plugin/examples/task-manager-api.md +1299 -0
- package/augment-extensions/examples/rest-api-plugin/module.json +40 -0
- package/augment-extensions/examples/woocommerce-extension/README.md +98 -0
- package/augment-extensions/examples/woocommerce-extension/examples/product-customizer.md +763 -0
- package/augment-extensions/examples/woocommerce-extension/module.json +40 -0
- package/augment-extensions/workflows/beads/module.json +4 -3
- 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/workflows/wordpress-plugin/README.md +232 -0
- package/augment-extensions/workflows/wordpress-plugin/ai-prompts.md +839 -0
- package/augment-extensions/workflows/wordpress-plugin/bead-decomposition-patterns.md +854 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/complete-plugin-example.md +540 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/custom-post-type-example.md +1083 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/feature-addition-workflow.md +669 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/plugin-creation-workflow.md +597 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/secure-form-handler-example.md +925 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/security-audit-workflow.md +752 -0
- package/augment-extensions/workflows/wordpress-plugin/examples/wordpress-org-submission-workflow.md +773 -0
- package/augment-extensions/workflows/wordpress-plugin/module.json +49 -0
- package/augment-extensions/workflows/wordpress-plugin/rules/best-practices.md +942 -0
- package/augment-extensions/workflows/wordpress-plugin/rules/development-workflow.md +702 -0
- package/augment-extensions/workflows/wordpress-plugin/rules/submission-workflow.md +728 -0
- package/augment-extensions/workflows/wordpress-plugin/rules/testing-workflow.md +775 -0
- package/augment-extensions/writing-standards/screenplay/README.md +171 -0
- package/augment-extensions/writing-standards/screenplay/examples/aaa-hollywood-scene.fountain +164 -0
- package/augment-extensions/writing-standards/screenplay/module.json +124 -0
- package/augment-extensions/writing-standards/screenplay/rules/universal-formatting.md +339 -0
- package/cli/MODULES.md +302 -0
- package/cli/dist/cli.js +142 -9
- 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.map +1 -1
- package/cli/dist/commands/show.js +42 -71
- 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/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/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 +153 -0
- package/cli/dist/utils/module-system.d.ts.map +1 -0
- package/cli/dist/utils/module-system.js +528 -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 +534 -70
- package/package.json +12 -3
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
# Screenplay Writing Standards
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
Comprehensive screenplay writing and crafting standards for AI-driven content creation across multiple formats and industries.
|
|
6
|
+
|
|
7
|
+
**Version**: 1.0.0
|
|
8
|
+
**Type**: writing-standards
|
|
9
|
+
**Character Count**: ~TBD
|
|
10
|
+
|
|
11
|
+
## Key Benefits
|
|
12
|
+
|
|
13
|
+
✅ **Industry-Standard Formatting** - AMPAS Nicholl Fellowship formatting standards
|
|
14
|
+
✅ **Narrative Frameworks** - Syd Field, Blake Snyder, Joseph Campbell structures
|
|
15
|
+
✅ **Category-Specific Rules** - 8 screenplay categories (Hollywood, indie, TV, web, news, commercials, streaming, live TV)
|
|
16
|
+
✅ **Character Development** - Programmatic character arcs, traits, motivations
|
|
17
|
+
✅ **Dialogue Mastery** - Natural speech, subtext, character voice
|
|
18
|
+
✅ **Screen Continuity** - Visual consistency rules (180-degree rule, match cuts)
|
|
19
|
+
✅ **Fountain Format** - Industry-standard plain-text screenplay markup
|
|
20
|
+
✅ **VS Code Integration** - Better Fountain extension support
|
|
21
|
+
✅ **Export Tools** - Final Draft (.fdx), PDF, HTML export
|
|
22
|
+
|
|
23
|
+
## Installation
|
|
24
|
+
|
|
25
|
+
### With CLI (Recommended)
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
augx link writing-standards/screenplay
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Manual Setup
|
|
32
|
+
|
|
33
|
+
1. Copy `augment-extensions/writing-standards/screenplay/` to your project
|
|
34
|
+
2. Create `.augment/screenplay-config.json` with category selection
|
|
35
|
+
3. Reference rule files in your AI prompts
|
|
36
|
+
|
|
37
|
+
## Configuration
|
|
38
|
+
|
|
39
|
+
Create `.augment/screenplay-config.json`:
|
|
40
|
+
|
|
41
|
+
```json
|
|
42
|
+
{
|
|
43
|
+
"categories": ["aaa-hollywood-films"],
|
|
44
|
+
"universalRules": true,
|
|
45
|
+
"fountainFormat": true,
|
|
46
|
+
"exportFormats": ["fdx", "pdf"]
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Available Categories
|
|
51
|
+
|
|
52
|
+
1. **aaa-hollywood-films** - AAA Hollywood blockbusters
|
|
53
|
+
2. **independent-films** - Independent/art-house films
|
|
54
|
+
3. **tv-series** - Television series (episodic)
|
|
55
|
+
4. **web-content** - Web series and short-form content
|
|
56
|
+
5. **news-broadcasts** - News segments and broadcasts
|
|
57
|
+
6. **commercials** - Advertising and commercials
|
|
58
|
+
7. **streaming-content** - Streaming platform content
|
|
59
|
+
8. **live-tv-productions** - Live TV productions
|
|
60
|
+
|
|
61
|
+
## Directory Structure
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
augment-extensions/writing-standards/screenplay/
|
|
65
|
+
├── module.json # Module metadata
|
|
66
|
+
├── README.md # This file
|
|
67
|
+
├── rules/ # Screenplay writing rules
|
|
68
|
+
│ ├── universal-formatting.md # AMPAS formatting standards
|
|
69
|
+
│ ├── narrative-structures.md # Three-act, beat sheets, hero's journey
|
|
70
|
+
│ ├── character-development.md # Character arcs and development
|
|
71
|
+
│ ├── dialogue-writing.md # Dialogue best practices
|
|
72
|
+
│ ├── screen-continuity.md # Visual consistency rules
|
|
73
|
+
│ ├── pacing-timing.md # Pacing and timing guidelines
|
|
74
|
+
│ ├── diversity-inclusion.md # Diversity and inclusion standards
|
|
75
|
+
│ ├── aaa-hollywood-films.md # AAA Hollywood category rules
|
|
76
|
+
│ ├── independent-films.md # Independent film category rules
|
|
77
|
+
│ ├── tv-series.md # TV series category rules
|
|
78
|
+
│ ├── web-content.md # Web content category rules
|
|
79
|
+
│ ├── news-broadcasts.md # News broadcast category rules
|
|
80
|
+
│ ├── commercials.md # Commercial category rules
|
|
81
|
+
│ ├── streaming-content.md # Streaming content category rules
|
|
82
|
+
│ └── live-tv-productions.md # Live TV category rules
|
|
83
|
+
├── schemas/ # JSON schemas for screenplay data
|
|
84
|
+
│ ├── character-profile.json # Character profile schema
|
|
85
|
+
│ ├── beat-sheet.json # Beat sheet schema
|
|
86
|
+
│ ├── plot-outline.json # Plot outline schema
|
|
87
|
+
│ └── trope-inventory.json # Trope inventory schema
|
|
88
|
+
└── examples/ # Example screenplay files
|
|
89
|
+
├── aaa-hollywood-scene.fountain
|
|
90
|
+
├── independent-monologue.fountain
|
|
91
|
+
├── tv-episode-teaser.fountain
|
|
92
|
+
├── news-segment.fountain
|
|
93
|
+
├── commercial-30sec.fountain
|
|
94
|
+
├── character-profile-example.yaml
|
|
95
|
+
├── beat-sheet-example.yaml
|
|
96
|
+
└── plot-outline-example.yaml
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Core Guidelines
|
|
100
|
+
|
|
101
|
+
### Universal Formatting (AMPAS Standards)
|
|
102
|
+
|
|
103
|
+
- **Font**: 12-point Courier or Courier New
|
|
104
|
+
- **Margins**: 1-inch top/bottom/right, 1.5-inch left
|
|
105
|
+
- **Page Length**: ~1 page per minute of screen time
|
|
106
|
+
- **Scene Headings**: ALL CAPS, INT./EXT., location, time of day
|
|
107
|
+
- **Action**: Present tense, active voice, visual descriptions
|
|
108
|
+
- **Dialogue**: Character name centered, dialogue indented
|
|
109
|
+
- **Transitions**: RIGHT-ALIGNED (FADE IN:, CUT TO:, DISSOLVE TO:)
|
|
110
|
+
|
|
111
|
+
### Narrative Structures
|
|
112
|
+
|
|
113
|
+
1. **Three-Act Structure** (Syd Field)
|
|
114
|
+
- Act I: Setup (25% - pages 1-30)
|
|
115
|
+
- Act II: Confrontation (50% - pages 30-90)
|
|
116
|
+
- Act III: Resolution (25% - pages 90-120)
|
|
117
|
+
|
|
118
|
+
2. **Save the Cat Beat Sheet** (Blake Snyder)
|
|
119
|
+
- Opening Image, Theme Stated, Setup, Catalyst, Debate, Break into Two, B Story, Fun and Games, Midpoint, Bad Guys Close In, All Is Lost, Dark Night of the Soul, Break into Three, Finale, Final Image
|
|
120
|
+
|
|
121
|
+
3. **Hero's Journey** (Joseph Campbell)
|
|
122
|
+
- Ordinary World, Call to Adventure, Refusal, Meeting the Mentor, Crossing the Threshold, Tests/Allies/Enemies, Approach, Ordeal, Reward, The Road Back, Resurrection, Return with Elixir
|
|
123
|
+
|
|
124
|
+
### Character Development
|
|
125
|
+
|
|
126
|
+
- **Character Arc**: Transformation from beginning to end
|
|
127
|
+
- **Traits**: Physical, psychological, sociological
|
|
128
|
+
- **Motivations**: Internal and external goals
|
|
129
|
+
- **Relationships**: Protagonist, antagonist, allies, mentors
|
|
130
|
+
- **Dialogue Voice**: Unique speech patterns per character
|
|
131
|
+
|
|
132
|
+
## VS Code Integration
|
|
133
|
+
|
|
134
|
+
### Better Fountain Extension
|
|
135
|
+
|
|
136
|
+
1. Install: `ext install piersdeseilligny.betterfountain`
|
|
137
|
+
2. Open `.fountain` files for syntax highlighting
|
|
138
|
+
3. Use `Ctrl+Shift+P` → "Fountain: Export to PDF"
|
|
139
|
+
|
|
140
|
+
### Fountain Syntax
|
|
141
|
+
|
|
142
|
+
```fountain
|
|
143
|
+
INT. COFFEE SHOP - DAY
|
|
144
|
+
|
|
145
|
+
SARAH, 30s, sits alone with a laptop.
|
|
146
|
+
|
|
147
|
+
SARAH
|
|
148
|
+
(to herself)
|
|
149
|
+
This is it. The moment of truth.
|
|
150
|
+
|
|
151
|
+
She hits ENTER. Waits.
|
|
152
|
+
|
|
153
|
+
FADE OUT.
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Export Formats
|
|
157
|
+
|
|
158
|
+
- **Final Draft (.fdx)**: Industry-standard format
|
|
159
|
+
- **PDF**: Print-ready screenplay
|
|
160
|
+
- **HTML**: Web-friendly format
|
|
161
|
+
|
|
162
|
+
## References
|
|
163
|
+
|
|
164
|
+
- [AMPAS Nicholl Fellowship Requirements](https://www.oscars.org/nicholl/requirements)
|
|
165
|
+
- [Fountain Specification](https://fountain.io/)
|
|
166
|
+
- [Final Draft](https://www.finaldraft.com/)
|
|
167
|
+
- Syd Field: "Screenplay: The Foundations of Screenwriting"
|
|
168
|
+
- Blake Snyder: "Save the Cat!"
|
|
169
|
+
- Joseph Campbell: "The Hero with a Thousand Faces"
|
|
170
|
+
- Robert McKee: "Story"
|
|
171
|
+
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
Title: THE LAST PROTOCOL
|
|
2
|
+
Credit: Written by
|
|
3
|
+
Author: AI Agent (Example)
|
|
4
|
+
Draft date: 2026-01-30
|
|
5
|
+
|
|
6
|
+
===
|
|
7
|
+
|
|
8
|
+
FADE IN:
|
|
9
|
+
|
|
10
|
+
EXT. TOKYO SKYLINE - NIGHT
|
|
11
|
+
|
|
12
|
+
Neon lights pierce through rain. A city that never sleeps.
|
|
13
|
+
|
|
14
|
+
INT. PENTHOUSE APARTMENT - CONTINUOUS
|
|
15
|
+
|
|
16
|
+
Floor-to-ceiling windows overlook the city. Minimalist. Cold.
|
|
17
|
+
|
|
18
|
+
ALEX CHEN, 35, ex-military, scars tell stories, stands at the window. Phone to ear.
|
|
19
|
+
|
|
20
|
+
ALEX
|
|
21
|
+
(into phone)
|
|
22
|
+
I'm out. Find someone else.
|
|
23
|
+
|
|
24
|
+
VOICE (V.O.)
|
|
25
|
+
(filtered, distorted)
|
|
26
|
+
You don't get to be out, Alex. Not after what you know.
|
|
27
|
+
|
|
28
|
+
Alex hangs up. Tosses the phone on a glass table.
|
|
29
|
+
|
|
30
|
+
A RED DOT appears on the window. Laser sight.
|
|
31
|
+
|
|
32
|
+
Alex DIVES as the window EXPLODES. Glass rains down.
|
|
33
|
+
|
|
34
|
+
EXT. ROOFTOP ACROSS THE STREET - CONTINUOUS
|
|
35
|
+
|
|
36
|
+
SNIPER, masked, adjusts scope. Fires again.
|
|
37
|
+
|
|
38
|
+
INT. PENTHOUSE APARTMENT - CONTINUOUS
|
|
39
|
+
|
|
40
|
+
Alex rolls behind a concrete pillar. Pulls a GLOCK from an ankle holster.
|
|
41
|
+
|
|
42
|
+
ALEX
|
|
43
|
+
(to herself)
|
|
44
|
+
So much for retirement.
|
|
45
|
+
|
|
46
|
+
She low-crawls to a side door. Bullets PUNCH through the walls above her.
|
|
47
|
+
|
|
48
|
+
INT. PENTHOUSE HALLWAY - CONTINUOUS
|
|
49
|
+
|
|
50
|
+
Alex bursts through. Sprints toward the elevator.
|
|
51
|
+
|
|
52
|
+
The elevator doors are CLOSING. She slides through just in time.
|
|
53
|
+
|
|
54
|
+
INT. ELEVATOR - CONTINUOUS
|
|
55
|
+
|
|
56
|
+
Alex catches her breath. Checks the gun. Full magazine.
|
|
57
|
+
|
|
58
|
+
The elevator LURCHES. Stops between floors.
|
|
59
|
+
|
|
60
|
+
VOICE (V.O.)
|
|
61
|
+
(over speaker)
|
|
62
|
+
Going somewhere?
|
|
63
|
+
|
|
64
|
+
The lights CUT OUT. Emergency lighting kicks in. Red glow.
|
|
65
|
+
|
|
66
|
+
ALEX
|
|
67
|
+
(calm, deadly)
|
|
68
|
+
You made a mistake.
|
|
69
|
+
|
|
70
|
+
She PUNCHES through the ceiling panel. Pulls herself up.
|
|
71
|
+
|
|
72
|
+
INT. ELEVATOR SHAFT - CONTINUOUS
|
|
73
|
+
|
|
74
|
+
Alex climbs the cable. Hand over hand. Thirty floors up.
|
|
75
|
+
|
|
76
|
+
Below, the elevator PLUMMETS. CRASHES at the bottom.
|
|
77
|
+
|
|
78
|
+
Alex doesn't look down. Keeps climbing.
|
|
79
|
+
|
|
80
|
+
She reaches a maintenance door. Kicks it open.
|
|
81
|
+
|
|
82
|
+
INT. MAINTENANCE CORRIDOR - CONTINUOUS
|
|
83
|
+
|
|
84
|
+
Narrow. Pipes and wiring. Alex moves fast.
|
|
85
|
+
|
|
86
|
+
A FIGURE steps out ahead. Gun raised.
|
|
87
|
+
|
|
88
|
+
OPERATIVE
|
|
89
|
+
End of the line.
|
|
90
|
+
|
|
91
|
+
Alex doesn't slow down. Runs STRAIGHT at him.
|
|
92
|
+
|
|
93
|
+
The Operative FIRES. Alex slides under the shot. Sweeps his legs.
|
|
94
|
+
|
|
95
|
+
He goes down. Alex disarms him in one fluid motion.
|
|
96
|
+
|
|
97
|
+
ALEX
|
|
98
|
+
Who sent you?
|
|
99
|
+
|
|
100
|
+
OPERATIVE
|
|
101
|
+
(laughing)
|
|
102
|
+
You really don't know, do you?
|
|
103
|
+
|
|
104
|
+
Alex pistol-whips him. He's out cold.
|
|
105
|
+
|
|
106
|
+
She takes his radio. Listens.
|
|
107
|
+
|
|
108
|
+
RADIO VOICE (V.O.)
|
|
109
|
+
Target is in the maintenance level. All units converge.
|
|
110
|
+
|
|
111
|
+
ALEX
|
|
112
|
+
(into radio, mimicking)
|
|
113
|
+
Copy that. Moving to intercept.
|
|
114
|
+
|
|
115
|
+
She drops the radio. Crushes it under her boot.
|
|
116
|
+
|
|
117
|
+
INT. PARKING GARAGE - MOMENTS LATER
|
|
118
|
+
|
|
119
|
+
Alex emerges from a service door. Scans the area.
|
|
120
|
+
|
|
121
|
+
Rows of luxury cars. Empty. Too quiet.
|
|
122
|
+
|
|
123
|
+
She moves between vehicles. Reaches a BLACK MOTORCYCLE.
|
|
124
|
+
|
|
125
|
+
Hotwires it in seconds. Engine ROARS to life.
|
|
126
|
+
|
|
127
|
+
HEADLIGHTS flood the garage. Three BLACK SUVS screech in.
|
|
128
|
+
|
|
129
|
+
ALEX
|
|
130
|
+
(smirking)
|
|
131
|
+
Showtime.
|
|
132
|
+
|
|
133
|
+
She GUNS the throttle. The motorcycle LAUNCHES forward.
|
|
134
|
+
|
|
135
|
+
The SUVs give chase. Bullets RICOCHET off concrete pillars.
|
|
136
|
+
|
|
137
|
+
Alex weaves through the garage. Hits a ramp. Goes AIRBORNE.
|
|
138
|
+
|
|
139
|
+
EXT. CITY STREET - CONTINUOUS
|
|
140
|
+
|
|
141
|
+
The motorcycle lands hard. Alex doesn't flinch.
|
|
142
|
+
|
|
143
|
+
She races through traffic. The SUVs follow, smashing through cars.
|
|
144
|
+
|
|
145
|
+
PEDESTRIANS scatter. Horns BLARE.
|
|
146
|
+
|
|
147
|
+
Alex spots an alley. Cuts hard right.
|
|
148
|
+
|
|
149
|
+
EXT. NARROW ALLEY - CONTINUOUS
|
|
150
|
+
|
|
151
|
+
Barely wide enough for the bike. The SUVs can't follow.
|
|
152
|
+
|
|
153
|
+
Alex emerges on the other side. Slows down. Blends into traffic.
|
|
154
|
+
|
|
155
|
+
She pulls out a burner phone. Dials.
|
|
156
|
+
|
|
157
|
+
ALEX
|
|
158
|
+
(into phone)
|
|
159
|
+
It's me. I need a favor.
|
|
160
|
+
|
|
161
|
+
FADE OUT.
|
|
162
|
+
|
|
163
|
+
THE END
|
|
164
|
+
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "screenplay",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"displayName": "Screenplay Writing Standards",
|
|
5
|
+
"description": "Comprehensive screenplay writing and crafting standards for AI-driven content creation across AAA Hollywood films, independent films, TV series, web content, news broadcasts, commercials, streaming content, and live TV productions",
|
|
6
|
+
"type": "writing-standards",
|
|
7
|
+
"language": "screenplay",
|
|
8
|
+
"tags": [
|
|
9
|
+
"screenplay",
|
|
10
|
+
"writing",
|
|
11
|
+
"film",
|
|
12
|
+
"tv",
|
|
13
|
+
"narrative",
|
|
14
|
+
"dialogue",
|
|
15
|
+
"formatting",
|
|
16
|
+
"fountain",
|
|
17
|
+
"final-draft",
|
|
18
|
+
"ampas",
|
|
19
|
+
"hollywood",
|
|
20
|
+
"independent",
|
|
21
|
+
"streaming",
|
|
22
|
+
"web-content",
|
|
23
|
+
"news",
|
|
24
|
+
"commercials"
|
|
25
|
+
],
|
|
26
|
+
"dependencies": [],
|
|
27
|
+
"augment": {
|
|
28
|
+
"characterCount": 0,
|
|
29
|
+
"priority": "high",
|
|
30
|
+
"category": "writing-standards"
|
|
31
|
+
},
|
|
32
|
+
"installation": {
|
|
33
|
+
"required": false,
|
|
34
|
+
"steps": [
|
|
35
|
+
"Link module using: augx link writing-standards/screenplay",
|
|
36
|
+
"Configure category in .augment/screenplay-config.json",
|
|
37
|
+
"Install VS Code extension: Better Fountain (optional)",
|
|
38
|
+
"Use Fountain format (.fountain) for screenplay files"
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
"configuration": {
|
|
42
|
+
"file": ".augment/screenplay-config.json",
|
|
43
|
+
"schema": {
|
|
44
|
+
"categories": {
|
|
45
|
+
"type": "array",
|
|
46
|
+
"items": {
|
|
47
|
+
"enum": [
|
|
48
|
+
"aaa-hollywood-films",
|
|
49
|
+
"independent-films",
|
|
50
|
+
"tv-series",
|
|
51
|
+
"web-content",
|
|
52
|
+
"news-broadcasts",
|
|
53
|
+
"commercials",
|
|
54
|
+
"streaming-content",
|
|
55
|
+
"live-tv-productions"
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
"description": "Select screenplay categories to apply"
|
|
59
|
+
},
|
|
60
|
+
"universalRules": {
|
|
61
|
+
"type": "boolean",
|
|
62
|
+
"default": true,
|
|
63
|
+
"description": "Apply universal formatting and narrative standards"
|
|
64
|
+
},
|
|
65
|
+
"fountainFormat": {
|
|
66
|
+
"type": "boolean",
|
|
67
|
+
"default": true,
|
|
68
|
+
"description": "Use Fountain markup format"
|
|
69
|
+
},
|
|
70
|
+
"exportFormats": {
|
|
71
|
+
"type": "array",
|
|
72
|
+
"items": {
|
|
73
|
+
"enum": ["fdx", "pdf", "html"]
|
|
74
|
+
},
|
|
75
|
+
"description": "Supported export formats"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
"contents": {
|
|
80
|
+
"rules": [
|
|
81
|
+
"universal-formatting.md",
|
|
82
|
+
"narrative-structures.md",
|
|
83
|
+
"character-development.md",
|
|
84
|
+
"dialogue-writing.md",
|
|
85
|
+
"screen-continuity.md",
|
|
86
|
+
"pacing-timing.md",
|
|
87
|
+
"diversity-inclusion.md",
|
|
88
|
+
"aaa-hollywood-films.md",
|
|
89
|
+
"independent-films.md",
|
|
90
|
+
"tv-series.md",
|
|
91
|
+
"web-content.md",
|
|
92
|
+
"news-broadcasts.md",
|
|
93
|
+
"commercials.md",
|
|
94
|
+
"streaming-content.md",
|
|
95
|
+
"live-tv-productions.md"
|
|
96
|
+
],
|
|
97
|
+
"schemas": [
|
|
98
|
+
"character-profile.json",
|
|
99
|
+
"beat-sheet.json",
|
|
100
|
+
"plot-outline.json",
|
|
101
|
+
"trope-inventory.json"
|
|
102
|
+
],
|
|
103
|
+
"examples": [
|
|
104
|
+
"aaa-hollywood-scene.fountain",
|
|
105
|
+
"independent-monologue.fountain",
|
|
106
|
+
"tv-episode-teaser.fountain",
|
|
107
|
+
"news-segment.fountain",
|
|
108
|
+
"commercial-30sec.fountain",
|
|
109
|
+
"character-profile-example.yaml",
|
|
110
|
+
"beat-sheet-example.yaml",
|
|
111
|
+
"plot-outline-example.yaml"
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
"references": {
|
|
115
|
+
"ampas": "https://www.oscars.org/nicholl/requirements",
|
|
116
|
+
"fountain": "https://fountain.io/",
|
|
117
|
+
"finalDraft": "https://www.finaldraft.com/",
|
|
118
|
+
"sydField": "Screenplay: The Foundations of Screenwriting",
|
|
119
|
+
"blakeSnyder": "Save the Cat!",
|
|
120
|
+
"josephCampbell": "The Hero with a Thousand Faces",
|
|
121
|
+
"robertMcKee": "Story: Substance, Structure, Style and the Principles of Screenwriting"
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|