| name | vault-vpk-builder |
| description | Packages Custom Pages into deployable Vault Packages (VPKs) via the vpk CLI. |
| applicable_apps | ["custom-pages"] |
Skill: vault-vpk-builder
This skill is CLI-first: a single Node command does all materialization, auditing, and zipping. Do not hand-craft VPKs.
1. How to Package
node .agents/skills/vault-vpk-builder/scripts/vpk.js <VPK-NAME>
The CLI in one shot:
- Reads vpk.config.json (repo root) for the named package.
- Materializes a fresh staging area in toolbox/vpk/build/.
- Runs the 12-point verification checklist.
- On audit pass, zips the build into toolbox/vpk/packages/.vpk.
2. The 12-Point Verification Checklist
The CLI runs this audit before zipping. Every check has an explicit pass/fail diagnostic.
- vaultpackage.xml exists at build root.
- Manifest root is lowercase .
- Every components/*/ folder is a 5-digit zero-padded number.
- Every .mdl has a sibling .md5.
- Each .md5 is exactly on one line.
- MD5 hash in .md5 equals md5(.mdl content).
- MDL contains no double-quoted values (single quotes only).
- Every MDL component name ends with __c.
- Page MDL: references resolve to real .java and websdk folders.
- Tab MDL: page reference resolves in this VPK.
- distribution-manifest.json is valid; all file paths exist.
- No noise files (.DS_Store, Thumbs.db, .git) present.
3. Operational Mandates
- CLI Only: Never hand-build VPKs.
- Audit Is Mandatory: A passing audit is a precondition for zipping.
- Build/Ship Separation: This skill only packages (produces the audited
.vpk in toolbox/vpk/packages/). To deploy it — REST import + deploy, Java single-file hot-deploy, or Custom Page client direct-deploy — use the veeva-vault-deployer skill (auth-gated via vault_api). Manual upload through the Vault UI also remains an option.