Use this skill when the user wants to deploy an app with devopsellence, check deployment state, manage secrets, register and attach their own nodes, or edit the main lifecycle-hook config.
command -v devopsellence
If the command is missing, tell the user the devopsellence CLI is required and point them to the official docs. Do not run setup scripts from this skill.
devopsellence mode show || true
devopsellence context show || true
If a mode is already configured, use it. If no mode is configured and the user has not explicitly chosen one, do not default silently. Ask a short mode-selection question, make a recommendation, and wait for confirmation before running devopsellence init:
> devopsellence has two workspace modes:
>
> - solo: SSH-first, single-operator, existing or provider-created VMs, local node state, local secrets, direct Docker image streaming over SSH.
> - shared: hosted sign-in, org/project/env context, team workflows, shared encrypted secrets, and control-plane-managed nodes.
>
> Based on what you’ve told me, I recommend because . Should I initialize this repo in mode?
Recommend solo when the user mentions their own VM/server, SSH, single-operator usage, local secrets, direct image streaming, or avoiding hosted/team workflows.
Recommend shared when the user mentions teams, org/project/env context, browser sign-in, hosted control plane, shared encrypted secrets, managed nodes, auditability, or collaboration.
If intent is still ambiguous, ask whether they are deploying SSH-first to their own VM as one operator or want the hosted/team workflow.
devopsellence init --mode solo
For shared:
devopsellence auth whoami || devopsellence auth login
devopsellence init --mode shared
If the user already knows the shared target workspace values, prefer explicit flags:
devopsellence init --mode shared --org acme --project shop --env staging
devopsellence doctor
devopsellence deploy
In shared mode, if the user wants to deploy an existing image digest instead of building locally:
devopsellence deploy --image docker.io/example/app@sha256:...
devopsellence status
The devopsellence CLI is agent-primary. Treat stdout as the primary machine-readable contract.
event: "error" envelope with ok: false and error details even for otherwise bounded commands.schema_version; bounded JSON results often include it, but some legacy bounded results may omit it.schema_version is present, check it before relying on command-specific fields; if it is missing from a bounded result, be tolerant and treat command-specific fields cautiously.event: started, progress, result, or erroroperation: stable operation name when availableok: trueok: false and errorerror.code, error.message, and error.exit_code.code, message, evidence fields, and suggested next actions when present.schema_version is unsupported, do not make high-risk decisions from command-specific fields; summarize the raw structured output and ask for updated docs or skill guidance. If schema_version is missing from a bounded result, treat common fields cautiously and avoid assuming undocumented command-specific fields are stable.Prefer stdin over literal secret values in prompts or shell history:
printf '%s' "$VALUE" | devopsellence secret set NAME --service web --stdin
devopsellence secret list --env production
devopsellence secret delete NAME --service web
In solo mode, 1Password references are also supported:
devopsellence secret set NAME --service web --store 1password --op-ref op://vault/item/field
Use these in shared mode for a provider-created node. By default, node create registers and attaches the node to the current environment:
devopsellence init --mode shared
printf '%s' "$HCLOUD_TOKEN" | devopsellence provider login hetzner --stdin
# or: devopsellence provider login hetzner --token "$HCLOUD_TOKEN"
devopsellence node create prod-1 --provider hetzner
devopsellence node list
devopsellence node detach <id>
devopsellence node remove <id>
If you intentionally create an unassigned shared node, attach it later:
devopsellence node create prod-1 --provider hetzner --unassigned
devopsellence node attach <id>
Use this in shared mode for an existing server that you will install manually:
devopsellence node register
Use these in solo mode when the user wants SSH-first workflows without the control plane on an existing VM:
devopsellence init --mode solo
devopsellence node create prod-1 --host <ip> --user root --ssh-key ~/.ssh/id_ed25519
devopsellence agent install prod-1
devopsellence node attach prod-1
devopsellence doctor
devopsellence deploy
Use these in solo mode for a provider-created node:
devopsellence init --mode solo
printf '%s' "$HCLOUD_TOKEN" | devopsellence provider login hetzner --stdin
# or: devopsellence provider login hetzner --token "$HCLOUD_TOKEN"
devopsellence node create prod-1 --provider hetzner --install --attach
devopsellence doctor
devopsellence deploy
For solo diagnostics:
devopsellence status
devopsellence logs --node prod-1 --lines 100
devopsellence node diagnose prod-1
devopsellence node logs prod-1 --lines 100
For solo cleanup:
devopsellence node detach prod-1
devopsellence agent uninstall prod-1 --yes
devopsellence node remove prod-1 --yes
When the user is editing devopsellence.yml, recognize these deploy-time hooks:
tasks.release: one-shot task that runs before rollout. Good for migrations. It reuses the configured service image, env, secrets, and volumes.init hook is no longer supported.devopsellence doctor after init and before devopsellence deploy.devopsellence deploy --image ... when the user already has a pushed image digest.--stdin.共 2 个版本