aurelienclere-365/d365fo-cowork-plugin/d365fo-extension-strategy
- community
- ext:[{"type":"hook","description":"Pre/post lifecycle hooks"}]
Checking that the SKILL.md file is still in the repository.
Use when user asks how to extend or customize D365FO without overlayering base code. "how to extend VendTable without overlayering", "best way to add a field to SalesTable", "can I use CoC for PurchFormLetter", "extension point for SalesLine validation", "how to add logic when a customer is saved", "modify behavior of CustPostInvoice class", "extend a form without touching base objects", "what extension strategy should I use", "difference between CoC and event handler"
Install
npx vskill@latest install aurelienclere-365/d365fo-cowork-plugin/d365fo-extension-strategySemi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard
SKILL.md
D365FO Extension Strategy
Recommend the correct extension pattern for D365FO customizations that avoid overlayering. This is a prompt-only skill — it does not call MCP tools but applies D365FO extension best practices directly.
When to use
- User wants to add custom fields, logic, or UI to a standard D365FO object
- User asks which extension API to use (CoC, Event Handler, Table Extension, Form Extension)
- User asks whether a specific class or table supports a particular extension type
- User needs an X++ code skeleton to start from
- User asks about the difference between CoC and Data Event Handlers
Workflow (prompt-only — no MCP tools required)
- Understand what the user needs to change:
- Add a field -> Table Extension
- Add a UI control -> Form Extension
- Override method behavior -> Chain of Command (CoC)
- React to data events (insert / update / delete) -> Data Event Handler or CoC on table
- Add a menu item -> New Action Menu Item + new class or form
- Extend security -> Security Extension (Privilege/Duty)
- Apply the decision guide (see below).
- Provide a code skeleton from references/extension-patterns.md.
- Flag constraints for the chosen pattern (e.g., CoC requires
next, table extensions
cannot change existing field types).
- Recommend using `find_coc_extensions` (via the
d365fo-class-analysisskill) to
check whether another extension already wraps the same method before creating a new one.
Decision Guide
| Scenario | Recommended Pattern | Key Constraint | |
|---|---|---|---|
| Add custom field | Table Extension | Cannot change existing field base types | |
| Override class method | Chain of Command | Must call next — class must support CoC | |
| React to table insert/update | CoC on table OR Data Event Handler | Event Handler = post-commit, no rollback | |
| Intercept and change return value | Chain of Command only | Event Handlers cannot modify return values | |
| Add form control | Form Extension + event handler | Cannot reorder existing controls | |
| Add menu item to existing menu | Menu Extension | New class or form required | |
| Restrict/grant access to new field | Security Extension (Privilege) | Must wire to a Duty and a Role | |
| Cross-model loose coupling | Data Event Handler | Runs after commit — cannot be cancelled |
Code Skeleton: CoC on a class method
Code Skeleton: Data Event Handler
See references/extension-patterns.md for full skeletons covering table extensions, form extensions, and security extensions.
Notes
- Never overlayer objects outside your own model. All changes must be extensions.
- CoC > Event Handler when you need to intercept and modify behavior or parameters.
- Event Handler > CoC when you need loose coupling or only need to react post-commit.
- Always check for existing CoC extensions (via
d365fo-class-analysis) before writing a
new one — conflicting next chains cause hard-to-debug runtime issues.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/d365fo-extension-strategy/SKILL.md
Popularity
- 7-day trend score
- 5
Not refreshed yet.
Extension points
hookPre/post lifecycle hooks
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/aurelienclere-365/d365fo-cowork-plugin/d365fo-extension-strategy)