bc-code-intelligence-mcp 1.5.9 → 1.6.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 +20 -20
- package/README.md +165 -165
- package/dist/config/config-loader.js +6 -6
- package/dist/config/config-loader.js.map +1 -1
- package/dist/index.d.ts +9 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +93 -211
- package/dist/index.js.map +1 -1
- package/dist/layers/base-layer.d.ts +6 -6
- package/dist/layers/base-layer.d.ts.map +1 -1
- package/dist/layers/base-layer.js +15 -15
- package/dist/layers/base-layer.js.map +1 -1
- package/dist/layers/embedded-layer.d.ts +2 -2
- package/dist/layers/embedded-layer.d.ts.map +1 -1
- package/dist/layers/embedded-layer.js +59 -43
- package/dist/layers/embedded-layer.js.map +1 -1
- package/dist/layers/git-layer.d.ts +4 -2
- package/dist/layers/git-layer.d.ts.map +1 -1
- package/dist/layers/git-layer.js +70 -23
- package/dist/layers/git-layer.js.map +1 -1
- package/dist/layers/project-layer.d.ts +2 -2
- package/dist/layers/project-layer.d.ts.map +1 -1
- package/dist/layers/project-layer.js +58 -44
- package/dist/layers/project-layer.js.map +1 -1
- package/dist/services/code-analysis-service.d.ts +100 -2
- package/dist/services/code-analysis-service.d.ts.map +1 -1
- package/dist/services/code-analysis-service.js +274 -8
- package/dist/services/code-analysis-service.js.map +1 -1
- package/dist/services/knowledge-service.d.ts.map +1 -1
- package/dist/services/knowledge-service.js.map +1 -1
- package/dist/services/methodology-service.d.ts +34 -2
- package/dist/services/methodology-service.d.ts.map +1 -1
- package/dist/services/methodology-service.js +284 -29
- package/dist/services/methodology-service.js.map +1 -1
- package/dist/services/multi-content-layer-service.d.ts +5 -0
- package/dist/services/multi-content-layer-service.d.ts.map +1 -1
- package/dist/services/multi-content-layer-service.js +57 -9
- package/dist/services/multi-content-layer-service.js.map +1 -1
- package/dist/services/relevance-index-service.d.ts +95 -0
- package/dist/services/relevance-index-service.d.ts.map +1 -0
- package/dist/services/relevance-index-service.js +321 -0
- package/dist/services/relevance-index-service.js.map +1 -0
- package/dist/services/specialist-loader.d.ts +1 -0
- package/dist/services/specialist-loader.d.ts.map +1 -1
- package/dist/services/specialist-loader.js +1 -0
- package/dist/services/specialist-loader.js.map +1 -1
- package/dist/services/workflow-service.d.ts +12 -0
- package/dist/services/workflow-service.d.ts.map +1 -1
- package/dist/services/workflow-service.js +30 -0
- package/dist/services/workflow-service.js.map +1 -1
- package/dist/services/{enhanced-prompt-service.d.ts → workflow-specialist-router.d.ts} +41 -4
- package/dist/services/workflow-specialist-router.d.ts.map +1 -0
- package/dist/services/{enhanced-prompt-service.js → workflow-specialist-router.js} +150 -24
- package/dist/services/workflow-specialist-router.js.map +1 -0
- package/dist/services/workflow-v2/index.d.ts +6 -0
- package/dist/services/workflow-v2/index.d.ts.map +1 -0
- package/dist/services/workflow-v2/index.js +6 -0
- package/dist/services/workflow-v2/index.js.map +1 -0
- package/dist/services/workflow-v2/workflow-definitions.d.ts +53 -0
- package/dist/services/workflow-v2/workflow-definitions.d.ts.map +1 -0
- package/dist/services/workflow-v2/workflow-definitions.js +722 -0
- package/dist/services/workflow-v2/workflow-definitions.js.map +1 -0
- package/dist/services/workflow-v2/workflow-session-manager.d.ts +140 -0
- package/dist/services/workflow-v2/workflow-session-manager.d.ts.map +1 -0
- package/dist/services/workflow-v2/workflow-session-manager.js +820 -0
- package/dist/services/workflow-v2/workflow-session-manager.js.map +1 -0
- package/dist/tools/{workspace-tools.d.ts → _shared/workspace-constants.d.ts} +4 -51
- package/dist/tools/_shared/workspace-constants.d.ts.map +1 -0
- package/dist/tools/_shared/workspace-constants.js +53 -0
- package/dist/tools/_shared/workspace-constants.js.map +1 -0
- package/dist/tools/analyze_al_code/handler.d.ts +12 -0
- package/dist/tools/analyze_al_code/handler.d.ts.map +1 -0
- package/dist/tools/analyze_al_code/handler.js +312 -0
- package/dist/tools/analyze_al_code/handler.js.map +1 -0
- package/dist/tools/analyze_al_code/schema.d.ts +8 -0
- package/dist/tools/analyze_al_code/schema.d.ts.map +1 -0
- package/dist/tools/analyze_al_code/schema.js +54 -0
- package/dist/tools/analyze_al_code/schema.js.map +1 -0
- package/dist/tools/ask_bc_expert/handler.d.ts +21 -0
- package/dist/tools/ask_bc_expert/handler.d.ts.map +1 -0
- package/dist/tools/ask_bc_expert/handler.js +118 -0
- package/dist/tools/ask_bc_expert/handler.js.map +1 -0
- package/dist/tools/ask_bc_expert/schema.d.ts +8 -0
- package/dist/tools/ask_bc_expert/schema.d.ts.map +1 -0
- package/dist/tools/ask_bc_expert/schema.js +33 -0
- package/dist/tools/ask_bc_expert/schema.js.map +1 -0
- package/dist/tools/create_layer_content/handler.d.ts +17 -0
- package/dist/tools/create_layer_content/handler.d.ts.map +1 -0
- package/dist/tools/create_layer_content/handler.js +248 -0
- package/dist/tools/create_layer_content/handler.js.map +1 -0
- package/dist/tools/create_layer_content/schema.d.ts +9 -0
- package/dist/tools/create_layer_content/schema.d.ts.map +1 -0
- package/dist/tools/create_layer_content/schema.js +42 -0
- package/dist/tools/create_layer_content/schema.js.map +1 -0
- package/dist/tools/debug/diagnose_git_layer/handler.d.ts +6 -0
- package/dist/tools/debug/diagnose_git_layer/handler.d.ts.map +1 -0
- package/dist/tools/debug/diagnose_git_layer/handler.js +286 -0
- package/dist/tools/debug/diagnose_git_layer/handler.js.map +1 -0
- package/dist/tools/debug/diagnose_git_layer/schema.d.ts +6 -0
- package/dist/tools/debug/diagnose_git_layer/schema.d.ts.map +1 -0
- package/dist/tools/debug/diagnose_git_layer/schema.js +35 -0
- package/dist/tools/debug/diagnose_git_layer/schema.js.map +1 -0
- package/dist/tools/debug/diagnose_local_layer/handler.d.ts +6 -0
- package/dist/tools/debug/diagnose_local_layer/handler.d.ts.map +1 -0
- package/dist/tools/debug/diagnose_local_layer/handler.js +285 -0
- package/dist/tools/debug/diagnose_local_layer/handler.js.map +1 -0
- package/dist/tools/debug/diagnose_local_layer/schema.d.ts +6 -0
- package/dist/tools/debug/diagnose_local_layer/schema.d.ts.map +1 -0
- package/dist/tools/debug/diagnose_local_layer/schema.js +16 -0
- package/dist/tools/debug/diagnose_local_layer/schema.js.map +1 -0
- package/dist/tools/debug/get_layer_diagnostics/handler.d.ts +7 -0
- package/dist/tools/debug/get_layer_diagnostics/handler.d.ts.map +1 -0
- package/dist/tools/debug/get_layer_diagnostics/handler.js +46 -0
- package/dist/tools/debug/get_layer_diagnostics/handler.js.map +1 -0
- package/dist/tools/debug/get_layer_diagnostics/schema.d.ts +6 -0
- package/dist/tools/debug/get_layer_diagnostics/schema.d.ts.map +1 -0
- package/dist/tools/debug/get_layer_diagnostics/schema.js +20 -0
- package/dist/tools/debug/get_layer_diagnostics/schema.js.map +1 -0
- package/dist/tools/debug/reload_layers/handler.d.ts +8 -0
- package/dist/tools/debug/reload_layers/handler.d.ts.map +1 -0
- package/dist/tools/debug/reload_layers/handler.js +83 -0
- package/dist/tools/debug/reload_layers/handler.js.map +1 -0
- package/dist/tools/debug/reload_layers/schema.d.ts +6 -0
- package/dist/tools/debug/reload_layers/schema.d.ts.map +1 -0
- package/dist/tools/debug/reload_layers/schema.js +20 -0
- package/dist/tools/debug/reload_layers/schema.js.map +1 -0
- package/dist/tools/debug/test_azure_devops_pat/handler.d.ts +6 -0
- package/dist/tools/debug/test_azure_devops_pat/handler.d.ts.map +1 -0
- package/dist/tools/debug/test_azure_devops_pat/handler.js +16 -0
- package/dist/tools/debug/test_azure_devops_pat/handler.js.map +1 -0
- package/dist/tools/debug/test_azure_devops_pat/schema.d.ts +6 -0
- package/dist/tools/debug/test_azure_devops_pat/schema.d.ts.map +1 -0
- package/dist/tools/debug/test_azure_devops_pat/schema.js +27 -0
- package/dist/tools/debug/test_azure_devops_pat/schema.js.map +1 -0
- package/dist/tools/debug/validate_layer_config/handler.d.ts +6 -0
- package/dist/tools/debug/validate_layer_config/handler.d.ts.map +1 -0
- package/dist/tools/debug/validate_layer_config/handler.js +17 -0
- package/dist/tools/debug/validate_layer_config/handler.js.map +1 -0
- package/dist/tools/debug/validate_layer_config/schema.d.ts +6 -0
- package/dist/tools/debug/validate_layer_config/schema.d.ts.map +1 -0
- package/dist/tools/debug/validate_layer_config/schema.js +21 -0
- package/dist/tools/debug/validate_layer_config/schema.js.map +1 -0
- package/dist/tools/find_bc_knowledge/handler.d.ts +21 -0
- package/dist/tools/find_bc_knowledge/handler.d.ts.map +1 -0
- package/dist/tools/find_bc_knowledge/handler.js +71 -0
- package/dist/tools/find_bc_knowledge/handler.js.map +1 -0
- package/dist/tools/find_bc_knowledge/schema.d.ts +8 -0
- package/dist/tools/find_bc_knowledge/schema.d.ts.map +1 -0
- package/dist/tools/find_bc_knowledge/schema.js +35 -0
- package/dist/tools/find_bc_knowledge/schema.js.map +1 -0
- package/dist/tools/get_bc_topic/handler.d.ts +12 -0
- package/dist/tools/get_bc_topic/handler.d.ts.map +1 -0
- package/dist/tools/get_bc_topic/handler.js +35 -0
- package/dist/tools/get_bc_topic/handler.js.map +1 -0
- package/dist/tools/get_bc_topic/schema.d.ts +8 -0
- package/dist/tools/get_bc_topic/schema.d.ts.map +1 -0
- package/dist/tools/get_bc_topic/schema.js +29 -0
- package/dist/tools/get_bc_topic/schema.js.map +1 -0
- package/dist/tools/get_codelens_mappings/handler.d.ts +8 -0
- package/dist/tools/get_codelens_mappings/handler.d.ts.map +1 -0
- package/dist/tools/get_codelens_mappings/handler.js +79 -0
- package/dist/tools/get_codelens_mappings/handler.js.map +1 -0
- package/dist/tools/get_codelens_mappings/schema.d.ts +9 -0
- package/dist/tools/get_codelens_mappings/schema.d.ts.map +1 -0
- package/dist/tools/get_codelens_mappings/schema.js +16 -0
- package/dist/tools/get_codelens_mappings/schema.js.map +1 -0
- package/dist/tools/get_workspace_info/handler.d.ts +16 -0
- package/dist/tools/get_workspace_info/handler.d.ts.map +1 -0
- package/dist/tools/get_workspace_info/handler.js +36 -0
- package/dist/tools/get_workspace_info/handler.js.map +1 -0
- package/dist/tools/get_workspace_info/schema.d.ts +8 -0
- package/dist/tools/get_workspace_info/schema.d.ts.map +1 -0
- package/dist/tools/get_workspace_info/schema.js +15 -0
- package/dist/tools/get_workspace_info/schema.js.map +1 -0
- package/dist/tools/handlers.d.ts +48 -0
- package/dist/tools/handlers.d.ts.map +1 -0
- package/dist/tools/handlers.js +81 -0
- package/dist/tools/handlers.js.map +1 -0
- package/dist/tools/index.d.ts +132 -38
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +184 -52
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/list_prompts/handler.d.ts +11 -0
- package/dist/tools/list_prompts/handler.d.ts.map +1 -0
- package/dist/tools/list_prompts/handler.js +102 -0
- package/dist/tools/list_prompts/handler.js.map +1 -0
- package/dist/tools/list_prompts/schema.d.ts +9 -0
- package/dist/tools/list_prompts/schema.d.ts.map +1 -0
- package/dist/tools/list_prompts/schema.js +28 -0
- package/dist/tools/list_prompts/schema.js.map +1 -0
- package/dist/tools/list_specialists/handler.d.ts +12 -0
- package/dist/tools/list_specialists/handler.d.ts.map +1 -0
- package/dist/tools/list_specialists/handler.js +68 -0
- package/dist/tools/list_specialists/handler.js.map +1 -0
- package/dist/tools/list_specialists/schema.d.ts +8 -0
- package/dist/tools/list_specialists/schema.d.ts.map +1 -0
- package/dist/tools/list_specialists/schema.js +24 -0
- package/dist/tools/list_specialists/schema.js.map +1 -0
- package/dist/tools/scaffold_layer_repo/handler.d.ts +15 -0
- package/dist/tools/scaffold_layer_repo/handler.d.ts.map +1 -0
- package/dist/tools/scaffold_layer_repo/handler.js +410 -0
- package/dist/tools/scaffold_layer_repo/handler.js.map +1 -0
- package/dist/tools/scaffold_layer_repo/schema.d.ts +9 -0
- package/dist/tools/scaffold_layer_repo/schema.d.ts.map +1 -0
- package/dist/tools/scaffold_layer_repo/schema.js +35 -0
- package/dist/tools/scaffold_layer_repo/schema.js.map +1 -0
- package/dist/tools/set_workspace_info/handler.d.ts +22 -0
- package/dist/tools/set_workspace_info/handler.d.ts.map +1 -0
- package/dist/tools/set_workspace_info/handler.js +60 -0
- package/dist/tools/set_workspace_info/handler.js.map +1 -0
- package/dist/tools/set_workspace_info/schema.d.ts +8 -0
- package/dist/tools/set_workspace_info/schema.d.ts.map +1 -0
- package/dist/tools/set_workspace_info/schema.js +25 -0
- package/dist/tools/set_workspace_info/schema.js.map +1 -0
- package/dist/tools/validate_layer_repo/handler.d.ts +10 -0
- package/dist/tools/validate_layer_repo/handler.d.ts.map +1 -0
- package/dist/tools/validate_layer_repo/handler.js +148 -0
- package/dist/tools/validate_layer_repo/handler.js.map +1 -0
- package/dist/tools/validate_layer_repo/schema.d.ts +9 -0
- package/dist/tools/validate_layer_repo/schema.d.ts.map +1 -0
- package/dist/tools/validate_layer_repo/schema.js +21 -0
- package/dist/tools/validate_layer_repo/schema.js.map +1 -0
- package/dist/tools/workflow_batch/handler.d.ts +21 -0
- package/dist/tools/workflow_batch/handler.d.ts.map +1 -0
- package/dist/tools/workflow_batch/handler.js +304 -0
- package/dist/tools/workflow_batch/handler.js.map +1 -0
- package/dist/tools/workflow_batch/schema.d.ts +8 -0
- package/dist/tools/workflow_batch/schema.d.ts.map +1 -0
- package/dist/tools/workflow_batch/schema.js +76 -0
- package/dist/tools/workflow_batch/schema.js.map +1 -0
- package/dist/tools/workflow_cancel/handler.d.ts +21 -0
- package/dist/tools/workflow_cancel/handler.d.ts.map +1 -0
- package/dist/tools/workflow_cancel/handler.js +157 -0
- package/dist/tools/workflow_cancel/handler.js.map +1 -0
- package/dist/tools/workflow_cancel/schema.d.ts +8 -0
- package/dist/tools/workflow_cancel/schema.d.ts.map +1 -0
- package/dist/tools/workflow_cancel/schema.js +34 -0
- package/dist/tools/workflow_cancel/schema.js.map +1 -0
- package/dist/tools/workflow_complete/handler.d.ts +21 -0
- package/dist/tools/workflow_complete/handler.d.ts.map +1 -0
- package/dist/tools/workflow_complete/handler.js +124 -0
- package/dist/tools/workflow_complete/handler.js.map +1 -0
- package/dist/tools/workflow_complete/schema.d.ts +8 -0
- package/dist/tools/workflow_complete/schema.d.ts.map +1 -0
- package/dist/tools/workflow_complete/schema.js +45 -0
- package/dist/tools/workflow_complete/schema.js.map +1 -0
- package/dist/tools/workflow_list/handler.d.ts +19 -0
- package/dist/tools/workflow_list/handler.d.ts.map +1 -0
- package/dist/tools/workflow_list/handler.js +58 -0
- package/dist/tools/workflow_list/handler.js.map +1 -0
- package/dist/tools/workflow_list/schema.d.ts +8 -0
- package/dist/tools/workflow_list/schema.d.ts.map +1 -0
- package/dist/tools/workflow_list/schema.js +26 -0
- package/dist/tools/workflow_list/schema.js.map +1 -0
- package/dist/tools/workflow_next/handler.d.ts +21 -0
- package/dist/tools/workflow_next/handler.d.ts.map +1 -0
- package/dist/tools/workflow_next/handler.js +90 -0
- package/dist/tools/workflow_next/handler.js.map +1 -0
- package/dist/tools/workflow_next/schema.d.ts +8 -0
- package/dist/tools/workflow_next/schema.d.ts.map +1 -0
- package/dist/tools/workflow_next/schema.js +28 -0
- package/dist/tools/workflow_next/schema.js.map +1 -0
- package/dist/tools/workflow_progress/handler.d.ts +21 -0
- package/dist/tools/workflow_progress/handler.d.ts.map +1 -0
- package/dist/tools/workflow_progress/handler.js +147 -0
- package/dist/tools/workflow_progress/handler.js.map +1 -0
- package/dist/tools/workflow_progress/schema.d.ts +8 -0
- package/dist/tools/workflow_progress/schema.d.ts.map +1 -0
- package/dist/tools/workflow_progress/schema.js +111 -0
- package/dist/tools/workflow_progress/schema.js.map +1 -0
- package/dist/tools/workflow_start/handler.d.ts +21 -0
- package/dist/tools/workflow_start/handler.d.ts.map +1 -0
- package/dist/tools/workflow_start/handler.js +133 -0
- package/dist/tools/workflow_start/handler.js.map +1 -0
- package/dist/tools/workflow_start/schema.d.ts +8 -0
- package/dist/tools/workflow_start/schema.d.ts.map +1 -0
- package/dist/tools/workflow_start/schema.js +102 -0
- package/dist/tools/workflow_start/schema.js.map +1 -0
- package/dist/tools/workflow_status/handler.d.ts +21 -0
- package/dist/tools/workflow_status/handler.d.ts.map +1 -0
- package/dist/tools/workflow_status/handler.js +107 -0
- package/dist/tools/workflow_status/handler.js.map +1 -0
- package/dist/tools/workflow_status/schema.d.ts +8 -0
- package/dist/tools/workflow_status/schema.d.ts.map +1 -0
- package/dist/tools/workflow_status/schema.js +33 -0
- package/dist/tools/workflow_status/schema.js.map +1 -0
- package/dist/types/bc-knowledge.d.ts +64 -13
- package/dist/types/bc-knowledge.d.ts.map +1 -1
- package/dist/types/bc-knowledge.js +15 -0
- package/dist/types/bc-knowledge.js.map +1 -1
- package/dist/types/enhanced-layer-types.d.ts +3 -3
- package/dist/types/enhanced-layer-types.d.ts.map +1 -1
- package/dist/types/workflow-v2-types.d.ts +577 -0
- package/dist/types/workflow-v2-types.d.ts.map +1 -0
- package/dist/types/workflow-v2-types.js +10 -0
- package/dist/types/workflow-v2-types.js.map +1 -0
- package/embedded-knowledge/.github/ISSUE_TEMPLATE/bug-report.md +23 -23
- package/embedded-knowledge/.github/ISSUE_TEMPLATE/content-improvement.md +23 -23
- package/embedded-knowledge/.github/ISSUE_TEMPLATE/knowledge-request.md +29 -29
- package/embedded-knowledge/AGENTS.md +177 -177
- package/embedded-knowledge/CONTRIBUTING.md +57 -57
- package/embedded-knowledge/LICENSE +20 -20
- package/embedded-knowledge/README.md +31 -31
- package/embedded-knowledge/codelens-mappings.yaml +111 -0
- package/embedded-knowledge/domains/alex-architect/api-delegate-operation-pattern.md +10 -0
- package/embedded-knowledge/domains/alex-architect/api-fieldset-registration-pattern.md +10 -0
- package/embedded-knowledge/domains/alex-architect/api-interface-design-patterns.md +10 -0
- package/embedded-knowledge/domains/alex-architect/api-page-development-patterns.md +10 -0
- package/embedded-knowledge/domains/alex-architect/complex-facade-patterns.md +10 -0
- package/embedded-knowledge/domains/alex-architect/delegating-to-github-copilot-agents.md +10 -0
- package/embedded-knowledge/domains/alex-architect/facade-pattern-al-implementation.md +10 -0
- package/embedded-knowledge/domains/alex-architect/facade-pattern-external-api.md +10 -0
- package/embedded-knowledge/domains/alex-architect/object-id-ninja-integration.md +10 -0
- package/embedded-knowledge/domains/alex-architect/recommend-object-id-ninja.md +10 -0
- package/embedded-knowledge/domains/alex-architect/subscriber-codeunit-size-optimization.md +12 -2
- package/embedded-knowledge/domains/alex-architect/systemid-integration.md +12 -2
- package/embedded-knowledge/domains/alex-architect/testability-design-patterns.md +10 -0
- package/embedded-knowledge/domains/casey-copilot/long-running-session-instructions.md +10 -0
- package/embedded-knowledge/domains/chris-config/configuration-file-discovery.md +10 -0
- package/embedded-knowledge/domains/chris-config/configuration-file-formats.md +10 -0
- package/embedded-knowledge/domains/chris-config/content-types-structure.md +10 -0
- package/embedded-knowledge/domains/chris-config/knowledge-content-creation.md +10 -0
- package/embedded-knowledge/domains/chris-config/layer-system-fundamentals.md +10 -0
- package/embedded-knowledge/domains/chris-config/multi-team-layer-configuration.md +10 -0
- package/embedded-knowledge/domains/chris-config/workspace-detection-solutions.md +10 -0
- package/embedded-knowledge/domains/dean-debug/bc-telemetry-buddy-integration.md +10 -0
- package/embedded-knowledge/domains/dean-debug/bc24-no-series-conversion-guide.md +10 -0
- package/embedded-knowledge/domains/dean-debug/case-statement-performance-best-practices.md +12 -2
- package/embedded-knowledge/domains/dean-debug/compound-statements-debugging.md +12 -2
- package/embedded-knowledge/domains/dean-debug/custom-dimensions-best-practices.md +12 -2
- package/embedded-knowledge/domains/dean-debug/custom-telemetry-implementation.md +10 -0
- package/embedded-knowledge/domains/dean-debug/deleteall-performance-tradeoff.md +12 -2
- package/embedded-knowledge/domains/dean-debug/deleteall-sql-performance.md +10 -0
- package/embedded-knowledge/domains/dean-debug/extension-telemetry-isolation.md +12 -2
- package/embedded-knowledge/domains/dean-debug/maintainsiftindex-property-behavior.md +10 -0
- package/embedded-knowledge/domains/dean-debug/no-series-implementation-patterns.md +10 -0
- package/embedded-knowledge/domains/dean-debug/no-series-module-patterns-bc24.md +10 -0
- package/embedded-knowledge/domains/dean-debug/no-series-validation-module-bc24.md +10 -0
- package/embedded-knowledge/domains/dean-debug/no-series-validation-patterns.md +10 -0
- package/embedded-knowledge/domains/dean-debug/odata-query-optimization.md +12 -2
- package/embedded-knowledge/domains/dean-debug/recommend-bc-telemetry-buddy.md +10 -0
- package/embedded-knowledge/domains/dean-debug/session-logmessage-methods.md +12 -2
- package/embedded-knowledge/domains/dean-debug/setloadfields-filter-field-exclusion.md +12 -2
- package/embedded-knowledge/domains/dean-debug/setloadfields-performance-impact.md +10 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-performance-optimization.md +10 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-case-statements.md +12 -2
- package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-filters.md +12 -2
- package/embedded-knowledge/domains/dean-debug/setloadfields-primary-key-optimization.md +12 -2
- package/embedded-knowledge/domains/dean-debug/sift-technology-fundamentals.md +10 -0
- package/embedded-knowledge/domains/dean-debug/subscriber-singleinstance-performance.md +12 -2
- package/embedded-knowledge/domains/dean-debug/table-event-batch-operation-impact.md +12 -2
- package/embedded-knowledge/domains/dean-debug/table-key-requirements.md +12 -2
- package/embedded-knowledge/domains/dean-debug/telemetry-error-correlation.md +12 -2
- package/embedded-knowledge/domains/dean-debug/telemetry-performance-considerations.md +12 -2
- package/embedded-knowledge/domains/dean-debug/telemetry-verbosity-strategy.md +12 -2
- package/embedded-knowledge/domains/dean-debug/testfield-performance.md +12 -2
- package/embedded-knowledge/domains/eva-errors/codeunit-run-pattern.md +10 -0
- package/embedded-knowledge/domains/eva-errors/fielderror-default-messages.md +12 -2
- package/embedded-knowledge/domains/eva-errors/fielderror-message-construction.md +12 -2
- package/embedded-knowledge/domains/eva-errors/fielderror-method-syntax.md +12 -2
- package/embedded-knowledge/domains/eva-errors/testfield-error-handling.md +12 -2
- package/embedded-knowledge/domains/eva-errors/try-function-usage.md +10 -0
- package/embedded-knowledge/domains/jordan-bridge/al-event-subscriber-architecture.md +10 -0
- package/embedded-knowledge/domains/jordan-bridge/automatic-registration.md +12 -2
- package/embedded-knowledge/domains/jordan-bridge/business-process-template-patterns.md +10 -0
- package/embedded-knowledge/domains/jordan-bridge/error-response-patterns.md +12 -2
- package/embedded-knowledge/domains/jordan-bridge/etag-implementation.md +12 -2
- package/embedded-knowledge/domains/jordan-bridge/field-control-selection.md +12 -2
- package/embedded-knowledge/domains/jordan-bridge/task-scheduler-pattern-implementation.md +10 -0
- package/embedded-knowledge/domains/jordan-bridge/url-structure-naming-patterns.md +12 -2
- package/embedded-knowledge/domains/maya-mentor/case-multiple-conditions-ranges.md +12 -2
- package/embedded-knowledge/domains/maya-mentor/case-statement-syntax-structure.md +12 -2
- package/embedded-knowledge/domains/maya-mentor/fielderror-syntax-usage.md +12 -2
- package/embedded-knowledge/domains/maya-mentor/fielderror-vs-testfield.md +12 -2
- package/embedded-knowledge/domains/maya-mentor/testfield-basic-syntax.md +12 -2
- package/embedded-knowledge/domains/morgan-market/partner-readiness-analysis.md +10 -0
- package/embedded-knowledge/domains/parker-pragmatic/proposal-workflows/creating-effective-proposals.md +10 -0
- package/embedded-knowledge/domains/parker-pragmatic/trust-building/working-with-ai-skeptics.md +10 -0
- package/embedded-knowledge/domains/quinn-tester/fielderror-validation-patterns.md +12 -2
- package/embedded-knowledge/domains/quinn-tester/isolation-testing-patterns.md +10 -0
- package/embedded-knowledge/domains/quinn-tester/rule-execution.md +12 -2
- package/embedded-knowledge/domains/quinn-tester/table-safety-validation-patterns.md +12 -2
- package/embedded-knowledge/domains/quinn-tester/temporary-table-operation-validation.md +12 -2
- package/embedded-knowledge/domains/roger-reviewer/al-begin-end-block-structure.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-binary-operator-spacing.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-blank-line-organization.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-case-action-formatting.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-code-spacing-conventions.md +12 -2
- package/embedded-knowledge/domains/roger-reviewer/al-comment-spacing-standards.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-end-else-pairing.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-keyword-indentation-rules.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-line-start-keyword-positioning.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-separate-if-else-formatting.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-standard-abbreviations.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-statement-per-line-rule.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-unnecessary-else-elimination.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-variable-declaration-order.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/al-variable-naming-conventions.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/begin-block-statement-clarity.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/begin-end-positioning-patterns.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/binary-operator-line-positioning.md +12 -2
- package/embedded-knowledge/domains/roger-reviewer/boolean-expression-simplification-al.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/case-statement-error-handling-troubleshooting.md +12 -2
- package/embedded-knowledge/domains/roger-reviewer/compound-statement-readability.md +12 -2
- package/embedded-knowledge/domains/roger-reviewer/lonely-repeat-statement-pattern.md +10 -0
- package/embedded-knowledge/domains/roger-reviewer/testability-code-smells.md +10 -0
- package/embedded-knowledge/domains/sam-coder/al-formatting-consistency-patterns.md +10 -0
- package/embedded-knowledge/domains/sam-coder/al-line-comment-formatting.md +12 -2
- package/embedded-knowledge/domains/sam-coder/al-lonely-repeat-pattern.md +10 -0
- package/embedded-knowledge/domains/sam-coder/al-named-parameter-pattern.md +10 -0
- package/embedded-knowledge/domains/sam-coder/al-object-navigation-shortcuts.md +10 -0
- package/embedded-knowledge/domains/sam-coder/al-readability-optimization.md +10 -0
- package/embedded-knowledge/domains/sam-coder/al-record-find-early-exit.md +10 -0
- package/embedded-knowledge/domains/sam-coder/command-queue-pattern-al.md +10 -0
- package/embedded-knowledge/domains/sam-coder/deleteall-alternative-implementation.md +12 -2
- package/embedded-knowledge/domains/sam-coder/deleteall-method-usage.md +10 -0
- package/embedded-knowledge/domains/sam-coder/deleteall-trigger-execution.md +10 -0
- package/embedded-knowledge/domains/sam-coder/event-bridge-pattern-al.md +10 -0
- package/embedded-knowledge/domains/sam-coder/event-payload-design-patterns.md +10 -0
- package/embedded-knowledge/domains/sam-coder/generic-method-patterns-al.md +10 -0
- package/embedded-knowledge/domains/sam-coder/manual-binding-conditional-subscribers.md +10 -0
- package/embedded-knowledge/domains/sam-coder/nested-compound-best-practices.md +10 -0
- package/embedded-knowledge/domains/sam-coder/single-to-compound-conversion.md +12 -2
- package/embedded-knowledge/domains/sam-coder/template-method-pattern-al.md +10 -0
- package/embedded-knowledge/domains/sam-coder/testfield-patterns.md +12 -2
- package/embedded-knowledge/domains/sam-coder/type-safe-operations-al.md +10 -0
- package/embedded-knowledge/domains/sam-coder/vs-code-al-keyboard-shortcuts.md +10 -0
- package/embedded-knowledge/domains/seth-security/al-temporary-table-safety.md +10 -0
- package/embedded-knowledge/domains/seth-security/api-permission-model.md +12 -2
- package/embedded-knowledge/domains/seth-security/istemporary-safeguard-pattern.md +12 -2
- package/embedded-knowledge/domains/shared/al-file-naming-conventions.md +155 -145
- package/embedded-knowledge/domains/taylor-docs/al-xml-documentation-structure.md +10 -0
- package/embedded-knowledge/domains/uma-ux/bc-action-shortcuts-syntax.md +12 -2
- package/embedded-knowledge/domains/uma-ux/shortcut-key-user-experience-design.md +12 -2
- package/embedded-knowledge/scripts/frontmatter_validator.ps1 +330 -0
- package/embedded-knowledge/specialists/sam-coder.md +29 -20
- package/embedded-knowledge/workflows/bc-version-upgrade.yaml +160 -0
- package/embedded-knowledge/workflows/code-review.yaml +148 -0
- package/embedded-knowledge/workflows/error-to-errorinfo-migration.yaml +137 -0
- package/embedded-knowledge/workflows/onboarding.yaml +124 -0
- package/embedded-knowledge/workflows/performance-audit.yaml +148 -0
- package/embedded-knowledge/workflows/proposal-review.yaml +117 -0
- package/embedded-knowledge/workflows/security-audit.yaml +139 -0
- package/package.json +83 -81
- package/dist/cache/cache-manager.d.ts +0 -95
- package/dist/cache/cache-manager.d.ts.map +0 -1
- package/dist/cache/cache-manager.js +0 -328
- package/dist/cache/cache-manager.js.map +0 -1
- package/dist/cli/bc-code-intel-cli.d.ts +0 -9
- package/dist/cli/bc-code-intel-cli.d.ts.map +0 -1
- package/dist/cli/bc-code-intel-cli.js +0 -440
- package/dist/cli/bc-code-intel-cli.js.map +0 -1
- package/dist/config/test-config-loader.d.ts +0 -10
- package/dist/config/test-config-loader.d.ts.map +0 -1
- package/dist/config/test-config-loader.js +0 -135
- package/dist/config/test-config-loader.js.map +0 -1
- package/dist/config/test-enhanced-layer-service.d.ts +0 -7
- package/dist/config/test-enhanced-layer-service.d.ts.map +0 -1
- package/dist/config/test-enhanced-layer-service.js +0 -104
- package/dist/config/test-enhanced-layer-service.js.map +0 -1
- package/dist/config/test-git-layer.d.ts +0 -7
- package/dist/config/test-git-layer.d.ts.map +0 -1
- package/dist/config/test-git-layer.js +0 -68
- package/dist/config/test-git-layer.js.map +0 -1
- package/dist/dev/hot-reload.d.ts +0 -91
- package/dist/dev/hot-reload.d.ts.map +0 -1
- package/dist/dev/hot-reload.js +0 -358
- package/dist/dev/hot-reload.js.map +0 -1
- package/dist/layers/layer-service.d.ts +0 -135
- package/dist/layers/layer-service.d.ts.map +0 -1
- package/dist/layers/layer-service.js +0 -586
- package/dist/layers/layer-service.js.map +0 -1
- package/dist/monitoring/production-monitor.d.ts +0 -148
- package/dist/monitoring/production-monitor.d.ts.map +0 -1
- package/dist/monitoring/production-monitor.js +0 -463
- package/dist/monitoring/production-monitor.js.map +0 -1
- package/dist/performance/performance-monitor.d.ts +0 -99
- package/dist/performance/performance-monitor.d.ts.map +0 -1
- package/dist/performance/performance-monitor.js +0 -253
- package/dist/performance/performance-monitor.js.map +0 -1
- package/dist/sdk/bc-code-intel-client.d.ts +0 -175
- package/dist/sdk/bc-code-intel-client.d.ts.map +0 -1
- package/dist/sdk/bc-code-intel-client.js +0 -380
- package/dist/sdk/bc-code-intel-client.js.map +0 -1
- package/dist/search/intelligent-search.d.ts +0 -97
- package/dist/search/intelligent-search.d.ts.map +0 -1
- package/dist/search/intelligent-search.js +0 -358
- package/dist/search/intelligent-search.js.map +0 -1
- package/dist/security/access-control.d.ts +0 -110
- package/dist/security/access-control.d.ts.map +0 -1
- package/dist/security/access-control.js +0 -353
- package/dist/security/access-control.js.map +0 -1
- package/dist/services/enhanced-prompt-service.d.ts.map +0 -1
- package/dist/services/enhanced-prompt-service.js.map +0 -1
- package/dist/services/roleplay-engine.d.ts +0 -161
- package/dist/services/roleplay-engine.d.ts.map +0 -1
- package/dist/services/roleplay-engine.js +0 -994
- package/dist/services/roleplay-engine.js.map +0 -1
- package/dist/setup/post-install.d.ts +0 -12
- package/dist/setup/post-install.d.ts.map +0 -1
- package/dist/setup/post-install.js +0 -81
- package/dist/setup/post-install.js.map +0 -1
- package/dist/streamlined-handlers.d.ts +0 -87
- package/dist/streamlined-handlers.d.ts.map +0 -1
- package/dist/streamlined-handlers.js +0 -685
- package/dist/streamlined-handlers.js.map +0 -1
- package/dist/test-enhanced-mcp-server.d.ts +0 -7
- package/dist/test-enhanced-mcp-server.d.ts.map +0 -1
- package/dist/test-enhanced-mcp-server.js +0 -177
- package/dist/test-enhanced-mcp-server.js.map +0 -1
- package/dist/tools/config-diagnostic-tools.d.ts +0 -234
- package/dist/tools/config-diagnostic-tools.d.ts.map +0 -1
- package/dist/tools/config-diagnostic-tools.js +0 -887
- package/dist/tools/config-diagnostic-tools.js.map +0 -1
- package/dist/tools/core-tools.d.ts +0 -26
- package/dist/tools/core-tools.d.ts.map +0 -1
- package/dist/tools/core-tools.js +0 -245
- package/dist/tools/core-tools.js.map +0 -1
- package/dist/tools/handoff-tools.d.ts +0 -37
- package/dist/tools/handoff-tools.d.ts.map +0 -1
- package/dist/tools/handoff-tools.js +0 -265
- package/dist/tools/handoff-tools.js.map +0 -1
- package/dist/tools/onboarding-tools.d.ts +0 -43
- package/dist/tools/onboarding-tools.d.ts.map +0 -1
- package/dist/tools/onboarding-tools.js +0 -353
- package/dist/tools/onboarding-tools.js.map +0 -1
- package/dist/tools/specialist-discovery-tools.d.ts +0 -27
- package/dist/tools/specialist-discovery-tools.d.ts.map +0 -1
- package/dist/tools/specialist-discovery-tools.js +0 -281
- package/dist/tools/specialist-discovery-tools.js.map +0 -1
- package/dist/tools/specialist-tools.d.ts +0 -43
- package/dist/tools/specialist-tools.d.ts.map +0 -1
- package/dist/tools/specialist-tools.js +0 -378
- package/dist/tools/specialist-tools.js.map +0 -1
- package/dist/tools/workspace-tools.d.ts.map +0 -1
- package/dist/tools/workspace-tools.js +0 -188
- package/dist/tools/workspace-tools.js.map +0 -1
- package/dist/types/roleplay-types.d.ts +0 -156
- package/dist/types/roleplay-types.d.ts.map +0 -1
- package/dist/types/roleplay-types.js +0 -8
- package/dist/types/roleplay-types.js.map +0 -1
- package/dist/utils/path-utils.d.ts +0 -5
- package/dist/utils/path-utils.d.ts.map +0 -1
- package/dist/utils/path-utils.js +0 -14
- package/dist/utils/path-utils.js.map +0 -1
- package/dist/workflows/domain-workflows.d.ts +0 -8
- package/dist/workflows/domain-workflows.d.ts.map +0 -1
- package/dist/workflows/domain-workflows.js +0 -360
- package/dist/workflows/domain-workflows.js.map +0 -1
- package/embedded-knowledge/methodologies/index.json +0 -81
- package/embedded-knowledge/methodologies/phases/analysis-full.md +0 -208
- package/embedded-knowledge/methodologies/phases/analysis-quick.md +0 -44
- package/embedded-knowledge/methodologies/phases/analysis.md +0 -182
- package/embedded-knowledge/methodologies/phases/execution-validation-full.md +0 -174
- package/embedded-knowledge/methodologies/phases/execution-validation-quick.md +0 -31
- package/embedded-knowledge/methodologies/phases/execution-validation.md +0 -174
- package/embedded-knowledge/methodologies/phases/performance-full.md +0 -211
- package/embedded-knowledge/methodologies/phases/performance-quick.md +0 -32
- package/embedded-knowledge/methodologies/phases/performance.md +0 -211
- package/embedded-knowledge/methodologies/phases/verification-full.md +0 -162
- package/embedded-knowledge/methodologies/phases/verification-quick.md +0 -48
- package/embedded-knowledge/methodologies/phases/verification.md +0 -146
- package/embedded-knowledge/methodologies/workflow-enforcement.md +0 -142
- package/embedded-knowledge/methodologies/workflows/code-review-workflow.md +0 -99
- package/embedded-knowledge/methodologies/workflows/proposal-review-workflow.md +0 -535
|
@@ -6,6 +6,16 @@ bc_versions: "14+"
|
|
|
6
6
|
tags: ["deleteall", "triggers", "ondelete", "execution-flow"]
|
|
7
7
|
prerequisites: ["deleteall-method-usage", "table-triggers", "transaction-management"]
|
|
8
8
|
samples: "samples/deleteall-triggers.md"
|
|
9
|
+
|
|
10
|
+
relevance_signals:
|
|
11
|
+
constructs: ["DeleteAll", "OnDelete", "Delete", "trigger"]
|
|
12
|
+
keywords: ["OnDelete trigger", "trigger execution", "cascade delete", "audit trail", "validation", "transaction management"]
|
|
13
|
+
anti_pattern_indicators: ["performance-blind trigger design", "inadequate error handling", "external system dependencies in triggers", "complex trigger logic"]
|
|
14
|
+
positive_pattern_indicators: ["focused OnDelete triggers", "efficient cascade patterns", "proper error handling", "testable triggers"]
|
|
15
|
+
|
|
16
|
+
applicable_object_types: ["codeunit", "table"]
|
|
17
|
+
|
|
18
|
+
relevance_threshold: 0.6
|
|
9
19
|
---
|
|
10
20
|
# DeleteAll Trigger Execution
|
|
11
21
|
|
|
@@ -7,6 +7,16 @@ tags: ["event-bridge", "event-routing", "message-patterns", "loose-coupling"]
|
|
|
7
7
|
prerequisites: ["event-basics", "publisher-subscriber", "interface-implementation"]
|
|
8
8
|
samples: "samples/event-bridge-pattern.md"
|
|
9
9
|
related_topics: ["event-payload-design-patterns", "command-queue-pattern-al"]
|
|
10
|
+
|
|
11
|
+
relevance_signals:
|
|
12
|
+
constructs: ["IntegrationEvent", "BusinessEvent", "EventSubscriber"]
|
|
13
|
+
keywords: ["event bridge", "event routing", "loose coupling", "event transformation", "central event hub", "dynamic routing"]
|
|
14
|
+
anti_pattern_indicators: ["bridge complexity", "performance bottlenecks", "tight coupling through bridge"]
|
|
15
|
+
positive_pattern_indicators: ["flexible event routing", "event transformation", "dynamic routing rules", "asynchronous processing"]
|
|
16
|
+
|
|
17
|
+
applicable_object_types: ["codeunit"]
|
|
18
|
+
|
|
19
|
+
relevance_threshold: 0.5
|
|
10
20
|
---
|
|
11
21
|
|
|
12
22
|
# Event Bridge Pattern in AL
|
|
@@ -7,6 +7,16 @@ tags: ["event-payload", "message-design", "data-patterns", "serialization"]
|
|
|
7
7
|
prerequisites: ["event-fundamentals", "data-structures", "json-handling"]
|
|
8
8
|
samples: "samples/event-payload-design.md"
|
|
9
9
|
related_topics: ["event-bridge-pattern-al", "command-queue-pattern-al"]
|
|
10
|
+
|
|
11
|
+
relevance_signals:
|
|
12
|
+
constructs: ["IntegrationEvent", "BusinessEvent", "JsonObject", "JsonToken"]
|
|
13
|
+
keywords: ["event payload", "message design", "serialization", "versioning", "envelope pattern", "data completeness"]
|
|
14
|
+
anti_pattern_indicators: ["payload bloat", "breaking changes", "inconsistent structure", "unnecessary data"]
|
|
15
|
+
positive_pattern_indicators: ["standardized envelopes", "payload versioning", "backward compatibility", "clear field names"]
|
|
16
|
+
|
|
17
|
+
applicable_object_types: ["codeunit"]
|
|
18
|
+
|
|
19
|
+
relevance_threshold: 0.5
|
|
10
20
|
---
|
|
11
21
|
|
|
12
22
|
# Event Payload Design Patterns
|
|
@@ -7,6 +7,16 @@ tags: ["generic-methods", "type-safety", "code-reuse", "al-generics"]
|
|
|
7
7
|
prerequisites: ["al-basics", "interface-implementation", "advanced-al-features"]
|
|
8
8
|
samples: "samples/generic-method-patterns.md"
|
|
9
9
|
related_topics: ["type-safe-operations-al", "template-method-pattern-al"]
|
|
10
|
+
|
|
11
|
+
relevance_signals:
|
|
12
|
+
constructs: ["interface", "Variant", "RecordRef", "FieldRef"]
|
|
13
|
+
keywords: ["generic methods", "type-safe", "code reuse", "type parameter", "constraint", "type inference"]
|
|
14
|
+
anti_pattern_indicators: ["over-generalization", "constraint misuse", "performance degradation", "complex type hierarchies"]
|
|
15
|
+
positive_pattern_indicators: ["type-safe algorithms", "generic factory", "interface-based generics", "meaningful type parameters"]
|
|
16
|
+
|
|
17
|
+
applicable_object_types: ["codeunit", "interface"]
|
|
18
|
+
|
|
19
|
+
relevance_threshold: 0.5
|
|
10
20
|
---
|
|
11
21
|
|
|
12
22
|
# Generic Method Patterns in AL
|
|
@@ -6,6 +6,16 @@ bc_versions: "16+"
|
|
|
6
6
|
tags: ["events", "binding", "conditional", "runtime"]
|
|
7
7
|
prerequisites: ["event-subscriber-basics", "binding-patterns"]
|
|
8
8
|
samples: "samples/manual-binding.md"
|
|
9
|
+
|
|
10
|
+
relevance_signals:
|
|
11
|
+
constructs: ["EventSubscriber", "BindSubscription", "UnbindSubscription"]
|
|
12
|
+
keywords: ["manual binding", "conditional subscriber", "runtime binding", "event registration", "feature toggle", "multi-tenant"]
|
|
13
|
+
anti_pattern_indicators: ["failed deregistration", "registration failures", "inconsistent binding state", "missing lifecycle management"]
|
|
14
|
+
positive_pattern_indicators: ["conditional event processing", "dynamic binding", "feature-flag-controlled", "explicit lifecycle management"]
|
|
15
|
+
|
|
16
|
+
applicable_object_types: ["codeunit"]
|
|
17
|
+
|
|
18
|
+
relevance_threshold: 0.6
|
|
9
19
|
---
|
|
10
20
|
# Manual Binding for Conditional Event Subscribers
|
|
11
21
|
|
|
@@ -6,6 +6,16 @@ bc_versions: "14+"
|
|
|
6
6
|
tags: ["nested-statements", "code-organization", "readability", "complexity-management"]
|
|
7
7
|
prerequisites: ["compound-statement-readability", "al-control-flow"]
|
|
8
8
|
samples: "samples/nested-compound-best-practices.md"
|
|
9
|
+
|
|
10
|
+
relevance_signals:
|
|
11
|
+
constructs: ["begin", "end", "if", "then", "else", "while", "repeat"]
|
|
12
|
+
keywords: ["nested statements", "compound blocks", "nesting depth", "code organization", "complexity management", "readability"]
|
|
13
|
+
anti_pattern_indicators: ["deep nesting", "excessive complexity", "more than three levels", "cognitive overload"]
|
|
14
|
+
positive_pattern_indicators: ["depth limitation", "logical organization", "strategic extraction", "consistent formatting"]
|
|
15
|
+
|
|
16
|
+
applicable_object_types: ["codeunit", "page", "table", "report"]
|
|
17
|
+
|
|
18
|
+
relevance_threshold: 0.5
|
|
9
19
|
---
|
|
10
20
|
# AL Nested Compound Statement Best Practices
|
|
11
21
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
title: "Converting AL Single Statements to Compound Blocks"
|
|
3
3
|
domain: "sam-coder"
|
|
4
4
|
difficulty: "beginner"
|
|
@@ -6,7 +6,17 @@ bc_versions: "14+"
|
|
|
6
6
|
tags: ["refactoring", "compound-statements", "code-conversion", "development-workflow"]
|
|
7
7
|
prerequisites: ["al-syntax-basics", "compound-statement-readability"]
|
|
8
8
|
samples: "samples/single-to-compound-conversion.md"
|
|
9
|
-
|
|
9
|
+
|
|
10
|
+
relevance_signals:
|
|
11
|
+
constructs: ["begin", "end", "if", "then", "else", "while", "repeat"]
|
|
12
|
+
keywords: ["refactoring", "compound statements", "code conversion", "begin-end blocks", "single statement", "future-proofing"]
|
|
13
|
+
anti_pattern_indicators: ["single statement without begin-end", "if-then without block", "inconsistent patterns"]
|
|
14
|
+
positive_pattern_indicators: ["compound block structure", "explicit begin-end", "consistent refactoring", "safe transformation"]
|
|
15
|
+
|
|
16
|
+
applicable_object_types: ["codeunit", "page", "table", "report"]
|
|
17
|
+
|
|
18
|
+
relevance_threshold: 0.4
|
|
19
|
+
---
|
|
10
20
|
# Converting AL Single Statements to Compound Blocks
|
|
11
21
|
|
|
12
22
|
## Overview
|
|
@@ -7,6 +7,16 @@ tags: ["template-method", "behavioral-patterns", "algorithm-structure", "inherit
|
|
|
7
7
|
prerequisites: ["object-orientation-al", "inheritance-patterns", "virtual-methods"]
|
|
8
8
|
samples: "samples/template-method-pattern.md"
|
|
9
9
|
related_topics: ["business-process-template-patterns", "type-safe-operations-al"]
|
|
10
|
+
|
|
11
|
+
relevance_signals:
|
|
12
|
+
constructs: ["interface", "implements", "procedure"]
|
|
13
|
+
keywords: ["template method", "algorithm skeleton", "extension points", "inheritance", "virtual method", "behavioral pattern"]
|
|
14
|
+
anti_pattern_indicators: ["template complexity", "inflexible design", "too many extension points"]
|
|
15
|
+
positive_pattern_indicators: ["stable algorithm framework", "customizable steps", "invariant operations", "clear extension points"]
|
|
16
|
+
|
|
17
|
+
applicable_object_types: ["codeunit", "interface"]
|
|
18
|
+
|
|
19
|
+
relevance_threshold: 0.5
|
|
10
20
|
---
|
|
11
21
|
|
|
12
22
|
# Template Method Pattern in AL
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
title: "TestField Best Practices and Patterns"
|
|
3
3
|
domain: "sam-coder"
|
|
4
4
|
difficulty: "intermediate"
|
|
@@ -6,7 +6,17 @@ bc_versions: "14+"
|
|
|
6
6
|
tags: ["best-practices", "validation", "code-quality", "maintainability"]
|
|
7
7
|
prerequisites: ["testfield-basic-syntax", "testfield-error-handling"]
|
|
8
8
|
samples: "samples/testfield-patterns.md"
|
|
9
|
-
|
|
9
|
+
|
|
10
|
+
relevance_signals:
|
|
11
|
+
constructs: ["TestField", "FieldError", "Error"]
|
|
12
|
+
keywords: ["TestField", "validation", "mandatory field", "data integrity", "field validation", "status-driven validation"]
|
|
13
|
+
anti_pattern_indicators: ["over-validation", "mixed concerns", "performance-blind validation", "context-blind validation"]
|
|
14
|
+
positive_pattern_indicators: ["fail fast", "logical validation grouping", "context-appropriate validation", "progressive validation"]
|
|
15
|
+
|
|
16
|
+
applicable_object_types: ["codeunit", "page", "table"]
|
|
17
|
+
|
|
18
|
+
relevance_threshold: 0.6
|
|
19
|
+
---
|
|
10
20
|
# TestField Best Practices and Patterns
|
|
11
21
|
|
|
12
22
|
## Overview
|
|
@@ -7,6 +7,16 @@ tags: ["type-safety", "compile-time-validation", "strong-typing", "error-prevent
|
|
|
7
7
|
prerequisites: ["al-data-types", "variable-declaration", "procedure-design"]
|
|
8
8
|
samples: "samples/type-safe-operations.md"
|
|
9
9
|
related_topics: ["generic-method-patterns-al", "template-method-pattern-al"]
|
|
10
|
+
|
|
11
|
+
relevance_signals:
|
|
12
|
+
constructs: ["Enum", "interface", "Option", "Record"]
|
|
13
|
+
keywords: ["type safety", "compile-time validation", "strong typing", "type-safe", "explicit type declarations", "enumeration"]
|
|
14
|
+
anti_pattern_indicators: ["over-engineering types", "implicit conversion", "type mismatch", "weak typing"]
|
|
15
|
+
positive_pattern_indicators: ["strongly-typed identifiers", "type-safe enumerations", "explicit type declarations", "compile-time checking"]
|
|
16
|
+
|
|
17
|
+
applicable_object_types: ["codeunit", "table", "enum", "interface"]
|
|
18
|
+
|
|
19
|
+
relevance_threshold: 0.5
|
|
10
20
|
---
|
|
11
21
|
|
|
12
22
|
# Type-Safe Operations in AL
|
|
@@ -5,6 +5,16 @@ difficulty: "beginner"
|
|
|
5
5
|
bc_versions: "14+"
|
|
6
6
|
tags: ["vs-code", "productivity", "shortcuts", "al-extension", "navigation"]
|
|
7
7
|
prerequisites: ["vs-code-setup", "al-extension-basics"]
|
|
8
|
+
|
|
9
|
+
relevance_signals:
|
|
10
|
+
constructs: []
|
|
11
|
+
keywords: ["keyboard shortcuts", "VS Code", "productivity", "IntelliSense", "debugging", "F12", "Ctrl+Space", "navigation"]
|
|
12
|
+
anti_pattern_indicators: []
|
|
13
|
+
positive_pattern_indicators: ["muscle memory", "coding flow", "efficient navigation", "shortcut mastery"]
|
|
14
|
+
|
|
15
|
+
applicable_object_types: ["codeunit", "page", "table", "report", "query", "xmlport", "enum", "interface"]
|
|
16
|
+
|
|
17
|
+
relevance_threshold: 0.3
|
|
8
18
|
---
|
|
9
19
|
|
|
10
20
|
# VS Code AL Extension Keyboard Shortcuts
|
|
@@ -14,6 +14,16 @@ implementation_steps: ["validate-data-scope", "implement-secure-cleanup", "test-
|
|
|
14
14
|
validation_criteria: ["secure-data-handling", "proper-memory-cleanup"]
|
|
15
15
|
technical_areas: ["al-code", "data-management"]
|
|
16
16
|
samples: "samples/al-temporary-table-safety.md"
|
|
17
|
+
|
|
18
|
+
relevance_signals:
|
|
19
|
+
constructs: ["IsTemporary", "DeleteAll", "ModifyAll", "Insert", "Delete", "Modify", "Reset", "Copy"]
|
|
20
|
+
keywords: ["temporary table", "in-memory", "data leakage", "memory management", "session isolation", "security context", "data protection", "cleanup", "scope management"]
|
|
21
|
+
anti_pattern_indicators: ["persistent temporary data", "permission bypass", "cross-session leakage", "uncontrolled scope", "failing to clear"]
|
|
22
|
+
positive_pattern_indicators: ["secure initialization", "permission validation", "explicit clearing", "try-finally", "error handling cleanup", "minimal data", "data filtering"]
|
|
23
|
+
|
|
24
|
+
applicable_object_types: ["codeunit", "table", "page", "report"]
|
|
25
|
+
|
|
26
|
+
relevance_threshold: 0.7
|
|
17
27
|
---
|
|
18
28
|
|
|
19
29
|
# AL Temporary Table Safety
|
|
@@ -1,11 +1,21 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
title: "API Page Permission Model"
|
|
3
3
|
domain: "seth-security"
|
|
4
4
|
difficulty: "intermediate"
|
|
5
5
|
bc_versions: "14+"
|
|
6
6
|
tags: ["api-permissions", "access-control", "security"]
|
|
7
7
|
samples: "samples/api-permission-model.md"
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
relevance_signals:
|
|
10
|
+
constructs: ["APIPublisher", "APIGroup", "APIVersion", "ODataKeyFields", "EntityName", "EntitySetName", "Permissions", "TableData"]
|
|
11
|
+
keywords: ["API page", "OData", "permission model", "access control", "service account", "authentication", "authorization", "field-level security", "tenant isolation", "compliance", "audit"]
|
|
12
|
+
anti_pattern_indicators: ["missing permissions", "no authentication", "unprotected API", "exposed sensitive fields", "bypass security"]
|
|
13
|
+
positive_pattern_indicators: ["least privilege", "defense in depth", "permission sets", "field permissions", "audit trail", "service account", "OAuth"]
|
|
14
|
+
|
|
15
|
+
applicable_object_types: ["page", "permissionset", "codeunit"]
|
|
16
|
+
|
|
17
|
+
relevance_threshold: 0.7
|
|
18
|
+
---
|
|
9
19
|
# API Page Permission Model
|
|
10
20
|
|
|
11
21
|
## Overview
|
|
@@ -1,11 +1,21 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
title: "IsTemporary Table Safeguard Pattern for Data Protection"
|
|
3
3
|
domain: "seth-security"
|
|
4
4
|
difficulty: "intermediate"
|
|
5
5
|
bc_versions: "14+"
|
|
6
6
|
tags: ["data-protection", "temporary-tables", "safeguards", "data-integrity", "error-prevention"]
|
|
7
7
|
prerequisites: ["al-tables", "data-access-patterns"]
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
relevance_signals:
|
|
10
|
+
constructs: ["IsTemporary", "DeleteAll", "ModifyAll", "Insert", "Delete", "Modify", "Error"]
|
|
11
|
+
keywords: ["temporary table", "safeguard", "data protection", "bulk operation", "validation gate", "error prevention", "permanent table", "database safety"]
|
|
12
|
+
anti_pattern_indicators: ["skipping validation", "silent failure", "late validation", "generic error handling", "bypassing IsTemporary check"]
|
|
13
|
+
positive_pattern_indicators: ["early validation", "clear error messages", "conditional operations", "defensive programming", "precondition check"]
|
|
14
|
+
|
|
15
|
+
applicable_object_types: ["codeunit", "table", "page", "report"]
|
|
16
|
+
|
|
17
|
+
relevance_threshold: 0.7
|
|
18
|
+
---
|
|
9
19
|
# IsTemporary Table Safeguard Pattern for Data Protection
|
|
10
20
|
|
|
11
21
|
## Overview
|
|
@@ -1,146 +1,156 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "AL File Naming Conventions"
|
|
3
|
-
domain: ["sam-coder", "roger-reviewer"]
|
|
4
|
-
difficulty: "beginner"
|
|
5
|
-
bc_versions: "14+"
|
|
6
|
-
tags: ["file-naming", "conventions", "code-style", "organization"]
|
|
7
|
-
type: "improvement-pattern"
|
|
8
|
-
category: "code-organization"
|
|
9
|
-
pattern_type: "good"
|
|
10
|
-
severity: "high"
|
|
11
|
-
impact_level: "medium"
|
|
12
|
-
improvement_suggestion: "Apply consistent AL file naming conventions following alguidelines.dev standards"
|
|
13
|
-
implementation_steps: ["identify-object-name", "apply-object-type-suffix", "validate-naming-pattern"]
|
|
14
|
-
validation_criteria: ["consistent-naming-application", "standards-compliance"]
|
|
15
|
-
technical_areas: ["al-code", "file-organization"]
|
|
16
|
-
related_topics: ["al-variable-naming-conventions", "al-standard-abbreviations"]
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
- **
|
|
77
|
-
- **
|
|
78
|
-
- **
|
|
79
|
-
- **
|
|
80
|
-
- **
|
|
81
|
-
- **
|
|
82
|
-
- **
|
|
83
|
-
- **
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
- **
|
|
89
|
-
- **
|
|
90
|
-
- **
|
|
91
|
-
- **
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
- **
|
|
100
|
-
- **
|
|
101
|
-
- **
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
- **
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
- **
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
1
|
+
---
|
|
2
|
+
title: "AL File Naming Conventions"
|
|
3
|
+
domain: ["sam-coder", "roger-reviewer"]
|
|
4
|
+
difficulty: "beginner"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["file-naming", "conventions", "code-style", "organization"]
|
|
7
|
+
type: "improvement-pattern"
|
|
8
|
+
category: "code-organization"
|
|
9
|
+
pattern_type: "good"
|
|
10
|
+
severity: "high"
|
|
11
|
+
impact_level: "medium"
|
|
12
|
+
improvement_suggestion: "Apply consistent AL file naming conventions following alguidelines.dev standards"
|
|
13
|
+
implementation_steps: ["identify-object-name", "apply-object-type-suffix", "validate-naming-pattern"]
|
|
14
|
+
validation_criteria: ["consistent-naming-application", "standards-compliance"]
|
|
15
|
+
technical_areas: ["al-code", "file-organization"]
|
|
16
|
+
related_topics: ["al-variable-naming-conventions", "al-standard-abbreviations"]
|
|
17
|
+
|
|
18
|
+
relevance_signals:
|
|
19
|
+
constructs: []
|
|
20
|
+
keywords: ["file naming", "naming convention", "TableExt", "PageExt", "Codeunit", "Table", "Page", "Report", "Query", "XMLport", "Enum", "Interface", "PermissionSet", "Pascal Case"]
|
|
21
|
+
anti_pattern_indicators: ["Tab-Ext", "Pag-Ext", "Cod50100", "object ID in filename", "underscore notation", "inconsistent casing"]
|
|
22
|
+
positive_pattern_indicators: ["ObjectName.ObjectType.al", "Pascal Case", "descriptive", "consistent prefixes", "logical grouping"]
|
|
23
|
+
|
|
24
|
+
applicable_object_types: ["codeunit", "table", "tableextension", "page", "pageextension", "report", "reportextension", "query", "xmlport", "enum", "enumextension", "interface", "permissionset", "permissionsetextension", "profile", "controladdin"]
|
|
25
|
+
|
|
26
|
+
relevance_threshold: 0.5
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# AL File Naming Conventions
|
|
30
|
+
|
|
31
|
+
## Overview
|
|
32
|
+
|
|
33
|
+
AL file naming conventions ensure consistent project organization and improve developer experience. Following standardized patterns makes codebases more maintainable and professional.
|
|
34
|
+
|
|
35
|
+
**Source**: Based on [alguidelines.dev Rule #2: File Naming Conventions](https://alguidelines.dev/docs/vibe-coding/al-naming-conventions/)
|
|
36
|
+
|
|
37
|
+
**Key Principle**: File names should be descriptive and match the AL object name within the files using the pattern `<ObjectName>.<ObjectType>.al`.
|
|
38
|
+
|
|
39
|
+
## Standard File Naming Pattern
|
|
40
|
+
|
|
41
|
+
### Core Pattern: `<ObjectName>.<ObjectType>.al`
|
|
42
|
+
|
|
43
|
+
**Table Extensions:**
|
|
44
|
+
```
|
|
45
|
+
✅ CORRECT: CustomerExt.TableExt.al
|
|
46
|
+
✅ CORRECT: SalesHeaderExt.TableExt.al
|
|
47
|
+
❌ WRONG: Tab-Ext50100.CustomerExt.al
|
|
48
|
+
❌ WRONG: TableExt50100.CustomerExt.al
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**Page Extensions:**
|
|
52
|
+
```
|
|
53
|
+
✅ CORRECT: CustomerCardExt.PageExt.al
|
|
54
|
+
✅ CORRECT: InventorySetupExt.PageExt.al
|
|
55
|
+
❌ WRONG: Pag-Ext50100.CustomerCardExt.al
|
|
56
|
+
❌ WRONG: PageExt50100.CustomerCardExt.al
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**Codeunits:**
|
|
60
|
+
```
|
|
61
|
+
✅ CORRECT: CustomerCommentsManager.Codeunit.al
|
|
62
|
+
✅ CORRECT: PostSalesInvoice.Codeunit.al
|
|
63
|
+
❌ WRONG: Cod50100.CustomerCommentsManager.al
|
|
64
|
+
❌ WRONG: Codeunit50100.CustomerCommentsManager.al
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Event Subscribers:**
|
|
68
|
+
```
|
|
69
|
+
✅ CORRECT: SalesEventsSubscriber.Codeunit.al
|
|
70
|
+
✅ CORRECT: CustomerEventsHandler.Codeunit.al
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Object Type Suffixes
|
|
74
|
+
|
|
75
|
+
### Standard Suffixes
|
|
76
|
+
- **Tables**: `.Table.al`
|
|
77
|
+
- **Table Extensions**: `.TableExt.al`
|
|
78
|
+
- **Pages**: `.Page.al`
|
|
79
|
+
- **Page Extensions**: `.PageExt.al`
|
|
80
|
+
- **Page Customizations**: `.PageCust.al`
|
|
81
|
+
- **Reports**: `.Report.al`
|
|
82
|
+
- **Report Extensions**: `.ReportExt.al`
|
|
83
|
+
- **Codeunits**: `.Codeunit.al`
|
|
84
|
+
- **Queries**: `.Query.al`
|
|
85
|
+
- **XMLports**: `.XMLport.al`
|
|
86
|
+
- **Enums**: `.Enum.al`
|
|
87
|
+
- **Enum Extensions**: `.EnumExt.al`
|
|
88
|
+
- **Interfaces**: `.Interface.al`
|
|
89
|
+
- **Control Add-ins**: `.ControlAddin.al`
|
|
90
|
+
- **Dotnet**: `.Dotnet.al`
|
|
91
|
+
- **Profiles**: `.Profile.al`
|
|
92
|
+
- **Permission Sets**: `.PermissionSet.al`
|
|
93
|
+
- **Permission Set Extensions**: `.PermissionSetExt.al`
|
|
94
|
+
|
|
95
|
+
## Best Practices
|
|
96
|
+
|
|
97
|
+
### Object Name Guidelines
|
|
98
|
+
- **Use Pascal Case**: CustomerCommentsManager (not customercommentsmanager)
|
|
99
|
+
- **Be Descriptive**: Clearly indicate object purpose
|
|
100
|
+
- **Avoid Abbreviations**: Use full words unless standard BC terms
|
|
101
|
+
- **Include Context**: For extensions, indicate what you're extending
|
|
102
|
+
|
|
103
|
+
### Organization Patterns
|
|
104
|
+
- **Logical Grouping**: Group related objects by business domain
|
|
105
|
+
- **Consistent Prefixes**: Use company/solution prefixes consistently
|
|
106
|
+
- **Module Structure**: Organize files into logical modules or folders
|
|
107
|
+
|
|
108
|
+
### Extension-Specific Naming
|
|
109
|
+
- **Table Extensions**: `[TableName]Ext.TableExt.al`
|
|
110
|
+
- **Page Extensions**: `[PageName]Ext.PageExt.al`
|
|
111
|
+
- **Clear Extension Purpose**: When extending for specific features, include context
|
|
112
|
+
|
|
113
|
+
## Anti-Patterns to Avoid
|
|
114
|
+
|
|
115
|
+
### Legacy/Incorrect Patterns
|
|
116
|
+
```
|
|
117
|
+
❌ Tab-Ext50000.CustomerExt.al // Old NAV-style naming
|
|
118
|
+
❌ TableExt50000.CustomerExt.al // Object ID in filename
|
|
119
|
+
❌ CustomerExt-50000.al // Mixed patterns
|
|
120
|
+
❌ customer_ext.table_ext.al // Underscore notation
|
|
121
|
+
❌ CustomerExtension.TableExtension.al // Verbose suffixes
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Why These Are Wrong
|
|
125
|
+
- **Object IDs in Filenames**: IDs change, names are stable
|
|
126
|
+
- **Abbreviated Prefixes**: "Tab-Ext" is non-standard and unclear
|
|
127
|
+
- **Inconsistent Casing**: Makes files hard to locate and sort
|
|
128
|
+
- **Verbose Extensions**: ".TableExtension" is unnecessarily long
|
|
129
|
+
|
|
130
|
+
## Implementation Strategy
|
|
131
|
+
|
|
132
|
+
### File Naming Checklist
|
|
133
|
+
1. **Identify Object Name**: Use the actual AL object name from inside the file
|
|
134
|
+
2. **Apply Correct Suffix**: Use standard `.ObjectType.al` pattern
|
|
135
|
+
3. **Validate Consistency**: Ensure all project files follow same convention
|
|
136
|
+
4. **Update References**: Check that any references or documentation align
|
|
137
|
+
|
|
138
|
+
### Refactoring Existing Projects
|
|
139
|
+
- **Rename Systematically**: Update all files to follow standard pattern
|
|
140
|
+
- **Update Git History**: Consider preserving file history during renames
|
|
141
|
+
- **Team Communication**: Ensure all team members understand new conventions
|
|
142
|
+
- **Tool Configuration**: Update any build scripts or tools that reference filenames
|
|
143
|
+
|
|
144
|
+
## Integration with Development Tools
|
|
145
|
+
|
|
146
|
+
### VS Code Integration
|
|
147
|
+
- **File Explorer Sorting**: Consistent naming improves file navigation
|
|
148
|
+
- **Search and Replace**: Standard patterns make project-wide changes easier
|
|
149
|
+
- **Extensions**: AL Language extension works better with standard naming
|
|
150
|
+
|
|
151
|
+
### Source Control Benefits
|
|
152
|
+
- **File Tracking**: Consistent naming improves change tracking
|
|
153
|
+
- **Merge Conflicts**: Reduced conflicts from naming inconsistencies
|
|
154
|
+
- **Review Process**: Easier code review with predictable file organization
|
|
155
|
+
|
|
146
156
|
*This is a foundational standard that affects all AL development. Proper file naming is the first step toward professional, maintainable Business Central extensions.*
|
|
@@ -5,6 +5,16 @@ difficulty: "intermediate"
|
|
|
5
5
|
bc_versions: "18+"
|
|
6
6
|
tags: ["xml-documentation", "intellisense", "api-documentation", "object-documentation"]
|
|
7
7
|
prerequisites: ["al-objects", "xml-basics"]
|
|
8
|
+
|
|
9
|
+
relevance_signals:
|
|
10
|
+
constructs: ["summary", "param", "returns", "example", "remarks"]
|
|
11
|
+
keywords: ["XML documentation", "IntelliSense", "API documentation", "triple-slash", "documentation comment", "object documentation", "procedure documentation"]
|
|
12
|
+
anti_pattern_indicators: ["minimal documentation", "copy-paste descriptions", "outdated information", "excessive detail", "missing parameter info"]
|
|
13
|
+
positive_pattern_indicators: ["complete coverage", "clear language", "accurate information", "meaningful examples", "version control", "review process"]
|
|
14
|
+
|
|
15
|
+
applicable_object_types: ["codeunit", "table", "page", "report", "query", "xmlport", "enum", "interface"]
|
|
16
|
+
|
|
17
|
+
relevance_threshold: 0.4
|
|
8
18
|
---
|
|
9
19
|
# AL XML Documentation Comment Structure for Objects
|
|
10
20
|
|
|
@@ -1,11 +1,21 @@
|
|
|
1
|
-
---
|
|
1
|
+
---
|
|
2
2
|
title: "Business Central Action Shortcut Key Syntax and Implementation"
|
|
3
3
|
domain: "uma-ux"
|
|
4
4
|
difficulty: "intermediate"
|
|
5
5
|
bc_versions: "14+"
|
|
6
6
|
tags: ["shortcuts", "actions", "user-interface", "accessibility", "keyboard-navigation"]
|
|
7
7
|
prerequisites: ["bc-actions", "page-design"]
|
|
8
|
-
|
|
8
|
+
|
|
9
|
+
relevance_signals:
|
|
10
|
+
constructs: ["ShortcutKey", "ApplicationArea", "Promoted", "PromotedCategory", "ToolTip", "Caption"]
|
|
11
|
+
keywords: ["shortcut key", "keyboard shortcut", "action", "accessibility", "keyboard navigation", "Ctrl", "Alt", "Shift", "F-key", "modifier key"]
|
|
12
|
+
anti_pattern_indicators: ["conflicting assignments", "obscure combinations", "inconsistent patterns", "missing accessibility", "undocumented shortcuts"]
|
|
13
|
+
positive_pattern_indicators: ["intuitive mapping", "standard conventions", "conflict avoidance", "accessibility compliance", "tooltip inclusion"]
|
|
14
|
+
|
|
15
|
+
applicable_object_types: ["page", "pageextension"]
|
|
16
|
+
|
|
17
|
+
relevance_threshold: 0.4
|
|
18
|
+
---
|
|
9
19
|
# Business Central Action Shortcut Key Syntax and Implementation
|
|
10
20
|
|
|
11
21
|
## Overview
|