Skip to content
Development
Skill

/deploy

Deploy and infrastructure: web deploy, cron, package install, shell configuration.

From plugin
vexjoy-agent
44964 skills198 agents12 commands83 hooks

Claude Code

$ npx -y skills add notque/vexjoy-agent --skill deploy --agent claude-code

SKILL.md

deploy.SKILL.md
name: deploy
description: "Deploy and infrastructure: web deploy, cron, package install, shell configuration."
user-invocable: true
allowed-tools:
  - Read
  - Write
  - Bash
  - Grep
  - Glob
  - Edit
  - Agent
routing:
  force_route: true
  not_for: "Kubernetes or Helm (use kubernetes skill), Ansible (agents handle directly), code review (use review), security scanning (use security)"
  triggers:
    - "deploy website"
    - "deploy site"
    - "go live"
    - "public site"
    - "public website"
    - "static site"
    - "landing page"
    - "make it public"
    - "make public"
    - "set up https"
    - "nginx public site"
    - "host a website"
    - "use my domain"
    - "website online"
    - "put online"
    - "put this online"
    - "put site online"
    - "serve this website"
    - "point my domain"
    - "create cron job"
    - "scheduled task"
    - "cron safety"
    - "background automation"
    - "fish shell"
    - "config.fish"
    - "zsh"
    - ".zshrc"
    - "shell cleanup"
    - "background process"
    - "nohup"
    - "trap handler"
  category: infrastructure
  pairs_with:
    - assessment
    - kubernetes
    - pr-workflow

Deploy Skill

Six modes. Match the request to a section.

| Signal | Section | |--------|---------| | Deploy site, HTTPS, nginx, go live, public site | A. Public Web Deploy | | Cron job, scheduled task, audit cron script | C. Cron Automation | | Headless agent, wrapper script, recurring Claude task | D. Headless Cron Creator | | Install toolkit, verify setup, health check | E. Toolkit Install | | Fish shell, Zsh, shell config, migration | F. Shell Configuration | | Background process, nohup, trap, PID, signals | G. Process Management |

When the request spans modes, compose the relevant sections.

---

A. Public Web Deploy

Serve public sites through nginx/Caddy/Apache -- never a raw dev server. Local preview binds `127.0.0.1`; public sites require HTTPS + hardened nginx.

**5-phase workflow**: DNS -> Web Server -> HTTPS -> Hardening -> Verify.

1. **DNS**: Create A/AAAA record. Verify: `dig +short A <fqdn>`. Gate: resolves to intended IP. 2. **Web Server**: nginx server block with explicit docroot. Backend proxied to `127.0.0.1`. Test: `nginx -t && systemctl reload nginx`. 3. **HTTPS**: `certbot --nginx -d <fqdn>`. Verify renewal: `certbot renew --dry-run`. Verify redirect: `curl -sI http://<fqdn> | grep -iE '301|308'`. 4. **Hardening**: Firewall (ufw allow 80/443/SSH only), nginx deny rules (`location ~ /\. { deny all; }`), security headers (HSTS, X-Content-Type-Options, CSP in Report-Only), rate limiting (`limit_req`), fail2ban. 5. **Verify**: Run the 13-item security checklist. Spot-check: `curl -s https://<fqdn>/.env -w '%{http_code}\n'` (expect 403/404), `ss -tlnp` (no app ports public).

Load `references/public-web-deploy.md` for the full 13-item checklist, nginx config blocks, and error handling.

---

C. Cron Automation

Static analysis of cron scripts against a 9-point reliability checklist. Read-only -- never execute scripts.

1. **DISCOVER**: Locate scripts in `scripts/*.sh`, `cron/*.sh`, `jobs/*.sh`. Verify shell shebang. 2. **AUDIT**: Run all 9 checks via regex (verify matches not in comments):

| # | Check | Severity | Key patterns | |---|-------|----------|-------------| | 1 | Error handling | CRITICAL | `set -e`, `set -o errexit` | | 2 | Exit code checking | HIGH | `$?`, `if [ $? -eq` | | 3 | Logging with timestamps | HIGH | `>> *.log`, `$(date)` | | 4 | Log rotation | MEDIUM | `find -mtime -delete`, `logrotate` | | 5 | Working directory | HIGH | `cd "$(dirname"`, `SCRIPT_DIR=` | | 6 | PATH environment | MEDIUM | `PATH=`, `export PATH` | | 7 | Lock file / concurrency | HIGH | `.lock`, `flock`, `.pid` | | 8 | Cleanup on exit | MEDIUM | `trap ... EXIT` | | 9 | Failure notification | LOW | `mail -s`, `curl *webhook` |

3. **REPORT**: Per-script scores with paste-ready fixes for every FAIL/WARN. Aggregate summary for multi-script audits.

Load `references/cron-automation.md` for the best-practices reference script.

---

D. Headless Cron Creator

Create headless Claude Code cron jobs. All crontab mutations go through `crontab-manager.py`.

1. **PARSE**: Extract name (kebab-case), prompt, schedule, workdir, budget ($2.00 default). 2. **GENERATE**: `python3 ~/.claude/scripts/crontab-manager.py generate-wrapper --name <name> ...`. Verify: `flock`, `--permission-mode auto`, `--max-budget-usd`, `tee` logging, dry-run default. 3. **VALIDATE**: `bash -n scripts/<name>-cron.sh`. Run 9-point cron checklist. 4. **INSTALL**: Dry-run first (`--dry-run`), ask user confirmation, then install. 5. **REPORT**: Script path, schedule, log dir, budget, management commands.

Load `references/headless-cron-creator.md` for the full methodology and schedule conversion table.

---

E. Toolkit Install

1. Run `python3 ~/.claude/scripts/install-doctor.py check` and `python3 ~/.claude/scripts/toolkit-health.py --json`. 2. If issues: guide user to `./install.sh --symlink`. Fix permissions and deps as needed. 3. Show inventory: `python3 ~/.claude/scripts/install-doctor.py inventory`. 4. Show MCP status: `python3 ~/.claude/scripts/mcp-registry.py list`. 5. Orient: `/do`, `/comprehensive-review`, `/install` commands.

Load `references/install.md` for full diagnostic steps and error handling.

---

F. Shell Configuration

Detect target shell first. Fish and Zsh have incompatible syntax.

| Concept | Fish | Zsh | |---------|------|-----| | Variable assignment | `set -gx VAR value` | `export VAR=value` | | PATH management | `fish_add_path` | `typeset -U path; path=(...)` | | Completions | `completions/` directory | `compinit` + `fpath` | | Conditionals | `test`, not `[[ ]]` | `[[ ]]` preferred | | Interactive guard | `status is-interactive` | `[[ -o interactive ]]` |

Load the shell-specific reference matching the task:

| Task | Fish | Zsh | |------|------|-----| | Full config | `references/fish-shell-config.md` | `references/zsh-shell-config.m

Read more
@notque
Ships withvexjoy-agent

Essays and writing behind this toolkit live at vexjoy.com. VexJoy Agent connects plain-English requests to specialist agents, skills, and workflows. /do selects the knowledge and tools needed for your task.

44964 skills198 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
449
Star history of notque/vexjoy-agent on GitHub, a chart by star-history.com

Other skills on vexjoy-agent.

assessment

assessment

Assessment: read-only inspection, codebase overview, value analysis, health checks, ADR consultation, decision analysis,…

@notque@notqueInstall Skill
business-ops

business-ops

Business operations: strategy, technology, growth, competitive intelligence, support, finance, HR, legal, operations, sales,…

@notque@notqueInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about deploy.

Which coding agents can use deploy?
deploy installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.