feat: detect manifest drift in the status skill#5
Merged
Conversation
status now compares k8s/<app>/ files against the cluster with oc diff (server-side dry-run, still read-only), filters diff noise, and reports one plain-language line per app. Reconciliation is offered, never automatic, and asks which side is right before acting. Skipped silently when no local manifests exist. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Addresses the configuration-drift gap: nothing previously detected when
k8s/<app>/files and the cluster disagreed (portal resizes,oc edit, update-image run from the wrong repo).How it works
statusnow globs fork8s/*/*.yamland runsoc diff -f k8s/<app>/per deployed app — a server-side dry-run, so the skill stays read-onlygeneration,creationTimestamp, last-applied annotations,status:) is filtered before deciding anything counts as driftfiles: ✓ in syncorfiles: ⚠ drift — cluster runs 3 replicas, file says 1— never a raw diff dumpk8s/directory — no disclaimers when you're in an unrelated repoReconciliation UX
Drift is reported, never auto-fixed. If the user wants it fixed, one question — which side is right?
oc apply -f k8s/<app>/(repo is source of truth, the normal answer)Includes a full conversation example in the references, plus README notes (and the "graduate to GitOps when this hurts" line in design principles).
🤖 Generated with Claude Code