personio-eng-ops

Operations skills and tools for Personio engineers — ArgoCD deployment rollbacks and Harness CI/CD platform access.

Lifecycle: Experimental

Installation

claude plugin install personio-eng-ops@personio-claude-code-marketplace

What does this plugin do?

Provides operations tooling for Personio engineers:

  • ArgoCD skills — identify the current deployed revision and last-known-good rollback target for any ArgoCD app, and safely execute rollbacks with full context (revisions, image tags, source commits, migration detection)
  • Harness MCP — direct access to the Harness CI/CD platform via the Harness MCP server, letting you query pipelines, builds, deployments, and more from within Claude

MCP Servers

Harness

Connects to the Harness MCP server using a shared Personio service account. Once set up, you can ask Claude to query pipeline runs, check deployment status, inspect build logs, and more — all without leaving your editor.

One-time setup:

The Harness MCP uses a shared service account to avoid personal accounts being flagged by Personio's inactive-user automation. The API key is stored in the Engineers Shared 1Password vault under the item splitio-mcp-server-sa-api-key.

Add the following to your ~/.zshrc:

export HARNESS_API_KEY="<token from 1Password>"

Then reload your shell:

source ~/.zshrc

After that, Claude will authenticate automatically on every session — no further steps required.

Skills

argocd-identify

Find the current deployed revision and last-known-good rollback target for any Personio ArgoCD app or source repo. Reads Personio-Internal/k8s-resources git history and checks live sync/auto-sync state via the argocd CLI.

What you need:

  • Personio VPN connection (for k8s-resources access and ArgoCD)
  • Node.js ≥ 20.18.2 (the version Hammock District installs)
  • gh, jq, yq CLIs installed and authenticated — the skill offers to install and log you in if any are missing
  • argocd CLI (optional) — needed for live sync/auto-sync status. Without it the skill still shows k8s-resources history and revision targets; it just omits the live cluster state overlay. The skill offers to log you in if argocd is installed but unauthenticated.
  • Access to Personio-Internal/k8s-resources

Quick Start:

identify --app <argo-app> [--env prod|dev|tools|tools-dev]
identify --repo <github-repo> [--env prod|dev|tools|tools-dev]

--env defaults to prod. Output highlights the TARGET k8s-resources SHA to pass to argocd-rollback --target-revision.

Example:

identify --app attendance-service --env prod
identify --repo attendance

Why would you want this?

  • Map a broken deploy to the exact k8s-resources revision before touching the cluster
  • Detect when auto-sync has been left disabled after a previous rollback
  • See the source commit and image tag at each revision before committing to a rollback

argocd-rollback

Perform an ArgoCD rollback for a Personio service. Checks sync status, collects full context (app, revisions, image tags, source commits, schema migrations), asks for explicit confirmation, then executes the rollback via the argocd CLI.

Never performs any write action without confirmation. Never rolls back an out-of-sync app.

What you need:

  • Personio VPN connection (for ArgoCD)
  • Node.js ≥ 20.18.2 (the version Hammock District installs)
  • argocd, gh, jq, yq CLIs installed and authenticated — the skill offers to install and log you in if any are missing
  • The target revision from argocd-identify (or the ArgoCD UI), or let the skill identify it automatically

Quick Start:

# Identify last-known-good automatically, then roll back
rollback --app <argo-app> [--env prod|dev|tools|tools-dev]
rollback --repo <github-repo> [--env prod|dev|tools|tools-dev]

# Explicit target
rollback --app <argo-app> --target-revision <k8s-resources-sha> [--env ...]
rollback --repo <github-repo> --target-commit <git-commit> [--env ...]

# Override migration block (only when migrations are verified additive)
rollback --app <argo-app> --force-with-migrations [--env ...]

--env defaults to prod. The skill refuses to roll back when the app is OutOfSync or when the revision range contains database migrations (unless --force-with-migrations is set).

Example:

rollback --app attendance-service --env prod
rollback --app payment-service --target-revision abc1234 --env prod

Why would you want this?

  • Avoid memorising argocd app history + argocd app rollback syntax
  • Catch unsafe states (out-of-sync app, schema migrations) before taking action
  • Get the full before/after context — including clickable diff links — in one place before confirming