Install
$ agentstack add skill-ryanmakesandbreaksstuff-custom-codex-claude-plugins-and-skills-auto-pcf-deploy ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
PCF Deploy
Deploy PCF controls with PAC CLI only. Before using any PAC command that reads or writes Dataverse, verify the active auth profile and target environment.
Use Microsoft Learn MCP for current details when command syntax, flags, build behavior, or ALM guidance matters:
- Search/fetch
pac pcf,pac solution,pac auth, and PCF ALM docs. - Prefer current Microsoft Learn details over remembered command options.
Ask Before Searching
Before automatic filesystem discovery or Microsoft Learn MCP searches, ask the user for known details:
- PCF project path.
- Target Dataverse environment URL, ID, or name.
- Solution unique name if already known.
- Version policy, especially whether PCF manifest and solution version must stay in sync.
Search only after the user provides those details, says they do not know, or explicitly asks for discovery/research. Do not start broad repo searches just because the task is deploy-related.
Required Inputs
Identify or ask for:
- Target Dataverse environment URL, environment ID, or unambiguous environment name.
- PCF project directory containing a
.pcfprojandControlManifest.Input.xml. - Solution project or unpacked solution folder, output zip path, and managed/unmanaged intent.
Always deploy by building or packing the Dataverse solution and importing it.
Project Discovery
From the repo root, locate:
Get-ChildItem -Recurse -Filter *.pcfproj
Get-ChildItem -Recurse -Filter ControlManifest.Input.xml
Get-ChildItem -Recurse -Filter *.cdsproj
Read the discovered project files before choosing commands. Do not assume paths such as src/pcf-control.
Check:
- The
.pcfprojoutput path and whetherPcfBuildModeis set toproduction. - The control version in
ControlManifest.Input.xml. - Whether a
.cdsprojreferences the PCF project. - Existing npm scripts for build/test/lint.
Environment Guardrail
Always verify PAC is installed and authenticated before deployment:
pac
pac auth list
Confirm the active row from pac auth list points to the intended environment URL or name. Treat a blank Environment or Environment Url on the active row as not verified. If the profile is wrong or not environment-bound, select or create the correct profile:
pac auth select --index
pac auth create --environment
Profile confirmation rule:
- If
pac auth listshows exactly one profile, it is active, and it has a nonblankEnvironment Url, treat that profile as the candidate target without asking for extra confirmation. State the environment before deploying and still pass its URL through--environment. - If
pac auth listshows multiple profiles, ask the user to confirm the intended profile/environment before any import, even when one profile is currently active. - If the only profile has a blank
EnvironmentorEnvironment Url, stop and select/create an environment-bound profile before deployment.
When the target environment is known, prefer passing it explicitly on Dataverse operations even after selecting the profile:
--environment
Stop before deploying if the selected profile and explicit target do not agree.
Versioning
Increment the PCF control version before deploying an update so Dataverse and apps can detect the new build.
Preferred PAC CLI options:
pac pcf version --strategy manifest --path
pac pcf version --patchversion --path
Use manual XML editing only when PAC CLI cannot express the desired version change. For solution import flows, also update the solution version when the project requires it:
pac solution version --solutionPath --buildversion --revisionversion
Solution Build Then Import
Use this for every PCF deployment.
- Verify environment with the guardrail above.
- Increment PCF and solution versions as appropriate.
- Restore and build using the repo's existing toolchain.
- Build/package the solution.
- Import with PAC CLI.
- Publish changes if the import did not publish them.
For .cdsproj solution projects:
Set-Location
dotnet build /restore /p:configuration=Release
If the repo uses MSBuild directly:
msbuild .cdsproj /restore /p:configuration=Release
For unpacked solution folders:
pac solution pack --zipfile --folder --packagetype
Import the generated solution zip:
pac solution import --path --environment --publish-changes --force-overwrite
Use --activate-plugins only when the solution contains plug-ins or workflows that should be activated during import.
Verification
Do not report done until evidence exists.
Minimum checks:
pac auth listshowed either one environment-bound profile or a user-confirmed profile, and commands used explicit--environment.- Version bump completed and the manifest or solution version shows the expected value.
- Build/package command completed without errors.
pac solution importcompleted without errors.- The target solution/component appears in Dataverse, using PAC where possible:
pac solution list --environment
For UI/runtime validation, ask the user to smoke-test the model-driven or canvas app if browser access is not available.
Failure Handling
- If auth points at the wrong environment, stop and fix auth before continuing.
- If import rejects the same or lower version, bump PCF and/or solution version and rebuild.
- If dependencies fail during solution import, inspect the import error, do not skip dependency checks unless the user explicitly accepts that risk.
- If command syntax is uncertain, fetch Microsoft Learn docs through MCP before retrying.
Completion Checklist
- [ ] PAC CLI installed.
- [ ] PAC auth profile verified: single environment-bound profile, or user-confirmed profile when multiple profiles exist.
- [ ] Explicit
--environmentused where supported. - [ ] PCF project and manifest discovered from this repo, not assumed.
- [ ] PCF version incremented.
- [ ] Production build behavior confirmed.
- [ ] Solution import completed.
- [ ] Dataverse result verified.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: RyanMakesAndBreaksStuff
- Source: RyanMakesAndBreaksStuff/Custom-Codex-Claude-Plugins-and-Skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.