release-maintenance
Skill9 starsChanged 3 months agoMITView on GitHub
Separately confirmed manifest reconciliation, scoped config synchronization, workload restart, or evidence-backed rollout acknowledgement. Requires explicit invocation; never runs inside a release watch tick.
- Commits and pushes
In this repository81 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- architectSkill
- artifact-hygieneSkill
- backlog-groomSkill
- beads-check-dolt-migrationSkill
- beads-migrate-to-doltSkill
- beads-setupSkill
- beadsSkill
- breakdownSkill
- browser-screenshotSkill
- circleci-statusSkill
- clean-codeSkill
- complete-taskSkill
- confluenceSkill
- contract-checkSkill
- contract-testSkill
- create-prSkill
- delegate-workSkill
- dependabot-remediationSkill
- developSkill
- diagnose-bugSkill
- do-i-need-thisSkill
- eas-build-errorSkill
- handoffsSkill
- handoffs-tidySkill
- image-studioSkill
- implement-solutionSkill
- jira-commentSkill
- jira-ticketSkill
- landscapeSkill
- model-update-checkSkill
- name-sessionSkill
- nextSkill
- outstanding-workSkill
- pair-programmingSkill
- pedantic-reviewSkill
- peer-sessionSkill
- pickupSkill
- pi-spendSkill
- plan-daySkill
- plan-to-backlogSkill
- project-briefSkill
- prompt-patternsSkill
- pr-reviewersSkill
- pr-review-requestsSkill
- pr-statusSkill
- ready-to-mergeSkill
- ready-to-releaseSkill
- reassessSkill
- rebaseSkill
- refineSkill
- release-managerSkill
- release-statusSkill
- reply-commentsSkill
- review-commentsSkill
- review-prSkill
- sanity-checkSkill
- second-opinionSkill
- setup-multirepo-gitSkill
- skills-reviewSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
10 rules. About 0 are common, 9 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈9
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Distinctive: line 33
Do not invent repository names, cluster context, namespaces, startup-only config behavior, or consumer sets.
- Distinctive: line 54
Verify the actual outcome before recording it.
- Very specific: line 60
Run ./scripts/release-order read-only and show its accepted graph and new/removed drift.
- Distinctive: line 70
After approval, execute only that command.
- Distinctive: line 84
If the operation needs history rewriting, merge conflict resolution, or a transformation without a verified project command, stop with a …
- Distinctive: line 89
Read-only apply verification must bind the controller's observed source revision and desired resource identity to that commit.
- Distinctive: line 91
Never infer that a workload reads config only at startup, auto-derive a restart queue from a source grep, or restart in the sync operation.
- Distinctive: line 111
Before execution, read the current UID/generation and deployment status without secret contents.
- Distinctive: line 133
If provenance is unavailable, keep it and report HOLD.
- Distinctive: line 142
Read state and show the exact record: attempt id, commit, pre-push tag, session, deploying flag and whether it is uncertain.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Release Maintenance
Own production-affecting maintenance separately from shipping decisions.
This skill is never invoked by /release-manager or /watch-release; those workflows may suggest a fresh explicit
invocation but cannot dispatch it. A push answer is not maintenance authorization.
Usage
/release-maintenance reconcile-order
/release-maintenance config-sync <repository>
/release-maintenance restart <service>
/release-maintenance acknowledge-rollout <service>
/release-maintenance resolve-publication <service>Require an explicit operation and target. A missing/ambiguous argument is a clarification, not a license to scan for actions. Load the verified project's guidance and relevant runbook first. Do not invent repository names, cluster context, namespaces, startup-only config behavior, or consumer sets. Unsupported project capabilities require a handoff, not generic fallback commands.
Shared action boundary
- Identify the exact repository/worktree or Kubernetes context/namespace/resource and current
evidence. Preserve unrelated edits and state. One writer per state file; pause the attended
manager before any shared-state update. Change
.release-state.jsononly through~/.agents/skills/release-manager/scripts/release-state:update --owner maintenancemay patchrolloutWatchand the legacy keys, with the hash read before asking. Malformed state, a refusal or a conflict stops the write; never edit the file directly or reset it. - Show the diff or operation, target, production consequence, and one visible command. Ask
immediately before each remote or destructive action; this skill also confirms local manifest
rewrites and state acknowledgements. Dismissal/no answer means do nothing. Every subsequent
command needs its own approval; no cached tick answer or bundled
&&chain. - Recheck target identity and relevant evidence after the answer. A changed target/evidence voids
approval. Never switch the active Kubernetes context; pass
--contextexplicitly every time. - Mutating Git/Kubernetes commands are deliberately not preapproved by this skill's tool list.
Obtain any required runtime permission as well as the current action answer; denial stops the
operation, never triggers a broader shell grant. For read-only Kubernetes evidence use
kubectl get --context <context> --namespace <namespace> ...with explicit safe fields. - Verify the actual outcome before recording it. Stop on failure or uncertainty; no automatic retry, rollback, push, tag, history rewrite, or deletion. Credentials remain in the keyring; never print Secret data or config values.
Reconcile dependency order
Run ./scripts/release-order read-only and show its accepted graph and new/removed drift. The
existing Pact adapter owns generated content; humans own order.manual and order.suppress.
An absent manifest, unavailable adapter, or non-Pact provider cannot be repaired implicitly.
Preview the generated-block change and ask for the exact local rewrite:
./scripts/release-order --writeAfter approval, execute only that command. Inspect the named manifest diff; verify manual/suppress entries and unrelated content are unchanged, then rerun the read-only order adapter. An unexpected diff stops the operation for owner review; do not reset/discard it. Commit only named paths if requested by local workflow. A commit does not authorize publishing it.
Configuration synchronization
The project runbook/recipe, not this skill, defines source-to-GitOps transformation and ownership.
Inspect it before proposing commands. Do not execute make k8s-sync as a shortcut: legacy recipes
may hide a pull/rebase and push. Enumerate the necessary scoped operations and confirm each remote
or destructive command separately. Use ./scripts/mgit for the registered Git repository.
- Require known source changes, destination worktree/branch, target environment, and clean or explicitly owned destination changes. Show the redaction-safe diff before any publish decision.
- If the operation needs history rewriting, merge conflict resolution, or a transformation without a verified project command, stop with a specific handoff. This invocation is not blanket approval to repair history or modify linked repositories outside the named operation.
- Publish only the exact reviewed commit after a fresh command confirmation. A successful Git push is not proof that Flux/the deployment controller applied desired configuration.
- Read-only apply verification must bind the controller's observed source revision and desired resource identity to that commit. resourceVersion movement alone is insufficient.
- Never infer that a workload reads config only at startup, auto-derive a restart queue from a source grep, or restart in the sync operation. A restart requires a separate explicit invocation.
Restart one workload
Require explicit context, namespace, kind/name, reason, and verified project evidence that the
workload requires a restart and the intended configuration revision is applied. Mount presence,
a Secret/ConfigMap change, or young pods alone does not establish that requirement. CronJobs and
unsupported workload types require their own project runbook, not a Deployment fallback.
The shared authority's advisory configUptake restart recommendation identifies the workload,
desired revision and the consumed revision it was based on; treat it as the reason to look, then
re-collect fresh evidence here. investigate, unknown, pending or rolling entries never
support a restart.
For a verified Deployment, show and freshly confirm this fully scoped command:
kubectl --context <context> --namespace <namespace> rollout restart deployment/<name>Before execution, read the current UID/generation and deployment status without secret contents.
Afterwards bind verification to that same UID and the newly observed desired generation:
observedGeneration has caught up, updated/ready/available replicas match desired replicas, and
no old replicas remain. Use bounded read-only observation; report incomplete evidence rather than
waiting forever. Pod age reset, unchanged image tag, or a successful restart command is not proof
of completion. Do not claim application-level health without a scoped read-only check.
Acknowledge a rollout with missing baseline
Collect the shared readiness result. rollout=unknown from a null fromTag must not be converted
to success using age or elapsed time. Require independent project deployment evidence linking the
saved pushed revision to the currently settled workload (for example immutable image provenance
and the controller's observed revision), including explicit context/resource identity.
Show that evidence and the exact rolloutWatch[service] entry proposed for removal. Read state
first and keep its hash, ask for a current acknowledgement, then remove only that unchanged entry:
~/.agents/skills/release-manager/scripts/release-state update --owner maintenance --expect <hash> --patch '{"rolloutWatch":{"<service>":null}}'A conflict means the entry or state changed; read again and re-ask rather than retrying. If provenance is unavailable, keep it and report HOLD; do not add an expiry that fabricates readiness. Re-run the read-only authority afterwards. This is a local tracking update, not a deployment.
Resolve a pending publication
A publishing[service] record is written before a push is confirmed. One marked uncertain, or
left behind by an interrupted run, holds every further release push for the project. Never clear it
by age or because readiness looks green.
Read state and show the exact record: attempt id, commit, pre-push tag, session, deploying flag and whether it is uncertain. Show the current shared readiness evidence for that service, for example whether its upstream revision now equals the recorded commit. This skill does not authorize an extra remote read; use only evidence already collected or separately confirmed. Ask whether that exact commit was published, then run exactly one command with the hash read before asking:
~/.agents/skills/release-manager/scripts/release-state resolve-publication --service <service> --sha <sha> --id <id> --published --expect <hash>
~/.agents/skills/release-manager/scripts/release-state resolve-publication --service <service> --sha <sha> --id <id> --not-published --expect <hash>--published records a rollout watch from the saved pre-push tag for deploying services;
--not-published only clears the record. No answer, or unclear evidence, keeps the hold.
Legacy maintenance state
configApply, restartPending, and restartWatch from older managers are preserved, not migrated
or advanced automatically. They are hints to investigate, not proof of application or startup
requirements. For the explicitly selected operation, inspect current project evidence and propose
only a separately confirmed release-state update --owner maintenance to the relevant unchanged
entry. Preserve every unrelated key;
never clear the whole state file or resurrect the old resourceVersion/pod-age heuristics.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

