From ops-suite
Deploy a merged change to an environment. Verifies the change is merged, finds the build artifact, confirms with the user, triggers the deployment, and verifies the result.
npx claudepluginhub weorbitant/workbench-dev --plugin ops-suiteThis skill is limited to using the following tools:
Check if `/tmp/ops-suite-session/config.json` exists:
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Check if /tmp/ops-suite-session/config.json exists:
config.yaml, parse it, and write to /tmp/ops-suite-session/config.json for other skills to reuse.
If neither exists, tell the user to copy config.example.yaml to config.yaml and fill in their values. Stop here.Extract:
deploy.ci_provider — determines which adapter to loaddeploy.image_tag_source — how to find the image tag (run-id, commit-sha, tag)deploy.migration_tool — whether migrations need to runenvironments — available environmentsAlso read the reference at references/commands.md (in this skill's directory) for the step-by-step process.
Read the adapter file at adapters/{deploy.ci_provider}.md (in this skill's directory).
If the adapter does not exist, tell the user that the CI provider {deploy.ci_provider} is not yet supported and stop.
If $ARGUMENTS contains a PR number:
If $ARGUMENTS contains a commit SHA or branch ref:
If nothing is provided, ask the user for a PR number or ref.
If $ARGUMENTS contains an environment name, use it.
Otherwise, list available environments from config and ask the user.
IMPORTANT: If the CI workflow auto-deploys to dev on merge (check the build run for a deploy-dev job),
inform the user that dev was already deployed automatically. Then:
Never chain merge → prod deploy without explicit approval for each environment.
Using the adapter's commands and deploy.image_tag_source:
Verify the build completed successfully before proceeding.
Use the adapter to show:
ALWAYS ask the user for explicit confirmation before deploying.
Display:
Ready to deploy:
Change: PR #{pr_number} — {pr_title}
Image tag: {image_tag}
Target: {environment}
Current tag: {current_tag}
Proceed? (yes/no)
Use the adapter's deploy command to trigger the deployment. Monitor the deployment progress using the adapter's status commands.
After deployment completes, run the following read-only checks automatically:
Use ops-suite:service-status with arguments: {service} {env_name}.
Use session state from /tmp/ops-suite-session/ — do not re-ask for environment.
Use ops-suite:service-logs with arguments: {service} {env_name}. Check for errors in last 5 minutes.
Deployment Summary:
PR: #{pr_number} — {pr_title}
Environment: {environment}
Image tag: {image_tag}
Status: {success/failed}
Duration: {time}
Post-deploy checks:
Service health: {ok/degraded}
Error check: {clean/errors found}
If deploy.migration_tool is not "none", add:
Next steps:
→ Run `/ops-suite:db-migrate {env_name}` to check and apply pending migrations.