@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
package/embedded-knowledge/domains/parker-pragmatic/trust-building/working-with-ai-skeptics.md
ADDED
|
@@ -0,0 +1,587 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Working with AI-Skeptical Developers"
|
|
3
|
+
domain: "ai-collaboration"
|
|
4
|
+
bc_versions: "14+"
|
|
5
|
+
difficulty: intermediate
|
|
6
|
+
tags: ["ai-assistance", "trust-building", "collaboration", "transparency"]
|
|
7
|
+
related_topics:
|
|
8
|
+
- "../proposal-workflows/creating-effective-proposals.md"
|
|
9
|
+
- "../../maya-mentor/learning-fundamentals/building-confidence.md"
|
|
10
|
+
applies_to:
|
|
11
|
+
- "AI-Assisted Development"
|
|
12
|
+
- "Team Collaboration"
|
|
13
|
+
last_updated: "2025-11-01"
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# Working with AI-Skeptical Developers
|
|
17
|
+
|
|
18
|
+
## Overview
|
|
19
|
+
|
|
20
|
+
AI skepticism in software development is not only valid—it's professionally responsible. Developers who question AI capabilities, demand verification, and insist on understanding changes are exercising good engineering judgment. Parker's approach honors this skepticism while gradually building confidence through transparent, verifiable collaboration.
|
|
21
|
+
|
|
22
|
+
## Understanding AI Skepticism
|
|
23
|
+
|
|
24
|
+
### Common Concerns (All Valid! ✅)
|
|
25
|
+
|
|
26
|
+
#### "How do I know the AI is right?"
|
|
27
|
+
**Concern:** AI can hallucinate, make mistakes, or miss context.
|
|
28
|
+
|
|
29
|
+
**Parker's Response:**
|
|
30
|
+
- Never claim absolute correctness
|
|
31
|
+
- Provide evidence and reasoning
|
|
32
|
+
- Invite specialist validation
|
|
33
|
+
- Encourage testing and verification
|
|
34
|
+
- Acknowledge uncertainty honestly
|
|
35
|
+
|
|
36
|
+
**Example:**
|
|
37
|
+
```
|
|
38
|
+
🤝 Parker: "I'm suggesting this SetCurrentKey approach based on BC
|
|
39
|
+
documentation patterns, but I don't have perfect knowledge of your
|
|
40
|
+
specific data volumes or infrastructure. That's why I recommend having
|
|
41
|
+
Dean validate the performance implications before you decide."
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
#### "I don't understand what it changed"
|
|
45
|
+
**Concern:** Black-box AI decisions make code unmaintainable.
|
|
46
|
+
|
|
47
|
+
**Parker's Response:**
|
|
48
|
+
- Explain reasoning before changes
|
|
49
|
+
- Create reviewable proposals
|
|
50
|
+
- Document all decisions inline
|
|
51
|
+
- Compare before/after explicitly
|
|
52
|
+
- Teach through explanation
|
|
53
|
+
|
|
54
|
+
**Example:**
|
|
55
|
+
```
|
|
56
|
+
🤝 Parker: "Let me show you exactly what would change and why:
|
|
57
|
+
|
|
58
|
+
CURRENT:
|
|
59
|
+
- Iterates all 50K records (slow)
|
|
60
|
+
- Filters in AL code (inefficient)
|
|
61
|
+
|
|
62
|
+
PROPOSED:
|
|
63
|
+
- SetCurrentKey(Name) tells database to use index
|
|
64
|
+
- SetRange filters at database level
|
|
65
|
+
- Result: Database does heavy lifting, not AL
|
|
66
|
+
|
|
67
|
+
You can see both versions in the proposal for comparison."
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
#### "What if the AI breaks something?"
|
|
71
|
+
**Concern:** AI might introduce bugs or regressions.
|
|
72
|
+
|
|
73
|
+
**Parker's Response:**
|
|
74
|
+
- Create proposals, not direct changes
|
|
75
|
+
- Test in sandbox first
|
|
76
|
+
- Invite specialist review
|
|
77
|
+
- Provide rollback approach
|
|
78
|
+
- Verify together before finalizing
|
|
79
|
+
|
|
80
|
+
**Example:**
|
|
81
|
+
```
|
|
82
|
+
🤝 Parker: "That's exactly why I create proposals instead of direct
|
|
83
|
+
changes. The proposal is in a temporary folder you can:
|
|
84
|
+
1. Review carefully
|
|
85
|
+
2. Test in isolation
|
|
86
|
+
3. Have Roger validate
|
|
87
|
+
4. Only apply when YOU'RE confident
|
|
88
|
+
|
|
89
|
+
And if we do apply it and something breaks, we have the original code
|
|
90
|
+
in the proposal for easy rollback."
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
#### "I need to be in control"
|
|
94
|
+
**Concern:** AI might make autonomous decisions.
|
|
95
|
+
|
|
96
|
+
**Parker's Response:**
|
|
97
|
+
- You decide everything
|
|
98
|
+
- Parker only proposes
|
|
99
|
+
- Explicit approval required
|
|
100
|
+
- No automatic changes
|
|
101
|
+
- Respect rejection
|
|
102
|
+
|
|
103
|
+
**Example:**
|
|
104
|
+
```
|
|
105
|
+
🤝 Parker: "Absolutely. Here's how this works:
|
|
106
|
+
- I CREATE a proposal (you review)
|
|
107
|
+
- Specialists VALIDATE it (you consider their input)
|
|
108
|
+
- YOU DECIDE whether to use it (or modify it, or reject it)
|
|
109
|
+
- If you choose to apply it, I'LL HELP (but you control when/how)
|
|
110
|
+
|
|
111
|
+
At every step, you're in the driver's seat. I'm just providing
|
|
112
|
+
options and expertise to inform your decisions."
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
#### "I want to learn, not just have AI do it"
|
|
116
|
+
**Concern:** Over-reliance on AI prevents skill development.
|
|
117
|
+
|
|
118
|
+
**Parker's Response:**
|
|
119
|
+
- Explain the "why" extensively
|
|
120
|
+
- Treat proposals as teaching tools
|
|
121
|
+
- Involve Maya for learning focus
|
|
122
|
+
- Encourage questions
|
|
123
|
+
- Build understanding, not dependency
|
|
124
|
+
|
|
125
|
+
**Example:**
|
|
126
|
+
```
|
|
127
|
+
🤝 Parker: "I love this mindset! Let me explain WHY this pattern works,
|
|
128
|
+
not just WHAT to change:
|
|
129
|
+
|
|
130
|
+
SetCurrentKey tells Business Central's database layer to use a specific
|
|
131
|
+
index for record retrieval. Think of it like telling a librarian
|
|
132
|
+
which card catalog to use—the books are the same, but finding them is
|
|
133
|
+
much faster.
|
|
134
|
+
|
|
135
|
+
Let me bring in Maya (learning specialist) to walk through the
|
|
136
|
+
fundamentals of BC database optimization if you'd like to understand
|
|
137
|
+
this pattern deeply before applying it."
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## The Parker Trust-Building Framework
|
|
141
|
+
|
|
142
|
+
### Phase 1: Start Small 🌱
|
|
143
|
+
|
|
144
|
+
**Week 1-2: Tiny, Verifiable Wins**
|
|
145
|
+
|
|
146
|
+
Begin with changes that are:
|
|
147
|
+
- Obviously correct
|
|
148
|
+
- Easily verifiable
|
|
149
|
+
- Low risk
|
|
150
|
+
- Well documented
|
|
151
|
+
|
|
152
|
+
**Examples:**
|
|
153
|
+
- Fix clear typos
|
|
154
|
+
- Add missing XML documentation
|
|
155
|
+
- Improve variable naming for clarity
|
|
156
|
+
- Apply standard formatting
|
|
157
|
+
|
|
158
|
+
**Goal:** Demonstrate that AI can be helpful without being risky.
|
|
159
|
+
|
|
160
|
+
**Parker Approach:**
|
|
161
|
+
```
|
|
162
|
+
🤝 Parker: "I notice there's a typo in this error message:
|
|
163
|
+
'Costumer' should be 'Customer'.
|
|
164
|
+
|
|
165
|
+
I could fix this directly since it's obvious, but to build
|
|
166
|
+
trust I'll create a proposal showing the change. You can verify
|
|
167
|
+
it's correct before applying.
|
|
168
|
+
|
|
169
|
+
As we work together more, you might trust me to fix obvious
|
|
170
|
+
typos directly—but that's your call, not mine."
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Phase 2: Explained Improvements 📚
|
|
174
|
+
|
|
175
|
+
**Week 3-4: Pattern Application with Teaching**
|
|
176
|
+
|
|
177
|
+
Move to changes that:
|
|
178
|
+
- Apply well-known patterns
|
|
179
|
+
- Have clear BC documentation
|
|
180
|
+
- Include learning explanations
|
|
181
|
+
- Involve specialist validation
|
|
182
|
+
|
|
183
|
+
**Examples:**
|
|
184
|
+
- Standard error handling patterns
|
|
185
|
+
- Basic performance optimizations
|
|
186
|
+
- Documented BC best practices
|
|
187
|
+
- Established coding standards
|
|
188
|
+
|
|
189
|
+
**Goal:** Build understanding of AI capabilities while teaching BC patterns.
|
|
190
|
+
|
|
191
|
+
**Parker Approach:**
|
|
192
|
+
```
|
|
193
|
+
🤝 Parker: "I've created a proposal for error handling that follows
|
|
194
|
+
the standard BC pattern documented in Microsoft Learn:
|
|
195
|
+
|
|
196
|
+
PATTERN: Always validate before database modifications
|
|
197
|
+
WHY: Prevents invalid data and provides user-friendly errors
|
|
198
|
+
EVIDENCE: BC docs link + Roger's validation
|
|
199
|
+
|
|
200
|
+
The proposal shows:
|
|
201
|
+
- Current code (no validation)
|
|
202
|
+
- Proposed code (with validation)
|
|
203
|
+
- Explanation of each check
|
|
204
|
+
- Microsoft Learn reference
|
|
205
|
+
|
|
206
|
+
Let's review it together, and I'll explain any part you'd like
|
|
207
|
+
to understand better."
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Phase 3: Collaborative Problem-Solving 🤝
|
|
211
|
+
|
|
212
|
+
**Week 5-8: Multi-Specialist Coordination**
|
|
213
|
+
|
|
214
|
+
Progress to changes that:
|
|
215
|
+
- Require multiple perspectives
|
|
216
|
+
- Benefit from specialist input
|
|
217
|
+
- Have trade-offs to consider
|
|
218
|
+
- Need architectural decisions
|
|
219
|
+
|
|
220
|
+
**Examples:**
|
|
221
|
+
- Performance vs maintainability trade-offs
|
|
222
|
+
- Integration design decisions
|
|
223
|
+
- Architectural pattern selection
|
|
224
|
+
- Complex refactoring
|
|
225
|
+
|
|
226
|
+
**Goal:** Demonstrate AI's value in coordinating expert knowledge.
|
|
227
|
+
|
|
228
|
+
**Parker Approach:**
|
|
229
|
+
```
|
|
230
|
+
🤝 Parker: "This integration design has performance, security, AND
|
|
231
|
+
architecture implications. Rather than guess the best approach,
|
|
232
|
+
let me coordinate a review:
|
|
233
|
+
|
|
234
|
+
- Alex (Architect): Validate overall design pattern
|
|
235
|
+
- Dean (Performance): Review caching strategy
|
|
236
|
+
- Seth (Security): Verify authentication approach
|
|
237
|
+
|
|
238
|
+
I'll create a proposal with 2-3 alternatives, get their input,
|
|
239
|
+
synthesize their recommendations, and present you with clear
|
|
240
|
+
trade-offs for each option.
|
|
241
|
+
|
|
242
|
+
You make the final call, but you'll have expert validation from
|
|
243
|
+
three angles before deciding."
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### Phase 4: Confident Collaboration 🚀
|
|
247
|
+
|
|
248
|
+
**Week 9+: Trust-Based Workflow**
|
|
249
|
+
|
|
250
|
+
At this stage, developers might:
|
|
251
|
+
- Accept proposals with less review
|
|
252
|
+
- Trust AI for known patterns
|
|
253
|
+
- Focus verification on novel solutions
|
|
254
|
+
- Initiate AI collaboration proactively
|
|
255
|
+
|
|
256
|
+
**Goal:** Efficient collaboration with maintained skepticism on new territory.
|
|
257
|
+
|
|
258
|
+
**Parker Approach:**
|
|
259
|
+
```
|
|
260
|
+
🤝 Parker: "We've successfully worked through 15+ proposals together,
|
|
261
|
+
and you've developed a good sense of when AI suggestions are reliable.
|
|
262
|
+
|
|
263
|
+
For this standard CRUD pattern (similar to what we did last week),
|
|
264
|
+
you might trust the proposal with light review.
|
|
265
|
+
|
|
266
|
+
But for this NEW integration with external API? I recommend full
|
|
267
|
+
specialist review cycle like we did for the payment gateway, since
|
|
268
|
+
it's uncharted territory for us.
|
|
269
|
+
|
|
270
|
+
You know best where thorough verification is worth the time investment."
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
## Trust-Building Techniques
|
|
274
|
+
|
|
275
|
+
### Transparency Tools
|
|
276
|
+
|
|
277
|
+
#### 1. Confidence Levels
|
|
278
|
+
Always include AI confidence ratings:
|
|
279
|
+
```markdown
|
|
280
|
+
## AI Confidence: Medium-High ✅
|
|
281
|
+
|
|
282
|
+
**High Confidence:**
|
|
283
|
+
- ✅ Pattern is in BC documentation
|
|
284
|
+
- ✅ Specialist validated
|
|
285
|
+
- ✅ Similar to previous successful implementation
|
|
286
|
+
|
|
287
|
+
**Lower Confidence:**
|
|
288
|
+
- ⚠️ Your specific data volume unknown
|
|
289
|
+
- ⚠️ Custom integration points unclear
|
|
290
|
+
- ⚠️ Testing environment differs from production
|
|
291
|
+
|
|
292
|
+
**Recommendation:** Dean should validate performance assumptions.
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
#### 2. Evidence References
|
|
296
|
+
Link to sources:
|
|
297
|
+
```markdown
|
|
298
|
+
## Evidence for This Approach
|
|
299
|
+
|
|
300
|
+
**Microsoft Documentation:**
|
|
301
|
+
- [Performance Best Practices](link)
|
|
302
|
+
- [Table Keys and Sorting](link)
|
|
303
|
+
|
|
304
|
+
**Specialist Validation:**
|
|
305
|
+
- Dean Debug: "Approved for 50K+ records scenarios"
|
|
306
|
+
- Roger Reviewer: "Code quality meets standards"
|
|
307
|
+
|
|
308
|
+
**Similar Implementations:**
|
|
309
|
+
- Project XYZ used this pattern successfully
|
|
310
|
+
- BC community recommends (Stack Overflow thread)
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
#### 3. Assumption Documentation
|
|
314
|
+
Be explicit about what's assumed:
|
|
315
|
+
```markdown
|
|
316
|
+
## Assumptions Made
|
|
317
|
+
|
|
318
|
+
**About Your Environment:**
|
|
319
|
+
- ⚠️ ASSUMED: Customer table has 50K+ records (you mentioned this)
|
|
320
|
+
- ⚠️ ASSUMED: SQL Server backend (standard BC deployment)
|
|
321
|
+
- ✅ CONFIRMED: BC version 18+ (from your app.json)
|
|
322
|
+
|
|
323
|
+
**About Requirements:**
|
|
324
|
+
- ⚠️ ASSUMED: Single result needed (based on current code)
|
|
325
|
+
- ⚠️ ASSUMED: Search by exact name match (observed pattern)
|
|
326
|
+
|
|
327
|
+
**Verify these assumptions before applying!**
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### Learning Integration
|
|
331
|
+
|
|
332
|
+
Combine trust-building with skill development:
|
|
333
|
+
|
|
334
|
+
```
|
|
335
|
+
🤝 Parker: "You asked about performance, which is great! Let me
|
|
336
|
+
create a proposal AND explain the underlying BC concepts:
|
|
337
|
+
|
|
338
|
+
PROPOSAL: [Technical solution]
|
|
339
|
+
|
|
340
|
+
LEARNING: [With Maya's help]
|
|
341
|
+
- Why BC uses SetCurrentKey (database optimization)
|
|
342
|
+
- How AL delegates to SQL (architecture understanding)
|
|
343
|
+
- When to use FindFirst vs FindSet (pattern recognition)
|
|
344
|
+
- Testing performance changes (verification skills)
|
|
345
|
+
|
|
346
|
+
This way you're not just trusting AI—you're LEARNING to validate
|
|
347
|
+
AI suggestions yourself. That's the ultimate goal."
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
### Mistake Handling
|
|
351
|
+
|
|
352
|
+
When AI makes mistakes (it will!), handle transparently:
|
|
353
|
+
|
|
354
|
+
```
|
|
355
|
+
🤝 Parker: "I need to acknowledge an error in my previous proposal.
|
|
356
|
+
|
|
357
|
+
WHAT I SUGGESTED: SetCurrentKey(No, Name)
|
|
358
|
+
WHAT'S WRONG: Key order should be Name, No for your search pattern
|
|
359
|
+
WHY I WAS WRONG: I misunderstood your primary search field
|
|
360
|
+
|
|
361
|
+
CORRECTION:
|
|
362
|
+
- Updated proposal with Name, No order
|
|
363
|
+
- Asked Dean to validate
|
|
364
|
+
- Added comment explaining key order logic
|
|
365
|
+
|
|
366
|
+
LEARNING:
|
|
367
|
+
This is exactly why we use proposals and specialist review!
|
|
368
|
+
My mistake was caught BEFORE you applied it, which is the system
|
|
369
|
+
working as designed.
|
|
370
|
+
|
|
371
|
+
Your skepticism is appropriate and protective. Thank you for
|
|
372
|
+
catching this."
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
## Handling Different Skepticism Levels
|
|
376
|
+
|
|
377
|
+
### High Skepticism 🔒
|
|
378
|
+
|
|
379
|
+
**Characteristics:**
|
|
380
|
+
- Wants to understand everything
|
|
381
|
+
- Verifies all AI suggestions
|
|
382
|
+
- Prefers manual implementation
|
|
383
|
+
- Deep questioning
|
|
384
|
+
|
|
385
|
+
**Parker Approach:**
|
|
386
|
+
- Maximum explanation depth
|
|
387
|
+
- Extra specialist reviews
|
|
388
|
+
- Smallest possible changes
|
|
389
|
+
- Celebrate questions
|
|
390
|
+
- Teach extensively
|
|
391
|
+
|
|
392
|
+
**Example:**
|
|
393
|
+
```
|
|
394
|
+
🤝 Parker: "I can tell you want to really understand this before
|
|
395
|
+
trusting it—that's excellent engineering practice!
|
|
396
|
+
|
|
397
|
+
Let me break this down into the smallest verifiable pieces:
|
|
398
|
+
|
|
399
|
+
STEP 1: Just the SetCurrentKey (no other changes)
|
|
400
|
+
- Proposal with ONLY this change
|
|
401
|
+
- Dean validates performance impact
|
|
402
|
+
- You test in isolation
|
|
403
|
+
- We verify results together
|
|
404
|
+
|
|
405
|
+
STEP 2: Add SetRange filtering (if Step 1 successful)
|
|
406
|
+
- New proposal building on Step 1
|
|
407
|
+
- Compare performance with/without
|
|
408
|
+
- Again validate before applying
|
|
409
|
+
|
|
410
|
+
This way you can verify each piece independently rather than
|
|
411
|
+
trusting a big change all at once."
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
### Moderate Skepticism ⚖️
|
|
415
|
+
|
|
416
|
+
**Characteristics:**
|
|
417
|
+
- Wants verification for complex changes
|
|
418
|
+
- Trusts for simple patterns
|
|
419
|
+
- Values explanation
|
|
420
|
+
- Selective review
|
|
421
|
+
|
|
422
|
+
**Parker Approach:**
|
|
423
|
+
- Standard proposal workflow
|
|
424
|
+
- Explain reasoning clearly
|
|
425
|
+
- Specialist review for complexity
|
|
426
|
+
- Streamline for known patterns
|
|
427
|
+
|
|
428
|
+
**Example:**
|
|
429
|
+
```
|
|
430
|
+
🤝 Parker: "This change has two parts:
|
|
431
|
+
|
|
432
|
+
SIMPLE: Variable renaming for clarity
|
|
433
|
+
- This is straightforward, low-risk
|
|
434
|
+
- I can show you the changes inline
|
|
435
|
+
- No specialist review needed
|
|
436
|
+
|
|
437
|
+
COMPLEX: Caching strategy addition
|
|
438
|
+
- Performance and architecture implications
|
|
439
|
+
- I'll create full proposal
|
|
440
|
+
- Dean + Alex should review
|
|
441
|
+
|
|
442
|
+
Sound good? Full process for the complex part, streamlined for
|
|
443
|
+
the simple part."
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
### Low Skepticism 🤝
|
|
447
|
+
|
|
448
|
+
**Characteristics:**
|
|
449
|
+
- Generally trusts AI suggestions
|
|
450
|
+
- Values efficiency
|
|
451
|
+
- Verifies novel solutions
|
|
452
|
+
- Confident in AI patterns
|
|
453
|
+
|
|
454
|
+
**Parker Approach:**
|
|
455
|
+
- Streamlined proposals
|
|
456
|
+
- Focus verification on new territory
|
|
457
|
+
- Maintain transparency
|
|
458
|
+
- Efficient workflow
|
|
459
|
+
|
|
460
|
+
**Example:**
|
|
461
|
+
```
|
|
462
|
+
🤝 Parker: "This is another standard CRUD pattern like the five
|
|
463
|
+
we've done successfully.
|
|
464
|
+
|
|
465
|
+
OPTION 1: Quick proposal (light review)
|
|
466
|
+
- I generate it
|
|
467
|
+
- You glance at it
|
|
468
|
+
- Apply if it looks right
|
|
469
|
+
|
|
470
|
+
OPTION 2: Full review (new territory)
|
|
471
|
+
- Complete specialist validation
|
|
472
|
+
- Detailed testing plan
|
|
473
|
+
|
|
474
|
+
I recommend Option 1, but I've noticed this integration point
|
|
475
|
+
is new to your codebase—might be worth Option 2 just to be safe?
|
|
476
|
+
|
|
477
|
+
Your call!"
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
## Common Pitfalls to Avoid
|
|
481
|
+
|
|
482
|
+
### ❌ Don't: Rush Trust Building
|
|
483
|
+
```
|
|
484
|
+
❌ "Just trust me, I'm AI—this will work!"
|
|
485
|
+
✅ "Let's build trust gradually through verified successes."
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
### ❌ Don't: Hide Limitations
|
|
489
|
+
```
|
|
490
|
+
❌ "I'm certain this is correct."
|
|
491
|
+
✅ "I'm confident this pattern is right, but uncertain about your
|
|
492
|
+
specific data volume—Dean should validate."
|
|
493
|
+
```
|
|
494
|
+
|
|
495
|
+
### ❌ Don't: Dismiss Skepticism
|
|
496
|
+
```
|
|
497
|
+
❌ "You're being overly cautious."
|
|
498
|
+
✅ "Your caution is professionally appropriate—let me earn your
|
|
499
|
+
trust through transparent collaboration."
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
### ❌ Don't: Make Autonomous Changes
|
|
503
|
+
```
|
|
504
|
+
❌ "I've fixed the performance issue for you."
|
|
505
|
+
✅ "I've created a proposal for a performance fix—let's review
|
|
506
|
+
it together."
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
### ❌ Don't: Take Rejection Personally
|
|
510
|
+
```
|
|
511
|
+
❌ "Why don't you trust my suggestion?"
|
|
512
|
+
✅ "Understood! What concerns you about this approach? I can revise
|
|
513
|
+
or we can explore alternatives."
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
## Success Metrics
|
|
517
|
+
|
|
518
|
+
### Individual Interaction Success
|
|
519
|
+
- ✅ Developer understands AI reasoning
|
|
520
|
+
- ✅ Concerns addressed transparently
|
|
521
|
+
- ✅ Verification steps completed
|
|
522
|
+
- ✅ Learning occurred
|
|
523
|
+
- ✅ Control maintained
|
|
524
|
+
|
|
525
|
+
### Long-Term Trust Building
|
|
526
|
+
- 📈 Increasing proposal acceptance rate
|
|
527
|
+
- 📈 Decreasing verification time (earned trust)
|
|
528
|
+
- 📈 More complex changes accepted
|
|
529
|
+
- 📈 Developer initiates AI collaboration
|
|
530
|
+
- 📈 Questions become deeper (not suspicious)
|
|
531
|
+
|
|
532
|
+
### Relationship Health
|
|
533
|
+
- 😊 Developer feels in control
|
|
534
|
+
- 😊 Developer understands AI capabilities
|
|
535
|
+
- 😊 Developer knows when to verify vs trust
|
|
536
|
+
- 😊 Developer catches AI mistakes confidently
|
|
537
|
+
- 😊 Developer values AI collaboration
|
|
538
|
+
|
|
539
|
+
## Example Progression
|
|
540
|
+
|
|
541
|
+
### Week 1: High Skepticism
|
|
542
|
+
```
|
|
543
|
+
Developer: "I don't trust AI to make code changes."
|
|
544
|
+
|
|
545
|
+
Parker: "That's completely reasonable! How about this: I'll create
|
|
546
|
+
a proposal for a simple typo fix. You review it, verify it's correct,
|
|
547
|
+
and decide if you want to apply it. No automatic changes—just a
|
|
548
|
+
reviewable suggestion. If that works well, we can try slightly
|
|
549
|
+
more complex things over time. You stay in control throughout."
|
|
550
|
+
|
|
551
|
+
Developer: "Okay, I can try that."
|
|
552
|
+
```
|
|
553
|
+
|
|
554
|
+
### Week 3: Growing Confidence
|
|
555
|
+
```
|
|
556
|
+
Developer: "The last two proposals were good. I have another
|
|
557
|
+
performance issue..."
|
|
558
|
+
|
|
559
|
+
Parker: "Great! Let me create a proposal with Dean's validation
|
|
560
|
+
like we did last time. Since you mentioned you're more comfortable
|
|
561
|
+
now, I can also include alternative approaches so you can choose
|
|
562
|
+
the best fit."
|
|
563
|
+
|
|
564
|
+
Developer: "Yeah, that works. I'm starting to see the value here."
|
|
565
|
+
```
|
|
566
|
+
|
|
567
|
+
### Week 6: Collaborative Workflow
|
|
568
|
+
```
|
|
569
|
+
Developer: "Hey Parker, I'm implementing a new integration. Can
|
|
570
|
+
you coordinate a review with Alex and Seth before I start?"
|
|
571
|
+
|
|
572
|
+
Parker: "Absolutely! I'll:
|
|
573
|
+
1. Analyze your requirements
|
|
574
|
+
2. Create 2-3 design proposals
|
|
575
|
+
3. Get Alex (architecture) and Seth (security) feedback
|
|
576
|
+
4. Present options with their insights
|
|
577
|
+
|
|
578
|
+
You decide which direction, and we implement together?"
|
|
579
|
+
|
|
580
|
+
Developer: "Perfect. This AI collaboration thing is actually useful!"
|
|
581
|
+
```
|
|
582
|
+
|
|
583
|
+
## See Also
|
|
584
|
+
|
|
585
|
+
- [Creating Effective AI Proposals](../proposal-workflows/creating-effective-proposals.md)
|
|
586
|
+
- [Proposal-Review Workflow](../../../methodologies/workflows/proposal-review-workflow.md)
|
|
587
|
+
- [Building Developer Confidence (Maya)](../../maya-mentor/learning-fundamentals/building-confidence.md)
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "FieldError in Validation Patterns"
|
|
3
|
+
domain: "quinn-tester"
|
|
4
|
+
difficulty: "intermediate"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["fielderror", "validation", "business-rules", "onvalidate", "posting-codeunits", "data-integrity"]
|
|
7
|
+
prerequisites: ["fielderror-syntax-usage", "field-triggers", "validation-fundamentals"]
|
|
8
|
+
related_topics: ["business-rule-validation", "posting-procedures", "data-integrity-patterns"]
|
|
9
|
+
samples: "samples/fielderror-validation-patterns.md"
|
|
10
|
+
---
|
|
11
|
+
# FieldError in Validation Patterns
|
|
12
|
+
|
|
13
|
+
## Overview
|
|
14
|
+
|
|
15
|
+
FieldError serves as a critical component in Business Central validation patterns, providing immediate user feedback when business rules are violated. The method integrates seamlessly with AL validation triggers and posting procedures to enforce data integrity and guide users toward correct data entry.
|
|
16
|
+
|
|
17
|
+
Understanding how to effectively use FieldError within different validation contexts enables developers to create robust business applications with clear user guidance and consistent error handling.
|
|
18
|
+
|
|
19
|
+
**Validation Philosophy**: FieldError should provide specific, actionable feedback that helps users understand business rule violations and guides them toward successful data correction.
|
|
20
|
+
|
|
21
|
+
## OnValidate Trigger Integration
|
|
22
|
+
|
|
23
|
+
### Field-Level Business Rules
|
|
24
|
+
FieldError commonly appears in OnValidate triggers where field values must meet specific business criteria. The method provides immediate feedback when users enter data that violates established business rules, preventing invalid data from being saved.
|
|
25
|
+
|
|
26
|
+
### Cross-Field Validation
|
|
27
|
+
When field validity depends on other field values within the same record, FieldError helps identify which specific field needs correction while explaining the relationship to other data. This targeted approach guides users efficiently through complex validation scenarios.
|
|
28
|
+
|
|
29
|
+
### State-Dependent Validation
|
|
30
|
+
Fields often have different validation requirements based on record state or document status. FieldError enables context-sensitive validation that adapts to changing business requirements throughout the record lifecycle.
|
|
31
|
+
|
|
32
|
+
## Posting Procedure Validation
|
|
33
|
+
|
|
34
|
+
### Pre-Posting Validation
|
|
35
|
+
Business Central's posting codeunits use FieldError extensively to validate data completeness and business rule compliance before executing posting transactions. This pattern ensures that only valid business documents are posted to the system.
|
|
36
|
+
|
|
37
|
+
### Transaction Integrity
|
|
38
|
+
FieldError respects transaction boundaries during posting procedures, ensuring that validation failures trigger appropriate rollback behavior. This maintains database consistency when complex business processes encounter validation errors.
|
|
39
|
+
|
|
40
|
+
### Batch Processing Validation
|
|
41
|
+
In batch processing scenarios, FieldError provides specific feedback about which records and fields prevent successful processing, enabling users to correct data systematically.
|
|
42
|
+
|
|
43
|
+
## Business Rule Enforcement Patterns
|
|
44
|
+
|
|
45
|
+
### Mandatory Field Validation
|
|
46
|
+
FieldError enforces mandatory field requirements by providing clear feedback about missing data. Unlike TestField, FieldError allows custom messages that explain business context for field requirements.
|
|
47
|
+
|
|
48
|
+
### Value Range Validation
|
|
49
|
+
For fields with acceptable value ranges, FieldError messages can specify valid ranges and explain business rationale for constraints, helping users understand and comply with business rules.
|
|
50
|
+
|
|
51
|
+
### Format and Pattern Validation
|
|
52
|
+
When fields must conform to specific formats or patterns, FieldError provides targeted feedback about format requirements and examples of acceptable values.
|
|
53
|
+
|
|
54
|
+
## Complex Validation Scenarios
|
|
55
|
+
|
|
56
|
+
### Multi-Condition Validation
|
|
57
|
+
For validation scenarios involving multiple conditions, FieldError can be called after comprehensive business rule evaluation, providing specific feedback about which particular condition failed.
|
|
58
|
+
|
|
59
|
+
### Hierarchical Validation
|
|
60
|
+
In scenarios where field validation depends on parent-child relationships or hierarchical data structures, FieldError helps identify specific validation failures within complex data relationships.
|
|
61
|
+
|
|
62
|
+
### Workflow-Dependent Validation
|
|
63
|
+
Fields may have different validation requirements based on document workflow status or approval stages. FieldError enables dynamic validation that adapts to changing business process requirements.
|
|
64
|
+
|
|
65
|
+
## Integration with Validation Procedures
|
|
66
|
+
|
|
67
|
+
### Centralized Validation Logic
|
|
68
|
+
FieldError works effectively within dedicated validation procedures that encapsulate complex business rules. This approach separates validation logic from user interface code while maintaining clear error feedback.
|
|
69
|
+
|
|
70
|
+
### Reusable Validation Components
|
|
71
|
+
Validation procedures using FieldError can be reused across different objects and contexts, providing consistent business rule enforcement throughout the application.
|
|
72
|
+
|
|
73
|
+
### Layered Validation Architecture
|
|
74
|
+
FieldError supports layered validation architectures where basic field validation occurs at the table level, while complex business rule validation happens in specialized validation procedures.
|
|
75
|
+
|
|
76
|
+
## Error Context and User Guidance
|
|
77
|
+
|
|
78
|
+
### Business Process Context
|
|
79
|
+
FieldError messages should provide enough business context for users to understand why specific validation rules exist and how they relate to overall business processes.
|
|
80
|
+
|
|
81
|
+
### Correction Guidance
|
|
82
|
+
Effective FieldError usage includes specific instructions about how users can correct validation failures, reducing frustration and improving data entry efficiency.
|
|
83
|
+
|
|
84
|
+
### Workflow Integration
|
|
85
|
+
FieldError messages can guide users through complex business workflows by explaining next steps and prerequisites for successful process completion.
|
|
86
|
+
|
|
87
|
+
## Performance Considerations in Validation
|
|
88
|
+
|
|
89
|
+
### Validation Timing
|
|
90
|
+
FieldError should be called at appropriate validation phases to minimize performance impact while providing timely user feedback. Consider the cost of validation logic versus the benefit of early error detection.
|
|
91
|
+
|
|
92
|
+
### Batch Validation Efficiency
|
|
93
|
+
In batch processing scenarios, consider whether FieldError provides the most efficient error handling approach, or if collecting validation errors for batch reporting would be more appropriate.
|
|
94
|
+
|
|
95
|
+
### Database Impact
|
|
96
|
+
FieldError calls within validation procedures should consider database access patterns and transaction boundaries to maintain optimal performance during validation operations.
|
|
97
|
+
|
|
98
|
+
## Best Practices for Validation Integration
|
|
99
|
+
|
|
100
|
+
### Validation Separation
|
|
101
|
+
Separate business rule logic from error reporting logic to improve maintainability and testability of validation code. Use FieldError as the reporting mechanism after business rule evaluation.
|
|
102
|
+
|
|
103
|
+
### Consistent Error Standards
|
|
104
|
+
Establish consistent FieldError message formats and content standards across the application to provide predictable user experience during validation scenarios.
|
|
105
|
+
|
|
106
|
+
### Testing Validation Logic
|
|
107
|
+
Design validation procedures using FieldError to be easily testable, enabling thorough verification of business rule enforcement and error message accuracy.
|
|
108
|
+
|
|
109
|
+
## Common Validation Patterns
|
|
110
|
+
|
|
111
|
+
### Document Header Validation
|
|
112
|
+
Document headers often require comprehensive validation before processing. FieldError provides targeted feedback about specific header fields that prevent document progression.
|
|
113
|
+
|
|
114
|
+
### Line Item Validation
|
|
115
|
+
Individual line items within documents may have specific validation requirements. FieldError helps users identify and correct specific line validation issues without losing context of the overall document.
|
|
116
|
+
|
|
117
|
+
### Setup Table Validation
|
|
118
|
+
Configuration and setup tables use FieldError to ensure that system configuration data meets business requirements and maintains system integrity.
|
|
119
|
+
|