@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,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "AL Code Spacing and Indentation Conventions"
|
|
3
|
+
domain: "roger-reviewer"
|
|
4
|
+
difficulty: "beginner"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["formatting", "indentation", "code-style", "readability"]
|
|
7
|
+
prerequisites: ["al-syntax"]
|
|
8
|
+
---
|
|
9
|
+
# AL Code Spacing and Indentation Conventions
|
|
10
|
+
|
|
11
|
+
## Overview
|
|
12
|
+
|
|
13
|
+
Consistent spacing and indentation in AL code improves readability, reduces cognitive load, and enables better collaboration across development teams. Following established conventions ensures code maintainability and professional appearance.
|
|
14
|
+
|
|
15
|
+
**Foundation Principle**: Use consistent 4-space indentation throughout AL code with strategic white space to enhance logical grouping and flow comprehension.
|
|
16
|
+
|
|
17
|
+
## Strategic Framework
|
|
18
|
+
|
|
19
|
+
### Indentation Standards
|
|
20
|
+
- **4-space indentation**: Standard for AL code blocks and nested structures
|
|
21
|
+
- **No mixed tabs/spaces**: Consistent space-only indentation
|
|
22
|
+
- **Logical nesting**: Each nested level increases indentation by 4 spaces
|
|
23
|
+
- **Alignment consistency**: Maintain alignment patterns within code sections
|
|
24
|
+
|
|
25
|
+
### White Space Strategy
|
|
26
|
+
- **Logical grouping**: Separate related code blocks with blank lines
|
|
27
|
+
- **Operator spacing**: Consistent spacing around operators and assignments
|
|
28
|
+
- **Parameter formatting**: Clear spacing in procedure calls and definitions
|
|
29
|
+
- **Object boundaries**: Appropriate spacing between object sections
|
|
30
|
+
|
|
31
|
+
## Architecture Patterns
|
|
32
|
+
|
|
33
|
+
### Object Structure Spacing
|
|
34
|
+
Organize object definitions with consistent spacing between properties, fields, and procedures. Use blank lines to separate logical sections within objects.
|
|
35
|
+
|
|
36
|
+
### Procedure Formatting
|
|
37
|
+
Structure procedure definitions with proper spacing around parameters, local variables, and code blocks. Maintain consistent patterns for procedure calls and nested logic.
|
|
38
|
+
|
|
39
|
+
### Expression and Statement Spacing
|
|
40
|
+
Apply consistent spacing around operators, assignment statements, and conditional expressions to enhance readability and reduce parsing errors.
|
|
41
|
+
|
|
42
|
+
## Implementation Guidelines
|
|
43
|
+
|
|
44
|
+
### Standard Patterns
|
|
45
|
+
- **Variable declarations**: Group related variables with consistent spacing
|
|
46
|
+
- **Control structures**: Proper spacing around if/then/else, for loops, and case statements
|
|
47
|
+
- **Object references**: Consistent spacing in field references and procedure calls
|
|
48
|
+
- **Multi-line statements**: Logical line breaks with appropriate continuation indentation
|
|
49
|
+
|
|
50
|
+
### Special Formatting Cases
|
|
51
|
+
- **Long parameter lists**: Break parameters across lines with consistent indentation
|
|
52
|
+
- **Complex expressions**: Use spacing and line breaks to clarify operator precedence
|
|
53
|
+
- **Nested structures**: Maintain clear indentation hierarchy in complex logic
|
|
54
|
+
- **String concatenation**: Clear spacing around concatenation operators
|
|
55
|
+
|
|
56
|
+
## Best Practices
|
|
57
|
+
|
|
58
|
+
### Consistency Standards
|
|
59
|
+
- **Team conventions**: Establish and maintain team-wide formatting standards
|
|
60
|
+
- **Automated formatting**: Use AL formatter tools to ensure consistency
|
|
61
|
+
- **Code reviews**: Include formatting checks in review processes
|
|
62
|
+
- **Documentation**: Maintain formatting guidelines for team reference
|
|
63
|
+
|
|
64
|
+
### Readability Optimization
|
|
65
|
+
- **Logical grouping**: Use white space to show code organization
|
|
66
|
+
- **Visual hierarchy**: Indentation reflects logical code structure
|
|
67
|
+
- **Scanning efficiency**: Format code for quick visual parsing
|
|
68
|
+
- **Error reduction**: Clear formatting reduces misreading and mistakes
|
|
69
|
+
|
|
70
|
+
### Tool Integration
|
|
71
|
+
Configure development environments to automatically apply consistent formatting. Use linting tools to enforce spacing conventions across the codebase.
|
|
72
|
+
|
|
73
|
+
## Anti-Patterns
|
|
74
|
+
|
|
75
|
+
### Avoid These Approaches
|
|
76
|
+
- **Inconsistent indentation**: Mixed spaces, tabs, or varying indent levels
|
|
77
|
+
- **Excessive blank lines**: Too much white space that breaks code flow
|
|
78
|
+
- **Cramped formatting**: Insufficient spacing that reduces readability
|
|
79
|
+
- **Misaligned parameters**: Inconsistent parameter formatting across procedures
|
|
80
|
+
- **Ignored formatting tools**: Manual formatting instead of automated tools
|
|
81
|
+
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "AL Comment Spacing Standards"
|
|
3
|
+
domain: "roger-reviewer"
|
|
4
|
+
difficulty: "beginner"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["comments", "documentation", "spacing"]
|
|
7
|
+
samples: "samples/al-comment-spacing-standards.md"
|
|
8
|
+
type: "improvement-pattern"
|
|
9
|
+
category: "code-formatting"
|
|
10
|
+
pattern_type: "good"
|
|
11
|
+
severity: "medium"
|
|
12
|
+
impact_level: "medium"
|
|
13
|
+
improvement_suggestion: "Apply consistent spacing around AL comments to improve readability and documentation clarity"
|
|
14
|
+
implementation_steps: ["standardize-comment-spacing", "apply-consistent-patterns", "validate-readability"]
|
|
15
|
+
validation_criteria: ["consistent-comment-spacing", "clear-documentation-separation"]
|
|
16
|
+
technical_areas: ["al-code"]
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# AL Comment Spacing Standards
|
|
20
|
+
|
|
21
|
+
## Overview
|
|
22
|
+
|
|
23
|
+
Consistent spacing around AL comments improves code readability and ensures documentation integrates smoothly with code structure. Proper comment spacing helps developers distinguish between code and documentation while maintaining clean visual organization.
|
|
24
|
+
|
|
25
|
+
**Key Principle**: Use consistent spacing patterns around comments to create clear separation between documentation and executable code.
|
|
26
|
+
|
|
27
|
+
## Strategic Framework
|
|
28
|
+
|
|
29
|
+
### Documentation Integration
|
|
30
|
+
- **Visual Separation**: Clear spacing between comments and code elements
|
|
31
|
+
- **Consistency Patterns**: Uniform spacing application across all AL objects
|
|
32
|
+
- **Readability Focus**: Spacing that enhances documentation effectiveness
|
|
33
|
+
- **Code Organization**: Comments as integral part of code structure
|
|
34
|
+
|
|
35
|
+
### Communication Enhancement
|
|
36
|
+
Well-spaced comments improve developer communication by making documentation more accessible and visually integrated with code logic.
|
|
37
|
+
|
|
38
|
+
## Architecture Focus
|
|
39
|
+
|
|
40
|
+
### Comment Types
|
|
41
|
+
- **Line Comments**: Single-line documentation with appropriate spacing
|
|
42
|
+
- **Block Comments**: Multi-line documentation with consistent formatting
|
|
43
|
+
- **Inline Comments**: End-of-line explanations with proper separation
|
|
44
|
+
- **Section Headers**: Major section documentation with clear boundaries
|
|
45
|
+
|
|
46
|
+
### Spacing Patterns
|
|
47
|
+
Establish consistent spacing rules that work well with AL syntax highlighting and support effective documentation practices within development teams.
|
|
48
|
+
|
|
49
|
+
## Best Practices
|
|
50
|
+
|
|
51
|
+
### Spacing Guidelines
|
|
52
|
+
- **Blank line before** major comment blocks
|
|
53
|
+
- **Single space after** comment delimiters (//)
|
|
54
|
+
- **Consistent indentation** for comment content alignment
|
|
55
|
+
- **Appropriate separation** between comments and related code
|
|
56
|
+
- **Clear boundaries** around documentation sections
|
|
57
|
+
|
|
58
|
+
### Comment Organization
|
|
59
|
+
Group related comments effectively, maintain consistent formatting within comment blocks, and use spacing to create logical documentation structure.
|
|
60
|
+
|
|
61
|
+
### Integration with Code
|
|
62
|
+
Position comments to enhance code understanding without disrupting visual code flow. Use spacing to create natural reading rhythm between documentation and implementation.
|
|
63
|
+
|
|
64
|
+
## Anti-Patterns
|
|
65
|
+
|
|
66
|
+
### Avoid These Approaches
|
|
67
|
+
- **Inconsistent spacing** around comment delimiters
|
|
68
|
+
- **Cramped comments** without adequate separation from code
|
|
69
|
+
- **Excessive spacing** that fragments code unnecessarily
|
|
70
|
+
- **Poor indentation** in multi-line comment blocks
|
|
71
|
+
- **Random comment placement** without logical organization
|
|
72
|
+
|
|
73
|
+
Poor comment spacing makes documentation harder to read and reduces the effectiveness of code documentation efforts.
|
|
74
|
+
|
|
75
|
+
*Implementation examples: see samples/al-comment-spacing-standards.md*
|
|
76
|
+
*Related patterns: al-blank-line-organization.md, al-readability-optimization.md*
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "AL End Else Pairing"
|
|
3
|
+
domain: "roger-reviewer"
|
|
4
|
+
difficulty: "intermediate"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["end-statements", "else-clauses", "block-structure"]
|
|
7
|
+
type: "improvement-pattern"
|
|
8
|
+
category: "language-fundamentals"
|
|
9
|
+
pattern_type: "good"
|
|
10
|
+
severity: "medium"
|
|
11
|
+
impact_level: "medium"
|
|
12
|
+
improvement_suggestion: "Properly pair end statements with else clauses to maintain clear block structure"
|
|
13
|
+
implementation_steps: ["identify-block-boundaries", "align-end-else-pairs", "validate-structure"]
|
|
14
|
+
validation_criteria: ["correct-end-else-pairing", "clear-block-boundaries"]
|
|
15
|
+
technical_areas: ["al-code"]
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# AL End Else Pairing
|
|
19
|
+
|
|
20
|
+
## Overview
|
|
21
|
+
|
|
22
|
+
Proper pairing of end statements with else clauses in AL code maintains clear block structure and prevents syntax errors. Understanding end-else relationships is crucial for writing maintainable conditional logic and avoiding common AL language pitfalls.
|
|
23
|
+
|
|
24
|
+
**Key Principle**: Each end statement must properly close its corresponding block before any related else clause can be processed.
|
|
25
|
+
|
|
26
|
+
## Strategic Framework
|
|
27
|
+
|
|
28
|
+
### Block Structure Integrity
|
|
29
|
+
- **Scope Management**: Clear understanding of block boundaries and closure
|
|
30
|
+
- **Syntax Correctness**: Proper AL language structure compliance
|
|
31
|
+
- **Error Prevention**: Avoiding common end-else pairing mistakes
|
|
32
|
+
- **Code Clarity**: Structure that makes block relationships obvious
|
|
33
|
+
|
|
34
|
+
### Language Compliance
|
|
35
|
+
AL language requires specific patterns for end-else pairing that differ from some other programming languages. Understanding these patterns prevents compilation errors and logic mistakes.
|
|
36
|
+
|
|
37
|
+
## Architecture Focus
|
|
38
|
+
|
|
39
|
+
### Pairing Patterns
|
|
40
|
+
- **Conditional Blocks**: Proper end placement before else statements
|
|
41
|
+
- **Nested Structures**: Correct pairing in complex conditional hierarchies
|
|
42
|
+
- **Block Boundaries**: Clear indication of scope closure points
|
|
43
|
+
- **Statement Organization**: Logical grouping of related conditional elements
|
|
44
|
+
|
|
45
|
+
### Syntax Requirements
|
|
46
|
+
AL syntax requires end statements to properly close conditional blocks before else clauses can be evaluated. This pattern ensures clear logical flow and prevents ambiguous code interpretation.
|
|
47
|
+
|
|
48
|
+
## Best Practices
|
|
49
|
+
|
|
50
|
+
### Correct Pairing Techniques
|
|
51
|
+
- **Close blocks completely** before else statements
|
|
52
|
+
- **Align end-else pairs** for visual clarity
|
|
53
|
+
- **Use consistent indentation** to show block relationships
|
|
54
|
+
- **Validate block closure** before adding else clauses
|
|
55
|
+
- **Structure complex conditionals** with clear pairing patterns
|
|
56
|
+
|
|
57
|
+
### Error Prevention
|
|
58
|
+
Understand AL language requirements for end-else pairing to avoid compilation errors. Use proper formatting to make block relationships immediately apparent to code reviewers.
|
|
59
|
+
|
|
60
|
+
### Code Organization
|
|
61
|
+
Structure conditional logic with clear end-else pairing that supports easy understanding of decision flow and block boundaries.
|
|
62
|
+
|
|
63
|
+
## Anti-Patterns
|
|
64
|
+
|
|
65
|
+
### Avoid These Approaches
|
|
66
|
+
- **Missing end statements** before else clauses
|
|
67
|
+
- **Improper block closure** creating syntax errors
|
|
68
|
+
- **Ambiguous pairing** in nested conditional structures
|
|
69
|
+
- **Poor indentation** obscuring block relationships
|
|
70
|
+
- **Complex nesting** without clear pairing patterns
|
|
71
|
+
|
|
72
|
+
Incorrect end-else pairing creates compilation errors and makes conditional logic difficult to understand and maintain.
|
|
73
|
+
|
|
74
|
+
*Related patterns: al-separate-if-else-formatting.md, al-keyword-indentation-rules.md*
|
|
75
|
+
*See also: al-separate-if-else-formatting.md samples for practical examples*
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "AL Keyword Indentation Rules"
|
|
3
|
+
domain: "roger-reviewer"
|
|
4
|
+
difficulty: "intermediate"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["indentation", "keywords", "code-structure"]
|
|
7
|
+
samples: "samples/al-keyword-indentation-rules.md"
|
|
8
|
+
type: "improvement-pattern"
|
|
9
|
+
category: "code-formatting"
|
|
10
|
+
pattern_type: "good"
|
|
11
|
+
severity: "medium"
|
|
12
|
+
impact_level: "medium"
|
|
13
|
+
improvement_suggestion: "Apply consistent indentation rules for AL keywords to create clear code hierarchy"
|
|
14
|
+
implementation_steps: ["define-indentation-standards", "apply-keyword-rules", "validate-consistency"]
|
|
15
|
+
validation_criteria: ["consistent-keyword-indentation", "clear-code-hierarchy"]
|
|
16
|
+
technical_areas: ["al-code"]
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# AL Keyword Indentation Rules
|
|
20
|
+
|
|
21
|
+
## Overview
|
|
22
|
+
|
|
23
|
+
Consistent indentation rules for AL keywords create clear visual hierarchy in code structure, making it easier to understand control flow, scope boundaries, and logical organization. Proper keyword indentation is fundamental to readable and maintainable AL code.
|
|
24
|
+
|
|
25
|
+
**Key Principle**: Keywords should follow consistent indentation patterns that reflect code structure and logical hierarchy.
|
|
26
|
+
|
|
27
|
+
## Strategic Framework
|
|
28
|
+
|
|
29
|
+
### Indentation Hierarchy
|
|
30
|
+
- **Block Structure**: Keywords reflect nesting levels and scope boundaries
|
|
31
|
+
- **Visual Clarity**: Indentation immediately shows code organization
|
|
32
|
+
- **Consistency Standards**: Uniform application across all AL objects
|
|
33
|
+
- **Readability Focus**: Indentation supports quick code comprehension
|
|
34
|
+
|
|
35
|
+
### Code Structure Reflection
|
|
36
|
+
Keyword indentation should mirror the logical structure of AL code, making scope boundaries and control flow patterns immediately visible to developers.
|
|
37
|
+
|
|
38
|
+
## Architecture Focus
|
|
39
|
+
|
|
40
|
+
### Keyword Categories
|
|
41
|
+
- **Control Flow Keywords**: if, else, while, for, case statements
|
|
42
|
+
- **Block Delimiters**: begin, end pairs and scope boundaries
|
|
43
|
+
- **Declaration Keywords**: var, procedure, trigger declarations
|
|
44
|
+
- **Object Keywords**: table, page, codeunit structure elements
|
|
45
|
+
|
|
46
|
+
### Hierarchy Patterns
|
|
47
|
+
Establish clear indentation increments that consistently reflect nesting levels and logical code organization. Standard indentation helps teams maintain consistent code appearance.
|
|
48
|
+
|
|
49
|
+
## Best Practices
|
|
50
|
+
|
|
51
|
+
### Indentation Standards
|
|
52
|
+
- **Consistent increment size** (typically 4 spaces) for each nesting level
|
|
53
|
+
- **Aligned block keywords** (begin/end pairs at same indentation)
|
|
54
|
+
- **Control flow alignment** showing decision structure clearly
|
|
55
|
+
- **Scope reflection** through indentation hierarchy
|
|
56
|
+
- **Declaration organization** with appropriate keyword positioning
|
|
57
|
+
|
|
58
|
+
### Consistency Application
|
|
59
|
+
Apply indentation rules uniformly across all AL objects, maintain consistent patterns within teams, and use automated formatting tools where possible to ensure compliance.
|
|
60
|
+
|
|
61
|
+
### Readability Enhancement
|
|
62
|
+
Structure keyword indentation to support quick visual parsing of code organization. Consistent indentation reduces cognitive load when reviewing complex AL procedures.
|
|
63
|
+
|
|
64
|
+
## Anti-Patterns
|
|
65
|
+
|
|
66
|
+
### Avoid These Approaches
|
|
67
|
+
- **Inconsistent indentation increments** creating visual confusion
|
|
68
|
+
- **Misaligned begin/end pairs** obscuring block boundaries
|
|
69
|
+
- **Random keyword positioning** without logical organization
|
|
70
|
+
- **Mixed indentation styles** within single AL object
|
|
71
|
+
- **Excessive indentation** making code difficult to follow
|
|
72
|
+
|
|
73
|
+
Poor keyword indentation makes code structure unclear and increases the difficulty of understanding control flow and scope relationships.
|
|
74
|
+
|
|
75
|
+
*Implementation examples: see samples/al-keyword-indentation-rules.md*
|
|
76
|
+
*Related patterns: al-line-start-keyword-positioning.md, al-case-action-formatting.md*
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "AL Line Start Keyword Positioning"
|
|
3
|
+
domain: "roger-reviewer"
|
|
4
|
+
difficulty: "intermediate"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["keywords", "line-positioning", "code-structure"]
|
|
7
|
+
samples: "samples/al-line-start-keyword-positioning.md"
|
|
8
|
+
type: "improvement-pattern"
|
|
9
|
+
category: "code-formatting"
|
|
10
|
+
pattern_type: "good"
|
|
11
|
+
severity: "medium"
|
|
12
|
+
impact_level: "medium"
|
|
13
|
+
improvement_suggestion: "Position AL keywords at line start with consistent alignment to show code structure"
|
|
14
|
+
implementation_steps: ["identify-keyword-patterns", "apply-positioning-rules", "validate-alignment"]
|
|
15
|
+
validation_criteria: ["consistent-keyword-positioning", "clear-structure-indication"]
|
|
16
|
+
technical_areas: ["al-code"]
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# AL Line Start Keyword Positioning
|
|
20
|
+
|
|
21
|
+
## Overview
|
|
22
|
+
|
|
23
|
+
Strategic positioning of AL keywords at line starts creates clear visual anchors that help developers quickly identify code structure, control flow patterns, and logical organization. Consistent keyword positioning improves code scanability and reduces cognitive load during code review.
|
|
24
|
+
|
|
25
|
+
**Key Principle**: Position keywords at line starts with consistent alignment to create clear visual structure markers.
|
|
26
|
+
|
|
27
|
+
## Strategic Framework
|
|
28
|
+
|
|
29
|
+
### Visual Structure Creation
|
|
30
|
+
- **Keyword Anchoring**: Keywords as visual reference points for code organization
|
|
31
|
+
- **Scan Optimization**: Positioning that supports quick visual code parsing
|
|
32
|
+
- **Structure Indication**: Keyword placement that reveals code hierarchy
|
|
33
|
+
- **Consistency Standards**: Uniform positioning patterns across codebase
|
|
34
|
+
|
|
35
|
+
### Readability Enhancement
|
|
36
|
+
Line start keyword positioning helps developers quickly identify major code sections, control flow changes, and logical boundaries within AL procedures and functions.
|
|
37
|
+
|
|
38
|
+
## Architecture Focus
|
|
39
|
+
|
|
40
|
+
### Positioning Patterns
|
|
41
|
+
- **Control Flow Keywords**: if, else, while positioned as structure markers
|
|
42
|
+
- **Block Delimiters**: begin, end placement showing scope boundaries
|
|
43
|
+
- **Declaration Keywords**: var, procedure positioning for clear identification
|
|
44
|
+
- **Statement Keywords**: Consistent placement for readability optimization
|
|
45
|
+
|
|
46
|
+
### Alignment Strategies
|
|
47
|
+
Establish consistent rules for keyword alignment that work well with AL language structure and support effective code organization patterns.
|
|
48
|
+
|
|
49
|
+
## Best Practices
|
|
50
|
+
|
|
51
|
+
### Keyword Placement Rules
|
|
52
|
+
- **Line start positioning** for major structural keywords
|
|
53
|
+
- **Consistent alignment** within code blocks and sections
|
|
54
|
+
- **Clear separation** from surrounding code elements
|
|
55
|
+
- **Logical grouping** of related keyword structures
|
|
56
|
+
- **Visual hierarchy** through strategic keyword positioning
|
|
57
|
+
|
|
58
|
+
### Structure Clarity
|
|
59
|
+
Use keyword positioning to create clear visual markers for code organization. Position keywords to support quick identification of major code sections and control flow patterns.
|
|
60
|
+
|
|
61
|
+
### Consistency Application
|
|
62
|
+
Apply keyword positioning rules consistently across all AL objects. Establish team standards for keyword placement that enhance code readability and maintainability.
|
|
63
|
+
|
|
64
|
+
## Anti-Patterns
|
|
65
|
+
|
|
66
|
+
### Avoid These Approaches
|
|
67
|
+
- **Inconsistent keyword alignment** creating visual confusion
|
|
68
|
+
- **Mid-line keyword placement** reducing structure visibility
|
|
69
|
+
- **Random positioning** without logical organization principles
|
|
70
|
+
- **Poor separation** from surrounding code elements
|
|
71
|
+
- **Mixed positioning styles** within single AL object
|
|
72
|
+
|
|
73
|
+
Inconsistent keyword positioning makes code structure harder to parse and reduces the effectiveness of visual code organization techniques.
|
|
74
|
+
|
|
75
|
+
*Implementation examples: see samples/al-line-start-keyword-positioning.md*
|
|
76
|
+
*Related patterns: al-keyword-indentation-rules.md, al-statement-per-line-rule.md*
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "AL Separate If Else Formatting"
|
|
3
|
+
domain: "roger-reviewer"
|
|
4
|
+
difficulty: "intermediate"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["if-statements", "conditional-logic", "formatting"]
|
|
7
|
+
samples: "samples/al-separate-if-else-formatting.md"
|
|
8
|
+
type: "improvement-pattern"
|
|
9
|
+
category: "code-formatting"
|
|
10
|
+
pattern_type: "good"
|
|
11
|
+
severity: "medium"
|
|
12
|
+
impact_level: "medium"
|
|
13
|
+
improvement_suggestion: "Format if-else statements with clear separation to show conditional logic structure"
|
|
14
|
+
implementation_steps: ["separate-conditional-blocks", "align-if-else-keywords", "validate-readability"]
|
|
15
|
+
validation_criteria: ["clear-conditional-separation", "consistent-alignment"]
|
|
16
|
+
technical_areas: ["al-code"]
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# AL Separate If Else Formatting
|
|
20
|
+
|
|
21
|
+
## Overview
|
|
22
|
+
|
|
23
|
+
Proper formatting of if-else statements in AL code with clear separation between conditional branches improves readability and helps developers understand decision logic structure. Separate formatting makes complex conditional logic easier to follow and maintain.
|
|
24
|
+
|
|
25
|
+
**Key Principle**: Format if-else statements with clear visual separation between conditional branches to highlight decision structure.
|
|
26
|
+
|
|
27
|
+
## Strategic Framework
|
|
28
|
+
|
|
29
|
+
### Conditional Logic Clarity
|
|
30
|
+
- **Branch Separation**: Clear visual distinction between if and else branches
|
|
31
|
+
- **Decision Structure**: Formatting that reveals conditional logic organization
|
|
32
|
+
- **Readability Focus**: Layout that supports quick comprehension of decision flow
|
|
33
|
+
- **Consistency Standards**: Uniform if-else formatting across codebase
|
|
34
|
+
|
|
35
|
+
### Control Flow Visualization
|
|
36
|
+
If-else formatting should make decision paths immediately apparent to code reviewers. Clear separation helps developers understand alternative execution paths and their relationships.
|
|
37
|
+
|
|
38
|
+
## Architecture Focus
|
|
39
|
+
|
|
40
|
+
### Formatting Patterns
|
|
41
|
+
- **Keyword Alignment**: Consistent positioning of if and else keywords
|
|
42
|
+
- **Branch Separation**: Visual spacing between conditional branches
|
|
43
|
+
- **Block Structure**: Clear indication of conditional block boundaries
|
|
44
|
+
- **Nested Conditionals**: Proper formatting for complex decision trees
|
|
45
|
+
|
|
46
|
+
### Visual Organization
|
|
47
|
+
Structure if-else statements to support quick visual parsing of conditional logic. Use consistent formatting patterns that work well with AL language syntax.
|
|
48
|
+
|
|
49
|
+
## Best Practices
|
|
50
|
+
|
|
51
|
+
### Separation Techniques
|
|
52
|
+
- **Clear keyword positioning** for if and else statements
|
|
53
|
+
- **Appropriate spacing** between conditional branches
|
|
54
|
+
- **Consistent indentation** within conditional blocks
|
|
55
|
+
- **Visual boundaries** around conditional logic sections
|
|
56
|
+
- **Aligned block structures** for easy scanning
|
|
57
|
+
|
|
58
|
+
### Readability Optimization
|
|
59
|
+
Format if-else statements to minimize cognitive load when understanding conditional logic. Use whitespace and alignment effectively to create clear decision structure.
|
|
60
|
+
|
|
61
|
+
### Complex Conditionals
|
|
62
|
+
For nested or complex if-else structures, use additional spacing and indentation to maintain clarity. Consider refactoring overly complex conditional logic into separate methods.
|
|
63
|
+
|
|
64
|
+
## Anti-Patterns
|
|
65
|
+
|
|
66
|
+
### Avoid These Approaches
|
|
67
|
+
- **Cramped if-else formatting** without adequate separation
|
|
68
|
+
- **Inconsistent keyword alignment** obscuring structure
|
|
69
|
+
- **Poor indentation** in conditional blocks
|
|
70
|
+
- **Unclear branch boundaries** making logic hard to follow
|
|
71
|
+
- **Overly complex nested conditionals** without proper formatting
|
|
72
|
+
|
|
73
|
+
Poor if-else formatting makes conditional logic harder to understand and increases the likelihood of errors during code maintenance.
|
|
74
|
+
|
|
75
|
+
*Implementation examples: see samples/al-separate-if-else-formatting.md*
|
|
76
|
+
*Related patterns: al-end-else-pairing.md, al-keyword-indentation-rules.md*
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "AL Standard Abbreviations"
|
|
3
|
+
domain: "roger-reviewer"
|
|
4
|
+
difficulty: "beginner"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["abbreviations", "naming", "standards", "reference"]
|
|
7
|
+
type: "improvement-pattern"
|
|
8
|
+
category: "code-quality"
|
|
9
|
+
pattern_type: "good"
|
|
10
|
+
severity: "high"
|
|
11
|
+
impact_level: "high"
|
|
12
|
+
improvement_suggestion: "Use only Microsoft-approved abbreviations to maintain consistency with Business Central platform"
|
|
13
|
+
implementation_steps: ["verify-platform-abbreviations", "apply-standard-patterns", "validate-consistency"]
|
|
14
|
+
validation_criteria: ["platform-compliant-abbreviations", "consistent-usage"]
|
|
15
|
+
technical_areas: ["al-code"]
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# AL Standard Abbreviations
|
|
19
|
+
|
|
20
|
+
## Overview
|
|
21
|
+
|
|
22
|
+
Business Central uses standardized abbreviations throughout the platform for consistency and space efficiency. These abbreviations are deeply embedded in field names, variable naming, and API structures across all BC modules.
|
|
23
|
+
|
|
24
|
+
**Key Principle**: Use only established BC abbreviations to maintain platform consistency and avoid confusion with standard BC objects and APIs.
|
|
25
|
+
|
|
26
|
+
## Strategic Framework
|
|
27
|
+
|
|
28
|
+
### Core Business Abbreviations
|
|
29
|
+
- **No.** → Number (CustomerNo, ItemNo, DocumentNo)
|
|
30
|
+
- **Qty** → Quantity (BaseQty, OutstandingQty, ReservedQty)
|
|
31
|
+
- **Amt** → Amount (SalesAmt, CostAmt, DiscountAmt)
|
|
32
|
+
- **Desc** → Description (ItemDesc, CustomerDesc)
|
|
33
|
+
- **LCY** → Local Currency (AmountLCY, UnitCostLCY)
|
|
34
|
+
- **FCY** → Foreign Currency (AmountFCY, UnitPriceFCY)
|
|
35
|
+
|
|
36
|
+
### Financial and Accounting
|
|
37
|
+
- **G/L** → General Ledger (GLEntry, GLAccount)
|
|
38
|
+
- **VAT** → Value Added Tax (VATEntry, VATAmount)
|
|
39
|
+
- **A/R** → Accounts Receivable (ARAmount)
|
|
40
|
+
- **A/P** → Accounts Payable (APAmount)
|
|
41
|
+
- **WIP** → Work in Progress (WIPEntry)
|
|
42
|
+
- **COGS** → Cost of Goods Sold (COGSAmount)
|
|
43
|
+
|
|
44
|
+
### Operations and Inventory
|
|
45
|
+
- **UOM** → Unit of Measure (BaseUOM, SalesUOM)
|
|
46
|
+
- **BOM** → Bill of Materials (BOMComponent)
|
|
47
|
+
- **SKU** → Stock Keeping Unit (SKUCode)
|
|
48
|
+
- **Whse** → Warehouse (WhseEntry, WhseShipment)
|
|
49
|
+
- **Invt** → Inventory (InvtPostingGroup)
|
|
50
|
+
- **Prod** → Production (ProdOrder, ProdBOMLine)
|
|
51
|
+
|
|
52
|
+
## Architecture Focus
|
|
53
|
+
|
|
54
|
+
### Platform Integration
|
|
55
|
+
BC abbreviations ensure seamless integration with standard platform objects, APIs, and external systems expecting specific field naming patterns.
|
|
56
|
+
|
|
57
|
+
### Database Considerations
|
|
58
|
+
Abbreviations help manage field name length limits while maintaining readability. Critical for table and field names that interface with external systems.
|
|
59
|
+
|
|
60
|
+
### API Consistency
|
|
61
|
+
Standard abbreviations ensure API field names match platform conventions, maintaining compatibility with Microsoft and third-party integrations.
|
|
62
|
+
|
|
63
|
+
### Localization Support
|
|
64
|
+
Platform abbreviations support localization frameworks where translations may require different text lengths while maintaining field name consistency.
|
|
65
|
+
|
|
66
|
+
## Best Practices
|
|
67
|
+
|
|
68
|
+
### Approved Usage Only
|
|
69
|
+
- **Platform Standards**: Use only abbreviations established in BC base application
|
|
70
|
+
- **Consistency Check**: Verify abbreviations match existing BC field names
|
|
71
|
+
- **Avoid Custom**: Never create new abbreviations without platform precedent
|
|
72
|
+
- **Documentation**: When platform lacks precedent, document rationale and team approval
|
|
73
|
+
|
|
74
|
+
### Context-Appropriate Application
|
|
75
|
+
- **Field Names**: Essential for table field naming within character limits
|
|
76
|
+
- **Variable Names**: Use when matching related field names or platform objects
|
|
77
|
+
- **Procedure Names**: Generally avoid abbreviations in procedure names
|
|
78
|
+
- **Comments**: Spell out full terms in documentation and comments
|
|
79
|
+
|
|
80
|
+
### Validation Requirements
|
|
81
|
+
- **Platform Verification**: Cross-check against BC object definitions
|
|
82
|
+
- **API Compatibility**: Ensure abbreviations don't conflict with standard APIs
|
|
83
|
+
- **Extension Guidelines**: Follow AppSource and per-tenant extension naming requirements
|
|
84
|
+
- **Team Standards**: Maintain approved abbreviation list for project-specific terms
|
|
85
|
+
|
|
86
|
+
## Anti-Patterns
|
|
87
|
+
|
|
88
|
+
### Avoid These Approaches
|
|
89
|
+
- **Custom Creations**: Never invent abbreviations not used in BC platform
|
|
90
|
+
- **Inconsistent Forms**: Don't mix "Descr" and "Desc" for same concept
|
|
91
|
+
- **Ambiguous Terms**: Avoid abbreviations with multiple possible meanings
|
|
92
|
+
- **Platform Conflicts**: Don't use abbreviations that conflict with BC standards
|
|
93
|
+
|
|
94
|
+
Invalid abbreviations cause integration failures and platform inconsistencies, potentially leading to AppSource validation failures.
|
|
95
|
+
|
|
96
|
+
*Related patterns: al-variable-naming-conventions.md, al-field-naming.md*
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "AL Statement Per Line Rule"
|
|
3
|
+
domain: "roger-reviewer"
|
|
4
|
+
difficulty: "beginner"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["statements", "line-organization", "readability"]
|
|
7
|
+
samples: "samples/al-statement-per-line-rule.md"
|
|
8
|
+
type: "improvement-pattern"
|
|
9
|
+
category: "code-formatting"
|
|
10
|
+
pattern_type: "good"
|
|
11
|
+
severity: "medium"
|
|
12
|
+
impact_level: "medium"
|
|
13
|
+
improvement_suggestion: "Write one AL statement per line to improve readability and debugging capability"
|
|
14
|
+
implementation_steps: ["separate-multiple-statements", "format-single-statements", "validate-clarity"]
|
|
15
|
+
validation_criteria: ["one-statement-per-line", "improved-readability"]
|
|
16
|
+
technical_areas: ["al-code"]
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# AL Statement Per Line Rule
|
|
20
|
+
|
|
21
|
+
## Overview
|
|
22
|
+
|
|
23
|
+
Writing one AL statement per line improves code readability, simplifies debugging, and makes code maintenance more effective. The one-statement-per-line rule is a fundamental formatting practice that enhances code clarity and supports better development workflows.
|
|
24
|
+
|
|
25
|
+
**Key Principle**: Each line should contain exactly one complete AL statement to maximize readability and debugging effectiveness.
|
|
26
|
+
|
|
27
|
+
## Strategic Framework
|
|
28
|
+
|
|
29
|
+
### Readability Enhancement
|
|
30
|
+
- **Visual Clarity**: Each statement clearly separated and identifiable
|
|
31
|
+
- **Scanning Efficiency**: Easy visual parsing of code logic
|
|
32
|
+
- **Debugging Support**: Line-by-line debugging capability
|
|
33
|
+
- **Code Review**: Simplified review process with clear statement boundaries
|
|
34
|
+
|
|
35
|
+
### Maintenance Benefits
|
|
36
|
+
Single statements per line make code changes easier to track, debug, and understand. This pattern supports effective version control and collaborative development practices.
|
|
37
|
+
|
|
38
|
+
## Architecture Focus
|
|
39
|
+
|
|
40
|
+
### Statement Organization
|
|
41
|
+
- **Clear Boundaries**: Each statement on separate line with proper termination
|
|
42
|
+
- **Logical Flow**: Sequential statement arrangement for easy following
|
|
43
|
+
- **Visual Structure**: Line organization that reflects code logic
|
|
44
|
+
- **Error Isolation**: Individual statements for easier error identification
|
|
45
|
+
|
|
46
|
+
### Development Workflow
|
|
47
|
+
One-statement-per-line formatting integrates well with debugging tools, version control systems, and code review processes commonly used in AL development.
|
|
48
|
+
|
|
49
|
+
## Best Practices
|
|
50
|
+
|
|
51
|
+
### Statement Formatting
|
|
52
|
+
- **Single statement per line** with proper semicolon termination
|
|
53
|
+
- **Appropriate indentation** for each statement level
|
|
54
|
+
- **Clear statement separation** without cramming multiple operations
|
|
55
|
+
- **Logical ordering** of related statements
|
|
56
|
+
- **Consistent formatting** across all AL objects
|
|
57
|
+
|
|
58
|
+
### Code Organization
|
|
59
|
+
Organize statements in logical sequence, group related operations appropriately, and use consistent formatting patterns that support easy code comprehension.
|
|
60
|
+
|
|
61
|
+
### Debugging Support
|
|
62
|
+
Structure code to support effective debugging by ensuring each line represents a single operation that can be stepped through individually.
|
|
63
|
+
|
|
64
|
+
## Anti-Patterns
|
|
65
|
+
|
|
66
|
+
### Avoid These Approaches
|
|
67
|
+
- **Multiple statements per line** reducing readability
|
|
68
|
+
- **Cramped code formatting** without proper separation
|
|
69
|
+
- **Complex compound statements** difficult to debug
|
|
70
|
+
- **Inconsistent line organization** across AL objects
|
|
71
|
+
- **Poor statement grouping** without logical organization
|
|
72
|
+
|
|
73
|
+
Multiple statements per line make code harder to read, debug, and maintain. This pattern increases cognitive load and reduces development efficiency.
|
|
74
|
+
|
|
75
|
+
*Implementation examples: see samples/al-statement-per-line-rule.md*
|
|
76
|
+
*Related patterns: al-readability-optimization.md, al-blank-line-organization.md*
|