bc-code-intelligence-mcp 1.6.0 → 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 (155) 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/layers/embedded-layer.js +29 -29
  6. package/dist/layers/git-layer.d.ts +2 -0
  7. package/dist/layers/git-layer.d.ts.map +1 -1
  8. package/dist/layers/git-layer.js +47 -14
  9. package/dist/layers/git-layer.js.map +1 -1
  10. package/dist/layers/project-layer.js +33 -33
  11. package/dist/services/methodology-service.js +28 -28
  12. package/dist/services/multi-content-layer-service.d.ts +5 -0
  13. package/dist/services/multi-content-layer-service.d.ts.map +1 -1
  14. package/dist/services/multi-content-layer-service.js +31 -0
  15. package/dist/services/multi-content-layer-service.js.map +1 -1
  16. package/dist/tools/create_layer_content/handler.js +83 -83
  17. package/dist/tools/scaffold_layer_repo/handler.js +276 -276
  18. package/dist/tools/workflow_batch/schema.js +9 -9
  19. package/dist/tools/workflow_cancel/schema.js +9 -9
  20. package/dist/tools/workflow_complete/schema.js +9 -9
  21. package/dist/tools/workflow_list/schema.js +11 -11
  22. package/dist/tools/workflow_next/schema.js +8 -8
  23. package/dist/tools/workflow_progress/schema.js +5 -5
  24. package/dist/tools/workflow_start/schema.js +14 -14
  25. package/dist/tools/workflow_status/schema.js +8 -8
  26. package/embedded-knowledge/.github/ISSUE_TEMPLATE/bug-report.md +23 -23
  27. package/embedded-knowledge/.github/ISSUE_TEMPLATE/content-improvement.md +23 -23
  28. package/embedded-knowledge/.github/ISSUE_TEMPLATE/knowledge-request.md +29 -29
  29. package/embedded-knowledge/AGENTS.md +177 -177
  30. package/embedded-knowledge/CONTRIBUTING.md +57 -57
  31. package/embedded-knowledge/LICENSE +20 -20
  32. package/embedded-knowledge/README.md +31 -31
  33. package/embedded-knowledge/codelens-mappings.yaml +111 -111
  34. package/embedded-knowledge/domains/shared/al-file-naming-conventions.md +155 -155
  35. package/embedded-knowledge/scripts/frontmatter_validator.ps1 +330 -330
  36. package/embedded-knowledge/workflows/bc-version-upgrade.yaml +160 -160
  37. package/embedded-knowledge/workflows/code-review.yaml +148 -148
  38. package/embedded-knowledge/workflows/error-to-errorinfo-migration.yaml +137 -137
  39. package/embedded-knowledge/workflows/onboarding.yaml +124 -124
  40. package/embedded-knowledge/workflows/performance-audit.yaml +148 -148
  41. package/embedded-knowledge/workflows/proposal-review.yaml +117 -117
  42. package/embedded-knowledge/workflows/security-audit.yaml +139 -139
  43. package/package.json +83 -83
  44. package/dist/services/roleplay-engine.d.ts +0 -169
  45. package/dist/services/roleplay-engine.d.ts.map +0 -1
  46. package/dist/services/roleplay-engine.js +0 -1026
  47. package/dist/services/roleplay-engine.js.map +0 -1
  48. package/dist/streamlined-handlers.d.ts +0 -8
  49. package/dist/streamlined-handlers.d.ts.map +0 -1
  50. package/dist/streamlined-handlers.js +0 -29
  51. package/dist/streamlined-handlers.js.map +0 -1
  52. package/dist/tools/advance_workflow/handler.d.ts +0 -21
  53. package/dist/tools/advance_workflow/handler.d.ts.map +0 -1
  54. package/dist/tools/advance_workflow/handler.js +0 -58
  55. package/dist/tools/advance_workflow/handler.js.map +0 -1
  56. package/dist/tools/advance_workflow/schema.d.ts +0 -8
  57. package/dist/tools/advance_workflow/schema.d.ts.map +0 -1
  58. package/dist/tools/advance_workflow/schema.js +0 -28
  59. package/dist/tools/advance_workflow/schema.js.map +0 -1
  60. package/dist/tools/config-diagnostic-tools.d.ts +0 -234
  61. package/dist/tools/config-diagnostic-tools.d.ts.map +0 -1
  62. package/dist/tools/config-diagnostic-tools.js +0 -887
  63. package/dist/tools/config-diagnostic-tools.js.map +0 -1
  64. package/dist/tools/context-snapshot/handler.d.ts +0 -14
  65. package/dist/tools/context-snapshot/handler.d.ts.map +0 -1
  66. package/dist/tools/context-snapshot/handler.js +0 -143
  67. package/dist/tools/context-snapshot/handler.js.map +0 -1
  68. package/dist/tools/context-snapshot/schema.d.ts +0 -11
  69. package/dist/tools/context-snapshot/schema.d.ts.map +0 -1
  70. package/dist/tools/context-snapshot/schema.js +0 -46
  71. package/dist/tools/context-snapshot/schema.js.map +0 -1
  72. package/dist/tools/core-tools.d.ts +0 -26
  73. package/dist/tools/core-tools.d.ts.map +0 -1
  74. package/dist/tools/core-tools.js +0 -262
  75. package/dist/tools/core-tools.js.map +0 -1
  76. package/dist/tools/get_workflow_help/handler.d.ts +0 -12
  77. package/dist/tools/get_workflow_help/handler.d.ts.map +0 -1
  78. package/dist/tools/get_workflow_help/handler.js +0 -54
  79. package/dist/tools/get_workflow_help/handler.js.map +0 -1
  80. package/dist/tools/get_workflow_help/schema.d.ts +0 -8
  81. package/dist/tools/get_workflow_help/schema.d.ts.map +0 -1
  82. package/dist/tools/get_workflow_help/schema.js +0 -25
  83. package/dist/tools/get_workflow_help/schema.js.map +0 -1
  84. package/dist/tools/handoff-tools.d.ts +0 -37
  85. package/dist/tools/handoff-tools.d.ts.map +0 -1
  86. package/dist/tools/handoff-tools.js +0 -265
  87. package/dist/tools/handoff-tools.js.map +0 -1
  88. package/dist/tools/knowledge-query/handler.d.ts +0 -29
  89. package/dist/tools/knowledge-query/handler.d.ts.map +0 -1
  90. package/dist/tools/knowledge-query/handler.js +0 -85
  91. package/dist/tools/knowledge-query/handler.js.map +0 -1
  92. package/dist/tools/knowledge-query/schema.d.ts +0 -12
  93. package/dist/tools/knowledge-query/schema.d.ts.map +0 -1
  94. package/dist/tools/knowledge-query/schema.js +0 -64
  95. package/dist/tools/knowledge-query/schema.js.map +0 -1
  96. package/dist/tools/onboarding-tools.d.ts +0 -43
  97. package/dist/tools/onboarding-tools.d.ts.map +0 -1
  98. package/dist/tools/onboarding-tools.js +0 -353
  99. package/dist/tools/onboarding-tools.js.map +0 -1
  100. package/dist/tools/specialist-consult/handler.d.ts +0 -23
  101. package/dist/tools/specialist-consult/handler.d.ts.map +0 -1
  102. package/dist/tools/specialist-consult/handler.js +0 -120
  103. package/dist/tools/specialist-consult/handler.js.map +0 -1
  104. package/dist/tools/specialist-consult/schema.d.ts +0 -11
  105. package/dist/tools/specialist-consult/schema.d.ts.map +0 -1
  106. package/dist/tools/specialist-consult/schema.js +0 -47
  107. package/dist/tools/specialist-consult/schema.js.map +0 -1
  108. package/dist/tools/specialist-discovery-tools.d.ts +0 -27
  109. package/dist/tools/specialist-discovery-tools.d.ts.map +0 -1
  110. package/dist/tools/specialist-discovery-tools.js +0 -281
  111. package/dist/tools/specialist-discovery-tools.js.map +0 -1
  112. package/dist/tools/specialist-list/handler.d.ts +0 -14
  113. package/dist/tools/specialist-list/handler.d.ts.map +0 -1
  114. package/dist/tools/specialist-list/handler.js +0 -70
  115. package/dist/tools/specialist-list/handler.js.map +0 -1
  116. package/dist/tools/specialist-list/schema.d.ts +0 -11
  117. package/dist/tools/specialist-list/schema.d.ts.map +0 -1
  118. package/dist/tools/specialist-list/schema.js +0 -29
  119. package/dist/tools/specialist-list/schema.js.map +0 -1
  120. package/dist/tools/start_bc_workflow/handler.d.ts +0 -21
  121. package/dist/tools/start_bc_workflow/handler.d.ts.map +0 -1
  122. package/dist/tools/start_bc_workflow/handler.js +0 -237
  123. package/dist/tools/start_bc_workflow/handler.js.map +0 -1
  124. package/dist/tools/start_bc_workflow/schema.d.ts +0 -8
  125. package/dist/tools/start_bc_workflow/schema.d.ts.map +0 -1
  126. package/dist/tools/start_bc_workflow/schema.js +0 -43
  127. package/dist/tools/start_bc_workflow/schema.js.map +0 -1
  128. package/dist/tools/workflow-execute/handler.d.ts +0 -44
  129. package/dist/tools/workflow-execute/handler.d.ts.map +0 -1
  130. package/dist/tools/workflow-execute/handler.js +0 -333
  131. package/dist/tools/workflow-execute/handler.js.map +0 -1
  132. package/dist/tools/workflow-execute/schema.d.ts +0 -13
  133. package/dist/tools/workflow-execute/schema.d.ts.map +0 -1
  134. package/dist/tools/workflow-execute/schema.js +0 -108
  135. package/dist/tools/workflow-execute/schema.js.map +0 -1
  136. package/dist/tools/workflow_start_v2/handler.d.ts +0 -21
  137. package/dist/tools/workflow_start_v2/handler.d.ts.map +0 -1
  138. package/dist/tools/workflow_start_v2/handler.js +0 -133
  139. package/dist/tools/workflow_start_v2/handler.js.map +0 -1
  140. package/dist/tools/workflow_start_v2/schema.d.ts +0 -8
  141. package/dist/tools/workflow_start_v2/schema.d.ts.map +0 -1
  142. package/dist/tools/workflow_start_v2/schema.js +0 -102
  143. package/dist/tools/workflow_start_v2/schema.js.map +0 -1
  144. package/dist/tools/workspace-tools.d.ts +0 -96
  145. package/dist/tools/workspace-tools.d.ts.map +0 -1
  146. package/dist/tools/workspace-tools.js +0 -188
  147. package/dist/tools/workspace-tools.js.map +0 -1
  148. package/dist/types/roleplay-types.d.ts +0 -156
  149. package/dist/types/roleplay-types.d.ts.map +0 -1
  150. package/dist/types/roleplay-types.js +0 -8
  151. package/dist/types/roleplay-types.js.map +0 -1
  152. package/dist/workflows/domain-workflows.d.ts +0 -8
  153. package/dist/workflows/domain-workflows.d.ts.map +0 -1
  154. package/dist/workflows/domain-workflows.js +0 -360
  155. package/dist/workflows/domain-workflows.js.map +0 -1
@@ -1,156 +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
- 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
-
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
+
156
156
  *This is a foundational standard that affects all AL development. Proper file naming is the first step toward professional, maintainable Business Central extensions.*