Skip to content
Back to skills

Promote To Tooling

ASecurity

Review a tooling change made in a working repo (new skill, script, rule, hook, template, or workflow fix) and promote the universal parts into the clybor-claude-tooling master template. Use when the user says "promote to tooling", "add this to the master tooling", "update clybor-claude-tooling", "parlay this into the template", "should this go in the template repo", or right after building or adapting tooling in any project repo. Runs a universality test, diffs against the master counterpart,...

  • 6 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added October 5, 2026
ai-agentstypescriptpythongobashgitfrontendbackenddocumentation

Works with

  • claude code
  • cli
  • mcp

Security analysis

A100/100

Scanned October 5, 2026

npx -y skills add shawnclybor/clybor-claude-tooling --skill promote-to-tooling --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Promote To Tooling?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Promote To Tooling
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/shawnclybor-promote-to-tooling/badge)](https://www.skillsdirectory.com/skills/shawnclybor-promote-to-tooling)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: promote-to-tooling
description: Review a tooling change made in a working repo (new skill, script, rule, hook, template, or workflow fix) and promote the universal parts into the clybor-claude-tooling master template. Use when the user says "promote to tooling", "add this to the master tooling", "update clybor-claude-tooling", "parlay this into the template", "should this go in the template repo", or right after building or adapting tooling in any project repo. Runs a universality test, diffs against the master counterpart, generalizes project-specific bits, applies the edit, wires references, and flags downstream repos that need a re-sync.
---

# Promote to Tooling

clybor-claude-tooling (`~/gits/clybor-claude-tooling/`) is the master template new repos
initialize from (`scripts/init.sh`). Tooling improvements born in working repos
(life-crm, client repos) die there unless promoted. This skill is the promotion path.

## When to run

- Right after building or meaningfully adapting a skill, script, rule, hook, command,
  agent, or template in a working repo
- When the user asks whether a change belongs in the master
- Periodically: "review recent tooling changes for promotion candidates"

## The universality test (gate)

From the master rules README: would this apply equally to a Python backend, a
TypeScript frontend, a research repo, a documentation site?

| Verdict | Action |
|---|---|
| Universal as-is | Port verbatim |
| Universal mechanism, project-specific surface (paths, names, IDs) | Generalize, then port |
| Project-specific (registry formats, client branding, Notion IDs, MCP tool IDs) | Stays in the working repo — record a pointer only |

## Where things live in the master

| Working-repo artifact | Master destination |
|---|---|
| Skill | `.claude/skills/<name>/SKILL.md` |
| Slash command | `.claude/commands/<name>.md` |
| Agent definition | `.claude/agents/<lane>/<name>.md` |
| Hook script | `.claude/hooks/` + wire in `.claude/settings.json.template` |
| Always-on rule | `.claude/rules/` (only if universal — see rules README) |
| Gate/utility script | `scripts/` |
| Document/folder template | `templates/` |
| Router or Hard-Rule text | `templates/CLAUDE.md.template` |

## Workflow

1. **Name the candidate** — file path(s) in the working repo + one line on what it does.
2. **Universality test** — verdict from the table above. Stop here if project-specific.
3. **Diff against the master counterpart** — search the master for an existing equivalent
   (skills list, `scripts/`, `templates/`, commands). If one exists, diff and merge into
   it — don't create a parallel duplicate.
4. **Generalize** — strip project paths, person names, repo-specific IDs. Pick the right
   default over adding a config (KISS).
5. **Apply** — in Cowork, `.claude/` paths need Desktop Commander on the host path
   (`~/gits/clybor-claude-tooling/...`); `scripts/`, `templates/`,
   `docs/` take native writes. In Claude Code, edit directly.
6. **Wire the references** — router row and Key Paths in `templates/CLAUDE.md.template`,
   skills-list row, `settings.json.template` hook if applicable. Undiscoverable tooling
   is dead tooling.
7. **Validate** — run a changed script once; run `bash scripts/check-context-budget.sh`
   if always-on files grew; confirm new skill frontmatter parses (name + description,
   description under 1024 chars).
8. **Report downstream impact** — repos already initialized do NOT auto-update. List
   which active repos should re-sync the changed file (manual copy, or re-run the
   relevant `init.sh` step). The working repo that originated the change usually keeps
   its own specialized version — say so explicitly.

## Anti-patterns

- Porting registry- or client-coupled scripts wholesale (life-crm's `new-project.sh` is
  registry-specific; the master's analog is `init.sh`)
- Creating a parallel skill when the master already covers the concept under another
  name (e.g., `prd-writer`/`task-plan` vs a working repo's `build-prd`/`build-plan` —
  diff and merge, don't fork)
- Promoting a non-universal rule into `.claude/rules/` — rules are paid for in always-on
  context in every downstream repo
- Promoting without updating `templates/CLAUDE.md.template` — the next repo won't know
  the tooling exists
- Skipping the downstream-impact report — a master-only fix silently diverges from every
  live repo

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.