Agent skill

Add Project

by juherr in juherr/awesome-ev-charging

Add a project/tool/repository to the awesome-ev-charging generated listing.

CC0-1.0Auto-check passedDevelopment

Install Add Project

skills CLI
$ npx skills add juherr/awesome-ev-charging --skill add-project -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install juherr/awesome-ev-charging add-project --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/juherr/awesome-ev-charging.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/add-project .claude/skills/add-project && rm -rf skills-src

Use ~/.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/

Facts

Skill name
add-project
GitHub stars
175
Token cost
~2.1k tokens
SKILL.md length
897 words
Files
1
Skills in repo
2
Repo updated
First seen
Licence
CC0-1.0

At a glance

Add a project/tool/repository to the awesome-ev-charging generated listing.

  • Works in 8 steps: Make the repo discoverable by ingest → Ingest → repos.csv → Enrich → classifies the new repo → …
  • Feature a GitHub repo in the awesome list — including handling an Add a link GitHub issue (e.g
  • SKILL.md covers Inputs to gather first, Preconditions, Workflow and Golden rules
  • Calls git, gh and mise

What it does

Add Project is an agent skill from juherr/awesome-ev-charging. Add a project/tool/repository to the awesome-ev-charging generated listing. Use this whenever the user wants to add, list, or feature a GitHub repo in the awesome list — including handling an "Add a link" GitHub issue (e.g. "traite l'ajout de l'issue 27", "add ocpp-debugkit to the list", "ajoute ce repo à la liste"). Covers the full pipeline: make the repo discoverable, ingest → enrich → render, pin the requested category if the classifier diverges, commit the right files, and close the issue. Do NOT hand-edit…

Its SKILL.md is about 2.1k 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.

When your agent uses it

  • Feature a GitHub repo in the awesome list — including handling an Add a link GitHub issue (e.g
  • Tasks that involve Technical documentation

Example prompts

  • “Add a link”
  • “traite l”
  • “issue 27”
  • “/add-project”

Requirements

  • Python 3

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Make the repo discoverable by ingest
  2. Ingest → repos.csv
  3. Enrich → classifies the new repo
  4. Reconcile category with the request
  5. Render → inject into README + standalone
  6. Review the diff — expect drift
  7. Commit
  8. Close the issue

What it can do on your machine

Read from SKILL.md and the folder at commit 2799ade. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • gh
    • mise
    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    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.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Add Project loads about 2.1k tokens when it runs. Until then it costs about 180 tokens; SKILL.md has 897 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~180
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from juherr/awesome-ev-charging at commit 2799ade, republished under its CC0-1.0 licence (© juherr). 897 words, ~2,051 tokens.

Download SKILL.mdSave it as .claude/skills/add-project/SKILL.md (or your agent's skills folder).
name
add-project
description
Add a project/tool/repository to the awesome-ev-charging generated listing. Use this whenever the user wants to add, list, or feature a GitHub repo in the awesome list — including handling an "Add a link" GitHub issue (e.g. "traite l'ajout de l'issue #27", "add ocpp-debugkit to the list", "ajoute ce repo à la liste"). Covers the full pipeline: make the repo discoverable, ingest → enrich → render, pin the requested category if the classifier diverges, commit the right files, and close the issue. Do NOT hand-edit README.md between the generated markers — always go through this workflow. For a plain periodic refresh of the whole listing's metadata (no repo to add/remove), use refresh-metadata instead.

Add a project to the awesome-ev-charging list

The published project listing (## Tools and Resources in README.md, between <!-- BEGIN GENERATED PROJECTS --> / <!-- END GENERATED PROJECTS -->) is generated by pipeline.py. You never edit it by hand — you change the pipeline inputs and re-render. This skill walks the full, correct sequence so a new entry lands in the right section with a clean commit history.

Read CONTRIBUTING.md and AGENTS.md in the repo root for the authoritative "why" behind each step; this skill is the executable "how".

Scope check. This skill is for adding (or removing) a specific repo. If the task is just a periodic metadata refresh of the whole listing — re-run the pipeline to pick up new stars / dormant status, with no repo to add — use the refresh-metadata skill instead: it handles the cache-vs-TTL decision and lands a single chore(data) commit rather than the source+data split below.

Inputs to gather first

From the request (often a GitHub issue opened with the "Add a link" template), extract three things:

  • URL / owner/repo — the GitHub repo to add.
  • Requested category — as Main > Sub (e.g. OCPP > Misc). Valid main categories live in CATEGORY_TREE in pipeline.py; subcategories are free-form.
  • Description — a one-line factual summary (the enrich classifier will produce its own; the issue's is a sanity check).

If the request is a bare URL, still resolve owner/repo and confirm the repo exists before touching anything:

bash
gh api repos/<owner>/<repo> --jq '{full_name, description, stars: .stargazers_count, pushed_at, archived, fork: .fork}'

If it's archived or a fork, mention that to the user — it may still be added but will land in the Dormant / To refine blocks.

Preconditions

  • 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 GitHub API + the GraphQL-only Stars lists. Check with gh auth token >/dev/null && echo OK.

Workflow

1. Make the repo discoverable by ingest

ingest only builds records for repos it can discover. The repo qualifies if any of these is true — check in this order and do the least invasive thing:

  • it already matches a TOPICS GitHub topic (e.g. tagged ocpp), or
  • it's in a curated Stars list in STARRED_LISTS (juherr/ev, mateogreil/ev-mobility), or
  • it's linked somewhere in README.md, or
  • default action — add its owner/repo to ADDITIONAL_REPOS in pipeline.py.

When unsure, just add it to ADDITIONAL_REPOS — it's idempotent and explicit. A repo can be discovered by several sources at once (the CSV source column shows the +-joined provenance); that's fine.

To remove instead, add its full_name to EXCLUDED_REPOS and skip to render.

2. Ingest → repos.csv
bash
mise run ingest

Confirm the repo is present:

bash
grep "<owner>/<repo>" repos.csv
3. Enrich → classifies the new repo
bash
mise run enrich
  • Enrichment is incremental: it reuses cached classifications keyed by pushed_at, so only new/changed repos hit the LLM. Never pass --refresh here — it re-classifies everything and would overwrite any hand-pinned cells.
  • This can take a few minutes (it iterates all repos, fetching READMEs). Run it in the background and wait for it to finish rather than polling tightly.

Then check what category the classifier assigned:

bash
grep "<owner>/<repo>" classifications.csv
4. Reconcile category with the request
  • If the classifier's Main > Sub matches the requested category → good, nothing to do.
  • If it diverges and the user's requested category is authoritative → pin it by editing that repo's categories cell in classifications.csv (leave pushed_at untouched — it's the cache key), then re-run mise run enrich (cache reuse, no LLM call) so the edit flows into repos.enriched.csv. A repo can hold several categories separated by |.
  • Alternatively, for a robust code-level override that survives --refresh, add an entry to CATEGORY_OVERRIDES in pipeline.py (key is the lowercased owner/repo, e.g. "owner/repo": "Main > Sub"); this applies at render time and needs no enrich.
Show full SKILL.md (315 more words)Show less
5. Render → inject into README + standalone
bash
python pipeline.py render --readme README.md

Verify the entry landed:

bash
grep -n "<owner>/<repo>" README.md legacy-projects.md

The block a repo lands in (Selection vs collapsed Dormant / To refine) is decided by a promotion score (star lists / contributor status), not by you — so a low-star repo showing up under To refine is expected, not a bug.

6. Review the diff — expect drift

Re-running ingest/enrich commonly re-discovers and re-classifies other repos whose upstream pushed_at changed since the last run (the cache reuse key is pushed_at). So the diff on README.md / classifications.csv is often much larger than your single addition. This is normal pipeline drift, not a bug. Sanity-check that nothing regressed to an empty category unexpectedly:

bash
git --no-pager diff --stat
7. Commit

Commit only the meaningful files. Generated artifacts repos.csv, repos.enriched.csv, cache_github/, list.txt are git-ignored — never commit them. Split into two commits so the issue's actual source change is traceable and the data refresh is separate. The first commit only exists when you actually edited pipeline.py — a repo discovered through TOPICS, a STARRED_LISTS entry or a README link needs no source change, so go straight to the second:

bash
# 1) the source change for the issue — skip if pipeline.py is unchanged
git add pipeline.py
git commit -m "feat(data): add <repo> to ADDITIONAL_REPOS

Requested in issue #<N>. <one-line description>. Classified as <Main > Sub>.

Closes #<N>"

# 2) the regenerated listing (includes unrelated refresh drift)
git add classifications.csv README.md legacy-projects.md
git commit -m "chore(data): refresh project listing (adds <repo>)

Re-ran enrich + render. Injects <repo> (<Main > Sub>) and refreshes N
repos whose upstream pushed_at changed since the last enrichment."

Conventions to honor:

  • Conventional Commits, in English.
  • No AI attribution in commit messages — no Co-Authored-By: trailer naming an assistant, and no mention of one in the body, whichever assistant you are. This is a standing preference for this user.
  • If the change is only the code override path (no data refresh), one feat commit on pipeline.py + README.md is enough.
8. Close the issue

Closes #<N> in the commit auto-closes it on push to the default branch. If you only committed locally or want to comment, do it explicitly:

bash
gh issue close <N> --repo juherr/awesome-ev-charging \
  --comment "Added — see <commit sha>. It now appears under <Main > Sub>."

Ask the user before pushing/closing if they haven't clearly authorized it — outward-facing actions need confirmation.

Golden rules

  • ✅ Never edit README.md between the GENERATED markers by hand.
  • ✅ Only commit classifications.csv, README.md, legacy-projects.md, and (if changed) pipeline.py.
  • ✅ Never pass --refresh when you want to keep hand-pinned classifications.
  • ✅ No AI/assistant references in commit messages.

© 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

Files

Just SKILL.md in .agents/skills/add-project of juherr/awesome-ev-charging.

Open the folder on GitHubat commit 2799ade

Compare with similar skills

Add Project 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.

Add Project compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Add Project this skilljuherr/awesome-ev-charging175—~2.1kAutomated safety check: PassCC0-1.0
Update .NET OS Packagesdotnet/core22k—~2.3kAutomated safety check: PassMIT
Beautify GitHub Readmeoil-oil/beautify-github-readme1.8k—~4.1kAutomated safety check: PassMIT
Library Documentation Seekerwithkynam/vibecode-pro-max-kit1.1k2 repos~1kAutomated safety check: NotesMIT
Update .NET Supported OS Matrixdotnet/core22k—~4.1kAutomated safety check: PassMIT
Debate ReviewamElnagdy/review-skills1322 repos~986Automated safety check: PassMIT

Similar skills

  • Official

    Audits and updates os-packages.json files listing the Linux packages each .NET release needs per distro, then regenerates the Markdown from the JSON.

    22k GitHub stars~2.3k tokensUpdated today
    DevelopmentAuto-check passed
  • Beautify GitHub Readme

    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.

    1.8k GitHub stars~4.1k tokensUpdated 3 days ago
    DevelopmentAuto-check passed
  • Library Documentation Seeker

    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.

    1.1k GitHub starsUsed in 2 repos~1k tokens
    DevelopmentAuto-check: notes
  • Official

    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.

    22k GitHub stars~4.1k tokensUpdated today
    DevelopmentAuto-check passed
  • Debate Review

    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.

    132 GitHub starsUsed in 2 repos~986 tokens
    DevelopmentAuto-check passed
  • Post Draft Review

    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.

    4.5k GitHub stars~2.8k tokensUpdated today
    DevelopmentAuto-check passed

More from juherr/awesome-ev-charging

  • Refresh Metadata

    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…

    175 GitHub stars~1.9k tokensUpdated 3 days ago
    Auto-check passed

Works with

Categories

Questions about Add Project

What does Add Project do?

Add a project/tool/repository to the awesome-ev-charging generated listing. Add Project is an agent skill from juherr/awesome-ev-charging. Add a project/tool/repository to the awesome-ev-charging generated listing.

When should I use Add Project?

Add Project fits situations like: feature a GitHub repo in the awesome list — including handling an Add a link GitHub issue (e.g; tasks that involve Technical documentation.

How do I install Add Project in Claude Code?

Run `npx skills add juherr/awesome-ev-charging --skill add-project -a claude-code`. Or copy the skill folder (.agents/skills/add-project in juherr/awesome-ev-charging) into .claude/skills/add-project in your project. Claude Code loads it when a task matches its description.

How do I install Add Project in Codex?

Run `npx skills add juherr/awesome-ev-charging --skill add-project -a codex`. Or copy the skill folder (.agents/skills/add-project in juherr/awesome-ev-charging) into .agents/skills/add-project in your project. Codex loads it when a task matches its description.

Can I use Add Project in Cursor, Gemini CLI or GitHub Copilot?

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 add-project -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-project, .gemini/skills/add-project, .github/skills/add-project and .opencode/skills/add-project in your project.

What does Add Project need to run?

Going by SKILL.md and its folder, Add Project needs the command-line tools its instructions call (git, gh, mise and python). Our summary lists: Python 3.

Does Add Project access the network?

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.

Is Add Project safe to install?

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.

What licence does Add Project use?

Add Project 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.

How many tokens does Add Project use?

About 2.1k tokens (SKILL.md is roughly 8.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Add Project?

Skills that share tags, products or a category with Add Project: 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.

Who maintains Add Project?

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.