@jwikman/bc-code-intelligence-mcp 1.5.7-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (753) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +165 -0
  3. package/dist/cache/cache-manager.d.ts +95 -0
  4. package/dist/cache/cache-manager.d.ts.map +1 -0
  5. package/dist/cache/cache-manager.js +328 -0
  6. package/dist/cache/cache-manager.js.map +1 -0
  7. package/dist/cli/bc-code-intel-cli.d.ts +9 -0
  8. package/dist/cli/bc-code-intel-cli.d.ts.map +1 -0
  9. package/dist/cli/bc-code-intel-cli.js +440 -0
  10. package/dist/cli/bc-code-intel-cli.js.map +1 -0
  11. package/dist/config/config-loader.d.ts +28 -0
  12. package/dist/config/config-loader.d.ts.map +1 -0
  13. package/dist/config/config-loader.js +497 -0
  14. package/dist/config/config-loader.js.map +1 -0
  15. package/dist/config/config-validator.d.ts +84 -0
  16. package/dist/config/config-validator.d.ts.map +1 -0
  17. package/dist/config/config-validator.js +608 -0
  18. package/dist/config/config-validator.js.map +1 -0
  19. package/dist/config/test-config-loader.d.ts +10 -0
  20. package/dist/config/test-config-loader.d.ts.map +1 -0
  21. package/dist/config/test-config-loader.js +135 -0
  22. package/dist/config/test-config-loader.js.map +1 -0
  23. package/dist/config/test-enhanced-layer-service.d.ts +7 -0
  24. package/dist/config/test-enhanced-layer-service.d.ts.map +1 -0
  25. package/dist/config/test-enhanced-layer-service.js +104 -0
  26. package/dist/config/test-enhanced-layer-service.js.map +1 -0
  27. package/dist/config/test-git-layer.d.ts +7 -0
  28. package/dist/config/test-git-layer.d.ts.map +1 -0
  29. package/dist/config/test-git-layer.js +68 -0
  30. package/dist/config/test-git-layer.js.map +1 -0
  31. package/dist/dev/hot-reload.d.ts +91 -0
  32. package/dist/dev/hot-reload.d.ts.map +1 -0
  33. package/dist/dev/hot-reload.js +358 -0
  34. package/dist/dev/hot-reload.js.map +1 -0
  35. package/dist/index.d.ts +82 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +1211 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/layers/base-layer.d.ts +133 -0
  40. package/dist/layers/base-layer.d.ts.map +1 -0
  41. package/dist/layers/base-layer.js +290 -0
  42. package/dist/layers/base-layer.js.map +1 -0
  43. package/dist/layers/embedded-layer.d.ts +130 -0
  44. package/dist/layers/embedded-layer.d.ts.map +1 -0
  45. package/dist/layers/embedded-layer.js +612 -0
  46. package/dist/layers/embedded-layer.js.map +1 -0
  47. package/dist/layers/git-layer.d.ts +77 -0
  48. package/dist/layers/git-layer.d.ts.map +1 -0
  49. package/dist/layers/git-layer.js +529 -0
  50. package/dist/layers/git-layer.js.map +1 -0
  51. package/dist/layers/index.d.ts +12 -0
  52. package/dist/layers/index.d.ts.map +1 -0
  53. package/dist/layers/index.js +11 -0
  54. package/dist/layers/index.js.map +1 -0
  55. package/dist/layers/layer-service.d.ts +135 -0
  56. package/dist/layers/layer-service.d.ts.map +1 -0
  57. package/dist/layers/layer-service.js +586 -0
  58. package/dist/layers/layer-service.js.map +1 -0
  59. package/dist/layers/project-layer.d.ts +58 -0
  60. package/dist/layers/project-layer.d.ts.map +1 -0
  61. package/dist/layers/project-layer.js +286 -0
  62. package/dist/layers/project-layer.js.map +1 -0
  63. package/dist/monitoring/production-monitor.d.ts +148 -0
  64. package/dist/monitoring/production-monitor.d.ts.map +1 -0
  65. package/dist/monitoring/production-monitor.js +463 -0
  66. package/dist/monitoring/production-monitor.js.map +1 -0
  67. package/dist/performance/performance-monitor.d.ts +99 -0
  68. package/dist/performance/performance-monitor.d.ts.map +1 -0
  69. package/dist/performance/performance-monitor.js +253 -0
  70. package/dist/performance/performance-monitor.js.map +1 -0
  71. package/dist/sdk/bc-code-intel-client.d.ts +175 -0
  72. package/dist/sdk/bc-code-intel-client.d.ts.map +1 -0
  73. package/dist/sdk/bc-code-intel-client.js +380 -0
  74. package/dist/sdk/bc-code-intel-client.js.map +1 -0
  75. package/dist/search/intelligent-search.d.ts +97 -0
  76. package/dist/search/intelligent-search.d.ts.map +1 -0
  77. package/dist/search/intelligent-search.js +358 -0
  78. package/dist/search/intelligent-search.js.map +1 -0
  79. package/dist/security/access-control.d.ts +110 -0
  80. package/dist/security/access-control.d.ts.map +1 -0
  81. package/dist/security/access-control.js +353 -0
  82. package/dist/security/access-control.js.map +1 -0
  83. package/dist/services/code-analysis-service.d.ts +72 -0
  84. package/dist/services/code-analysis-service.d.ts.map +1 -0
  85. package/dist/services/code-analysis-service.js +818 -0
  86. package/dist/services/code-analysis-service.js.map +1 -0
  87. package/dist/services/enhanced-prompt-service.d.ts +56 -0
  88. package/dist/services/enhanced-prompt-service.d.ts.map +1 -0
  89. package/dist/services/enhanced-prompt-service.js +165 -0
  90. package/dist/services/enhanced-prompt-service.js.map +1 -0
  91. package/dist/services/knowledge-service.d.ts +90 -0
  92. package/dist/services/knowledge-service.d.ts.map +1 -0
  93. package/dist/services/knowledge-service.js +342 -0
  94. package/dist/services/knowledge-service.js.map +1 -0
  95. package/dist/services/methodology-service.d.ts +91 -0
  96. package/dist/services/methodology-service.d.ts.map +1 -0
  97. package/dist/services/methodology-service.js +423 -0
  98. package/dist/services/methodology-service.js.map +1 -0
  99. package/dist/services/multi-content-layer-service.d.ts +198 -0
  100. package/dist/services/multi-content-layer-service.d.ts.map +1 -0
  101. package/dist/services/multi-content-layer-service.js +991 -0
  102. package/dist/services/multi-content-layer-service.js.map +1 -0
  103. package/dist/services/roleplay-engine.d.ts +161 -0
  104. package/dist/services/roleplay-engine.d.ts.map +1 -0
  105. package/dist/services/roleplay-engine.js +994 -0
  106. package/dist/services/roleplay-engine.js.map +1 -0
  107. package/dist/services/session-storage/file-storage.d.ts +30 -0
  108. package/dist/services/session-storage/file-storage.d.ts.map +1 -0
  109. package/dist/services/session-storage/file-storage.js +229 -0
  110. package/dist/services/session-storage/file-storage.js.map +1 -0
  111. package/dist/services/session-storage/in-memory-storage.d.ts +31 -0
  112. package/dist/services/session-storage/in-memory-storage.d.ts.map +1 -0
  113. package/dist/services/session-storage/in-memory-storage.js +142 -0
  114. package/dist/services/session-storage/in-memory-storage.js.map +1 -0
  115. package/dist/services/specialist-discovery.d.ts +98 -0
  116. package/dist/services/specialist-discovery.d.ts.map +1 -0
  117. package/dist/services/specialist-discovery.js +387 -0
  118. package/dist/services/specialist-discovery.js.map +1 -0
  119. package/dist/services/specialist-loader.d.ts +101 -0
  120. package/dist/services/specialist-loader.d.ts.map +1 -0
  121. package/dist/services/specialist-loader.js +256 -0
  122. package/dist/services/specialist-loader.js.map +1 -0
  123. package/dist/services/specialist-session-manager.d.ts +76 -0
  124. package/dist/services/specialist-session-manager.d.ts.map +1 -0
  125. package/dist/services/specialist-session-manager.js +255 -0
  126. package/dist/services/specialist-session-manager.js.map +1 -0
  127. package/dist/services/workflow-service.d.ts +146 -0
  128. package/dist/services/workflow-service.d.ts.map +1 -0
  129. package/dist/services/workflow-service.js +409 -0
  130. package/dist/services/workflow-service.js.map +1 -0
  131. package/dist/setup/post-install.d.ts +12 -0
  132. package/dist/setup/post-install.d.ts.map +1 -0
  133. package/dist/setup/post-install.js +81 -0
  134. package/dist/setup/post-install.js.map +1 -0
  135. package/dist/streamlined-handlers.d.ts +94 -0
  136. package/dist/streamlined-handlers.d.ts.map +1 -0
  137. package/dist/streamlined-handlers.js +665 -0
  138. package/dist/streamlined-handlers.js.map +1 -0
  139. package/dist/test-enhanced-mcp-server.d.ts +7 -0
  140. package/dist/test-enhanced-mcp-server.d.ts.map +1 -0
  141. package/dist/test-enhanced-mcp-server.js +177 -0
  142. package/dist/test-enhanced-mcp-server.js.map +1 -0
  143. package/dist/tools/config-diagnostic-tools.d.ts +234 -0
  144. package/dist/tools/config-diagnostic-tools.d.ts.map +1 -0
  145. package/dist/tools/config-diagnostic-tools.js +887 -0
  146. package/dist/tools/config-diagnostic-tools.js.map +1 -0
  147. package/dist/tools/core-tools.d.ts +26 -0
  148. package/dist/tools/core-tools.d.ts.map +1 -0
  149. package/dist/tools/core-tools.js +241 -0
  150. package/dist/tools/core-tools.js.map +1 -0
  151. package/dist/tools/handoff-tools.d.ts +37 -0
  152. package/dist/tools/handoff-tools.d.ts.map +1 -0
  153. package/dist/tools/handoff-tools.js +265 -0
  154. package/dist/tools/handoff-tools.js.map +1 -0
  155. package/dist/tools/index.d.ts +61 -0
  156. package/dist/tools/index.d.ts.map +1 -0
  157. package/dist/tools/index.js +75 -0
  158. package/dist/tools/index.js.map +1 -0
  159. package/dist/tools/onboarding-tools.d.ts +43 -0
  160. package/dist/tools/onboarding-tools.d.ts.map +1 -0
  161. package/dist/tools/onboarding-tools.js +353 -0
  162. package/dist/tools/onboarding-tools.js.map +1 -0
  163. package/dist/tools/specialist-discovery-tools.d.ts +27 -0
  164. package/dist/tools/specialist-discovery-tools.d.ts.map +1 -0
  165. package/dist/tools/specialist-discovery-tools.js +275 -0
  166. package/dist/tools/specialist-discovery-tools.js.map +1 -0
  167. package/dist/tools/specialist-tools.d.ts +43 -0
  168. package/dist/tools/specialist-tools.d.ts.map +1 -0
  169. package/dist/tools/specialist-tools.js +372 -0
  170. package/dist/tools/specialist-tools.js.map +1 -0
  171. package/dist/tools/workspace-tools.d.ts +96 -0
  172. package/dist/tools/workspace-tools.d.ts.map +1 -0
  173. package/dist/tools/workspace-tools.js +188 -0
  174. package/dist/tools/workspace-tools.js.map +1 -0
  175. package/dist/types/bc-knowledge.d.ts +303 -0
  176. package/dist/types/bc-knowledge.d.ts.map +1 -0
  177. package/dist/types/bc-knowledge.js +69 -0
  178. package/dist/types/bc-knowledge.js.map +1 -0
  179. package/dist/types/config-types.d.ts +186 -0
  180. package/dist/types/config-types.d.ts.map +1 -0
  181. package/dist/types/config-types.js +109 -0
  182. package/dist/types/config-types.js.map +1 -0
  183. package/dist/types/enhanced-layer-types.d.ts +193 -0
  184. package/dist/types/enhanced-layer-types.d.ts.map +1 -0
  185. package/dist/types/enhanced-layer-types.js +9 -0
  186. package/dist/types/enhanced-layer-types.js.map +1 -0
  187. package/dist/types/index.d.ts +5 -0
  188. package/dist/types/index.d.ts.map +1 -0
  189. package/dist/types/index.js +7 -0
  190. package/dist/types/index.js.map +1 -0
  191. package/dist/types/layer-types.d.ts +173 -0
  192. package/dist/types/layer-types.d.ts.map +1 -0
  193. package/dist/types/layer-types.js +27 -0
  194. package/dist/types/layer-types.js.map +1 -0
  195. package/dist/types/roleplay-types.d.ts +156 -0
  196. package/dist/types/roleplay-types.d.ts.map +1 -0
  197. package/dist/types/roleplay-types.js +8 -0
  198. package/dist/types/roleplay-types.js.map +1 -0
  199. package/dist/types/session-types.d.ts +127 -0
  200. package/dist/types/session-types.d.ts.map +1 -0
  201. package/dist/types/session-types.js +8 -0
  202. package/dist/types/session-types.js.map +1 -0
  203. package/dist/utils/path-utils.d.ts +5 -0
  204. package/dist/utils/path-utils.d.ts.map +1 -0
  205. package/dist/utils/path-utils.js +14 -0
  206. package/dist/utils/path-utils.js.map +1 -0
  207. package/dist/workflows/domain-workflows.d.ts +8 -0
  208. package/dist/workflows/domain-workflows.d.ts.map +1 -0
  209. package/dist/workflows/domain-workflows.js +360 -0
  210. package/dist/workflows/domain-workflows.js.map +1 -0
  211. package/embedded-knowledge/.github/ISSUE_TEMPLATE/bug-report.md +24 -0
  212. package/embedded-knowledge/.github/ISSUE_TEMPLATE/content-improvement.md +24 -0
  213. package/embedded-knowledge/.github/ISSUE_TEMPLATE/knowledge-request.md +30 -0
  214. package/embedded-knowledge/AGENTS.md +178 -0
  215. package/embedded-knowledge/CONTRIBUTING.md +58 -0
  216. package/embedded-knowledge/LICENSE +21 -0
  217. package/embedded-knowledge/README.md +32 -0
  218. package/embedded-knowledge/domains/alex-architect/api-delegate-operation-pattern.md +90 -0
  219. package/embedded-knowledge/domains/alex-architect/api-fieldset-registration-pattern.md +113 -0
  220. package/embedded-knowledge/domains/alex-architect/api-interface-design-patterns.md +101 -0
  221. package/embedded-knowledge/domains/alex-architect/api-page-development-patterns.md +87 -0
  222. package/embedded-knowledge/domains/alex-architect/complex-facade-patterns.md +155 -0
  223. package/embedded-knowledge/domains/alex-architect/delegating-to-github-copilot-agents.md +371 -0
  224. package/embedded-knowledge/domains/alex-architect/facade-pattern-al-implementation.md +138 -0
  225. package/embedded-knowledge/domains/alex-architect/facade-pattern-external-api.md +79 -0
  226. package/embedded-knowledge/domains/alex-architect/object-id-ninja-integration.md +281 -0
  227. package/embedded-knowledge/domains/alex-architect/recommend-object-id-ninja.md +248 -0
  228. package/embedded-knowledge/domains/alex-architect/samples/api-delegate-operation.md +280 -0
  229. package/embedded-knowledge/domains/alex-architect/samples/api-fieldset-registration.md +200 -0
  230. package/embedded-knowledge/domains/alex-architect/samples/api-interface-design.md +565 -0
  231. package/embedded-knowledge/domains/alex-architect/samples/api-page-implementation.md +665 -0
  232. package/embedded-knowledge/domains/alex-architect/samples/complex-facade-patterns.md +325 -0
  233. package/embedded-knowledge/domains/alex-architect/samples/facade-pattern-al.md +696 -0
  234. package/embedded-knowledge/domains/alex-architect/samples/facade-pattern.md +320 -0
  235. package/embedded-knowledge/domains/alex-architect/samples/subscriber-organization.md +102 -0
  236. package/embedded-knowledge/domains/alex-architect/samples/systemid-integration.md +433 -0
  237. package/embedded-knowledge/domains/alex-architect/samples/testability-design-patterns.md +223 -0
  238. package/embedded-knowledge/domains/alex-architect/subscriber-codeunit-size-optimization.md +66 -0
  239. package/embedded-knowledge/domains/alex-architect/systemid-integration.md +115 -0
  240. package/embedded-knowledge/domains/alex-architect/testability-design-patterns.md +77 -0
  241. package/embedded-knowledge/domains/casey-copilot/long-running-session-instructions.md +263 -0
  242. package/embedded-knowledge/domains/casey-copilot/samples/long-running-session-instructions.md +323 -0
  243. package/embedded-knowledge/domains/chris-config/configuration-file-discovery.md +846 -0
  244. package/embedded-knowledge/domains/chris-config/configuration-file-formats.md +595 -0
  245. package/embedded-knowledge/domains/chris-config/content-types-structure.md +421 -0
  246. package/embedded-knowledge/domains/chris-config/knowledge-content-creation.md +437 -0
  247. package/embedded-knowledge/domains/chris-config/layer-system-fundamentals.md +257 -0
  248. package/embedded-knowledge/domains/chris-config/multi-team-layer-configuration.md +302 -0
  249. package/embedded-knowledge/domains/chris-config/workspace-detection-solutions.md +336 -0
  250. package/embedded-knowledge/domains/dean-debug/bc-telemetry-buddy-integration.md +453 -0
  251. package/embedded-knowledge/domains/dean-debug/bc24-no-series-conversion-guide.md +360 -0
  252. package/embedded-knowledge/domains/dean-debug/case-statement-performance-best-practices.md +86 -0
  253. package/embedded-knowledge/domains/dean-debug/compound-statements-debugging.md +96 -0
  254. package/embedded-knowledge/domains/dean-debug/custom-dimensions-best-practices.md +70 -0
  255. package/embedded-knowledge/domains/dean-debug/custom-telemetry-implementation.md +84 -0
  256. package/embedded-knowledge/domains/dean-debug/deleteall-performance-tradeoff.md +93 -0
  257. package/embedded-knowledge/domains/dean-debug/deleteall-sql-performance.md +73 -0
  258. package/embedded-knowledge/domains/dean-debug/extension-telemetry-isolation.md +78 -0
  259. package/embedded-knowledge/domains/dean-debug/maintainsiftindex-property-behavior.md +79 -0
  260. package/embedded-knowledge/domains/dean-debug/no-series-implementation-patterns.md +87 -0
  261. package/embedded-knowledge/domains/dean-debug/no-series-module-patterns-bc24.md +209 -0
  262. package/embedded-knowledge/domains/dean-debug/no-series-validation-module-bc24.md +246 -0
  263. package/embedded-knowledge/domains/dean-debug/no-series-validation-patterns.md +107 -0
  264. package/embedded-knowledge/domains/dean-debug/odata-query-optimization.md +105 -0
  265. package/embedded-knowledge/domains/dean-debug/recommend-bc-telemetry-buddy.md +160 -0
  266. package/embedded-knowledge/domains/dean-debug/samples/bc24-no-series-conversion.md +186 -0
  267. package/embedded-knowledge/domains/dean-debug/samples/case-performance-optimization.md +60 -0
  268. package/embedded-knowledge/domains/dean-debug/samples/compound-statements-debugging.md +139 -0
  269. package/embedded-knowledge/domains/dean-debug/samples/custom-dimensions.md +190 -0
  270. package/embedded-knowledge/domains/dean-debug/samples/custom-telemetry.md +516 -0
  271. package/embedded-knowledge/domains/dean-debug/samples/deleteall-performance.md +298 -0
  272. package/embedded-knowledge/domains/dean-debug/samples/error-correlation.md +324 -0
  273. package/embedded-knowledge/domains/dean-debug/samples/extension-isolation.md +344 -0
  274. package/embedded-knowledge/domains/dean-debug/samples/logmessage-methods.md +137 -0
  275. package/embedded-knowledge/domains/dean-debug/samples/maintainsiftindex-examples.md +340 -0
  276. package/embedded-knowledge/domains/dean-debug/samples/no-series-implementation.md +810 -0
  277. package/embedded-knowledge/domains/dean-debug/samples/no-series-module-bc24.md +86 -0
  278. package/embedded-knowledge/domains/dean-debug/samples/no-series-validation-module-bc24.md +110 -0
  279. package/embedded-knowledge/domains/dean-debug/samples/no-series-validation.md +758 -0
  280. package/embedded-knowledge/domains/dean-debug/samples/odata-query-optimization.md +665 -0
  281. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-case.md +316 -0
  282. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-filters.md +223 -0
  283. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-filter-exclusion.md +149 -0
  284. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-optimization.md +412 -0
  285. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-performance.md +211 -0
  286. package/embedded-knowledge/domains/dean-debug/samples/setloadfields-primary-key.md +155 -0
  287. package/embedded-knowledge/domains/dean-debug/samples/sift-technology-fundamentals.md +475 -0
  288. package/embedded-knowledge/domains/dean-debug/samples/singleinstance-subscribers.md +238 -0
  289. package/embedded-knowledge/domains/dean-debug/samples/table-event-batching.md +97 -0
  290. package/embedded-knowledge/domains/dean-debug/samples/table-key-requirements.md +666 -0
  291. package/embedded-knowledge/domains/dean-debug/samples/telemetry-performance.md +319 -0
  292. package/embedded-knowledge/domains/dean-debug/samples/verbosity-strategy.md +236 -0
  293. package/embedded-knowledge/domains/dean-debug/session-logmessage-methods.md +59 -0
  294. package/embedded-knowledge/domains/dean-debug/setloadfields-filter-field-exclusion.md +67 -0
  295. package/embedded-knowledge/domains/dean-debug/setloadfields-performance-impact.md +70 -0
  296. package/embedded-knowledge/domains/dean-debug/setloadfields-performance-optimization.md +90 -0
  297. package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-case-statements.md +87 -0
  298. package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-filters.md +70 -0
  299. package/embedded-knowledge/domains/dean-debug/setloadfields-primary-key-optimization.md +74 -0
  300. package/embedded-knowledge/domains/dean-debug/sift-technology-fundamentals.md +81 -0
  301. package/embedded-knowledge/domains/dean-debug/subscriber-singleinstance-performance.md +56 -0
  302. package/embedded-knowledge/domains/dean-debug/table-event-batch-operation-impact.md +66 -0
  303. package/embedded-knowledge/domains/dean-debug/table-key-requirements.md +79 -0
  304. package/embedded-knowledge/domains/dean-debug/telemetry-error-correlation.md +78 -0
  305. package/embedded-knowledge/domains/dean-debug/telemetry-performance-considerations.md +83 -0
  306. package/embedded-knowledge/domains/dean-debug/telemetry-verbosity-strategy.md +76 -0
  307. package/embedded-knowledge/domains/dean-debug/testfield-performance.md +104 -0
  308. package/embedded-knowledge/domains/eva-errors/codeunit-run-pattern.md +159 -0
  309. package/embedded-knowledge/domains/eva-errors/fielderror-default-messages.md +145 -0
  310. package/embedded-knowledge/domains/eva-errors/fielderror-message-construction.md +104 -0
  311. package/embedded-knowledge/domains/eva-errors/fielderror-method-syntax.md +114 -0
  312. package/embedded-knowledge/domains/eva-errors/samples/codeunit-run-pattern.md +239 -0
  313. package/embedded-knowledge/domains/eva-errors/samples/fielderror-default-messages.md +356 -0
  314. package/embedded-knowledge/domains/eva-errors/samples/fielderror-syntax.md +256 -0
  315. package/embedded-knowledge/domains/eva-errors/samples/table-safety-validation-patterns.md +101 -0
  316. package/embedded-knowledge/domains/eva-errors/samples/testfield-error-handling.md +108 -0
  317. package/embedded-knowledge/domains/eva-errors/samples/try-function-usage.md +195 -0
  318. package/embedded-knowledge/domains/eva-errors/testfield-error-handling.md +80 -0
  319. package/embedded-knowledge/domains/eva-errors/try-function-usage.md +129 -0
  320. package/embedded-knowledge/domains/jordan-bridge/al-event-subscriber-architecture.md +98 -0
  321. package/embedded-knowledge/domains/jordan-bridge/automatic-registration.md +123 -0
  322. package/embedded-knowledge/domains/jordan-bridge/business-process-template-patterns.md +96 -0
  323. package/embedded-knowledge/domains/jordan-bridge/error-response-patterns.md +115 -0
  324. package/embedded-knowledge/domains/jordan-bridge/etag-implementation.md +115 -0
  325. package/embedded-knowledge/domains/jordan-bridge/field-control-selection.md +114 -0
  326. package/embedded-knowledge/domains/jordan-bridge/samples/al-event-subscriber-architecture.md +395 -0
  327. package/embedded-knowledge/domains/jordan-bridge/samples/api-error-responses.md +479 -0
  328. package/embedded-knowledge/domains/jordan-bridge/samples/api-field-control.md +548 -0
  329. package/embedded-knowledge/domains/jordan-bridge/samples/api-url-naming.md +287 -0
  330. package/embedded-knowledge/domains/jordan-bridge/samples/business-process-templates.md +434 -0
  331. package/embedded-knowledge/domains/jordan-bridge/samples/etag-implementation.md +508 -0
  332. package/embedded-knowledge/domains/jordan-bridge/samples/task-scheduler-pattern.md +615 -0
  333. package/embedded-knowledge/domains/jordan-bridge/task-scheduler-pattern-implementation.md +144 -0
  334. package/embedded-knowledge/domains/jordan-bridge/url-structure-naming-patterns.md +96 -0
  335. package/embedded-knowledge/domains/maya-mentor/case-multiple-conditions-ranges.md +124 -0
  336. package/embedded-knowledge/domains/maya-mentor/case-statement-syntax-structure.md +84 -0
  337. package/embedded-knowledge/domains/maya-mentor/fielderror-syntax-usage.md +75 -0
  338. package/embedded-knowledge/domains/maya-mentor/fielderror-vs-testfield.md +96 -0
  339. package/embedded-knowledge/domains/maya-mentor/samples/case-statement-multiple-conditions.md +385 -0
  340. package/embedded-knowledge/domains/maya-mentor/samples/case-statement-syntax-structure.md +72 -0
  341. package/embedded-knowledge/domains/maya-mentor/samples/fielderror-syntax-usage.md +48 -0
  342. package/embedded-knowledge/domains/maya-mentor/samples/testfield-basic-syntax.md +49 -0
  343. package/embedded-knowledge/domains/maya-mentor/testfield-basic-syntax.md +67 -0
  344. package/embedded-knowledge/domains/morgan-market/partner-readiness-analysis.md +201 -0
  345. package/embedded-knowledge/domains/morgan-market/samples/partner-readiness-checklist.md +288 -0
  346. package/embedded-knowledge/domains/parker-pragmatic/README.md +39 -0
  347. package/embedded-knowledge/domains/parker-pragmatic/proposal-workflows/creating-effective-proposals.md +583 -0
  348. package/embedded-knowledge/domains/parker-pragmatic/trust-building/working-with-ai-skeptics.md +587 -0
  349. package/embedded-knowledge/domains/quinn-tester/fielderror-validation-patterns.md +119 -0
  350. package/embedded-knowledge/domains/quinn-tester/isolation-testing-patterns.md +82 -0
  351. package/embedded-knowledge/domains/quinn-tester/rule-execution.md +123 -0
  352. package/embedded-knowledge/domains/quinn-tester/samples/case-error-handling.md +64 -0
  353. package/embedded-knowledge/domains/quinn-tester/samples/fielderror-message-construction.md +60 -0
  354. package/embedded-knowledge/domains/quinn-tester/samples/fielderror-validation-patterns.md +83 -0
  355. package/embedded-knowledge/domains/quinn-tester/samples/isolation-testing-patterns.md +424 -0
  356. package/embedded-knowledge/domains/quinn-tester/samples/rule-execution.md +716 -0
  357. package/embedded-knowledge/domains/quinn-tester/samples/table-safety-validation-patterns.md +101 -0
  358. package/embedded-knowledge/domains/quinn-tester/samples/temporary-table-operation-validation.md +91 -0
  359. package/embedded-knowledge/domains/quinn-tester/table-safety-validation-patterns.md +79 -0
  360. package/embedded-knowledge/domains/quinn-tester/temporary-table-operation-validation.md +79 -0
  361. package/embedded-knowledge/domains/roger-reviewer/al-begin-end-block-structure.md +89 -0
  362. package/embedded-knowledge/domains/roger-reviewer/al-binary-operator-spacing.md +76 -0
  363. package/embedded-knowledge/domains/roger-reviewer/al-blank-line-organization.md +76 -0
  364. package/embedded-knowledge/domains/roger-reviewer/al-case-action-formatting.md +76 -0
  365. package/embedded-knowledge/domains/roger-reviewer/al-code-spacing-conventions.md +81 -0
  366. package/embedded-knowledge/domains/roger-reviewer/al-comment-spacing-standards.md +76 -0
  367. package/embedded-knowledge/domains/roger-reviewer/al-end-else-pairing.md +75 -0
  368. package/embedded-knowledge/domains/roger-reviewer/al-keyword-indentation-rules.md +76 -0
  369. package/embedded-knowledge/domains/roger-reviewer/al-line-start-keyword-positioning.md +76 -0
  370. package/embedded-knowledge/domains/roger-reviewer/al-separate-if-else-formatting.md +76 -0
  371. package/embedded-knowledge/domains/roger-reviewer/al-standard-abbreviations.md +96 -0
  372. package/embedded-knowledge/domains/roger-reviewer/al-statement-per-line-rule.md +76 -0
  373. package/embedded-knowledge/domains/roger-reviewer/al-unnecessary-else-elimination.md +86 -0
  374. package/embedded-knowledge/domains/roger-reviewer/al-variable-declaration-order.md +90 -0
  375. package/embedded-knowledge/domains/roger-reviewer/al-variable-naming-conventions.md +82 -0
  376. package/embedded-knowledge/domains/roger-reviewer/begin-block-statement-clarity.md +78 -0
  377. package/embedded-knowledge/domains/roger-reviewer/begin-end-positioning-patterns.md +76 -0
  378. package/embedded-knowledge/domains/roger-reviewer/binary-operator-line-positioning.md +78 -0
  379. package/embedded-knowledge/domains/roger-reviewer/boolean-expression-simplification-al.md +100 -0
  380. package/embedded-knowledge/domains/roger-reviewer/case-statement-error-handling-troubleshooting.md +115 -0
  381. package/embedded-knowledge/domains/roger-reviewer/compound-statement-readability.md +124 -0
  382. package/embedded-knowledge/domains/roger-reviewer/lonely-repeat-statement-pattern.md +110 -0
  383. package/embedded-knowledge/domains/roger-reviewer/samples/al-begin-end-blocks.md +438 -0
  384. package/embedded-knowledge/domains/roger-reviewer/samples/al-binary-operator-spacing.md +255 -0
  385. package/embedded-knowledge/domains/roger-reviewer/samples/al-comment-spacing-standards.md +209 -0
  386. package/embedded-knowledge/domains/roger-reviewer/samples/al-keyword-indentation-rules.md +218 -0
  387. package/embedded-knowledge/domains/roger-reviewer/samples/al-line-start-keyword-positioning.md +218 -0
  388. package/embedded-knowledge/domains/roger-reviewer/samples/al-separate-if-else-formatting.md +280 -0
  389. package/embedded-knowledge/domains/roger-reviewer/samples/al-statement-per-line-rule.md +188 -0
  390. package/embedded-knowledge/domains/roger-reviewer/samples/al-unnecessary-else-elimination.md +245 -0
  391. package/embedded-knowledge/domains/roger-reviewer/samples/al-variable-declaration-order.md +244 -0
  392. package/embedded-knowledge/domains/roger-reviewer/samples/begin-end-positioning.md +278 -0
  393. package/embedded-knowledge/domains/roger-reviewer/samples/boolean-simplification-examples.md +484 -0
  394. package/embedded-knowledge/domains/roger-reviewer/samples/case-error-handling.md +64 -0
  395. package/embedded-knowledge/domains/roger-reviewer/samples/compound-statement-readability.md +107 -0
  396. package/embedded-knowledge/domains/roger-reviewer/samples/lonely-repeat-examples.md +280 -0
  397. package/embedded-knowledge/domains/roger-reviewer/samples/testability-code-smells.md +256 -0
  398. package/embedded-knowledge/domains/roger-reviewer/testability-code-smells.md +67 -0
  399. package/embedded-knowledge/domains/sam-coder/al-formatting-consistency-patterns.md +75 -0
  400. package/embedded-knowledge/domains/sam-coder/al-line-comment-formatting.md +67 -0
  401. package/embedded-knowledge/domains/sam-coder/al-lonely-repeat-pattern.md +76 -0
  402. package/embedded-knowledge/domains/sam-coder/al-named-parameter-pattern.md +98 -0
  403. package/embedded-knowledge/domains/sam-coder/al-object-navigation-shortcuts.md +128 -0
  404. package/embedded-knowledge/domains/sam-coder/al-readability-optimization.md +75 -0
  405. package/embedded-knowledge/domains/sam-coder/al-record-find-early-exit.md +95 -0
  406. package/embedded-knowledge/domains/sam-coder/command-queue-pattern-al.md +141 -0
  407. package/embedded-knowledge/domains/sam-coder/deleteall-alternative-implementation.md +91 -0
  408. package/embedded-knowledge/domains/sam-coder/deleteall-method-usage.md +118 -0
  409. package/embedded-knowledge/domains/sam-coder/deleteall-trigger-execution.md +111 -0
  410. package/embedded-knowledge/domains/sam-coder/event-bridge-pattern-al.md +113 -0
  411. package/embedded-knowledge/domains/sam-coder/event-payload-design-patterns.md +127 -0
  412. package/embedded-knowledge/domains/sam-coder/generic-method-patterns-al.md +141 -0
  413. package/embedded-knowledge/domains/sam-coder/manual-binding-conditional-subscribers.md +66 -0
  414. package/embedded-knowledge/domains/sam-coder/nested-compound-best-practices.md +96 -0
  415. package/embedded-knowledge/domains/sam-coder/samples/al-blank-line-organization.md +161 -0
  416. package/embedded-knowledge/domains/sam-coder/samples/al-case-action-formatting.md +177 -0
  417. package/embedded-knowledge/domains/sam-coder/samples/al-lonely-repeat-pattern.md +239 -0
  418. package/embedded-knowledge/domains/sam-coder/samples/al-named-parameter-pattern.md +346 -0
  419. package/embedded-knowledge/domains/sam-coder/samples/al-record-find-early-exit.md +298 -0
  420. package/embedded-knowledge/domains/sam-coder/samples/command-queue-pattern.md +677 -0
  421. package/embedded-knowledge/domains/sam-coder/samples/deleteall-alternative-implementation.md +117 -0
  422. package/embedded-knowledge/domains/sam-coder/samples/deleteall-triggers.md +75 -0
  423. package/embedded-knowledge/domains/sam-coder/samples/deleteall-usage.md +169 -0
  424. package/embedded-knowledge/domains/sam-coder/samples/event-bridge-pattern.md +399 -0
  425. package/embedded-knowledge/domains/sam-coder/samples/event-payload-design.md +356 -0
  426. package/embedded-knowledge/domains/sam-coder/samples/generic-method-patterns.md +889 -0
  427. package/embedded-knowledge/domains/sam-coder/samples/manual-binding.md +84 -0
  428. package/embedded-knowledge/domains/sam-coder/samples/nested-compound-best-practices.md +127 -0
  429. package/embedded-knowledge/domains/sam-coder/samples/single-to-compound-conversion.md +89 -0
  430. package/embedded-knowledge/domains/sam-coder/samples/template-method-pattern.md +516 -0
  431. package/embedded-knowledge/domains/sam-coder/samples/testfield-patterns.md +61 -0
  432. package/embedded-knowledge/domains/sam-coder/samples/type-safe-operations.md +427 -0
  433. package/embedded-knowledge/domains/sam-coder/single-to-compound-conversion.md +122 -0
  434. package/embedded-knowledge/domains/sam-coder/template-method-pattern-al.md +96 -0
  435. package/embedded-knowledge/domains/sam-coder/testfield-patterns.md +101 -0
  436. package/embedded-knowledge/domains/sam-coder/type-safe-operations-al.md +149 -0
  437. package/embedded-knowledge/domains/sam-coder/vs-code-al-keyboard-shortcuts.md +107 -0
  438. package/embedded-knowledge/domains/seth-security/al-temporary-table-safety.md +95 -0
  439. package/embedded-knowledge/domains/seth-security/api-permission-model.md +115 -0
  440. package/embedded-knowledge/domains/seth-security/istemporary-safeguard-pattern.md +78 -0
  441. package/embedded-knowledge/domains/seth-security/samples/al-temporary-table-safety.md +373 -0
  442. package/embedded-knowledge/domains/seth-security/samples/api-permission-model.md +308 -0
  443. package/embedded-knowledge/domains/shared/al-file-naming-conventions.md +146 -0
  444. package/embedded-knowledge/domains/taylor-docs/al-xml-documentation-structure.md +79 -0
  445. package/embedded-knowledge/domains/uma-ux/bc-action-shortcuts-syntax.md +78 -0
  446. package/embedded-knowledge/domains/uma-ux/shortcut-key-user-experience-design.md +81 -0
  447. package/embedded-knowledge/indexes/bc-version-matrix.json +188 -0
  448. package/embedded-knowledge/indexes/domain-catalog.json +106 -0
  449. package/embedded-knowledge/indexes/tags/abbreviations.json +1 -0
  450. package/embedded-knowledge/indexes/tags/abstraction.json +1 -0
  451. package/embedded-knowledge/indexes/tags/access-control.json +1 -0
  452. package/embedded-knowledge/indexes/tags/accessibility.json +1 -0
  453. package/embedded-knowledge/indexes/tags/actions.json +1 -0
  454. package/embedded-knowledge/indexes/tags/advanced-patterns.json +1 -0
  455. package/embedded-knowledge/indexes/tags/advanced.json +1 -0
  456. package/embedded-knowledge/indexes/tags/al-extension.json +1 -0
  457. package/embedded-knowledge/indexes/tags/al-generics.json +1 -0
  458. package/embedded-knowledge/indexes/tags/al-objects.json +1 -0
  459. package/embedded-knowledge/indexes/tags/al-syntax.json +1 -0
  460. package/embedded-knowledge/indexes/tags/algorithm-structure.json +1 -0
  461. package/embedded-knowledge/indexes/tags/alternatives.json +1 -0
  462. package/embedded-knowledge/indexes/tags/analytics.json +1 -0
  463. package/embedded-knowledge/indexes/tags/api-delegates.json +1 -0
  464. package/embedded-knowledge/indexes/tags/api-design.json +1 -0
  465. package/embedded-knowledge/indexes/tags/api-documentation.json +1 -0
  466. package/embedded-knowledge/indexes/tags/api-endpoints.json +1 -0
  467. package/embedded-knowledge/indexes/tags/api-extensibility.json +1 -0
  468. package/embedded-knowledge/indexes/tags/api-fieldsets.json +1 -0
  469. package/embedded-knowledge/indexes/tags/api-integration.json +1 -0
  470. package/embedded-knowledge/indexes/tags/api-interfaces.json +1 -0
  471. package/embedded-knowledge/indexes/tags/api-optimization.json +1 -0
  472. package/embedded-knowledge/indexes/tags/api-pages.json +1 -0
  473. package/embedded-knowledge/indexes/tags/api-patterns.json +1 -0
  474. package/embedded-knowledge/indexes/tags/api-permissions.json +1 -0
  475. package/embedded-knowledge/indexes/tags/api-responses.json +1 -0
  476. package/embedded-knowledge/indexes/tags/api-simplification.json +1 -0
  477. package/embedded-knowledge/indexes/tags/api.json +1 -0
  478. package/embedded-knowledge/indexes/tags/architecture.json +1 -0
  479. package/embedded-knowledge/indexes/tags/async-patterns.json +1 -0
  480. package/embedded-knowledge/indexes/tags/async-processing.json +1 -0
  481. package/embedded-knowledge/indexes/tags/automatic-registration.json +1 -0
  482. package/embedded-knowledge/indexes/tags/batch-operations.json +1 -0
  483. package/embedded-knowledge/indexes/tags/bc24-migration.json +1 -0
  484. package/embedded-knowledge/indexes/tags/begin-blocks.json +1 -0
  485. package/embedded-knowledge/indexes/tags/begin-end.json +1 -0
  486. package/embedded-knowledge/indexes/tags/behavioral-patterns.json +1 -0
  487. package/embedded-knowledge/indexes/tags/best-practices.json +1 -0
  488. package/embedded-knowledge/indexes/tags/binding.json +1 -0
  489. package/embedded-knowledge/indexes/tags/block-structure.json +1 -0
  490. package/embedded-knowledge/indexes/tags/blocks.json +1 -0
  491. package/embedded-knowledge/indexes/tags/boolean-expressions.json +1 -0
  492. package/embedded-knowledge/indexes/tags/branching.json +1 -0
  493. package/embedded-knowledge/indexes/tags/breaking-changes.json +1 -0
  494. package/embedded-knowledge/indexes/tags/breakpoints.json +1 -0
  495. package/embedded-knowledge/indexes/tags/business-foundation.json +1 -0
  496. package/embedded-knowledge/indexes/tags/business-infrastructure.json +1 -0
  497. package/embedded-knowledge/indexes/tags/business-process.json +1 -0
  498. package/embedded-knowledge/indexes/tags/business-rules.json +1 -0
  499. package/embedded-knowledge/indexes/tags/caching.json +1 -0
  500. package/embedded-knowledge/indexes/tags/case-statements.json +1 -0
  501. package/embedded-knowledge/indexes/tags/case.json +1 -0
  502. package/embedded-knowledge/indexes/tags/code-analysis.json +1 -0
  503. package/embedded-knowledge/indexes/tags/code-clarity.json +1 -0
  504. package/embedded-knowledge/indexes/tags/code-comprehension.json +1 -0
  505. package/embedded-knowledge/indexes/tags/code-conversion.json +1 -0
  506. package/embedded-knowledge/indexes/tags/code-formatting.json +1 -0
  507. package/embedded-knowledge/indexes/tags/code-organization.json +1 -0
  508. package/embedded-knowledge/indexes/tags/code-patterns.json +1 -0
  509. package/embedded-knowledge/indexes/tags/code-quality.json +1 -0
  510. package/embedded-knowledge/indexes/tags/code-reuse.json +1 -0
  511. package/embedded-knowledge/indexes/tags/code-simplification.json +1 -0
  512. package/embedded-knowledge/indexes/tags/code-standards.json +1 -0
  513. package/embedded-knowledge/indexes/tags/code-structure.json +1 -0
  514. package/embedded-knowledge/indexes/tags/code-style.json +1 -0
  515. package/embedded-knowledge/indexes/tags/codeunit-design.json +1 -0
  516. package/embedded-knowledge/indexes/tags/command-queue.json +1 -0
  517. package/embedded-knowledge/indexes/tags/comments.json +1 -0
  518. package/embedded-knowledge/indexes/tags/compile-time-validation.json +1 -0
  519. package/embedded-knowledge/indexes/tags/complex-facade.json +1 -0
  520. package/embedded-knowledge/indexes/tags/complexity-hiding.json +1 -0
  521. package/embedded-knowledge/indexes/tags/complexity-management.json +1 -0
  522. package/embedded-knowledge/indexes/tags/compound-statements.json +1 -0
  523. package/embedded-knowledge/indexes/tags/concurrency.json +1 -0
  524. package/embedded-knowledge/indexes/tags/conditional-logic.json +1 -0
  525. package/embedded-knowledge/indexes/tags/conditional.json +1 -0
  526. package/embedded-knowledge/indexes/tags/conflict-resolution.json +1 -0
  527. package/embedded-knowledge/indexes/tags/consistency.json +1 -0
  528. package/embedded-knowledge/indexes/tags/contract-design.json +1 -0
  529. package/embedded-knowledge/indexes/tags/control-flow.json +1 -0
  530. package/embedded-knowledge/indexes/tags/conversion-guide.json +1 -0
  531. package/embedded-knowledge/indexes/tags/correlation.json +1 -0
  532. package/embedded-knowledge/indexes/tags/custom-messages.json +1 -0
  533. package/embedded-knowledge/indexes/tags/data-access.json +1 -0
  534. package/embedded-knowledge/indexes/tags/data-exposure.json +1 -0
  535. package/embedded-knowledge/indexes/tags/data-integrity.json +1 -0
  536. package/embedded-knowledge/indexes/tags/data-loading.json +1 -0
  537. package/embedded-knowledge/indexes/tags/data-manipulation.json +1 -0
  538. package/embedded-knowledge/indexes/tags/data-modeling.json +1 -0
  539. package/embedded-knowledge/indexes/tags/data-patterns.json +1 -0
  540. package/embedded-knowledge/indexes/tags/data-protection.json +1 -0
  541. package/embedded-knowledge/indexes/tags/data-validation.json +1 -0
  542. package/embedded-knowledge/indexes/tags/database.json +1 -0
  543. package/embedded-knowledge/indexes/tags/debugging.json +1 -0
  544. package/embedded-knowledge/indexes/tags/decision-making.json +1 -0
  545. package/embedded-knowledge/indexes/tags/declaration.json +1 -0
  546. package/embedded-knowledge/indexes/tags/default-messages.json +1 -0
  547. package/embedded-knowledge/indexes/tags/defensive-programming.json +1 -0
  548. package/embedded-knowledge/indexes/tags/deleteall.json +1 -0
  549. package/embedded-knowledge/indexes/tags/dependencies.json +1 -0
  550. package/embedded-knowledge/indexes/tags/deployment.json +1 -0
  551. package/embedded-knowledge/indexes/tags/developer-productivity.json +1 -0
  552. package/embedded-knowledge/indexes/tags/development-workflow.json +1 -0
  553. package/embedded-knowledge/indexes/tags/diagnostics.json +1 -0
  554. package/embedded-knowledge/indexes/tags/dimensions.json +1 -0
  555. package/embedded-knowledge/indexes/tags/documentation.json +1 -0
  556. package/embedded-knowledge/indexes/tags/early-exit.json +1 -0
  557. package/embedded-knowledge/indexes/tags/else-clauses.json +1 -0
  558. package/embedded-knowledge/indexes/tags/end-statements.json +1 -0
  559. package/embedded-knowledge/indexes/tags/enterprise-patterns.json +1 -0
  560. package/embedded-knowledge/indexes/tags/entity-relationships.json +1 -0
  561. package/embedded-knowledge/indexes/tags/error-handling.json +1 -0
  562. package/embedded-knowledge/indexes/tags/error-messages.json +1 -0
  563. package/embedded-knowledge/indexes/tags/error-prevention.json +1 -0
  564. package/embedded-knowledge/indexes/tags/error-text.json +1 -0
  565. package/embedded-knowledge/indexes/tags/etag.json +1 -0
  566. package/embedded-knowledge/indexes/tags/event-bridge.json +1 -0
  567. package/embedded-knowledge/indexes/tags/event-payload.json +1 -0
  568. package/embedded-knowledge/indexes/tags/event-routing.json +1 -0
  569. package/embedded-knowledge/indexes/tags/events.json +1 -0
  570. package/embedded-knowledge/indexes/tags/execution-flow.json +1 -0
  571. package/embedded-knowledge/indexes/tags/expressions.json +1 -0
  572. package/embedded-knowledge/indexes/tags/extensibility.json +1 -0
  573. package/embedded-knowledge/indexes/tags/extensions.json +1 -0
  574. package/embedded-knowledge/indexes/tags/facade-composition.json +1 -0
  575. package/embedded-knowledge/indexes/tags/facade-pattern.json +1 -0
  576. package/embedded-knowledge/indexes/tags/field-control.json +1 -0
  577. package/embedded-knowledge/indexes/tags/field-exclusion.json +1 -0
  578. package/embedded-knowledge/indexes/tags/field-registration.json +1 -0
  579. package/embedded-knowledge/indexes/tags/field-state.json +1 -0
  580. package/embedded-knowledge/indexes/tags/field-validation.json +1 -0
  581. package/embedded-knowledge/indexes/tags/fielderror.json +1 -0
  582. package/embedded-knowledge/indexes/tags/fields.json +1 -0
  583. package/embedded-knowledge/indexes/tags/filtering.json +1 -0
  584. package/embedded-knowledge/indexes/tags/filters.json +1 -0
  585. package/embedded-knowledge/indexes/tags/formatting.json +1 -0
  586. package/embedded-knowledge/indexes/tags/generic-methods.json +1 -0
  587. package/embedded-knowledge/indexes/tags/http-status.json +1 -0
  588. package/embedded-knowledge/indexes/tags/if-statements.json +1 -0
  589. package/embedded-knowledge/indexes/tags/implementation.json +1 -0
  590. package/embedded-knowledge/indexes/tags/indentation.json +1 -0
  591. package/embedded-knowledge/indexes/tags/index-summary.json +277 -0
  592. package/embedded-knowledge/indexes/tags/indexing.json +1 -0
  593. package/embedded-knowledge/indexes/tags/inheritance.json +1 -0
  594. package/embedded-knowledge/indexes/tags/integration.json +1 -0
  595. package/embedded-knowledge/indexes/tags/integrity-checking.json +1 -0
  596. package/embedded-knowledge/indexes/tags/intellisense.json +1 -0
  597. package/embedded-knowledge/indexes/tags/interface-design.json +1 -0
  598. package/embedded-knowledge/indexes/tags/interface-segregation.json +1 -0
  599. package/embedded-knowledge/indexes/tags/isolation.json +1 -0
  600. package/embedded-knowledge/indexes/tags/job-processing.json +1 -0
  601. package/embedded-knowledge/indexes/tags/keyboard-navigation.json +1 -0
  602. package/embedded-knowledge/indexes/tags/keywords.json +1 -0
  603. package/embedded-knowledge/indexes/tags/legacy-modernization.json +1 -0
  604. package/embedded-knowledge/indexes/tags/line-breaks.json +1 -0
  605. package/embedded-knowledge/indexes/tags/line-organization.json +1 -0
  606. package/embedded-knowledge/indexes/tags/line-positioning.json +1 -0
  607. package/embedded-knowledge/indexes/tags/localization.json +1 -0
  608. package/embedded-knowledge/indexes/tags/logging.json +1 -0
  609. package/embedded-knowledge/indexes/tags/loose-coupling.json +1 -0
  610. package/embedded-knowledge/indexes/tags/maintainability.json +1 -0
  611. package/embedded-knowledge/indexes/tags/memory-management.json +1 -0
  612. package/embedded-knowledge/indexes/tags/memory-optimization.json +1 -0
  613. package/embedded-knowledge/indexes/tags/memory.json +1 -0
  614. package/embedded-knowledge/indexes/tags/message-design.json +1 -0
  615. package/embedded-knowledge/indexes/tags/message-formatting.json +1 -0
  616. package/embedded-knowledge/indexes/tags/message-patterns.json +1 -0
  617. package/embedded-knowledge/indexes/tags/metadata-driven.json +1 -0
  618. package/embedded-knowledge/indexes/tags/method-comparison.json +1 -0
  619. package/embedded-knowledge/indexes/tags/module-architecture.json +1 -0
  620. package/embedded-knowledge/indexes/tags/module-validation.json +1 -0
  621. package/embedded-knowledge/indexes/tags/monitoring.json +1 -0
  622. package/embedded-knowledge/indexes/tags/multi-layer-facade.json +1 -0
  623. package/embedded-knowledge/indexes/tags/multi-tenancy.json +1 -0
  624. package/embedded-knowledge/indexes/tags/multiple-values.json +1 -0
  625. package/embedded-knowledge/indexes/tags/naming-conventions.json +1 -0
  626. package/embedded-knowledge/indexes/tags/naming.json +1 -0
  627. package/embedded-knowledge/indexes/tags/navigation.json +1 -0
  628. package/embedded-knowledge/indexes/tags/nested-statements.json +1 -0
  629. package/embedded-knowledge/indexes/tags/no-series-conversion.json +1 -0
  630. package/embedded-knowledge/indexes/tags/no-series-validation.json +1 -0
  631. package/embedded-knowledge/indexes/tags/no-series.json +1 -0
  632. package/embedded-knowledge/indexes/tags/number-generation.json +1 -0
  633. package/embedded-knowledge/indexes/tags/object-documentation.json +1 -0
  634. package/embedded-knowledge/indexes/tags/odata.json +1 -0
  635. package/embedded-knowledge/indexes/tags/ondelete.json +1 -0
  636. package/embedded-knowledge/indexes/tags/onvalidate.json +1 -0
  637. package/embedded-knowledge/indexes/tags/operation-delegation.json +1 -0
  638. package/embedded-knowledge/indexes/tags/operation-safety.json +1 -0
  639. package/embedded-knowledge/indexes/tags/operators.json +1 -0
  640. package/embedded-knowledge/indexes/tags/optimization.json +1 -0
  641. package/embedded-knowledge/indexes/tags/order.json +1 -0
  642. package/embedded-knowledge/indexes/tags/organization.json +1 -0
  643. package/embedded-knowledge/indexes/tags/pages.json +1 -0
  644. package/embedded-knowledge/indexes/tags/parameters.json +1 -0
  645. package/embedded-knowledge/indexes/tags/patterns.json +1 -0
  646. package/embedded-knowledge/indexes/tags/performance-optimization.json +1 -0
  647. package/embedded-knowledge/indexes/tags/performance.json +1 -0
  648. package/embedded-knowledge/indexes/tags/placement.json +1 -0
  649. package/embedded-knowledge/indexes/tags/posting-codeunits.json +1 -0
  650. package/embedded-knowledge/indexes/tags/posting.json +1 -0
  651. package/embedded-knowledge/indexes/tags/preconditions.json +1 -0
  652. package/embedded-knowledge/indexes/tags/primary-key.json +1 -0
  653. package/embedded-knowledge/indexes/tags/privacy.json +1 -0
  654. package/embedded-knowledge/indexes/tags/process-automation.json +1 -0
  655. package/embedded-knowledge/indexes/tags/production.json +1 -0
  656. package/embedded-knowledge/indexes/tags/productivity.json +1 -0
  657. package/embedded-knowledge/indexes/tags/query-performance.json +1 -0
  658. package/embedded-knowledge/indexes/tags/queue-management.json +1 -0
  659. package/embedded-knowledge/indexes/tags/ranges.json +1 -0
  660. package/embedded-knowledge/indexes/tags/readability.json +1 -0
  661. package/embedded-knowledge/indexes/tags/record-access.json +1 -0
  662. package/embedded-knowledge/indexes/tags/record-methods.json +1 -0
  663. package/embedded-knowledge/indexes/tags/refactoring.json +1 -0
  664. package/embedded-knowledge/indexes/tags/reference.json +1 -0
  665. package/embedded-knowledge/indexes/tags/repeat-loops.json +1 -0
  666. package/embedded-knowledge/indexes/tags/repeat-statement.json +1 -0
  667. package/embedded-knowledge/indexes/tags/runtime-errors.json +1 -0
  668. package/embedded-knowledge/indexes/tags/runtime.json +1 -0
  669. package/embedded-knowledge/indexes/tags/safeguards.json +1 -0
  670. package/embedded-knowledge/indexes/tags/security.json +1 -0
  671. package/embedded-knowledge/indexes/tags/sequence-management.json +1 -0
  672. package/embedded-knowledge/indexes/tags/serialization.json +1 -0
  673. package/embedded-knowledge/indexes/tags/session-logmessage.json +1 -0
  674. package/embedded-knowledge/indexes/tags/session.json +1 -0
  675. package/embedded-knowledge/indexes/tags/setloadfields.json +1 -0
  676. package/embedded-knowledge/indexes/tags/shortcuts.json +1 -0
  677. package/embedded-knowledge/indexes/tags/sift.json +1 -0
  678. package/embedded-knowledge/indexes/tags/singleinstance.json +1 -0
  679. package/embedded-knowledge/indexes/tags/spacing.json +1 -0
  680. package/embedded-knowledge/indexes/tags/sql-translation.json +1 -0
  681. package/embedded-knowledge/indexes/tags/standards.json +1 -0
  682. package/embedded-knowledge/indexes/tags/statements.json +1 -0
  683. package/embedded-knowledge/indexes/tags/streaming.json +1 -0
  684. package/embedded-knowledge/indexes/tags/strong-typing.json +1 -0
  685. package/embedded-knowledge/indexes/tags/structural-patterns.json +1 -0
  686. package/embedded-knowledge/indexes/tags/structure.json +1 -0
  687. package/embedded-knowledge/indexes/tags/subscribers.json +1 -0
  688. package/embedded-knowledge/indexes/tags/switch.json +1 -0
  689. package/embedded-knowledge/indexes/tags/symbol-search.json +1 -0
  690. package/embedded-knowledge/indexes/tags/syntax.json +1 -0
  691. package/embedded-knowledge/indexes/tags/systemid.json +1 -0
  692. package/embedded-knowledge/indexes/tags/table-configuration.json +1 -0
  693. package/embedded-knowledge/indexes/tags/table-events.json +1 -0
  694. package/embedded-knowledge/indexes/tags/table-keys.json +1 -0
  695. package/embedded-knowledge/indexes/tags/table-safety.json +1 -0
  696. package/embedded-knowledge/indexes/tags/task-scheduler.json +1 -0
  697. package/embedded-knowledge/indexes/tags/telemetry.json +1 -0
  698. package/embedded-knowledge/indexes/tags/template-method.json +1 -0
  699. package/embedded-knowledge/indexes/tags/temporary-tables.json +1 -0
  700. package/embedded-knowledge/indexes/tags/testfield.json +1 -0
  701. package/embedded-knowledge/indexes/tags/tradeoffs.json +1 -0
  702. package/embedded-knowledge/indexes/tags/triggers.json +1 -0
  703. package/embedded-knowledge/indexes/tags/troubleshooting.json +1 -0
  704. package/embedded-knowledge/indexes/tags/type-safety.json +1 -0
  705. package/embedded-knowledge/indexes/tags/url-structure.json +1 -0
  706. package/embedded-knowledge/indexes/tags/user-experience.json +1 -0
  707. package/embedded-knowledge/indexes/tags/user-feedback.json +1 -0
  708. package/embedded-knowledge/indexes/tags/user-interface.json +1 -0
  709. package/embedded-knowledge/indexes/tags/validation-feedback.json +1 -0
  710. package/embedded-knowledge/indexes/tags/validation.json +1 -0
  711. package/embedded-knowledge/indexes/tags/variables.json +1 -0
  712. package/embedded-knowledge/indexes/tags/verbosity.json +1 -0
  713. package/embedded-knowledge/indexes/tags/vs-code.json +1 -0
  714. package/embedded-knowledge/indexes/tags/web-services.json +1 -0
  715. package/embedded-knowledge/indexes/tags/workflow-management.json +1 -0
  716. package/embedded-knowledge/indexes/tags/workflow-optimization.json +1 -0
  717. package/embedded-knowledge/indexes/tags/workflow-templates.json +1 -0
  718. package/embedded-knowledge/indexes/tags/workspace.json +1 -0
  719. package/embedded-knowledge/indexes/tags/xml-documentation.json +1 -0
  720. package/embedded-knowledge/indexes/topic-relationships.json +128 -0
  721. package/embedded-knowledge/methodologies/index.json +81 -0
  722. package/embedded-knowledge/methodologies/phases/analysis-full.md +208 -0
  723. package/embedded-knowledge/methodologies/phases/analysis-quick.md +44 -0
  724. package/embedded-knowledge/methodologies/phases/analysis.md +182 -0
  725. package/embedded-knowledge/methodologies/phases/execution-validation-full.md +174 -0
  726. package/embedded-knowledge/methodologies/phases/execution-validation-quick.md +31 -0
  727. package/embedded-knowledge/methodologies/phases/execution-validation.md +174 -0
  728. package/embedded-knowledge/methodologies/phases/performance-full.md +211 -0
  729. package/embedded-knowledge/methodologies/phases/performance-quick.md +32 -0
  730. package/embedded-knowledge/methodologies/phases/performance.md +211 -0
  731. package/embedded-knowledge/methodologies/phases/verification-full.md +162 -0
  732. package/embedded-knowledge/methodologies/phases/verification-quick.md +48 -0
  733. package/embedded-knowledge/methodologies/phases/verification.md +146 -0
  734. package/embedded-knowledge/methodologies/workflow-enforcement.md +142 -0
  735. package/embedded-knowledge/methodologies/workflows/code-review-workflow.md +99 -0
  736. package/embedded-knowledge/methodologies/workflows/proposal-review-workflow.md +535 -0
  737. package/embedded-knowledge/specialists/alex-architect.md +305 -0
  738. package/embedded-knowledge/specialists/casey-copilot.md +314 -0
  739. package/embedded-knowledge/specialists/chris-config.md +226 -0
  740. package/embedded-knowledge/specialists/dean-debug.md +365 -0
  741. package/embedded-knowledge/specialists/eva-errors.md +291 -0
  742. package/embedded-knowledge/specialists/jordan-bridge.md +291 -0
  743. package/embedded-knowledge/specialists/logan-legacy.md +265 -0
  744. package/embedded-knowledge/specialists/maya-mentor.md +299 -0
  745. package/embedded-knowledge/specialists/morgan-market.md +281 -0
  746. package/embedded-knowledge/specialists/parker-pragmatic.md +564 -0
  747. package/embedded-knowledge/specialists/quinn-tester.md +323 -0
  748. package/embedded-knowledge/specialists/roger-reviewer.md +317 -0
  749. package/embedded-knowledge/specialists/sam-coder.md +342 -0
  750. package/embedded-knowledge/specialists/seth-security.md +290 -0
  751. package/embedded-knowledge/specialists/taylor-docs.md +312 -0
  752. package/embedded-knowledge/specialists/uma-ux.md +291 -0
  753. package/package.json +82 -0
