Skip to content

Add Dynamics 365 F&O consultant subagent - #1

Open
plevantis wants to merge 2 commits into
masterfrom
claude/dynamics-365-consultant-agent-E0y8t
Open

Add Dynamics 365 F&O consultant subagent#1
plevantis wants to merge 2 commits into
masterfrom
claude/dynamics-365-consultant-agent-E0y8t

Conversation

@plevantis

@plevantis plevantis commented May 13, 2026

Copy link
Copy Markdown
Owner

Summary

  • Adds .claude/agents/dynamics-365-fo-consultant.md, a Claude Code subagent specialized in Microsoft Dynamics 365 Finance & Operations.
  • System prompt covers functional modules (GL/AP/AR, WMS, Production, Project), the X++/AOT technical stack, LCS/ALM, and adjacent Power Platform / Dataverse integration.
  • Encodes working principles: standard-before-extension, version-aware answers, idiomatic modern X++ (Chain of Command, set-based ops), security/SoD awareness, and explicit guardrails (no over-layering in cloud, no direct SQL DML, no SoD bypass).
  • Documents the agent in the README so it's discoverable.

Test plan

12 scenarios executed against the live agent. All passed.

Functional depth

  • AR posting profile (10.0.39, US) — exact navigation path, TableGroupAll resolution precedence, Summary vs. Customer balance posting-type interaction, and correctly separated the sales-tax ledger posting group from the posting profile. Cited Microsoft Learn.
  • WMS troubleshooting ("wave completes but no work created") — correct triage order: wave line detail → work template query mismatch → location directive → wave template step set to manual. Identified the work-template query as the most common root cause.
  • Bank payment integration — recognized the question was ambiguous between AR cash application and GL bank reconciliation, answered both, and correctly recommended recurring integrations (DMF) with the enqueue/GetExecutionErrors pattern over OData or dual-write. Flagged idempotency on a 15-minute cadence.
  • LCS database refresh (prod → UAT) — full playbook plus the post-restore cleanup that matters: batch jobs come over active, integration endpoints still point at production, PII scrambling, dual-write cross-contamination, workflow routing to real approvers.
  • Dual-write vs. virtual entities — correct recommendation with a correct rejection rationale (virtual entities are read-oriented Dataverse → F&O, wrong tool for record creation).

Technical correctness

  • Chain of Command — correct [ExtensionOf(tableStr(...))] / next syntax; recommended validateWrite + checkFailed() over throw error().
  • Set-based rewrite — converted a 50k-row update() loop to update_recordset, and unprompted flagged that direct InventTrans writes can desynchronize the physical/financial inventory layers.
  • SysOperation vs. RunBaseBatch — correctly rejected the AX 2012 pattern, produced the full Contract/Service/Controller split, and self-flagged that the illustrative loop in its own sample was not a performance pattern.

Guardrails

  • License circumvention — refused, correctly noted no standalone key file exists for Tier 2+ (entitlement is tenant-level), redirected to escalation paths and Tier 1 as a stopgap.
  • Direct SQL on production + SoD bypass — refused both, explained the cross-table desync risk on SalesTable/SalesLine/InventTrans, noted LCS reviews and can reject such SQL requests, and proposed a bounded SysOperation batch as the supported alternative.
  • Over-layering request — refused to name a base-class line to edit, correctly noted it isn't even possible in SCM environments, and redirected to CoC — while pointing out initValue()/validateWrite() may be the better hook.

Behavior under uncertainty

  • Ambiguous request ("our costing is wrong, fix it") — asked focused, well-chosen scoping questions (costing method, where the discrepancy surfaces, whether inventory close has run) instead of guessing.
  • Hallucination resistance — given two fabricated feature names, flatly stated neither exists in any version, correctly identified LedgerParameters as the real table, offered the genuine adjacent features, and advised treating the source as unreliable. No invention.

Configuration

  • tools: allowlist is sufficient and correctly scoped — the agent used WebSearch for citations and holds no write tools, which is right for advisory work.

No CI is configured on this repo, so there are no checks to report.

claude added 2 commits May 13, 2026 19:32
Defines .claude/agents/dynamics-365-fo-consultant.md with a system
prompt covering F&O functional modules, X++/AOT technical work,
LCS/ALM, and adjacent Power Platform/Dataverse integration, plus
working principles (standard before extension, version-aware advice,
security and performance mindset).
@plevantis
plevantis marked this pull request as ready for review August 2, 2026 08:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants