home / skills / gigaverse-app / skillet / metaskill-grouping

metaskill-grouping skill

/metaskill/skills/metaskill-grouping

This skill helps you create organized plugin groups by packaging related skills into a cohesive toolset for easy deployment and cross-referencing.

npx playbooks add skill gigaverse-app/skillet --skill metaskill-grouping

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
7.8 KB
---
name: metaskill-grouping
description: Create skill groups (multiple related skills packaged as a plugin). Use when creating plugins, organizing multiple related skills, building skill families, packaging tools together, or when user mentions "plugin", "multiple skills", "related skills", "skill group", "skill family", "organize skills", "cross-reference", "package skills", "shared agents". ALWAYS consider this pattern when someone asks to "create a skill" - they often need a skill GROUP packaged as a plugin.
---

# Skill Groups: The Superior Pattern for Complex Topics

**This skill IS the pattern it teaches.** The metaskill plugin demonstrates skill groups in action.

## The Key Questions

When someone asks to "create a skill", first ask:

> **1. What should I name this?**
> See `/metaskill-naming` for the naming convention (neutral noun prefix, -ing suffix).
>
> **2. Is this a SINGLE skill or a SKILL GROUP?**
> If the topic has 3+ distinct concerns users might approach differently, you need a skill GROUP, not a monolithic skill.

## Why Skill Groups Beat Monolithic Skills

### The Problem with Monolithic Skills

```
big-skill/
  SKILL.md          <- One description (limited trigger opportunities)
  references/       <- OPTIONAL reading (often skipped)
    deep-topic-1.md
    deep-topic-2.md
```

**Issues:**
- Single description = limited trigger keywords
- References are OPTIONAL = deep knowledge often missed
- Skill body becomes huge and unfocused
- Hard to find specific information

### The Skill Group Solution

```
plugin-name/                        <- Neutral noun (e.g., metaskill, codeforge)
  skills/
    plugin-name-doing/              <- ends in -ing
    plugin-name-optimizing/         <- ends in -ing
    plugin-name-building/           <- ends in -ing
```

**Benefits:**
- N descriptions = N× more trigger opportunities
- Each skill body is MANDATORY when triggered (not optional like references)
- Cross-references teach Claude about sibling skills
- Users enter from multiple angles, always get relevant content

## Comparison Table

| Aspect | Monolithic Skill | Skill Group |
|--------|-----------------|-------------|
| Trigger opportunities | 1 description | N descriptions (3x more chances) |
| Body reading | MANDATORY but huge | MANDATORY and focused |
| Reference reading | OPTIONAL (often skipped) | N/A - body IS the content |
| Cross-referencing | Within single file | Across skills (learned dynamically) |
| Discoverability | Limited by single description | Multiple entry points |

## When to Use Skill Groups

**Use a skill group when:**
- Topic has 3+ distinct sub-concerns
- Users might approach from different angles (different trigger words)
- Deep knowledge in each area is important (not optional)
- Skills can stand alone but complement each other

**Use a single skill when:**
- Topic is truly atomic
- All users need all the information
- No natural sub-divisions exist

## The Cross-Reference Magic

When skill A triggers and its body says "See /skill-B for X", Claude:
1. MUST read skill A's body (triggered)
2. LEARNS about skill B's existence
3. May trigger skill B in future (better awareness)

This is **progressive disclosure across skill boundaries**!

## Real Example: This Plugin

```
metaskill/                          <- Plugin name (neutral noun)
  skills/
    metaskill-authoring/            <- "write skill", "create skill" (ends in -ing)
    metaskill-triggering/           <- "trigger", "description" (ends in -ing)
    metaskill-grouping/             <- "plugin", "skill group" (ends in -ing)
    metaskill-packaging/            <- "package", "distribute" (ends in -ing)
    metaskill-naming/               <- "name", "naming convention" (ends in -ing)
  agents/
    metaskill-trigger-tester.md     <- role noun (tester)
```

Each skill body cross-references the others:
- `/metaskill-authoring` says "For groups, see `/metaskill-grouping`"
- `/metaskill-triggering` says "For structure, see `/metaskill-authoring`"
- This skill says "For triggers, see `/metaskill-triggering`"

## Creating a Skill Group

### 1. Choose a Neutral Noun Prefix

See `/metaskill-naming` for the full convention. The plugin name = common prefix = neutral noun.

```
# ✅ GOOD prefixes (nouns)
metaskill, codeforge, datakit, testbench

# ❌ BAD prefixes (already verb-formed)
skill-authoring, code-reviewing, data-processing
```

### 2. Identify Sub-Concerns (with -ing names)

List all aspects of your topic. If 3+ have distinct trigger words, group them:

```
Example: "metaskill" plugin (meta-tooling for skills)
- metaskill-authoring (triggers: "write skill", "create skill")
- metaskill-triggering (triggers: "trigger", "description")
- metaskill-grouping (triggers: "plugin", "skill group")
- metaskill-packaging (triggers: "package", "distribute")
- metaskill-naming (triggers: "name", "naming convention")
```

### 3. Create Plugin Structure

