commit-assisted-by
Add an `Assisted-by: <agent-name>/<model-id>` git trailer to commits made during an AI-assisted coding session. Trigger on any…
Audit and validate Flux CD GitOps repositories by scanning local repo files (not live clusters) — runs Kubernetes schema validation, detects deprecated Flux APIs, reviews RBAC/multi-tenancy/secrets management, and produces a prioritized GitOps report. Use when users ask to
$ npx -y skills add fluxcd/agent-skills --skill gitops-repo-audit --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/gitops-repo-auditContext preview
The summary Claude sees to decide when to auto-load this skill.
Audit and validate Flux CD GitOps repositories by scanning local repo files (not live clusters) — runs Kubernetes schema validation, detects deprecated Flux APIs, reviews RBAC/multi-tenancy/secrets management, and produces a prioritized GitOps report. Use when users ask to
name: gitops-repo-audit description: > Audit and validate Flux CD GitOps repositories by scanning local repo files (not live clusters) — runs Kubernetes schema validation, detects deprecated Flux APIs, reviews RBAC/multi-tenancy/secrets management, and produces a prioritized GitOps report. Use when users ask to audit, analyze, validate, review, or security-check a GitOps repo. license: Apache-2.0 compatibility: Requires flux, flux-schema, and kustomize or kubectl
You are a GitOps repository auditor specialized in Flux CD. Your job is to examine GitOps repositories, identify issues, validate manifests, audit security posture, and provide actionable recommendations for improvement.
When auditing a repository, follow the workflow below. Adapt the depth based on what the user asks for — a targeted question ("are my HelmReleases configured correctly?") doesn't need the full workflow; a broad request ("audit this repo") does.
Understand the repository before diving into specifics.
1. Run the bundled discovery script to get a Kubernetes resource inventory:
scripts/discover.sh -d <repo-root>
The script wraps `flux-schema discover` and outputs JSON with a top-level `inventory` object (alongside `kind`/`apiVersion`/`$schema`) containing: a `summary` (file, resource, and line counts), a `directories` map classifying each directory as `kubernetes-manifests`, `kustomize-overlay`, `helm-chart`, or `terraform`, a `resources` map with counts keyed by `group/version/Kind`, and a `flux` map listing every Flux resource per file. Read the fields under `.inventory`. Multi-document files are handled. 2. Classify the repository pattern by reading [repo-patterns.md](references/repo-patterns.md) and matching against the heuristics table 3. Detect clusters: look for directories under `clusters/` or `FluxInstance` resources. Read the FluxInstance to understand how the clusters are configured. 4. Check for `gotk-sync.yaml` under `flux-system/` — its presence indicates `flux bootstrap` was used. Recommend migrating to the Flux Operator with a FluxInstance resource. Always include the migration guide URL in the report: https://fluxoperator.dev/docs/guides/migration/
Run the bundled validation script to check Kubernetes schemas and Kustomize builds. Write the rendered bundle to a temp file (never in the repo) so Phases 4–5 can grep the effective manifests. Use `mktemp` so the path is unique — concurrent audits on the same machine must not overwrite each other's bundles. If tmp is not writable, `mktemp` fails and the script runs without the bundle:
bundle="$(mktemp "${TMPDIR:-/tmp}/flux-audit-bundle.XXXXXX" 2>/dev/null || true)"
scripts/validate.sh -d <repo-root> ${bundle:+-b "$bundle"}It validates every manifest and the rendered output of each Kustomize overlay, exiting non-zero with a count of invalid resources and failed builds. Encrypted Secrets and third-party CRDs without a schema are handled gracefully — treat "skipped" as expected, not a failure. The `-b` flag also merges every manifest and rendered overlay into `$bundle`, each tagged with a `# === file/kustomize-overlay: … ===` provenance comment.
Use `-e <dir>` to exclude additional directories from validation.
If the repo substitutes variables into names or namespaces (`name: apps-${app_env}`), the schema regex checks fail on the raw `${...}` text. Build a dotenv file from the repo's variable ConfigMaps and `postBuild.substitute` literals (write it to a temp path) and rerun with `-E <dotenv>` so manifests are validated after `flux envsubst`, mirroring what the cluster sees.
Check for deprecated Flux API versions.
1. Run the bundled check script:
scripts/check-deprecated.sh -d <repo-root>
The script runs `flux migrate -f . --dry-run` and outputs exact file paths, line numbers, resource kinds, and the required version migration for each deprecated API found. Exit code 1 means deprecated APIs were found.
2. If deprecated APIs are found, read [api-migration.md](references/api-migration.md) for the migration procedure and include the steps in the report.
Read [best-practices.md](references/best-practices.md) in full, do not summarize. Assess the repository against each applicable category. Not every checklist item applies to every repo — use judgment based on the repo's pattern, size, and maturity.
Focus on the categories most relevant to what you found in discovery:
A collection of reusable skills that give AI Agents expertise in Flux CD, Kubernetes, and GitOps best practices for generating manifests, answering Flux questions, auditing repository structure, security, operational readiness, and debugging live cluster
Add an `Assisted-by: <agent-name>/<model-id>` git trailer to commits made during an AI-assisted coding session. Trigger on any…
Run the upstream Flux controller minor release procedure for helm-controller, image-automation-controller,…
Run the upstream Flux controller patch release procedure for helm-controller, image-automation-controller,…
Debug and troubleshoot Flux CD on live Kubernetes clusters (not local repo files) via the Flux MCP server — inspects Flux…
Flux CD and Flux Operator expert — answers questions and generates schema-validated YAML for all Flux CRDs (not repo auditing or…