Create, update, or organize Claude Code skills in this repo. Use when adding a new skill, reviewing existing skills for consistency, or maintaining the skill taxonomy.
Scanned 9/1/2026
Install to Claude Code
npx -y skills add uiuc-kang-lab/rlvr_generalization_bounds --skill manage-skills --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Manage Skills?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/uiuc-kang-lab-manage-skills)More formats (shields.io, HTML) on the badges page.
---
name: manage-skills
description: Create, update, or organize Claude Code skills in this repo. Use when adding a new skill, reviewing existing skills for consistency, or maintaining the skill taxonomy.
disable-model-invocation: true
argument-hint: "[create|update|audit] [skill-name]"
---
# Manage Claude Code Skills
This meta-skill governs how skills are created and maintained in the tinker-cookbook repo.
## Skill taxonomy
All skills in `.claude/skills/` are organized into 5 layers:
### Layer 0: Fundamentals (`setup`, `models`, `hyperparams`, `logging`)
**Scope:** Getting started, model selection, hyperparameter guidance, training output analysis. Cross-cutting concerns needed before touching any code.
**Auto-invocation:** Yes — triggers when users ask about setup, models, hyperparameters, or debugging.
**Key principle:** These inform all other layers. Reference `docs/`, `README.md`, `tinker_cookbook/hyperparam_utils.py`.
### Layer 1: Tinker SDK (`tinker-sdk`, `tinker-types`, `tinker-cli`)
**Scope:** Raw Tinker Python SDK APIs — ServiceClient, TrainingClient, SamplingClient, RestClient, types, errors, and CLI commands.
**Auto-invocation:** Yes — triggers when users ask about Tinker API basics or CLI usage.
**Key principle:** Reference `docs/api-reference/` for authoritative API docs.
### Layer 2: Cookbook Primitives (`renderers`, `environments`, `weights`, `completers`, `checkpoints`, `evals`, `datasets`)
**Scope:** Building blocks in `tinker_cookbook/` — renderers, RL environments, weight lifecycle, completers, checkpointing, evaluators, dataset construction.
**Auto-invocation:** Yes — triggers when users ask about specific primitives.
**Key principle:** Reference source code in `tinker_cookbook/` and docs in `docs/`.
### Layer 3: Algorithm / Task Recipes (`sft`, `grpo`, `distillation`, `dpo`, `rlhf`, `multiturn-rl`)
**Scope:** End-to-end training workflows built on Layer 1 + Layer 2.
**Auto-invocation:** Yes — triggers when users want to set up a specific training method.
**Key principle:** Reference recipes in `tinker_cookbook/recipes/` and defer primitive details to Layer 2 skills.
### Layer 4: Repo Development (`new-recipe`, `ci`, `contributing`, `manage-skills`)
**Scope:** Development workflow — scaffolding, testing, CI, code style, skill maintenance.
**Auto-invocation:** `contributing` and `ci` auto-invoke; `new-recipe` and `manage-skills` are manual-only.
**Key principle:** Reference `CONTRIBUTING.md`, `tests/`, `.github/workflows/`.
## Creating a new skill
### Step 1: Determine the layer
Which layer does this skill belong to? Skills should have a clear, non-overlapping scope. If it spans layers, split it.
### Step 2: Check for overlap
Read existing skills in `.claude/skills/` to ensure the new skill doesn't duplicate content. If there's overlap, update the existing skill instead.
### Step 3: Create the skill file
Create `.claude/skills/<skill-name>/SKILL.md` with this structure:
```yaml
---
name: <skill-name>
description: <Clear description of what the skill does and when to use it>
argument-hint: "[optional args]" # Only if the skill takes arguments
disable-model-invocation: true # Only for manual-trigger skills (Layer 4 actions)
---
# <Skill Title>
<Brief description of what this skill helps with>
## Step 1: Understand the request
<What to ask the user if not specified>
## Step 2: Reference existing code
<Which files to read for patterns — be specific with file paths>
## Step 3: Key concepts
<Core APIs, parameters, patterns>
## Step 4: Implementation
<Code examples following repo conventions>
## Step N: Add tests
<Testing guidance — smoke tests and unit tests>
```
### Step 4: Follow these conventions
**Naming:**
- Lowercase, hyphenated: `tinker-sdk`, `new-recipe`, `manage-skills`
- Layer 0: named after the fundamental concept
- Layer 1: named after the SDK concept
- Layer 2: named after the primitive
- Layer 3: named after the algorithm/method
- Layer 4: named after the dev action
**Content rules:**
- Always reference **actual file paths** in the repo — never describe APIs from memory
- Include code examples that follow repo conventions (`@chz.chz`, explicit typing, etc.)
- For Layer 3 skills: defer primitive details to Layer 2 skills (e.g., say "see `/renderers` skill" instead of re-explaining renderers)
- Include a testing section pointing to `tests/recipes/` for smoke tests and `*_test.py` for unit tests
- Keep skills under 200 lines — move detailed reference material to separate files in the skill directory
**Frontmatter rules:**
- `description` is required and must clearly state **when** to trigger the skill
- Use `disable-model-invocation: true` only for action-oriented Layer 4 skills
- Use `argument-hint` if the skill takes positional arguments
## Auditing existing skills
When auditing, check each skill for:
1. **Accuracy:** Do file paths and API references match the current codebase? Run `ls` or `grep` to verify.
2. **Freshness:** Has the referenced code changed since the skill was written? Check git log for the referenced files.
3. **Taxonomy compliance:** Is the skill in the correct layer? Does it overlap with other skills?
4. **Convention compliance:** Does it follow the structure above? Does it include testing guidance?
5. **Cross-references:** Do Layer 3 skills reference Layer 2 skills where appropriate?
## Current skill inventory
```
.claude/skills/
├── Layer 0: Fundamentals
│ ├── setup/ # Installation, API key, first run
│ ├── models/ # Model lineup, selection, families
│ ├── hyperparams/ # LR formulas, batch size, LoRA rank
│ └── logging/ # Training outputs, metrics, debugging
├── Layer 1: SDK
│ ├── tinker-sdk/ # ServiceClient, TrainingClient, SamplingClient, RestClient APIs
│ ├── tinker-types/ # Datum, ModelInput, TensorData, response types, error types
│ └── tinker-cli/ # tinker CLI: run/checkpoint management, download, publish
├── Layer 2: Primitives
│ ├── renderers/ # Renderer setup, TrainOnWhat, vision
│ ├── environments/ # Env, EnvGroupBuilder, custom RL envs
│ ├── weights/ # download, build_hf_model, publish
│ ├── completers/ # TokenCompleter, MessageCompleter
│ ├── checkpoints/ # save/load, CheckpointRecord, resume
│ ├── evals/ # Evaluators, Inspect AI
│ └── datasets/ # SupervisedDatasetBuilder, RLDatasetBuilder
├── Layer 3: Recipes
│ ├── sft/ # Supervised fine-tuning
│ ├── grpo/ # RL with verifiable rewards
│ ├── distillation/ # Knowledge distillation
│ ├── dpo/ # Direct Preference Optimization
│ ├── rlhf/ # RLHF pipeline
│ └── multiturn-rl/ # Multi-turn RL
└── Layer 4: Development
├── new-recipe/ # Scaffold new recipe
├── ci/ # Testing and CI
├── contributing/ # Dev setup and code style
└── manage-skills/ # This skill
```
## Maintenance schedule
When the codebase changes significantly (new modules, API changes, renamed files):
1. Run `/manage-skills audit` to check all skills
2. Update affected skills
3. Commit changes with a descriptive message
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!