@mytechtoday/augment-extensions 0.7.0 → 1.2.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/AGENTS.md +265 -232
- package/README.md +956 -771
- package/augment-extensions/coding-standards/bash/README.md +196 -196
- package/augment-extensions/coding-standards/bash/module.json +163 -163
- package/augment-extensions/coding-standards/bash/rules/naming-conventions.md +336 -336
- package/augment-extensions/coding-standards/bash/rules/universal-standards.md +289 -289
- package/augment-extensions/coding-standards/css/README.md +40 -40
- package/augment-extensions/coding-standards/css/examples/css-examples.css +550 -550
- package/augment-extensions/coding-standards/css/module.json +44 -44
- package/augment-extensions/coding-standards/css/rules/css-modern-features.md +448 -448
- package/augment-extensions/coding-standards/css/rules/css-standards.md +492 -492
- package/augment-extensions/coding-standards/html/README.md +40 -40
- package/augment-extensions/coding-standards/html/examples/html-examples.html +267 -267
- package/augment-extensions/coding-standards/html/examples/responsive-layout.html +505 -505
- package/augment-extensions/coding-standards/html/module.json +44 -44
- package/augment-extensions/coding-standards/html/rules/html-standards.md +349 -349
- package/augment-extensions/coding-standards/html-css-js/README.md +194 -194
- package/augment-extensions/coding-standards/html-css-js/examples/async-examples.js +487 -487
- package/augment-extensions/coding-standards/html-css-js/examples/css-examples.css +550 -550
- package/augment-extensions/coding-standards/html-css-js/examples/dom-examples.js +667 -667
- package/augment-extensions/coding-standards/html-css-js/examples/html-examples.html +267 -267
- package/augment-extensions/coding-standards/html-css-js/examples/javascript-examples.js +612 -612
- package/augment-extensions/coding-standards/html-css-js/examples/responsive-layout.html +505 -505
- package/augment-extensions/coding-standards/html-css-js/module.json +48 -48
- package/augment-extensions/coding-standards/html-css-js/rules/async-patterns.md +515 -515
- package/augment-extensions/coding-standards/html-css-js/rules/css-modern-features.md +448 -448
- package/augment-extensions/coding-standards/html-css-js/rules/css-standards.md +492 -492
- package/augment-extensions/coding-standards/html-css-js/rules/dom-manipulation.md +439 -439
- package/augment-extensions/coding-standards/html-css-js/rules/html-standards.md +349 -349
- package/augment-extensions/coding-standards/html-css-js/rules/javascript-standards.md +486 -486
- package/augment-extensions/coding-standards/html-css-js/rules/performance.md +463 -463
- package/augment-extensions/coding-standards/html-css-js/rules/tooling.md +543 -543
- package/augment-extensions/coding-standards/js/README.md +46 -46
- package/augment-extensions/coding-standards/js/examples/async-examples.js +487 -487
- package/augment-extensions/coding-standards/js/examples/dom-examples.js +667 -667
- package/augment-extensions/coding-standards/js/examples/javascript-examples.js +612 -612
- package/augment-extensions/coding-standards/js/module.json +49 -49
- package/augment-extensions/coding-standards/js/rules/async-patterns.md +515 -515
- package/augment-extensions/coding-standards/js/rules/dom-manipulation.md +439 -439
- package/augment-extensions/coding-standards/js/rules/javascript-standards.md +486 -486
- package/augment-extensions/coding-standards/js/rules/performance.md +463 -463
- package/augment-extensions/coding-standards/js/rules/tooling.md +543 -543
- package/augment-extensions/coding-standards/php/README.md +248 -248
- package/augment-extensions/coding-standards/php/examples/api-endpoint-example.php +204 -204
- package/augment-extensions/coding-standards/php/examples/cli-command-example.php +206 -206
- package/augment-extensions/coding-standards/php/examples/legacy-refactoring-example.php +234 -234
- package/augment-extensions/coding-standards/php/examples/web-application-example.php +211 -211
- package/augment-extensions/coding-standards/php/examples/woocommerce-extension-example.php +215 -215
- package/augment-extensions/coding-standards/php/examples/wordpress-plugin-example.php +189 -189
- package/augment-extensions/coding-standards/php/module.json +166 -166
- package/augment-extensions/coding-standards/php/rules/api-development.md +480 -480
- package/augment-extensions/coding-standards/php/rules/category-configuration.md +332 -332
- package/augment-extensions/coding-standards/php/rules/cli-tools.md +472 -472
- package/augment-extensions/coding-standards/php/rules/cms-integration.md +561 -561
- package/augment-extensions/coding-standards/php/rules/code-quality.md +402 -402
- package/augment-extensions/coding-standards/php/rules/documentation.md +425 -425
- package/augment-extensions/coding-standards/php/rules/ecommerce.md +627 -627
- package/augment-extensions/coding-standards/php/rules/error-handling.md +336 -336
- package/augment-extensions/coding-standards/php/rules/legacy-migration.md +677 -677
- package/augment-extensions/coding-standards/php/rules/naming-conventions.md +279 -279
- package/augment-extensions/coding-standards/php/rules/performance.md +392 -392
- package/augment-extensions/coding-standards/php/rules/psr-standards.md +186 -186
- package/augment-extensions/coding-standards/php/rules/security.md +358 -358
- package/augment-extensions/coding-standards/php/rules/testing.md +403 -403
- package/augment-extensions/coding-standards/php/rules/type-declarations.md +331 -331
- package/augment-extensions/coding-standards/php/rules/web-applications.md +426 -426
- package/augment-extensions/coding-standards/powershell/README.md +154 -154
- package/augment-extensions/coding-standards/powershell/examples/admin-example.ps1 +272 -272
- package/augment-extensions/coding-standards/powershell/examples/automation-example.ps1 +173 -173
- package/augment-extensions/coding-standards/powershell/examples/cloud-example.ps1 +243 -243
- package/augment-extensions/coding-standards/powershell/examples/cross-platform-example.ps1 +297 -297
- package/augment-extensions/coding-standards/powershell/examples/dsc-example.ps1 +224 -224
- package/augment-extensions/coding-standards/powershell/examples/legacy-migration-example.ps1 +340 -340
- package/augment-extensions/coding-standards/powershell/examples/module-example.psm1 +255 -255
- package/augment-extensions/coding-standards/powershell/module.json +165 -165
- package/augment-extensions/coding-standards/powershell/rules/administrative-tools.md +439 -439
- package/augment-extensions/coding-standards/powershell/rules/automation-scripts.md +240 -240
- package/augment-extensions/coding-standards/powershell/rules/cloud-orchestration.md +384 -384
- package/augment-extensions/coding-standards/powershell/rules/configuration-schema.md +383 -383
- package/augment-extensions/coding-standards/powershell/rules/cross-platform-scripts.md +482 -482
- package/augment-extensions/coding-standards/powershell/rules/dsc-configurations.md +296 -296
- package/augment-extensions/coding-standards/powershell/rules/error-handling.md +314 -314
- package/augment-extensions/coding-standards/powershell/rules/legacy-migrations.md +466 -466
- package/augment-extensions/coding-standards/powershell/rules/modules-functions.md +244 -244
- package/augment-extensions/coding-standards/powershell/rules/naming-conventions.md +266 -266
- package/augment-extensions/coding-standards/powershell/rules/performance-optimization.md +209 -209
- package/augment-extensions/coding-standards/powershell/rules/security-practices.md +314 -314
- package/augment-extensions/coding-standards/powershell/rules/testing-guidelines.md +268 -268
- package/augment-extensions/coding-standards/powershell/rules/universal-standards.md +197 -197
- package/augment-extensions/coding-standards/python/README.md +48 -48
- package/augment-extensions/coding-standards/python/examples/best-practices.py +373 -373
- package/augment-extensions/coding-standards/python/module.json +30 -30
- package/augment-extensions/coding-standards/python/rules/async-patterns.md +884 -884
- package/augment-extensions/coding-standards/python/rules/best-practices.md +232 -232
- package/augment-extensions/coding-standards/python/rules/code-organization.md +220 -220
- package/augment-extensions/coding-standards/python/rules/documentation.md +831 -831
- package/augment-extensions/coding-standards/python/rules/error-handling.md +1008 -1008
- package/augment-extensions/coding-standards/python/rules/naming-conventions.md +172 -172
- package/augment-extensions/coding-standards/python/rules/testing.md +409 -409
- package/augment-extensions/coding-standards/python/rules/tooling.md +446 -446
- package/augment-extensions/coding-standards/python/rules/type-hints.md +253 -253
- package/augment-extensions/coding-standards/react/README.md +45 -45
- package/augment-extensions/coding-standards/react/module.json +27 -27
- package/augment-extensions/coding-standards/react/rules/component-patterns.md +214 -214
- package/augment-extensions/coding-standards/react/rules/hooks-best-practices.md +235 -235
- package/augment-extensions/coding-standards/react/rules/performance.md +300 -300
- package/augment-extensions/coding-standards/react/rules/state-management.md +265 -265
- package/augment-extensions/coding-standards/react/rules/typescript-react.md +271 -271
- package/augment-extensions/coding-standards/typescript/README.md +45 -45
- package/augment-extensions/coding-standards/typescript/module.json +27 -27
- package/augment-extensions/coding-standards/typescript/rules/naming-conventions.md +225 -225
- package/augment-extensions/collections/html-css-js/README.md +82 -82
- package/augment-extensions/collections/html-css-js/collection.json +41 -41
- package/augment-extensions/domain-rules/api-design/README.md +41 -41
- package/augment-extensions/domain-rules/api-design/module.json +27 -27
- package/augment-extensions/domain-rules/api-design/rules/authentication.md +263 -263
- package/augment-extensions/domain-rules/api-design/rules/documentation.md +395 -395
- package/augment-extensions/domain-rules/api-design/rules/error-handling.md +290 -290
- package/augment-extensions/domain-rules/api-design/rules/graphql-api.md +313 -313
- package/augment-extensions/domain-rules/api-design/rules/rest-api.md +214 -214
- package/augment-extensions/domain-rules/api-design/rules/versioning.md +268 -268
- package/augment-extensions/domain-rules/database/README.md +161 -161
- package/augment-extensions/domain-rules/database/examples/flat-database-example.md +793 -793
- package/augment-extensions/domain-rules/database/examples/hybrid-database-example.md +1132 -1132
- package/augment-extensions/domain-rules/database/examples/nosql-document-example.md +868 -868
- package/augment-extensions/domain-rules/database/examples/nosql-graph-example.md +805 -805
- package/augment-extensions/domain-rules/database/examples/relational-schema-example.md +621 -621
- package/augment-extensions/domain-rules/database/examples/vector-database-example.md +965 -965
- package/augment-extensions/domain-rules/database/module.json +28 -28
- package/augment-extensions/domain-rules/database/rules/flat-databases.md +624 -624
- package/augment-extensions/domain-rules/database/rules/nosql-databases.md +588 -588
- package/augment-extensions/domain-rules/database/rules/nosql-document-stores.md +856 -856
- package/augment-extensions/domain-rules/database/rules/nosql-graph-databases.md +778 -778
- package/augment-extensions/domain-rules/database/rules/nosql-key-value-stores.md +963 -963
- package/augment-extensions/domain-rules/database/rules/performance-optimization.md +1076 -1076
- package/augment-extensions/domain-rules/database/rules/relational-databases.md +697 -697
- package/augment-extensions/domain-rules/database/rules/relational-indexing.md +671 -671
- package/augment-extensions/domain-rules/database/rules/relational-query-optimization.md +607 -607
- package/augment-extensions/domain-rules/database/rules/relational-schema-design.md +907 -907
- package/augment-extensions/domain-rules/database/rules/relational-transactions.md +783 -783
- package/augment-extensions/domain-rules/database/rules/security-standards.md +980 -980
- package/augment-extensions/domain-rules/database/rules/universal-best-practices.md +485 -485
- package/augment-extensions/domain-rules/database/rules/vector-databases.md +521 -521
- package/augment-extensions/domain-rules/database/rules/vector-embeddings.md +858 -858
- package/augment-extensions/domain-rules/database/rules/vector-indexing.md +934 -934
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-latte/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-latte/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-mocha/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/catppuccin-mocha/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/dracula/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/dracula/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-dark/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-dark/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-light/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/gruvbox-light/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/high-contrast/README.md +27 -27
- package/augment-extensions/domain-rules/design/color/themes/high-contrast/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/monokai/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/monokai/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/nord/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/nord/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/one-dark/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/one-dark/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/one-light/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/one-light/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/solarized-dark/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/solarized-dark/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/solarized-light/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/solarized-light/module.json +26 -26
- package/augment-extensions/domain-rules/design/color/themes/tokyo-night/README.md +23 -23
- package/augment-extensions/domain-rules/design/color/themes/tokyo-night/module.json +26 -26
- package/augment-extensions/domain-rules/mcp/README.md +150 -150
- package/augment-extensions/domain-rules/mcp/examples/compressed-example.md +522 -522
- package/augment-extensions/domain-rules/mcp/examples/graph-augmented-example.md +520 -520
- package/augment-extensions/domain-rules/mcp/examples/hybrid-example.md +570 -570
- package/augment-extensions/domain-rules/mcp/examples/state-based-example.md +427 -427
- package/augment-extensions/domain-rules/mcp/examples/token-based-example.md +435 -435
- package/augment-extensions/domain-rules/mcp/examples/vector-based-example.md +502 -502
- package/augment-extensions/domain-rules/mcp/module.json +49 -49
- package/augment-extensions/domain-rules/mcp/rules/compressed-mcp.md +595 -595
- package/augment-extensions/domain-rules/mcp/rules/configuration.md +345 -345
- package/augment-extensions/domain-rules/mcp/rules/graph-augmented-mcp.md +687 -687
- package/augment-extensions/domain-rules/mcp/rules/hybrid-mcp.md +636 -636
- package/augment-extensions/domain-rules/mcp/rules/state-based-mcp.md +484 -484
- package/augment-extensions/domain-rules/mcp/rules/testing-validation.md +360 -360
- package/augment-extensions/domain-rules/mcp/rules/token-based-mcp.md +393 -393
- package/augment-extensions/domain-rules/mcp/rules/universal-rules.md +194 -194
- package/augment-extensions/domain-rules/mcp/rules/vector-based-mcp.md +625 -625
- package/augment-extensions/domain-rules/security/README.md +41 -41
- package/augment-extensions/domain-rules/security/module.json +28 -28
- package/augment-extensions/domain-rules/security/rules/authentication-security.md +361 -361
- package/augment-extensions/domain-rules/security/rules/encryption.md +208 -208
- package/augment-extensions/domain-rules/security/rules/input-validation.md +294 -294
- package/augment-extensions/domain-rules/security/rules/owasp-top-10.md +339 -339
- package/augment-extensions/domain-rules/security/rules/secure-coding.md +293 -293
- package/augment-extensions/domain-rules/security/rules/web-security.md +268 -268
- package/augment-extensions/domain-rules/seo-sales-marketing/ANNOUNCEMENT.md +143 -0
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/README.md +140 -136
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/SCHEMA-VALIDATION-REPORT.md +216 -216
- package/augment-extensions/domain-rules/seo-sales-marketing/TEST-VALIDATION.md +129 -0
- package/augment-extensions/domain-rules/seo-sales-marketing/USAGE-GUIDES.md +254 -0
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/brand-kit-example.yaml +292 -292
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/campaign-brief-example.yaml +389 -389
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/content-calendar-example.yaml +643 -643
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/email-newsletter-example.md +376 -376
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/landing-page-example.md +934 -934
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/ppc-ad-copy-example.md +301 -301
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/seo-blog-post-example.md +347 -347
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/examples/social-media-campaign-example.md +606 -606
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/module.json +50 -50
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/affiliate-influencer-marketing.md +593 -593
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/asset-management.md +418 -418
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/brand-consistency.md +210 -210
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/content-marketing.md +337 -337
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/conversion-optimization.md +455 -455
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/direct-sales.md +499 -499
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/email-marketing.md +439 -439
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/legal-compliance.md +227 -227
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/ppc-advertising.md +569 -569
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/seo-optimization.md +470 -470
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/social-media-marketing.md +414 -414
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/rules/universal-marketing.md +177 -177
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/schemas/asset-inventory.schema.json +247 -247
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/schemas/brand-kit.schema.json +326 -326
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/schemas/campaign-brief.schema.json +342 -342
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/schemas/color-palette.schema.json +223 -223
- package/augment-extensions/domain-rules/{marketing-standards/seo-sales-marketing → seo-sales-marketing}/schemas/content-template.schema.json +383 -383
- package/augment-extensions/domain-rules/wordpress/README.md +163 -163
- package/augment-extensions/domain-rules/wordpress/module.json +32 -32
- package/augment-extensions/domain-rules/wordpress/rules/coding-standards.md +617 -617
- package/augment-extensions/domain-rules/wordpress/rules/directory-structure.md +270 -270
- package/augment-extensions/domain-rules/wordpress/rules/file-patterns.md +423 -423
- package/augment-extensions/domain-rules/wordpress/rules/gutenberg-blocks.md +493 -493
- package/augment-extensions/domain-rules/wordpress/rules/performance.md +568 -568
- package/augment-extensions/domain-rules/wordpress/rules/plugin-development.md +510 -510
- package/augment-extensions/domain-rules/wordpress/rules/project-detection.md +251 -251
- package/augment-extensions/domain-rules/wordpress/rules/rest-api.md +501 -501
- package/augment-extensions/domain-rules/wordpress/rules/security.md +564 -564
- package/augment-extensions/domain-rules/wordpress/rules/theme-development.md +388 -388
- package/augment-extensions/domain-rules/wordpress/rules/woocommerce.md +441 -441
- package/augment-extensions/domain-rules/wordpress-plugin/README.md +139 -139
- package/augment-extensions/domain-rules/wordpress-plugin/examples/ajax-plugin.md +1599 -1599
- package/augment-extensions/domain-rules/wordpress-plugin/examples/custom-post-type-plugin.md +1727 -1727
- package/augment-extensions/domain-rules/wordpress-plugin/examples/gutenberg-block-plugin.md +428 -428
- package/augment-extensions/domain-rules/wordpress-plugin/examples/gutenberg-block.md +422 -422
- package/augment-extensions/domain-rules/wordpress-plugin/examples/mvc-plugin.md +1623 -1623
- package/augment-extensions/domain-rules/wordpress-plugin/examples/object-oriented-plugin.md +1343 -1343
- package/augment-extensions/domain-rules/wordpress-plugin/examples/rest-endpoint.md +734 -734
- package/augment-extensions/domain-rules/wordpress-plugin/examples/settings-page-plugin.md +1350 -1350
- package/augment-extensions/domain-rules/wordpress-plugin/examples/simple-procedural-plugin.md +503 -503
- package/augment-extensions/domain-rules/wordpress-plugin/examples/singleton-plugin.md +971 -971
- package/augment-extensions/domain-rules/wordpress-plugin/module.json +53 -53
- package/augment-extensions/domain-rules/wordpress-plugin/rules/activation-hooks.md +770 -770
- package/augment-extensions/domain-rules/wordpress-plugin/rules/admin-interface.md +874 -874
- package/augment-extensions/domain-rules/wordpress-plugin/rules/ajax-handlers.md +629 -629
- package/augment-extensions/domain-rules/wordpress-plugin/rules/asset-management.md +559 -559
- package/augment-extensions/domain-rules/wordpress-plugin/rules/context-providers.md +709 -709
- package/augment-extensions/domain-rules/wordpress-plugin/rules/cron-jobs.md +736 -736
- package/augment-extensions/domain-rules/wordpress-plugin/rules/database-management.md +1057 -1057
- package/augment-extensions/domain-rules/wordpress-plugin/rules/documentation-standards.md +463 -463
- package/augment-extensions/domain-rules/wordpress-plugin/rules/frontend-functionality.md +478 -478
- package/augment-extensions/domain-rules/wordpress-plugin/rules/gutenberg-blocks.md +818 -818
- package/augment-extensions/domain-rules/wordpress-plugin/rules/internationalization.md +416 -416
- package/augment-extensions/domain-rules/wordpress-plugin/rules/migration.md +667 -667
- package/augment-extensions/domain-rules/wordpress-plugin/rules/performance-optimization.md +878 -878
- package/augment-extensions/domain-rules/wordpress-plugin/rules/plugin-architecture.md +693 -693
- package/augment-extensions/domain-rules/wordpress-plugin/rules/plugin-structure.md +352 -352
- package/augment-extensions/domain-rules/wordpress-plugin/rules/rest-api.md +818 -818
- package/augment-extensions/domain-rules/wordpress-plugin/rules/scaffolding-workflow.md +624 -624
- package/augment-extensions/domain-rules/wordpress-plugin/rules/security-best-practices.md +866 -866
- package/augment-extensions/domain-rules/wordpress-plugin/rules/testing-patterns.md +1165 -1165
- package/augment-extensions/domain-rules/wordpress-plugin/rules/testing.md +414 -414
- package/augment-extensions/domain-rules/wordpress-plugin/rules/vscode-integration.md +751 -751
- package/augment-extensions/domain-rules/wordpress-plugin/rules/woocommerce-integration.md +949 -949
- package/augment-extensions/domain-rules/wordpress-plugin/rules/wordpress-org-submission.md +458 -458
- package/augment-extensions/examples/design-patterns/README.md +37 -37
- package/augment-extensions/examples/design-patterns/examples/behavioral-patterns.md +370 -370
- package/augment-extensions/examples/design-patterns/examples/creational-patterns.md +250 -250
- package/augment-extensions/examples/design-patterns/examples/structural-patterns.md +264 -264
- package/augment-extensions/examples/design-patterns/module.json +27 -27
- package/augment-extensions/examples/gutenberg-block-plugin/README.md +101 -101
- package/augment-extensions/examples/gutenberg-block-plugin/examples/testimonial-block.md +428 -428
- package/augment-extensions/examples/gutenberg-block-plugin/module.json +40 -40
- package/augment-extensions/examples/rest-api-plugin/README.md +98 -98
- package/augment-extensions/examples/rest-api-plugin/examples/task-manager-api.md +1299 -1299
- package/augment-extensions/examples/rest-api-plugin/module.json +40 -40
- package/augment-extensions/examples/woocommerce-extension/README.md +98 -98
- package/augment-extensions/examples/woocommerce-extension/examples/product-customizer.md +763 -763
- package/augment-extensions/examples/woocommerce-extension/module.json +40 -40
- package/augment-extensions/workflows/beads/README.md +135 -135
- package/augment-extensions/workflows/beads/examples/complete-workflow-example.md +278 -278
- package/augment-extensions/workflows/beads/module.json +55 -55
- package/augment-extensions/workflows/beads/rules/best-practices.md +398 -398
- package/augment-extensions/workflows/beads/rules/file-format.md +327 -327
- package/augment-extensions/workflows/beads/rules/manual-setup.md +315 -315
- package/augment-extensions/workflows/beads/rules/workflow.md +326 -326
- package/augment-extensions/workflows/beads-integration/IMPLEMENTATION-STATUS.md +145 -145
- package/augment-extensions/workflows/beads-integration/README.md +143 -143
- package/augment-extensions/workflows/beads-integration/config/defaults.json +32 -32
- package/augment-extensions/workflows/beads-integration/config/schema.json +140 -140
- package/augment-extensions/workflows/beads-integration/examples/basic-task-generation.md +293 -293
- package/augment-extensions/workflows/beads-integration/module.json +75 -75
- package/augment-extensions/workflows/beads-integration/rules/core-rules.md +219 -219
- package/augment-extensions/workflows/beads-integration/rules/effectiveness-standards.md +256 -256
- package/augment-extensions/workflows/beads-integration/rules/task-generation.md +607 -607
- package/augment-extensions/workflows/database/README.md +195 -195
- package/augment-extensions/workflows/database/ai-prompt-testing.md +295 -295
- package/augment-extensions/workflows/database/examples/migration-example.md +498 -498
- package/augment-extensions/workflows/database/examples/optimization-example.md +496 -496
- package/augment-extensions/workflows/database/examples/schema-design-example.md +444 -444
- package/augment-extensions/workflows/database/module.json +42 -42
- package/augment-extensions/workflows/database/rules/data-migration.md +249 -249
- package/augment-extensions/workflows/database/rules/documentation-standards.md +339 -339
- package/augment-extensions/workflows/database/rules/migration-workflow.md +352 -352
- package/augment-extensions/workflows/database/rules/optimization-workflow.md +435 -435
- package/augment-extensions/workflows/database/rules/schema-design-workflow.md +535 -535
- package/augment-extensions/workflows/database/rules/testing-patterns.md +305 -305
- package/augment-extensions/workflows/database/rules/workflow.md +458 -458
- package/augment-extensions/workflows/wordpress-plugin/README.md +232 -232
- package/augment-extensions/workflows/wordpress-plugin/ai-prompts.md +839 -839
- package/augment-extensions/workflows/wordpress-plugin/bead-decomposition-patterns.md +854 -854
- package/augment-extensions/workflows/wordpress-plugin/examples/complete-plugin-example.md +540 -540
- package/augment-extensions/workflows/wordpress-plugin/examples/custom-post-type-example.md +1083 -1083
- package/augment-extensions/workflows/wordpress-plugin/examples/feature-addition-workflow.md +669 -669
- package/augment-extensions/workflows/wordpress-plugin/examples/plugin-creation-workflow.md +597 -597
- package/augment-extensions/workflows/wordpress-plugin/examples/secure-form-handler-example.md +925 -925
- package/augment-extensions/workflows/wordpress-plugin/examples/security-audit-workflow.md +752 -752
- package/augment-extensions/workflows/wordpress-plugin/examples/wordpress-org-submission-workflow.md +773 -773
- package/augment-extensions/workflows/wordpress-plugin/module.json +49 -49
- package/augment-extensions/workflows/wordpress-plugin/rules/best-practices.md +942 -942
- package/augment-extensions/workflows/wordpress-plugin/rules/development-workflow.md +702 -702
- package/augment-extensions/workflows/wordpress-plugin/rules/submission-workflow.md +728 -728
- package/augment-extensions/workflows/wordpress-plugin/rules/testing-workflow.md +775 -775
- package/augment-extensions/writing-standards/screenplay/README.md +339 -300
- package/augment-extensions/writing-standards/screenplay/_templates/README.md +121 -121
- package/augment-extensions/writing-standards/screenplay/_templates/genre-template.md +153 -153
- package/augment-extensions/writing-standards/screenplay/_templates/style-template.md +243 -243
- package/augment-extensions/writing-standards/screenplay/_templates/theme-template.md +213 -213
- package/augment-extensions/writing-standards/screenplay/examples/aaa-hollywood-scene.fountain +164 -164
- package/augment-extensions/writing-standards/screenplay/examples/beat-sheet-example.yaml +95 -95
- package/augment-extensions/writing-standards/screenplay/examples/character-profile-example.yaml +116 -116
- package/augment-extensions/writing-standards/screenplay/examples/commercial-30sec.fountain +151 -151
- package/augment-extensions/writing-standards/screenplay/examples/independent-monologue.fountain +67 -67
- package/augment-extensions/writing-standards/screenplay/examples/news-segment.fountain +142 -142
- package/augment-extensions/writing-standards/screenplay/examples/plot-outline-example.yaml +184 -184
- package/augment-extensions/writing-standards/screenplay/examples/tv-episode-teaser.fountain +204 -204
- package/augment-extensions/writing-standards/screenplay/genres/README.md +181 -181
- package/augment-extensions/writing-standards/screenplay/genres/examples/.gitkeep +2 -2
- package/augment-extensions/writing-standards/screenplay/genres/module.json +70 -70
- package/augment-extensions/writing-standards/screenplay/genres/rules/.gitkeep +2 -2
- package/augment-extensions/writing-standards/screenplay/genres/rules/action.md +399 -399
- package/augment-extensions/writing-standards/screenplay/genres/rules/adventure.md +407 -407
- package/augment-extensions/writing-standards/screenplay/genres/rules/animation.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/biographical.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/comedy.md +401 -401
- package/augment-extensions/writing-standards/screenplay/genres/rules/documentary.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/drama.md +409 -409
- package/augment-extensions/writing-standards/screenplay/genres/rules/fantasy.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/historical.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/horror.md +268 -268
- package/augment-extensions/writing-standards/screenplay/genres/rules/musical.md +294 -294
- package/augment-extensions/writing-standards/screenplay/genres/rules/mystery.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/noir.md +294 -294
- package/augment-extensions/writing-standards/screenplay/genres/rules/romance.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/sci-fi.md +289 -289
- package/augment-extensions/writing-standards/screenplay/genres/rules/superhero.md +293 -293
- package/augment-extensions/writing-standards/screenplay/genres/rules/thriller.md +294 -294
- package/augment-extensions/writing-standards/screenplay/genres/rules/western.md +293 -293
- package/augment-extensions/writing-standards/screenplay/module.json +124 -124
- package/augment-extensions/writing-standards/screenplay/rules/aaa-hollywood-films.md +339 -339
- package/augment-extensions/writing-standards/screenplay/rules/ai-integration-testing.md +329 -329
- package/augment-extensions/writing-standards/screenplay/rules/character-development.md +169 -169
- package/augment-extensions/writing-standards/screenplay/rules/commercials.md +437 -437
- package/augment-extensions/writing-standards/screenplay/rules/dialogue-writing.md +263 -263
- package/augment-extensions/writing-standards/screenplay/rules/diversity-inclusion.md +261 -261
- package/augment-extensions/writing-standards/screenplay/rules/examples-guide.md +315 -315
- package/augment-extensions/writing-standards/screenplay/rules/file-organization.md +213 -0
- package/augment-extensions/writing-standards/screenplay/rules/formatting-validation.md +413 -413
- package/augment-extensions/writing-standards/screenplay/rules/fountain-format.md +372 -372
- package/augment-extensions/writing-standards/screenplay/rules/independent-films.md +374 -374
- package/augment-extensions/writing-standards/screenplay/rules/live-tv-productions.md +443 -443
- package/augment-extensions/writing-standards/screenplay/rules/narrative-structures.md +207 -207
- package/augment-extensions/writing-standards/screenplay/rules/news-broadcasts.md +444 -444
- package/augment-extensions/writing-standards/screenplay/rules/pacing-timing.md +331 -331
- package/augment-extensions/writing-standards/screenplay/rules/quality-review-checklist.md +334 -334
- package/augment-extensions/writing-standards/screenplay/rules/quick-reference.md +299 -299
- package/augment-extensions/writing-standards/screenplay/rules/screen-continuity.md +263 -263
- package/augment-extensions/writing-standards/screenplay/rules/streaming-content.md +412 -412
- package/augment-extensions/writing-standards/screenplay/rules/trope-management.md +370 -370
- package/augment-extensions/writing-standards/screenplay/rules/tv-series.md +374 -374
- package/augment-extensions/writing-standards/screenplay/rules/universal-formatting.md +339 -339
- package/augment-extensions/writing-standards/screenplay/rules/vscode-integration.md +277 -277
- package/augment-extensions/writing-standards/screenplay/rules/web-content.md +393 -393
- package/augment-extensions/writing-standards/screenplay/schemas/beat-sheet.json +332 -332
- package/augment-extensions/writing-standards/screenplay/schemas/character-profile.json +247 -247
- package/augment-extensions/writing-standards/screenplay/schemas/feature-selection.json +200 -200
- package/augment-extensions/writing-standards/screenplay/schemas/plot-outline.json +233 -233
- package/augment-extensions/writing-standards/screenplay/schemas/screenplay-config.json +245 -245
- package/augment-extensions/writing-standards/screenplay/schemas/trope-inventory.json +221 -221
- package/augment-extensions/writing-standards/screenplay/styles/README.md +159 -159
- package/augment-extensions/writing-standards/screenplay/styles/examples/.gitkeep +2 -2
- package/augment-extensions/writing-standards/screenplay/styles/examples/style-applications.md +1449 -1449
- package/augment-extensions/writing-standards/screenplay/styles/module.json +64 -64
- package/augment-extensions/writing-standards/screenplay/styles/rules/.gitkeep +2 -2
- package/augment-extensions/writing-standards/screenplay/styles/rules/dialogue-centric.md +520 -520
- package/augment-extensions/writing-standards/screenplay/styles/rules/ensemble.md +499 -499
- package/augment-extensions/writing-standards/screenplay/styles/rules/epic.md +497 -497
- package/augment-extensions/writing-standards/screenplay/styles/rules/experimental.md +492 -492
- package/augment-extensions/writing-standards/screenplay/styles/rules/flashback.md +509 -509
- package/augment-extensions/writing-standards/screenplay/styles/rules/linear.md +490 -490
- package/augment-extensions/writing-standards/screenplay/styles/rules/minimalist.md +499 -499
- package/augment-extensions/writing-standards/screenplay/styles/rules/non-linear.md +501 -501
- package/augment-extensions/writing-standards/screenplay/styles/rules/poetic.md +499 -499
- package/augment-extensions/writing-standards/screenplay/styles/rules/realistic.md +498 -498
- package/augment-extensions/writing-standards/screenplay/styles/rules/satirical.md +499 -499
- package/augment-extensions/writing-standards/screenplay/styles/rules/surreal.md +508 -508
- package/augment-extensions/writing-standards/screenplay/styles/rules/voice-over.md +500 -500
- package/augment-extensions/writing-standards/screenplay/themes/README.md +158 -158
- package/augment-extensions/writing-standards/screenplay/themes/examples/.gitkeep +2 -2
- package/augment-extensions/writing-standards/screenplay/themes/examples/common-mistakes-and-fixes.md +643 -643
- package/augment-extensions/writing-standards/screenplay/themes/examples/complete-scene-example.md +311 -311
- package/augment-extensions/writing-standards/screenplay/themes/examples/individual-theme-examples.md +562 -562
- package/augment-extensions/writing-standards/screenplay/themes/examples/multi-theme-weaving.md +538 -538
- package/augment-extensions/writing-standards/screenplay/themes/examples/theme-application-guide.md +432 -432
- package/augment-extensions/writing-standards/screenplay/themes/examples/theme-integration-across-acts.md +637 -637
- package/augment-extensions/writing-standards/screenplay/themes/module.json +66 -66
- package/augment-extensions/writing-standards/screenplay/themes/rules/.gitkeep +2 -2
- package/augment-extensions/writing-standards/screenplay/themes/rules/ambition.md +458 -458
- package/augment-extensions/writing-standards/screenplay/themes/rules/betrayal.md +490 -490
- package/augment-extensions/writing-standards/screenplay/themes/rules/environment.md +458 -458
- package/augment-extensions/writing-standards/screenplay/themes/rules/fate.md +459 -459
- package/augment-extensions/writing-standards/screenplay/themes/rules/friendship.md +491 -491
- package/augment-extensions/writing-standards/screenplay/themes/rules/growth.md +491 -491
- package/augment-extensions/writing-standards/screenplay/themes/rules/identity.md +490 -490
- package/augment-extensions/writing-standards/screenplay/themes/rules/isolation.md +464 -464
- package/augment-extensions/writing-standards/screenplay/themes/rules/justice.md +461 -461
- package/augment-extensions/writing-standards/screenplay/themes/rules/love.md +489 -489
- package/augment-extensions/writing-standards/screenplay/themes/rules/power.md +494 -494
- package/augment-extensions/writing-standards/screenplay/themes/rules/redemption.md +483 -483
- package/augment-extensions/writing-standards/screenplay/themes/rules/revenge.md +489 -489
- package/augment-extensions/writing-standards/screenplay/themes/rules/survival.md +496 -496
- package/augment-extensions/writing-standards/screenplay/themes/rules/technology.md +463 -463
- package/augment-extensions/writing-standards/screenplay/utils/__tests__/file-organization.test.ts +169 -0
- package/augment-extensions/writing-standards/screenplay/utils/file-organization.ts +165 -0
- package/cli/MODULES.md +302 -302
- package/cli/dist/cli.js +109 -22
- package/cli/dist/cli.js.map +1 -1
- package/cli/dist/commands/gui.d.ts.map +1 -1
- package/cli/dist/commands/gui.js +54 -6
- package/cli/dist/commands/gui.js.map +1 -1
- package/cli/dist/commands/init.d.ts.map +1 -1
- package/cli/dist/commands/init.js +76 -23
- package/cli/dist/commands/init.js.map +1 -1
- package/cli/dist/commands/self-remove.d.ts.map +1 -1
- package/cli/dist/commands/self-remove.js +48 -74
- package/cli/dist/commands/self-remove.js.map +1 -1
- package/cli/dist/commands/show.d.ts +11 -0
- package/cli/dist/commands/show.d.ts.map +1 -1
- package/cli/dist/commands/show.js +120 -0
- package/cli/dist/commands/show.js.map +1 -1
- package/cli/dist/commands/showCompleted.d.ts +21 -0
- package/cli/dist/commands/showCompleted.d.ts.map +1 -0
- package/cli/dist/commands/showCompleted.js +225 -0
- package/cli/dist/commands/showCompleted.js.map +1 -0
- package/cli/dist/commands/skill.js +88 -88
- package/cli/dist/commands/update.d.ts +2 -0
- package/cli/dist/commands/update.d.ts.map +1 -1
- package/cli/dist/commands/update.js +67 -1
- package/cli/dist/commands/update.js.map +1 -1
- package/cli/dist/utils/beadsCompletedChecker.d.ts +72 -0
- package/cli/dist/utils/beadsCompletedChecker.d.ts.map +1 -0
- package/cli/dist/utils/beadsCompletedChecker.js +198 -0
- package/cli/dist/utils/beadsCompletedChecker.js.map +1 -0
- package/cli/dist/utils/catalog-sync.js +13 -13
- package/cli/dist/utils/extractCommandHelp.d.ts +51 -0
- package/cli/dist/utils/extractCommandHelp.d.ts.map +1 -0
- package/cli/dist/utils/extractCommandHelp.js +250 -0
- package/cli/dist/utils/extractCommandHelp.js.map +1 -0
- package/cli/dist/utils/install-rules.js +55 -55
- package/cli/dist/utils/mcp-integration.js +44 -44
- package/cli/dist/utils/rule-install-hooks.js +8 -8
- package/modules.md +667 -630
- package/package.json +85 -85
|
@@ -1,393 +1,393 @@
|
|
|
1
|
-
# Token-Based MCP Guidelines
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
**Token-based MCP** focuses on managing context within the constraints of LLM token limits. This is the most fundamental MCP type and applies to all LLM applications.
|
|
6
|
-
|
|
7
|
-
**Key Challenge**: Modern LLMs have large but finite context windows (e.g., 200k tokens). Effective token management ensures optimal use of this limited resource.
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## 1. Context Window Management
|
|
12
|
-
|
|
13
|
-
### Window Sizing
|
|
14
|
-
|
|
15
|
-
Calculate the **effective context window**:
|
|
16
|
-
|
|
17
|
-
```python
|
|
18
|
-
effective_window = model_max_tokens - output_buffer - system_prompt_tokens
|
|
19
|
-
|
|
20
|
-
# Example: GPT-4o (200k context)
|
|
21
|
-
model_max_tokens = 200000
|
|
22
|
-
output_buffer = 4096 # Reserve for response
|
|
23
|
-
system_prompt_tokens = 500
|
|
24
|
-
effective_window = 200000 - 4096 - 500 = 195404 tokens
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
**Best Practices**:
|
|
28
|
-
- Always reserve output buffer (typically 2k-4k tokens)
|
|
29
|
-
- Account for system prompt in budget
|
|
30
|
-
- Use token counters (tiktoken, transformers) for accuracy
|
|
31
|
-
- Monitor actual vs budgeted usage
|
|
32
|
-
|
|
33
|
-
### Sliding Windows
|
|
34
|
-
|
|
35
|
-
Implement rolling context with overlap:
|
|
36
|
-
|
|
37
|
-
```python
|
|
38
|
-
def sliding_window(text, window_size=4096, overlap=512):
|
|
39
|
-
"""Create sliding windows with overlap"""
|
|
40
|
-
chunks = []
|
|
41
|
-
start = 0
|
|
42
|
-
|
|
43
|
-
while start < len(text):
|
|
44
|
-
end = start + window_size
|
|
45
|
-
chunk = text[start:end]
|
|
46
|
-
chunks.append(chunk)
|
|
47
|
-
start = end - overlap # Overlap for context continuity
|
|
48
|
-
|
|
49
|
-
return chunks
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
**Use Cases**:
|
|
53
|
-
- Long document processing
|
|
54
|
-
- Streaming applications
|
|
55
|
-
- Incremental analysis
|
|
56
|
-
|
|
57
|
-
### Hierarchical Summarization
|
|
58
|
-
|
|
59
|
-
Multi-level summaries for long documents:
|
|
60
|
-
|
|
61
|
-
```python
|
|
62
|
-
def hierarchical_summarize(document, levels=3):
|
|
63
|
-
"""Create multi-level summaries"""
|
|
64
|
-
summaries = {}
|
|
65
|
-
|
|
66
|
-
# Level 1: Detailed summary (50% compression)
|
|
67
|
-
summaries['detailed'] = summarize(document, ratio=0.5)
|
|
68
|
-
|
|
69
|
-
# Level 2: Medium summary (20% compression)
|
|
70
|
-
summaries['medium'] = summarize(summaries['detailed'], ratio=0.4)
|
|
71
|
-
|
|
72
|
-
# Level 3: Gist (5% compression)
|
|
73
|
-
summaries['gist'] = summarize(summaries['medium'], ratio=0.25)
|
|
74
|
-
|
|
75
|
-
return summaries
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
**Use Cases**:
|
|
79
|
-
- Legal contracts
|
|
80
|
-
- Research papers
|
|
81
|
-
- Technical documentation
|
|
82
|
-
|
|
83
|
-
### Entity Spotlighting
|
|
84
|
-
|
|
85
|
-
Maintain entity reference tables:
|
|
86
|
-
|
|
87
|
-
```python
|
|
88
|
-
def extract_entity_table(text):
|
|
89
|
-
"""Extract key entities and their context"""
|
|
90
|
-
entities = {}
|
|
91
|
-
|
|
92
|
-
# Extract entities (using NER or LLM)
|
|
93
|
-
for entity in extract_entities(text):
|
|
94
|
-
entities[entity.name] = {
|
|
95
|
-
'type': entity.type,
|
|
96
|
-
'first_mention': entity.first_occurrence,
|
|
97
|
-
'context': entity.surrounding_text[:200],
|
|
98
|
-
'frequency': entity.count
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
return entities
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
**Use Cases**:
|
|
105
|
-
- Multi-party conversations
|
|
106
|
-
- Complex narratives
|
|
107
|
-
- Technical documents with many terms
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
## 2. Prompt Compression
|
|
112
|
-
|
|
113
|
-
### Template Optimization
|
|
114
|
-
|
|
115
|
-
Minimize system prompt tokens:
|
|
116
|
-
|
|
117
|
-
```python
|
|
118
|
-
# ❌ Verbose (150 tokens)
|
|
119
|
-
system_prompt = """
|
|
120
|
-
You are a helpful AI assistant. Your role is to provide accurate and
|
|
121
|
-
comprehensive answers to user questions. Please be polite, professional,
|
|
122
|
-
and thorough in your responses. Always cite sources when possible.
|
|
123
|
-
"""
|
|
124
|
-
|
|
125
|
-
# ✅ Concise (40 tokens)
|
|
126
|
-
system_prompt = "Helpful AI assistant. Provide accurate, cited answers."
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
**Best Practices**:
|
|
130
|
-
- Remove filler words
|
|
131
|
-
- Use abbreviations where clear
|
|
132
|
-
- Combine related instructions
|
|
133
|
-
- Test that compression doesn't hurt quality
|
|
134
|
-
|
|
135
|
-
### Instruction Compression
|
|
136
|
-
|
|
137
|
-
Use concise, effective instructions:
|
|
138
|
-
|
|
139
|
-
```python
|
|
140
|
-
# ❌ Verbose
|
|
141
|
-
instruction = "Please analyze the following document and extract all the key points, then summarize them in a bullet list format"
|
|
142
|
-
|
|
143
|
-
# ✅ Concise
|
|
144
|
-
instruction = "Extract and list key points from document"
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
### Example Selection
|
|
148
|
-
|
|
149
|
-
Choose minimal representative examples:
|
|
150
|
-
|
|
151
|
-
```python
|
|
152
|
-
def select_few_shot_examples(query, example_pool, k=3):
|
|
153
|
-
"""Select most relevant examples for few-shot prompting"""
|
|
154
|
-
# Embed query and examples
|
|
155
|
-
query_embedding = embed(query)
|
|
156
|
-
example_embeddings = [embed(ex) for ex in example_pool]
|
|
157
|
-
|
|
158
|
-
# Select top-k most similar
|
|
159
|
-
similarities = [cosine_similarity(query_embedding, ex_emb)
|
|
160
|
-
for ex_emb in example_embeddings]
|
|
161
|
-
top_k_indices = sorted(range(len(similarities)),
|
|
162
|
-
key=lambda i: similarities[i],
|
|
163
|
-
reverse=True)[:k]
|
|
164
|
-
|
|
165
|
-
return [example_pool[i] for i in top_k_indices]
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
### Format Efficiency
|
|
169
|
-
|
|
170
|
-
Use token-efficient formats:
|
|
171
|
-
|
|
172
|
-
```python
|
|
173
|
-
# ❌ Verbose JSON (120 tokens)
|
|
174
|
-
data = {
|
|
175
|
-
"customer_name": "John Smith",
|
|
176
|
-
"customer_email": "john@example.com",
|
|
177
|
-
"order_id": "ORD-12345",
|
|
178
|
-
"order_total": "$99.99"
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
# ✅ Compact format (60 tokens)
|
|
182
|
-
data = "Name: John Smith | Email: john@example.com | Order: ORD-12345 | Total: $99.99"
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
---
|
|
186
|
-
|
|
187
|
-
## 3. Chunking Strategies
|
|
188
|
-
|
|
189
|
-
### Semantic Chunking
|
|
190
|
-
|
|
191
|
-
Split on logical boundaries:
|
|
192
|
-
|
|
193
|
-
```python
|
|
194
|
-
def semantic_chunk(text, max_chunk_size=512):
|
|
195
|
-
"""Chunk text on semantic boundaries"""
|
|
196
|
-
# Split on paragraphs first
|
|
197
|
-
paragraphs = text.split('\n\n')
|
|
198
|
-
|
|
199
|
-
chunks = []
|
|
200
|
-
current_chunk = ""
|
|
201
|
-
|
|
202
|
-
for para in paragraphs:
|
|
203
|
-
para_tokens = count_tokens(para)
|
|
204
|
-
current_tokens = count_tokens(current_chunk)
|
|
205
|
-
|
|
206
|
-
if current_tokens + para_tokens > max_chunk_size:
|
|
207
|
-
# Chunk is full, start new one
|
|
208
|
-
if current_chunk:
|
|
209
|
-
chunks.append(current_chunk)
|
|
210
|
-
current_chunk = para
|
|
211
|
-
else:
|
|
212
|
-
current_chunk += "\n\n" + para if current_chunk else para
|
|
213
|
-
|
|
214
|
-
if current_chunk:
|
|
215
|
-
chunks.append(current_chunk)
|
|
216
|
-
|
|
217
|
-
return chunks
|
|
218
|
-
```
|
|
219
|
-
|
|
220
|
-
**Boundaries** (in order of preference):
|
|
221
|
-
1. Document sections
|
|
222
|
-
2. Paragraphs
|
|
223
|
-
3. Sentences
|
|
224
|
-
4. Fixed token count (last resort)
|
|
225
|
-
|
|
226
|
-
### Size Optimization
|
|
227
|
-
|
|
228
|
-
Balance chunk size vs retrieval granularity:
|
|
229
|
-
|
|
230
|
-
```python
|
|
231
|
-
# Small chunks (256 tokens): High precision, low recall
|
|
232
|
-
# Medium chunks (512 tokens): Balanced (recommended)
|
|
233
|
-
# Large chunks (1024 tokens): High recall, low precision
|
|
234
|
-
|
|
235
|
-
CHUNK_SIZE_GUIDELINES = {
|
|
236
|
-
'qa': 512, # Question answering
|
|
237
|
-
'summarization': 1024, # Document summarization
|
|
238
|
-
'search': 256, # Semantic search
|
|
239
|
-
'chat': 512 # Conversational AI
|
|
240
|
-
}
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
### Overlap
|
|
244
|
-
|
|
245
|
-
Include context overlap between chunks:
|
|
246
|
-
|
|
247
|
-
```python
|
|
248
|
-
def chunk_with_overlap(text, chunk_size=512, overlap=50):
|
|
249
|
-
"""Create chunks with overlap for context continuity"""
|
|
250
|
-
tokens = tokenize(text)
|
|
251
|
-
chunks = []
|
|
252
|
-
|
|
253
|
-
start = 0
|
|
254
|
-
while start < len(tokens):
|
|
255
|
-
end = min(start + chunk_size, len(tokens))
|
|
256
|
-
chunk_tokens = tokens[start:end]
|
|
257
|
-
chunks.append(detokenize(chunk_tokens))
|
|
258
|
-
start = end - overlap # Overlap for continuity
|
|
259
|
-
|
|
260
|
-
return chunks
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
**Overlap Guidelines**:
|
|
264
|
-
- 10-20% overlap for most use cases
|
|
265
|
-
- Higher overlap (30-40%) for complex documents
|
|
266
|
-
- Lower overlap (5-10%) for cost-sensitive applications
|
|
267
|
-
|
|
268
|
-
### Metadata
|
|
269
|
-
|
|
270
|
-
Attach source/position metadata to chunks:
|
|
271
|
-
|
|
272
|
-
```python
|
|
273
|
-
def chunk_with_metadata(document, chunk_size=512):
|
|
274
|
-
"""Create chunks with metadata"""
|
|
275
|
-
chunks = []
|
|
276
|
-
|
|
277
|
-
for i, chunk_text in enumerate(semantic_chunk(document.text, chunk_size)):
|
|
278
|
-
chunks.append({
|
|
279
|
-
'text': chunk_text,
|
|
280
|
-
'metadata': {
|
|
281
|
-
'source': document.source,
|
|
282
|
-
'chunk_index': i,
|
|
283
|
-
'total_chunks': len(chunks),
|
|
284
|
-
'document_id': document.id,
|
|
285
|
-
'timestamp': document.timestamp
|
|
286
|
-
}
|
|
287
|
-
})
|
|
288
|
-
|
|
289
|
-
return chunks
|
|
290
|
-
```
|
|
291
|
-
|
|
292
|
-
---
|
|
293
|
-
|
|
294
|
-
## 4. Token Budgeting
|
|
295
|
-
|
|
296
|
-
### Allocation
|
|
297
|
-
|
|
298
|
-
Define budget for each component:
|
|
299
|
-
|
|
300
|
-
```python
|
|
301
|
-
class TokenBudget:
|
|
302
|
-
def __init__(self, max_tokens=200000):
|
|
303
|
-
self.max_tokens = max_tokens
|
|
304
|
-
self.allocation = {
|
|
305
|
-
'system_prompt': 500, # 0.25%
|
|
306
|
-
'user_input': 2000, # 1%
|
|
307
|
-
'retrieved_context': 160000, # 80%
|
|
308
|
-
'conversation_history': 33404, # 16.7%
|
|
309
|
-
'output_buffer': 4096 # 2.05%
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
def validate(self):
|
|
313
|
-
total = sum(self.allocation.values())
|
|
314
|
-
assert total <= self.max_tokens, f"Budget exceeds max: {total} > {self.max_tokens}"
|
|
315
|
-
```
|
|
316
|
-
|
|
317
|
-
### Monitoring
|
|
318
|
-
|
|
319
|
-
Track actual vs budgeted usage:
|
|
320
|
-
|
|
321
|
-
```python
|
|
322
|
-
def monitor_token_usage(request_id, actual_tokens, budgeted_tokens):
|
|
323
|
-
"""Monitor token usage"""
|
|
324
|
-
usage_ratio = actual_tokens / budgeted_tokens
|
|
325
|
-
|
|
326
|
-
if usage_ratio > 1.0:
|
|
327
|
-
logger.warning(f"Token budget exceeded: {actual_tokens} > {budgeted_tokens}")
|
|
328
|
-
metrics.increment('token_budget_exceeded', tags={'request_id': request_id})
|
|
329
|
-
|
|
330
|
-
metrics.gauge('token_usage_ratio', usage_ratio, tags={'request_id': request_id})
|
|
331
|
-
```
|
|
332
|
-
|
|
333
|
-
### Dynamic Adjustment
|
|
334
|
-
|
|
335
|
-
Reallocate budget based on request type:
|
|
336
|
-
|
|
337
|
-
```python
|
|
338
|
-
def adjust_budget(request_type, base_budget):
|
|
339
|
-
"""Adjust budget based on request type"""
|
|
340
|
-
adjustments = {
|
|
341
|
-
'simple_qa': {'retrieved_context': 0.5, 'output_buffer': 1.5},
|
|
342
|
-
'summarization': {'retrieved_context': 1.2, 'output_buffer': 0.8},
|
|
343
|
-
'analysis': {'retrieved_context': 1.0, 'output_buffer': 1.2}
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
multipliers = adjustments.get(request_type, {})
|
|
347
|
-
adjusted = base_budget.copy()
|
|
348
|
-
|
|
349
|
-
for component, multiplier in multipliers.items():
|
|
350
|
-
adjusted[component] = int(base_budget[component] * multiplier)
|
|
351
|
-
|
|
352
|
-
return adjusted
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
### Cost Estimation
|
|
356
|
-
|
|
357
|
-
Calculate cost before API calls:
|
|
358
|
-
|
|
359
|
-
```python
|
|
360
|
-
def estimate_cost(tokens, model='gpt-4o'):
|
|
361
|
-
"""Estimate API cost"""
|
|
362
|
-
pricing = {
|
|
363
|
-
'gpt-4o': {'input': 0.005, 'output': 0.015}, # per 1k tokens
|
|
364
|
-
'claude-3.5-sonnet': {'input': 0.003, 'output': 0.015}
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
input_cost = (tokens['input'] / 1000) * pricing[model]['input']
|
|
368
|
-
output_cost = (tokens['output'] / 1000) * pricing[model]['output']
|
|
369
|
-
|
|
370
|
-
return input_cost + output_cost
|
|
371
|
-
```
|
|
372
|
-
|
|
373
|
-
---
|
|
374
|
-
|
|
375
|
-
## Best Practices
|
|
376
|
-
|
|
377
|
-
✅ **DO**:
|
|
378
|
-
- Use accurate token counters (tiktoken for OpenAI, transformers for others)
|
|
379
|
-
- Cap injected context at 80-85% of window to allow output space
|
|
380
|
-
- Implement token-aware truncation (preserve important content)
|
|
381
|
-
- Cache tokenized prompts when possible
|
|
382
|
-
- Profile token usage in production
|
|
383
|
-
- Use semantic chunking over fixed-size chunking
|
|
384
|
-
- Include overlap between chunks for context continuity
|
|
385
|
-
|
|
386
|
-
❌ **DON'T**:
|
|
387
|
-
- Estimate tokens by character count (inaccurate)
|
|
388
|
-
- Fill entire context window (no room for output)
|
|
389
|
-
- Truncate context arbitrarily (lose important information)
|
|
390
|
-
- Ignore token budget overruns
|
|
391
|
-
- Use verbose prompts unnecessarily
|
|
392
|
-
- Chunk on arbitrary boundaries (mid-sentence)
|
|
393
|
-
|
|
1
|
+
# Token-Based MCP Guidelines
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
**Token-based MCP** focuses on managing context within the constraints of LLM token limits. This is the most fundamental MCP type and applies to all LLM applications.
|
|
6
|
+
|
|
7
|
+
**Key Challenge**: Modern LLMs have large but finite context windows (e.g., 200k tokens). Effective token management ensures optimal use of this limited resource.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1. Context Window Management
|
|
12
|
+
|
|
13
|
+
### Window Sizing
|
|
14
|
+
|
|
15
|
+
Calculate the **effective context window**:
|
|
16
|
+
|
|
17
|
+
```python
|
|
18
|
+
effective_window = model_max_tokens - output_buffer - system_prompt_tokens
|
|
19
|
+
|
|
20
|
+
# Example: GPT-4o (200k context)
|
|
21
|
+
model_max_tokens = 200000
|
|
22
|
+
output_buffer = 4096 # Reserve for response
|
|
23
|
+
system_prompt_tokens = 500
|
|
24
|
+
effective_window = 200000 - 4096 - 500 = 195404 tokens
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**Best Practices**:
|
|
28
|
+
- Always reserve output buffer (typically 2k-4k tokens)
|
|
29
|
+
- Account for system prompt in budget
|
|
30
|
+
- Use token counters (tiktoken, transformers) for accuracy
|
|
31
|
+
- Monitor actual vs budgeted usage
|
|
32
|
+
|
|
33
|
+
### Sliding Windows
|
|
34
|
+
|
|
35
|
+
Implement rolling context with overlap:
|
|
36
|
+
|
|
37
|
+
```python
|
|
38
|
+
def sliding_window(text, window_size=4096, overlap=512):
|
|
39
|
+
"""Create sliding windows with overlap"""
|
|
40
|
+
chunks = []
|
|
41
|
+
start = 0
|
|
42
|
+
|
|
43
|
+
while start < len(text):
|
|
44
|
+
end = start + window_size
|
|
45
|
+
chunk = text[start:end]
|
|
46
|
+
chunks.append(chunk)
|
|
47
|
+
start = end - overlap # Overlap for context continuity
|
|
48
|
+
|
|
49
|
+
return chunks
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Use Cases**:
|
|
53
|
+
- Long document processing
|
|
54
|
+
- Streaming applications
|
|
55
|
+
- Incremental analysis
|
|
56
|
+
|
|
57
|
+
### Hierarchical Summarization
|
|
58
|
+
|
|
59
|
+
Multi-level summaries for long documents:
|
|
60
|
+
|
|
61
|
+
```python
|
|
62
|
+
def hierarchical_summarize(document, levels=3):
|
|
63
|
+
"""Create multi-level summaries"""
|
|
64
|
+
summaries = {}
|
|
65
|
+
|
|
66
|
+
# Level 1: Detailed summary (50% compression)
|
|
67
|
+
summaries['detailed'] = summarize(document, ratio=0.5)
|
|
68
|
+
|
|
69
|
+
# Level 2: Medium summary (20% compression)
|
|
70
|
+
summaries['medium'] = summarize(summaries['detailed'], ratio=0.4)
|
|
71
|
+
|
|
72
|
+
# Level 3: Gist (5% compression)
|
|
73
|
+
summaries['gist'] = summarize(summaries['medium'], ratio=0.25)
|
|
74
|
+
|
|
75
|
+
return summaries
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**Use Cases**:
|
|
79
|
+
- Legal contracts
|
|
80
|
+
- Research papers
|
|
81
|
+
- Technical documentation
|
|
82
|
+
|
|
83
|
+
### Entity Spotlighting
|
|
84
|
+
|
|
85
|
+
Maintain entity reference tables:
|
|
86
|
+
|
|
87
|
+
```python
|
|
88
|
+
def extract_entity_table(text):
|
|
89
|
+
"""Extract key entities and their context"""
|
|
90
|
+
entities = {}
|
|
91
|
+
|
|
92
|
+
# Extract entities (using NER or LLM)
|
|
93
|
+
for entity in extract_entities(text):
|
|
94
|
+
entities[entity.name] = {
|
|
95
|
+
'type': entity.type,
|
|
96
|
+
'first_mention': entity.first_occurrence,
|
|
97
|
+
'context': entity.surrounding_text[:200],
|
|
98
|
+
'frequency': entity.count
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return entities
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**Use Cases**:
|
|
105
|
+
- Multi-party conversations
|
|
106
|
+
- Complex narratives
|
|
107
|
+
- Technical documents with many terms
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## 2. Prompt Compression
|
|
112
|
+
|
|
113
|
+
### Template Optimization
|
|
114
|
+
|
|
115
|
+
Minimize system prompt tokens:
|
|
116
|
+
|
|
117
|
+
```python
|
|
118
|
+
# ❌ Verbose (150 tokens)
|
|
119
|
+
system_prompt = """
|
|
120
|
+
You are a helpful AI assistant. Your role is to provide accurate and
|
|
121
|
+
comprehensive answers to user questions. Please be polite, professional,
|
|
122
|
+
and thorough in your responses. Always cite sources when possible.
|
|
123
|
+
"""
|
|
124
|
+
|
|
125
|
+
# ✅ Concise (40 tokens)
|
|
126
|
+
system_prompt = "Helpful AI assistant. Provide accurate, cited answers."
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**Best Practices**:
|
|
130
|
+
- Remove filler words
|
|
131
|
+
- Use abbreviations where clear
|
|
132
|
+
- Combine related instructions
|
|
133
|
+
- Test that compression doesn't hurt quality
|
|
134
|
+
|
|
135
|
+
### Instruction Compression
|
|
136
|
+
|
|
137
|
+
Use concise, effective instructions:
|
|
138
|
+
|
|
139
|
+
```python
|
|
140
|
+
# ❌ Verbose
|
|
141
|
+
instruction = "Please analyze the following document and extract all the key points, then summarize them in a bullet list format"
|
|
142
|
+
|
|
143
|
+
# ✅ Concise
|
|
144
|
+
instruction = "Extract and list key points from document"
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Example Selection
|
|
148
|
+
|
|
149
|
+
Choose minimal representative examples:
|
|
150
|
+
|
|
151
|
+
```python
|
|
152
|
+
def select_few_shot_examples(query, example_pool, k=3):
|
|
153
|
+
"""Select most relevant examples for few-shot prompting"""
|
|
154
|
+
# Embed query and examples
|
|
155
|
+
query_embedding = embed(query)
|
|
156
|
+
example_embeddings = [embed(ex) for ex in example_pool]
|
|
157
|
+
|
|
158
|
+
# Select top-k most similar
|
|
159
|
+
similarities = [cosine_similarity(query_embedding, ex_emb)
|
|
160
|
+
for ex_emb in example_embeddings]
|
|
161
|
+
top_k_indices = sorted(range(len(similarities)),
|
|
162
|
+
key=lambda i: similarities[i],
|
|
163
|
+
reverse=True)[:k]
|
|
164
|
+
|
|
165
|
+
return [example_pool[i] for i in top_k_indices]
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Format Efficiency
|
|
169
|
+
|
|
170
|
+
Use token-efficient formats:
|
|
171
|
+
|
|
172
|
+
```python
|
|
173
|
+
# ❌ Verbose JSON (120 tokens)
|
|
174
|
+
data = {
|
|
175
|
+
"customer_name": "John Smith",
|
|
176
|
+
"customer_email": "john@example.com",
|
|
177
|
+
"order_id": "ORD-12345",
|
|
178
|
+
"order_total": "$99.99"
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
# ✅ Compact format (60 tokens)
|
|
182
|
+
data = "Name: John Smith | Email: john@example.com | Order: ORD-12345 | Total: $99.99"
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## 3. Chunking Strategies
|
|
188
|
+
|
|
189
|
+
### Semantic Chunking
|
|
190
|
+
|
|
191
|
+
Split on logical boundaries:
|
|
192
|
+
|
|
193
|
+
```python
|
|
194
|
+
def semantic_chunk(text, max_chunk_size=512):
|
|
195
|
+
"""Chunk text on semantic boundaries"""
|
|
196
|
+
# Split on paragraphs first
|
|
197
|
+
paragraphs = text.split('\n\n')
|
|
198
|
+
|
|
199
|
+
chunks = []
|
|
200
|
+
current_chunk = ""
|
|
201
|
+
|
|
202
|
+
for para in paragraphs:
|
|
203
|
+
para_tokens = count_tokens(para)
|
|
204
|
+
current_tokens = count_tokens(current_chunk)
|
|
205
|
+
|
|
206
|
+
if current_tokens + para_tokens > max_chunk_size:
|
|
207
|
+
# Chunk is full, start new one
|
|
208
|
+
if current_chunk:
|
|
209
|
+
chunks.append(current_chunk)
|
|
210
|
+
current_chunk = para
|
|
211
|
+
else:
|
|
212
|
+
current_chunk += "\n\n" + para if current_chunk else para
|
|
213
|
+
|
|
214
|
+
if current_chunk:
|
|
215
|
+
chunks.append(current_chunk)
|
|
216
|
+
|
|
217
|
+
return chunks
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
**Boundaries** (in order of preference):
|
|
221
|
+
1. Document sections
|
|
222
|
+
2. Paragraphs
|
|
223
|
+
3. Sentences
|
|
224
|
+
4. Fixed token count (last resort)
|
|
225
|
+
|
|
226
|
+
### Size Optimization
|
|
227
|
+
|
|
228
|
+
Balance chunk size vs retrieval granularity:
|
|
229
|
+
|
|
230
|
+
```python
|
|
231
|
+
# Small chunks (256 tokens): High precision, low recall
|
|
232
|
+
# Medium chunks (512 tokens): Balanced (recommended)
|
|
233
|
+
# Large chunks (1024 tokens): High recall, low precision
|
|
234
|
+
|
|
235
|
+
CHUNK_SIZE_GUIDELINES = {
|
|
236
|
+
'qa': 512, # Question answering
|
|
237
|
+
'summarization': 1024, # Document summarization
|
|
238
|
+
'search': 256, # Semantic search
|
|
239
|
+
'chat': 512 # Conversational AI
|
|
240
|
+
}
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### Overlap
|
|
244
|
+
|
|
245
|
+
Include context overlap between chunks:
|
|
246
|
+
|
|
247
|
+
```python
|
|
248
|
+
def chunk_with_overlap(text, chunk_size=512, overlap=50):
|
|
249
|
+
"""Create chunks with overlap for context continuity"""
|
|
250
|
+
tokens = tokenize(text)
|
|
251
|
+
chunks = []
|
|
252
|
+
|
|
253
|
+
start = 0
|
|
254
|
+
while start < len(tokens):
|
|
255
|
+
end = min(start + chunk_size, len(tokens))
|
|
256
|
+
chunk_tokens = tokens[start:end]
|
|
257
|
+
chunks.append(detokenize(chunk_tokens))
|
|
258
|
+
start = end - overlap # Overlap for continuity
|
|
259
|
+
|
|
260
|
+
return chunks
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
**Overlap Guidelines**:
|
|
264
|
+
- 10-20% overlap for most use cases
|
|
265
|
+
- Higher overlap (30-40%) for complex documents
|
|
266
|
+
- Lower overlap (5-10%) for cost-sensitive applications
|
|
267
|
+
|
|
268
|
+
### Metadata
|
|
269
|
+
|
|
270
|
+
Attach source/position metadata to chunks:
|
|
271
|
+
|
|
272
|
+
```python
|
|
273
|
+
def chunk_with_metadata(document, chunk_size=512):
|
|
274
|
+
"""Create chunks with metadata"""
|
|
275
|
+
chunks = []
|
|
276
|
+
|
|
277
|
+
for i, chunk_text in enumerate(semantic_chunk(document.text, chunk_size)):
|
|
278
|
+
chunks.append({
|
|
279
|
+
'text': chunk_text,
|
|
280
|
+
'metadata': {
|
|
281
|
+
'source': document.source,
|
|
282
|
+
'chunk_index': i,
|
|
283
|
+
'total_chunks': len(chunks),
|
|
284
|
+
'document_id': document.id,
|
|
285
|
+
'timestamp': document.timestamp
|
|
286
|
+
}
|
|
287
|
+
})
|
|
288
|
+
|
|
289
|
+
return chunks
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
## 4. Token Budgeting
|
|
295
|
+
|
|
296
|
+
### Allocation
|
|
297
|
+
|
|
298
|
+
Define budget for each component:
|
|
299
|
+
|
|
300
|
+
```python
|
|
301
|
+
class TokenBudget:
|
|
302
|
+
def __init__(self, max_tokens=200000):
|
|
303
|
+
self.max_tokens = max_tokens
|
|
304
|
+
self.allocation = {
|
|
305
|
+
'system_prompt': 500, # 0.25%
|
|
306
|
+
'user_input': 2000, # 1%
|
|
307
|
+
'retrieved_context': 160000, # 80%
|
|
308
|
+
'conversation_history': 33404, # 16.7%
|
|
309
|
+
'output_buffer': 4096 # 2.05%
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
def validate(self):
|
|
313
|
+
total = sum(self.allocation.values())
|
|
314
|
+
assert total <= self.max_tokens, f"Budget exceeds max: {total} > {self.max_tokens}"
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
### Monitoring
|
|
318
|
+
|
|
319
|
+
Track actual vs budgeted usage:
|
|
320
|
+
|
|
321
|
+
```python
|
|
322
|
+
def monitor_token_usage(request_id, actual_tokens, budgeted_tokens):
|
|
323
|
+
"""Monitor token usage"""
|
|
324
|
+
usage_ratio = actual_tokens / budgeted_tokens
|
|
325
|
+
|
|
326
|
+
if usage_ratio > 1.0:
|
|
327
|
+
logger.warning(f"Token budget exceeded: {actual_tokens} > {budgeted_tokens}")
|
|
328
|
+
metrics.increment('token_budget_exceeded', tags={'request_id': request_id})
|
|
329
|
+
|
|
330
|
+
metrics.gauge('token_usage_ratio', usage_ratio, tags={'request_id': request_id})
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
### Dynamic Adjustment
|
|
334
|
+
|
|
335
|
+
Reallocate budget based on request type:
|
|
336
|
+
|
|
337
|
+
```python
|
|
338
|
+
def adjust_budget(request_type, base_budget):
|
|
339
|
+
"""Adjust budget based on request type"""
|
|
340
|
+
adjustments = {
|
|
341
|
+
'simple_qa': {'retrieved_context': 0.5, 'output_buffer': 1.5},
|
|
342
|
+
'summarization': {'retrieved_context': 1.2, 'output_buffer': 0.8},
|
|
343
|
+
'analysis': {'retrieved_context': 1.0, 'output_buffer': 1.2}
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
multipliers = adjustments.get(request_type, {})
|
|
347
|
+
adjusted = base_budget.copy()
|
|
348
|
+
|
|
349
|
+
for component, multiplier in multipliers.items():
|
|
350
|
+
adjusted[component] = int(base_budget[component] * multiplier)
|
|
351
|
+
|
|
352
|
+
return adjusted
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
### Cost Estimation
|
|
356
|
+
|
|
357
|
+
Calculate cost before API calls:
|
|
358
|
+
|
|
359
|
+
```python
|
|
360
|
+
def estimate_cost(tokens, model='gpt-4o'):
|
|
361
|
+
"""Estimate API cost"""
|
|
362
|
+
pricing = {
|
|
363
|
+
'gpt-4o': {'input': 0.005, 'output': 0.015}, # per 1k tokens
|
|
364
|
+
'claude-3.5-sonnet': {'input': 0.003, 'output': 0.015}
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
input_cost = (tokens['input'] / 1000) * pricing[model]['input']
|
|
368
|
+
output_cost = (tokens['output'] / 1000) * pricing[model]['output']
|
|
369
|
+
|
|
370
|
+
return input_cost + output_cost
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
---
|
|
374
|
+
|
|
375
|
+
## Best Practices
|
|
376
|
+
|
|
377
|
+
✅ **DO**:
|
|
378
|
+
- Use accurate token counters (tiktoken for OpenAI, transformers for others)
|
|
379
|
+
- Cap injected context at 80-85% of window to allow output space
|
|
380
|
+
- Implement token-aware truncation (preserve important content)
|
|
381
|
+
- Cache tokenized prompts when possible
|
|
382
|
+
- Profile token usage in production
|
|
383
|
+
- Use semantic chunking over fixed-size chunking
|
|
384
|
+
- Include overlap between chunks for context continuity
|
|
385
|
+
|
|
386
|
+
❌ **DON'T**:
|
|
387
|
+
- Estimate tokens by character count (inaccurate)
|
|
388
|
+
- Fill entire context window (no room for output)
|
|
389
|
+
- Truncate context arbitrarily (lose important information)
|
|
390
|
+
- Ignore token budget overruns
|
|
391
|
+
- Use verbose prompts unnecessarily
|
|
392
|
+
- Chunk on arbitrary boundaries (mid-sentence)
|
|
393
|
+
|