```
my-plugin/
├── .claude-plugin/
│   └── plugin.json
├── skills/
│   ├── my-plugin-doing/        <- ends in -ing
│   │   └── SKILL.md
│   ├── my-plugin-building/     <- ends in -ing
│   │   └── SKILL.md
│   └── my-plugin-testing/      <- ends in -ing
│       └── SKILL.md
├── agents/
│   └── my-plugin-checker.md    <- role noun
└── README.md
```

### 4. Cross-Reference in Every Skill Body

```markdown
## Related Skills

- For naming conventions, see `/my-plugin-naming`
- For building patterns, see `/my-plugin-building`
```

### 5. Verify Cross-References Work

Every skill should reference the other skills in the group.

## Skill Groups Are Best Packaged as Plugins

Skill groups naturally fit the plugin model because plugins can include MORE than just skills:

```
my-plugin/
├── .claude-plugin/
│   └── plugin.json         # Manifest (required)
├── skills/                 # Multiple related skills (-ing names)
│   ├── my-plugin-authoring/
│   ├── my-plugin-optimizing/
│   └── my-plugin-building/
├── agents/                 # Shared helper agents (role nouns)
│   └── my-plugin-analyzer.md
├── commands/               # User-invocable commands (imperative verbs)
│   └── quick-start.md
├── hooks/                  # Event handlers
│   └── hooks.json
└── README.md
```

**Benefits of plugin packaging:**
- Skills can share agents (e.g., a testing plugin shares a test-runner agent)
- Commands provide quick entry points (`/quick-start`)
- Hooks can automate triggers (e.g., auto-invoke skill on file patterns)
- Single installation for the whole toolset
- Versioned and distributable

**For comprehensive plugin packaging guidance, see `/metaskill-packaging`.**

## Common Mistakes

**Don't make single skills too broad:**
```yaml
# ❌ Too broad - should be a group
description: Handles testing, mocking, fixtures, TDD, coverage, debugging...
```

**Don't make groups too granular:**
```yaml
# ❌ Too granular - just use references/
metaskill-yaml/       # Just YAML syntax?
metaskill-markdown/   # Just markdown tips?
```

**Don't use verb-form prefixes:**
```yaml
# ❌ BAD - prefix is already -ing
skill-authoring-trigger/    # "skill-authoring" is -ing!

# ✅ GOOD - neutral noun prefix
metaskill-triggering/       # "metaskill" is noun, "-triggering" is -ing
```

**Do find natural topic boundaries:**
```yaml
# ✅ Each has distinct triggers AND substantial content
metaskill-authoring/        # Structure and writing
metaskill-triggering/       # Trigger optimization
metaskill-grouping/         # The group pattern itself
```

## Related Skills

- For naming conventions, see `/metaskill-naming`
- For skill structure and writing, see `/metaskill-authoring`
- For trigger optimization, see `/metaskill-triggering`
- For plugin packaging and placement, see `/metaskill-packaging`
- To test if triggers work, use the `metaskill-trigger-tester` agent

Overview

This skill teaches and implements the skill-group pattern for packaging multiple related skills as a plugin. It shows how to choose a neutral noun prefix, split topics into -ing skill modules, and wire cross-references so each skill is discoverable and focused. Use it to design plugins that present multiple entry points and share agents, commands, and hooks.

How this skill works

When invoked, this skill inspects a topic and decides whether it should be a single skill or a skill group by checking for distinct sub-concerns and trigger keywords. It recommends a neutral noun prefix, enumerates -ing named subskills, produces a plugin folder layout, and enforces cross-references so sibling skills become discoverable. The output is a concrete plugin structure and guidance for naming, packaging, and testing triggers.

When to use it

  • You need to create a plugin that bundles multiple related capabilities
  • The topic has 3+ distinct concerns users might search for differently
  • You want multiple focused descriptions to increase trigger coverage
  • You want skills to share agents, commands, or hooks
  • Users ask for “plugin”, “skill family”, “package skills”, or “related skills”

Best practices

  • Make each subskill self-contained and mandatory when triggered; don’t rely on optional references for core content.
  • Cross-reference every sibling skill in each skill body so the system learns related capabilities progressively.
  • Group only when sub-concerns are substantial; avoid excessive fragmentation into tiny skills.
  • Include shared agents, commands, and hooks at the plugin level to maximize reuse and a single installation point.

Example use cases

  • Authoring tooling: separate authoring, triggering, grouping, packaging, and naming into distinct skills in one plugin.
  • Testing suite: package test-runner agent, test-writing skill, and coverage-reporting skill together.
  • Onboarding: provide a quick-start command plus stepwise skills for setup, configuration, and troubleshooting.
  • Toolchain plugin: combine building, optimizing, and monitoring skills while sharing a common analyzer agent.

FAQ

When should I choose a single skill instead of a group?

Choose a single skill when the topic is atomic, every user needs the same information, and there are no natural sub-divisions or distinct trigger words.

How many subskills make a group worthwhile?

If you have three or more distinct sub-concerns with different trigger words or workflows, a skill group is usually the better pattern.