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.
Files changed (565) hide show
  1. package/LICENSE +20 -20
  2. package/README.md +165 -165
  3. package/dist/config/config-loader.js +6 -6
  4. package/dist/config/config-loader.js.map +1 -1
  5. package/dist/index.d.ts +9 -8
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +93 -211
  8. package/dist/index.js.map +1 -1
  9. package/dist/layers/base-layer.d.ts +6 -6
  10. package/dist/layers/base-layer.d.ts.map +1 -1
  11. package/dist/layers/base-layer.js +15 -15
  12. package/dist/layers/base-layer.js.map +1 -1
  13. package/dist/layers/embedded-layer.d.ts +2 -2
  14. package/dist/layers/embedded-layer.d.ts.map +1 -1
  15. package/dist/layers/embedded-layer.js +59 -43
  16. package/dist/layers/embedded-layer.js.map +1 -1
  17. package/dist/layers/git-layer.d.ts +4 -2
  18. package/dist/layers/git-layer.d.ts.map +1 -1
  19. package/dist/layers/git-layer.js +70 -23
  20. package/dist/layers/git-layer.js.map +1 -1
  21. package/dist/layers/project-layer.d.ts +2 -2
  22. package/dist/layers/project-layer.d.ts.map +1 -1
  23. package/dist/layers/project-layer.js +58 -44
  24. package/dist/layers/project-layer.js.map +1 -1
  25. package/dist/services/code-analysis-service.d.ts +100 -2
  26. package/dist/services/code-analysis-service.d.ts.map +1 -1
  27. package/dist/services/code-analysis-service.js +274 -8
  28. package/dist/services/code-analysis-service.js.map +1 -1
  29. package/dist/services/knowledge-service.d.ts.map +1 -1
  30. package/dist/services/knowledge-service.js.map +1 -1
  31. package/dist/services/methodology-service.d.ts +34 -2
  32. package/dist/services/methodology-service.d.ts.map +1 -1
  33. package/dist/services/methodology-service.js +284 -29
  34. package/dist/services/methodology-service.js.map +1 -1
  35. package/dist/services/multi-content-layer-service.d.ts +5 -0
  36. package/dist/services/multi-content-layer-service.d.ts.map +1 -1
  37. package/dist/services/multi-content-layer-service.js +57 -9
  38. package/dist/services/multi-content-layer-service.js.map +1 -1
  39. package/dist/services/relevance-index-service.d.ts +95 -0
  40. package/dist/services/relevance-index-service.d.ts.map +1 -0
  41. package/dist/services/relevance-index-service.js +321 -0
  42. package/dist/services/relevance-index-service.js.map +1 -0
  43. package/dist/services/specialist-loader.d.ts +1 -0
  44. package/dist/services/specialist-loader.d.ts.map +1 -1
  45. package/dist/services/specialist-loader.js +1 -0
  46. package/dist/services/specialist-loader.js.map +1 -1
  47. package/dist/services/workflow-service.d.ts +12 -0
  48. package/dist/services/workflow-service.d.ts.map +1 -1
  49. package/dist/services/workflow-service.js +30 -0
  50. package/dist/services/workflow-service.js.map +1 -1
  51. package/dist/services/{enhanced-prompt-service.d.ts → workflow-specialist-router.d.ts} +41 -4
  52. package/dist/services/workflow-specialist-router.d.ts.map +1 -0
  53. package/dist/services/{enhanced-prompt-service.js → workflow-specialist-router.js} +150 -24
  54. package/dist/services/workflow-specialist-router.js.map +1 -0
  55. package/dist/services/workflow-v2/index.d.ts +6 -0
  56. package/dist/services/workflow-v2/index.d.ts.map +1 -0
  57. package/dist/services/workflow-v2/index.js +6 -0
  58. package/dist/services/workflow-v2/index.js.map +1 -0
  59. package/dist/services/workflow-v2/workflow-definitions.d.ts +53 -0
  60. package/dist/services/workflow-v2/workflow-definitions.d.ts.map +1 -0
  61. package/dist/services/workflow-v2/workflow-definitions.js +722 -0
  62. package/dist/services/workflow-v2/workflow-definitions.js.map +1 -0
  63. package/dist/services/workflow-v2/workflow-session-manager.d.ts +140 -0
  64. package/dist/services/workflow-v2/workflow-session-manager.d.ts.map +1 -0
  65. package/dist/services/workflow-v2/workflow-session-manager.js +820 -0
  66. package/dist/services/workflow-v2/workflow-session-manager.js.map +1 -0
  67. package/dist/tools/{workspace-tools.d.ts → _shared/workspace-constants.d.ts} +4 -51
  68. package/dist/tools/_shared/workspace-constants.d.ts.map +1 -0
  69. package/dist/tools/_shared/workspace-constants.js +53 -0
  70. package/dist/tools/_shared/workspace-constants.js.map +1 -0
  71. package/dist/tools/analyze_al_code/handler.d.ts +12 -0
  72. package/dist/tools/analyze_al_code/handler.d.ts.map +1 -0
  73. package/dist/tools/analyze_al_code/handler.js +312 -0
  74. package/dist/tools/analyze_al_code/handler.js.map +1 -0
  75. package/dist/tools/analyze_al_code/schema.d.ts +8 -0
  76. package/dist/tools/analyze_al_code/schema.d.ts.map +1 -0
  77. package/dist/tools/analyze_al_code/schema.js +54 -0
  78. package/dist/tools/analyze_al_code/schema.js.map +1 -0
  79. package/dist/tools/ask_bc_expert/handler.d.ts +21 -0
  80. package/dist/tools/ask_bc_expert/handler.d.ts.map +1 -0
  81. package/dist/tools/ask_bc_expert/handler.js +118 -0
  82. package/dist/tools/ask_bc_expert/handler.js.map +1 -0
  83. package/dist/tools/ask_bc_expert/schema.d.ts +8 -0
  84. package/dist/tools/ask_bc_expert/schema.d.ts.map +1 -0
  85. package/dist/tools/ask_bc_expert/schema.js +33 -0
  86. package/dist/tools/ask_bc_expert/schema.js.map +1 -0
  87. package/dist/tools/create_layer_content/handler.d.ts +17 -0
  88. package/dist/tools/create_layer_content/handler.d.ts.map +1 -0
  89. package/dist/tools/create_layer_content/handler.js +248 -0
  90. package/dist/tools/create_layer_content/handler.js.map +1 -0
  91. package/dist/tools/create_layer_content/schema.d.ts +9 -0
  92. package/dist/tools/create_layer_content/schema.d.ts.map +1 -0
  93. package/dist/tools/create_layer_content/schema.js +42 -0
  94. package/dist/tools/create_layer_content/schema.js.map +1 -0
  95. package/dist/tools/debug/diagnose_git_layer/handler.d.ts +6 -0
  96. package/dist/tools/debug/diagnose_git_layer/handler.d.ts.map +1 -0
  97. package/dist/tools/debug/diagnose_git_layer/handler.js +286 -0
  98. package/dist/tools/debug/diagnose_git_layer/handler.js.map +1 -0
  99. package/dist/tools/debug/diagnose_git_layer/schema.d.ts +6 -0
  100. package/dist/tools/debug/diagnose_git_layer/schema.d.ts.map +1 -0
  101. package/dist/tools/debug/diagnose_git_layer/schema.js +35 -0
  102. package/dist/tools/debug/diagnose_git_layer/schema.js.map +1 -0
  103. package/dist/tools/debug/diagnose_local_layer/handler.d.ts +6 -0
  104. package/dist/tools/debug/diagnose_local_layer/handler.d.ts.map +1 -0
  105. package/dist/tools/debug/diagnose_local_layer/handler.js +285 -0
  106. package/dist/tools/debug/diagnose_local_layer/handler.js.map +1 -0
  107. package/dist/tools/debug/diagnose_local_layer/schema.d.ts +6 -0
  108. package/dist/tools/debug/diagnose_local_layer/schema.d.ts.map +1 -0
  109. package/dist/tools/debug/diagnose_local_layer/schema.js +16 -0
  110. package/dist/tools/debug/diagnose_local_layer/schema.js.map +1 -0
  111. package/dist/tools/debug/get_layer_diagnostics/handler.d.ts +7 -0
  112. package/dist/tools/debug/get_layer_diagnostics/handler.d.ts.map +1 -0
  113. package/dist/tools/debug/get_layer_diagnostics/handler.js +46 -0
  114. package/dist/tools/debug/get_layer_diagnostics/handler.js.map +1 -0
  115. package/dist/tools/debug/get_layer_diagnostics/schema.d.ts +6 -0
  116. package/dist/tools/debug/get_layer_diagnostics/schema.d.ts.map +1 -0
  117. package/dist/tools/debug/get_layer_diagnostics/schema.js +20 -0
  118. package/dist/tools/debug/get_layer_diagnostics/schema.js.map +1 -0
  119. package/dist/tools/debug/reload_layers/handler.d.ts +8 -0
  120. package/dist/tools/debug/reload_layers/handler.d.ts.map +1 -0
  121. package/dist/tools/debug/reload_layers/handler.js +83 -0
  122. package/dist/tools/debug/reload_layers/handler.js.map +1 -0
  123. package/dist/tools/debug/reload_layers/schema.d.ts +6 -0
  124. package/dist/tools/debug/reload_layers/schema.d.ts.map +1 -0
  125. package/dist/tools/debug/reload_layers/schema.js +20 -0
  126. package/dist/tools/debug/reload_layers/schema.js.map +1 -0
  127. package/dist/tools/debug/test_azure_devops_pat/handler.d.ts +6 -0
  128. package/dist/tools/debug/test_azure_devops_pat/handler.d.ts.map +1 -0
  129. package/dist/tools/debug/test_azure_devops_pat/handler.js +16 -0
  130. package/dist/tools/debug/test_azure_devops_pat/handler.js.map +1 -0
  131. package/dist/tools/debug/test_azure_devops_pat/schema.d.ts +6 -0
  132. package/dist/tools/debug/test_azure_devops_pat/schema.d.ts.map +1 -0
  133. package/dist/tools/debug/test_azure_devops_pat/schema.js +27 -0
  134. package/dist/tools/debug/test_azure_devops_pat/schema.js.map +1 -0
  135. package/dist/tools/debug/validate_layer_config/handler.d.ts +6 -0
  136. package/dist/tools/debug/validate_layer_config/handler.d.ts.map +1 -0
  137. package/dist/tools/debug/validate_layer_config/handler.js +17 -0
  138. package/dist/tools/debug/validate_layer_config/handler.js.map +1 -0
  139. package/dist/tools/debug/validate_layer_config/schema.d.ts +6 -0
  140. package/dist/tools/debug/validate_layer_config/schema.d.ts.map +1 -0
  141. package/dist/tools/debug/validate_layer_config/schema.js +21 -0
  142. package/dist/tools/debug/validate_layer_config/schema.js.map +1 -0
  143. package/dist/tools/find_bc_knowledge/handler.d.ts +21 -0
  144. package/dist/tools/find_bc_knowledge/handler.d.ts.map +1 -0
  145. package/dist/tools/find_bc_knowledge/handler.js +71 -0
  146. package/dist/tools/find_bc_knowledge/handler.js.map +1 -0
  147. package/dist/tools/find_bc_knowledge/schema.d.ts +8 -0
  148. package/dist/tools/find_bc_knowledge/schema.d.ts.map +1 -0
  149. package/dist/tools/find_bc_knowledge/schema.js +35 -0
  150. package/dist/tools/find_bc_knowledge/schema.js.map +1 -0
  151. package/dist/tools/get_bc_topic/handler.d.ts +12 -0
  152. package/dist/tools/get_bc_topic/handler.d.ts.map +1 -0
  153. package/dist/tools/get_bc_topic/handler.js +35 -0
  154. package/dist/tools/get_bc_topic/handler.js.map +1 -0
  155. package/dist/tools/get_bc_topic/schema.d.ts +8 -0
  156. package/dist/tools/get_bc_topic/schema.d.ts.map +1 -0
  157. package/dist/tools/get_bc_topic/schema.js +29 -0
  158. package/dist/tools/get_bc_topic/schema.js.map +1 -0
  159. package/dist/tools/get_codelens_mappings/handler.d.ts +8 -0
  160. package/dist/tools/get_codelens_mappings/handler.d.ts.map +1 -0
  161. package/dist/tools/get_codelens_mappings/handler.js +79 -0
  162. package/dist/tools/get_codelens_mappings/handler.js.map +1 -0
  163. package/dist/tools/get_codelens_mappings/schema.d.ts +9 -0
  164. package/dist/tools/get_codelens_mappings/schema.d.ts.map +1 -0
  165. package/dist/tools/get_codelens_mappings/schema.js +16 -0
  166. package/dist/tools/get_codelens_mappings/schema.js.map +1 -0
  167. package/dist/tools/get_workspace_info/handler.d.ts +16 -0
  168. package/dist/tools/get_workspace_info/handler.d.ts.map +1 -0
  169. package/dist/tools/get_workspace_info/handler.js +36 -0
  170. package/dist/tools/get_workspace_info/handler.js.map +1 -0
  171. package/dist/tools/get_workspace_info/schema.d.ts +8 -0
  172. package/dist/tools/get_workspace_info/schema.d.ts.map +1 -0
  173. package/dist/tools/get_workspace_info/schema.js +15 -0
  174. package/dist/tools/get_workspace_info/schema.js.map +1 -0
  175. package/dist/tools/handlers.d.ts +48 -0
  176. package/dist/tools/handlers.d.ts.map +1 -0
  177. package/dist/tools/handlers.js +81 -0
  178. package/dist/tools/handlers.js.map +1 -0
  179. package/dist/tools/index.d.ts +132 -38
  180. package/dist/tools/index.d.ts.map +1 -1
  181. package/dist/tools/index.js +184 -52
  182. package/dist/tools/index.js.map +1 -1
  183. package/dist/tools/list_prompts/handler.d.ts +11 -0
  184. package/dist/tools/list_prompts/handler.d.ts.map +1 -0
  185. package/dist/tools/list_prompts/handler.js +102 -0
  186. package/dist/tools/list_prompts/handler.js.map +1 -0
  187. package/dist/tools/list_prompts/schema.d.ts +9 -0
  188. package/dist/tools/list_prompts/schema.d.ts.map +1 -0
  189. package/dist/tools/list_prompts/schema.js +28 -0
  190. package/dist/tools/list_prompts/schema.js.map +1 -0
  191. package/dist/tools/list_specialists/handler.d.ts +12 -0
  192. package/dist/tools/list_specialists/handler.d.ts.map +1 -0
  193. package/dist/tools/list_specialists/handler.js +68 -0
  194. package/dist/tools/list_specialists/handler.js.map +1 -0
  195. package/dist/tools/list_specialists/schema.d.ts +8 -0
  196. package/dist/tools/list_specialists/schema.d.ts.map +1 -0
  197. package/dist/tools/list_specialists/schema.js +24 -0
  198. package/dist/tools/list_specialists/schema.js.map +1 -0
  199. package/dist/tools/scaffold_layer_repo/handler.d.ts +15 -0
  200. package/dist/tools/scaffold_layer_repo/handler.d.ts.map +1 -0
  201. package/dist/tools/scaffold_layer_repo/handler.js +410 -0
  202. package/dist/tools/scaffold_layer_repo/handler.js.map +1 -0
  203. package/dist/tools/scaffold_layer_repo/schema.d.ts +9 -0
  204. package/dist/tools/scaffold_layer_repo/schema.d.ts.map +1 -0
  205. package/dist/tools/scaffold_layer_repo/schema.js +35 -0
  206. package/dist/tools/scaffold_layer_repo/schema.js.map +1 -0
  207. package/dist/tools/set_workspace_info/handler.d.ts +22 -0
  208. package/dist/tools/set_workspace_info/handler.d.ts.map +1 -0
  209. package/dist/tools/set_workspace_info/handler.js +60 -0
  210. package/dist/tools/set_workspace_info/handler.js.map +1 -0
  211. package/dist/tools/set_workspace_info/schema.d.ts +8 -0
  212. package/dist/tools/set_workspace_info/schema.d.ts.map +1 -0
  213. package/dist/tools/set_workspace_info/schema.js +25 -0
  214. package/dist/tools/set_workspace_info/schema.js.map +1 -0
  215. package/dist/tools/validate_layer_repo/handler.d.ts +10 -0
  216. package/dist/tools/validate_layer_repo/handler.d.ts.map +1 -0
  217. package/dist/tools/validate_layer_repo/handler.js +148 -0
  218. package/dist/tools/validate_layer_repo/handler.js.map +1 -0
  219. package/dist/tools/validate_layer_repo/schema.d.ts +9 -0
  220. package/dist/tools/validate_layer_repo/schema.d.ts.map +1 -0
  221. package/dist/tools/validate_layer_repo/schema.js +21 -0
  222. package/dist/tools/validate_layer_repo/schema.js.map +1 -0
  223. package/dist/tools/workflow_batch/handler.d.ts +21 -0
  224. package/dist/tools/workflow_batch/handler.d.ts.map +1 -0
  225. package/dist/tools/workflow_batch/handler.js +304 -0
  226. package/dist/tools/workflow_batch/handler.js.map +1 -0
  227. package/dist/tools/workflow_batch/schema.d.ts +8 -0
  228. package/dist/tools/workflow_batch/schema.d.ts.map +1 -0
  229. package/dist/tools/workflow_batch/schema.js +76 -0
  230. package/dist/tools/workflow_batch/schema.js.map +1 -0
  231. package/dist/tools/workflow_cancel/handler.d.ts +21 -0
  232. package/dist/tools/workflow_cancel/handler.d.ts.map +1 -0
  233. package/dist/tools/workflow_cancel/handler.js +157 -0
  234. package/dist/tools/workflow_cancel/handler.js.map +1 -0
  235. package/dist/tools/workflow_cancel/schema.d.ts +8 -0
  236. package/dist/tools/workflow_cancel/schema.d.ts.map +1 -0
  237. package/dist/tools/workflow_cancel/schema.js +34 -0
  238. package/dist/tools/workflow_cancel/schema.js.map +1 -0
  239. package/dist/tools/workflow_complete/handler.d.ts +21 -0
  240. package/dist/tools/workflow_complete/handler.d.ts.map +1 -0
  241. package/dist/tools/workflow_complete/handler.js +124 -0
  242. package/dist/tools/workflow_complete/handler.js.map +1 -0
  243. package/dist/tools/workflow_complete/schema.d.ts +8 -0
  244. package/dist/tools/workflow_complete/schema.d.ts.map +1 -0
  245. package/dist/tools/workflow_complete/schema.js +45 -0
  246. package/dist/tools/workflow_complete/schema.js.map +1 -0
  247. package/dist/tools/workflow_list/handler.d.ts +19 -0
  248. package/dist/tools/workflow_list/handler.d.ts.map +1 -0
  249. package/dist/tools/workflow_list/handler.js +58 -0
  250. package/dist/tools/workflow_list/handler.js.map +1 -0
  251. package/dist/tools/workflow_list/schema.d.ts +8 -0
  252. package/dist/tools/workflow_list/schema.d.ts.map +1 -0
  253. package/dist/tools/workflow_list/schema.js +26 -0
  254. package/dist/tools/workflow_list/schema.js.map +1 -0
  255. package/dist/tools/workflow_next/handler.d.ts +21 -0
  256. package/dist/tools/workflow_next/handler.d.ts.map +1 -0
  257. package/dist/tools/workflow_next/handler.js +90 -0
  258. package/dist/tools/workflow_next/handler.js.map +1 -0
  259. package/dist/tools/workflow_next/schema.d.ts +8 -0
  260. package/dist/tools/workflow_next/schema.d.ts.map +1 -0
  261. package/dist/tools/workflow_next/schema.js +28 -0
  262. package/dist/tools/workflow_next/schema.js.map +1 -0
  263. package/dist/tools/workflow_progress/handler.d.ts +21 -0
  264. package/dist/tools/workflow_progress/handler.d.ts.map +1 -0
  265. package/dist/tools/workflow_progress/handler.js +147 -0
  266. package/dist/tools/workflow_progress/handler.js.map +1 -0
  267. package/dist/tools/workflow_progress/schema.d.ts +8 -0
  268. package/dist/tools/workflow_progress/schema.d.ts.map +1 -0
  269. package/dist/tools/workflow_progress/schema.js +111 -0
  270. package/dist/tools/workflow_progress/schema.js.map +1 -0
  271. package/dist/tools/workflow_start/handler.d.ts +21 -0
  272. package/dist/tools/workflow_start/handler.d.ts.map +1 -0
  273. package/dist/tools/workflow_start/handler.js +133 -0
  274. package/dist/tools/workflow_start/handler.js.map +1 -0
  275. package/dist/tools/workflow_start/schema.d.ts +8 -0
  276. package/dist/tools/workflow_start/schema.d.ts.map +1 -0
  277. package/dist/tools/workflow_start/schema.js +102 -0
  278. package/dist/tools/workflow_start/schema.js.map +1 -0
  279. package/dist/tools/workflow_status/handler.d.ts +21 -0
  280. package/dist/tools/workflow_status/handler.d.ts.map +1 -0
  281. package/dist/tools/workflow_status/handler.js +107 -0
  282. package/dist/tools/workflow_status/handler.js.map +1 -0
  283. package/dist/tools/workflow_status/schema.d.ts +8 -0
  284. package/dist/tools/workflow_status/schema.d.ts.map +1 -0
  285. package/dist/tools/workflow_status/schema.js +33 -0
  286. package/dist/tools/workflow_status/schema.js.map +1 -0
  287. package/dist/types/bc-knowledge.d.ts +64 -13
  288. package/dist/types/bc-knowledge.d.ts.map +1 -1
  289. package/dist/types/bc-knowledge.js +15 -0
  290. package/dist/types/bc-knowledge.js.map +1 -1
  291. package/dist/types/enhanced-layer-types.d.ts +3 -3
  292. package/dist/types/enhanced-layer-types.d.ts.map +1 -1
  293. package/dist/types/workflow-v2-types.d.ts +577 -0
  294. package/dist/types/workflow-v2-types.d.ts.map +1 -0
  295. package/dist/types/workflow-v2-types.js +10 -0
  296. package/dist/types/workflow-v2-types.js.map +1 -0
  297. package/embedded-knowledge/.github/ISSUE_TEMPLATE/bug-report.md +23 -23
  298. package/embedded-knowledge/.github/ISSUE_TEMPLATE/content-improvement.md +23 -23
  299. package/embedded-knowledge/.github/ISSUE_TEMPLATE/knowledge-request.md +29 -29
  300. package/embedded-knowledge/AGENTS.md +177 -177
  301. package/embedded-knowledge/CONTRIBUTING.md +57 -57
  302. package/embedded-knowledge/LICENSE +20 -20
  303. package/embedded-knowledge/README.md +31 -31
  304. package/embedded-knowledge/codelens-mappings.yaml +111 -0
  305. package/embedded-knowledge/domains/alex-architect/api-delegate-operation-pattern.md +10 -0
  306. package/embedded-knowledge/domains/alex-architect/api-fieldset-registration-pattern.md +10 -0
  307. package/embedded-knowledge/domains/alex-architect/api-interface-design-patterns.md +10 -0
  308. package/embedded-knowledge/domains/alex-architect/api-page-development-patterns.md +10 -0
  309. package/embedded-knowledge/domains/alex-architect/complex-facade-patterns.md +10 -0
  310. package/embedded-knowledge/domains/alex-architect/delegating-to-github-copilot-agents.md +10 -0
  311. package/embedded-knowledge/domains/alex-architect/facade-pattern-al-implementation.md +10 -0
  312. package/embedded-knowledge/domains/alex-architect/facade-pattern-external-api.md +10 -0
  313. package/embedded-knowledge/domains/alex-architect/object-id-ninja-integration.md +10 -0
  314. package/embedded-knowledge/domains/alex-architect/recommend-object-id-ninja.md +10 -0
  315. package/embedded-knowledge/domains/alex-architect/subscriber-codeunit-size-optimization.md +12 -2
  316. package/embedded-knowledge/domains/alex-architect/systemid-integration.md +12 -2
  317. package/embedded-knowledge/domains/alex-architect/testability-design-patterns.md +10 -0
  318. package/embedded-knowledge/domains/casey-copilot/long-running-session-instructions.md +10 -0
  319. package/embedded-knowledge/domains/chris-config/configuration-file-discovery.md +10 -0
  320. package/embedded-knowledge/domains/chris-config/configuration-file-formats.md +10 -0
  321. package/embedded-knowledge/domains/chris-config/content-types-structure.md +10 -0
  322. package/embedded-knowledge/domains/chris-config/knowledge-content-creation.md +10 -0
  323. package/embedded-knowledge/domains/chris-config/layer-system-fundamentals.md +10 -0
  324. package/embedded-knowledge/domains/chris-config/multi-team-layer-configuration.md +10 -0
  325. package/embedded-knowledge/domains/chris-config/workspace-detection-solutions.md +10 -0
  326. package/embedded-knowledge/domains/dean-debug/bc-telemetry-buddy-integration.md +10 -0
  327. package/embedded-knowledge/domains/dean-debug/bc24-no-series-conversion-guide.md +10 -0
  328. package/embedded-knowledge/domains/dean-debug/case-statement-performance-best-practices.md +12 -2
  329. package/embedded-knowledge/domains/dean-debug/compound-statements-debugging.md +12 -2
  330. package/embedded-knowledge/domains/dean-debug/custom-dimensions-best-practices.md +12 -2
  331. package/embedded-knowledge/domains/dean-debug/custom-telemetry-implementation.md +10 -0
  332. package/embedded-knowledge/domains/dean-debug/deleteall-performance-tradeoff.md +12 -2
  333. package/embedded-knowledge/domains/dean-debug/deleteall-sql-performance.md +10 -0
  334. package/embedded-knowledge/domains/dean-debug/extension-telemetry-isolation.md +12 -2
  335. package/embedded-knowledge/domains/dean-debug/maintainsiftindex-property-behavior.md +10 -0
  336. package/embedded-knowledge/domains/dean-debug/no-series-implementation-patterns.md +10 -0
  337. package/embedded-knowledge/domains/dean-debug/no-series-module-patterns-bc24.md +10 -0
  338. package/embedded-knowledge/domains/dean-debug/no-series-validation-module-bc24.md +10 -0
  339. package/embedded-knowledge/domains/dean-debug/no-series-validation-patterns.md +10 -0
  340. package/embedded-knowledge/domains/dean-debug/odata-query-optimization.md +12 -2
  341. package/embedded-knowledge/domains/dean-debug/recommend-bc-telemetry-buddy.md +10 -0
  342. package/embedded-knowledge/domains/dean-debug/session-logmessage-methods.md +12 -2
  343. package/embedded-knowledge/domains/dean-debug/setloadfields-filter-field-exclusion.md +12 -2
  344. package/embedded-knowledge/domains/dean-debug/setloadfields-performance-impact.md +10 -0
  345. package/embedded-knowledge/domains/dean-debug/setloadfields-performance-optimization.md +10 -0
  346. package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-case-statements.md +12 -2
  347. package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-filters.md +12 -2
  348. package/embedded-knowledge/domains/dean-debug/setloadfields-primary-key-optimization.md +12 -2
  349. package/embedded-knowledge/domains/dean-debug/sift-technology-fundamentals.md +10 -0
  350. package/embedded-knowledge/domains/dean-debug/subscriber-singleinstance-performance.md +12 -2
  351. package/embedded-knowledge/domains/dean-debug/table-event-batch-operation-impact.md +12 -2
  352. package/embedded-knowledge/domains/dean-debug/table-key-requirements.md +12 -2
  353. package/embedded-knowledge/domains/dean-debug/telemetry-error-correlation.md +12 -2
  354. package/embedded-knowledge/domains/dean-debug/telemetry-performance-considerations.md +12 -2
  355. package/embedded-knowledge/domains/dean-debug/telemetry-verbosity-strategy.md +12 -2
  356. package/embedded-knowledge/domains/dean-debug/testfield-performance.md +12 -2
  357. package/embedded-knowledge/domains/eva-errors/codeunit-run-pattern.md +10 -0
  358. package/embedded-knowledge/domains/eva-errors/fielderror-default-messages.md +12 -2
  359. package/embedded-knowledge/domains/eva-errors/fielderror-message-construction.md +12 -2
  360. package/embedded-knowledge/domains/eva-errors/fielderror-method-syntax.md +12 -2
  361. package/embedded-knowledge/domains/eva-errors/testfield-error-handling.md +12 -2
  362. package/embedded-knowledge/domains/eva-errors/try-function-usage.md +10 -0
  363. package/embedded-knowledge/domains/jordan-bridge/al-event-subscriber-architecture.md +10 -0
  364. package/embedded-knowledge/domains/jordan-bridge/automatic-registration.md +12 -2
  365. package/embedded-knowledge/domains/jordan-bridge/business-process-template-patterns.md +10 -0
  366. package/embedded-knowledge/domains/jordan-bridge/error-response-patterns.md +12 -2
  367. package/embedded-knowledge/domains/jordan-bridge/etag-implementation.md +12 -2
  368. package/embedded-knowledge/domains/jordan-bridge/field-control-selection.md +12 -2
  369. package/embedded-knowledge/domains/jordan-bridge/task-scheduler-pattern-implementation.md +10 -0
  370. package/embedded-knowledge/domains/jordan-bridge/url-structure-naming-patterns.md +12 -2
  371. package/embedded-knowledge/domains/maya-mentor/case-multiple-conditions-ranges.md +12 -2
  372. package/embedded-knowledge/domains/maya-mentor/case-statement-syntax-structure.md +12 -2
  373. package/embedded-knowledge/domains/maya-mentor/fielderror-syntax-usage.md +12 -2
  374. package/embedded-knowledge/domains/maya-mentor/fielderror-vs-testfield.md +12 -2
  375. package/embedded-knowledge/domains/maya-mentor/testfield-basic-syntax.md +12 -2
  376. package/embedded-knowledge/domains/morgan-market/partner-readiness-analysis.md +10 -0
  377. package/embedded-knowledge/domains/parker-pragmatic/proposal-workflows/creating-effective-proposals.md +10 -0
  378. package/embedded-knowledge/domains/parker-pragmatic/trust-building/working-with-ai-skeptics.md +10 -0
  379. package/embedded-knowledge/domains/quinn-tester/fielderror-validation-patterns.md +12 -2
  380. package/embedded-knowledge/domains/quinn-tester/isolation-testing-patterns.md +10 -0
  381. package/embedded-knowledge/domains/quinn-tester/rule-execution.md +12 -2
  382. package/embedded-knowledge/domains/quinn-tester/table-safety-validation-patterns.md +12 -2
  383. package/embedded-knowledge/domains/quinn-tester/temporary-table-operation-validation.md +12 -2
  384. package/embedded-knowledge/domains/roger-reviewer/al-begin-end-block-structure.md +10 -0
  385. package/embedded-knowledge/domains/roger-reviewer/al-binary-operator-spacing.md +10 -0
  386. package/embedded-knowledge/domains/roger-reviewer/al-blank-line-organization.md +10 -0
  387. package/embedded-knowledge/domains/roger-reviewer/al-case-action-formatting.md +10 -0
  388. package/embedded-knowledge/domains/roger-reviewer/al-code-spacing-conventions.md +12 -2
  389. package/embedded-knowledge/domains/roger-reviewer/al-comment-spacing-standards.md +10 -0
  390. package/embedded-knowledge/domains/roger-reviewer/al-end-else-pairing.md +10 -0
  391. package/embedded-knowledge/domains/roger-reviewer/al-keyword-indentation-rules.md +10 -0
  392. package/embedded-knowledge/domains/roger-reviewer/al-line-start-keyword-positioning.md +10 -0
  393. package/embedded-knowledge/domains/roger-reviewer/al-separate-if-else-formatting.md +10 -0
  394. package/embedded-knowledge/domains/roger-reviewer/al-standard-abbreviations.md +10 -0
  395. package/embedded-knowledge/domains/roger-reviewer/al-statement-per-line-rule.md +10 -0
  396. package/embedded-knowledge/domains/roger-reviewer/al-unnecessary-else-elimination.md +10 -0
  397. package/embedded-knowledge/domains/roger-reviewer/al-variable-declaration-order.md +10 -0
  398. package/embedded-knowledge/domains/roger-reviewer/al-variable-naming-conventions.md +10 -0
  399. package/embedded-knowledge/domains/roger-reviewer/begin-block-statement-clarity.md +10 -0
  400. package/embedded-knowledge/domains/roger-reviewer/begin-end-positioning-patterns.md +10 -0
  401. package/embedded-knowledge/domains/roger-reviewer/binary-operator-line-positioning.md +12 -2
  402. package/embedded-knowledge/domains/roger-reviewer/boolean-expression-simplification-al.md +10 -0
  403. package/embedded-knowledge/domains/roger-reviewer/case-statement-error-handling-troubleshooting.md +12 -2
  404. package/embedded-knowledge/domains/roger-reviewer/compound-statement-readability.md +12 -2
  405. package/embedded-knowledge/domains/roger-reviewer/lonely-repeat-statement-pattern.md +10 -0
  406. package/embedded-knowledge/domains/roger-reviewer/testability-code-smells.md +10 -0
  407. package/embedded-knowledge/domains/sam-coder/al-formatting-consistency-patterns.md +10 -0
  408. package/embedded-knowledge/domains/sam-coder/al-line-comment-formatting.md +12 -2
  409. package/embedded-knowledge/domains/sam-coder/al-lonely-repeat-pattern.md +10 -0
  410. package/embedded-knowledge/domains/sam-coder/al-named-parameter-pattern.md +10 -0
  411. package/embedded-knowledge/domains/sam-coder/al-object-navigation-shortcuts.md +10 -0
  412. package/embedded-knowledge/domains/sam-coder/al-readability-optimization.md +10 -0
  413. package/embedded-knowledge/domains/sam-coder/al-record-find-early-exit.md +10 -0
  414. package/embedded-knowledge/domains/sam-coder/command-queue-pattern-al.md +10 -0
  415. package/embedded-knowledge/domains/sam-coder/deleteall-alternative-implementation.md +12 -2
  416. package/embedded-knowledge/domains/sam-coder/deleteall-method-usage.md +10 -0
  417. package/embedded-knowledge/domains/sam-coder/deleteall-trigger-execution.md +10 -0
  418. package/embedded-knowledge/domains/sam-coder/event-bridge-pattern-al.md +10 -0
  419. package/embedded-knowledge/domains/sam-coder/event-payload-design-patterns.md +10 -0
  420. package/embedded-knowledge/domains/sam-coder/generic-method-patterns-al.md +10 -0
  421. package/embedded-knowledge/domains/sam-coder/manual-binding-conditional-subscribers.md +10 -0
  422. package/embedded-knowledge/domains/sam-coder/nested-compound-best-practices.md +10 -0
  423. package/embedded-knowledge/domains/sam-coder/single-to-compound-conversion.md +12 -2
  424. package/embedded-knowledge/domains/sam-coder/template-method-pattern-al.md +10 -0
  425. package/embedded-knowledge/domains/sam-coder/testfield-patterns.md +12 -2
  426. package/embedded-knowledge/domains/sam-coder/type-safe-operations-al.md +10 -0
  427. package/embedded-knowledge/domains/sam-coder/vs-code-al-keyboard-shortcuts.md +10 -0
  428. package/embedded-knowledge/domains/seth-security/al-temporary-table-safety.md +10 -0
  429. package/embedded-knowledge/domains/seth-security/api-permission-model.md +12 -2
  430. package/embedded-knowledge/domains/seth-security/istemporary-safeguard-pattern.md +12 -2
  431. package/embedded-knowledge/domains/shared/al-file-naming-conventions.md +155 -145
  432. package/embedded-knowledge/domains/taylor-docs/al-xml-documentation-structure.md +10 -0
  433. package/embedded-knowledge/domains/uma-ux/bc-action-shortcuts-syntax.md +12 -2
  434. package/embedded-knowledge/domains/uma-ux/shortcut-key-user-experience-design.md +12 -2
  435. package/embedded-knowledge/scripts/frontmatter_validator.ps1 +330 -0
  436. package/embedded-knowledge/specialists/sam-coder.md +29 -20
  437. package/embedded-knowledge/workflows/bc-version-upgrade.yaml +160 -0
  438. package/embedded-knowledge/workflows/code-review.yaml +148 -0
  439. package/embedded-knowledge/workflows/error-to-errorinfo-migration.yaml +137 -0
  440. package/embedded-knowledge/workflows/onboarding.yaml +124 -0
  441. package/embedded-knowledge/workflows/performance-audit.yaml +148 -0
  442. package/embedded-knowledge/workflows/proposal-review.yaml +117 -0
  443. package/embedded-knowledge/workflows/security-audit.yaml +139 -0
  444. package/package.json +83 -81
  445. package/dist/cache/cache-manager.d.ts +0 -95
  446. package/dist/cache/cache-manager.d.ts.map +0 -1
  447. package/dist/cache/cache-manager.js +0 -328
  448. package/dist/cache/cache-manager.js.map +0 -1
  449. package/dist/cli/bc-code-intel-cli.d.ts +0 -9
  450. package/dist/cli/bc-code-intel-cli.d.ts.map +0 -1
  451. package/dist/cli/bc-code-intel-cli.js +0 -440
  452. package/dist/cli/bc-code-intel-cli.js.map +0 -1
  453. package/dist/config/test-config-loader.d.ts +0 -10
  454. package/dist/config/test-config-loader.d.ts.map +0 -1
  455. package/dist/config/test-config-loader.js +0 -135
  456. package/dist/config/test-config-loader.js.map +0 -1
  457. package/dist/config/test-enhanced-layer-service.d.ts +0 -7
  458. package/dist/config/test-enhanced-layer-service.d.ts.map +0 -1
  459. package/dist/config/test-enhanced-layer-service.js +0 -104
  460. package/dist/config/test-enhanced-layer-service.js.map +0 -1
  461. package/dist/config/test-git-layer.d.ts +0 -7
  462. package/dist/config/test-git-layer.d.ts.map +0 -1
  463. package/dist/config/test-git-layer.js +0 -68
  464. package/dist/config/test-git-layer.js.map +0 -1
  465. package/dist/dev/hot-reload.d.ts +0 -91
  466. package/dist/dev/hot-reload.d.ts.map +0 -1
  467. package/dist/dev/hot-reload.js +0 -358
  468. package/dist/dev/hot-reload.js.map +0 -1
  469. package/dist/layers/layer-service.d.ts +0 -135
  470. package/dist/layers/layer-service.d.ts.map +0 -1
  471. package/dist/layers/layer-service.js +0 -586
  472. package/dist/layers/layer-service.js.map +0 -1
  473. package/dist/monitoring/production-monitor.d.ts +0 -148
  474. package/dist/monitoring/production-monitor.d.ts.map +0 -1
  475. package/dist/monitoring/production-monitor.js +0 -463
  476. package/dist/monitoring/production-monitor.js.map +0 -1
  477. package/dist/performance/performance-monitor.d.ts +0 -99
  478. package/dist/performance/performance-monitor.d.ts.map +0 -1
  479. package/dist/performance/performance-monitor.js +0 -253
  480. package/dist/performance/performance-monitor.js.map +0 -1
  481. package/dist/sdk/bc-code-intel-client.d.ts +0 -175
  482. package/dist/sdk/bc-code-intel-client.d.ts.map +0 -1
  483. package/dist/sdk/bc-code-intel-client.js +0 -380
  484. package/dist/sdk/bc-code-intel-client.js.map +0 -1
  485. package/dist/search/intelligent-search.d.ts +0 -97
  486. package/dist/search/intelligent-search.d.ts.map +0 -1
  487. package/dist/search/intelligent-search.js +0 -358
  488. package/dist/search/intelligent-search.js.map +0 -1
  489. package/dist/security/access-control.d.ts +0 -110
  490. package/dist/security/access-control.d.ts.map +0 -1
  491. package/dist/security/access-control.js +0 -353
  492. package/dist/security/access-control.js.map +0 -1
  493. package/dist/services/enhanced-prompt-service.d.ts.map +0 -1
  494. package/dist/services/enhanced-prompt-service.js.map +0 -1
  495. package/dist/services/roleplay-engine.d.ts +0 -161
  496. package/dist/services/roleplay-engine.d.ts.map +0 -1
  497. package/dist/services/roleplay-engine.js +0 -994
  498. package/dist/services/roleplay-engine.js.map +0 -1
  499. package/dist/setup/post-install.d.ts +0 -12
  500. package/dist/setup/post-install.d.ts.map +0 -1
  501. package/dist/setup/post-install.js +0 -81
  502. package/dist/setup/post-install.js.map +0 -1
  503. package/dist/streamlined-handlers.d.ts +0 -87
  504. package/dist/streamlined-handlers.d.ts.map +0 -1
  505. package/dist/streamlined-handlers.js +0 -685
  506. package/dist/streamlined-handlers.js.map +0 -1
  507. package/dist/test-enhanced-mcp-server.d.ts +0 -7
  508. package/dist/test-enhanced-mcp-server.d.ts.map +0 -1
  509. package/dist/test-enhanced-mcp-server.js +0 -177
  510. package/dist/test-enhanced-mcp-server.js.map +0 -1
  511. package/dist/tools/config-diagnostic-tools.d.ts +0 -234
  512. package/dist/tools/config-diagnostic-tools.d.ts.map +0 -1
  513. package/dist/tools/config-diagnostic-tools.js +0 -887
  514. package/dist/tools/config-diagnostic-tools.js.map +0 -1
  515. package/dist/tools/core-tools.d.ts +0 -26
  516. package/dist/tools/core-tools.d.ts.map +0 -1
  517. package/dist/tools/core-tools.js +0 -245
  518. package/dist/tools/core-tools.js.map +0 -1
  519. package/dist/tools/handoff-tools.d.ts +0 -37
  520. package/dist/tools/handoff-tools.d.ts.map +0 -1
  521. package/dist/tools/handoff-tools.js +0 -265
  522. package/dist/tools/handoff-tools.js.map +0 -1
  523. package/dist/tools/onboarding-tools.d.ts +0 -43
  524. package/dist/tools/onboarding-tools.d.ts.map +0 -1
  525. package/dist/tools/onboarding-tools.js +0 -353
  526. package/dist/tools/onboarding-tools.js.map +0 -1
  527. package/dist/tools/specialist-discovery-tools.d.ts +0 -27
  528. package/dist/tools/specialist-discovery-tools.d.ts.map +0 -1
  529. package/dist/tools/specialist-discovery-tools.js +0 -281
  530. package/dist/tools/specialist-discovery-tools.js.map +0 -1
  531. package/dist/tools/specialist-tools.d.ts +0 -43
  532. package/dist/tools/specialist-tools.d.ts.map +0 -1
  533. package/dist/tools/specialist-tools.js +0 -378
  534. package/dist/tools/specialist-tools.js.map +0 -1
  535. package/dist/tools/workspace-tools.d.ts.map +0 -1
  536. package/dist/tools/workspace-tools.js +0 -188
  537. package/dist/tools/workspace-tools.js.map +0 -1
  538. package/dist/types/roleplay-types.d.ts +0 -156
  539. package/dist/types/roleplay-types.d.ts.map +0 -1
  540. package/dist/types/roleplay-types.js +0 -8
  541. package/dist/types/roleplay-types.js.map +0 -1
  542. package/dist/utils/path-utils.d.ts +0 -5
  543. package/dist/utils/path-utils.d.ts.map +0 -1
  544. package/dist/utils/path-utils.js +0 -14
  545. package/dist/utils/path-utils.js.map +0 -1
  546. package/dist/workflows/domain-workflows.d.ts +0 -8
  547. package/dist/workflows/domain-workflows.d.ts.map +0 -1
  548. package/dist/workflows/domain-workflows.js +0 -360
  549. package/dist/workflows/domain-workflows.js.map +0 -1
  550. package/embedded-knowledge/methodologies/index.json +0 -81
  551. package/embedded-knowledge/methodologies/phases/analysis-full.md +0 -208
  552. package/embedded-knowledge/methodologies/phases/analysis-quick.md +0 -44
  553. package/embedded-knowledge/methodologies/phases/analysis.md +0 -182
  554. package/embedded-knowledge/methodologies/phases/execution-validation-full.md +0 -174
  555. package/embedded-knowledge/methodologies/phases/execution-validation-quick.md +0 -31
  556. package/embedded-knowledge/methodologies/phases/execution-validation.md +0 -174
  557. package/embedded-knowledge/methodologies/phases/performance-full.md +0 -211
  558. package/embedded-knowledge/methodologies/phases/performance-quick.md +0 -32
  559. package/embedded-knowledge/methodologies/phases/performance.md +0 -211
  560. package/embedded-knowledge/methodologies/phases/verification-full.md +0 -162
  561. package/embedded-knowledge/methodologies/phases/verification-quick.md +0 -48
  562. package/embedded-knowledge/methodologies/phases/verification.md +0 -146
  563. package/embedded-knowledge/methodologies/workflow-enforcement.md +0 -142
  564. package/embedded-knowledge/methodologies/workflows/code-review-workflow.md +0 -99
  565. 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
