Validation & MVL
Validation & MVL
Section titled “Validation & MVL”Validation checks a defined surface, not every aspect of a plugin.
Use wiqd plugin validate and choose the mode for the inputs you want checked.
Plugin validation
Section titled “Plugin validation”wiqd plugin validate --mode source --env devwiqd plugin provision --env devwiqd plugin package --env devwiqd plugin validate --mode package --env dev --package-file "<zip>"Explicitly select offline source before provisioning or packaging; the default is package and uploads an existing ZIP. Provision before packaging so the selected environment and app identity exist.
Source checks require valid m365agents.yml and appPackage/manifest.json
inside the project. They check the declared
declarative-agent component when present, not full app-package
schema/composition validity, skills or root connectors.
No component means empty coverage; a declared component with missing canonical source
fails. Neither an empty scope nor a source pass establishes whole-plugin validity.
Package and Marketplace accept ZIP-only input without these source guards.
Source, package and Marketplace validation
Section titled “Source, package and Marketplace validation”Choose one mode per invocation:
wiqd plugin validate --mode source --path ./my-agent --env localwiqd plugin validate --mode package --package-file ./final.zipwiqd plugin validate --mode marketplace --package-file ./final.zip --listing-file ./listing.jsonSource runs offline checks on saved files, rather than unsaved editor buffers.
It checks the saved DA file registered in appPackage/manifest.json, not a required filename,
and returns checked files and diagnostic codes, severities and locations.
It needs no ZIP, build, sign-in or report directory and does not start an LSP
server. This is not project-wide or final-package acceptance. Environment context
is limited to the selected --env (local by default).
Package is the default when --mode is omitted. It uploads a read-only copy of
an existing captured ZIP to Teams Developer Portal (TDP). Marketplace includes that package
validation and StoreOps policy checks on the same snapshot. Neither mode builds
automatically. Select an explicit ZIP, or use a structurally recognized project with
exactly one nonrecursive ZIP in appPackage/build; missing or ambiguous inputs fail
rather than choosing the newest.
Unavailable package authentication or incomplete provider execution cannot
produce a pass. Individual unverified Marketplace policies remain visible
without necessarily blocking the overall result.
Use the same project/environment for source and authorized package/provision operations. Source checks cannot prove that a later provision uploads a previously validated package. Validation never authorizes publication.
Exit 0 means passed; 1 means findings, incomplete provider execution,
input or report-write failure; 2 means invalid source project or missing
runtime/configuration; 130 means cancelled. Read success data or completed
non-pass error.data and use validation.result for the overall verdict.
Confirmed must-fix findings yield FAILED. Without blockers, incomplete provider
execution yields ERROR; completed validation without must-fix findings is
PASSED, even with warnings, suggestions or unverified policy checks. A pass is
not complete policy coverage or official certification.
Package/Marketplace reports preserve captured inputs;
source has no HTML report.
Old modes static, deep, manifest and comma-combined selections are
rejected with migration guidance, not silently mapped to uploads.
Replace retired wiqd agent validate commands with wiqd plugin validate.
Real-time validation in VS Code
Section titled “Real-time validation in VS Code”The VS Code extension provides live diagnostics, hovers and available quick fixes. Unsaved buffers and editor-only advisory checks can differ from saved-source results; neither promises identical editor and final-ZIP findings.
Go deeper
Section titled “Go deeper”- Validate command guide - options, JSON, authorized repair and compatible CLI/plugin upgrades with fresh sessions
- CLI reference - command options
- Exit codes & output - shared command contract
- Validate extension - runtime and LSP integration
- Build a Plugin - plugin delivery