Update .NET OS Packages
dotnet/core
Audits and updates os-packages.json files listing the Linux packages each .NET release needs per distro, then regenerates the Markdown from the JSON.
Refresh the awesome-ev-charging project listing's metadata (stars, forks, pushedat, dormant/archived signals) and re-render it into README.md — the periodic maintenance pass, with no new repo to add…
$ npx skills add juherr/awesome-ev-charging --skill refresh-metadata -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install juherr/awesome-ev-charging refresh-metadata --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/juherr/awesome-ev-charging.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/refresh-metadata .claude/skills/refresh-metadata && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "refresh-metadata" agent skill from https://github.com/juherr/awesome-ev-charging/tree/main/.agents/skills/refresh-metadata into .claude/skills/refresh-metadata/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refresh-metadata", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/juherr/awesome-ev-charging/tree/main/.agents/skills/refresh-metadataType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add juherr/awesome-ev-charging --skill refresh-metadata -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install juherr/awesome-ev-charging refresh-metadata --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/juherr/awesome-ev-charging.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/refresh-metadata .agents/skills/refresh-metadata && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "refresh-metadata" agent skill from https://github.com/juherr/awesome-ev-charging/tree/main/.agents/skills/refresh-metadata into .agents/skills/refresh-metadata/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refresh-metadata", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add juherr/awesome-ev-charging --skill refresh-metadata -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install juherr/awesome-ev-charging refresh-metadata --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/juherr/awesome-ev-charging.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/refresh-metadata .cursor/skills/refresh-metadata && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "refresh-metadata" agent skill from https://github.com/juherr/awesome-ev-charging/tree/main/.agents/skills/refresh-metadata into .cursor/skills/refresh-metadata/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refresh-metadata", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/juherr/awesome-ev-charging.git --path .agents/skills/refresh-metadata--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add juherr/awesome-ev-charging --skill refresh-metadata -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install juherr/awesome-ev-charging refresh-metadata --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/juherr/awesome-ev-charging.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/refresh-metadata .gemini/skills/refresh-metadata && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "refresh-metadata" agent skill from https://github.com/juherr/awesome-ev-charging/tree/main/.agents/skills/refresh-metadata into .gemini/skills/refresh-metadata/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refresh-metadata", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install juherr/awesome-ev-charging refresh-metadataInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add juherr/awesome-ev-charging --skill refresh-metadata -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/juherr/awesome-ev-charging.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/refresh-metadata .github/skills/refresh-metadata && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "refresh-metadata" agent skill from https://github.com/juherr/awesome-ev-charging/tree/main/.agents/skills/refresh-metadata into .github/skills/refresh-metadata/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refresh-metadata", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add juherr/awesome-ev-charging --skill refresh-metadata -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install juherr/awesome-ev-charging refresh-metadata --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/juherr/awesome-ev-charging.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/refresh-metadata .opencode/skills/refresh-metadata && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "refresh-metadata" agent skill from https://github.com/juherr/awesome-ev-charging/tree/main/.agents/skills/refresh-metadata into .opencode/skills/refresh-metadata/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "refresh-metadata", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
refresh-metadataRefresh the awesome-ev-charging project listing's metadata (stars, forks, pushedat, dormant/archived signals) and re-render it into README.md — the periodic maintenance pass, with no new repo to add…
Refresh Metadata is an agent skill from juherr/awesome-ev-charging. Refresh the awesome-ev-charging project listing's metadata (stars, forks, pushedat, dormant/archived signals) and re-render it into README.md — the periodic maintenance pass, with no new repo to add and no issue to close. Use this whenever the user wants to "refresh the metadata", "update the stars", "re-run the pipeline", "mets à jour la liste / les métadonnées", "rafraîchis le README", or otherwise bring the generated listing up to date with GitHub. Handles the cache-vs-TTL decision (whether to clear…
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Technical documentation. It works with GitHub. The repository describes itself as: Awesome list of tools for Electric Vehicles. The licence is CC0-1.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 2799ade. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
misegitghpythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Refresh Metadata loads about 1.9k tokens when it runs. Until then it costs about 178 tokens; SKILL.md has 885 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from juherr/awesome-ev-charging at commit 2799ade, republished under its CC0-1.0 licence (© juherr). 885 words, ~1,926 tokens.
.claude/skills/refresh-metadata/SKILL.md (or your agent's skills folder).The published project listing (## Tools and Resources in README.md, between
<!-- BEGIN GENERATED PROJECTS --> / <!-- END GENERATED PROJECTS -->) is
generated from repos.enriched.csv by pipeline.py. Over time the upstream
GitHub numbers drift — repos gain stars, get archived, or cross the
DORMANT_DAYS threshold — so the listing needs a periodic refresh. This skill
is that maintenance pass: re-fetch GitHub, re-classify only what changed, and
re-render, in the correct order with one clean commit.
This is not add-project. There is no repo to make discoverable, no
category to pin, no issue to close. If the goal is to add or remove one specific
repo, use add-project instead — it handles the discovery + reconciliation
steps this skill deliberately skips.
Read AGENTS.md in the repo root for the authoritative "why" behind the
pipeline; this skill is the executable "how" for the refresh case.
mise trust has been run (mise pins Python 3.11 and auto-activates .venv).gh auth token works — the mise tasks wire it in for the GitHub API and the
GraphQL-only Stars lists (STARRED_LISTS), which are skipped when
unauthenticated. Check with gh auth token >/dev/null && echo OK.Nearly every GitHub read goes through a filesystem cache in cache_github/ with
a 24h TTL (CACHE_TTL in pipeline.py). This is the step a naive re-run
gets wrong: if the cache is fresh, ingest reads it and the metadata does not
change — you'd just re-derive identical docs. Two reads bypass the cache and
hit the API on every run (get_starred_repos_for_user, and the search
pagination), so a fresh cache makes the run cheap and the rendered signals
stable — it does not guarantee a byte-identical ingest.
So decide based on why you're refreshing:
You want fresh GitHub numbers (stars, pushed_at, newly-archived repos) —
the cache must be older than the data you want, or cleared. Check its age:
find cache_github -type f -printf '%T@\n' 2>/dev/null | sort -rn | head -1 \
| awk -v now="$(date +%s)" '{ printf "newest cache file: %.1fh old (TTL 24h)\n", (now-$1)/3600 }'If the newest file is < 24h old and you need genuinely fresh numbers, clear the cache before ingesting:
rm -rf cache_github/If it's already > 24h old, the TTL has expired — ingest will re-fetch on
its own, no need to clear.
You only need to re-derive the docs from CSVs you (or a prior run) already
produced — e.g. after tweaking render logic — then do not touch the cache
and you can skip straight to render (Step 3). Hand-editing
classifications.csv is not one of those cases: render reads
repos.enriched.csv, not the classification cache, so keep the cache and
re-run mise run enrich (incremental, so it's cheap) to carry the edit
through, then render.
Don't clear a fresh cache reflexively. Clearing forces ~900 API calls and a longer run; only do it when you actually want newer-than-cache data. When in doubt, tell the user the cache age and let them choose.
repos.csvRe-collects candidates from all four discovery sources and rebuilds every record
(so stars, pushed_at, dormant, etc. reflect current GitHub — or the cache,
per the decision above).
mise run ingestrepos.enriched.csvmise run enrichpushed_at, so only repos whose upstream changed since the last run pay the
LLM cost. A metadata refresh therefore re-classifies few repos, not all.--refresh — it re-classifies everything and would blow away
any hand-pinned classifications.csv cells. There is no repo-scoped form of
it: the only reason to accept a full re-classification is to clear an empty
classification a transient failure left behind.python pipeline.py render --readme README.mdThis replaces the text between the GENERATED markers in README.md and also
rewrites the standalone legacy-projects.md. It aborts if the
markers are missing or out of order.
A refresh is expected to touch many rows: any repo whose pushed_at moved
gets re-classified, and star/dormant changes reshuffle which block
(Selection / collapsed Dormant / collapsed To refine) a repo lands in. So
a large diff is normal, not a bug. Sanity-check that nothing regressed to an
empty category unexpectedly and that the block moves look plausible:
git --no-pager diff --stat
git --no-pager diff classifications.csv | grep -E '^\+' | grep -iE ',$|,\s*$' # rows that lost their categoryIf a repo unexpectedly went dormant or lost its classification, investigate before committing rather than baking a regression into the listing.
chore(data) commitUnlike add-project, there's no source change to split out — a pure refresh
touches only generated, committed artifacts. The regenerable artifacts
repos.csv, repos.enriched.csv, cache_github/, list.txt are git-ignored —
never commit them. Commit only the durable, published files:
git add classifications.csv README.md legacy-projects.md
git commit -m "chore(data): refresh project listing
Re-ran ingest + enrich + render. Refreshes N repos whose upstream metadata
(stars, pushed_at, dormant/archived) changed since the last run."Fill in N from the diff. If the refresh also pulled in pipeline.py changes
(e.g. you cleared cache and bumped a curation constant), that's really an
add-project-shaped change — commit the code separately.
Conventions to honor:
Co-Authored-By: trailer naming an assistant, and
no mention of one in the body, whichever assistant you are. Standing
preference for this user.Pushing to the default branch republishes the awesome list. Ask the user before pushing if they haven't clearly authorized it — outward-facing actions need confirmation.
README.md between the GENERATED markers by hand.--refresh to enrich during a routine refresh — it destroys
hand-pinned classifications.classifications.csv, README.md,
legacy-projects.md (+ pipeline.py if you changed a constant).© juherr, CC0-1.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/refresh-metadata of juherr/awesome-ev-charging.
Open the folder on GitHubat commit 2799ade
Refresh Metadata next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Refresh Metadata this skilljuherr/awesome-ev-charging | 175 | — | ~1.9k | Automated safety check: Pass | CC0-1.0 | |
| Update .NET OS Packagesdotnet/core | 22k | — | ~2.3k | Automated safety check: Pass | MIT | |
| Beautify GitHub Readmeoil-oil/beautify-github-readme | 1.8k | — | ~4.1k | Automated safety check: Pass | MIT | |
| Library Documentation Seekerwithkynam/vibecode-pro-max-kit | 1.1k | 2 repos | ~1k | Automated safety check: Notes | MIT | |
| Update .NET Supported OS Matrixdotnet/core | 22k | — | ~4.1k | Automated safety check: Pass | MIT | |
| Debate ReviewamElnagdy/review-skills | 132 | 2 repos | ~986 | Automated safety check: Pass | MIT |
dotnet/core
Audits and updates os-packages.json files listing the Linux packages each .NET release needs per distro, then regenerates the Markdown from the JSON.
oil-oil/beautify-github-readme
Redesign GitHub README homepages or create project-native pure SVG, hybrid SVG-composed PNG/WebP, and opt-in animated GIF assets.
withkynam/vibecode-pro-max-kit
Looks up library and framework documentation through Context7 first, with bundled Node scripts as a fallback that fetch and analyze llms.txt files.
dotnet/core
Audits and updates the supported-os.json files for .NET releases, checking them against upstream lifecycle data and regenerating the markdown with the release-notes tool.
amElnagdy/review-skills
Two-model debate review of a GitHub PR, GitLab MR, Azure DevOps PR, or local working tree, posted as inline comments or printed.
agent-substrate/substrate
Posts pull request review findings as GitHub draft (pending) inline comments for a human to edit and submit, instead of publishing them straight to the PR author.
juherr/awesome-ev-charging
Add a project/tool/repository to the awesome-ev-charging generated listing.
Works with
Categories
Refresh the awesome-ev-charging project listing's metadata (stars, forks, pushedat, dormant/archived signals) and re-render it into README.md — the periodic maintenance pass, with no new repo to add…. Refresh Metadata is an agent skill from juherr/awesome-ev-charging.md — the periodic maintenance pass, with no new repo to add and no issue to close.
Refresh Metadata fits situations like: wants to refresh the metadata; update the stars; re-run the pipeline; mets à jour la liste / les métadonnées.
Run `npx skills add juherr/awesome-ev-charging --skill refresh-metadata -a claude-code`. Or copy the skill folder (.agents/skills/refresh-metadata in juherr/awesome-ev-charging) into .claude/skills/refresh-metadata in your project. Claude Code loads it when a task matches its description.
Run `npx skills add juherr/awesome-ev-charging --skill refresh-metadata -a codex`. Or copy the skill folder (.agents/skills/refresh-metadata in juherr/awesome-ev-charging) into .agents/skills/refresh-metadata in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add juherr/awesome-ev-charging --skill refresh-metadata -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/refresh-metadata, .gemini/skills/refresh-metadata, .github/skills/refresh-metadata and .opencode/skills/refresh-metadata in your project.
Going by SKILL.md and its folder, Refresh Metadata needs the command-line tools its instructions call (mise, git, gh and python). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Refresh Metadata is published under the CC0-1.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.9k tokens (SKILL.md is roughly 7.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Refresh Metadata: Update .NET OS Packages (dotnet/core, 22k stars), Beautify GitHub Readme (oil-oil/beautify-github-readme, 1.8k stars), Library Documentation Seeker (withkynam/vibecode-pro-max-kit, 1.1k stars) and Update .NET Supported OS Matrix (dotnet/core, 22k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
juherr (a GitHub user) maintains it in juherr/awesome-ev-charging, which has 175 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on October 5, 2026.
Source: juherr/awesome-ev-charging on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.