Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,15 @@
},
"plugins": [
{
"name": "dataverse-customization-xml",
"source": "./plugins/dataverse-customization-xml",
"description": "Schema-validated hand-editing of Dataverse customization XML (ribbon, sitemap, forms, FetchXML, charts and more) against the official Microsoft XSDs — standalone PowerShell validator plus live lemminx LSP diagnostics.",
"name": "dataverse-xml-lsp",
"source": "./plugins/dataverse-xml-lsp",
"description": "LSP + CLI validator for Dataverse customization XML: live lemminx diagnostics and a standalone PowerShell validator that check ribbon, sitemap, forms, FetchXML, charts and more against the official Microsoft XSDs.",
"category": "development"
},
{
"name": "power-automate-cloud-flow",
"source": "./plugins/power-automate-cloud-flow",
"description": "Schema-validated hand-editing of unpacked Power Automate solution cloud-flow JSON (Workflows/*.json) against a bundled clientdata/WDL wrapper schema, with live vscode-json-language-server LSP diagnostics.",
"name": "cloud-flow-json-lsp",
"source": "./plugins/cloud-flow-json-lsp",
"description": "JSON LSP for unpacked Power Automate cloud-flow clientdata: live vscode-json-language-server diagnostics on solution Workflows/*.json against a bundled clientdata/WDL wrapper schema.",
"category": "development"
}
]
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,22 +32,22 @@ jobs:
- name: Cache lemminx binary
uses: actions/cache@v4
with:
path: plugins/dataverse-customization-xml/bin
key: lemminx-${{ runner.os }}-${{ hashFiles('plugins/dataverse-customization-xml/versions.json') }}
path: plugins/dataverse-xml-lsp/bin
key: lemminx-${{ runner.os }}-${{ hashFiles('plugins/dataverse-xml-lsp/versions.json') }}

- name: End-to-end setup (fetch schemas + lemminx, stamp paths, self-check)
run: ./plugins/dataverse-customization-xml/scripts/Install-Plugin.ps1
- name: End-to-end setup (fetch schemas + lemminx, self-check)
run: ./plugins/dataverse-xml-lsp/scripts/Install-Plugin.ps1

# node_modules is not committed; npm ci restores it deterministically from the lockfile.
# Caching it makes the setup step's npm ci a near-no-op on cache hit.
- name: Cache flow LSP node_modules
uses: actions/cache@v4
with:
path: plugins/power-automate-cloud-flow/node_modules
key: flow-lsp-${{ runner.os }}-${{ hashFiles('plugins/power-automate-cloud-flow/package-lock.json') }}
path: plugins/cloud-flow-json-lsp/node_modules
key: flow-lsp-${{ runner.os }}-${{ hashFiles('plugins/cloud-flow-json-lsp/package-lock.json') }}

- name: End-to-end setup (install JSON language server, stamp paths, LSP self-check)
run: ./plugins/power-automate-cloud-flow/scripts/Install-Plugin.ps1
- name: End-to-end setup (install JSON language server, LSP self-check)
run: ./plugins/cloud-flow-json-lsp/scripts/Install-Plugin.ps1

# Version bounds on both modules are deliberate: a new major on the PowerShell Gallery
# should not be able to turn CI red without a change in this repo.
Expand Down
21 changes: 8 additions & 13 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,13 @@
# Changelog

## Unreleased

