Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add gke-labs/kube-agents --skill upgrade-readiness-briefgit clone --depth 1 https://github.com/gke-labs/kube-agentsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/gke-labs/kube-agents/upgrade-readiness-brief)<a href="https://agentmods.dev/skills/gke-labs/kube-agents/upgrade-readiness-brief"><img src="https://agentmods.dev/badge/skills/gke-labs/kube-agents/upgrade-readiness-brief/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/gke-labs/kube-agents/upgrade-readiness-brief"><img src="https://agentmods.dev/badge/skills/gke-labs/kube-agents/upgrade-readiness-brief.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00083 | $0.01950 |
| Opus 5.5 | $0.00033 | $0.00780 |
| Sonnet 5.5 | $0.00017 | $0.00390 |
| Haiku 4.5 | $0.00008 | $0.00195 |
Grade A, and why
upgrade-readiness-brief scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 104 lines — stays where its author put it; the contents beside it link to each section on GitHub.
upgrade-readiness-brief — The Week's Decisions, On Request
The Saturday job upgrade-readiness-weekly-review grades every cluster and registers each blocker
and risk on the findings queue; the job upgrade-readiness-weekly-brief composes the week's brief
from both under /opt/data/profiles/platform/governance/upgrade_readiness_brief_sop.md. This skill is that SOP's "On request"
route: a user asks for the brief, or for what needs their decision, or for this week's report, and
gets the same shape in chat. Read only. Register nothing, decide nothing, upgrade nothing.
Steps
- Read the review's copy:
cat /opt/data/upgrade-readiness/weekly/latest.json— the summary:generated_at,projects,clusters(reviewed, blocked, ready, unknown, unread),counts,findings(rows withid,severity,check,entry,project,cluster,namespace,object,title,action,outcome),new_ids,suppressed_ids,no_longer_reported_ids,project_failures,registration_errors,report_path.cat /opt/data/upgrade-readiness/weekly/latest.mdwhen a line needs more than the row says.- If the asked-for thing is the report, print
latest.mdas it is and stop; when the file is missing, say the review's copy is not there (the weekly review has not run, or its copy did not land; the review's own chat line, if any, says which) and offer the on-request readiness report (fleet-upgrade-verification,--readiness) instead of composing anything. - If
generated_atis older than 48 hours, compose from the summary anyway and say its date and age in the headline: a stale brief with its date beats none. - If the file is missing, read the queue first (step 2). When it holds
upgrade-rows, the review ran and its copy did not land: compose from the queue alone, with a headline that says the summary is unavailable, and leave out the counts only the summary gives. Only when the queue holds noupgrade-rows either compose a live brief: run thefleet-upgrade-verificationskill with--readinessonce over every project in scope, treat its blockers and risks as the findings (a budget over a single replica, a pool past the skew ceiling and a webhook in the upgrade's path are critical; a budget over several replicas, a webhook refusing only what it matches today and a pool at the ceiling are major; a covering exclusion is minor; a readiness rule's blocker is critical, and its risk is minor for catalogue entries 9, 10, 11, 13 and 16 and major for every other entry), name objects where the queue would give ids, say "live brief, composed now; the weekly review has not run" in the headline, and close with the live form of the last line: there is no report file and no id to reply with until the Saturday review registers them.
- Read the queue, with the
platform_controltools:get_ranked_findings: the open backlog. Keep the rows whosecheckstarts withupgrade-. A row in statequeuedorsurfacedis undecided: nobody has decided on it, whether or not the hourly nudge has named it yet.acceptedis decided (being worked on).get_findingswithstate=snoozed, thenstate=dismissed: the other decided rows; the backlog never carries them. Keep theupgrade-rows of these too. Passlimit=1000andproject=<id>for each project in the summary'sprojects(the default page is 200 rows across every source); a page of exactly 1000 rows is cut, so say "at least" before that count.
- Compose the brief in exactly this shape, at most twenty-five lines, ids verbatim in backticks:
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today First seen · 104 lines · 83 tokens per session scan A 4c638360a1a5
upgrade-readiness-brief is a skill published in the GitHub repository gke-labs/kube-agents (109 stars, last pushed today), licensed Apache-2.0. It adds 83 tokens to every session and 1,950 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-22.
Other skills, from other repositories
devloop
Goal-driven development loop — define objective, write rules with key-results, verify visually, sync to issue tracker.
assess
Multi-phase project assessment with scoring. Triggered by "/assess" to evaluate project health across dimensions and generate a comprehensive report.
goal
Set and track project goals. Triggered by "/goal" to define objectives, track milestones, or review progress.
work
Handle issue/PR work items with worktree isolation. Triggered by "/work [issuelink|description]" to start focused work.
atmos-modernization
Atmos Modernization: migrate deprecated or legacy Atmos patterns to current names, Native CI, Atmos Pro drift detection, dependencies.components, nametemplate, and declared secrets.
atmos-init
Bootstrapping new Atmos projects with atmos init: built-in template catalog, differences from atmos scaffold generate, project record, and update-safe 3-way merge.