bc-code-intelligence-mcp 1.3.4 → 1.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/layers/embedded-layer.d.ts.map +1 -1
- package/dist/layers/embedded-layer.js +40 -0
- package/dist/layers/embedded-layer.js.map +1 -1
- package/dist/services/enhanced-prompt-service.d.ts +1 -12
- package/dist/services/enhanced-prompt-service.d.ts.map +1 -1
- package/dist/services/enhanced-prompt-service.js +27 -38
- package/dist/services/enhanced-prompt-service.js.map +1 -1
- package/dist/services/methodology-service.d.ts.map +1 -1
- package/dist/services/methodology-service.js +15 -1
- package/dist/services/methodology-service.js.map +1 -1
- package/embedded-knowledge/.github/ISSUE_TEMPLATE/bug-report.md +24 -0
- package/embedded-knowledge/.github/ISSUE_TEMPLATE/content-improvement.md +24 -0
- package/embedded-knowledge/.github/ISSUE_TEMPLATE/knowledge-request.md +30 -0
- package/embedded-knowledge/AGENTS.md +178 -0
- package/embedded-knowledge/CONTRIBUTING.md +58 -0
- package/embedded-knowledge/LICENSE +21 -0
- package/embedded-knowledge/README.md +32 -0
- package/embedded-knowledge/domains/alex-architect/api-delegate-operation-pattern.md +90 -0
- package/embedded-knowledge/domains/alex-architect/api-fieldset-registration-pattern.md +113 -0
- package/embedded-knowledge/domains/alex-architect/api-interface-design-patterns.md +101 -0
- package/embedded-knowledge/domains/alex-architect/api-page-development-patterns.md +87 -0
- package/embedded-knowledge/domains/alex-architect/complex-facade-patterns.md +155 -0
- package/embedded-knowledge/domains/alex-architect/facade-pattern-al-implementation.md +138 -0
- package/embedded-knowledge/domains/alex-architect/facade-pattern-external-api.md +79 -0
- package/embedded-knowledge/domains/alex-architect/samples/api-delegate-operation.md +280 -0
- package/embedded-knowledge/domains/alex-architect/samples/api-fieldset-registration.md +200 -0
- package/embedded-knowledge/domains/alex-architect/samples/api-interface-design.md +565 -0
- package/embedded-knowledge/domains/alex-architect/samples/api-page-implementation.md +665 -0
- package/embedded-knowledge/domains/alex-architect/samples/complex-facade-patterns.md +325 -0
- package/embedded-knowledge/domains/alex-architect/samples/facade-pattern-al.md +696 -0
- package/embedded-knowledge/domains/alex-architect/samples/facade-pattern.md +320 -0
- package/embedded-knowledge/domains/alex-architect/samples/subscriber-organization.md +102 -0
- package/embedded-knowledge/domains/alex-architect/samples/systemid-integration.md +433 -0
- package/embedded-knowledge/domains/alex-architect/subscriber-codeunit-size-optimization.md +66 -0
- package/embedded-knowledge/domains/alex-architect/systemid-integration.md +115 -0
- package/embedded-knowledge/domains/dean-debug/bc24-no-series-conversion-guide.md +360 -0
- package/embedded-knowledge/domains/dean-debug/case-statement-performance-best-practices.md +86 -0
- package/embedded-knowledge/domains/dean-debug/compound-statements-debugging.md +96 -0
- package/embedded-knowledge/domains/dean-debug/custom-dimensions-best-practices.md +70 -0
- package/embedded-knowledge/domains/dean-debug/custom-telemetry-implementation.md +84 -0
- package/embedded-knowledge/domains/dean-debug/deleteall-performance-tradeoff.md +93 -0
- package/embedded-knowledge/domains/dean-debug/deleteall-sql-performance.md +73 -0
- package/embedded-knowledge/domains/dean-debug/extension-telemetry-isolation.md +78 -0
- package/embedded-knowledge/domains/dean-debug/maintainsiftindex-property-behavior.md +79 -0
- package/embedded-knowledge/domains/dean-debug/no-series-implementation-patterns.md +87 -0
- package/embedded-knowledge/domains/dean-debug/no-series-module-patterns-bc24.md +209 -0
- package/embedded-knowledge/domains/dean-debug/no-series-validation-module-bc24.md +246 -0
- package/embedded-knowledge/domains/dean-debug/no-series-validation-patterns.md +107 -0
- package/embedded-knowledge/domains/dean-debug/odata-query-optimization.md +105 -0
- package/embedded-knowledge/domains/dean-debug/samples/bc24-no-series-conversion.md +186 -0
- package/embedded-knowledge/domains/dean-debug/samples/case-performance-optimization.md +60 -0
- package/embedded-knowledge/domains/dean-debug/samples/compound-statements-debugging.md +139 -0
- package/embedded-knowledge/domains/dean-debug/samples/custom-dimensions.md +190 -0
- package/embedded-knowledge/domains/dean-debug/samples/custom-telemetry.md +516 -0
- package/embedded-knowledge/domains/dean-debug/samples/deleteall-performance.md +298 -0
- package/embedded-knowledge/domains/dean-debug/samples/error-correlation.md +324 -0
- package/embedded-knowledge/domains/dean-debug/samples/extension-isolation.md +344 -0
- package/embedded-knowledge/domains/dean-debug/samples/logmessage-methods.md +137 -0
- package/embedded-knowledge/domains/dean-debug/samples/maintainsiftindex-examples.md +340 -0
- package/embedded-knowledge/domains/dean-debug/samples/no-series-implementation.md +810 -0
- package/embedded-knowledge/domains/dean-debug/samples/no-series-module-bc24.md +86 -0
- package/embedded-knowledge/domains/dean-debug/samples/no-series-validation-module-bc24.md +110 -0
- package/embedded-knowledge/domains/dean-debug/samples/no-series-validation.md +758 -0
- package/embedded-knowledge/domains/dean-debug/samples/odata-query-optimization.md +665 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-case.md +316 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-before-filters.md +223 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-filter-exclusion.md +149 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-optimization.md +412 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-performance.md +211 -0
- package/embedded-knowledge/domains/dean-debug/samples/setloadfields-primary-key.md +155 -0
- package/embedded-knowledge/domains/dean-debug/samples/sift-technology-fundamentals.md +475 -0
- package/embedded-knowledge/domains/dean-debug/samples/singleinstance-subscribers.md +238 -0
- package/embedded-knowledge/domains/dean-debug/samples/table-event-batching.md +97 -0
- package/embedded-knowledge/domains/dean-debug/samples/table-key-requirements.md +666 -0
- package/embedded-knowledge/domains/dean-debug/samples/telemetry-performance.md +319 -0
- package/embedded-knowledge/domains/dean-debug/samples/verbosity-strategy.md +236 -0
- package/embedded-knowledge/domains/dean-debug/session-logmessage-methods.md +59 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-filter-field-exclusion.md +67 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-performance-impact.md +70 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-performance-optimization.md +90 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-case-statements.md +87 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-placement-before-filters.md +70 -0
- package/embedded-knowledge/domains/dean-debug/setloadfields-primary-key-optimization.md +74 -0
- package/embedded-knowledge/domains/dean-debug/sift-technology-fundamentals.md +81 -0
- package/embedded-knowledge/domains/dean-debug/subscriber-singleinstance-performance.md +56 -0
- package/embedded-knowledge/domains/dean-debug/table-event-batch-operation-impact.md +66 -0
- package/embedded-knowledge/domains/dean-debug/table-key-requirements.md +79 -0
- package/embedded-knowledge/domains/dean-debug/telemetry-error-correlation.md +78 -0
- package/embedded-knowledge/domains/dean-debug/telemetry-performance-considerations.md +83 -0
- package/embedded-knowledge/domains/dean-debug/telemetry-verbosity-strategy.md +76 -0
- package/embedded-knowledge/domains/dean-debug/testfield-performance.md +104 -0
- package/embedded-knowledge/domains/eva-errors/fielderror-default-messages.md +145 -0
- package/embedded-knowledge/domains/eva-errors/fielderror-message-construction.md +104 -0
- package/embedded-knowledge/domains/eva-errors/fielderror-method-syntax.md +114 -0
- package/embedded-knowledge/domains/eva-errors/samples/fielderror-default-messages.md +356 -0
- package/embedded-knowledge/domains/eva-errors/samples/fielderror-syntax.md +256 -0
- package/embedded-knowledge/domains/eva-errors/samples/table-safety-validation-patterns.md +101 -0
- package/embedded-knowledge/domains/eva-errors/samples/testfield-error-handling.md +108 -0
- package/embedded-knowledge/domains/eva-errors/testfield-error-handling.md +80 -0
- package/embedded-knowledge/domains/jordan-bridge/al-event-subscriber-architecture.md +98 -0
- package/embedded-knowledge/domains/jordan-bridge/automatic-registration.md +123 -0
- package/embedded-knowledge/domains/jordan-bridge/business-process-template-patterns.md +96 -0
- package/embedded-knowledge/domains/jordan-bridge/error-response-patterns.md +115 -0
- package/embedded-knowledge/domains/jordan-bridge/etag-implementation.md +115 -0
- package/embedded-knowledge/domains/jordan-bridge/field-control-selection.md +114 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/al-event-subscriber-architecture.md +395 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/api-error-responses.md +479 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/api-field-control.md +548 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/api-url-naming.md +287 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/business-process-templates.md +434 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/etag-implementation.md +508 -0
- package/embedded-knowledge/domains/jordan-bridge/samples/task-scheduler-pattern.md +615 -0
- package/embedded-knowledge/domains/jordan-bridge/task-scheduler-pattern-implementation.md +144 -0
- package/embedded-knowledge/domains/jordan-bridge/url-structure-naming-patterns.md +96 -0
- package/embedded-knowledge/domains/maya-mentor/case-multiple-conditions-ranges.md +124 -0
- package/embedded-knowledge/domains/maya-mentor/case-statement-syntax-structure.md +84 -0
- package/embedded-knowledge/domains/maya-mentor/fielderror-syntax-usage.md +75 -0
- package/embedded-knowledge/domains/maya-mentor/fielderror-vs-testfield.md +96 -0
- package/embedded-knowledge/domains/maya-mentor/samples/case-statement-multiple-conditions.md +385 -0
- package/embedded-knowledge/domains/maya-mentor/samples/case-statement-syntax-structure.md +72 -0
- package/embedded-knowledge/domains/maya-mentor/samples/fielderror-syntax-usage.md +48 -0
- package/embedded-knowledge/domains/maya-mentor/samples/testfield-basic-syntax.md +49 -0
- package/embedded-knowledge/domains/maya-mentor/testfield-basic-syntax.md +67 -0
- package/embedded-knowledge/domains/quinn-tester/fielderror-validation-patterns.md +119 -0
- package/embedded-knowledge/domains/quinn-tester/rule-execution.md +123 -0
- package/embedded-knowledge/domains/quinn-tester/samples/case-error-handling.md +64 -0
- package/embedded-knowledge/domains/quinn-tester/samples/fielderror-message-construction.md +60 -0
- package/embedded-knowledge/domains/quinn-tester/samples/fielderror-validation-patterns.md +83 -0
- package/embedded-knowledge/domains/quinn-tester/samples/rule-execution.md +716 -0
- package/embedded-knowledge/domains/quinn-tester/samples/table-safety-validation-patterns.md +101 -0
- package/embedded-knowledge/domains/quinn-tester/samples/temporary-table-operation-validation.md +91 -0
- package/embedded-knowledge/domains/quinn-tester/table-safety-validation-patterns.md +79 -0
- package/embedded-knowledge/domains/quinn-tester/temporary-table-operation-validation.md +79 -0
- package/embedded-knowledge/domains/roger-reviewer/al-begin-end-block-structure.md +89 -0
- package/embedded-knowledge/domains/roger-reviewer/al-binary-operator-spacing.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-blank-line-organization.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-case-action-formatting.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-code-spacing-conventions.md +81 -0
- package/embedded-knowledge/domains/roger-reviewer/al-comment-spacing-standards.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-end-else-pairing.md +75 -0
- package/embedded-knowledge/domains/roger-reviewer/al-keyword-indentation-rules.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-line-start-keyword-positioning.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-separate-if-else-formatting.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-standard-abbreviations.md +96 -0
- package/embedded-knowledge/domains/roger-reviewer/al-statement-per-line-rule.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/al-unnecessary-else-elimination.md +86 -0
- package/embedded-knowledge/domains/roger-reviewer/al-variable-declaration-order.md +90 -0
- package/embedded-knowledge/domains/roger-reviewer/al-variable-naming-conventions.md +82 -0
- package/embedded-knowledge/domains/roger-reviewer/begin-block-statement-clarity.md +78 -0
- package/embedded-knowledge/domains/roger-reviewer/begin-end-positioning-patterns.md +76 -0
- package/embedded-knowledge/domains/roger-reviewer/binary-operator-line-positioning.md +78 -0
- package/embedded-knowledge/domains/roger-reviewer/boolean-expression-simplification-al.md +100 -0
- package/embedded-knowledge/domains/roger-reviewer/case-statement-error-handling-troubleshooting.md +115 -0
- package/embedded-knowledge/domains/roger-reviewer/compound-statement-readability.md +124 -0
- package/embedded-knowledge/domains/roger-reviewer/lonely-repeat-statement-pattern.md +110 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-begin-end-blocks.md +438 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-binary-operator-spacing.md +255 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-comment-spacing-standards.md +209 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-keyword-indentation-rules.md +218 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-line-start-keyword-positioning.md +218 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-separate-if-else-formatting.md +280 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-statement-per-line-rule.md +188 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-unnecessary-else-elimination.md +245 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/al-variable-declaration-order.md +244 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/begin-end-positioning.md +278 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/boolean-simplification-examples.md +484 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/case-error-handling.md +64 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/compound-statement-readability.md +107 -0
- package/embedded-knowledge/domains/roger-reviewer/samples/lonely-repeat-examples.md +280 -0
- package/embedded-knowledge/domains/sam-coder/al-formatting-consistency-patterns.md +75 -0
- package/embedded-knowledge/domains/sam-coder/al-line-comment-formatting.md +67 -0
- package/embedded-knowledge/domains/sam-coder/al-lonely-repeat-pattern.md +76 -0
- package/embedded-knowledge/domains/sam-coder/al-named-parameter-pattern.md +98 -0
- package/embedded-knowledge/domains/sam-coder/al-object-navigation-shortcuts.md +128 -0
- package/embedded-knowledge/domains/sam-coder/al-readability-optimization.md +75 -0
- package/embedded-knowledge/domains/sam-coder/al-record-find-early-exit.md +95 -0
- package/embedded-knowledge/domains/sam-coder/command-queue-pattern-al.md +141 -0
- package/embedded-knowledge/domains/sam-coder/deleteall-alternative-implementation.md +91 -0
- package/embedded-knowledge/domains/sam-coder/deleteall-method-usage.md +118 -0
- package/embedded-knowledge/domains/sam-coder/deleteall-trigger-execution.md +111 -0
- package/embedded-knowledge/domains/sam-coder/event-bridge-pattern-al.md +113 -0
- package/embedded-knowledge/domains/sam-coder/event-payload-design-patterns.md +127 -0
- package/embedded-knowledge/domains/sam-coder/generic-method-patterns-al.md +141 -0
- package/embedded-knowledge/domains/sam-coder/manual-binding-conditional-subscribers.md +66 -0
- package/embedded-knowledge/domains/sam-coder/nested-compound-best-practices.md +96 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-blank-line-organization.md +161 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-case-action-formatting.md +177 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-lonely-repeat-pattern.md +239 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-named-parameter-pattern.md +346 -0
- package/embedded-knowledge/domains/sam-coder/samples/al-record-find-early-exit.md +298 -0
- package/embedded-knowledge/domains/sam-coder/samples/command-queue-pattern.md +677 -0
- package/embedded-knowledge/domains/sam-coder/samples/deleteall-alternative-implementation.md +117 -0
- package/embedded-knowledge/domains/sam-coder/samples/deleteall-triggers.md +75 -0
- package/embedded-knowledge/domains/sam-coder/samples/deleteall-usage.md +169 -0
- package/embedded-knowledge/domains/sam-coder/samples/event-bridge-pattern.md +399 -0
- package/embedded-knowledge/domains/sam-coder/samples/event-payload-design.md +356 -0
- package/embedded-knowledge/domains/sam-coder/samples/generic-method-patterns.md +889 -0
- package/embedded-knowledge/domains/sam-coder/samples/manual-binding.md +84 -0
- package/embedded-knowledge/domains/sam-coder/samples/nested-compound-best-practices.md +127 -0
- package/embedded-knowledge/domains/sam-coder/samples/single-to-compound-conversion.md +89 -0
- package/embedded-knowledge/domains/sam-coder/samples/template-method-pattern.md +516 -0
- package/embedded-knowledge/domains/sam-coder/samples/testfield-patterns.md +61 -0
- package/embedded-knowledge/domains/sam-coder/samples/type-safe-operations.md +427 -0
- package/embedded-knowledge/domains/sam-coder/single-to-compound-conversion.md +122 -0
- package/embedded-knowledge/domains/sam-coder/template-method-pattern-al.md +96 -0
- package/embedded-knowledge/domains/sam-coder/testfield-patterns.md +101 -0
- package/embedded-knowledge/domains/sam-coder/type-safe-operations-al.md +149 -0
- package/embedded-knowledge/domains/sam-coder/vs-code-al-keyboard-shortcuts.md +107 -0
- package/embedded-knowledge/domains/seth-security/al-temporary-table-safety.md +95 -0
- package/embedded-knowledge/domains/seth-security/api-permission-model.md +115 -0
- package/embedded-knowledge/domains/seth-security/istemporary-safeguard-pattern.md +78 -0
- package/embedded-knowledge/domains/seth-security/samples/al-temporary-table-safety.md +373 -0
- package/embedded-knowledge/domains/seth-security/samples/api-permission-model.md +308 -0
- package/embedded-knowledge/domains/shared/al-file-naming-conventions.md +146 -0
- package/embedded-knowledge/domains/taylor-docs/al-xml-documentation-structure.md +79 -0
- package/embedded-knowledge/domains/uma-ux/bc-action-shortcuts-syntax.md +78 -0
- package/embedded-knowledge/domains/uma-ux/shortcut-key-user-experience-design.md +81 -0
- package/embedded-knowledge/indexes/bc-version-matrix.json +188 -0
- package/embedded-knowledge/indexes/domain-catalog.json +106 -0
- package/embedded-knowledge/indexes/tags/abbreviations.json +1 -0
- package/embedded-knowledge/indexes/tags/abstraction.json +1 -0
- package/embedded-knowledge/indexes/tags/access-control.json +1 -0
- package/embedded-knowledge/indexes/tags/accessibility.json +1 -0
- package/embedded-knowledge/indexes/tags/actions.json +1 -0
- package/embedded-knowledge/indexes/tags/advanced-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/advanced.json +1 -0
- package/embedded-knowledge/indexes/tags/al-extension.json +1 -0
- package/embedded-knowledge/indexes/tags/al-generics.json +1 -0
- package/embedded-knowledge/indexes/tags/al-objects.json +1 -0
- package/embedded-knowledge/indexes/tags/al-syntax.json +1 -0
- package/embedded-knowledge/indexes/tags/algorithm-structure.json +1 -0
- package/embedded-knowledge/indexes/tags/alternatives.json +1 -0
- package/embedded-knowledge/indexes/tags/analytics.json +1 -0
- package/embedded-knowledge/indexes/tags/api-delegates.json +1 -0
- package/embedded-knowledge/indexes/tags/api-design.json +1 -0
- package/embedded-knowledge/indexes/tags/api-documentation.json +1 -0
- package/embedded-knowledge/indexes/tags/api-endpoints.json +1 -0
- package/embedded-knowledge/indexes/tags/api-extensibility.json +1 -0
- package/embedded-knowledge/indexes/tags/api-fieldsets.json +1 -0
- package/embedded-knowledge/indexes/tags/api-integration.json +1 -0
- package/embedded-knowledge/indexes/tags/api-interfaces.json +1 -0
- package/embedded-knowledge/indexes/tags/api-optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/api-pages.json +1 -0
- package/embedded-knowledge/indexes/tags/api-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/api-permissions.json +1 -0
- package/embedded-knowledge/indexes/tags/api-responses.json +1 -0
- package/embedded-knowledge/indexes/tags/api-simplification.json +1 -0
- package/embedded-knowledge/indexes/tags/api.json +1 -0
- package/embedded-knowledge/indexes/tags/architecture.json +1 -0
- package/embedded-knowledge/indexes/tags/async-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/async-processing.json +1 -0
- package/embedded-knowledge/indexes/tags/automatic-registration.json +1 -0
- package/embedded-knowledge/indexes/tags/batch-operations.json +1 -0
- package/embedded-knowledge/indexes/tags/bc24-migration.json +1 -0
- package/embedded-knowledge/indexes/tags/begin-blocks.json +1 -0
- package/embedded-knowledge/indexes/tags/begin-end.json +1 -0
- package/embedded-knowledge/indexes/tags/behavioral-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/best-practices.json +1 -0
- package/embedded-knowledge/indexes/tags/binding.json +1 -0
- package/embedded-knowledge/indexes/tags/block-structure.json +1 -0
- package/embedded-knowledge/indexes/tags/blocks.json +1 -0
- package/embedded-knowledge/indexes/tags/boolean-expressions.json +1 -0
- package/embedded-knowledge/indexes/tags/branching.json +1 -0
- package/embedded-knowledge/indexes/tags/breaking-changes.json +1 -0
- package/embedded-knowledge/indexes/tags/breakpoints.json +1 -0
- package/embedded-knowledge/indexes/tags/business-foundation.json +1 -0
- package/embedded-knowledge/indexes/tags/business-infrastructure.json +1 -0
- package/embedded-knowledge/indexes/tags/business-process.json +1 -0
- package/embedded-knowledge/indexes/tags/business-rules.json +1 -0
- package/embedded-knowledge/indexes/tags/caching.json +1 -0
- package/embedded-knowledge/indexes/tags/case-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/case.json +1 -0
- package/embedded-knowledge/indexes/tags/code-analysis.json +1 -0
- package/embedded-knowledge/indexes/tags/code-clarity.json +1 -0
- package/embedded-knowledge/indexes/tags/code-comprehension.json +1 -0
- package/embedded-knowledge/indexes/tags/code-conversion.json +1 -0
- package/embedded-knowledge/indexes/tags/code-formatting.json +1 -0
- package/embedded-knowledge/indexes/tags/code-organization.json +1 -0
- package/embedded-knowledge/indexes/tags/code-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/code-quality.json +1 -0
- package/embedded-knowledge/indexes/tags/code-reuse.json +1 -0
- package/embedded-knowledge/indexes/tags/code-simplification.json +1 -0
- package/embedded-knowledge/indexes/tags/code-standards.json +1 -0
- package/embedded-knowledge/indexes/tags/code-structure.json +1 -0
- package/embedded-knowledge/indexes/tags/code-style.json +1 -0
- package/embedded-knowledge/indexes/tags/codeunit-design.json +1 -0
- package/embedded-knowledge/indexes/tags/command-queue.json +1 -0
- package/embedded-knowledge/indexes/tags/comments.json +1 -0
- package/embedded-knowledge/indexes/tags/compile-time-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/complex-facade.json +1 -0
- package/embedded-knowledge/indexes/tags/complexity-hiding.json +1 -0
- package/embedded-knowledge/indexes/tags/complexity-management.json +1 -0
- package/embedded-knowledge/indexes/tags/compound-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/concurrency.json +1 -0
- package/embedded-knowledge/indexes/tags/conditional-logic.json +1 -0
- package/embedded-knowledge/indexes/tags/conditional.json +1 -0
- package/embedded-knowledge/indexes/tags/conflict-resolution.json +1 -0
- package/embedded-knowledge/indexes/tags/consistency.json +1 -0
- package/embedded-knowledge/indexes/tags/contract-design.json +1 -0
- package/embedded-knowledge/indexes/tags/control-flow.json +1 -0
- package/embedded-knowledge/indexes/tags/conversion-guide.json +1 -0
- package/embedded-knowledge/indexes/tags/correlation.json +1 -0
- package/embedded-knowledge/indexes/tags/custom-messages.json +1 -0
- package/embedded-knowledge/indexes/tags/data-access.json +1 -0
- package/embedded-knowledge/indexes/tags/data-exposure.json +1 -0
- package/embedded-knowledge/indexes/tags/data-integrity.json +1 -0
- package/embedded-knowledge/indexes/tags/data-loading.json +1 -0
- package/embedded-knowledge/indexes/tags/data-manipulation.json +1 -0
- package/embedded-knowledge/indexes/tags/data-modeling.json +1 -0
- package/embedded-knowledge/indexes/tags/data-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/data-protection.json +1 -0
- package/embedded-knowledge/indexes/tags/data-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/database.json +1 -0
- package/embedded-knowledge/indexes/tags/debugging.json +1 -0
- package/embedded-knowledge/indexes/tags/decision-making.json +1 -0
- package/embedded-knowledge/indexes/tags/declaration.json +1 -0
- package/embedded-knowledge/indexes/tags/default-messages.json +1 -0
- package/embedded-knowledge/indexes/tags/defensive-programming.json +1 -0
- package/embedded-knowledge/indexes/tags/deleteall.json +1 -0
- package/embedded-knowledge/indexes/tags/dependencies.json +1 -0
- package/embedded-knowledge/indexes/tags/deployment.json +1 -0
- package/embedded-knowledge/indexes/tags/developer-productivity.json +1 -0
- package/embedded-knowledge/indexes/tags/development-workflow.json +1 -0
- package/embedded-knowledge/indexes/tags/diagnostics.json +1 -0
- package/embedded-knowledge/indexes/tags/dimensions.json +1 -0
- package/embedded-knowledge/indexes/tags/documentation.json +1 -0
- package/embedded-knowledge/indexes/tags/early-exit.json +1 -0
- package/embedded-knowledge/indexes/tags/else-clauses.json +1 -0
- package/embedded-knowledge/indexes/tags/end-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/enterprise-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/entity-relationships.json +1 -0
- package/embedded-knowledge/indexes/tags/error-handling.json +1 -0
- package/embedded-knowledge/indexes/tags/error-messages.json +1 -0
- package/embedded-knowledge/indexes/tags/error-prevention.json +1 -0
- package/embedded-knowledge/indexes/tags/error-text.json +1 -0
- package/embedded-knowledge/indexes/tags/etag.json +1 -0
- package/embedded-knowledge/indexes/tags/event-bridge.json +1 -0
- package/embedded-knowledge/indexes/tags/event-payload.json +1 -0
- package/embedded-knowledge/indexes/tags/event-routing.json +1 -0
- package/embedded-knowledge/indexes/tags/events.json +1 -0
- package/embedded-knowledge/indexes/tags/execution-flow.json +1 -0
- package/embedded-knowledge/indexes/tags/expressions.json +1 -0
- package/embedded-knowledge/indexes/tags/extensibility.json +1 -0
- package/embedded-knowledge/indexes/tags/extensions.json +1 -0
- package/embedded-knowledge/indexes/tags/facade-composition.json +1 -0
- package/embedded-knowledge/indexes/tags/facade-pattern.json +1 -0
- package/embedded-knowledge/indexes/tags/field-control.json +1 -0
- package/embedded-knowledge/indexes/tags/field-exclusion.json +1 -0
- package/embedded-knowledge/indexes/tags/field-registration.json +1 -0
- package/embedded-knowledge/indexes/tags/field-state.json +1 -0
- package/embedded-knowledge/indexes/tags/field-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/fielderror.json +1 -0
- package/embedded-knowledge/indexes/tags/fields.json +1 -0
- package/embedded-knowledge/indexes/tags/filtering.json +1 -0
- package/embedded-knowledge/indexes/tags/filters.json +1 -0
- package/embedded-knowledge/indexes/tags/formatting.json +1 -0
- package/embedded-knowledge/indexes/tags/generic-methods.json +1 -0
- package/embedded-knowledge/indexes/tags/http-status.json +1 -0
- package/embedded-knowledge/indexes/tags/if-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/implementation.json +1 -0
- package/embedded-knowledge/indexes/tags/indentation.json +1 -0
- package/embedded-knowledge/indexes/tags/index-summary.json +277 -0
- package/embedded-knowledge/indexes/tags/indexing.json +1 -0
- package/embedded-knowledge/indexes/tags/inheritance.json +1 -0
- package/embedded-knowledge/indexes/tags/integration.json +1 -0
- package/embedded-knowledge/indexes/tags/integrity-checking.json +1 -0
- package/embedded-knowledge/indexes/tags/intellisense.json +1 -0
- package/embedded-knowledge/indexes/tags/interface-design.json +1 -0
- package/embedded-knowledge/indexes/tags/interface-segregation.json +1 -0
- package/embedded-knowledge/indexes/tags/isolation.json +1 -0
- package/embedded-knowledge/indexes/tags/job-processing.json +1 -0
- package/embedded-knowledge/indexes/tags/keyboard-navigation.json +1 -0
- package/embedded-knowledge/indexes/tags/keywords.json +1 -0
- package/embedded-knowledge/indexes/tags/legacy-modernization.json +1 -0
- package/embedded-knowledge/indexes/tags/line-breaks.json +1 -0
- package/embedded-knowledge/indexes/tags/line-organization.json +1 -0
- package/embedded-knowledge/indexes/tags/line-positioning.json +1 -0
- package/embedded-knowledge/indexes/tags/localization.json +1 -0
- package/embedded-knowledge/indexes/tags/logging.json +1 -0
- package/embedded-knowledge/indexes/tags/loose-coupling.json +1 -0
- package/embedded-knowledge/indexes/tags/maintainability.json +1 -0
- package/embedded-knowledge/indexes/tags/memory-management.json +1 -0
- package/embedded-knowledge/indexes/tags/memory-optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/memory.json +1 -0
- package/embedded-knowledge/indexes/tags/message-design.json +1 -0
- package/embedded-knowledge/indexes/tags/message-formatting.json +1 -0
- package/embedded-knowledge/indexes/tags/message-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/metadata-driven.json +1 -0
- package/embedded-knowledge/indexes/tags/method-comparison.json +1 -0
- package/embedded-knowledge/indexes/tags/module-architecture.json +1 -0
- package/embedded-knowledge/indexes/tags/module-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/monitoring.json +1 -0
- package/embedded-knowledge/indexes/tags/multi-layer-facade.json +1 -0
- package/embedded-knowledge/indexes/tags/multi-tenancy.json +1 -0
- package/embedded-knowledge/indexes/tags/multiple-values.json +1 -0
- package/embedded-knowledge/indexes/tags/naming-conventions.json +1 -0
- package/embedded-knowledge/indexes/tags/naming.json +1 -0
- package/embedded-knowledge/indexes/tags/navigation.json +1 -0
- package/embedded-knowledge/indexes/tags/nested-statements.json +1 -0
- package/embedded-knowledge/indexes/tags/no-series-conversion.json +1 -0
- package/embedded-knowledge/indexes/tags/no-series-validation.json +1 -0
- package/embedded-knowledge/indexes/tags/no-series.json +1 -0
- package/embedded-knowledge/indexes/tags/number-generation.json +1 -0
- package/embedded-knowledge/indexes/tags/object-documentation.json +1 -0
- package/embedded-knowledge/indexes/tags/odata.json +1 -0
- package/embedded-knowledge/indexes/tags/ondelete.json +1 -0
- package/embedded-knowledge/indexes/tags/onvalidate.json +1 -0
- package/embedded-knowledge/indexes/tags/operation-delegation.json +1 -0
- package/embedded-knowledge/indexes/tags/operation-safety.json +1 -0
- package/embedded-knowledge/indexes/tags/operators.json +1 -0
- package/embedded-knowledge/indexes/tags/optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/order.json +1 -0
- package/embedded-knowledge/indexes/tags/organization.json +1 -0
- package/embedded-knowledge/indexes/tags/pages.json +1 -0
- package/embedded-knowledge/indexes/tags/parameters.json +1 -0
- package/embedded-knowledge/indexes/tags/patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/performance-optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/performance.json +1 -0
- package/embedded-knowledge/indexes/tags/placement.json +1 -0
- package/embedded-knowledge/indexes/tags/posting-codeunits.json +1 -0
- package/embedded-knowledge/indexes/tags/posting.json +1 -0
- package/embedded-knowledge/indexes/tags/preconditions.json +1 -0
- package/embedded-knowledge/indexes/tags/primary-key.json +1 -0
- package/embedded-knowledge/indexes/tags/privacy.json +1 -0
- package/embedded-knowledge/indexes/tags/process-automation.json +1 -0
- package/embedded-knowledge/indexes/tags/production.json +1 -0
- package/embedded-knowledge/indexes/tags/productivity.json +1 -0
- package/embedded-knowledge/indexes/tags/query-performance.json +1 -0
- package/embedded-knowledge/indexes/tags/queue-management.json +1 -0
- package/embedded-knowledge/indexes/tags/ranges.json +1 -0
- package/embedded-knowledge/indexes/tags/readability.json +1 -0
- package/embedded-knowledge/indexes/tags/record-access.json +1 -0
- package/embedded-knowledge/indexes/tags/record-methods.json +1 -0
- package/embedded-knowledge/indexes/tags/refactoring.json +1 -0
- package/embedded-knowledge/indexes/tags/reference.json +1 -0
- package/embedded-knowledge/indexes/tags/repeat-loops.json +1 -0
- package/embedded-knowledge/indexes/tags/repeat-statement.json +1 -0
- package/embedded-knowledge/indexes/tags/runtime-errors.json +1 -0
- package/embedded-knowledge/indexes/tags/runtime.json +1 -0
- package/embedded-knowledge/indexes/tags/safeguards.json +1 -0
- package/embedded-knowledge/indexes/tags/security.json +1 -0
- package/embedded-knowledge/indexes/tags/sequence-management.json +1 -0
- package/embedded-knowledge/indexes/tags/serialization.json +1 -0
- package/embedded-knowledge/indexes/tags/session-logmessage.json +1 -0
- package/embedded-knowledge/indexes/tags/session.json +1 -0
- package/embedded-knowledge/indexes/tags/setloadfields.json +1 -0
- package/embedded-knowledge/indexes/tags/shortcuts.json +1 -0
- package/embedded-knowledge/indexes/tags/sift.json +1 -0
- package/embedded-knowledge/indexes/tags/singleinstance.json +1 -0
- package/embedded-knowledge/indexes/tags/spacing.json +1 -0
- package/embedded-knowledge/indexes/tags/sql-translation.json +1 -0
- package/embedded-knowledge/indexes/tags/standards.json +1 -0
- package/embedded-knowledge/indexes/tags/statements.json +1 -0
- package/embedded-knowledge/indexes/tags/streaming.json +1 -0
- package/embedded-knowledge/indexes/tags/strong-typing.json +1 -0
- package/embedded-knowledge/indexes/tags/structural-patterns.json +1 -0
- package/embedded-knowledge/indexes/tags/structure.json +1 -0
- package/embedded-knowledge/indexes/tags/subscribers.json +1 -0
- package/embedded-knowledge/indexes/tags/switch.json +1 -0
- package/embedded-knowledge/indexes/tags/symbol-search.json +1 -0
- package/embedded-knowledge/indexes/tags/syntax.json +1 -0
- package/embedded-knowledge/indexes/tags/systemid.json +1 -0
- package/embedded-knowledge/indexes/tags/table-configuration.json +1 -0
- package/embedded-knowledge/indexes/tags/table-events.json +1 -0
- package/embedded-knowledge/indexes/tags/table-keys.json +1 -0
- package/embedded-knowledge/indexes/tags/table-safety.json +1 -0
- package/embedded-knowledge/indexes/tags/task-scheduler.json +1 -0
- package/embedded-knowledge/indexes/tags/telemetry.json +1 -0
- package/embedded-knowledge/indexes/tags/template-method.json +1 -0
- package/embedded-knowledge/indexes/tags/temporary-tables.json +1 -0
- package/embedded-knowledge/indexes/tags/testfield.json +1 -0
- package/embedded-knowledge/indexes/tags/tradeoffs.json +1 -0
- package/embedded-knowledge/indexes/tags/triggers.json +1 -0
- package/embedded-knowledge/indexes/tags/troubleshooting.json +1 -0
- package/embedded-knowledge/indexes/tags/type-safety.json +1 -0
- package/embedded-knowledge/indexes/tags/url-structure.json +1 -0
- package/embedded-knowledge/indexes/tags/user-experience.json +1 -0
- package/embedded-knowledge/indexes/tags/user-feedback.json +1 -0
- package/embedded-knowledge/indexes/tags/user-interface.json +1 -0
- package/embedded-knowledge/indexes/tags/validation-feedback.json +1 -0
- package/embedded-knowledge/indexes/tags/validation.json +1 -0
- package/embedded-knowledge/indexes/tags/variables.json +1 -0
- package/embedded-knowledge/indexes/tags/verbosity.json +1 -0
- package/embedded-knowledge/indexes/tags/vs-code.json +1 -0
- package/embedded-knowledge/indexes/tags/web-services.json +1 -0
- package/embedded-knowledge/indexes/tags/workflow-management.json +1 -0
- package/embedded-knowledge/indexes/tags/workflow-optimization.json +1 -0
- package/embedded-knowledge/indexes/tags/workflow-templates.json +1 -0
- package/embedded-knowledge/indexes/tags/workspace.json +1 -0
- package/embedded-knowledge/indexes/tags/xml-documentation.json +1 -0
- package/embedded-knowledge/indexes/topic-relationships.json +128 -0
- package/embedded-knowledge/methodologies/index.json +81 -0
- package/embedded-knowledge/methodologies/phases/analysis-full.md +208 -0
- package/embedded-knowledge/methodologies/phases/analysis-quick.md +44 -0
- package/embedded-knowledge/methodologies/phases/analysis.md +182 -0
- package/embedded-knowledge/methodologies/phases/execution-validation-full.md +174 -0
- package/embedded-knowledge/methodologies/phases/execution-validation-quick.md +31 -0
- package/embedded-knowledge/methodologies/phases/execution-validation.md +174 -0
- package/embedded-knowledge/methodologies/phases/performance-full.md +211 -0
- package/embedded-knowledge/methodologies/phases/performance-quick.md +32 -0
- package/embedded-knowledge/methodologies/phases/performance.md +211 -0
- package/embedded-knowledge/methodologies/phases/verification-full.md +162 -0
- package/embedded-knowledge/methodologies/phases/verification-quick.md +48 -0
- package/embedded-knowledge/methodologies/phases/verification.md +146 -0
- package/embedded-knowledge/methodologies/workflow-enforcement.md +142 -0
- package/embedded-knowledge/methodologies/workflows/code-review-workflow.md +99 -0
- package/embedded-knowledge/specialists/alex-architect.md +216 -0
- package/embedded-knowledge/specialists/casey-copilot.md +226 -0
- package/embedded-knowledge/specialists/chris-config.md +267 -0
- package/embedded-knowledge/specialists/dean-debug.md +222 -0
- package/embedded-knowledge/specialists/eva-errors.md +235 -0
- package/embedded-knowledge/specialists/jordan-bridge.md +235 -0
- package/embedded-knowledge/specialists/logan-legacy.md +209 -0
- package/embedded-knowledge/specialists/maya-mentor.md +211 -0
- package/embedded-knowledge/specialists/morgan-market.md +226 -0
- package/embedded-knowledge/specialists/quinn-tester.md +235 -0
- package/embedded-knowledge/specialists/roger-reviewer.md +234 -0
- package/embedded-knowledge/specialists/sam-coder.md +359 -0
- package/embedded-knowledge/specialists/seth-security.md +235 -0
- package/embedded-knowledge/specialists/taylor-docs.md +257 -0
- package/embedded-knowledge/specialists/uma-ux.md +235 -0
- package/package.json +6 -6
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
# AGENTS.md - Repository Context for AI Assistants
|
|
2
|
+
|
|
3
|
+
## Repository Purpose
|
|
4
|
+
This is the **knowledge content repository** for the BC Code Intelligence (bc-code-intel) system.
|
|
5
|
+
|
|
6
|
+
## What This Repo Contains
|
|
7
|
+
- **BC Domain Knowledge**: 87+ atomic topics across 24 domains (performance, API design, security, etc.)
|
|
8
|
+
- **Methodology Frameworks**: Step-by-step AI workflow guidance for systematic optimization
|
|
9
|
+
- **Specialists Definitions**: 14 AI persona configurations with domain expertise and behavioral constraints
|
|
10
|
+
- **Strategic Prompts**: High-level prompts for common BC development scenarios
|
|
11
|
+
- **Pure Markdown Content**: No code whatsoever - only knowledge content with YAML frontmatter
|
|
12
|
+
|
|
13
|
+
## What This Repo Does NOT Contain
|
|
14
|
+
- TypeScript/JavaScript code (that's in bc-code-intelligence-mcp repository)
|
|
15
|
+
- MCP server implementation or protocol handling
|
|
16
|
+
- Build processes, dependencies, or package.json files
|
|
17
|
+
- Compiled or generated content
|
|
18
|
+
|
|
19
|
+
## Repository Structure
|
|
20
|
+
```
|
|
21
|
+
domains/ # BC knowledge organized by domain
|
|
22
|
+
├── performance/ # Performance optimization patterns
|
|
23
|
+
├── api-design/ # REST/OData API best practices
|
|
24
|
+
├── data-architecture/ # Table design and relationships
|
|
25
|
+
├── security/ # Authentication and authorization
|
|
26
|
+
└── [20 other domains]/
|
|
27
|
+
|
|
28
|
+
methodologies/ # AI workflow frameworks
|
|
29
|
+
├── phases/ # Systematic analysis phases
|
|
30
|
+
└── workflows/ # Complete optimization workflows
|
|
31
|
+
|
|
32
|
+
specialists/ # AI persona definitions
|
|
33
|
+
├── alex-architect.md # Strategic Planning & Architecture
|
|
34
|
+
├── casey-copilot.md # AI-Enhanced Development Coach
|
|
35
|
+
├── dean-debug.md # Performance & Troubleshooting
|
|
36
|
+
├── eva-errors.md # Error Handling & Exception Management
|
|
37
|
+
├── jordan-bridge.md # Systems Connection & Event-Driven Design
|
|
38
|
+
├── logan-legacy.md # Legacy Code & Version Migration
|
|
39
|
+
├── maya-mentor.md # Learning & Skill Development
|
|
40
|
+
├── morgan-market.md # AppSource & ISV Business Expert
|
|
41
|
+
├── quinn-tester.md # Quality Validation & Test Design
|
|
42
|
+
├── roger-reviewer.md # Code Quality & Review Standards
|
|
43
|
+
├── sam-coder.md # Efficient Implementation Expert
|
|
44
|
+
├── seth-security.md # Security & Permission Management
|
|
45
|
+
├── taylor-docs.md # Documentation & Knowledge Management
|
|
46
|
+
└── uma-ux.md # User Experience & Interface Design
|
|
47
|
+
|
|
48
|
+
prompts/ # Strategic prompts
|
|
49
|
+
├── analyze-performance.md
|
|
50
|
+
├── review-architecture.md
|
|
51
|
+
└── [other prompts]/
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Content Standards
|
|
55
|
+
- **Atomic Topics**: One focused concept per markdown file
|
|
56
|
+
- **YAML Frontmatter**: Rich metadata for AI consumption including:
|
|
57
|
+
- BC version compatibility (`bc_versions: "14+"`)
|
|
58
|
+
- Difficulty level, tags, domain classification
|
|
59
|
+
- Cross-references to related topics
|
|
60
|
+
- **Version Awareness**: All content specifies BC version compatibility
|
|
61
|
+
- **Consistent Structure**: Follow established patterns for headings, examples, cross-references
|
|
62
|
+
|
|
63
|
+
## AI Assistant Guidelines When Working With This Repo
|
|
64
|
+
1. **Content Focus**: Maintain accuracy of BC technical information
|
|
65
|
+
2. **Structure Integrity**: Preserve YAML frontmatter completeness and consistency
|
|
66
|
+
3. **Version Compatibility**: Always specify BC version ranges for patterns/features
|
|
67
|
+
4. **Cross-References**: Maintain accurate links between related topics
|
|
68
|
+
5. **Atomic Principle**: Keep each file focused on one specific concept
|
|
69
|
+
6. **NO CODE**: This repository contains NO executable code - knowledge only
|
|
70
|
+
7. **Link Integrity**: Ensure internal topic references remain valid
|
|
71
|
+
|
|
72
|
+
## GitHub Copilot Coding Agent Guidelines
|
|
73
|
+
|
|
74
|
+
### Content Creation Patterns
|
|
75
|
+
When creating new knowledge topics, ALWAYS use this YAML frontmatter template:
|
|
76
|
+
```yaml
|
|
77
|
+
---
|
|
78
|
+
title: "Descriptive Topic Title"
|
|
79
|
+
domain: "performance|api-design|security|etc"
|
|
80
|
+
bc_versions: "14+|18+|19+|specific-range"
|
|
81
|
+
difficulty: "beginner|intermediate|advanced"
|
|
82
|
+
tags: ["tag1", "tag2", "tag3"]
|
|
83
|
+
related_topics:
|
|
84
|
+
- "path/to/related/topic.md"
|
|
85
|
+
- "another/related/topic.md"
|
|
86
|
+
applies_to:
|
|
87
|
+
- "AL Language"
|
|
88
|
+
- "Business Central Server"
|
|
89
|
+
- "Web Client"
|
|
90
|
+
last_updated: "2025-01-01"
|
|
91
|
+
---
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### File Naming Conventions
|
|
95
|
+
- Use kebab-case for all filenames: `api-pagination-patterns.md`
|
|
96
|
+
- Include domain prefix when needed: `performance-caching-strategies.md`
|
|
97
|
+
- Keep names descriptive but concise (max 50 characters)
|
|
98
|
+
- Avoid abbreviations unless universally understood
|
|
99
|
+
|
|
100
|
+
### Content Structure Requirements
|
|
101
|
+
1. **H1 Title**: Must match YAML frontmatter title exactly
|
|
102
|
+
2. **Overview Section**: 2-3 sentence summary of the concept
|
|
103
|
+
3. **Implementation Details**: Step-by-step guidance with BC code examples
|
|
104
|
+
4. **Best Practices**: Bulleted list of key recommendations
|
|
105
|
+
5. **Common Pitfalls**: What to avoid with explanations
|
|
106
|
+
6. **Version Notes**: BC version-specific considerations
|
|
107
|
+
7. **See Also**: Cross-references to related topics
|
|
108
|
+
|
|
109
|
+
### Cross-Reference Validation
|
|
110
|
+
- Use relative paths: `../performance/caching-strategies.md`
|
|
111
|
+
- Verify target files exist before creating references
|
|
112
|
+
- Update both directions when creating new relationships
|
|
113
|
+
- Use descriptive link text: `[API Pagination Patterns](../api-design/pagination-patterns.md)`
|
|
114
|
+
|
|
115
|
+
### Domain Organization Rules
|
|
116
|
+
```
|
|
117
|
+
domains/
|
|
118
|
+
├── performance/ # Speed, memory, resource optimization
|
|
119
|
+
├── api-design/ # REST, OData, integration patterns
|
|
120
|
+
├── security/ # Authentication, authorization, data protection
|
|
121
|
+
├── data-architecture/ # Table design, relationships, normalization
|
|
122
|
+
├── error-handling/ # Exception management, validation
|
|
123
|
+
├── testing/ # Unit, integration, performance testing
|
|
124
|
+
└── [other domains]/ # Maintain alphabetical order
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Validation Checklist
|
|
128
|
+
Before committing new content, verify:
|
|
129
|
+
- [ ] YAML frontmatter is complete and valid
|
|
130
|
+
- [ ] BC version compatibility is specified
|
|
131
|
+
- [ ] Cross-references use relative paths and exist
|
|
132
|
+
- [ ] Content is atomic (one focused concept)
|
|
133
|
+
- [ ] No executable code is included
|
|
134
|
+
- [ ] Examples use realistic BC scenarios
|
|
135
|
+
- [ ] Tags are consistent with existing taxonomy
|
|
136
|
+
|
|
137
|
+
### Common Anti-Patterns to Avoid
|
|
138
|
+
- ❌ **Code Repositories**: Never include .cs, .al, .js, or executable files
|
|
139
|
+
- ❌ **Generic Examples**: Avoid "MyTable" - use realistic BC entities
|
|
140
|
+
- ❌ **Version Ambiguity**: Never omit BC version compatibility
|
|
141
|
+
- ❌ **Broken Cross-References**: Always validate links before committing
|
|
142
|
+
- ❌ **Topic Drift**: Keep each file focused on ONE concept
|
|
143
|
+
- ❌ **Outdated Information**: Update last_updated when making changes
|
|
144
|
+
|
|
145
|
+
## Common Tasks
|
|
146
|
+
- Adding new BC knowledge topics with proper frontmatter and validation
|
|
147
|
+
- Updating existing topics for new BC versions with migration notes
|
|
148
|
+
- Creating bidirectional cross-references between related topics
|
|
149
|
+
- Validating YAML frontmatter structure and consistency
|
|
150
|
+
- Organizing content within domain hierarchies and maintaining taxonomy
|
|
151
|
+
- Performing content audits for accuracy and BC version compatibility
|
|
152
|
+
|
|
153
|
+
## GitHub Copilot Integration Workflows
|
|
154
|
+
|
|
155
|
+
### New Topic Creation Workflow
|
|
156
|
+
1. **Domain Classification**: Determine primary domain from existing taxonomy
|
|
157
|
+
2. **Version Research**: Identify minimum BC version and any version-specific notes
|
|
158
|
+
3. **Template Application**: Use YAML frontmatter template with all required fields
|
|
159
|
+
4. **Content Development**: Follow structure requirements for consistency
|
|
160
|
+
5. **Cross-Reference Integration**: Add to related topics and update existing references
|
|
161
|
+
6. **Validation**: Run through validation checklist before committing
|
|
162
|
+
|
|
163
|
+
### Content Update Workflow
|
|
164
|
+
1. **Impact Assessment**: Identify which BC versions are affected
|
|
165
|
+
2. **Cross-Reference Review**: Check if related topics need updates
|
|
166
|
+
3. **Version Compatibility**: Update bc_versions field if needed
|
|
167
|
+
4. **Last Updated**: Always update timestamp when making changes
|
|
168
|
+
5. **Validation**: Ensure all links and references remain valid
|
|
169
|
+
|
|
170
|
+
### Quality Assurance Patterns
|
|
171
|
+
- **Atomic Content Principle**: Each file covers exactly one BC concept
|
|
172
|
+
- **Consistent Terminology**: Use official Microsoft BC terminology
|
|
173
|
+
- **Practical Examples**: Include realistic Business Central scenarios
|
|
174
|
+
- **Version Awareness**: Every pattern specifies BC version compatibility
|
|
175
|
+
- **Link Validation**: Cross-references must be bidirectional and accurate
|
|
176
|
+
|
|
177
|
+
## Integration
|
|
178
|
+
This repository is consumed by the MCP server via git submodule as the embedded knowledge layer (Layer 0).
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Contributing to Business Central Knowledge Base
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
This repository contains pure knowledge content for Business Central best practices. All content is markdown with YAML frontmatter.
|
|
5
|
+
|
|
6
|
+
## Content Standards
|
|
7
|
+
|
|
8
|
+
### File Structure
|
|
9
|
+
Each knowledge topic follows this structure:
|
|
10
|
+
```markdown
|
|
11
|
+
---
|
|
12
|
+
title: "Topic Title"
|
|
13
|
+
domain: "performance"
|
|
14
|
+
difficulty: "intermediate"
|
|
15
|
+
bc_versions: "14+"
|
|
16
|
+
tags: ["sift", "optimization", "database"]
|
|
17
|
+
related_topics: ["topic-id-1", "topic-id-2"]
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Topic Title
|
|
21
|
+
|
|
22
|
+
Content here following established patterns...
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Quality Requirements
|
|
26
|
+
- **Atomic Focus**: One concept per file
|
|
27
|
+
- **BC Version Compatibility**: Always specify version ranges
|
|
28
|
+
- **Complete Frontmatter**: All required YAML fields present
|
|
29
|
+
- **Cross-References**: Link to related topics where appropriate
|
|
30
|
+
- **Consistent Formatting**: Follow existing markdown patterns
|
|
31
|
+
|
|
32
|
+
## Submission Process
|
|
33
|
+
1. Fork the repository
|
|
34
|
+
2. Create content following established patterns in appropriate domain directory
|
|
35
|
+
3. Ensure YAML frontmatter is complete and valid
|
|
36
|
+
4. Test that internal links work correctly
|
|
37
|
+
5. Submit pull request with clear description of the knowledge added/updated
|
|
38
|
+
|
|
39
|
+
## Content Validation
|
|
40
|
+
Pull requests are automatically validated for:
|
|
41
|
+
- YAML frontmatter completeness
|
|
42
|
+
- BC version compatibility format
|
|
43
|
+
- Internal link integrity
|
|
44
|
+
- Proper domain/directory placement
|
|
45
|
+
- Markdown formatting consistency
|
|
46
|
+
|
|
47
|
+
## Domain Organization
|
|
48
|
+
Place content in appropriate domain directories:
|
|
49
|
+
- `domains/performance/` - Performance optimization
|
|
50
|
+
- `domains/api-design/` - REST/OData patterns
|
|
51
|
+
- `domains/security/` - Authentication/authorization
|
|
52
|
+
- `domains/data-architecture/` - Table design
|
|
53
|
+
- [See full domain list in repository structure]
|
|
54
|
+
|
|
55
|
+
## Getting Help
|
|
56
|
+
- Review existing topics for patterns
|
|
57
|
+
- Check AGENTS.md for AI assistant guidance
|
|
58
|
+
- Open issues for questions about content organization
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Business Central Knowledge Base
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# BC Code Intelligence Knowledge Base
|
|
2
|
+
|
|
3
|
+
Pure knowledge content repository for Business Central best practices, methodologies, and domain expertise.
|
|
4
|
+
|
|
5
|
+
## Structure
|
|
6
|
+
- `/domains/` - 24 BC domains with 87+ atomic knowledge topics
|
|
7
|
+
- `/methodologies/` - AI workflow frameworks for systematic optimization
|
|
8
|
+
- `/specialists/` - 14 AI persona definitions for focused expertise
|
|
9
|
+
- `/prompts/` - Strategic prompts for common BC scenarios
|
|
10
|
+
|
|
11
|
+
## Specialists
|
|
12
|
+
Complete roster of 14 BC development specialists:
|
|
13
|
+
- **Alex Architect** - Strategic Planning & Architecture
|
|
14
|
+
- **Casey Copilot** - AI-Enhanced Development Coach
|
|
15
|
+
- **Dean Debug** - Performance & Troubleshooting
|
|
16
|
+
- **Eva Errors** - Error Handling & Exception Management
|
|
17
|
+
- **Jordan Bridge** - Systems Connection & Event-Driven Design
|
|
18
|
+
- **Logan Legacy** - Legacy Code & Version Migration
|
|
19
|
+
- **Maya Mentor** - Learning & Skill Development
|
|
20
|
+
- **Morgan Market** - AppSource & ISV Business Expert
|
|
21
|
+
- **Quinn Tester** - Quality Validation & Test Design
|
|
22
|
+
- **Roger Reviewer** - Code Quality & Review Standards
|
|
23
|
+
- **Sam Coder** - Efficient Implementation Expert
|
|
24
|
+
- **Seth Security** - Security & Permission Management
|
|
25
|
+
- **Taylor Docs** - Documentation & Knowledge Management
|
|
26
|
+
- **Uma UX** - User Experience & Interface Design
|
|
27
|
+
|
|
28
|
+
## Usage
|
|
29
|
+
This repository is consumed by the BC Code Intelligence MCP server via git submodule. Content is pure markdown with YAML frontmatter.
|
|
30
|
+
|
|
31
|
+
## Contributing
|
|
32
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for content standards and submission process.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "API Delegate Operation Pattern"
|
|
3
|
+
domain: "alex-architect"
|
|
4
|
+
difficulty: "advanced"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["api-delegates", "operation-delegation", "api-patterns", "extensibility"]
|
|
7
|
+
prerequisites: ["api-basics", "interface-implementation", "event-handling"]
|
|
8
|
+
samples: "samples/api-delegate-operation.md"
|
|
9
|
+
related_topics: ["api-interface-design-patterns", "event-bridge-pattern-al"]
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# API Delegate Operation Pattern
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
The API Delegate Operation Pattern enables flexible API architectures by delegating specific operations to external handlers while maintaining consistent API contracts. This pattern is essential for building extensible APIs that can be enhanced by different modules without modifying core API logic.
|
|
17
|
+
|
|
18
|
+
**Key Benefit**: Provides extensibility points in APIs while maintaining backward compatibility and clear separation of concerns.
|
|
19
|
+
|
|
20
|
+
## Strategic Framework
|
|
21
|
+
|
|
22
|
+
### Delegation Architecture
|
|
23
|
+
Design APIs with explicit delegation points where external modules can register operation handlers, enabling customization without API modification.
|
|
24
|
+
|
|
25
|
+
### Contract Preservation
|
|
26
|
+
Maintain consistent API contracts while allowing internal operation logic to be delegated to specialized handlers based on context or configuration.
|
|
27
|
+
|
|
28
|
+
### Dynamic Handler Selection
|
|
29
|
+
Implement runtime handler selection mechanisms that choose appropriate delegates based on operation parameters, user context, or system configuration.
|
|
30
|
+
|
|
31
|
+
## Core Implementation Patterns
|
|
32
|
+
|
|
33
|
+
### Operation Delegate Interface
|
|
34
|
+
Define clear interfaces for operation delegates that specify input parameters, expected outputs, and error handling contracts.
|
|
35
|
+
|
|
36
|
+
### Delegate Registry Pattern
|
|
37
|
+
Implement registration systems where modules can register their operation delegates, enabling discovery and selection at runtime.
|
|
38
|
+
|
|
39
|
+
### Chain of Responsibility Integration
|
|
40
|
+
Combine delegation with chain of responsibility patterns to enable multiple delegates to process operations in sequence.
|
|
41
|
+
|
|
42
|
+
## Advanced Delegation Strategies
|
|
43
|
+
|
|
44
|
+
### Contextual Delegation
|
|
45
|
+
Use operation context (user, company, feature flags) to determine which delegate should handle specific operations.
|
|
46
|
+
|
|
47
|
+
### Fallback Delegate Chains
|
|
48
|
+
Implement fallback mechanisms where multiple delegates can be attempted if primary delegates fail or are unavailable.
|
|
49
|
+
|
|
50
|
+
### Composite Operation Delegation
|
|
51
|
+
Design delegates that can compose multiple sub-operations, enabling complex operation workflows through delegation.
|
|
52
|
+
|
|
53
|
+
## Performance Considerations
|
|
54
|
+
|
|
55
|
+
### Delegate Caching
|
|
56
|
+
Cache delegate instances and registration information to minimize lookup overhead during high-frequency API operations.
|
|
57
|
+
|
|
58
|
+
### Lazy Delegate Loading
|
|
59
|
+
Implement lazy loading patterns for delegates to avoid unnecessary initialization overhead for unused operation paths.
|
|
60
|
+
|
|
61
|
+
### Operation Profiling
|
|
62
|
+
Monitor delegate operation performance to identify bottlenecks and optimize critical delegation paths.
|
|
63
|
+
|
|
64
|
+
## Best Practices
|
|
65
|
+
|
|
66
|
+
### Design Principles
|
|
67
|
+
- Define clear delegate contracts with explicit input/output specifications
|
|
68
|
+
- Implement robust error handling for delegate failures
|
|
69
|
+
- Use dependency injection for delegate registration and discovery
|
|
70
|
+
- Document delegation points and available extension mechanisms
|
|
71
|
+
|
|
72
|
+
### Security Considerations
|
|
73
|
+
- Validate delegate operations for security compliance
|
|
74
|
+
- Implement authorization checks for delegate registration
|
|
75
|
+
- Ensure delegate operations respect user permissions and data access rules
|
|
76
|
+
|
|
77
|
+
## Common Pitfalls
|
|
78
|
+
|
|
79
|
+
### Over-Delegation
|
|
80
|
+
Avoid creating too many delegation points that make API behavior unpredictable or difficult to debug.
|
|
81
|
+
|
|
82
|
+
### Delegate Coupling
|
|
83
|
+
Prevent tight coupling between API logic and specific delegate implementations that reduces flexibility.
|
|
84
|
+
|
|
85
|
+
### Performance Overhead
|
|
86
|
+
Be mindful of delegation overhead in performance-critical scenarios where direct operation execution might be more appropriate.
|
|
87
|
+
|
|
88
|
+
*Complete delegation implementation: samples/api-delegate-operation.md*
|
|
89
|
+
*API design patterns: api-interface-design-patterns.md*
|
|
90
|
+
*Event-driven delegation: event-bridge-pattern-al.md*
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "API Fieldset Registration Pattern"
|
|
3
|
+
domain: "alex-architect"
|
|
4
|
+
difficulty: "intermediate"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["api-fieldsets", "field-registration", "api-extensibility", "metadata-driven"]
|
|
7
|
+
prerequisites: ["api-basics", "fieldset-concepts", "registration-patterns"]
|
|
8
|
+
samples: "samples/api-fieldset-registration.md"
|
|
9
|
+
related_topics: ["api-interface-design-patterns", "api-delegate-operation-pattern"]
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# API Fieldset Registration Pattern
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
The API Fieldset Registration Pattern enables dynamic field management in APIs by allowing modules to register field definitions that can be included in API responses. This pattern supports extensible APIs where different modules can contribute fields without modifying core API logic.
|
|
17
|
+
|
|
18
|
+
**Key Benefit**: Enables flexible, extensible APIs where field availability can be determined dynamically based on installed modules and user permissions.
|
|
19
|
+
|
|
20
|
+
## Strategic Framework
|
|
21
|
+
|
|
22
|
+
### Dynamic Field Discovery
|
|
23
|
+
Implement registration mechanisms where modules can register field definitions that become available for API consumption based on runtime conditions.
|
|
24
|
+
|
|
25
|
+
### Metadata-Driven Selection
|
|
26
|
+
Use metadata to describe field characteristics, enabling intelligent field selection based on client requirements and system capabilities.
|
|
27
|
+
|
|
28
|
+
### Permission-Aware Fields
|
|
29
|
+
Integrate field registration with permission systems to ensure only authorized fields are exposed through API responses.
|
|
30
|
+
|
|
31
|
+
## Core Registration Patterns
|
|
32
|
+
|
|
33
|
+
### Module-Based Registration
|
|
34
|
+
Enable modules to register their field contributions during initialization, allowing for modular field extension without core API changes.
|
|
35
|
+
|
|
36
|
+
### Conditional Field Registration
|
|
37
|
+
Implement registration logic that considers system configuration, feature flags, and user context to determine field availability.
|
|
38
|
+
|
|
39
|
+
### Hierarchical Field Organization
|
|
40
|
+
Organize registered fields in hierarchical structures that support grouping, categorization, and efficient lookup operations.
|
|
41
|
+
|
|
42
|
+
## Implementation Strategies
|
|
43
|
+
|
|
44
|
+
### Registry Architecture
|
|
45
|
+
Design field registries that support efficient lookup, validation, and metadata management for dynamic field selection.
|
|
46
|
+
|
|
47
|
+
### Field Metadata Management
|
|
48
|
+
Implement comprehensive field metadata including data types, validation rules, permission requirements, and display characteristics.
|
|
49
|
+
|
|
50
|
+
### Selection Optimization
|
|
51
|
+
Optimize field selection algorithms to minimize performance impact when processing large numbers of registered fields.
|
|
52
|
+
|
|
53
|
+
## Advanced Registration Features
|
|
54
|
+
|
|
55
|
+
### Field Dependency Management
|
|
56
|
+
Implement dependency tracking between fields to ensure required fields are included when dependent fields are selected.
|
|
57
|
+
|
|
58
|
+
### Field Transformation Pipelines
|
|
59
|
+
Design transformation pipelines that can modify field values during API response generation based on registration metadata.
|
|
60
|
+
|
|
61
|
+
### Caching Strategies
|
|
62
|
+
Implement caching for field registration data to improve API response performance for frequently accessed field sets.
|
|
63
|
+
|
|
64
|
+
## Performance Considerations
|
|
65
|
+
|
|
66
|
+
### Registration Overhead
|
|
67
|
+
Minimize registration overhead through efficient storage and indexing of field metadata and registration information.
|
|
68
|
+
|
|
69
|
+
### Selection Performance
|
|
70
|
+
Optimize field selection algorithms to support high-frequency API operations without significant performance degradation.
|
|
71
|
+
|
|
72
|
+
### Memory Management
|
|
73
|
+
Implement efficient memory management for field registration data to prevent memory leaks and excessive resource usage.
|
|
74
|
+
|
|
75
|
+
## Security and Validation
|
|
76
|
+
|
|
77
|
+
### Permission Integration
|
|
78
|
+
- Integrate field registration with permission systems
|
|
79
|
+
- Validate user authorization for specific field access
|
|
80
|
+
- Implement field-level security policies
|
|
81
|
+
- Support dynamic permission evaluation
|
|
82
|
+
|
|
83
|
+
### Data Validation
|
|
84
|
+
- Validate registered field definitions for correctness
|
|
85
|
+
- Implement runtime validation of field values
|
|
86
|
+
- Support custom validation rules per registered field
|
|
87
|
+
- Ensure data type consistency across registrations
|
|
88
|
+
|
|
89
|
+
## Best Practices
|
|
90
|
+
|
|
91
|
+
### Registration Design
|
|
92
|
+
- Use strongly-typed field registration interfaces
|
|
93
|
+
- Implement clear naming conventions for registered fields
|
|
94
|
+
- Provide comprehensive metadata for each registered field
|
|
95
|
+
- Support registration validation and error reporting
|
|
96
|
+
|
|
97
|
+
### API Integration
|
|
98
|
+
- Design consistent field selection patterns across API endpoints
|
|
99
|
+
- Implement clear documentation for available fields
|
|
100
|
+
- Support field discovery mechanisms for API consumers
|
|
101
|
+
- Provide examples of field selection usage
|
|
102
|
+
|
|
103
|
+
## Common Pitfalls
|
|
104
|
+
|
|
105
|
+
### Over-Registration
|
|
106
|
+
Avoid registering too many fields that can overwhelm API consumers and impact performance through excessive selection overhead.
|
|
107
|
+
|
|
108
|
+
### Inconsistent Metadata
|
|
109
|
+
Prevent inconsistent field metadata that can lead to unpredictable API behavior and difficult debugging scenarios.
|
|
110
|
+
|
|
111
|
+
*Complete fieldset registration examples: samples/api-fieldset-registration.md*
|
|
112
|
+
*API interface patterns: api-interface-design-patterns.md*
|
|
113
|
+
*Dynamic API patterns: api-delegate-operation-pattern.md*
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "API Interface Design Patterns"
|
|
3
|
+
domain: "alex-architect"
|
|
4
|
+
difficulty: "intermediate"
|
|
5
|
+
bc_versions: "14+"
|
|
6
|
+
tags: ["api-interfaces", "contract-design", "api-patterns", "interface-segregation"]
|
|
7
|
+
prerequisites: ["interface-basics", "api-fundamentals", "contract-design"]
|
|
8
|
+
samples: "samples/api-interface-design.md"
|
|
9
|
+
related_topics: ["api-delegate-operation-pattern", "api-fieldset-registration-pattern"]
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# API Interface Design Patterns
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
API Interface Design Patterns provide proven approaches for creating maintainable, extensible, and user-friendly API contracts. These patterns ensure APIs remain stable while supporting evolution and provide clear contracts for consumers.
|
|
17
|
+
|
|
18
|
+
**Key Benefit**: Creates predictable, maintainable API contracts that support long-term evolution without breaking existing consumers.
|
|
19
|
+
|
|
20
|
+
## Core Design Principles
|
|
21
|
+
|
|
22
|
+
### Interface Segregation
|
|
23
|
+
Design focused interfaces that serve specific purposes rather than monolithic interfaces that attempt to handle all scenarios.
|
|
24
|
+
|
|
25
|
+
### Contract Stability
|
|
26
|
+
Maintain backward compatibility through careful interface evolution strategies and versioning approaches.
|
|
27
|
+
|
|
28
|
+
### Consumer-Centric Design
|
|
29
|
+
Design interfaces from the consumer perspective, optimizing for common usage patterns and developer experience.
|
|
30
|
+
|
|
31
|
+
## Essential Interface Patterns
|
|
32
|
+
|
|
33
|
+
### Command-Query Separation
|
|
34
|
+
Separate interfaces for operations that modify state (commands) from those that retrieve data (queries), enabling clearer contracts and better optimization opportunities.
|
|
35
|
+
|
|
36
|
+
### Fluent Interface Pattern
|
|
37
|
+
Design method chaining interfaces that enable expressive, readable API usage while maintaining type safety and clear operation sequencing.
|
|
38
|
+
|
|
39
|
+
### Builder Interface Pattern
|
|
40
|
+
Implement builder-style interfaces for complex object construction scenarios where multiple optional parameters need to be specified.
|
|
41
|
+
|
|
42
|
+
## Versioning and Evolution Strategies
|
|
43
|
+
|
|
44
|
+
### Additive Interface Evolution
|
|
45
|
+
Design interfaces to support evolution through additive changes that don't break existing consumers while enabling new functionality.
|
|
46
|
+
|
|
47
|
+
### Interface Composition
|
|
48
|
+
Use interface composition to build complex API contracts from smaller, focused interface components that can evolve independently.
|
|
49
|
+
|
|
50
|
+
### Deprecation Patterns
|
|
51
|
+
Implement clear deprecation strategies that provide migration paths for consumers while enabling interface evolution.
|
|
52
|
+
|
|
53
|
+
## Advanced Interface Patterns
|
|
54
|
+
|
|
55
|
+
### Contextual Interface Adaptation
|
|
56
|
+
Design interfaces that adapt their behavior based on context (user permissions, feature flags, system configuration) while maintaining consistent contracts.
|
|
57
|
+
|
|
58
|
+
### Generic Interface Patterns
|
|
59
|
+
Use generic interfaces to provide type-safe operations across different data types while maintaining consistent operation patterns.
|
|
60
|
+
|
|
61
|
+
### Callback Interface Integration
|
|
62
|
+
Integrate callback interfaces for asynchronous operations and event handling while maintaining clear contract boundaries.
|
|
63
|
+
|
|
64
|
+
## Implementation Guidelines
|
|
65
|
+
|
|
66
|
+
### Parameter Design
|
|
67
|
+
- Use strongly-typed parameters with clear naming conventions
|
|
68
|
+
- Implement validation at interface boundaries
|
|
69
|
+
- Provide clear documentation for parameter requirements and constraints
|
|
70
|
+
- Consider parameter object patterns for complex method signatures
|
|
71
|
+
|
|
72
|
+
### Return Value Patterns
|
|
73
|
+
- Design consistent return value patterns across interface methods
|
|
74
|
+
- Use result objects for operations that can fail with detailed error information
|
|
75
|
+
- Implement null object patterns where appropriate to avoid null reference issues
|
|
76
|
+
|
|
77
|
+
## Best Practices
|
|
78
|
+
|
|
79
|
+
### Documentation Standards
|
|
80
|
+
- Provide comprehensive interface documentation with examples
|
|
81
|
+
- Document expected behaviors, side effects, and error conditions
|
|
82
|
+
- Include performance characteristics and usage guidelines
|
|
83
|
+
- Maintain versioning documentation for interface evolution
|
|
84
|
+
|
|
85
|
+
### Error Handling Design
|
|
86
|
+
- Design consistent error handling patterns across all interface methods
|
|
87
|
+
- Use typed exceptions or result objects for error communication
|
|
88
|
+
- Provide actionable error messages for consumers
|
|
89
|
+
- Implement proper error recovery guidance
|
|
90
|
+
|
|
91
|
+
## Common Pitfalls
|
|
92
|
+
|
|
93
|
+
### Interface Bloat
|
|
94
|
+
Avoid creating large interfaces that try to handle too many scenarios, making them difficult to implement and maintain.
|
|
95
|
+
|
|
96
|
+
### Breaking Changes
|
|
97
|
+
Prevent accidental breaking changes through careful interface evolution planning and comprehensive testing strategies.
|
|
98
|
+
|
|
99
|
+
*Complete interface design examples: samples/api-interface-design.md*
|
|
100
|
+
*Delegation patterns: api-delegate-operation-pattern.md*
|
|
101
|
+
*Registration patterns: api-fieldset-registration-pattern.md*
|