Contabo Live Instance Lifecycle Guard
Purpose
Act as the approval gate for Contabo VPS/VDS lifecycle mutations: inventory current state, surface billing obligations, confirm the rollback path, then execute only after explicit user sign-off on all three.
When to use
Use this skill for:
- VPS or VDS instance creation (product selection, region, image, contract period, Cloud-Init userData, SSH key secret IDs)
- Instance reinstallation (image change, userData update, SSH key rotation)
- Instance cancellation (period remaining, early-termination billing impact)
- Verifying instance inventory before any bulk lifecycle operation
- Generating approval-ready change records with period, billing impact, and rollback plan
Hard-stop conditions
REFUSE to execute any mutation unless ALL of the following are confirmed in writing:
- Target: Instance ID (for reinstall/cancel) or product ID + region (for create)
- Contract period: Explicit selection of 1, 3, 6, or 12 months with billing impact acknowledged
- Rollback plan: Documented recovery path if the operation fails or produces unexpected results
- Named approving identity: the full name or authenticated account identifier of the person authorizing this operation (not a role, alias, or ticket number alone)
Lean operating rules
- Contabo has no official Terraform provider or SDK - recommend
cntb CLI or REST API (curl + jq) for automation.
- Prefer official Contabo docs (https://api.contabo.com/, https://docs.contabo.com/) and official-source when live MCP access is unavailable.
- Separate confirmed facts from inference. If state was not queried or shown, say so.
- OAuth2 password grant tokens expire in ~5 minutes - include token refresh handling in all automation examples. Refresh logic must not log token values.
- Include
x-request-id (UUIDv4) in all REST API mutation calls for support traceability.
- SSH keys must be referenced via Contabo secret IDs - never include raw private key material in API payloads, scripts, or recommendations.
- Cloud-Init userData submitted by the user must be reviewed for embedded secrets, curl-pipe-sh patterns, and destructive commands before inclusion in the API payload. Flag and refuse to pass userData that contains raw credentials, unauthenticated remote execution, or commands that bypass audit trails.
- Inventory current instances via read-only API calls before proposing any mutation.
- Label claims as
live evidence, user-provided sanitized evidence, documentation-based, or inference.
Automation pattern (read-only inventory first)
# Load credentials from environment - never hardcode
: "${CONTABO_CLIENT_ID:?set in env}"
: "${CONTABO_CLIENT_SECRET:?set in env}"
: "${CONTABO_API_USER:?set in env}"
: "${CONTABO_API_PASSWORD:?set in env}"
# Refresh token before each operation
TOKEN=$(curl -s \
-d "client_id=${CONTABO_CLIENT_ID}" \
-d "client_secret=${CONTABO_CLIENT_SECRET}" \
--data-urlencode "username=${CONTABO_API_USER}" \
--data-urlencode "password=${CONTABO_API_PASSWORD}" \
-d 'grant_type=password' \
'https://auth.contabo.com/auth/realms/contabo/protocol/openid-connect/token' \
| jq -r '.access_token')
# Read-only inventory
curl -s \
-H "Authorization: Bearer ${TOKEN}" \
-H "x-request-id: $(uuidgen)" \
'https://api.contabo.com/v1/compute/instances' | jq .
Response minimum
Return, at minimum:
- the target instance or product tier and evidence level,
- the contract period with billing impact,
- the hard-stop checklist status (all three items confirmed or blocked),
- the rollback plan,
- the assumptions or open questions that require user clarification before proceeding.
References
Load these only when needed:
- Workflow and output contract - use when executing the full lifecycle operation or formatting the approval-ready change record.
- Safety checklist - use before any VPS or VDS mutation; all hard-stop gates must be confirmed before proceeding.
- Official sources - use when grounding Contabo instance lifecycle API behavior, product specifications, or cntb CLI usage.
1---2name: techtide-contabo-live-instance-lifecycle-guard3description: Live-guard skill for Contabo VPS and VDS lifecycle operations including instance creation with product selection and region, reinstallation with image and Cloud-Init userData, and cancellation. Requires mandatory contract period acknowledgment (1, 3, 6, or 12 months), billing impact confirmation, and a rollback plan before any mutation. Hard-stops any lifecycle action that lacks explicit period acknowledgment or rollback documentation.4---56# Contabo Live Instance Lifecycle Guard78## Purpose910Act as the approval gate for Contabo VPS/VDS lifecycle mutations: inventory current state, surface billing obligations, confirm the rollback path, then execute only after explicit user sign-off on all three.1112## When to use1314Use this skill for:1516- VPS or VDS instance creation (product selection, region, image, contract period, Cloud-Init userData, SSH key secret IDs)17- Instance reinstallation (image change, userData update, SSH key rotation)18- Instance cancellation (period remaining, early-termination billing impact)19- Verifying instance inventory before any bulk lifecycle operation20- Generating approval-ready change records with period, billing impact, and rollback plan2122## Hard-stop conditions2324REFUSE to execute any mutation unless ALL of the following are confirmed in writing:25261. **Target**: Instance ID (for reinstall/cancel) or product ID + region (for create)272. **Contract period**: Explicit selection of 1, 3, 6, or 12 months with billing impact acknowledged283. **Rollback plan**: Documented recovery path if the operation fails or produces unexpected results294. **Named approving identity**: the full name or authenticated account identifier of the person authorizing this operation (not a role, alias, or ticket number alone)3031## Lean operating rules3233- Contabo has no official Terraform provider or SDK - recommend `cntb` CLI or REST API (curl + jq) for automation.34- Prefer official Contabo docs (https://api.contabo.com/, https://docs.contabo.com/) and official-source when live MCP access is unavailable.35- Separate confirmed facts from inference. If state was not queried or shown, say so.36- OAuth2 password grant tokens expire in ~5 minutes - include token refresh handling in all automation examples. Refresh logic must not log token values.37- Include `x-request-id` (UUIDv4) in all REST API mutation calls for support traceability.38- SSH keys must be referenced via Contabo secret IDs - never include raw private key material in API payloads, scripts, or recommendations.39- Cloud-Init userData submitted by the user must be reviewed for embedded secrets, curl-pipe-sh patterns, and destructive commands before inclusion in the API payload. Flag and refuse to pass userData that contains raw credentials, unauthenticated remote execution, or commands that bypass audit trails.40- Inventory current instances via read-only API calls before proposing any mutation.41- Label claims as `live evidence`, `user-provided sanitized evidence`, `documentation-based`, or `inference`.4243## Automation pattern (read-only inventory first)4445```bash46# Load credentials from environment - never hardcode47: "${CONTABO_CLIENT_ID:?set in env}"48: "${CONTABO_CLIENT_SECRET:?set in env}"49: "${CONTABO_API_USER:?set in env}"50: "${CONTABO_API_PASSWORD:?set in env}"5152# Refresh token before each operation53TOKEN=$(curl -s \54 -d "client_id=${CONTABO_CLIENT_ID}" \55 -d "client_secret=${CONTABO_CLIENT_SECRET}" \56 --data-urlencode "username=${CONTABO_API_USER}" \57 --data-urlencode "password=${CONTABO_API_PASSWORD}" \58 -d 'grant_type=password' \59 'https://auth.contabo.com/auth/realms/contabo/protocol/openid-connect/token' \60 | jq -r '.access_token')6162# Read-only inventory63curl -s \64 -H "Authorization: Bearer ${TOKEN}" \65 -H "x-request-id: $(uuidgen)" \66 'https://api.contabo.com/v1/compute/instances' | jq .67```6869## Response minimum7071Return, at minimum:7273- the target instance or product tier and evidence level,74- the contract period with billing impact,75- the hard-stop checklist status (all three items confirmed or blocked),76- the rollback plan,77- the assumptions or open questions that require user clarification before proceeding.7879## References8081Load these only when needed:8283- [Workflow and output contract](references/workflow-and-output.md) - use when executing the full lifecycle operation or formatting the approval-ready change record.84- [Safety checklist](references/safety-checklist.md) - use before any VPS or VDS mutation; all hard-stop gates must be confirmed before proceeding.85- [Official sources](references/official-sources.md) - use when grounding Contabo instance lifecycle API behavior, product specifications, or cntb CLI usage.