deploymentlisted
Install: claude install-skill mustafahasanain/frappe-workflow
# Deployment Skill
Deploys the verified task commit to the demo server — only after the user
explicitly chooses to. Skipping is a first-class outcome, not a failure.
## When to Use
- The `deploy` action, or resuming into stage `committed`.
## The Question (always, verbatim, before anything else)
```text
The task has been committed successfully.
Deploy this task to the demo server?
1. Deploy now
2. Skip deployment
```
**No SSH connection is opened before the answer.**
- **Skip** →
```bash
bin/frappe-workflow state set deployment.required false --json-value
bin/frappe-workflow state set deployment.status skipped
bin/frappe-workflow state set deployment.skip_reason "Skipped by user"
bin/frappe-workflow state transition deployment_skipped --reason "user skipped"
```
(use the user's stated reason when they gave one). No SSH, no server
commands, no local deployment commands. Done.
- **Deploy now** → the procedure below.
## Procedure
1. Config: `bin/frappe-workflow deployment validate-config`
(`.claude/deployment.local.json`; see the example template).
2. Local + config/task consistency: `bin/frappe-workflow deployment
preflight` — also prints the exact remote read-only preflight commands
([references/deployment-preflight.md](references/deployment-preflight.md)).
3. Remote preflight over SSH per
[references/ssh-safety.md](references/ssh-safety.md) — read-only.
4. Fast-forward-only pull; then the minimal bench command set from
`bin/frappe-w