Create and update SKILL.md-based skills with strong trigger metadata, lean docs, and reliable init, validate, package, and publish workflows.
Scanned 5/27/2026
Install via CLI
openskills install HybridAIOne/hybridclaw---
name: skill-creator
description: "Create and update SKILL.md-based skills with strong trigger metadata, lean docs, and reliable init, validate, package, and publish workflows."
user-invocable: true
disable-model-invocation: false
metadata:
hybridclaw:
category: development
short_description: "Create and update skills."
tags:
- skills
- authoring
- development
- packaging
---
# Skill Creator
Build high-quality skills that are clear to trigger, cheap in context, and reliable in execution.
## Core Principles
### 1) Concise is a hard requirement
Assume the model already knows general concepts. Include only information that improves outcomes for this specific skill.
- Prefer short imperative instructions over essays.
- Keep essential workflow in `SKILL.md`.
- Move deep detail into `references/`.
### 2) Set the right degrees of freedom
Pick guidance strictness by task fragility:
- High freedom: heuristics and decision rules.
- Medium freedom: parameterized scripts and pseudocode.
- Low freedom: exact commands and narrow steps.
Use low freedom when consistency and safety matter; allow higher freedom when multiple valid approaches exist.
### 3) Design for progressive disclosure
Skills should load in layers:
1. Frontmatter `name` + `description` (always loaded)
2. `SKILL.md` body (loaded on trigger)
3. `references/`, `scripts/`, `assets/` (loaded only when needed)
Target sizes:
- `SKILL.md` body: 1,500-2,000 words
- `references/*`: 2,000-5,000+ words when needed
- Keep `SKILL.md` under ~500 lines; split earlier if it grows fast
## Anatomy of a Skill
Required:
- `SKILL.md`
- YAML frontmatter with `name`, `description`, and `metadata.hybridclaw.category`
Recommended:
- `agents/openai.yaml` for UI-facing metadata
Optional:
- `scripts/` for deterministic or repeated operations
- `references/` for deep guidance and domain details
- `assets/` for templates/images/files used in outputs
- `license.txt` when sharing externally
For API-backed skills, prefer deterministic `*.cjs` scripts that provide an
easy CLI over the external API. The script should own endpoint selection,
methods, payload shaping, URL encoding, write-tier classification, and secret
reference construction, then emit gateway-ready JSON for the model to pass to
tools such as `http_request`. The model should run the CLI and use its emitted
request objects instead of handcrafting API calls from memory.
## What Goes Where
Use this taxonomy to keep skills maintainable:
- `SKILL.md`: trigger semantics, decision flow, command contract, minimal examples
- `metadata.hybridclaw.category`: short bucket like `development`, `office`, `apple`, or `memory`
- `references/`: long docs, schemas, framework variants, advanced patterns
- `scripts/`: executable deterministic helpers, including `*.cjs` API wrapper
CLIs for skills that call external services
- `assets/`: output resources that should not be read into context by default
Keep references one level deep from `SKILL.md` links. Avoid deep reference chains.
## What Not to Include
Do not add process clutter that does not improve runtime behavior, such as:
- `README.md`
- `CHANGELOG.md`
- installation how-to docs for humans only
- duplicate copies of instructions already in `SKILL.md`
Keep only files that help another agent execute the task.
## Skill Discovery Notes
Many runtimes resolve skills from multiple roots. Document your effective precedence so users know where overrides win.
Common locations:
- `./skills/<skill>/SKILL.md` (workspace)
- `./.agents/skills/<skill>/SKILL.md` (project-local)
- `~/.agents/skills/<skill>/SKILL.md` (user-level)
- `~/.claude/skills/<skill>/SKILL.md` (user-level)
- `~/.codex/skills/<skill>/SKILL.md` (user-level)
- bundled/package-managed skill directories (environment-specific)
If precedence differs in your runtime, state the exact order in project docs and keep this skill focused on authoring quality.
## Skill Creation Workflow
Follow this sequence unless there is a clear reason to skip a step.
### Step 1: Gather concrete usage examples
Identify 3-6 realistic prompts that should trigger the skill.
Ask focused questions, for example:
- What user requests should activate this skill?
- What should this skill handle directly vs defer?
- Which file types, tools, or APIs are in scope?
### Step 2: Plan reusable artifacts
For each example, identify repeatable parts and place them in the right resource type.
Examples:
- Repeated code logic -> `scripts/*.py`
- Domain rules/schemas -> `references/*.md`
- Starter templates -> `assets/`
### Step 3: Initialize scaffold
Use the initializer for consistent structure:
```bash
python3 scripts/init_skill.py <skill-name> --path <skills-dir> --resources scripts,references,assets
```
For UI metadata, provide deterministic interface values:
```bash
python3 scripts/init_skill.py <skill-name> --path <skills-dir> \
--interface display_name="..." \
--interface short_description="..." \
--interface default_prompt="Use $<skill-name> to ..."
```
### Step 4: Implement and refine
1. Build scripts and references first.
2. Write `SKILL.md` as an execution guide, not an essay.
3. Link to references only where decisions require them.
4. Delete placeholder/example files that are not used.
### Step 5: Validate
Run structural and metadata checks:
```bash
python3 scripts/quick_validate.py <path/to/skill>
```
If UI metadata is used, regenerate and compare:
```bash
python3 scripts/generate_openai_yaml.py <path/to/skill>
```
### Step 6: Package and test (if distributing)
Create a `.skill` archive with path and symlink safety checks:
```bash
python3 scripts/package_skill.py <path/to/skill>
```
Run packaging regression tests:
```bash
python3 scripts/test_package_skill.py
```
## Writing Style Guide
Use imperative voice and explicit constraints.
Good:
- "Run `python3 scripts/quick_validate.py <skill-dir>` before packaging."
- "Load `references/aws.md` only when the selected provider is AWS."
Weak:
- "You might want to validate things eventually."
- "Read all references first."
Prefer:
- specific commands
- bounded scope
- clear success conditions
Avoid:
- vague phrases without operational meaning
- duplicated instructions in multiple files
- large inline reference dumps in `SKILL.md`
## Validation Checklist
Before calling a skill complete, verify:
1. Frontmatter `description` clearly states what it does and when to use it.
2. Skill name uses lowercase skill-id characters (`a-z`, `0-9`, `-`, `.`) and
is <= 64 characters.
3. `SKILL.md` contains concise workflow guidance and links to deep docs.
4. Scripts execute successfully on representative inputs.
5. `quick_validate.py` passes.
6. Packaging (if needed) rejects unsafe paths and symlinks.
7. `agents/openai.yaml` is present and aligned when UI metadata is required.
## Common Mistakes
- Putting trigger conditions only in the body instead of frontmatter.
- Keeping large variant-specific details in `SKILL.md` instead of `references/`.
- Shipping untested scripts.
- Leaving template placeholders in production skills.
- Including docs that explain creation process instead of runtime execution.
## Review Workflow
Run a second pass focused on execution quality:
1. Simulate real user prompts.
2. Check whether the skill triggers correctly.
3. Confirm instructions are sufficient without hidden assumptions.
4. Tighten wording where ambiguity causes drift.
Use `references/workflows.md` and `references/output-patterns.md` for reusable review patterns and output contracts.
No comments yet. Be the first to comment!