erp-xpp
Installation
SKILL.md
Skill: Finance and Operations X++ Development
Critical safety rules — read first
- Windows only.
pac tool xpp installandpac package compile --package-type erprequire Windows. Do not invent a Linux/macOS or SDK-based fallback.- Confirm the target before any deploy or DB sync. Show the Dataverse environment URL, obtain explicit confirmation, then run
pac org who --environment <url>and verify both the Dataverse URL and linked ERP URL/version.- Never assume Full DB sync. Although standalone
pac package db-syncdefaults toFull, require the user to chooseFull,Module, orIncrementalwhen the request is ambiguous.- Do not call deployment successful until PAC reaches a successful terminal state. Preserve and report the async operation ID on failure.
- Do not overwrite existing models or source files. Inspect
.erp/xpp.json, descriptors, and target metadata paths before scaffolding or editing.- Pin every runtime surface before ERP verification. PAC and the Dataverse CLI have separate active profiles. Before any
dataverse ... --target erpcheck, requiredataverse auth whoanddataverse org who --jsonto match the confirmed Dataverse and linked ERP URLs. Validate ERP MCP according to its transport: direct HTTP must target<erp-url>/mcp; an stdio proxy must receive the base<erp-url>and route effectively to/mcp. Profile selection does not retarget an existing MCP connection.- Treat runtime verification as possible data mutation. After the separate post-deployment opt-in, inspect the X++ implementation, disclose exact test inputs and expected mutations, and obtain confirmation for those inputs and effects. Do not apply a generic test matrix to non-idempotent operations.
- All additional validation after an ERP X++ package deployment is opt-in. After
pac package deploy --package-type erp, capture PAC's terminal result, then ask whether the user wants any further validation and which checks to run. Do not query the async operation, execute an X++ artifact, query its ERP entity, or test its security unless selected. For runtime validation, confirm exact inputs, success criteria, and failure criteria; never invent values or execute an unapproved failure path. This rule is scoped to ERP X++ package deployment, not Dataverse solution ALM.
PAC CLI is the managed surface for the X++ lifecycle. Do not replace these commands with raw Dataverse APIs, direct calls to the ERP sidecar, LCS upload automation, or hand-written compiler invocations.