- # AL File Naming Conventions
20
-
21
- ## Overview
22
-
23
- AL file naming conventions ensure consistent project organization and improve developer experience. Following standardized patterns makes codebases more maintainable and professional.
24
-
25
- **Source**: Based on [alguidelines.dev Rule #2: File Naming Conventions](https://alguidelines.dev/docs/vibe-coding/al-naming-conventions/)
26
-
27
- **Key Principle**: File names should be descriptive and match the AL object name within the files using the pattern `<ObjectName>.<ObjectType>.al`.
28
-
29
- ## Standard File Naming Pattern
30
-
31
- ### Core Pattern: `<ObjectName>.<ObjectType>.al`
32
-
33
- **Table Extensions:**
34
- ```
35
- CORRECT: CustomerExt.TableExt.al
36
- ✅ CORRECT: SalesHeaderExt.TableExt.al
37
- WRONG: Tab-Ext50100.CustomerExt.al
38
- ❌ WRONG: TableExt50100.CustomerExt.al
39
- ```
40
-
41
- **Page Extensions:**
42
- ```
43
- CORRECT: CustomerCardExt.PageExt.al
44
- ✅ CORRECT: InventorySetupExt.PageExt.al
45
- WRONG: Pag-Ext50100.CustomerCardExt.al
46
- WRONG: PageExt50100.CustomerCardExt.al
47
- ```
48
-
49
- **Codeunits:**
50
- ```
51
- CORRECT: CustomerCommentsManager.Codeunit.al
52
- ✅ CORRECT: PostSalesInvoice.Codeunit.al
53
- WRONG: Cod50100.CustomerCommentsManager.al
54
- WRONG: Codeunit50100.CustomerCommentsManager.al
55
- ```
56
-
57
- **Event Subscribers:**
58
- ```
59
- ✅ CORRECT: SalesEventsSubscriber.Codeunit.al
60
- ✅ CORRECT: CustomerEventsHandler.Codeunit.al
61
- ```
62
-
63
- ## Object Type Suffixes
64
-
65
- ### Standard Suffixes
66
- - **Tables**: `.Table.al`
67
- - **Table Extensions**: `.TableExt.al`
68
- - **Pages**: `.Page.al`
69
- - **Page Extensions**: `.PageExt.al`
70
- - **Page Customizations**: `.PageCust.al`
71
- - **Reports**: `.Report.al`
72
- - **Report Extensions**: `.ReportExt.al`
73
- - **Codeunits**: `.Codeunit.al`
74
- - **Queries**: `.Query.al`
75
- - **XMLports**: `.XMLport.al`
76
- - **Enums**: `.Enum.al`
77
- - **Enum Extensions**: `.EnumExt.al`
78
- - **Interfaces**: `.Interface.al`
79
- - **Control Add-ins**: `.ControlAddin.al`
80
- - **Dotnet**: `.Dotnet.al`
81
- - **Profiles**: `.Profile.al`
82
- - **Permission Sets**: `.PermissionSet.al`
83
- - **Permission Set Extensions**: `.PermissionSetExt.al`
84
-
85
- ## Best Practices
86
-
87
- ### Object Name Guidelines
88
- - **Use Pascal Case**: CustomerCommentsManager (not customercommentsmanager)
89
- - **Be Descriptive**: Clearly indicate object purpose
90
- - **Avoid Abbreviations**: Use full words unless standard BC terms
91
- - **Include Context**: For extensions, indicate what you're extending
92
-
93
- ### Organization Patterns
94
- - **Logical Grouping**: Group related objects by business domain
95
- - **Consistent Prefixes**: Use company/solution prefixes consistently
96
- - **Module Structure**: Organize files into logical modules or folders
97
-
98
- ### Extension-Specific Naming
99
- - **Table Extensions**: `[TableName]Ext.TableExt.al`
100
- - **Page Extensions**: `[PageName]Ext.PageExt.al`
101
- - **Clear Extension Purpose**: When extending for specific features, include context
102
-
103
- ## Anti-Patterns to Avoid
104
-
105
- ### Legacy/Incorrect Patterns
106
- ```
107
- ❌ Tab-Ext50000.CustomerExt.al // Old NAV-style naming
108
- TableExt50000.CustomerExt.al // Object ID in filename
109
- CustomerExt-50000.al // Mixed patterns
110
- customer_ext.table_ext.al // Underscore notation
111
- CustomerExtension.TableExtension.al // Verbose suffixes
112
- ```
113
-
114
- ### Why These Are Wrong
115
- - **Object IDs in Filenames**: IDs change, names are stable
116
- - **Abbreviated Prefixes**: "Tab-Ext" is non-standard and unclear
117
- - **Inconsistent Casing**: Makes files hard to locate and sort
118
- - **Verbose Extensions**: ".TableExtension" is unnecessarily long
119
-
120
- ## Implementation Strategy
121
-
122
- ### File Naming Checklist
123
- 1. **Identify Object Name**: Use the actual AL object name from inside the file
124
- 2. **Apply Correct Suffix**: Use standard `.ObjectType.al` pattern
125
- 3. **Validate Consistency**: Ensure all project files follow same convention
126
- 4. **Update References**: Check that any references or documentation align
127
-
128
- ### Refactoring Existing Projects
129
- - **Rename Systematically**: Update all files to follow standard pattern
130
- - **Update Git History**: Consider preserving file history during renames
131
- - **Team Communication**: Ensure all team members understand new conventions
132
- - **Tool Configuration**: Update any build scripts or tools that reference filenames
133
-
134
- ## Integration with Development Tools
135
-
136
- ### VS Code Integration
137
- - **File Explorer Sorting**: Consistent naming improves file navigation
138
- - **Search and Replace**: Standard patterns make project-wide changes easier
139
- - **Extensions**: AL Language extension works better with standard naming
140
-
141
- ### Source Control Benefits
142
- - **File Tracking**: Consistent naming improves change tracking
143
- - **Merge Conflicts**: Reduced conflicts from naming inconsistencies
144
- - **Review Process**: Easier code review with predictable file organization
145
-
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