skill-consolidator
Skill Consolidator
Create our own “best version” skills by consolidating globally installed skills into a smaller, linked set inside this repo, without directly editing the global skills directory.
When to Use This Skill
Use this skill when the user:
- Wants to consolidate overlapping skills into one first-party skill
- Says “merge skills”, “remove duplicates”, or “organize my skills”
- Wants to create a custom skill by strategically combining third-party skills
- Has a cluster of similar skills (e.g. Playwright) and wants one canonical version
- Needs a safe workflow for reviewing and decommissioning old skill copies
Safety & constraints
- Treat globally installed skills as read-only (default target:
~/.agents/skills, or$CODEX_HOME/skills, or~/.codex/skills). - Prefer duplication over mutation: copy skills into this repo before editing.
- Never delete skills as part of consolidation; deprecate via documentation and links instead.
Skill locations (repo vs global)
- Repo first-party skills (source of truth):
./skills/(edit here first) - Global installed skills (source of truth):
~/.agents/skills/~/.codex/skills/often contains symlinks pointing into~/.agents/skills/
Quick start
- Generate an overlap report from globally installed skills (read-only):
python3 skills/skill-consolidator/scripts/scan_installed_skills.py --out-dir tmp/skill-consolidator
- Pick the first cluster in
tmp/skill-consolidator/overlap_report.md. - Build the canonical result as a first-party skill in
skills/<new-skill-name>/.
What “counts” as a good first-party skill (required standard)
Our skills are intentionally docs-driven: SKILL.md + bundled references/ + optional scripts/ are the “product”.
Before considering a consolidation “done”, the first-party skill must meet:
- The required standard:
skills/skill-consolidator/references/first-party-skill-standard.md
Workflow
1) Vendor upstream skills (third-party and/or personal global skills)
Goal: treat upstream skills as read-only; copy locally only if you truly need diffs.
Common sources:
- Global:
~/.agents/skills/(recommended global home) - Codex links:
~/.codex/skills/(often symlinks into~/.agents/skills/)
Recommended default: don’t copy; reference upstream via ~/.agents/skills/.
2) Inventory + overlap report
Run the scanner to produce:
inventory.json(machine-readable)overlap_report.md(human-readable clusters)
Examples:
- Scan globally installed skills directly (read-only):
python3 skills/skill-consolidator/scripts/scan_installed_skills.py --out-dir tmp/skill-consolidator
- Scan a custom root:
python3 skills/skill-consolidator/scripts/scan_installed_skills.py --skills-root /path/to/skills --out-dir tmp/skill-consolidator
2) Pick a consolidation strategy per cluster
For each overlapping cluster, choose one primary pattern:
- Merge into one canonical skill: best when content is truly duplicative.
- Hub + leaf skills: best when workflows differ but share concepts (create a hub that routes to specialized skills).
- Shared references: best when multiple skills share long “best practices” sections (extract into references and link).
Use: skills/skill-consolidator/references/combining-best-practices.md for decision rules and anti-patterns.
Use: skills/skill-consolidator/references/opinionated-defaults.md to align the “canonical” result with our preferred tech stack and tooling defaults (when relevant).
3) Build the first-party canonical skill in ./skills/
- Create
skills/<canonical-skill-name>/SKILL.mdthat:- Routes common trigger phrases (in
description) - Links to leaf skills or reference docs
- Keeps detailed content in
references/and reusable code inscripts/ - Meets the required standard in
skills/skill-consolidator/references/first-party-skill-standard.md
- Routes common trigger phrases (in
If you keep old skills around inside this repo:
- Narrow triggers or remove their
SKILL.mdso they don’t compete with the canonical skill.
4) Consolidate content with progressive disclosure
- Keep
SKILL.mdshort and procedural. - Move detailed “how-to” / long reference content into
references/. - When two skills share the same long section, keep it in one canonical location and link to it (do not duplicate).
If you need a shared, cross-skill home for references inside this repo, use a _shared/ folder (see skills/skill-consolidator/references/combining-best-practices.md).
5) Link skills together (without creating deep dependency chains)
- Add a small “See also” section (a few bullets) at the bottom of related skills.
- Avoid multi-hop references (Skill A -> Skill B -> Skill C). Keep links one hop from the skill you’re editing.
6) Install the first-party skill globally (Skills CLI)
After the canonical skill lives in this repo, install it like other skills using the Skills CLI:
npx skills add <owner/repo@skill-name> -g -y
(This assumes the repo/skill is available from the source you use with npx skills add.)
7) Verify changes
At minimum:
- Re-run the scanner to ensure consolidated skills still parse cleanly.
- Run the script tests:
python3 -m unittest skills/skill-consolidator/scripts/test_scan_installed_skills.py
If packaging scripts exist in the user’s environment, also validate packaging for the new/edited skills.
8) Second-agent review (required)
Before decommissioning any upstream skills, run a second-agent review of the consolidation:
- Focus: “Did we lose important capability? Are triggers safe? Are links and routing clear?”
Use: skills/skill-consolidator/references/review-and-decommission.md for the review checklist and a copy/paste review prompt.
9) Human check (recommended default)
After the second-agent review passes, do a quick human check to confirm:
- The canonical skill triggers the right scenarios
- The old skills won’t compete with it
- The consolidation is reversible
Use: skills/skill-consolidator/references/review-and-decommission.md.
10) Decommission upstream copies (safe + reversible)
Do not delete upstream skills immediately.
Prefer one of:
- Remove/rename
SKILL.mdfiles in any local copies so they can’t trigger - If you keep old first-party copies around, mark them deprecated and narrow triggers
Use: skills/skill-consolidator/references/review-and-decommission.md for rules and acceptance criteria.
Note: when scanning this repo’s skills/, the overlap scanner won’t include global skills unless you explicitly scan them.
More from devinschumacher/skills
playwright
Canonical Playwright hub for E2E tests and ad-hoc browser automation. Use when the user explicitly mentions "Playwright", "@playwright/test", "npx playwright", "playwright.config.ts", "PWDEBUG", "trace viewer", or "toHaveScreenshot". Avoid using for generic browser automation unless Playwright is requested, and avoid using for pure web scraping.
43agents-reminder
Reminds the agent to refresh on AGENTS.md guidelines before proceeding with tasks. Use at the start of a session or when unsure about agent policies.
12conventional-commits
Generates git commit messages following Conventional Commits 1.0.0 specification with semantic types (feat, fix, etc.), optional scope, and breaking change annotations. Use when committing code changes or creating commit messages.
3serp-toc
Route SERP org questions to the right repo, docs, and local clone quickly. Use when Codex needs to figure out where to look first across the SERP org, including repo lookup, server or infrastructure questions, secrets or env questions, branch orientation, local path discovery, or deciding whether something belongs in the docs hub versus an owning repo.
1workflow-visualizer
Map any system or workflow as a beautiful interactive HTML diagram
1project-status-phase
Advance GitHub project board items through the next truthful status phase using board rules, repo state, linked PRs, and docs. Use when asked to move, triage, reclassify, or advance an issue/card on a project board, or to keep board status aligned with reality.
1