Migrate Internal Package into Ghost
TryGhost/Ghost
Moves a package from another TryGhost repository into Ghost as an internal workspace package while keeping its Git history, with checkpoints for the steps that need an administrator.
Migrates a nuqs codebase off pre-v2.5 patterns — deprecated throttleMs, hand-rolled setTimeout/useState debounce around useQueryState, unchecked parseAsJson casts, unversioned…
$ npx skills add pproenca/dot-skills --skill nuqs-codemod-runner -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install pproenca/dot-skills nuqs-codemod-runner --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/pproenca/dot-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/.curated/nuqs-codemod-runner .claude/skills/nuqs-codemod-runner && 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 "nuqs-codemod-runner" agent skill from https://github.com/pproenca/dot-skills/tree/master/skills/.curated/nuqs-codemod-runner into .claude/skills/nuqs-codemod-runner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nuqs-codemod-runner", 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/pproenca/dot-skills/tree/master/skills/.curated/nuqs-codemod-runnerType 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 pproenca/dot-skills --skill nuqs-codemod-runner -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install pproenca/dot-skills nuqs-codemod-runner --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pproenca/dot-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/.curated/nuqs-codemod-runner .agents/skills/nuqs-codemod-runner && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "nuqs-codemod-runner" agent skill from https://github.com/pproenca/dot-skills/tree/master/skills/.curated/nuqs-codemod-runner into .agents/skills/nuqs-codemod-runner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nuqs-codemod-runner", 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 pproenca/dot-skills --skill nuqs-codemod-runner -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install pproenca/dot-skills nuqs-codemod-runner --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pproenca/dot-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/.curated/nuqs-codemod-runner .cursor/skills/nuqs-codemod-runner && 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 "nuqs-codemod-runner" agent skill from https://github.com/pproenca/dot-skills/tree/master/skills/.curated/nuqs-codemod-runner into .cursor/skills/nuqs-codemod-runner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nuqs-codemod-runner", 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/pproenca/dot-skills.git --path skills/.curated/nuqs-codemod-runner--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 pproenca/dot-skills --skill nuqs-codemod-runner -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install pproenca/dot-skills nuqs-codemod-runner --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pproenca/dot-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/.curated/nuqs-codemod-runner .gemini/skills/nuqs-codemod-runner && 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 "nuqs-codemod-runner" agent skill from https://github.com/pproenca/dot-skills/tree/master/skills/.curated/nuqs-codemod-runner into .gemini/skills/nuqs-codemod-runner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nuqs-codemod-runner", 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 pproenca/dot-skills nuqs-codemod-runnerInstalls 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 pproenca/dot-skills --skill nuqs-codemod-runner -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/pproenca/dot-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/.curated/nuqs-codemod-runner .github/skills/nuqs-codemod-runner && 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 "nuqs-codemod-runner" agent skill from https://github.com/pproenca/dot-skills/tree/master/skills/.curated/nuqs-codemod-runner into .github/skills/nuqs-codemod-runner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nuqs-codemod-runner", 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 pproenca/dot-skills --skill nuqs-codemod-runner -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install pproenca/dot-skills nuqs-codemod-runner --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pproenca/dot-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/.curated/nuqs-codemod-runner .opencode/skills/nuqs-codemod-runner && 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 "nuqs-codemod-runner" agent skill from https://github.com/pproenca/dot-skills/tree/master/skills/.curated/nuqs-codemod-runner into .opencode/skills/nuqs-codemod-runner/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "nuqs-codemod-runner", 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.
nuqs-codemod-runnerMigrates a nuqs codebase off pre-v2.5 patterns — deprecated throttleMs, hand-rolled setTimeout/useState debounce around useQueryState, unchecked parseAsJson casts, unversioned…
Nuqs Codemod Runner is an agent skill from pproenca/dot-skills. Migrates a nuqs codebase off pre-v2.5 patterns — deprecated throttleMs, hand-rolled setTimeout/useState debounce around useQueryState, unchecked parseAsJson casts, unversioned nuqs/adapters/react-router imports, or ParserBuilder<T type references. Scans the repo, produces a dry-run report, asks for confirmation, applies AST codemods, then runs tsc --noEmit + the user's lint as a gate. Trigger even if the user only mentions "upgrade nuqs" or "migrate to nuqs v2.5+" without naming the specific patterns — they…
Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 20 other files, including scripts and reference files (for example `AGENTS.md`, `config.json` and `gotchas.md`).
It sits in Development, covering Code migrations. It works with React Router and Git. The repository describes itself as: A collection of AI agent skills following the Agent Skills open format. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit cf93c57. 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.
Ships 10 files in scripts/ (Shell and JavaScript), which the agent can run.
Shell commands in SKILL.md call:
gittscnpmnodeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and npm, 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.
Nuqs Codemod Runner loads about 1.3k tokens when it runs, and up to ~2.9k if it reads all its reference files. Until then it costs about 147 tokens; SKILL.md has 505 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); the scripts in this folder are not scanned.
The full file from pproenca/dot-skills at commit cf93c57, republished under its MIT licence (© pproenca). 505 words, ~1,304 tokens.
.claude/skills/nuqs-codemod-runner/SKILL.md (or your agent's skills folder). This skill also uses 16 other files; get the full folder from GitHub.Migrate a codebase from pre-v2.5 nuqs patterns to current v2.5–v2.8 idioms. The skill is read-only by default — it never modifies files without an explicit confirmation step, and refuses to run on a dirty git working tree.
Trigger this skill when:
nuqs version bump in package.json from <2.5 to >=2.5 is part of the diffnuqs skill and wants to bring existing code into line with itThis skill is the automation companion to skills/.curated/nuqs/ — that skill teaches what each correct pattern looks like; this skill rewrites legacy code to match.
┌──────────┐ ┌────────────┐ ┌──────────────────┐ ┌───────────┐ ┌────────────┐
│ scan.sh │──▶ │ scan.json │──▶ │ report.sh │──▶ │ apply.sh │──▶ │ verify.sh │
└──────────┘ └────────────┘ │ (dry-run table) │ │ (codemods)│ │ (tsc+lint) │
└──────────────────┘ └───────────┘ └────────────┘
│ ▲ │
▼ │ ▼
user reviews ──────────── confirms on fail: revertscripts/scan.sh <repo-root> — ripgreps every .ts/.tsx/.js/.jsx file for the 5 legacy patterns, emits scan.json with {path, line, matchedPattern, snippet, suggestion}.scripts/report.sh — renders scan.json as a markdown table grouped by codemod, with file paths and before/after pairs. Show this output to the user verbatim and ask for explicit confirmation before continuing.scripts/apply.sh [--filter <codemod-id>] — runs the jscodeshift transforms in scripts/transforms/. Refuses to run unless a fresh scan.json exists for the current git HEAD and the working tree is clean (--allow-dirty overrides).scripts/verify.sh — runs tsc --noEmit and npm run lint (or the equivalent commands from config.json). If anything fails, git restore reverts every file the codemod touched.Run all four sequentially. If the user only wants to scan, stop at step 2.
| ID | Detects | Rewrites to |
|---|---|---|
throttle-ms | withOptions({ throttleMs: N }) or setX(v, { throttleMs: N }) | withOptions({ limitUrlUpdates: throttle(N) }) + adds throttle to the nuqs import |
manual-debounce | useState mirror + useEffect + setTimeout debounce around a useQueryState setter | withOptions({ limitUrlUpdates: debounce(N) }) + adds debounce to the nuqs import; deletes the mirror state and effect |
unchecked-json-cast | parseAsJson<T>() (no validator) or parseAsJson((v) => v as T) | Inserts a // TODO: validate type-guard stub or, if Zod is detected in package.json, a parseAsJson(SchemaName.parse) form |
react-router-unversioned | from 'nuqs/adapters/react-router' | from 'nuqs/adapters/react-router/v6' (the alias the unversioned import historically pointed at) |
parser-builder-type | type references to ParserBuilder<T> from nuqs | SingleParserBuilder<T> |
See references/workflow.md for the exact AST shapes each codemod matches and the edge cases it deliberately skips.
On first run, config.json is populated with the user's lint/typecheck commands and a default min_node_version. See _setup_instructions in config.json for what to fill in.
This skill is write-risk (it modifies source files). Guardrails:
apply.sh aborts if the working tree is dirty (use git stash first, or pass --allow-dirty after reading gotchas.md)apply.sh aborts if scan.json is older than 60 minutes or was generated against a different git HEAD — re-run scan.shhooks/hooks.json PreToolUse matcher blocks any direct node scripts/transforms/*.js invocation that bypasses the orchestratorverify.sh auto-reverts on TS or lint failure via git restore over the touched files (recorded in last-run.json)nuqs — Best-practice reference for nuqs v2.5+. This skill rewrites legacy code; that skill defines the target.See gotchas.md for failure modes discovered during use.
© pproenca, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 16 other files (scripts, references) in skills/.curated/nuqs-codemod-runner of pproenca/dot-skills.
Open the folder on GitHubat commit cf93c57
Nuqs Codemod Runner 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 |
|---|---|---|---|---|---|---|
| Nuqs Codemod Runner this skillpproenca/dot-skills | 214 | — | ~1.3k | Automated safety check: Pass | MIT | |
| Migrate Internal Package into GhostTryGhost/Ghost | 55k | — | ~3.8k | Automated safety check: Pass | MIT | |
| React Router Release Notes Prepremix-run/react-router | 57k | — | ~1.1k | Automated safety check: Pass | MIT | |
| React Router Pull Request Creatorremix-run/react-router | 57k | — | ~2.5k | Automated safety check: Pass | MIT | |
| Convert Internal Package to TypeScriptTryGhost/Ghost | 55k | — | ~1.2k | Automated safety check: Pass | MIT | |
| React Router PR Finish Lineremix-run/react-router | 57k | — | ~1.4k | Automated safety check: Pass | MIT |
TryGhost/Ghost
Moves a package from another TryGhost repository into Ghost as an internal workspace package while keeping its Git history, with checkpoints for the steps that need an administrator.
remix-run/react-router
Polishes pending React Router change files before the versioning scripts run, and decides whether a long-form What's Changed section is warranted.
remix-run/react-router
Packages finished React Router work into a draft pull request: branch, commit, push, a written PR body and the right GitHub labels.
TryGhost/Ghost
Moves a legacy internal Ghost package from JavaScript and CommonJS to TypeScript and ESM in three focused commits that keep git file history intact.
remix-run/react-router
Takes a blocked community pull request in React Router and adds the missing tests, change file or docs so it can merge, working on the contributor's branch.
RustPython/RustPython
Upgrades a Python standard library module from CPython into RustPython with update_lib, then triages and marks the tests that still fail.
pproenca/dot-skills
Audio forensics and voice recovery guidelines for CSI-level audio analysis.
pproenca/dot-skills
Guided, scripted pipeline for running JSX/TSX/React codemods safely across large legacy codebases.
pproenca/dot-skills
Create well-structured RFCs and technical proposals for software projects.
pproenca/dot-skills
Developer-experience friction auditing and fixing — slow onboarding, repeated manual setup steps, missing bootstrap/reset/seed scripts, undiscoverable conventions.
pproenca/dot-skills
Turn a rough idea for a language into a complete, implementable specification — a DSL, query, config/data, template, or protocol language — by interviewing the author dimension by dimension until…
pproenca/dot-skills
Drafting Python Enhancement Proposals (PEPs) — proposing a Python language feature, a standard library change, an interoperability standard, or an informational/process document for the Python…
Works with
Categories
Migrates a nuqs codebase off pre-v2.5 patterns — deprecated throttleMs, hand-rolled setTimeout/useState debounce around useQueryState, unchecked parseAsJson casts, unversioned…. Nuqs Codemod Runner is an agent skill from pproenca/dot-skills.5 patterns — deprecated throttleMs, hand-rolled setTimeout/useState debounce around useQueryState, unchecked parseAsJson casts, unversioned nuqs/adapters/react-router imports, or ParserBuilder<T type references.
Nuqs Codemod Runner fits situations like: even if the user only mentions upgrade nuqs; migrate to nuqs v2.5+ without naming the specific patterns — they almost always exist in pre-v2.5 codebases.
Run `npx skills add pproenca/dot-skills --skill nuqs-codemod-runner -a claude-code`. Or copy the skill folder (skills/.curated/nuqs-codemod-runner in pproenca/dot-skills) into .claude/skills/nuqs-codemod-runner in your project. Claude Code loads it when a task matches its description.
Run `npx skills add pproenca/dot-skills --skill nuqs-codemod-runner -a codex`. Or copy the skill folder (skills/.curated/nuqs-codemod-runner in pproenca/dot-skills) into .agents/skills/nuqs-codemod-runner 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 pproenca/dot-skills --skill nuqs-codemod-runner -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/nuqs-codemod-runner, .gemini/skills/nuqs-codemod-runner, .github/skills/nuqs-codemod-runner and .opencode/skills/nuqs-codemod-runner in your project.
Going by SKILL.md and its folder, Nuqs Codemod Runner needs a shell and JavaScript for the scripts in its folder and the command-line tools its instructions call (git, tsc, npm and node). Our summary lists: Node.js; A Bash shell.
SKILL.md contains no URLs. Its commands use git and npm, 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Nuqs Codemod Runner is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.3k tokens (SKILL.md is roughly 5.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Nuqs Codemod Runner: Migrate Internal Package into Ghost (TryGhost/Ghost, 55k stars), React Router Release Notes Prep (remix-run/react-router, 57k stars), React Router Pull Request Creator (remix-run/react-router, 57k stars) and Convert Internal Package to TypeScript (TryGhost/Ghost, 55k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
pproenca (a GitHub user) maintains it in pproenca/dot-skills, which has 214 GitHub stars. The repository holds 182 skills in this directory. The repository was last updated on August 15, 2026.
Source: pproenca/dot-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.