- New plugin `power-automate-cloud-flow`: live schema validation of unpacked Power Automate
solution cloud-flow JSON (`Workflows/*.json`).
- Bundled draft-07 clientdata/WDL wrapper schema (structure only — connector `inputs` left
loose by design, since `OpenApiConnection` isn't in the public Logic Apps schema).
- Live `vscode-json-language-server` LSP diagnostics for Claude Code (and VS Code via
`json.schemas`); the server is `npm ci`-installed at setup, pinned in `package-lock.json`.
- One-shot `Install-Plugin.ps1` whose self-check drives the real LSP end-to-end
(`scripts/lsp-smoke.mjs`) and asserts the schema fires; `/power-automate-cloud-flow:setup`.
- Headless/CI structure checks via PowerShell's built-in `Test-Json` (no bespoke validator).
- Semantic linting (runAfter / connectionName resolution, hard-coded values) stays in the
`power-automate-flow-dev` skill; this plugin is the shape layer.
## 2.0.0 — 2026-07-21

### Changed (breaking)
- Renamed plugins: `dataverse-customization-xml` → `dataverse-xml-lsp`, `power-automate-cloud-flow` → `cloud-flow-json-lsp`. Reinstall under the new id and update your `enabledPlugins` key.
- Each plugin is now an LSP server plus a single manually-run, no-description setup skill (`/<plugin>:<plugin>-setup`). The auto-triggering skill and the `/<plugin>:setup` slash command are removed — editing guidance no longer surfaces automatically; it lives in `docs/guide.md`.
- LSP schema path is resolved at launch (launcher shim), so setup no longer stamps `.lsp.json` and need not be re-run after `/plugin update`.

The `dataverse-xml-lsp` plugin keeps `Validate-DataverseXml.ps1` for CI/headless and pac wrapper-file (forms/charts) validation; those wrapper files are validator-owned (not LSP-associated).

## 1.0.1 — 2026-07-16

Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,22 @@ plugin also works standalone (plain PowerShell scripts) for other agents, VS Cod
## Install (Claude Code)

/plugin marketplace add Cordedmink2/dataverse-agent-plugins
/plugin install dataverse-customization-xml@dataverse-agent-plugins
/dataverse-customization-xml:setup
/plugin install dataverse-xml-lsp@dataverse-agent-plugins
/dataverse-xml-lsp:dataverse-xml-lsp-setup

Update later with `/plugin marketplace update dataverse-agent-plugins` then
`/plugin update dataverse-customization-xml@dataverse-agent-plugins` (re-run setup after updates).
`/plugin update dataverse-xml-lsp@dataverse-agent-plugins` (re-run setup after updates).

## Plugins

| Plugin | What it does |
|--------|--------------|
| [dataverse-customization-xml](plugins/dataverse-customization-xml/) | Schema-validated hand-editing of Dataverse customization XML (ribbon, sitemap, forms, FetchXML, charts, ISV config and more) against the official Microsoft XSDs. Standalone PowerShell validator + live lemminx LSP diagnostics. Also usable from [Codex](plugins/dataverse-customization-xml/docs/codex.md), [VS Code with no agent](plugins/dataverse-customization-xml/docs/vscode.md), and CI. |
| [power-automate-cloud-flow](plugins/power-automate-cloud-flow/) | Schema-validated hand-editing of unpacked Power Automate solution cloud-flow JSON (`Workflows/*.json`) against a bundled clientdata/WDL wrapper schema. Live `vscode-json-language-server` LSP diagnostics; headless structure checks via built-in `Test-Json`. Also usable from [Codex](plugins/power-automate-cloud-flow/docs/codex.md), [VS Code with no agent](plugins/power-automate-cloud-flow/docs/vscode.md), and CI. |
| [dataverse-xml-lsp](plugins/dataverse-xml-lsp/) | LSP + CLI validator for Dataverse customization XML (ribbon, sitemap, forms, FetchXML, charts, ISV config and more) against the official Microsoft XSDs. Live lemminx LSP diagnostics + a standalone PowerShell validator. Also usable from [Codex](plugins/dataverse-xml-lsp/docs/codex.md), [VS Code with no agent](plugins/dataverse-xml-lsp/docs/vscode.md), and CI. |
| [cloud-flow-json-lsp](plugins/cloud-flow-json-lsp/) | JSON LSP for unpacked Power Automate cloud-flow clientdata (`Workflows/*.json`), validated against a bundled clientdata/WDL wrapper schema. Live `vscode-json-language-server` LSP diagnostics; headless structure checks via built-in `Test-Json`. Also usable from [Codex](plugins/cloud-flow-json-lsp/docs/codex.md), [VS Code with no agent](plugins/cloud-flow-json-lsp/docs/vscode.md), and CI. |

## Requirements

PowerShell 7+ (`pwsh`) on Windows, macOS or Linux. The `power-automate-cloud-flow` plugin also
PowerShell 7+ (`pwsh`) on Windows, macOS or Linux. The `cloud-flow-json-lsp` plugin also
needs Node.js (for its `npm`-installed JSON language server). Plugins fetch what else they need
at setup (Microsoft XSDs, lemminx binary, the JSON language server) — nothing bulky or
third-party is committed here.
Expand Down
Loading
Loading