Skip to main content
ClaudeWave
Skill229 repo starsupdated today

help

The OrchestKit help skill provides dynamic, categorized discovery of available skills by scanning source files at runtime. Use it when you need to browse skills by category, understand which skill applies to a task, or explore the full capability set without hardcoded or stale listings.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/yonatangross/orchestkit /tmp/help && cp -r /tmp/help/plugins/ork/skills/help ~/.claude/skills/help
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# OrchestKit Skill Directory

Dynamic skill discovery: enumerates the installed plugin at runtime so listings are never stale.

> **CC 2.1.121+ tip:** if you just want to find one skill quickly, the native `/skills` command now has type-to-filter — open it and start typing the skill name. Use `/ork:help` when you want categorized browsing or rationale for *why* a skill applies.

## Quick Start

```bash
/ork:help           # Show all categories
/ork:help build     # Show BUILD skills only
/ork:help git       # Show GIT skills only
/ork:help all       # List every user-invocable skill
```

## Argument Resolution

```python
CATEGORY = "$ARGUMENTS[0]"  # Optional: build, git, plan, quality, memory, config, explore, design, ops, all
# If provided, skip AskUserQuestion and show that category directly.
# $ARGUMENTS is the full string (CC 2.1.59 indexed access)
```

---

## STEP 0: Dynamic Skill Discovery

**ALWAYS run this first** to get accurate, up-to-date skill data:

```python
# ${CLAUDE_PLUGIN_ROOT} is set by the plugin runtime and points at the INSTALLED
# plugin. That is the normal case: a marketplace user has no src/ directory.
SKILLS_ROOT = "${CLAUDE_PLUGIN_ROOT}/skills"
matches = Grep(pattern="user-invocable:\\s*true", path=SKILLS_ROOT, output_mode="files_with_matches")

# Dogfooding fallback: inside the OrchestKit repo itself the skills live in the
# source tree. Retry there if the env var was unset or the probe found nothing.
if not matches:
    SKILLS_ROOT = "src/skills"
    matches = Grep(pattern="user-invocable:\\s*true", path=SKILLS_ROOT, output_mode="files_with_matches")
```

If BOTH probes return zero files, say so plainly ("could not locate the OrchestKit
skills directory, checked `${CLAUDE_PLUGIN_ROOT}/skills` and `src/skills`") and stop.
Do NOT substitute a remembered list of skill names. Any such list is stale by
construction and a confident wrong answer is worse than no answer.

For each matched file, read the frontmatter to get name, description, version,
complexity, `argument-hint` and tags:

```python
Read(file_path=f"{SKILLS_ROOT}/{skill_dir}/SKILL.md", limit=25)
```

Every number rendered later is derived from this scan, never typed as a literal:

```python
TOTAL = len(matches)   # user-invocable skill count
```

Build the skill list dynamically. **Never hardcode counts or skill names.**

---

## STEP 1: Category Selection

If CATEGORY argument provided, skip to STEP 2 with that category.

Otherwise, present categories interactively:

```python
AskUserQuestion(
  questions=[{
    "question": "What type of task are you working on?",
    "header": "Category",
    # 4-option cap (CC schema): every category from STEP 2 is grouped into one of
    # 3 buckets + "Show all". STEP 2 renders the constituent categories for the
    # picked bucket. Descriptions name intents, never skills, so they cannot drift.
    "options": [
      {"label": "Build & ship", "description": "Writing code, tests, git and PRs, UI and design work"},
      {"label": "Plan & assess", "description": "Requirements, planning, quality assessment, review"},
      {"label": "Explore & operate", "description": "Codebase exploration, memory, setup, diagnostics, CI"},
      {"label": "Show all", "description": "List every user-invocable skill"}
    ],
    "multiSelect": false
  }]
)
```

---

## STEP 2: Render Category

For the selected category, render the skill table from the data gathered in STEP 0.

### Category Definitions

Categories are defined by **tag predicates**, never by a list of skill names, so a
newly shipped skill lands in the right bucket without editing this file. Match each
discovered skill's frontmatter `tags` against the sets below (case-insensitive, one
hit is enough):