@@ -0,0 +1,81 @@
1
+ ---
2
+ title: "AL Code Spacing and Indentation Conventions"
3
+ domain: "roger-reviewer"
4
+ difficulty: "beginner"
5
+ bc_versions: "14+"
6
+ tags: ["formatting", "indentation", "code-style", "readability"]
7
+ prerequisites: ["al-syntax"]
8
+ ---
9
+ # AL Code Spacing and Indentation Conventions
10
+
11
+ ## Overview
12
+
13
+ Consistent spacing and indentation in AL code improves readability, reduces cognitive load, and enables better collaboration across development teams. Following established conventions ensures code maintainability and professional appearance.
14
+
15
+ **Foundation Principle**: Use consistent 4-space indentation throughout AL code with strategic white space to enhance logical grouping and flow comprehension.
16
+
17
+ ## Strategic Framework
18
+
19
+ ### Indentation Standards
20
+ - **4-space indentation**: Standard for AL code blocks and nested structures
21
+ - **No mixed tabs/spaces**: Consistent space-only indentation
22
+ - **Logical nesting**: Each nested level increases indentation by 4 spaces
23
+ - **Alignment consistency**: Maintain alignment patterns within code sections
24
+
25
+ ### White Space Strategy
26
+ - **Logical grouping**: Separate related code blocks with blank lines
27
+ - **Operator spacing**: Consistent spacing around operators and assignments
28
+ - **Parameter formatting**: Clear spacing in procedure calls and definitions
29
+ - **Object boundaries**: Appropriate spacing between object sections
30
+
31
+ ## Architecture Patterns
32
+
33
+ ### Object Structure Spacing
34
+ Organize object definitions with consistent spacing between properties, fields, and procedures. Use blank lines to separate logical sections within objects.
35
+
36
+ ### Procedure Formatting
37
+ Structure procedure definitions with proper spacing around parameters, local variables, and code blocks. Maintain consistent patterns for procedure calls and nested logic.
38
+
39
+ ### Expression and Statement Spacing
40
+ Apply consistent spacing around operators, assignment statements, and conditional expressions to enhance readability and reduce parsing errors.
41
+
42
+ ## Implementation Guidelines
43
+
44
+ ### Standard Patterns
45
+ - **Variable declarations**: Group related variables with consistent spacing
46
+ - **Control structures**: Proper spacing around if/then/else, for loops, and case statements
47
+ - **Object references**: Consistent spacing in field references and procedure calls
48
+ - **Multi-line statements**: Logical line breaks with appropriate continuation indentation
49
+
50
+ ### Special Formatting Cases
51
+ - **Long parameter lists**: Break parameters across lines with consistent indentation
52
+ - **Complex expressions**: Use spacing and line breaks to clarify operator precedence
53
+ - **Nested structures**: Maintain clear indentation hierarchy in complex logic
54
+ - **String concatenation**: Clear spacing around concatenation operators
55
+
56
+ ## Best Practices
57
+
58
+ ### Consistency Standards
59
+ - **Team conventions**: Establish and maintain team-wide formatting standards
60
+ - **Automated formatting**: Use AL formatter tools to ensure consistency
61
+ - **Code reviews**: Include formatting checks in review processes
62
+ - **Documentation**: Maintain formatting guidelines for team reference
63
+
64
+ ### Readability Optimization
65
+ - **Logical grouping**: Use white space to show code organization
66
+ - **Visual hierarchy**: Indentation reflects logical code structure
67
+ - **Scanning efficiency**: Format code for quick visual parsing
68
+ - **Error reduction**: Clear formatting reduces misreading and mistakes
69
+
70
+ ### Tool Integration
71
+ Configure development environments to automatically apply consistent formatting. Use linting tools to enforce spacing conventions across the codebase.
72
+
73
+ ## Anti-Patterns
74
+
75
+ ### Avoid These Approaches
76
+ - **Inconsistent indentation**: Mixed spaces, tabs, or varying indent levels
77
+ - **Excessive blank lines**: Too much white space that breaks code flow
78
+ - **Cramped formatting**: Insufficient spacing that reduces readability
79
+ - **Misaligned parameters**: Inconsistent parameter formatting across procedures
80
+ - **Ignored formatting tools**: Manual formatting instead of automated tools
81
+
@@ -0,0 +1,76 @@
1
+ ---
2
+ title: "AL Comment Spacing Standards"
3
+ domain: "roger-reviewer"
4
+ difficulty: "beginner"
5
+ bc_versions: "14+"
6
+ tags: ["comments", "documentation", "spacing"]
7
+ samples: "samples/al-comment-spacing-standards.md"
8
+ type: "improvement-pattern"
9
+ category: "code-formatting"
10
+ pattern_type: "good"
11
+ severity: "medium"
12
+ impact_level: "medium"
13
+ improvement_suggestion: "Apply consistent spacing around AL comments to improve readability and documentation clarity"
14
+ implementation_steps: ["standardize-comment-spacing", "apply-consistent-patterns", "validate-readability"]
15
+ validation_criteria: ["consistent-comment-spacing", "clear-documentation-separation"]
16
+ technical_areas: ["al-code"]
17
+ ---
18
+
19
+ # AL Comment Spacing Standards
20
+
21
+ ## Overview
22
+
23
+ Consistent spacing around AL comments improves code readability and ensures documentation integrates smoothly with code structure. Proper comment spacing helps developers distinguish between code and documentation while maintaining clean visual organization.
24
+
25
+ **Key Principle**: Use consistent spacing patterns around comments to create clear separation between documentation and executable code.
26
+
27
+ ## Strategic Framework
28
+
29
+ ### Documentation Integration
30
+ - **Visual Separation**: Clear spacing between comments and code elements
31
+ - **Consistency Patterns**: Uniform spacing application across all AL objects
32
+ - **Readability Focus**: Spacing that enhances documentation effectiveness
33
+ - **Code Organization**: Comments as integral part of code structure
34
+
35
+ ### Communication Enhancement
36
+ Well-spaced comments improve developer communication by making documentation more accessible and visually integrated with code logic.
37
+
38
+ ## Architecture Focus
39
+
40
+ ### Comment Types
41
+ - **Line Comments**: Single-line documentation with appropriate spacing
42
+ - **Block Comments**: Multi-line documentation with consistent formatting
43
+ - **Inline Comments**: End-of-line explanations with proper separation
44
+ - **Section Headers**: Major section documentation with clear boundaries
45
+
46
+ ### Spacing Patterns
47
+ Establish consistent spacing rules that work well with AL syntax highlighting and support effective documentation practices within development teams.
48
+
49
+ ## Best Practices
50
+
51
+ ### Spacing Guidelines
52
+ - **Blank line before** major comment blocks
53
+ - **Single space after** comment delimiters (//)
54
+ - **Consistent indentation** for comment content alignment
55
+ - **Appropriate separation** between comments and related code
56
+ - **Clear boundaries** around documentation sections
57
+
58
+ ### Comment Organization
59
+ Group related comments effectively, maintain consistent formatting within comment blocks, and use spacing to create logical documentation structure.
60
+
61
+ ### Integration with Code
62
+ Position comments to enhance code understanding without disrupting visual code flow. Use spacing to create natural reading rhythm between documentation and implementation.
63
+
64
+ ## Anti-Patterns
65
+
66
+ ### Avoid These Approaches
67
+ - **Inconsistent spacing** around comment delimiters
68
+ - **Cramped comments** without adequate separation from code
69
+ - **Excessive spacing** that fragments code unnecessarily
70
+ - **Poor indentation** in multi-line comment blocks
71
+ - **Random comment placement** without logical organization
72
+
73
+ Poor comment spacing makes documentation harder to read and reduces the effectiveness of code documentation efforts.
74
+
75
+ *Implementation examples: see samples/al-comment-spacing-standards.md*
76
+ *Related patterns: al-blank-line-organization.md, al-readability-optimization.md*
@@ -0,0 +1,75 @@
1
+ ---
2
+ title: "AL End Else Pairing"
3
+ domain: "roger-reviewer"
4
+ difficulty: "intermediate"
5
+ bc_versions: "14+"
6
+ tags: ["end-statements", "else-clauses", "block-structure"]
7
+ type: "improvement-pattern"
8
+ category: "language-fundamentals"
9
+ pattern_type: "good"
10
+ severity: "medium"
11
+ impact_level: "medium"
12
+ improvement_suggestion: "Properly pair end statements with else clauses to maintain clear block structure"
13
+ implementation_steps: ["identify-block-boundaries", "align-end-else-pairs", "validate-structure"]
14
+ validation_criteria: ["correct-end-else-pairing", "clear-block-boundaries"]
15
+ technical_areas: ["al-code"]
16
+ ---
17
+
18
+ # AL End Else Pairing
19
+
20
+ ## Overview
21
+
22
+ Proper pairing of end statements with else clauses in AL code maintains clear block structure and prevents syntax errors. Understanding end-else relationships is crucial for writing maintainable conditional logic and avoiding common AL language pitfalls.
23
+
24
+ **Key Principle**: Each end statement must properly close its corresponding block before any related else clause can be processed.
25
+
26
+ ## Strategic Framework
27
+
28
+ ### Block Structure Integrity
29
+ - **Scope Management**: Clear understanding of block boundaries and closure
30
+ - **Syntax Correctness**: Proper AL language structure compliance
31
+ - **Error Prevention**: Avoiding common end-else pairing mistakes
32
+ - **Code Clarity**: Structure that makes block relationships obvious
33
+
34
+ ### Language Compliance
35
+ AL language requires specific patterns for end-else pairing that differ from some other programming languages. Understanding these patterns prevents compilation errors and logic mistakes.
36
+
37
+ ## Architecture Focus
38
+
39
+ ### Pairing Patterns
40
+ - **Conditional Blocks**: Proper end placement before else statements
41
+ - **Nested Structures**: Correct pairing in complex conditional hierarchies
42
+ - **Block Boundaries**: Clear indication of scope closure points
43
+ - **Statement Organization**: Logical grouping of related conditional elements
44
+
45
+ ### Syntax Requirements
46
+ AL syntax requires end statements to properly close conditional blocks before else clauses can be evaluated. This pattern ensures clear logical flow and prevents ambiguous code interpretation.
47
+
48
+ ## Best Practices
49
+
50
+ ### Correct Pairing Techniques
51
+ - **Close blocks completely** before else statements
52
+ - **Align end-else pairs** for visual clarity
53
+ - **Use consistent indentation** to show block relationships
54
+ - **Validate block closure** before adding else clauses
55
+ - **Structure complex conditionals** with clear pairing patterns
56
+
57
+ ### Error Prevention
58
+ Understand AL language requirements for end-else pairing to avoid compilation errors. Use proper formatting to make block relationships immediately apparent to code reviewers.
59
+
60
+ ### Code Organization
61
+ Structure conditional logic with clear end-else pairing that supports easy understanding of decision flow and block boundaries.
62
+
63
+ ## Anti-Patterns
64
+
65
+ ### Avoid These Approaches
66
+ - **Missing end statements** before else clauses
67
+ - **Improper block closure** creating syntax errors
68
+ - **Ambiguous pairing** in nested conditional structures
69
+ - **Poor indentation** obscuring block relationships
70
+ - **Complex nesting** without clear pairing patterns
71
+
72
+ Incorrect end-else pairing creates compilation errors and makes conditional logic difficult to understand and maintain.
73
+
74
+ *Related patterns: al-separate-if-else-formatting.md, al-keyword-indentation-rules.md*
75
+ *See also: al-separate-if-else-formatting.md samples for practical examples*
@@ -0,0 +1,76 @@
1
+ ---
2
+ title: "AL Keyword Indentation Rules"
3
+ domain: "roger-reviewer"
4
+ difficulty: "intermediate"
5
+ bc_versions: "14+"
6
+ tags: ["indentation", "keywords", "code-structure"]
7
+ samples: "samples/al-keyword-indentation-rules.md"
8
+ type: "improvement-pattern"
9
+ category: "code-formatting"
10
+ pattern_type: "good"
11
+ severity: "medium"
12
+ impact_level: "medium"
13
+ improvement_suggestion: "Apply consistent indentation rules for AL keywords to create clear code hierarchy"
14
+ implementation_steps: ["define-indentation-standards", "apply-keyword-rules", "validate-consistency"]
15
+ validation_criteria: ["consistent-keyword-indentation", "clear-code-hierarchy"]
16
+ technical_areas: ["al-code"]
17
+ ---
18
+
19
+ # AL Keyword Indentation Rules
20
+
21
+ ## Overview
22
+
23
+ Consistent indentation rules for AL keywords create clear visual hierarchy in code structure, making it easier to understand control flow, scope boundaries, and logical organization. Proper keyword indentation is fundamental to readable and maintainable AL code.
24
+
25
+ **Key Principle**: Keywords should follow consistent indentation patterns that reflect code structure and logical hierarchy.
26
+
27
+ ## Strategic Framework
28
+
29
+ ### Indentation Hierarchy
30
+ - **Block Structure**: Keywords reflect nesting levels and scope boundaries
31
+ - **Visual Clarity**: Indentation immediately shows code organization
32
+ - **Consistency Standards**: Uniform application across all AL objects
33
+ - **Readability Focus**: Indentation supports quick code comprehension
34
+
35
+ ### Code Structure Reflection
36
+ Keyword indentation should mirror the logical structure of AL code, making scope boundaries and control flow patterns immediately visible to developers.
37
+
38
+ ## Architecture Focus
39
+
40
+ ### Keyword Categories
41
+ - **Control Flow Keywords**: if, else, while, for, case statements
42
+ - **Block Delimiters**: begin, end pairs and scope boundaries
43
+ - **Declaration Keywords**: var, procedure, trigger declarations
44
+ - **Object Keywords**: table, page, codeunit structure elements
45
+
46
+ ### Hierarchy Patterns
47
+ Establish clear indentation increments that consistently reflect nesting levels and logical code organization. Standard indentation helps teams maintain consistent code appearance.
48
+
49
+ ## Best Practices
50
+
51
+ ### Indentation Standards
52
+ - **Consistent increment size** (typically 4 spaces) for each nesting level
53
+ - **Aligned block keywords** (begin/end pairs at same indentation)
54
+ - **Control flow alignment** showing decision structure clearly
55
+ - **Scope reflection** through indentation hierarchy
56
+ - **Declaration organization** with appropriate keyword positioning
57
+
58
+ ### Consistency Application
59
+ Apply indentation rules uniformly across all AL objects, maintain consistent patterns within teams, and use automated formatting tools where possible to ensure compliance.
60
+
61
+ ### Readability Enhancement
62
+ Structure keyword indentation to support quick visual parsing of code organization. Consistent indentation reduces cognitive load when reviewing complex AL procedures.
63
+
64
+ ## Anti-Patterns
65
+
66
+ ### Avoid These Approaches
67
+ - **Inconsistent indentation increments** creating visual confusion
68
+ - **Misaligned begin/end pairs** obscuring block boundaries
69
+ - **Random keyword positioning** without logical organization
70
+ - **Mixed indentation styles** within single AL object
71
+ - **Excessive indentation** making code difficult to follow
72
+
73
+ Poor keyword indentation makes code structure unclear and increases the difficulty of understanding control flow and scope relationships.
74
+
75
+ *Implementation examples: see samples/al-keyword-indentation-rules.md*
76
+ *Related patterns: al-line-start-keyword-positioning.md, al-case-action-formatting.md*
@@ -0,0 +1,76 @@
1
+ ---
2
+ title: "AL Line Start Keyword Positioning"
3
+ domain: "roger-reviewer"
4
+ difficulty: "intermediate"
5
+ bc_versions: "14+"
6
+ tags: ["keywords", "line-positioning", "code-structure"]
7
+ samples: "samples/al-line-start-keyword-positioning.md"
8
+ type: "improvement-pattern"
9
+ category: "code-formatting"
10
+ pattern_type: "good"
11
+ severity: "medium"
12
+ impact_level: "medium"
13
+ improvement_suggestion: "Position AL keywords at line start with consistent alignment to show code structure"
14
+ implementation_steps: ["identify-keyword-patterns", "apply-positioning-rules", "validate-alignment"]
15
+ validation_criteria: ["consistent-keyword-positioning", "clear-structure-indication"]
16
+ technical_areas: ["al-code"]
17
+ ---
18
+
19
+ # AL Line Start Keyword Positioning
20
+
21
+ ## Overview
22
+
23
+ Strategic positioning of AL keywords at line starts creates clear visual anchors that help developers quickly identify code structure, control flow patterns, and logical organization. Consistent keyword positioning improves code scanability and reduces cognitive load during code review.
24
+
25
+ **Key Principle**: Position keywords at line starts with consistent alignment to create clear visual structure markers.
26
+
27
+ ## Strategic Framework
28
+
29
+ ### Visual Structure Creation
30
+ - **Keyword Anchoring**: Keywords as visual reference points for code organization
31
+ - **Scan Optimization**: Positioning that supports quick visual code parsing
32
+ - **Structure Indication**: Keyword placement that reveals code hierarchy
33
+ - **Consistency Standards**: Uniform positioning patterns across codebase
34
+
35
+ ### Readability Enhancement
36
+ Line start keyword positioning helps developers quickly identify major code sections, control flow changes, and logical boundaries within AL procedures and functions.
37
+
38
+ ## Architecture Focus
39
+
40
+ ### Positioning Patterns
41
+ - **Control Flow Keywords**: if, else, while positioned as structure markers
42
+ - **Block Delimiters**: begin, end placement showing scope boundaries
43
+ - **Declaration Keywords**: var, procedure positioning for clear identification
44
+ - **Statement Keywords**: Consistent placement for readability optimization
45
+
46
+ ### Alignment Strategies
47
+ Establish consistent rules for keyword alignment that work well with AL language structure and support effective code organization patterns.
48
+
49
+ ## Best Practices
50
+
51
+ ### Keyword Placement Rules
52
+ - **Line start positioning** for major structural keywords
53
+ - **Consistent alignment** within code blocks and sections
54
+ - **Clear separation** from surrounding code elements
55
+ - **Logical grouping** of related keyword structures
56
+ - **Visual hierarchy** through strategic keyword positioning
57
+
58
+ ### Structure Clarity
59
+ Use keyword positioning to create clear visual markers for code organization. Position keywords to support quick identification of major code sections and control flow patterns.
60
+
61
+ ### Consistency Application
62
+ Apply keyword positioning rules consistently across all AL objects. Establish team standards for keyword placement that enhance code readability and maintainability.
63
+
64
+ ## Anti-Patterns
65
+
66
+ ### Avoid These Approaches
67
+ - **Inconsistent keyword alignment** creating visual confusion
68
+ - **Mid-line keyword placement** reducing structure visibility
69
+ - **Random positioning** without logical organization principles
70
+ - **Poor separation** from surrounding code elements
71
+ - **Mixed positioning styles** within single AL object
72
+
73
+ Inconsistent keyword positioning makes code structure harder to parse and reduces the effectiveness of visual code organization techniques.
74
+
75
+ *Implementation examples: see samples/al-line-start-keyword-positioning.md*
76
+ *Related patterns: al-keyword-indentation-rules.md, al-statement-per-line-rule.md*
@@ -0,0 +1,76 @@
1
+ ---
2
+ title: "AL Separate If Else Formatting"
3
+ domain: "roger-reviewer"
4
+ difficulty: "intermediate"
5
+ bc_versions: "14+"
6
+ tags: ["if-statements", "conditional-logic", "formatting"]
7
+ samples: "samples/al-separate-if-else-formatting.md"
8
+ type: "improvement-pattern"
9
+ category: "code-formatting"
10
+ pattern_type: "good"
11
+ severity: "medium"
12
+ impact_level: "medium"
13
+ improvement_suggestion: "Format if-else statements with clear separation to show conditional logic structure"
14
+ implementation_steps: ["separate-conditional-blocks", "align-if-else-keywords", "validate-readability"]
15
+ validation_criteria: ["clear-conditional-separation", "consistent-alignment"]
16
+ technical_areas: ["al-code"]
17
+ ---
18
+
19
+ # AL Separate If Else Formatting
20
+
21
+ ## Overview
22
+
23
+ Proper formatting of if-else statements in AL code with clear separation between conditional branches improves readability and helps developers understand decision logic structure. Separate formatting makes complex conditional logic easier to follow and maintain.
24
+
25
+ **Key Principle**: Format if-else statements with clear visual separation between conditional branches to highlight decision structure.
26
+
27
+ ## Strategic Framework
28
+
29
+ ### Conditional Logic Clarity
30
+ - **Branch Separation**: Clear visual distinction between if and else branches
31
+ - **Decision Structure**: Formatting that reveals conditional logic organization
32
+ - **Readability Focus**: Layout that supports quick comprehension of decision flow
33
+ - **Consistency Standards**: Uniform if-else formatting across codebase
34
+
35
+ ### Control Flow Visualization
36
+ If-else formatting should make decision paths immediately apparent to code reviewers. Clear separation helps developers understand alternative execution paths and their relationships.
37
+
38
+ ## Architecture Focus
39
+
40
+ ### Formatting Patterns
41
+ - **Keyword Alignment**: Consistent positioning of if and else keywords
42
+ - **Branch Separation**: Visual spacing between conditional branches
43
+ - **Block Structure**: Clear indication of conditional block boundaries
44
+ - **Nested Conditionals**: Proper formatting for complex decision trees
45
+
46
+ ### Visual Organization
47
+ Structure if-else statements to support quick visual parsing of conditional logic. Use consistent formatting patterns that work well with AL language syntax.
48
+
49
+ ## Best Practices
50
+
51
+ ### Separation Techniques
52
+ - **Clear keyword positioning** for if and else statements
53
+ - **Appropriate spacing** between conditional branches
54
+ - **Consistent indentation** within conditional blocks
55
+ - **Visual boundaries** around conditional logic sections
56
+ - **Aligned block structures** for easy scanning
57
+
58
+ ### Readability Optimization
59
+ Format if-else statements to minimize cognitive load when understanding conditional logic. Use whitespace and alignment effectively to create clear decision structure.
60
+
61
+ ### Complex Conditionals
62
+ For nested or complex if-else structures, use additional spacing and indentation to maintain clarity. Consider refactoring overly complex conditional logic into separate methods.
63
+
64
+ ## Anti-Patterns
65
+
66
+ ### Avoid These Approaches
67
+ - **Cramped if-else formatting** without adequate separation
68
+ - **Inconsistent keyword alignment** obscuring structure
69
+ - **Poor indentation** in conditional blocks
70
+ - **Unclear branch boundaries** making logic hard to follow
71
+ - **Overly complex nested conditionals** without proper formatting
72
+
73
+ Poor if-else formatting makes conditional logic harder to understand and increases the likelihood of errors during code maintenance.
74
+
75
+ *Implementation examples: see samples/al-separate-if-else-formatting.md*
76
+ *Related patterns: al-end-else-pairing.md, al-keyword-indentation-rules.md*
@@ -0,0 +1,96 @@
1
+ ---
2
+ title: "AL Standard Abbreviations"
3
+ domain: "roger-reviewer"
4
+ difficulty: "beginner"
5
+ bc_versions: "14+"
6
+ tags: ["abbreviations", "naming", "standards", "reference"]
7
+ type: "improvement-pattern"
8
+ category: "code-quality"
9
+ pattern_type: "good"
10
+ severity: "high"
11
+ impact_level: "high"
12
+ improvement_suggestion: "Use only Microsoft-approved abbreviations to maintain consistency with Business Central platform"
13
+ implementation_steps: ["verify-platform-abbreviations", "apply-standard-patterns", "validate-consistency"]
14
+ validation_criteria: ["platform-compliant-abbreviations", "consistent-usage"]
15
+ technical_areas: ["al-code"]
16
+ ---
17
+
18
+ # AL Standard Abbreviations
19
+
20
+ ## Overview
21
+
22
+ Business Central uses standardized abbreviations throughout the platform for consistency and space efficiency. These abbreviations are deeply embedded in field names, variable naming, and API structures across all BC modules.
23
+
24
+ **Key Principle**: Use only established BC abbreviations to maintain platform consistency and avoid confusion with standard BC objects and APIs.
25
+
26
+ ## Strategic Framework
27
+
28
+ ### Core Business Abbreviations
29
+ - **No.** → Number (CustomerNo, ItemNo, DocumentNo)
30
+ - **Qty** → Quantity (BaseQty, OutstandingQty, ReservedQty)
31
+ - **Amt** → Amount (SalesAmt, CostAmt, DiscountAmt)
32
+ - **Desc** → Description (ItemDesc, CustomerDesc)
33
+ - **LCY** → Local Currency (AmountLCY, UnitCostLCY)
34
+ - **FCY** → Foreign Currency (AmountFCY, UnitPriceFCY)
35
+
36
+ ### Financial and Accounting
37
+ - **G/L** → General Ledger (GLEntry, GLAccount)
38
+ - **VAT** → Value Added Tax (VATEntry, VATAmount)
39
+ - **A/R** → Accounts Receivable (ARAmount)
40
+ - **A/P** → Accounts Payable (APAmount)
41
+ - **WIP** → Work in Progress (WIPEntry)
42
+ - **COGS** → Cost of Goods Sold (COGSAmount)
43
+
44
+ ### Operations and Inventory
45
+ - **UOM** → Unit of Measure (BaseUOM, SalesUOM)
46
+ - **BOM** → Bill of Materials (BOMComponent)
47
+ - **SKU** → Stock Keeping Unit (SKUCode)
48
+ - **Whse** → Warehouse (WhseEntry, WhseShipment)
49
+ - **Invt** → Inventory (InvtPostingGroup)
50
+ - **Prod** → Production (ProdOrder, ProdBOMLine)
51
+
52
+ ## Architecture Focus
53
+
54
+ ### Platform Integration
55
+ BC abbreviations ensure seamless integration with standard platform objects, APIs, and external systems expecting specific field naming patterns.
56
+
57
+ ### Database Considerations
58
+ Abbreviations help manage field name length limits while maintaining readability. Critical for table and field names that interface with external systems.
59
+
60
+ ### API Consistency
61
+ Standard abbreviations ensure API field names match platform conventions, maintaining compatibility with Microsoft and third-party integrations.
62
+
63
+ ### Localization Support
64
+ Platform abbreviations support localization frameworks where translations may require different text lengths while maintaining field name consistency.
65
+
66
+ ## Best Practices
67
+
68
+ ### Approved Usage Only
69
+ - **Platform Standards**: Use only abbreviations established in BC base application
70
+ - **Consistency Check**: Verify abbreviations match existing BC field names
71
+ - **Avoid Custom**: Never create new abbreviations without platform precedent
72
+ - **Documentation**: When platform lacks precedent, document rationale and team approval
73
+
74
+ ### Context-Appropriate Application
75
+ - **Field Names**: Essential for table field naming within character limits
76
+ - **Variable Names**: Use when matching related field names or platform objects
77
+ - **Procedure Names**: Generally avoid abbreviations in procedure names
78
+ - **Comments**: Spell out full terms in documentation and comments
79
+
80
+ ### Validation Requirements
81
+ - **Platform Verification**: Cross-check against BC object definitions
82
+ - **API Compatibility**: Ensure abbreviations don't conflict with standard APIs
83
+ - **Extension Guidelines**: Follow AppSource and per-tenant extension naming requirements
84
+ - **Team Standards**: Maintain approved abbreviation list for project-specific terms
85
+
86
+ ## Anti-Patterns
87
+
88
+ ### Avoid These Approaches
89
+ - **Custom Creations**: Never invent abbreviations not used in BC platform
90
+ - **Inconsistent Forms**: Don't mix "Descr" and "Desc" for same concept
91
+ - **Ambiguous Terms**: Avoid abbreviations with multiple possible meanings
92
+ - **Platform Conflicts**: Don't use abbreviations that conflict with BC standards
93
+
94
+ Invalid abbreviations cause integration failures and platform inconsistencies, potentially leading to AppSource validation failures.
95
+
96
+ *Related patterns: al-variable-naming-conventions.md, al-field-naming.md*
@@ -0,0 +1,76 @@
1
+ ---
2
+ title: "AL Statement Per Line Rule"
3
+ domain: "roger-reviewer"
4
+ difficulty: "beginner"
5
+ bc_versions: "14+"
6
+ tags: ["statements", "line-organization", "readability"]
7
+ samples: "samples/al-statement-per-line-rule.md"
8
+ type: "improvement-pattern"
9
+ category: "code-formatting"
10
+ pattern_type: "good"
11
+ severity: "medium"
12
+ impact_level: "medium"
13
+ improvement_suggestion: "Write one AL statement per line to improve readability and debugging capability"
14
+ implementation_steps: ["separate-multiple-statements", "format-single-statements", "validate-clarity"]
15
+ validation_criteria: ["one-statement-per-line", "improved-readability"]
16
+ technical_areas: ["al-code"]
17
+ ---
18
+
19
+ # AL Statement Per Line Rule
20
+
21
+ ## Overview
22
+
23
+ Writing one AL statement per line improves code readability, simplifies debugging, and makes code maintenance more effective. The one-statement-per-line rule is a fundamental formatting practice that enhances code clarity and supports better development workflows.
24
+
25
+ **Key Principle**: Each line should contain exactly one complete AL statement to maximize readability and debugging effectiveness.
26
+
27
+ ## Strategic Framework
28
+
29
+ ### Readability Enhancement
30
+ - **Visual Clarity**: Each statement clearly separated and identifiable
31
+ - **Scanning Efficiency**: Easy visual parsing of code logic
32
+ - **Debugging Support**: Line-by-line debugging capability
33
+ - **Code Review**: Simplified review process with clear statement boundaries
34
+
35
+ ### Maintenance Benefits
36
+ Single statements per line make code changes easier to track, debug, and understand. This pattern supports effective version control and collaborative development practices.
37
+
38
+ ## Architecture Focus
39
+
40
+ ### Statement Organization
41
+ - **Clear Boundaries**: Each statement on separate line with proper termination
42
+ - **Logical Flow**: Sequential statement arrangement for easy following
43
+ - **Visual Structure**: Line organization that reflects code logic
44
+ - **Error Isolation**: Individual statements for easier error identification
45
+
46
+ ### Development Workflow
47
+ One-statement-per-line formatting integrates well with debugging tools, version control systems, and code review processes commonly used in AL development.
48
+
49
+ ## Best Practices
50
+
51
+ ### Statement Formatting
52
+ - **Single statement per line** with proper semicolon termination
53
+ - **Appropriate indentation** for each statement level
54
+ - **Clear statement separation** without cramming multiple operations
55
+ - **Logical ordering** of related statements
56
+ - **Consistent formatting** across all AL objects
57
+
58
+ ### Code Organization
59
+ Organize statements in logical sequence, group related operations appropriately, and use consistent formatting patterns that support easy code comprehension.
60
+
61
+ ### Debugging Support
62
+ Structure code to support effective debugging by ensuring each line represents a single operation that can be stepped through individually.
63
+
64
+ ## Anti-Patterns
65
+
66
+ ### Avoid These Approaches
67
+ - **Multiple statements per line** reducing readability
68
+ - **Cramped code formatting** without proper separation
69
+ - **Complex compound statements** difficult to debug
70
+ - **Inconsistent line organization** across AL objects
71
+ - **Poor statement grouping** without logical organization
72
+
73
+ Multiple statements per line make code harder to read, debug, and maintain. This pattern increases cognitive load and reduces development efficiency.
74
+
75
+ *Implementation examples: see samples/al-statement-per-line-rule.md*
76
+ *Related patterns: al-readability-optimization.md, al-blank-line-organization.md*