@jwikman/bc-code-intelligence-mcp 1.5.7-dev.1
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/LICENSE +21 -0
- package/README.md +165 -0
- package/dist/cache/cache-manager.d.ts +95 -0
- package/dist/cache/cache-manager.d.ts.map +1 -0
- package/dist/cache/cache-manager.js +328 -0
- package/dist/cache/cache-manager.js.map +1 -0
- package/dist/cli/bc-code-intel-cli.d.ts +9 -0
- package/dist/cli/bc-code-intel-cli.d.ts.map +1 -0
- package/dist/cli/bc-code-intel-cli.js +440 -0
- package/dist/cli/bc-code-intel-cli.js.map +1 -0
- package/dist/config/config-loader.d.ts +28 -0
- package/dist/config/config-loader.d.ts.map +1 -0
- package/dist/config/config-loader.js +497 -0
- package/dist/config/config-loader.js.map +1 -0
- package/dist/config/config-validator.d.ts +84 -0
- package/dist/config/config-validator.d.ts.map +1 -0
- package/dist/config/config-validator.js +608 -0
- package/dist/config/config-validator.js.map +1 -0
- package/dist/config/test-config-loader.d.ts +10 -0
- package/dist/config/test-config-loader.d.ts.map +1 -0
- package/dist/config/test-config-loader.js +135 -0
- package/dist/config/test-config-loader.js.map +1 -0
- package/dist/config/test-enhanced-layer-service.d.ts +7 -0
- package/dist/config/test-enhanced-layer-service.d.ts.map +1 -0
- package/dist/config/test-enhanced-layer-service.js +104 -0
- package/dist/config/test-enhanced-layer-service.js.map +1 -0
- package/dist/config/test-git-layer.d.ts +7 -0
- package/dist/config/test-git-layer.d.ts.map +1 -0
- package/dist/config/test-git-layer.js +68 -0
- package/dist/config/test-git-layer.js.map +1 -0
- package/dist/dev/hot-reload.d.ts +91 -0
- package/dist/dev/hot-reload.d.ts.map +1 -0
- package/dist/dev/hot-reload.js +358 -0
- package/dist/dev/hot-reload.js.map +1 -0
- package/dist/index.d.ts +82 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1211 -0
- package/dist/index.js.map +1 -0
- package/dist/layers/base-layer.d.ts +133 -0
- package/dist/layers/base-layer.d.ts.map +1 -0
- package/dist/layers/base-layer.js +290 -0
- package/dist/layers/base-layer.js.map +1 -0
- package/dist/layers/embedded-layer.d.ts +130 -0
- package/dist/layers/embedded-layer.d.ts.map +1 -0
- package/dist/layers/embedded-layer.js +612 -0
- package/dist/layers/embedded-layer.js.map +1 -0
- package/dist/layers/git-layer.d.ts +77 -0
- package/dist/layers/git-layer.d.ts.map +1 -0
- package/dist/layers/git-layer.js +529 -0
- package/dist/layers/git-layer.js.map +1 -0
- package/dist/layers/index.d.ts +12 -0
- package/dist/layers/index.d.ts.map +1 -0
- package/dist/layers/index.js +11 -0
- package/dist/layers/index.js.map +1 -0
- package/dist/layers/layer-service.d.ts +135 -0
- package/dist/layers/layer-service.d.ts.map +1 -0
- package/dist/layers/layer-service.js +586 -0
- package/dist/layers/layer-service.js.map +1 -0
- package/dist/layers/project-layer.d.ts +58 -0
- package/dist/layers/project-layer.d.ts.map +1 -0
- package/dist/layers/project-layer.js +286 -0
- package/dist/layers/project-layer.js.map +1 -0
- package/dist/monitoring/production-monitor.d.ts +148 -0
- package/dist/monitoring/production-monitor.d.ts.map +1 -0
- package/dist/monitoring/production-monitor.js +463 -0
- package/dist/monitoring/production-monitor.js.map +1 -0
- package/dist/performance/performance-monitor.d.ts +99 -0
- package/dist/performance/performance-monitor.d.ts.map +1 -0
- package/dist/performance/performance-monitor.js +253 -0
- package/dist/performance/performance-monitor.js.map +1 -0
- package/dist/sdk/bc-code-intel-client.d.ts +175 -0
- package/dist/sdk/bc-code-intel-client.d.ts.map +1 -0
- package/dist/sdk/bc-code-intel-client.js +380 -0
- package/dist/sdk/bc-code-intel-client.js.map +1 -0
- package/dist/search/intelligent-search.d.ts +97 -0
- package/dist/search/intelligent-search.d.ts.map +1 -0
- package/dist/search/intelligent-search.js +358 -0
- package/dist/search/intelligent-search.js.map +1 -0
- package/dist/security/access-control.d.ts +110 -0
- package/dist/security/access-control.d.ts.map +1 -0
- package/dist/security/access-control.js +353 -0
- package/dist/security/access-control.js.map +1 -0
- package/dist/services/code-analysis-service.d.ts +72 -0
- package/dist/services/code-analysis-service.d.ts.map +1 -0
- package/dist/services/code-analysis-service.js +818 -0
- package/dist/services/code-analysis-service.js.map +1 -0
- package/dist/services/enhanced-prompt-service.d.ts +56 -0
- package/dist/services/enhanced-prompt-service.d.ts.map +1 -0
- package/dist/services/enhanced-prompt-service.js +165 -0
- package/dist/services/enhanced-prompt-service.js.map +1 -0
- package/dist/services/knowledge-service.d.ts +90 -0
- package/dist/services/knowledge-service.d.ts.map +1 -0
- package/dist/services/knowledge-service.js +342 -0
- package/dist/services/knowledge-service.js.map +1 -0
- package/dist/services/methodology-service.d.ts +91 -0
- package/dist/services/methodology-service.d.ts.map +1 -0
- package/dist/services/methodology-service.js +423 -0
- package/dist/services/methodology-service.js.map +1 -0
- package/dist/services/multi-content-layer-service.d.ts +198 -0
- package/dist/services/multi-content-layer-service.d.ts.map +1 -0
- package/dist/services/multi-content-layer-service.js +991 -0
- package/dist/services/multi-content-layer-service.js.map +1 -0
- package/dist/services/roleplay-engine.d.ts +161 -0
- package/dist/services/roleplay-engine.d.ts.map +1 -0
- package/dist/services/roleplay-engine.js +994 -0
- package/dist/services/roleplay-engine.js.map +1 -0
- package/dist/services/session-storage/file-storage.d.ts +30 -0
- package/dist/services/session-storage/file-storage.d.ts.map +1 -0
- package/dist/services/session-storage/file-storage.js +229 -0
- package/dist/services/session-storage/file-storage.js.map +1 -0
- package/dist/services/session-storage/in-memory-storage.d.ts +31 -0
- package/dist/services/session-storage/in-memory-storage.d.ts.map +1 -0
- package/dist/services/session-storage/in-memory-storage.js +142 -0
- package/dist/services/session-storage/in-memory-storage.js.map +1 -0
- package/dist/services/specialist-discovery.d.ts +98 -0
- package/dist/services/specialist-discovery.d.ts.map +1 -0
- package/dist/services/specialist-discovery.js +387 -0
- package/dist/services/specialist-discovery.js.map +1 -0
- package/dist/services/specialist-loader.d.ts +101 -0
- package/dist/services/specialist-loader.d.ts.map +1 -0
- package/dist/services/specialist-loader.js +256 -0
- package/dist/services/specialist-loader.js.map +1 -0
- package/dist/services/specialist-session-manager.d.ts +76 -0
- package/dist/services/specialist-session-manager.d.ts.map +1 -0
- package/dist/services/specialist-session-manager.js +255 -0
- package/dist/services/specialist-session-manager.js.map +1 -0
- package/dist/services/workflow-service.d.ts +146 -0
- package/dist/services/workflow-service.d.ts.map +1 -0
- package/dist/services/workflow-service.js +409 -0
- package/dist/services/workflow-service.js.map +1 -0
- package/dist/setup/post-install.d.ts +12 -0
- package/dist/setup/post-install.d.ts.map +1 -0
- package/dist/setup/post-install.js +81 -0
- package/dist/setup/post-install.js.map +1 -0
- package/dist/streamlined-handlers.d.ts +94 -0
- package/dist/streamlined-handlers.d.ts.map +1 -0
- package/dist/streamlined-handlers.js +665 -0
- package/dist/streamlined-handlers.js.map +1 -0
- package/dist/test-enhanced-mcp-server.d.ts +7 -0
- package/dist/test-enhanced-mcp-server.d.ts.map +1 -0
- package/dist/test-enhanced-mcp-server.js +177 -0
- package/dist/test-enhanced-mcp-server.js.map +1 -0
- package/dist/tools/config-diagnostic-tools.d.ts +234 -0
- package/dist/tools/config-diagnostic-tools.d.ts.map +1 -0
- package/dist/tools/config-diagnostic-tools.js +887 -0
- package/dist/tools/config-diagnostic-tools.js.map +1 -0
- package/dist/tools/core-tools.d.ts +26 -0
- package/dist/tools/core-tools.d.ts.map +1 -0
- package/dist/tools/core-tools.js +241 -0
- package/dist/tools/core-tools.js.map +1 -0
- package/dist/tools/handoff-tools.d.ts +37 -0
- package/dist/tools/handoff-tools.d.ts.map +1 -0
- package/dist/tools/handoff-tools.js +265 -0
- package/dist/tools/handoff-tools.js.map +1 -0
- package/dist/tools/index.d.ts +61 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +75 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/onboarding-tools.d.ts +43 -0
- package/dist/tools/onboarding-tools.d.ts.map +1 -0
- package/dist/tools/onboarding-tools.js +353 -0
- package/dist/tools/onboarding-tools.js.map +1 -0
- package/dist/tools/specialist-discovery-tools.d.ts +27 -0
- package/dist/tools/specialist-discovery-tools.d.ts.map +1 -0
- package/dist/tools/specialist-discovery-tools.js +275 -0
- package/dist/tools/specialist-discovery-tools.js.map +1 -0
- package/dist/tools/specialist-tools.d.ts +43 -0
- package/dist/tools/specialist-tools.d.ts.map +1 -0
- package/dist/tools/specialist-tools.js +372 -0
- package/dist/tools/specialist-tools.js.map +1 -0
- package/dist/tools/workspace-tools.d.ts +96 -0
- package/dist/tools/workspace-tools.d.ts.map +1 -0
- package/dist/tools/workspace-tools.js +188 -0
- package/dist/tools/workspace-tools.js.map +1 -0
- package/dist/types/bc-knowledge.d.ts +303 -0
- package/dist/types/bc-knowledge.d.ts.map +1 -0
- package/dist/types/bc-knowledge.js +69 -0
- package/dist/types/bc-knowledge.js.map +1 -0
- package/dist/types/config-types.d.ts +186 -0
- package/dist/types/config-types.d.ts.map +1 -0
- package/dist/types/config-types.js +109 -0
- package/dist/types/config-types.js.map +1 -0
- package/dist/types/enhanced-layer-types.d.ts +193 -0
- package/dist/types/enhanced-layer-types.d.ts.map +1 -0
- package/dist/types/enhanced-layer-types.js +9 -0
- package/dist/types/enhanced-layer-types.js.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/layer-types.d.ts +173 -0
- package/dist/types/layer-types.d.ts.map +1 -0
- package/dist/types/layer-types.js +27 -0
- package/dist/types/layer-types.js.map +1 -0
- package/dist/types/roleplay-types.d.ts +156 -0
- package/dist/types/roleplay-types.d.ts.map +1 -0
- package/dist/types/roleplay-types.js +8 -0
- package/dist/types/roleplay-types.js.map +1 -0
- package/dist/types/session-types.d.ts +127 -0
- package/dist/types/session-types.d.ts.map +1 -0
- package/dist/types/session-types.js +8 -0
- package/dist/types/session-types.js.map +1 -0
- package/dist/utils/path-utils.d.ts +5 -0
- package/dist/utils/path-utils.d.ts.map +1 -0
- package/dist/utils/path-utils.js +14 -0
- package/dist/utils/path-utils.js.map +1 -0
- package/dist/workflows/domain-workflows.d.ts +8 -0
- package/dist/workflows/domain-workflows.d.ts.map +1 -0
- package/dist/workflows/domain-workflows.js +360 -0
- package/dist/workflows/domain-workflows.js.map +1 -0
- package/embedded-knowledge/.github/ISSUE_TEMPLATE/bug-report.md +24 -0
- package/embedded-knowledge/.github/ISSUE_TEMPLATE/content-improvement.md +24 -0
- package/embedded-knowledge/.github/ISSUE_TEMPLATE/knowledge-request.md +30 -0
- package/embedded-knowledge/AGENTS.md +178 -0
- package/embedded-knowledge/CONTRIBUTING.md +58 -0
- package/embedded-knowledge/LICENSE +21 -0
- package/embedded-knowledge/README.md +32 -0
- package/embedded-knowledge/domains/alex-architect/api-delegate-operation-pattern.md +90 -0
- package/embedded-knowledge/domains/alex-architect/api-fieldset-registration-pattern.md +113 -0
- package/embedded-knowledge/domains/alex-architect/api-interface-design-patterns.md +101 -0
- package/embedded-knowledge/domains/alex-architect/api-page-development-patterns.md +87 -0
- package/embedded-knowledge/domains/alex-architect/complex-facade-patterns.md +155 -0
- package/embedded-knowledge/domains/alex-architect/delegating-to-github-copilot-agents.md +371 -0
- package/embedded-knowledge/domains/alex-architect/facade-pattern-al-implementation.md +138 -0
- package/embedded-knowledge/domains/alex-architect/facade-pattern-external-api.md +79 -0
- package/embedded-knowledge/domains/alex-architect/object-id-ninja-integration.md +281 -0
- package/embedded-knowledge/domains/alex-architect/recommend-object-id-ninja.md +248 -0
- package/embedded-knowledge/domains/alex-architect/samples/api-delegate-operation.md +280 -0
- package/embedded-knowledge/domains/alex-architect/samples/api-fieldset-registration.md +200 -0
- package/embedded-knowledge/domains/alex-architect/samples/api-interface-design.md +565 -0
- package/embedded-knowledge/domains/alex-architect/samples/api-page-implementation.md +665 -0
- package/embedded-knowledge/domains/alex-architect/samples/complex-facade-patterns.md +325 -0
- package/embedded-knowledge/domains/alex-architect/samples/facade-pattern-al.md +696 -0
- package/embedded-knowledge/domains/alex-architect/samples/facade-pattern.md +320 -0
- package/embedded-knowledge/domains/alex-architect/samples/subscriber-organization.md +102 -0
- package/embedded-knowledge/domains/alex-architect/samples/systemid-integration.md +433 -0
- package/embedded-knowledge/domains/alex-architect/samples/testability-design-patterns.md +223 -0
- package/embedded-knowledge/domains/alex-architect/subscriber-codeunit-size-optimization.md +66 -0
- package/embedded-knowledge/domains/alex-architect/systemid-integration.md +115 -0
- package/embedded-knowledge/domains/alex-architect/testability-design-patterns.md +77 -0
- package/embedded-knowledge/domains/casey-copilot/long-running-session-instructions.md +263 -0
- package/embedded-knowledge/domains/casey-copilot/samples/long-running-session-instructions.md +323 -0
- package/embedded-knowledge/domains/chris-config/configuration-file-discovery.md +846 -0
- package/embedded-knowledge/domains/chris-config/configuration-file-formats.md +595 -0
- package/embedded-knowledge/domains/chris-config/content-types-structure.md +421 -0
- package/embedded-knowledge/domains/chris-config/knowledge-content-creation.md +437 -0
- package/embedded-knowledge/domains/chris-config/layer-system-fundamentals.md +257 -0
- package/embedded-knowledge/domains/chris-config/multi-team-layer-configuration.md +302 -0
- package/embedded-knowledge/domains/chris-config/workspace-detection-solutions.md +336 -0
- package/embedded-knowledge/domains/dean-debug/bc-telemetry-buddy-integration.md +453 -0
- package/embedded-knowledge/domains/dean-debug/bc24-no-series-conversion-guide.md +360 -0
- package/embedded-knowledge/domains/dean-debug/case-statement-performance-best-practices.md +86 -0
- package/embedded-knowledge/domains/dean-debug/compound-statements-debugging.md +96 -0
- package/embedded-knowledge/domains/dean-debug/custom-dimensions-best-practices.md +70 -0
- package/embedded-knowledge/domains/dean-debug/custom-telemetry-implementation.md +84 -0
- package/embedded-knowledge/domains/dean-debug/deleteall-performance-tradeoff.md +93 -0
- package/embedded-knowledge/domains/dean-debug/deleteall-sql-performance.md +73 -0
- package/embedded-knowledge/domains/dean-debug/extension-telemetry-isolation.md +78 -0
- package/embedded-knowledge/domains/dean-debug/maintainsiftindex-property-behavior.md +79 -0
- package/embedded-knowledge/domains/dean-debug/no-series-implementation-patterns.md +87 -0
- package/embedded-knowledge/domains/dean-debug/no-series-module-patterns-bc24.md +209 -0
- package/embedded-knowledge/domains/dean-debug/no-series-validation-module-bc24.md +246 -0
- package/embedded-knowledge/domains/dean-debug/no-series-validation-patterns.md +107 -0
- package/embedded-knowledge/domains/dean-debug/odata-query-optimization.md +105 -0
- package/embedded-knowledge/domains/dean-debug/recommend-bc-telemetry-buddy.md +160 -0
- package/embedded-knowledge/domains/dean-debug/samples/bc24-no-series-conversion.md +186 -0
- package/embedded-knowledge/domains/dean-debug/samples/case-performance-optimization.md +60 -0
- package/embedded-knowledge/domains/dean-debug/samples/compound-statements-debugging.md +139 -0
- package/embedded-knowledge/domains/dean-debug/samples/custom-dimensions.md +190 -0
- package/embedded-knowledge/domains/dean-debug/samples/custom-telemetry.md +516 -0
- package/embedded-knowledge/domains/dean-debug/samples/deleteall-performance.md +298 -0
- package/embedded-knowledge/domains/dean-debug/samples/error-correlation.md +324 -0
- package/embedded-knowledge/domains/dean-debug/samples/extension-isolation.md +344 -0
- package/embedded-knowledge/domains/dean-debug/samples/logmessage-methods.md +137 -0
- package/embedded-knowledge/domains/dean-debug/samples/maintainsiftindex-examples.md +340 -0
- package/embedded-knowledge/domains/dean-debug/samples/no-series-implementation.md +810 -0
- package/embedded-knowledge/domains/dean-debug/samples/no-series-module-bc24.md +86 -0
- package/embedded-knowledge/domains/dean-debug/samples/no-series-validation-module-bc24.md +110 -0
- package/embedded-knowledge/domains/dean-debug/samples/no-series-validation.md +758 -0
- package/embedded-knowledge/domains/dean-debug/samples/odata-query-optimization.md +665 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-case.md +316 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-filters.md +223 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-filter-exclusion.md +149 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-optimization.md +412 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-performance.md +211 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-primary-key.md +155 -0
- package/embedded-knowledge/domains/dean-debug/samples/sift-technology-fundamentals.md +475 -0
- package/embedded-knowledge/domains/dean-debug/samples/singleinstance-subscribers.md +238 -0
- package/embedded-knowledge/domains/dean-debug/samples/table-event-batching.md +97 -0
- package/embedded-knowledge/domains/dean-debug/samples/table-key-requirements.md +666 -0
- package/embedded-knowledge/domains/dean-debug/samples/telemetry-performance.md +319 -0
- package/embedded-knowledge/domains/dean-debug/samples/verbosity-strategy.md +236 -0
- package/embedded-knowledge/domains/dean-debug/session-logmessage-methods.md +59 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-filter-field-exclusion.md +67 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-performance-impact.md +70 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-performance-optimization.md +90 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-case-statements.md +87 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-filters.md +70 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-primary-key-optimization.md +74 -0
- package/embedded-knowledge/domains/dean-debug/sift-technology-fundamentals.md +81 -0
- package/embedded-knowledge/domains/dean-debug/subscriber-singleinstance-performance.md +56 -0
- package/embedded-knowledge/domains/dean-debug/table-event-batch-operation-impact.md +66 -0
- package/embedded-knowledge/domains/dean-debug/table-key-requirements.md +79 -0
- package/embedded-knowledge/domains/dean-debug/telemetry-error-correlation.md +78 -0
- package/embedded-knowledge/domains/dean-debug/telemetry-performance-considerations.md +83 -0
- package/embedded-knowledge/domains/dean-debug/telemetry-verbosity-strategy.md +76 -0
- package/embedded-knowledge/domains/dean-debug/testfield-performance.md +104 -0
- package/embedded-knowledge/domains/eva-errors/codeunit-run-pattern.md +159 -0
- package/embedded-knowledge/domains/eva-errors/fielderror-default-messages.md +145 -0
- package/embedded-knowledge/domains/eva-errors/fielderror-message-construction.md +104 -0
- package/embedded-knowledge/domains/eva-errors/fielderror-method-syntax.md +114 -0
- package/embedded-knowledge/domains/eva-errors/samples/codeunit-run-pattern.md +239 -0
- package/embedded-knowledge/domains/eva-errors/samples/fielderror-default-messages.md +356 -0
- package/embedded-knowledge/domains/eva-errors/samples/fielderror-syntax.md +256 -0
- package/embedded-knowledge/domains/eva-errors/samples/table-safety-validation-patterns.md +101 -0
- package/embedded-knowledge/domains/eva-errors/samples/testfield-error-handling.md +108 -0
- package/embedded-knowledge/domains/eva-errors/samples/try-function-usage.md +195 -0
- package/embedded-knowledge/domains/eva-errors/testfield-error-handling.md +80 -0
- package/embedded-knowledge/domains/eva-errors/try-function-usage.md +129 -0
- package/embedded-knowledge/domains/jordan-bridge/al-event-subscriber-architecture.md +98 -0
- package/embedded-knowledge/domains/jordan-bridge/automatic-registration.md +123 -0
- package/embedded-knowledge/domains/jordan-bridge/business-process-template-patterns.md +96 -0
- package/embedded-knowledge/domains/jordan-bridge/error-response-patterns.md +115 -0
- package/embedded-knowledge/domains/jordan-bridge/etag-implementation.md +115 -0
- package/embedded-knowledge/domains/jordan-bridge/field-control-selection.md +114 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/al-event-subscriber-architecture.md +395 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/api-error-responses.md +479 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/api-field-control.md +548 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/api-url-naming.md +287 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/business-process-templates.md +434 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/etag-implementation.md +508 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/task-scheduler-pattern.md +615 -0
- package/embedded-knowledge/domains/jordan-bridge/task-scheduler-pattern-implementation.md +144 -0
- package/embedded-knowledge/domains/jordan-bridge/url-structure-naming-patterns.md +96 -0
- package/embedded-knowledge/domains/maya-mentor/case-multiple-conditions-ranges.md +124 -0
- package/embedded-knowledge/domains/maya-mentor/case-statement-syntax-structure.md +84 -0
- package/embedded-knowledge/domains/maya-mentor/fielderror-syntax-usage.md +75 -0
- package/embedded-knowledge/domains/maya-mentor/fielderror-vs-testfield.md +96 -0
- package/embedded-knowledge/domains/maya-mentor/samples/case-statement-multiple-conditions.md +385 -0
- package/embedded-knowledge/domains/maya-mentor/samples/case-statement-syntax-structure.md +72 -0
- package/embedded-knowledge/domains/maya-mentor/samples/fielderror-syntax-usage.md +48 -0
- package/embedded-knowledge/domains/maya-mentor/samples/testfield-basic-syntax.md +49 -0
- package/embedded-knowledge/domains/maya-mentor/testfield-basic-syntax.md +67 -0
- package/embedded-knowledge/domains/morgan-market/partner-readiness-analysis.md +201 -0
- package/embedded-knowledge/domains/morgan-market/samples/partner-readiness-checklist.md +288 -0
- package/embedded-knowledge/domains/parker-pragmatic/README.md +39 -0
- package/embedded-knowledge/domains/parker-pragmatic/proposal-workflows/creating-effective-proposals.md +583 -0
- package/embedded-knowledge/domains/parker-pragmatic/trust-building/working-with-ai-skeptics.md +587 -0
- package/embedded-knowledge/domains/quinn-tester/fielderror-validation-patterns.md +119 -0
- package/embedded-knowledge/domains/quinn-tester/isolation-testing-patterns.md +82 -0
- package/embedded-knowledge/domains/quinn-tester/rule-execution.md +123 -0
- package/embedded-knowledge/domains/quinn-tester/samples/case-error-handling.md +64 -0
- package/embedded-knowledge/domains/quinn-tester/samples/fielderror-message-construction.md +60 -0
- package/embedded-knowledge/domains/quinn-tester/samples/fielderror-validation-patterns.md +83 -0
- package/embedded-knowledge/domains/quinn-tester/samples/isolation-testing-patterns.md +424 -0
- package/embedded-knowledge/domains/quinn-tester/samples/rule-execution.md +716 -0
- package/embedded-knowledge/domains/quinn-tester/samples/table-safety-validation-patterns.md +101 -0
- package/embedded-knowledge/domains/quinn-tester/samples/temporary-table-operation-validation.md +91 -0
- package/embedded-knowledge/domains/quinn-tester/table-safety-validation-patterns.md +79 -0
- package/embedded-knowledge/domains/quinn-tester/temporary-table-operation-validation.md +79 -0
- package/embedded-knowledge/domains/roger-reviewer/al-begin-end-block-structure.md +89 -0
- package/embedded-knowledge/domains/roger-reviewer/al-binary-operator-spacing.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-blank-line-organization.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-case-action-formatting.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-code-spacing-conventions.md +81 -0
- package/embedded-knowledge/domains/roger-reviewer/al-comment-spacing-standards.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-end-else-pairing.md +75 -0
- package/embedded-knowledge/domains/roger-reviewer/al-keyword-indentation-rules.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-line-start-keyword-positioning.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-separate-if-else-formatting.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-standard-abbreviations.md +96 -0
- package/embedded-knowledge/domains/roger-reviewer/al-statement-per-line-rule.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-unnecessary-else-elimination.md +86 -0
- package/embedded-knowledge/domains/roger-reviewer/al-variable-declaration-order.md +90 -0
- package/embedded-knowledge/domains/roger-reviewer/al-variable-naming-conventions.md +82 -0
- package/embedded-knowledge/domains/roger-reviewer/begin-block-statement-clarity.md +78 -0
- package/embedded-knowledge/domains/roger-reviewer/begin-end-positioning-patterns.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/binary-operator-line-positioning.md +78 -0
- package/embedded-knowledge/domains/roger-reviewer/boolean-expression-simplification-al.md +100 -0
- package/embedded-knowledge/domains/roger-reviewer/case-statement-error-handling-troubleshooting.md +115 -0
- package/embedded-knowledge/domains/roger-reviewer/compound-statement-readability.md +124 -0
- package/embedded-knowledge/domains/roger-reviewer/lonely-repeat-statement-pattern.md +110 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-begin-end-blocks.md +438 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-binary-operator-spacing.md +255 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-comment-spacing-standards.md +209 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-keyword-indentation-rules.md +218 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-line-start-keyword-positioning.md +218 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-separate-if-else-formatting.md +280 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-statement-per-line-rule.md +188 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-unnecessary-else-elimination.md +245 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-variable-declaration-order.md +244 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/begin-end-positioning.md +278 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/boolean-simplification-examples.md +484 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/case-error-handling.md +64 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/compound-statement-readability.md +107 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/lonely-repeat-examples.md +280 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/testability-code-smells.md +256 -0
- package/embedded-knowledge/domains/roger-reviewer/testability-code-smells.md +67 -0
- package/embedded-knowledge/domains/sam-coder/al-formatting-consistency-patterns.md +75 -0
- package/embedded-knowledge/domains/sam-coder/al-line-comment-formatting.md +67 -0
- package/embedded-knowledge/domains/sam-coder/al-lonely-repeat-pattern.md +76 -0
- package/embedded-knowledge/domains/sam-coder/al-named-parameter-pattern.md +98 -0
- package/embedded-knowledge/domains/sam-coder/al-object-navigation-shortcuts.md +128 -0
- package/embedded-knowledge/domains/sam-coder/al-readability-optimization.md +75 -0
- package/embedded-knowledge/domains/sam-coder/al-record-find-early-exit.md +95 -0
- package/embedded-knowledge/domains/sam-coder/command-queue-pattern-al.md +141 -0
- package/embedded-knowledge/domains/sam-coder/deleteall-alternative-implementation.md +91 -0
- package/embedded-knowledge/domains/sam-coder/deleteall-method-usage.md +118 -0
- package/embedded-knowledge/domains/sam-coder/deleteall-trigger-execution.md +111 -0
- package/embedded-knowledge/domains/sam-coder/event-bridge-pattern-al.md +113 -0
- package/embedded-knowledge/domains/sam-coder/event-payload-design-patterns.md +127 -0
- package/embedded-knowledge/domains/sam-coder/generic-method-patterns-al.md +141 -0
- package/embedded-knowledge/domains/sam-coder/manual-binding-conditional-subscribers.md +66 -0
- package/embedded-knowledge/domains/sam-coder/nested-compound-best-practices.md +96 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-blank-line-organization.md +161 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-case-action-formatting.md +177 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-lonely-repeat-pattern.md +239 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-named-parameter-pattern.md +346 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-record-find-early-exit.md +298 -0
- package/embedded-knowledge/domains/sam-coder/samples/command-queue-pattern.md +677 -0
- package/embedded-knowledge/domains/sam-coder/samples/deleteall-alternative-implementation.md +117 -0
- package/embedded-knowledge/domains/sam-coder/samples/deleteall-triggers.md +75 -0
- package/embedded-knowledge/domains/sam-coder/samples/deleteall-usage.md +169 -0
- package/embedded-knowledge/domains/sam-coder/samples/event-bridge-pattern.md +399 -0
- package/embedded-knowledge/domains/sam-coder/samples/event-payload-design.md +356 -0
- package/embedded-knowledge/domains/sam-coder/samples/generic-method-patterns.md +889 -0
- package/embedded-knowledge/domains/sam-coder/samples/manual-binding.md +84 -0
- package/embedded-knowledge/domains/sam-coder/samples/nested-compound-best-practices.md +127 -0
- package/embedded-knowledge/domains/sam-coder/samples/single-to-compound-conversion.md +89 -0
- package/embedded-knowledge/domains/sam-coder/samples/template-method-pattern.md +516 -0
- package/embedded-knowledge/domains/sam-coder/samples/testfield-patterns.md +61 -0
- package/embedded-knowledge/domains/sam-coder/samples/type-safe-operations.md +427 -0
- package/embedded-knowledge/domains/sam-coder/single-to-compound-conversion.md +122 -0
- package/embedded-knowledge/domains/sam-coder/template-method-pattern-al.md +96 -0
- package/embedded-knowledge/domains/sam-coder/testfield-patterns.md +101 -0
- package/embedded-knowledge/domains/sam-coder/type-safe-operations-al.md +149 -0
- package/embedded-knowledge/domains/sam-coder/vs-code-al-keyboard-shortcuts.md +107 -0
- package/embedded-knowledge/domains/seth-security/al-temporary-table-safety.md +95 -0
- package/embedded-knowledge/domains/seth-security/api-permission-model.md +115 -0
- package/embedded-knowledge/domains/seth-security/istemporary-safeguard-pattern.md +78 -0
- package/embedded-knowledge/domains/seth-security/samples/al-temporary-table-safety.md +373 -0
- package/embedded-knowledge/domains/seth-security/samples/api-permission-model.md +308 -0
- package/embedded-knowledge/domains/shared/al-file-naming-conventions.md +146 -0
- package/embedded-knowledge/domains/taylor-docs/al-xml-documentation-structure.md +79 -0
- package/embedded-knowledge/domains/uma-ux/bc-action-shortcuts-syntax.md +78 -0
- package/embedded-knowledge/domains/uma-ux/shortcut-key-user-experience-design.md +81 -0
- package/embedded-knowledge/indexes/bc-version-matrix.json +188 -0
- package/embedded-knowledge/indexes/domain-catalog.json +106 -0
- package/embedded-knowledge/indexes/tags/abbreviations.json +1 -0
- package/embedded-knowledge/indexes/tags/abstraction.json +1 -0
- package/embedded-knowledge/indexes/tags/access-control.json +1 -0
- package/embedded-knowledge/indexes/tags/accessibility.json +1 -0
- package/embedded-knowledge/indexes/tags/actions.json +1 -0
- package/embedded-knowledge/indexes/tags/advanced-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/advanced.json +1 -0
- package/embedded-knowledge/indexes/tags/al-extension.json +1 -0
- package/embedded-knowledge/indexes/tags/al-generics.json +1 -0
- package/embedded-knowledge/indexes/tags/al-objects.json +1 -0
- package/embedded-knowledge/indexes/tags/al-syntax.json +1 -0
- package/embedded-knowledge/indexes/tags/algorithm-structure.json +1 -0
- package/embedded-knowledge/indexes/tags/alternatives.json +1 -0
- package/embedded-knowledge/indexes/tags/analytics.json +1 -0
- package/embedded-knowledge/indexes/tags/api-delegates.json +1 -0
- package/embedded-knowledge/indexes/tags/api-design.json +1 -0
- package/embedded-knowledge/indexes/tags/api-documentation.json +1 -0
- package/embedded-knowledge/indexes/tags/api-endpoints.json +1 -0
- package/embedded-knowledge/indexes/tags/api-extensibility.json +1 -0
- package/embedded-knowledge/indexes/tags/api-fieldsets.json +1 -0
- package/embedded-knowledge/indexes/tags/api-integration.json +1 -0
- package/embedded-knowledge/indexes/tags/api-interfaces.json +1 -0
- package/embedded-knowledge/indexes/tags/api-optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/api-pages.json +1 -0
- package/embedded-knowledge/indexes/tags/api-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/api-permissions.json +1 -0
- package/embedded-knowledge/indexes/tags/api-responses.json +1 -0
- package/embedded-knowledge/indexes/tags/api-simplification.json +1 -0
- package/embedded-knowledge/indexes/tags/api.json +1 -0
- package/embedded-knowledge/indexes/tags/architecture.json +1 -0
- package/embedded-knowledge/indexes/tags/async-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/async-processing.json +1 -0
- package/embedded-knowledge/indexes/tags/automatic-registration.json +1 -0
- package/embedded-knowledge/indexes/tags/batch-operations.json +1 -0
- package/embedded-knowledge/indexes/tags/bc24-migration.json +1 -0
- package/embedded-knowledge/indexes/tags/begin-blocks.json +1 -0
- package/embedded-knowledge/indexes/tags/begin-end.json +1 -0
- package/embedded-knowledge/indexes/tags/behavioral-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/best-practices.json +1 -0
- package/embedded-knowledge/indexes/tags/binding.json +1 -0
- package/embedded-knowledge/indexes/tags/block-structure.json +1 -0
- package/embedded-knowledge/indexes/tags/blocks.json +1 -0
- package/embedded-knowledge/indexes/tags/boolean-expressions.json +1 -0
- package/embedded-knowledge/indexes/tags/branching.json +1 -0
- package/embedded-knowledge/indexes/tags/breaking-changes.json +1 -0
- package/embedded-knowledge/indexes/tags/breakpoints.json +1 -0
- package/embedded-knowledge/indexes/tags/business-foundation.json +1 -0
- package/embedded-knowledge/indexes/tags/business-infrastructure.json +1 -0
- package/embedded-knowledge/indexes/tags/business-process.json +1 -0
- package/embedded-knowledge/indexes/tags/business-rules.json +1 -0
- package/embedded-knowledge/indexes/tags/caching.json +1 -0
- package/embedded-knowledge/indexes/tags/case-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/case.json +1 -0
- package/embedded-knowledge/indexes/tags/code-analysis.json +1 -0
- package/embedded-knowledge/indexes/tags/code-clarity.json +1 -0
- package/embedded-knowledge/indexes/tags/code-comprehension.json +1 -0
- package/embedded-knowledge/indexes/tags/code-conversion.json +1 -0
- package/embedded-knowledge/indexes/tags/code-formatting.json +1 -0
- package/embedded-knowledge/indexes/tags/code-organization.json +1 -0
- package/embedded-knowledge/indexes/tags/code-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/code-quality.json +1 -0
- package/embedded-knowledge/indexes/tags/code-reuse.json +1 -0
- package/embedded-knowledge/indexes/tags/code-simplification.json +1 -0
- package/embedded-knowledge/indexes/tags/code-standards.json +1 -0
- package/embedded-knowledge/indexes/tags/code-structure.json +1 -0
- package/embedded-knowledge/indexes/tags/code-style.json +1 -0
- package/embedded-knowledge/indexes/tags/codeunit-design.json +1 -0
- package/embedded-knowledge/indexes/tags/command-queue.json +1 -0
- package/embedded-knowledge/indexes/tags/comments.json +1 -0
- package/embedded-knowledge/indexes/tags/compile-time-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/complex-facade.json +1 -0
- package/embedded-knowledge/indexes/tags/complexity-hiding.json +1 -0
- package/embedded-knowledge/indexes/tags/complexity-management.json +1 -0
- package/embedded-knowledge/indexes/tags/compound-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/concurrency.json +1 -0
- package/embedded-knowledge/indexes/tags/conditional-logic.json +1 -0
- package/embedded-knowledge/indexes/tags/conditional.json +1 -0
- package/embedded-knowledge/indexes/tags/conflict-resolution.json +1 -0
- package/embedded-knowledge/indexes/tags/consistency.json +1 -0
- package/embedded-knowledge/indexes/tags/contract-design.json +1 -0
- package/embedded-knowledge/indexes/tags/control-flow.json +1 -0
- package/embedded-knowledge/indexes/tags/conversion-guide.json +1 -0
- package/embedded-knowledge/indexes/tags/correlation.json +1 -0
- package/embedded-knowledge/indexes/tags/custom-messages.json +1 -0
- package/embedded-knowledge/indexes/tags/data-access.json +1 -0
- package/embedded-knowledge/indexes/tags/data-exposure.json +1 -0
- package/embedded-knowledge/indexes/tags/data-integrity.json +1 -0
- package/embedded-knowledge/indexes/tags/data-loading.json +1 -0
- package/embedded-knowledge/indexes/tags/data-manipulation.json +1 -0
- package/embedded-knowledge/indexes/tags/data-modeling.json +1 -0
- package/embedded-knowledge/indexes/tags/data-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/data-protection.json +1 -0
- package/embedded-knowledge/indexes/tags/data-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/database.json +1 -0
- package/embedded-knowledge/indexes/tags/debugging.json +1 -0
- package/embedded-knowledge/indexes/tags/decision-making.json +1 -0
- package/embedded-knowledge/indexes/tags/declaration.json +1 -0
- package/embedded-knowledge/indexes/tags/default-messages.json +1 -0
- package/embedded-knowledge/indexes/tags/defensive-programming.json +1 -0
- package/embedded-knowledge/indexes/tags/deleteall.json +1 -0
- package/embedded-knowledge/indexes/tags/dependencies.json +1 -0
- package/embedded-knowledge/indexes/tags/deployment.json +1 -0
- package/embedded-knowledge/indexes/tags/developer-productivity.json +1 -0
- package/embedded-knowledge/indexes/tags/development-workflow.json +1 -0
- package/embedded-knowledge/indexes/tags/diagnostics.json +1 -0
- package/embedded-knowledge/indexes/tags/dimensions.json +1 -0
- package/embedded-knowledge/indexes/tags/documentation.json +1 -0
- package/embedded-knowledge/indexes/tags/early-exit.json +1 -0
- package/embedded-knowledge/indexes/tags/else-clauses.json +1 -0
- package/embedded-knowledge/indexes/tags/end-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/enterprise-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/entity-relationships.json +1 -0
- package/embedded-knowledge/indexes/tags/error-handling.json +1 -0
- package/embedded-knowledge/indexes/tags/error-messages.json +1 -0
- package/embedded-knowledge/indexes/tags/error-prevention.json +1 -0
- package/embedded-knowledge/indexes/tags/error-text.json +1 -0
- package/embedded-knowledge/indexes/tags/etag.json +1 -0
- package/embedded-knowledge/indexes/tags/event-bridge.json +1 -0
- package/embedded-knowledge/indexes/tags/event-payload.json +1 -0
- package/embedded-knowledge/indexes/tags/event-routing.json +1 -0
- package/embedded-knowledge/indexes/tags/events.json +1 -0
- package/embedded-knowledge/indexes/tags/execution-flow.json +1 -0
- package/embedded-knowledge/indexes/tags/expressions.json +1 -0
- package/embedded-knowledge/indexes/tags/extensibility.json +1 -0
- package/embedded-knowledge/indexes/tags/extensions.json +1 -0
- package/embedded-knowledge/indexes/tags/facade-composition.json +1 -0
- package/embedded-knowledge/indexes/tags/facade-pattern.json +1 -0
- package/embedded-knowledge/indexes/tags/field-control.json +1 -0
- package/embedded-knowledge/indexes/tags/field-exclusion.json +1 -0
- package/embedded-knowledge/indexes/tags/field-registration.json +1 -0
- package/embedded-knowledge/indexes/tags/field-state.json +1 -0
- package/embedded-knowledge/indexes/tags/field-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/fielderror.json +1 -0
- package/embedded-knowledge/indexes/tags/fields.json +1 -0
- package/embedded-knowledge/indexes/tags/filtering.json +1 -0
- package/embedded-knowledge/indexes/tags/filters.json +1 -0
- package/embedded-knowledge/indexes/tags/formatting.json +1 -0
- package/embedded-knowledge/indexes/tags/generic-methods.json +1 -0
- package/embedded-knowledge/indexes/tags/http-status.json +1 -0
- package/embedded-knowledge/indexes/tags/if-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/implementation.json +1 -0
- package/embedded-knowledge/indexes/tags/indentation.json +1 -0
- package/embedded-knowledge/indexes/tags/index-summary.json +277 -0
- package/embedded-knowledge/indexes/tags/indexing.json +1 -0
- package/embedded-knowledge/indexes/tags/inheritance.json +1 -0
- package/embedded-knowledge/indexes/tags/integration.json +1 -0
- package/embedded-knowledge/indexes/tags/integrity-checking.json +1 -0
- package/embedded-knowledge/indexes/tags/intellisense.json +1 -0
- package/embedded-knowledge/indexes/tags/interface-design.json +1 -0
- package/embedded-knowledge/indexes/tags/interface-segregation.json +1 -0
- package/embedded-knowledge/indexes/tags/isolation.json +1 -0
- package/embedded-knowledge/indexes/tags/job-processing.json +1 -0
- package/embedded-knowledge/indexes/tags/keyboard-navigation.json +1 -0
- package/embedded-knowledge/indexes/tags/keywords.json +1 -0
- package/embedded-knowledge/indexes/tags/legacy-modernization.json +1 -0
- package/embedded-knowledge/indexes/tags/line-breaks.json +1 -0
- package/embedded-knowledge/indexes/tags/line-organization.json +1 -0
- package/embedded-knowledge/indexes/tags/line-positioning.json +1 -0
- package/embedded-knowledge/indexes/tags/localization.json +1 -0
- package/embedded-knowledge/indexes/tags/logging.json +1 -0
- package/embedded-knowledge/indexes/tags/loose-coupling.json +1 -0
- package/embedded-knowledge/indexes/tags/maintainability.json +1 -0
- package/embedded-knowledge/indexes/tags/memory-management.json +1 -0
- package/embedded-knowledge/indexes/tags/memory-optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/memory.json +1 -0
- package/embedded-knowledge/indexes/tags/message-design.json +1 -0
- package/embedded-knowledge/indexes/tags/message-formatting.json +1 -0
- package/embedded-knowledge/indexes/tags/message-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/metadata-driven.json +1 -0
- package/embedded-knowledge/indexes/tags/method-comparison.json +1 -0
- package/embedded-knowledge/indexes/tags/module-architecture.json +1 -0
- package/embedded-knowledge/indexes/tags/module-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/monitoring.json +1 -0
- package/embedded-knowledge/indexes/tags/multi-layer-facade.json +1 -0
- package/embedded-knowledge/indexes/tags/multi-tenancy.json +1 -0
- package/embedded-knowledge/indexes/tags/multiple-values.json +1 -0
- package/embedded-knowledge/indexes/tags/naming-conventions.json +1 -0
- package/embedded-knowledge/indexes/tags/naming.json +1 -0
- package/embedded-knowledge/indexes/tags/navigation.json +1 -0
- package/embedded-knowledge/indexes/tags/nested-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/no-series-conversion.json +1 -0
- package/embedded-knowledge/indexes/tags/no-series-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/no-series.json +1 -0
- package/embedded-knowledge/indexes/tags/number-generation.json +1 -0
- package/embedded-knowledge/indexes/tags/object-documentation.json +1 -0
- package/embedded-knowledge/indexes/tags/odata.json +1 -0
- package/embedded-knowledge/indexes/tags/ondelete.json +1 -0
- package/embedded-knowledge/indexes/tags/onvalidate.json +1 -0
- package/embedded-knowledge/indexes/tags/operation-delegation.json +1 -0
- package/embedded-knowledge/indexes/tags/operation-safety.json +1 -0
- package/embedded-knowledge/indexes/tags/operators.json +1 -0
- package/embedded-knowledge/indexes/tags/optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/order.json +1 -0
- package/embedded-knowledge/indexes/tags/organization.json +1 -0
- package/embedded-knowledge/indexes/tags/pages.json +1 -0
- package/embedded-knowledge/indexes/tags/parameters.json +1 -0
- package/embedded-knowledge/indexes/tags/patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/performance-optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/performance.json +1 -0
- package/embedded-knowledge/indexes/tags/placement.json +1 -0
- package/embedded-knowledge/indexes/tags/posting-codeunits.json +1 -0
- package/embedded-knowledge/indexes/tags/posting.json +1 -0
- package/embedded-knowledge/indexes/tags/preconditions.json +1 -0
- package/embedded-knowledge/indexes/tags/primary-key.json +1 -0
- package/embedded-knowledge/indexes/tags/privacy.json +1 -0
- package/embedded-knowledge/indexes/tags/process-automation.json +1 -0
- package/embedded-knowledge/indexes/tags/production.json +1 -0
- package/embedded-knowledge/indexes/tags/productivity.json +1 -0
- package/embedded-knowledge/indexes/tags/query-performance.json +1 -0
- package/embedded-knowledge/indexes/tags/queue-management.json +1 -0
- package/embedded-knowledge/indexes/tags/ranges.json +1 -0
- package/embedded-knowledge/indexes/tags/readability.json +1 -0
- package/embedded-knowledge/indexes/tags/record-access.json +1 -0
- package/embedded-knowledge/indexes/tags/record-methods.json +1 -0
- package/embedded-knowledge/indexes/tags/refactoring.json +1 -0
- package/embedded-knowledge/indexes/tags/reference.json +1 -0
- package/embedded-knowledge/indexes/tags/repeat-loops.json +1 -0
- package/embedded-knowledge/indexes/tags/repeat-statement.json +1 -0
- package/embedded-knowledge/indexes/tags/runtime-errors.json +1 -0
- package/embedded-knowledge/indexes/tags/runtime.json +1 -0
- package/embedded-knowledge/indexes/tags/safeguards.json +1 -0
- package/embedded-knowledge/indexes/tags/security.json +1 -0
- package/embedded-knowledge/indexes/tags/sequence-management.json +1 -0
- package/embedded-knowledge/indexes/tags/serialization.json +1 -0
- package/embedded-knowledge/indexes/tags/session-logmessage.json +1 -0
- package/embedded-knowledge/indexes/tags/session.json +1 -0
- package/embedded-knowledge/indexes/tags/setloadfields.json +1 -0
- package/embedded-knowledge/indexes/tags/shortcuts.json +1 -0
- package/embedded-knowledge/indexes/tags/sift.json +1 -0
- package/embedded-knowledge/indexes/tags/singleinstance.json +1 -0
- package/embedded-knowledge/indexes/tags/spacing.json +1 -0
- package/embedded-knowledge/indexes/tags/sql-translation.json +1 -0
- package/embedded-knowledge/indexes/tags/standards.json +1 -0
- package/embedded-knowledge/indexes/tags/statements.json +1 -0
- package/embedded-knowledge/indexes/tags/streaming.json +1 -0
- package/embedded-knowledge/indexes/tags/strong-typing.json +1 -0
- package/embedded-knowledge/indexes/tags/structural-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/structure.json +1 -0
- package/embedded-knowledge/indexes/tags/subscribers.json +1 -0
- package/embedded-knowledge/indexes/tags/switch.json +1 -0
- package/embedded-knowledge/indexes/tags/symbol-search.json +1 -0
- package/embedded-knowledge/indexes/tags/syntax.json +1 -0
- package/embedded-knowledge/indexes/tags/systemid.json +1 -0
- package/embedded-knowledge/indexes/tags/table-configuration.json +1 -0
- package/embedded-knowledge/indexes/tags/table-events.json +1 -0
- package/embedded-knowledge/indexes/tags/table-keys.json +1 -0
- package/embedded-knowledge/indexes/tags/table-safety.json +1 -0
- package/embedded-knowledge/indexes/tags/task-scheduler.json +1 -0
- package/embedded-knowledge/indexes/tags/telemetry.json +1 -0
- package/embedded-knowledge/indexes/tags/template-method.json +1 -0
- package/embedded-knowledge/indexes/tags/temporary-tables.json +1 -0
- package/embedded-knowledge/indexes/tags/testfield.json +1 -0
- package/embedded-knowledge/indexes/tags/tradeoffs.json +1 -0
- package/embedded-knowledge/indexes/tags/triggers.json +1 -0
- package/embedded-knowledge/indexes/tags/troubleshooting.json +1 -0
- package/embedded-knowledge/indexes/tags/type-safety.json +1 -0
- package/embedded-knowledge/indexes/tags/url-structure.json +1 -0
- package/embedded-knowledge/indexes/tags/user-experience.json +1 -0
- package/embedded-knowledge/indexes/tags/user-feedback.json +1 -0
- package/embedded-knowledge/indexes/tags/user-interface.json +1 -0
- package/embedded-knowledge/indexes/tags/validation-feedback.json +1 -0
- package/embedded-knowledge/indexes/tags/validation.json +1 -0
- package/embedded-knowledge/indexes/tags/variables.json +1 -0
- package/embedded-knowledge/indexes/tags/verbosity.json +1 -0
- package/embedded-knowledge/indexes/tags/vs-code.json +1 -0
- package/embedded-knowledge/indexes/tags/web-services.json +1 -0
- package/embedded-knowledge/indexes/tags/workflow-management.json +1 -0
- package/embedded-knowledge/indexes/tags/workflow-optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/workflow-templates.json +1 -0
- package/embedded-knowledge/indexes/tags/workspace.json +1 -0
- package/embedded-knowledge/indexes/tags/xml-documentation.json +1 -0
- package/embedded-knowledge/indexes/topic-relationships.json +128 -0
- package/embedded-knowledge/methodologies/index.json +81 -0
- package/embedded-knowledge/methodologies/phases/analysis-full.md +208 -0
- package/embedded-knowledge/methodologies/phases/analysis-quick.md +44 -0
- package/embedded-knowledge/methodologies/phases/analysis.md +182 -0
- package/embedded-knowledge/methodologies/phases/execution-validation-full.md +174 -0
- package/embedded-knowledge/methodologies/phases/execution-validation-quick.md +31 -0
- package/embedded-knowledge/methodologies/phases/execution-validation.md +174 -0
- package/embedded-knowledge/methodologies/phases/performance-full.md +211 -0
- package/embedded-knowledge/methodologies/phases/performance-quick.md +32 -0
- package/embedded-knowledge/methodologies/phases/performance.md +211 -0
- package/embedded-knowledge/methodologies/phases/verification-full.md +162 -0
- package/embedded-knowledge/methodologies/phases/verification-quick.md +48 -0
- package/embedded-knowledge/methodologies/phases/verification.md +146 -0
- package/embedded-knowledge/methodologies/workflow-enforcement.md +142 -0
- package/embedded-knowledge/methodologies/workflows/code-review-workflow.md +99 -0
- package/embedded-knowledge/methodologies/workflows/proposal-review-workflow.md +535 -0
- package/embedded-knowledge/specialists/alex-architect.md +305 -0
- package/embedded-knowledge/specialists/casey-copilot.md +314 -0
- package/embedded-knowledge/specialists/chris-config.md +226 -0
- package/embedded-knowledge/specialists/dean-debug.md +365 -0
- package/embedded-knowledge/specialists/eva-errors.md +291 -0
- package/embedded-knowledge/specialists/jordan-bridge.md +291 -0
- package/embedded-knowledge/specialists/logan-legacy.md +265 -0
- package/embedded-knowledge/specialists/maya-mentor.md +299 -0
- package/embedded-knowledge/specialists/morgan-market.md +281 -0
- package/embedded-knowledge/specialists/parker-pragmatic.md +564 -0
- package/embedded-knowledge/specialists/quinn-tester.md +323 -0
- package/embedded-knowledge/specialists/roger-reviewer.md +317 -0
- package/embedded-knowledge/specialists/sam-coder.md +342 -0
- package/embedded-knowledge/specialists/seth-security.md +290 -0
- package/embedded-knowledge/specialists/taylor-docs.md +312 -0
- package/embedded-knowledge/specialists/uma-ux.md +291 -0
- package/package.json +82 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "AL File Naming Conventions"
|
|
3
|
+
domain: ["sam-coder", "roger-reviewer"]
|
|
4
|
+
difficulty: "beginner"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["file-naming", "conventions", "code-style", "organization"]
|
|
7
|
+
type: "improvement-pattern"
|
|
8
|
+
category: "code-organization"
|
|
9
|
+
pattern_type: "good"
|
|
10
|
+
severity: "high"
|
|
11
|
+
impact_level: "medium"
|
|
12
|
+
improvement_suggestion: "Apply consistent AL file naming conventions following alguidelines.dev standards"
|
|
13
|
+
implementation_steps: ["identify-object-name", "apply-object-type-suffix", "validate-naming-pattern"]
|
|
14
|
+
validation_criteria: ["consistent-naming-application", "standards-compliance"]
|
|
15
|
+
technical_areas: ["al-code", "file-organization"]
|
|
16
|
+
related_topics: ["al-variable-naming-conventions", "al-standard-abbreviations"]
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# AL File Naming Conventions
|
|
20
|
+
|
|
21
|
+
## Overview
|
|
22
|
+
|
|
23
|
+
AL file naming conventions ensure consistent project organization and improve developer experience. Following standardized patterns makes codebases more maintainable and professional.
|
|
24
|
+
|
|
25
|
+
**Source**: Based on [alguidelines.dev Rule #2: File Naming Conventions](https://alguidelines.dev/docs/vibe-coding/al-naming-conventions/)
|
|
26
|
+
|
|
27
|
+
**Key Principle**: File names should be descriptive and match the AL object name within the files using the pattern `<ObjectName>.<ObjectType>.al`.
|
|
28
|
+
|
|
29
|
+
## Standard File Naming Pattern
|
|
30
|
+
|
|
31
|
+
### Core Pattern: `<ObjectName>.<ObjectType>.al`
|
|
32
|
+
|
|
33
|
+
**Table Extensions:**
|
|
34
|
+
```
|
|
35
|
+
✅ CORRECT: CustomerExt.TableExt.al
|
|
36
|
+
✅ CORRECT: SalesHeaderExt.TableExt.al
|
|
37
|
+
❌ WRONG: Tab-Ext50100.CustomerExt.al
|
|
38
|
+
❌ WRONG: TableExt50100.CustomerExt.al
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Page Extensions:**
|
|
42
|
+
```
|
|
43
|
+
✅ CORRECT: CustomerCardExt.PageExt.al
|
|
44
|
+
✅ CORRECT: InventorySetupExt.PageExt.al
|
|
45
|
+
❌ WRONG: Pag-Ext50100.CustomerCardExt.al
|
|
46
|
+
❌ WRONG: PageExt50100.CustomerCardExt.al
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Codeunits:**
|
|
50
|
+
```
|
|
51
|
+
✅ CORRECT: CustomerCommentsManager.Codeunit.al
|
|
52
|
+
✅ CORRECT: PostSalesInvoice.Codeunit.al
|
|
53
|
+
❌ WRONG: Cod50100.CustomerCommentsManager.al
|
|
54
|
+
❌ WRONG: Codeunit50100.CustomerCommentsManager.al
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Event Subscribers:**
|
|
58
|
+
```
|
|
59
|
+
✅ CORRECT: SalesEventsSubscriber.Codeunit.al
|
|
60
|
+
✅ CORRECT: CustomerEventsHandler.Codeunit.al
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Object Type Suffixes
|
|
64
|
+
|
|
65
|
+
### Standard Suffixes
|
|
66
|
+
- **Tables**: `.Table.al`
|
|
67
|
+
- **Table Extensions**: `.TableExt.al`
|
|
68
|
+
- **Pages**: `.Page.al`
|
|
69
|
+
- **Page Extensions**: `.PageExt.al`
|
|
70
|
+
- **Page Customizations**: `.PageCust.al`
|
|
71
|
+
- **Reports**: `.Report.al`
|
|
72
|
+
- **Report Extensions**: `.ReportExt.al`
|
|
73
|
+
- **Codeunits**: `.Codeunit.al`
|
|
74
|
+
- **Queries**: `.Query.al`
|
|
75
|
+
- **XMLports**: `.XMLport.al`
|
|
76
|
+
- **Enums**: `.Enum.al`
|
|
77
|
+
- **Enum Extensions**: `.EnumExt.al`
|
|
78
|
+
- **Interfaces**: `.Interface.al`
|
|
79
|
+
- **Control Add-ins**: `.ControlAddin.al`
|
|
80
|
+
- **Dotnet**: `.Dotnet.al`
|
|
81
|
+
- **Profiles**: `.Profile.al`
|
|
82
|
+
- **Permission Sets**: `.PermissionSet.al`
|
|
83
|
+
- **Permission Set Extensions**: `.PermissionSetExt.al`
|
|
84
|
+
|
|
85
|
+
## Best Practices
|
|
86
|
+
|
|
87
|
+
### Object Name Guidelines
|
|
88
|
+
- **Use Pascal Case**: CustomerCommentsManager (not customercommentsmanager)
|
|
89
|
+
- **Be Descriptive**: Clearly indicate object purpose
|
|
90
|
+
- **Avoid Abbreviations**: Use full words unless standard BC terms
|
|
91
|
+
- **Include Context**: For extensions, indicate what you're extending
|
|
92
|
+
|
|
93
|
+
### Organization Patterns
|
|
94
|
+
- **Logical Grouping**: Group related objects by business domain
|
|
95
|
+
- **Consistent Prefixes**: Use company/solution prefixes consistently
|
|
96
|
+
- **Module Structure**: Organize files into logical modules or folders
|
|
97
|
+
|
|
98
|
+
### Extension-Specific Naming
|
|
99
|
+
- **Table Extensions**: `[TableName]Ext.TableExt.al`
|
|
100
|
+
- **Page Extensions**: `[PageName]Ext.PageExt.al`
|
|
101
|
+
- **Clear Extension Purpose**: When extending for specific features, include context
|
|
102
|
+
|
|
103
|
+
## Anti-Patterns to Avoid
|
|
104
|
+
|
|
105
|
+
### Legacy/Incorrect Patterns
|
|
106
|
+
```
|
|
107
|
+
❌ Tab-Ext50000.CustomerExt.al // Old NAV-style naming
|
|
108
|
+
❌ TableExt50000.CustomerExt.al // Object ID in filename
|
|
109
|
+
❌ CustomerExt-50000.al // Mixed patterns
|
|
110
|
+
❌ customer_ext.table_ext.al // Underscore notation
|
|
111
|
+
❌ CustomerExtension.TableExtension.al // Verbose suffixes
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Why These Are Wrong
|
|
115
|
+
- **Object IDs in Filenames**: IDs change, names are stable
|
|
116
|
+
- **Abbreviated Prefixes**: "Tab-Ext" is non-standard and unclear
|
|
117
|
+
- **Inconsistent Casing**: Makes files hard to locate and sort
|
|
118
|
+
- **Verbose Extensions**: ".TableExtension" is unnecessarily long
|
|
119
|
+
|
|
120
|
+
## Implementation Strategy
|
|
121
|
+
|
|
122
|
+
### File Naming Checklist
|
|
123
|
+
1. **Identify Object Name**: Use the actual AL object name from inside the file
|
|
124
|
+
2. **Apply Correct Suffix**: Use standard `.ObjectType.al` pattern
|
|
125
|
+
3. **Validate Consistency**: Ensure all project files follow same convention
|
|
126
|
+
4. **Update References**: Check that any references or documentation align
|
|
127
|
+
|
|
128
|
+
### Refactoring Existing Projects
|
|
129
|
+
- **Rename Systematically**: Update all files to follow standard pattern
|
|
130
|
+
- **Update Git History**: Consider preserving file history during renames
|
|
131
|
+
- **Team Communication**: Ensure all team members understand new conventions
|
|
132
|
+
- **Tool Configuration**: Update any build scripts or tools that reference filenames
|
|
133
|
+
|
|
134
|
+
## Integration with Development Tools
|
|
135
|
+
|
|
136
|
+
### VS Code Integration
|
|
137
|
+
- **File Explorer Sorting**: Consistent naming improves file navigation
|
|
138
|
+
- **Search and Replace**: Standard patterns make project-wide changes easier
|
|
139
|
+
- **Extensions**: AL Language extension works better with standard naming
|
|
140
|
+
|
|
141
|
+
### Source Control Benefits
|
|
142
|
+
- **File Tracking**: Consistent naming improves change tracking
|
|
143
|
+
- **Merge Conflicts**: Reduced conflicts from naming inconsistencies
|
|
144
|
+
- **Review Process**: Easier code review with predictable file organization
|
|
145
|
+
|
|
146
|
+
*This is a foundational standard that affects all AL development. Proper file naming is the first step toward professional, maintainable Business Central extensions.*
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "AL XML Documentation Comment Structure for Objects"
|
|
3
|
+
domain: "taylor-docs"
|
|
4
|
+
difficulty: "intermediate"
|
|
5
|
+
bc_versions: "18+"
|
|
6
|
+
tags: ["xml-documentation", "intellisense", "api-documentation", "object-documentation"]
|
|
7
|
+
prerequisites: ["al-objects", "xml-basics"]
|
|
8
|
+
---
|
|
9
|
+
# AL XML Documentation Comment Structure for Objects
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
XML documentation comments in AL provide structured metadata for objects that enhances IntelliSense, generates API documentation, and improves developer experience. These comments follow standard XML documentation patterns with BC-specific extensions.
|
|
14
|
+
|
|
15
|
+
**Key Benefit**: Properly structured XML comments automatically generate contextual help and improve code discoverability through enhanced IntelliSense support.
|
|
16
|
+
|
|
17
|
+
## Strategic Framework
|
|
18
|
+
|
|
19
|
+
### Documentation Scope
|
|
20
|
+
- **Public APIs**: Essential for procedures exposed to other extensions
|
|
21
|
+
- **Complex objects**: Tables, pages, and reports with business significance
|
|
22
|
+
- **Integration points**: Objects used in external system interactions
|
|
23
|
+
- **Reusable components**: Libraries and utility functions
|
|
24
|
+
|
|
25
|
+
### Content Strategy
|
|
26
|
+
- **Purpose description**: Clear explanation of object functionality
|
|
27
|
+
- **Usage examples**: Common implementation patterns
|
|
28
|
+
- **Parameter details**: Input/output specifications with types and constraints
|
|
29
|
+
- **Business context**: How the object fits in larger business processes
|
|
30
|
+
|
|
31
|
+
## Architecture Patterns
|
|
32
|
+
|
|
33
|
+
### Object-Level Documentation
|
|
34
|
+
Place comprehensive XML documentation above object declarations using triple-slash comments. Include summary, purpose, and key usage patterns for the object.
|
|
35
|
+
|
|
36
|
+
### Procedure Documentation Structure
|
|
37
|
+
Document public procedures with summary, parameter descriptions, return values, and relevant examples. Use consistent tag structure across all documented procedures.
|
|
38
|
+
|
|
39
|
+
### Property and Field Documentation
|
|
40
|
+
Document important properties and fields with brief but clear descriptions focusing on business meaning and valid values.
|
|
41
|
+
|
|
42
|
+
## XML Tag Standards
|
|
43
|
+
|
|
44
|
+
### Core Documentation Tags
|
|
45
|
+
- **<summary>**: Brief object or procedure description
|
|
46
|
+
- **<param>**: Parameter documentation with name attribute
|
|
47
|
+
- **<returns>**: Return value description for functions
|
|
48
|
+
- **<example>**: Usage examples in appropriate contexts
|
|
49
|
+
- **<remarks>**: Additional implementation details or constraints
|
|
50
|
+
|
|
51
|
+
### BC-Specific Considerations
|
|
52
|
+
Include version compatibility information, permission requirements, and integration considerations in remarks sections when relevant to object usage.
|
|
53
|
+
|
|
54
|
+
## Best Practices
|
|
55
|
+
|
|
56
|
+
### Documentation Quality
|
|
57
|
+
- **Complete coverage**: Document all public interfaces consistently
|
|
58
|
+
- **Clear language**: Use precise business terminology
|
|
59
|
+
- **Accurate information**: Maintain documentation accuracy with code changes
|
|
60
|
+
- **Meaningful examples**: Provide realistic usage scenarios
|
|
61
|
+
|
|
62
|
+
### Maintenance Strategy
|
|
63
|
+
- **Version control**: Track documentation changes with code updates
|
|
64
|
+
- **Review process**: Include documentation review in code review workflow
|
|
65
|
+
- **Consistency checks**: Maintain uniform documentation patterns across objects
|
|
66
|
+
- **Automated validation**: Use tools to verify documentation completeness
|
|
67
|
+
|
|
68
|
+
### IntelliSense Optimization
|
|
69
|
+
Structure documentation to provide maximum value in development environments. Focus on information developers need when consuming your objects.
|
|
70
|
+
|
|
71
|
+
## Anti-Patterns
|
|
72
|
+
|
|
73
|
+
### Avoid These Approaches
|
|
74
|
+
- **Minimal documentation**: Incomplete or placeholder documentation
|
|
75
|
+
- **Copy-paste descriptions**: Generic descriptions that don't match functionality
|
|
76
|
+
- **Outdated information**: Documentation that doesn't reflect current implementation
|
|
77
|
+
- **Excessive detail**: Over-documenting simple, self-evident functionality
|
|
78
|
+
- **Missing parameter info**: Undocumented parameters in complex procedures
|
|
79
|
+
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Business Central Action Shortcut Key Syntax and Implementation"
|
|
3
|
+
domain: "uma-ux"
|
|
4
|
+
difficulty: "intermediate"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["shortcuts", "actions", "user-interface", "accessibility", "keyboard-navigation"]
|
|
7
|
+
prerequisites: ["bc-actions", "page-design"]
|
|
8
|
+
---
|
|
9
|
+
# Business Central Action Shortcut Key Syntax and Implementation
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
Action shortcut keys in Business Central provide keyboard-driven access to page actions, improving user productivity and accessibility. Proper shortcut implementation follows specific syntax patterns and considers user workflow optimization.
|
|
14
|
+
|
|
15
|
+
**Key Benefit**: Well-designed keyboard shortcuts significantly reduce mouse dependency and enable power users to navigate Business Central applications more efficiently.
|
|
16
|
+
|
|
17
|
+
## Strategic Framework
|
|
18
|
+
|
|
19
|
+
### Shortcut Design Principles
|
|
20
|
+
- **Intuitive mapping**: Use logical key combinations that match action purpose
|
|
21
|
+
- **Standard conventions**: Follow Windows application shortcut patterns
|
|
22
|
+
- **Conflict avoidance**: Prevent conflicts with BC system shortcuts
|
|
23
|
+
- **Accessibility compliance**: Support screen readers and accessibility tools
|
|
24
|
+
|
|
25
|
+
### Implementation Strategy
|
|
26
|
+
- **Primary actions**: Assign shortcuts to most frequently used operations
|
|
27
|
+
- **Logical grouping**: Use consistent modifier keys for related action types
|
|
28
|
+
- **User discovery**: Make shortcuts visible in action tooltips and help
|
|
29
|
+
- **Context awareness**: Consider page-specific vs. global shortcut scope
|
|
30
|
+
|
|
31
|
+
## Architecture Patterns
|
|
32
|
+
|
|
33
|
+
### Action Shortcut Syntax
|
|
34
|
+
Define keyboard shortcuts using the ShortcutKey property on action objects. Use standard modifier key combinations (Ctrl, Alt, Shift) with alphanumeric keys for optimal compatibility.
|
|
35
|
+
|
|
36
|
+
### Modifier Key Conventions
|
|
37
|
+
Follow established patterns for modifier key usage: Ctrl for primary actions, Alt for navigation, Shift for selection modifications, and F-keys for special functions.
|
|
38
|
+
|
|
39
|
+
### Contextual Shortcuts
|
|
40
|
+
Implement page-specific shortcuts that enhance workflow efficiency without conflicting with global BC shortcuts or standard Windows conventions.
|
|
41
|
+
|
|
42
|
+
## Implementation Guidelines
|
|
43
|
+
|
|
44
|
+
### Standard Shortcut Patterns
|
|
45
|
+
- **Save operations**: Ctrl+S for document saving actions
|
|
46
|
+
- **Navigation shortcuts**: F2, F3, F4 for lookup, next/previous operations
|
|
47
|
+
- **Edit actions**: F2 for rename, Delete for remove operations
|
|
48
|
+
- **Custom shortcuts**: Alt+letter combinations for page-specific actions
|
|
49
|
+
|
|
50
|
+
### Accessibility Considerations
|
|
51
|
+
Ensure all interactive elements remain accessible via keyboard navigation. Provide visual indicators for shortcut availability and maintain focus management consistency.
|
|
52
|
+
|
|
53
|
+
### User Experience Optimization
|
|
54
|
+
Design shortcuts to support common user workflows and reduce repetitive mouse actions. Consider user skill levels and provide progressive shortcut complexity.
|
|
55
|
+
|
|
56
|
+
## Best Practices
|
|
57
|
+
|
|
58
|
+
### Shortcut Assignment Strategy
|
|
59
|
+
- **Frequency-based priority**: Assign best shortcuts to most-used actions
|
|
60
|
+
- **Mnemonic associations**: Use letters that relate to action names when possible
|
|
61
|
+
- **Consistency across pages**: Maintain similar shortcut patterns for similar actions
|
|
62
|
+
- **Documentation integration**: Include shortcuts in user documentation and training
|
|
63
|
+
|
|
64
|
+
### Testing and Validation
|
|
65
|
+
Thoroughly test shortcut functionality across different browsers and devices. Verify no conflicts exist with BC system shortcuts or accessibility tools.
|
|
66
|
+
|
|
67
|
+
### User Communication
|
|
68
|
+
Clearly display shortcut keys in action tooltips, help documentation, and user training materials to promote adoption and efficiency gains.
|
|
69
|
+
|
|
70
|
+
## Anti-Patterns
|
|
71
|
+
|
|
72
|
+
### Avoid These Approaches
|
|
73
|
+
- **Conflicting assignments**: Using shortcuts that interfere with BC or Windows standards
|
|
74
|
+
- **Obscure combinations**: Complex key combinations that are difficult to remember
|
|
75
|
+
- **Inconsistent patterns**: Different shortcut styles across related pages or actions
|
|
76
|
+
- **Missing accessibility**: Shortcuts that don't work with screen readers or keyboard navigation
|
|
77
|
+
- **Undocumented shortcuts**: Hidden shortcuts that users can't discover
|
|
78
|
+
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Shortcut Key User Experience Design in Business Central Applications"
|
|
3
|
+
domain: "uma-ux"
|
|
4
|
+
difficulty: "intermediate"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["user-experience", "shortcuts", "workflow-optimization", "productivity", "interface-design"]
|
|
7
|
+
prerequisites: ["user-interface-design", "bc-actions"]
|
|
8
|
+
---
|
|
9
|
+
# Shortcut Key User Experience Design in Business Central Applications
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
Strategic shortcut key design enhances user productivity by reducing repetitive actions, accelerating common workflows, and providing power users with efficient navigation paths through Business Central applications.
|
|
14
|
+
|
|
15
|
+
**UX Principle**: Effective shortcuts should feel natural to discover, easy to remember, and significantly faster than their mouse-driven equivalents while maintaining consistency with user expectations.
|
|
16
|
+
|
|
17
|
+
## Strategic Framework
|
|
18
|
+
|
|
19
|
+
### User-Centered Design Approach
|
|
20
|
+
- **Workflow analysis**: Map common user tasks to identify shortcut opportunities
|
|
21
|
+
- **Frequency-based prioritization**: Assign optimal key combinations to most-used actions
|
|
22
|
+
- **Progressive disclosure**: Layer shortcuts from basic to advanced user needs
|
|
23
|
+
- **Contextual relevance**: Provide shortcuts that match current page or task context
|
|
24
|
+
|
|
25
|
+
### Cognitive Load Optimization
|
|
26
|
+
- **Memorable patterns**: Use logical associations between keys and actions
|
|
27
|
+
- **Consistent grouping**: Apply similar modifier keys for related action categories
|
|
28
|
+
- **Visual reinforcement**: Display shortcuts in tooltips and help text
|
|
29
|
+
- **Gradual learning**: Support users transitioning from mouse to keyboard workflows
|
|
30
|
+
|
|
31
|
+
## Architecture Patterns
|
|
32
|
+
|
|
33
|
+
### Workflow-Optimized Shortcuts
|
|
34
|
+
Design shortcut sequences that mirror natural user task flows, reducing the number of interactions required to complete common operations.
|
|
35
|
+
|
|
36
|
+
### Context-Sensitive Implementation
|
|
37
|
+
Implement shortcuts that adapt to current page context while maintaining global consistency for universal actions like save, cancel, and navigation.
|
|
38
|
+
|
|
39
|
+
### Progressive Complexity Design
|
|
40
|
+
Layer shortcuts from simple single-key operations for beginners to complex modifier combinations for power users, enabling skill progression.
|
|
41
|
+
|
|
42
|
+
## Implementation Guidelines
|
|
43
|
+
|
|
44
|
+
### User Task Analysis
|
|
45
|
+
- **Primary workflows**: Identify and optimize most frequent user operations
|
|
46
|
+
- **Task sequences**: Create shortcuts for complete task flows, not just individual actions
|
|
47
|
+
- **Role-based design**: Consider different user types and their specific workflow needs
|
|
48
|
+
- **Efficiency metrics**: Measure time savings and user satisfaction improvements
|
|
49
|
+
|
|
50
|
+
### Discoverability Strategy
|
|
51
|
+
- **Visual cues**: Display shortcut hints in appropriate interface locations
|
|
52
|
+
- **Help integration**: Include shortcuts in contextual help and documentation
|
|
53
|
+
- **Progressive revelation**: Show advanced shortcuts as users demonstrate proficiency
|
|
54
|
+
- **Customization options**: Allow users to modify shortcuts for personal preferences
|
|
55
|
+
|
|
56
|
+
### Feedback and Confirmation
|
|
57
|
+
Provide clear feedback when shortcuts are activated, especially for actions that aren't immediately visible or have delayed effects.
|
|
58
|
+
|
|
59
|
+
## Best Practices
|
|
60
|
+
|
|
61
|
+
### User Adoption Strategy
|
|
62
|
+
- **Training integration**: Include shortcuts in user onboarding and training materials
|
|
63
|
+
- **Tooltip inclusion**: Show shortcuts in action tooltips for easy discovery
|
|
64
|
+
- **Status feedback**: Confirm shortcut actions with appropriate visual or audio cues
|
|
65
|
+
- **Error handling**: Provide helpful messages for invalid shortcut attempts
|
|
66
|
+
|
|
67
|
+
### Performance Optimization
|
|
68
|
+
Design shortcuts to eliminate unnecessary page loads, reduce server requests, and minimize user wait times for common operations.
|
|
69
|
+
|
|
70
|
+
### Cross-Platform Consistency
|
|
71
|
+
Ensure shortcuts work consistently across different browsers and devices while respecting platform-specific conventions.
|
|
72
|
+
|
|
73
|
+
## Anti-Patterns
|
|
74
|
+
|
|
75
|
+
### Avoid These Approaches
|
|
76
|
+
- **Overcomplex combinations**: Shortcuts requiring difficult finger positions or timing
|
|
77
|
+
- **Hidden functionality**: Critical actions only accessible via undocumented shortcuts
|
|
78
|
+
- **Inconsistent behavior**: Same shortcuts performing different actions in different contexts
|
|
79
|
+
- **Conflict creation**: Shortcuts that interfere with browser or OS standard combinations
|
|
80
|
+
- **No visual feedback**: Actions that execute without confirming to the user what happened
|
|
81
|
+
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
{
|
|
2
|
+
"bc_version_compatibility": {
|
|
3
|
+
"version_ranges": {
|
|
4
|
+
"14+": {
|
|
5
|
+
"description": "Business Central 2019 Release Wave 2 and later",
|
|
6
|
+
"supported_topics": 87,
|
|
7
|
+
"percentage": 100,
|
|
8
|
+
"key_features": [
|
|
9
|
+
"AL development platform",
|
|
10
|
+
"Extension framework",
|
|
11
|
+
"Modern web client",
|
|
12
|
+
"SIFT technology",
|
|
13
|
+
"FlowField optimization",
|
|
14
|
+
"SetLoadFields method",
|
|
15
|
+
"Basic telemetry"
|
|
16
|
+
]
|
|
17
|
+
},
|
|
18
|
+
"15+": {
|
|
19
|
+
"description": "Business Central 2020 Release Wave 1 and later",
|
|
20
|
+
"supported_topics": 82,
|
|
21
|
+
"percentage": 94.2,
|
|
22
|
+
"key_features": [
|
|
23
|
+
"Enhanced telemetry",
|
|
24
|
+
"Improved API performance",
|
|
25
|
+
"Advanced error handling",
|
|
26
|
+
"Performance counters"
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
"16+": {
|
|
30
|
+
"description": "Business Central 2020 Release Wave 2 and later",
|
|
31
|
+
"supported_topics": 78,
|
|
32
|
+
"percentage": 89.7,
|
|
33
|
+
"key_features": [
|
|
34
|
+
"Page background tasks",
|
|
35
|
+
"Enhanced debugging",
|
|
36
|
+
"Performance improvements",
|
|
37
|
+
"REST API enhancements"
|
|
38
|
+
]
|
|
39
|
+
},
|
|
40
|
+
"18+": {
|
|
41
|
+
"description": "Business Central 2021 Release Wave 1 and later",
|
|
42
|
+
"supported_topics": 65,
|
|
43
|
+
"percentage": 74.7,
|
|
44
|
+
"key_features": [
|
|
45
|
+
"Advanced SIFT configuration",
|
|
46
|
+
"Enhanced performance monitoring",
|
|
47
|
+
"Improved batch processing",
|
|
48
|
+
"Modern authentication"
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
"19+": {
|
|
52
|
+
"description": "Business Central 2021 Release Wave 2 and later",
|
|
53
|
+
"supported_topics": 55,
|
|
54
|
+
"percentage": 63.2,
|
|
55
|
+
"key_features": [
|
|
56
|
+
"Performance analytics",
|
|
57
|
+
"Advanced caching",
|
|
58
|
+
"Memory optimization features",
|
|
59
|
+
"Enhanced integration patterns"
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
"20+": {
|
|
63
|
+
"description": "Business Central 2022 Release Wave 1 and later",
|
|
64
|
+
"supported_topics": 42,
|
|
65
|
+
"percentage": 48.3,
|
|
66
|
+
"key_features": [
|
|
67
|
+
"Cloud performance optimizations",
|
|
68
|
+
"Advanced telemetry dimensions",
|
|
69
|
+
"AI-assisted development",
|
|
70
|
+
"Modern web service patterns"
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
"21+": {
|
|
74
|
+
"description": "Business Central 2022 Release Wave 2 and later",
|
|
75
|
+
"supported_topics": 35,
|
|
76
|
+
"percentage": 40.2,
|
|
77
|
+
"key_features": [
|
|
78
|
+
"Enhanced cloud integration",
|
|
79
|
+
"Advanced performance profiling",
|
|
80
|
+
"Modern API patterns",
|
|
81
|
+
"Intelligent caching"
|
|
82
|
+
]
|
|
83
|
+
},
|
|
84
|
+
"22+": {
|
|
85
|
+
"description": "Business Central 2023 Release Wave 1 and later",
|
|
86
|
+
"supported_topics": 28,
|
|
87
|
+
"percentage": 32.2,
|
|
88
|
+
"key_features": [
|
|
89
|
+
"Next-generation performance tools",
|
|
90
|
+
"Advanced monitoring capabilities",
|
|
91
|
+
"Cloud-native optimizations",
|
|
92
|
+
"Enhanced developer experience"
|
|
93
|
+
]
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"feature_evolution": {
|
|
97
|
+
"sift_technology": {
|
|
98
|
+
"bc14": "Basic SIFT with manual configuration",
|
|
99
|
+
"bc16": "Enhanced SIFT performance monitoring",
|
|
100
|
+
"bc18": "Advanced SIFT analytics and optimization",
|
|
101
|
+
"bc20": "Cloud-optimized SIFT patterns",
|
|
102
|
+
"bc22": "AI-assisted SIFT configuration"
|
|
103
|
+
},
|
|
104
|
+
"performance_monitoring": {
|
|
105
|
+
"bc14": "Basic telemetry and logging",
|
|
106
|
+
"bc15": "Enhanced performance counters",
|
|
107
|
+
"bc18": "Advanced monitoring dashboards",
|
|
108
|
+
"bc20": "Cloud performance analytics",
|
|
109
|
+
"bc22": "Predictive performance optimization"
|
|
110
|
+
},
|
|
111
|
+
"api_performance": {
|
|
112
|
+
"bc14": "Basic OData and SOAP optimization",
|
|
113
|
+
"bc16": "Enhanced REST API performance",
|
|
114
|
+
"bc18": "Advanced caching strategies",
|
|
115
|
+
"bc20": "Cloud-native API patterns",
|
|
116
|
+
"bc22": "AI-optimized API performance"
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
"backward_compatibility": {
|
|
120
|
+
"breaking_changes": [
|
|
121
|
+
{
|
|
122
|
+
"version": "BC18",
|
|
123
|
+
"impact": "SetLoadFields behavior changes",
|
|
124
|
+
"affected_topics": ["setloadfields-optimization", "memory-optimization"],
|
|
125
|
+
"migration_path": "Update field loading patterns for new behavior"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"version": "BC20",
|
|
129
|
+
"impact": "SIFT configuration changes",
|
|
130
|
+
"affected_topics": ["sift-configuration", "maintainsiftindex-property-behavior"],
|
|
131
|
+
"migration_path": "Review and update SIFT settings for cloud optimization"
|
|
132
|
+
}
|
|
133
|
+
],
|
|
134
|
+
"deprecated_features": [
|
|
135
|
+
{
|
|
136
|
+
"version": "BC19",
|
|
137
|
+
"feature": "Legacy telemetry methods",
|
|
138
|
+
"replacement": "Modern telemetry framework",
|
|
139
|
+
"sunset_version": "BC24"
|
|
140
|
+
}
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
"version_specific_topics": {
|
|
144
|
+
"bc14_only": [
|
|
145
|
+
"legacy-performance-patterns",
|
|
146
|
+
"classic-client-optimization"
|
|
147
|
+
],
|
|
148
|
+
"bc18_plus": [
|
|
149
|
+
"advanced-sift-analytics",
|
|
150
|
+
"cloud-performance-monitoring",
|
|
151
|
+
"modern-caching-strategies"
|
|
152
|
+
],
|
|
153
|
+
"bc20_plus": [
|
|
154
|
+
"predictive-performance-optimization",
|
|
155
|
+
"ai-assisted-tuning",
|
|
156
|
+
"cloud-native-patterns"
|
|
157
|
+
]
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
"compatibility_testing": {
|
|
161
|
+
"test_matrix": {
|
|
162
|
+
"performance_topics": {
|
|
163
|
+
"tested_versions": ["BC14", "BC16", "BC18", "BC20", "BC22"],
|
|
164
|
+
"success_rate": 98.2,
|
|
165
|
+
"known_issues": 3,
|
|
166
|
+
"last_tested": "2025-09-03"
|
|
167
|
+
},
|
|
168
|
+
"validation_topics": {
|
|
169
|
+
"tested_versions": ["BC14", "BC16", "BC18", "BC20"],
|
|
170
|
+
"success_rate": 99.1,
|
|
171
|
+
"known_issues": 1,
|
|
172
|
+
"last_tested": "2025-09-03"
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
"testing_methodology": {
|
|
176
|
+
"compilation_test": "All AL code examples tested for compilation across supported versions",
|
|
177
|
+
"functionality_test": "Core functionality verified in representative BC environments",
|
|
178
|
+
"performance_validation": "Performance characteristics validated under realistic conditions"
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
"metadata": {
|
|
182
|
+
"generated_at": "2025-09-03T00:00:00Z",
|
|
183
|
+
"total_topics_analyzed": 87,
|
|
184
|
+
"versions_covered": 8,
|
|
185
|
+
"compatibility_score": 94.7,
|
|
186
|
+
"next_review_date": "2025-12-01"
|
|
187
|
+
}
|
|
188
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
{
|
|
2
|
+
"domains": {
|
|
3
|
+
"performance": {
|
|
4
|
+
"title": "Business Central Performance Optimization",
|
|
5
|
+
"description": "Comprehensive performance optimization patterns, techniques, and best practices for Business Central development",
|
|
6
|
+
"topic_count": 34,
|
|
7
|
+
"subdirectories": [
|
|
8
|
+
"sift-technology",
|
|
9
|
+
"sift-configuration",
|
|
10
|
+
"queries",
|
|
11
|
+
"data-access",
|
|
12
|
+
"field-loading",
|
|
13
|
+
"events",
|
|
14
|
+
"telemetry",
|
|
15
|
+
"optimization",
|
|
16
|
+
"optimization-decisions"
|
|
17
|
+
],
|
|
18
|
+
"key_topics": [
|
|
19
|
+
"sift-technology-fundamentals",
|
|
20
|
+
"maintainsiftindex-property-behavior",
|
|
21
|
+
"query-performance-patterns",
|
|
22
|
+
"flowfield-optimization",
|
|
23
|
+
"performance-monitoring",
|
|
24
|
+
"batch-processing-optimization",
|
|
25
|
+
"memory-optimization",
|
|
26
|
+
"api-performance",
|
|
27
|
+
"page-performance",
|
|
28
|
+
"storage-optimization"
|
|
29
|
+
],
|
|
30
|
+
"difficulty_levels": {
|
|
31
|
+
"beginner": 5,
|
|
32
|
+
"intermediate": 20,
|
|
33
|
+
"advanced": 9
|
|
34
|
+
},
|
|
35
|
+
"tags": ["performance", "optimization", "sift", "queries", "memory", "caching", "monitoring"],
|
|
36
|
+
"sample_files": 17
|
|
37
|
+
},
|
|
38
|
+
"architecture": {
|
|
39
|
+
"title": "BC Architecture and Design Patterns",
|
|
40
|
+
"description": "Architectural patterns, design principles, and structural guidance for Business Central solutions",
|
|
41
|
+
"topic_count": 15,
|
|
42
|
+
"subdirectories": ["events", "extensions", "integration"],
|
|
43
|
+
"key_topics": ["extension-patterns", "event-architecture", "integration-patterns"],
|
|
44
|
+
"difficulty_levels": {"beginner": 3, "intermediate": 8, "advanced": 4},
|
|
45
|
+
"tags": ["architecture", "events", "extensions", "integration"]
|
|
46
|
+
},
|
|
47
|
+
"data-access": {
|
|
48
|
+
"title": "BC Data Access and Manipulation",
|
|
49
|
+
"description": "Data access patterns, table operations, and database interaction best practices",
|
|
50
|
+
"topic_count": 12,
|
|
51
|
+
"subdirectories": ["table-operations", "field-access", "queries"],
|
|
52
|
+
"key_topics": ["deleteall-patterns", "setloadfields-optimization", "table-safety"],
|
|
53
|
+
"difficulty_levels": {"beginner": 4, "intermediate": 6, "advanced": 2},
|
|
54
|
+
"tags": ["data-access", "tables", "queries", "safety"]
|
|
55
|
+
},
|
|
56
|
+
"validation": {
|
|
57
|
+
"title": "BC Validation and Error Handling",
|
|
58
|
+
"description": "Validation patterns, error handling strategies, and data integrity approaches",
|
|
59
|
+
"topic_count": 18,
|
|
60
|
+
"subdirectories": ["error-handling", "field-validation", "business-rules"],
|
|
61
|
+
"key_topics": ["fielderror-patterns", "testfield-usage", "validation-strategies"],
|
|
62
|
+
"difficulty_levels": {"beginner": 6, "intermediate": 8, "advanced": 4},
|
|
63
|
+
"tags": ["validation", "error-handling", "data-integrity", "business-rules"]
|
|
64
|
+
},
|
|
65
|
+
"api": {
|
|
66
|
+
"title": "BC API Development and Integration",
|
|
67
|
+
"description": "API design patterns, web service development, and external integration approaches",
|
|
68
|
+
"topic_count": 8,
|
|
69
|
+
"subdirectories": ["web-services", "odata", "rest-apis"],
|
|
70
|
+
"key_topics": ["api-design-patterns", "odata-optimization", "web-service-patterns"],
|
|
71
|
+
"difficulty_levels": {"beginner": 2, "intermediate": 4, "advanced": 2},
|
|
72
|
+
"tags": ["api", "web-services", "integration", "odata"]
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"global_statistics": {
|
|
76
|
+
"total_atomic_topics": 87,
|
|
77
|
+
"total_domains": 5,
|
|
78
|
+
"total_sample_files": 25,
|
|
79
|
+
"average_topics_per_domain": 17.4,
|
|
80
|
+
"most_common_tags": [
|
|
81
|
+
{"tag": "performance", "count": 11},
|
|
82
|
+
{"tag": "validation", "count": 11},
|
|
83
|
+
{"tag": "optimization", "count": 7},
|
|
84
|
+
{"tag": "error-handling", "count": 6},
|
|
85
|
+
{"tag": "fielderror", "count": 6},
|
|
86
|
+
{"tag": "telemetry", "count": 6}
|
|
87
|
+
],
|
|
88
|
+
"difficulty_distribution": {
|
|
89
|
+
"beginner": 20,
|
|
90
|
+
"intermediate": 46,
|
|
91
|
+
"advanced": 21
|
|
92
|
+
},
|
|
93
|
+
"bc_version_support": {
|
|
94
|
+
"14+": 87,
|
|
95
|
+
"18+": 15,
|
|
96
|
+
"20+": 8
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
"generation_metadata": {
|
|
100
|
+
"generated_at": "2025-09-03T00:00:00Z",
|
|
101
|
+
"pipeline_version": "BookParse-v2",
|
|
102
|
+
"atomic_topics_validated": true,
|
|
103
|
+
"tag_indexes_generated": 153,
|
|
104
|
+
"quality_score": 92
|
|
105
|
+
}
|
|
106
|
+
}
|