| Category | CLI arg | Matches any of these tags |
|----------|---------|---------------------------|
| BUILD | `build` | implementation, feature, testing, coverage, test-generation, verification, e2e |
| GIT | `git` | git, github, commit, pull-request, pr, issue, bug-fix |
| PLAN | `plan` | planning, ideation, prd, requirements, visualization |
| QUALITY | `quality` | quality, assessment, evaluation, code-review, validation, grading |
| MEMORY | `memory` | memory, decisions, graph-memory, consolidation |
| CONFIG | `config` | setup, configuration, onboarding, diagnostics, health-check, dev-loop |
| EXPLORE | `explore` | exploration, codebase, code-search, architecture, discovery |
| DESIGN | `design` | design, design-context, design-tokens, design-to-code, frontend, ui, components, stylecards |
| OPS | `ops` | ci, automation, telemetry, observability, release, migration |
| OTHER | (none) | anything the rows above did not match |

A skill matching two categories is listed under both. That is expected, not a bug.
OTHER is what makes the totals reconcile: every skill found in STEP 0 must appear
somewhere in a full listing, so a skill nobody has categorized yet still shows up.

The STEP 1 picker only offers **3 buckets** (the AskUserQuestion schema caps a
question at 4 options). Each bucket renders the union of its categories:

| Picker bucket | Renders categories |
|---------------|--------------------|
| Build & ship | BUILD + GIT + DESIGN |
| Plan & assess | PLAN + QUALITY |
| Explore & operate | MEMORY + CONFIG + EXPLORE + OPS + OTHER |

For each skill in the category, render:

```
/ork:{name}  v{version}  {complexity}
  {description}
  Example: /ork:{name} {argument-hint example}
```

### "Show all" — Full Listing

If user picks "Show all", render ALL user-invocable skills grouped by category from
STEP 0 data, then close with the derived total: `{TOTAL} user-invocable skills`.
Print `TOTAL` from `len(matches)`. Never type a number you did not just count.

---

## CC Built-in Commands (2.1.72+)

Not OrchestKit skills — these are Claude Code built-ins:

| Command | Description | Since |
|---------|-------------|-------|
| `/code-review` | Review changed code for correctness bugs at a chosen effort level; `--comment` post
accessibilitySkill

Accessibility patterns for WCAG 2.2 compliance, keyboard focus management, React Aria component patterns, cognitive inclusion, native HTML-first philosophy, and user preference honoring. Use when implementing screen reader support, keyboard navigation, ARIA patterns, focus traps, accessible component libraries, reduced motion, or cognitive accessibility.

agent-orchestrationSkill

Agent orchestration patterns for agentic loops, multi-agent coordination, alternative frameworks, and multi-scenario workflows. Use when building autonomous agent loops, coordinating multiple agents, evaluating CrewAI/AutoGen/Swarm, or orchestrating complex multi-step scenarios.

ai-ui-generationSkill

AI-assisted UI generation patterns for json-render, v0.app, Google Stitch, Bolt Cloud, and Cursor workflows. Covers prompt engineering for component and full-stack app generation, review checklists for AI-generated code, design token injection, refactoring for design system conformance, and CI gates for quality assurance. Use when generating UI components with AI tools, rendering multi-surface MCP visual output, reviewing AI-generated code, or integrating AI output into design systems.

analyticsSkill

Queries local analytics across OrchestKit projects for agent usage, skill frequency, hook timing, team activity, session replay, cost estimation, and model delegation trends. Privacy-safe with hashed project IDs. Supports time-range filtering and comparative analysis. Use when reviewing performance, estimating costs, or understanding usage patterns.

animation-motion-designSkill

Animation and motion design patterns using Motion library (formerly Framer Motion) and View Transitions API. Use when implementing component animations, page transitions, micro-interactions, gesture-driven UIs, or ensuring motion accessibility with prefers-reduced-motion.

api-designSkill

API contract design for REST and GraphQL, covering resource shape, URL and header versioning with deprecation windows, RFC 9457 Problem Details error handling, and OpenAPI specs. Use when specifying the wire contract an endpoint exposes, choosing a versioning scheme, or standardizing error response bodies across services. Framework-agnostic protocol layer, not runtime implementation.

architecture-decision-recordSkill

ADR templates in the Nygard format with context, decision, consequences, and alternatives. Use when writing ADRs, recording an architectural decision, or evaluating options.

architecture-patternsSkill

Architecture validation and patterns for clean architecture, backend structure enforcement, project structure validation, test standards, and context-aware sizing. Use when designing system boundaries, enforcing layered architecture, validating project structure, defining test standards, or choosing the right architecture tier for project scope.