No Explicit Any
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing TypeScript files for type safety regressions, during code review of functions that handle external data, or when the codebase has ESLint warnings for…
Use ONLY when user explicitly requests "update tags" or "/update-tags", or after running .claude/.dev/updatetags.py and seeing "Missing" or "Removed" discrepancy lines.
$ npx skills add wislertt/leetcode-py --skill update-tags -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install wislertt/leetcode-py update-tags --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/wislertt/leetcode-py.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/update-tags .claude/skills/update-tags && 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 "update-tags" agent skill from https://github.com/wislertt/leetcode-py/tree/main/.claude/skills/update-tags into .claude/skills/update-tags/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-tags", 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/wislertt/leetcode-py/tree/main/.claude/skills/update-tagsType 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 wislertt/leetcode-py --skill update-tags -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install wislertt/leetcode-py update-tags --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wislertt/leetcode-py.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/update-tags .agents/skills/update-tags && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "update-tags" agent skill from https://github.com/wislertt/leetcode-py/tree/main/.claude/skills/update-tags into .agents/skills/update-tags/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-tags", 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 wislertt/leetcode-py --skill update-tags -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install wislertt/leetcode-py update-tags --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wislertt/leetcode-py.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/update-tags .cursor/skills/update-tags && 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 "update-tags" agent skill from https://github.com/wislertt/leetcode-py/tree/main/.claude/skills/update-tags into .cursor/skills/update-tags/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-tags", 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/wislertt/leetcode-py.git --path .claude/skills/update-tags--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 wislertt/leetcode-py --skill update-tags -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install wislertt/leetcode-py update-tags --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wislertt/leetcode-py.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/update-tags .gemini/skills/update-tags && 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 "update-tags" agent skill from https://github.com/wislertt/leetcode-py/tree/main/.claude/skills/update-tags into .gemini/skills/update-tags/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-tags", 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 wislertt/leetcode-py update-tagsInstalls 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 wislertt/leetcode-py --skill update-tags -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/wislertt/leetcode-py.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/update-tags .github/skills/update-tags && 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 "update-tags" agent skill from https://github.com/wislertt/leetcode-py/tree/main/.claude/skills/update-tags into .github/skills/update-tags/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-tags", 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 wislertt/leetcode-py --skill update-tags -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install wislertt/leetcode-py update-tags --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wislertt/leetcode-py.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/update-tags .opencode/skills/update-tags && 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 "update-tags" agent skill from https://github.com/wislertt/leetcode-py/tree/main/.claude/skills/update-tags into .opencode/skills/update-tags/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "update-tags", 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.
update-tagsUse ONLY when user explicitly requests "update tags" or "/update-tags", or after running .claude/.dev/updatetags.py and seeing "Missing" or "Removed" discrepancy lines.
Update Tags is an agent skill from wislertt/leetcode-py. Use ONLY when user explicitly requests "update tags" or "/update-tags", or after running .claude/.dev/updatetags.py and seeing "Missing" or "Removed" discrepancy lines. Reconciles the tag sync between source lists and tags.json5.
Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: Python LeetCode practice environment with automated problem generation, data structure visualizations, and comprehensive testing. Includes all Grind 75, partial Blind, Neetcode… The licence is Apache-2.0.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 9155db3. 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:
uvFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use uv, 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.
Update Tags loads about 2.5k tokens when it runs. Until then it costs about 61 tokens; SKILL.md has 1,216 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 wislertt/leetcode-py at commit 9155db3, republished under its Apache-2.0 licence (© wislertt). 1,216 words, ~2,451 tokens.
.claude/skills/update-tags/SKILL.md (or your agent's skills folder).Two layers, one direction of truth:
.claude/.dev/problem_lists/*.py. Each defines tag_name + problems_list of (problem_number, "Title") tuples. These are the canonical membership lists. __init__.py exposes them via available_lists.src/leetcode_py/cli/resources/leetcode/json/tags.json5. JSON5 with comments. Lists problem-name strings per tag, plus sub-tag references like { tag: "neetcode-150" }. Consumed by the CLI at runtime.update_tags.py diffs the two and prints discrepancies. It never edits files — a human resolves each line at the correct layer.
The script prints two kinds of lines. They have different fix locations:
| Script line | Meaning | Where to fix |
|---|---|---|
Missing N: [...] | in source, not in tags.json5 | tags.json5 (add entries) |
Removed N: [...] (not included in update) | in tags.json5, not in source | either layer — decide via _tags.list (see trap) |
Iron rule: Missing → edit tags.json5. Removed → check the problem's _tags.list first — fix source if membership confirmed, else delete from tags.json5. Never guess the direction. For batch-created problems, confirm with source-list membership by problem number (see circularity gotcha below).
A "Removed" line means tags.json5 lists a problem the source list doesn't. Do not reflexively add a tuple to source — a "Removed" line is two opposite cases, and you must decide which before touching anything:
| Case | Signal | Fix |
|---|---|---|
| Source list lagging (problem genuinely belongs here) | flagged tag IS in the problem JSON _tags.list | source — add (number, "Title") tuple |
| tags.json5 entry bogus (problem does not belong here) | flagged tag NOT in _tags.list | tags.json5 — delete the entry (confirm user) |
Decide via the problem's own metadata. Read src/leetcode_py/cli/resources/leetcode/json/problems/<name>.json → the _tags.list array is the problem's self-declared roadmap membership. It is a stronger signal than the tags.json5 entry you're auditing — a problem knows which roadmaps claim it.
_tags.list → the problem considers itself a member; the source list just hasn't caught up. Add the tuple to source._tags.list → the tags.json5 entry was likely added by mistake. Do not propagate it to source. Confirm with the user, then delete the entry from that tag's array in tags.json5.GOTCHA — _tags.list is circular for batch-created problems. The _tags.list field is written at creation time by whoever created the problem. If the stamp was wrong there, this check "confirms" the wrong membership and directs you to pollute the source list — which permanently cements the mistake (a later sync commit did exactly this and bogus tuples had to be reverted by hand). For problems created via the batch/problem-creation flow, ground truth is source-list membership by problem number, not _tags.list: grep (number, across .claude/.dev/problem_lists/*.py. Number present in that list's file → member; absent → not a member, regardless of what _tags.list claims. If the number is in NO source file except neetcode.py (the 943 all-queue), the problem is queue-only: _tags.list should be ["neetcode"] and the tags.json5 roadmap entries are the bug.
The script deliberately refuses to auto-delete ("not included in update") so a human makes this call. Both wrong directions are permanent: deleting a real entry hides it (source lacks it, so Missing never fires to restore); adding a bogus tuple to source cements a mistake the script can no longer flag. The _tags.list check is what tells you which direction is safe.
To get the number + exact title: same JSON → problem_number + problem_title (proper-cased, e.g. "Last Stone Weight II"). Note problem_name is the snake_case slug — do NOT use it as the title. Match the casing already used in that source file.
tags.json5 inherits — { tag: "neetcode-150" } inside neetcode-250 recursively pulls in all of neetcode-150. Source lists do not inherit (neetcode_250.py does not auto-include neetcode_150.py).
Consequence: a "Removed" line on an inheriting tag (e.g. neetcode-250) is frequently a false positive — the problem enters existing only via the inherited sub-tag reference, and the source-side set has no matching inheritance. Example tell: a problem flagged "Removed" for neetcode-150 but not for neetcode-250 means its tuple is in neetcode_250.py but missing from neetcode_150.py.
Fix is still source-side: add the tuple to the source list(s) that should contain it. If the same problem is "Removed" across multiple tags, add the tuple to each relevant source file.
uv run python .claude/.dev/update_tags.pyNo changes found → done. Delete .claude/.dev/update_tags.json if it exists. Stop.Missing line: add the listed problem-name strings to that tag's array in tags.json5, in alphabetical order. Use Edit, not a full rewrite — preserve the // comment above each tag block and the JSON5 formatting (quoted keys for hyphenated names like "neetcode-250", bare keys for grind; strings as "snake_case").maximum_subarray appears in 4+ blocks; majority_element, minimum_path_sum, etc. repeat across roadmaps). A grep -n hit + the nearest "tag": [ header above it do not prove the line lives in that block — arrays can stretch 60+ lines and the header above may belong to a different tag. Before Edit, Read the target block's full [ ... ] span and copy 2–3 consecutive anchor lines from inside that block as old_string. Verify the anchor is unique to the target block by eyeballing the span, not by assumption.Removed line: run the _tags.list decision from the trap above — before any edit. Add the tuple to source only if membership is confirmed (_tags.list contains the flagged tag). Otherwise delete the entry from that tag's array in tags.json5, after confirming with the user. Keep the source file's existing ordering convention (neetcode_150.py is sorted by number; neetcode_250.py and grind.py are topical — append if unsure).No changes found. Loop until clean. This is not cosmetic — a re-run that surfaces a new Removed/Missing on a tag you did not intend to touch is the tell-tale sign of a wrong-block edit (step 3 trap). If that happens, your last edit landed in the wrong array: revert it and re-apply in the correct block.rm .claude/.dev/update_tags.json_tags.list — a real tracked problem vanishes permanently. But the opposite is equally bad…_tags.list — a "Removed" line is not a command to add. If the problem's own _tags metadata does not claim membership in the flagged roadmap, the tags.json5 entry is the bug, not the source list. Propagating a bogus entry to source cements the mistake (script can no longer flag it). Read _tags.list first; it tells you which direction is safe.json.dump — destroys the // comments and JSON5 formatting. Always surgical Edit.problem_title (proper-cased) from the JSON, not problem_name (snake_case slug). Match the file's existing entry style (e.g. "Smallest Range Covering Elements from K Lists").No changes found; a single fix can surface/resolve related lines.maximum_subarray, majority_element, minimum_path_sum recur across many tag arrays. Picking an Edit anchor from grep output without reading the target block's [ ... ] span easily lands the edit in a neighboring array (e.g. inserting into algo-master-75 when you meant neetcode-250). The re-run then shows a new discrepancy on the unintended tag. Read the block, anchor inside it, verify uniqueness by inspection..claude/.dev/update_tags.py.claude/.dev/problem_lists/*.py (+ __init__.py → available_lists)src/leetcode_py/cli/resources/leetcode/json/tags.json5src/leetcode_py/cli/resources/leetcode/json/problems/<name>.json.claude/.dev/update_tags.json© wislertt, Apache-2.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 .claude/skills/update-tags of wislertt/leetcode-py.
Open the folder on GitHubat commit 9155db3
Update Tags 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 |
|---|---|---|---|---|---|---|
| Update Tags this skillwislertt/leetcode-py | 142 | — | ~2.5k | Automated safety check: Pass | Apache-2.0 | |
| No Explicit Anythedaviddias/Front-End-Checklist | 74k | — | ~565 | Automated safety check: Pass | MIT | |
| Review Tagshashicorp/terraform-provider-aws | 11k | — | ~462 | Automated safety check: Pass | MPL-2.0 | |
| Noscript Tagthedaviddias/Front-End-Checklist | 74k | — | ~554 | Automated safety check: Pass | MIT | |
| Og Tagsthedaviddias/Front-End-Checklist | 74k | — | ~495 | Automated safety check: Pass | MIT | |
| Tag Duplicate PRs Issuesopenclaw/openclaw | 392k | — | ~4k | Automated safety check: Pass | MIT |
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing TypeScript files for type safety regressions, during code review of functions that handle external data, or when the codebase has ESLint warnings for…
hashicorp/terraform-provider-aws
Review Terraform AWS Provider tagging: the tags/tagsall schema attributes, the @Tags(identifierAttribute=...) annotation, and wiring input.Tags = getTagsIn(ctx) after flex.Expand.
thedaviddias/Front-End-Checklist
A skill your agent uses when reviewing templates, rendered HTML, or shared components related to Provide noscript fallback content.
thedaviddias/Front-End-Checklist
A skill your agent uses when auditing a web page's social sharing metadata.
openclaw/openclaw
Use gitcrawl to search duplicate OpenClaw PRs/issues, group related work in prtags, and sync duplicate state to GitHub.
gnekt/My-Brain-Is-Full-Crew
Analyze all vault tags: find unused, orphan, near-duplicate, over-used, and under-used tags.
wislertt/leetcode-py
Generates Python LeetCode practice environments and manages a 307-problem catalog with the lcpy CLI.
wislertt/leetcode-py
Test quality assurance workflow for LeetCode problems - verifies reproducibility, fixes linting issues, and ensures test structure matches JSON templates.
wislertt/leetcode-py
Batch creation workflow for multiple LeetCode problems - loops through problem creation, solution implementation, and quality assurance for a specified count.
wislertt/leetcode-py
Guide for creating a single LeetCode problem scaffold - scrape, transform to JSON template, generate files, and verify.
Use ONLY when user explicitly requests "update tags" or "/update-tags", or after running .claude/.dev/updatetags.py and seeing "Missing" or "Removed" discrepancy lines. Update Tags is an agent skill from wislertt/leetcode-py.py and seeing "Missing" or "Removed" discrepancy lines.
Update Tags fits situations like: explicitly requests update tags; after running .claude/.dev/updatetags.py and seeing Missing; removed discrepancy lines.
Run `npx skills add wislertt/leetcode-py --skill update-tags -a claude-code`. Or copy the skill folder (.claude/skills/update-tags in wislertt/leetcode-py) into .claude/skills/update-tags in your project. Claude Code loads it when a task matches its description.
Run `npx skills add wislertt/leetcode-py --skill update-tags -a codex`. Or copy the skill folder (.claude/skills/update-tags in wislertt/leetcode-py) into .agents/skills/update-tags 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 wislertt/leetcode-py --skill update-tags -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/update-tags, .gemini/skills/update-tags, .github/skills/update-tags and .opencode/skills/update-tags in your project.
Going by SKILL.md and its folder, Update Tags needs the command-line tools its instructions call (uv). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use uv, 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.
Update Tags is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.5k tokens (SKILL.md is roughly 9.8k 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 Update Tags: No Explicit Any (thedaviddias/Front-End-Checklist, 74k stars), Review Tags (hashicorp/terraform-provider-aws, 11k stars), Noscript Tag (thedaviddias/Front-End-Checklist, 74k stars) and Og Tags (thedaviddias/Front-End-Checklist, 74k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
wislertt (a GitHub user) maintains it in wislertt/leetcode-py, which has 142 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 7, 2026.
Source: wislertt/leetcode-py on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.