skills/upgrade-pack-generator/SKILL.md
Generate repo-local dependency upgrade packs under `.agents/plans/upgrade/topic-slug/` with a playbook, trigger prompt, operator mode, and canonical manifest. Use when Codex needs to research an anchor package, expand related dependencies, detect target repo context, and create a reusable upgrade folder before any implementation work starts.
npx skillsauth add bjornmelin/dev-skills upgrade-pack-generatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate upgrade-pack folders for dependency families in two stages:
The generator is monorepo-aware. During enrichment it must lock an explicit owner surface for the family:
The generated pack is docs/research only. Do not implement package changes while generating the pack.
Read references/workflow.md.
Decide the mode:
Detect repo context first:
python3 scripts/detect_repo_context.py --repo-root /path/to/repo --json
Bootstrap a manifest from the anchor package:
python3 scripts/bootstrap_manifest.py \
--repo-root /path/to/repo \
--anchor-package lucide-react \
--out /tmp/upgrade-pack.yaml
Enrich the manifest with live repo probes and official upstream guidance:
python3 scripts/enrich_manifest.py --manifest /tmp/upgrade-pack.yaml
Refine the enriched manifest further with live research when needed:
$repo-modernize-upgrade-audit$opensrc$opensrc-inspect$technical-writing$hard-cutValidate the manifest:
python3 scripts/validate_upgrade_pack.py /tmp/upgrade-pack.yaml
Run read-only research:
python3 scripts/research_upgrade_pack.py --manifest /tmp/upgrade-pack.yaml
Run the mandatory web.run confirmation pass for required official docs and
API-reference pages from research-bundle.json and record the results in
web-research-findings.json.
Re-run read-only research so the snapshot reflects the confirmed official pages:
python3 scripts/research_upgrade_pack.py --manifest /tmp/upgrade-pack.yaml
python3 scripts/qualify_upgrade_pack.py --manifest /tmp/upgrade-pack.yaml
python3 scripts/render_upgrade_pack.py \
--manifest /tmp/upgrade-pack.yaml \
--output-dir /path/to/repo/.agents/plans/upgrade/<topic>
Every generated repo-local pack must contain exactly:
upgrade-pack.yamlresearch-snapshot.jsonresearch-bundle.jsonweb-research-findings.jsonqualification-snapshot.json<basename>-playbook.md<basename>-trigger-prompt.md<basename>-operator-mode.mdThe manifest is the canonical source. The markdown files are rendered outputs.
research-snapshot.json and qualification-snapshot.json are the canonical
machine-readable evidence files for the separate research and qualify stages.
research-bundle.json is the raw evidence ledger that backs the research
snapshot.
web-research-findings.json is the machine-readable record of web.run
confirmation for the required official pages.
Rendered file roles:
<basename>-playbook.md
<basename>-operator-mode.md
<basename>-trigger-prompt.md
Do not hand-maintain operator-mode.md or trigger-prompt.md; regenerate them
from the manifest.
Read references/manifest-schema.md before editing any override.
Family overrides live in references/family-overrides/. Use them when a
dependency family recurs across repos and benefits from package-specific:
Current built-in family lanes:
lucide-reactnextjsexpo-easconvexturboreposhadcn-radix-uiKeep overrides narrow. Put only family-specific information there. Let the base generator provide the common structure.
Detect the target repo command family in this order:
package.json#packageManagerThe generator should write that decision into upgrade-pack.yaml and render
package-manager-aware command variables into the pack. Do not force Bun into a
pnpm/npm/Yarn repo.
Use the default research lanes in references/research-lanes.md.
Conditional routing:
$bun-dev only when Bun posture is actually relevant$imagegen unless raster asset generation is truly part
of the package-family surfacescripts/detect_repo_context.py
scripts/bootstrap_manifest.py
upgrade-pack.yaml from generic defaults plus an optional
family overridescripts/enrich_manifest.py
upgrade-pack.yaml with family-specific repo probes, current
package versions, and live official-doc snapshotsscripts/validate_upgrade_pack.py
scripts/research_upgrade_pack.py
web.run queue into
research-snapshot.json plus research-bundle.jsonscripts/sync_source_map.py
references/source-maps/scripts/qualify_upgrade_pack.py
qualification-snapshot.jsonscripts/render_upgrade_pack.py
Bootstrap a known family override:
python3 scripts/bootstrap_manifest.py \
--repo-root /path/to/repo \
--anchor-package lucide-react \
--out /tmp/lucide-upgrade-pack.yaml
Render a generic pack for a package without an override:
python3 scripts/bootstrap_manifest.py \
--repo-root /path/to/repo \
--anchor-package commander \
--out /tmp/commander-upgrade-pack.yaml
python3 scripts/enrich_manifest.py \
--manifest /tmp/commander-upgrade-pack.yaml
python3 scripts/research_upgrade_pack.py \
--manifest /tmp/commander-upgrade-pack.yaml
python3 scripts/qualify_upgrade_pack.py \
--manifest /tmp/commander-upgrade-pack.yaml
python3 scripts/render_upgrade_pack.py \
--manifest /tmp/commander-upgrade-pack.yaml \
--output-dir /path/to/repo/.agents/plans/upgrade/commander
Refresh an existing repo-local pack after refining the manifest:
python3 scripts/enrich_manifest.py \
--manifest /path/to/repo/.agents/plans/upgrade/lucide-react/upgrade-pack.yaml
python3 scripts/validate_upgrade_pack.py \
/path/to/repo/.agents/plans/upgrade/lucide-react/upgrade-pack.yaml
python3 scripts/research_upgrade_pack.py \
--manifest /path/to/repo/.agents/plans/upgrade/lucide-react/upgrade-pack.yaml
python3 scripts/qualify_upgrade_pack.py \
--manifest /path/to/repo/.agents/plans/upgrade/lucide-react/upgrade-pack.yaml
python3 scripts/render_upgrade_pack.py \
--manifest /path/to/repo/.agents/plans/upgrade/lucide-react/upgrade-pack.yaml \
--output-dir /path/to/repo/.agents/plans/upgrade/lucide-react
tools
Explicit-only Kimi Code CLI frontend/UI advisor for UI audits, redesigns, components, screenshots, before/after comparison, layout, styling, accessibility, responsive behavior, and visual polish. Use only when the user explicitly invokes `$kimi-ui-advisor` and wants Codex to ask Kimi for structured UI suggestions, then review, apply, and verify them in the repo.
development
Run a Codex-only structured code review closeout for local, branch, or commit diffs. Use when the user asks for autoreview, Codex review, structured closeout review, final review before commit/ship, or review after non-trivial code edits.
tools
Use this skill for Firecrawl CLI web work: web search, URL scraping, site mapping, crawling, structured extraction, page interaction, monitoring changes, offline site download via x download, and parsing local documents such as PDF, DOCX, XLSX, HTML, DOC, ODT, or RTF. Trigger for requests to search the web, look up current info, fetch/read/scrape a URL, extract website data, crawl docs, click/fill/login/paginate a page, monitor page changes, save a site offline, or parse a document. Do not trigger for generic local file reads/edits, git/deploy/code tasks, or Firecrawl app integration work.
tools
Triage unresolved Sentry issues into ranked groups, GitHub issue plans, branches, subspawn worktree assignments, PRs, and closeout loops using the sentry CLI, GitHub CLI, and local verification. Use when asked to prioritize Sentry backlogs, group production issues, create GitHub issues or PRs from Sentry evidence, or parallelize Sentry fixes.