Skip to content
Back to skills

Skill Creator

ASecurity

Create a new IWE skill with proper frontmatter, gates, scaffold and verification. Use when the pilot says: /skill-creator or «создай скилл <name>». The skill enforces WP Gate precondition, Routing Gate, IntegrationGate hard-check, collects parameters in 4 short steps, generates a scaffold SKILL.md from a template, shows a draft, writes files, and reminds about verify-skill.sh.

  • 63 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 1, 2026
ai-agentspythongobashgit

Works with

  • cli

Security analysis

A100/100

Pro scans all 7 files and shows the line behind each finding

Scanned October 4, 2026

npx -y skills add TserenTserenov/FMT-exocortex-template --skill skill-creator --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Skill Creator?

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

Security grade badge for Skill Creator
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tserentserenov-skill-creator/badge)](https://www.skillsdirectory.com/skills/tserentserenov-skill-creator)

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: skill-creator
description: |
  Create a new IWE skill with proper frontmatter, gates, scaffold and verification.
  Use when the pilot says: /skill-creator or «создай скилл <name>».
  The skill enforces WP Gate precondition, Routing Gate, IntegrationGate hard-check,
  collects parameters in 4 short steps, generates a scaffold SKILL.md from a template,
  shows a draft, writes files, and reminds about verify-skill.sh.
version: 0.4.0
status: experimental
browser_safe: false
layer: L1
agents: single
interaction: multi-step
gates_required: [wp]
gates_enforced: [integration, routing]
gates_rationale: "wp — создание скилла = нетривиальный артефакт (>15 мин), требует согласованного РП до начала (WP Gate precondition). integration — новый скилл-обёртка над инструментом/ролью требует существующих DP.SC.* + DP.ROLE.* до реализации (IntegrationGate hard-block). routing — размещение (Claude/Kimi, project/user, L1-L3) есть решение Routing Gate до scaffold."
triggers:
  slash:
    - /skill-creator
  phrases:
    - "создай скилл <name>"
    - "новый скилл <name>"
---

# /skill-creator — create an IWE skill

> **Scope:** create a new skill OR guide an update to an existing skill in `.claude/skills/` or `.kimi/skills/`.
> **Not in scope:** full re-scaffold without deleting the old `SKILL.md` first (delete manually, then call `/skill-creator` again); creating a WP; creating a Pack.
> **Role:** ad-hoc content-role «Инженер скиллов»; formalize in Pack if ≥3 skills/year.

## When to use

- Pilot wants a new skill for a repeated workflow.
- A new tool/agent/system needs a Service Clause + Role + SKILL.md.
- A skill needs promotion from author repo to `FMT-exocortex-template`.

## Preconditions (checked, not performed)

1. **WP Gate precondition.** The task must be attached to an agreed WP in the weekly plan or explicitly named by the pilot. `/skill-creator` does not conduct the WP Gate ritual itself.
2. **Routing Gate.** Decide target platform (Claude vs Kimi) and level (project vs user). Default: project-level `.claude/skills/` in the author repo.
3. **IntegrationGate hard-check.** `DP.SC.*` and `DP.ROLE.*` must exist in the PACK repo. If not, the skill stops and offers to create them. Bypass only by explicit pilot instruction «пропусти gate» — no code flag.

## Algorithm

### Step 1 — Check WP Gate precondition

Look up the current weekly plan (`current/WeekPlan W{N}.md`) or ask:

```
К какому РП привязано создание скилла?
```

If no WP is named and none matches the skill topic → stop:

```
Создание скилла требует согласованного РП. Сначала откройте РП через WP Gate.
```

### Step 2 — Routing Gate

Ask or infer:

| Question | Default |
|----------|---------|
| Claude или Kimi? | Claude |
| project-level или user-level? | project-level |
| governance-репо для учёта? | `${IWE_GOVERNANCE_REPO:-DS-strategy}` |

Target path:
- Claude project: `.claude/skills/<name>/`
- Kimi project: `.kimi/skills/<name>/`
- User level: `~/.claude/skills/<name>/` or `~/.kimi/skills/<name>/`

### Step 2.5 — Detect existing skill

Check whether `<target_path>/SKILL.md` already exists.

**If it exists** → switch to update mode. Do NOT re-scaffold. Show the pilot:

```
Скилл <name> уже существует (версия X.Y.Z).
Что обновить?
  [ ] description
  [ ] slash / phrase triggers
  [ ] version bump (current: X.Y.Z → new: ?)
  [ ] algorithm step (add / edit)
  [ ] bundled resource (add scripts/ references/ assets/)
  [ ] полный пересоздать → удалите SKILL.md вручную, затем запустите /skill-creator снова
  [ ] отмена → ничего не менять
```

Collect the pilot's choices. A requested description must contain at least 10 words; if shorter, explain the validation requirement and ask for an expanded wording before editing. Apply agreed changes directly to the existing `SKILL.md` via Edit.

Skip Steps 3–6 **unless** the pilot selected "bundled resource" or any change that expands the skill's scope or gates — in that case, run **Step 3 (IntegrationGate)** before applying.

For Step 7 (register + verify): run `verify-skill.sh` always. Run `generate-skills-catalog.sh` only if frontmatter changed (name, description, triggers, version).

Version bump rule: bump patch for trigger / description edits; bump minor for algorithm changes **or adding a bundled resource**; bump major for gate or scope changes.

**If it does not exist** → continue to Step 3 (normal creation flow).

### Step 3 — IntegrationGate

Check PACK repo for files matching `DP.SC.*` and `DP.ROLE.*`. If missing:

```
Service Clause (DP.SC.*) и Role (DP.ROLE.*) не найдены.
Создайте их сейчас через /pack-new или соответствующий процесс.
Для продолжения без них скажите явно: «пропусти gate».
```

Stop until the gate is satisfied or explicitly bypassed by pilot words.

### Step 4 — Collect parameters (4 short steps)

**4a. Name and description**

```
Имя скилла (hyphen-case): <name>
Краткое описание — что делает и когда использовать:
```

The description must contain at least 10 words; count the YAML value, not surrounding metadata.

**4b. Agents and interaction axes**

```
agents: single | multi
interaction: one-shot | multi-step
```

**4c. Triggers**

```
slash-команды (через запятую):
фразовые триггеры (через запятую):
```

Keep phrase triggers narrow: include a skill name placeholder to avoid accidental activation.

**4d. Bundled resources**

```
Какие bundled resources нужны?
[ ] scripts/
[ ] references/
[ ] assets/
```

Default: `assets/` for scaffold template, `scripts/` for verify script.

### Step 5 — Generate scaffold

Choose scaffold template based on skill complexity:
- **Minimal** (`assets/skill-scaffold-minimal.md`): single-step skills without external gates
- **Full** (`assets/skill-scaffold-full.md`): multi-step skills with Preconditions and Bundled resources

Copy chosen template to target path and substitute:
- `{{name}}`, `{{description}}`, `{{version}}` (default `0.1.0`), `{{status}}` (default `experimental`)
- `{{agents}}`, `{{interaction}}`, `{{layer}}`
- `{{slash_triggers}}`, `{{phrase_triggers}}`
- `{{gates_rationale}}` — required when `gates_required` and `gates_enforced` are both empty

Create selected bundled resource directories with placeholder files.

### Step 6 — Show draft

Print generated `SKILL.md` and file list to stdout. No P5 question. Pilot can cancel with:

```
/skill-creator undo
```

Undo works only before next commit or within 15 minutes.

### Step 7 — Write files, register, verify

Write files to target path. Then regenerate the catalog and run verify:

```bash
# Run from the workspace root. Set these two paths from the routing decision;
# creator_dir is the directory containing THIS instruction, not the new skill.
skills_dir=.claude/skills
creator_dir=.claude/skills/skill-creator
workspace="$PWD"
template_root="${IWE_TEMPLATE:-$workspace/FMT-exocortex-template}"
if [ -f "$workspace/update-manifest.json" ] && [ -f "$workspace/scripts/generate-skills-catalog.sh" ]; then
  template_root="${IWE_TEMPLATE:-$workspace}"
fi
catalog_script="$workspace/scripts/generate-skills-catalog.sh"
if [ ! -f "$catalog_script" ]; then
  catalog_script="$template_root/scripts/generate-skills-catalog.sh"
fi
catalog_output="$(dirname "$skills_dir")/skills-catalog.yaml"
if ! IWE_WORKSPACE="$workspace" bash "$catalog_script" \
  --skills-dir "$skills_dir" --output "$catalog_output"; then
  echo "Catalog generation failed; verification was not run." >&2
  exit 1
fi
IWE_WORKSPACE="$workspace" IWE_TEMPLATE="$template_root" \
  bash "$creator_dir/scripts/verify-skill.sh" <name> "$skills_dir"
```

Both commands must pass before the skill is considered created. For Kimi targets set `skills_dir=.kimi/skills`; if this instruction is installed there too, set `creator_dir=.kimi/skills/skill-creator`. If either tool is absent, stop with the missing path rather than claiming verification.

The verifier uses the shared workspace `scripts/lib/find-python3.sh` and the declared PyYAML and markdown-it-py dependencies in `requirements.txt`. Metadata must be the first complete YAML block; duplicate keys, invalid types, and empty required values fail. Required Markdown sections must be real headings outside code examples. Bundled resources are checked in `scripts/`, `assets/`, and `references/`.

Tell the user where the new skill lives and that nothing preserves it (issue #873): a
project-local skill under `.claude/skills/<name>/` is usually outside git and outside the
`day-close.sh` backup, and `update.sh` neither erases nor carries it over. Until the template
owner picks a backup model, suggest keeping a copy in a git repository the user controls.

For skills with `interaction: multi-step`: run `/vdv audit` on the Algorithm section.
Not a gate — does not block creation — but catches steps with missing Input/Output linkage
before the skill is used in practice.

## Bundled resources

- `assets/skill-scaffold-minimal.md` — scaffold for single-step skills without external gates
- `assets/skill-scaffold-full.md` — scaffold for multi-step skills with Preconditions and Bundled resources
- `scripts/verify-skill.sh` — CLI wrapper using the shared Python resolver
- `scripts/verify-skill.py` — validates YAML metadata, gates, real sections, bundled resources, templates and platform-specific L1 location

## Known schema gaps

Fields used by some existing skills but not yet in the standard frontmatter schema:

- `argument-hint` — CLI-style hint for script-executor skills (e.g. agent-fault, apply-captures). Encodes the argument contract. Keep until schema is extended or absorbed into `description`.
- `routing.executor` — indicates whether the skill runs via `script`, `sonnet`, or another executor. Useful for the dispatcher but not validated by `verify-skill.sh`. Candidate for standardization.

Until standardized: leave these fields as-is in existing skills; do not remove during Step 2.5 updates.

## Known tool gaps

- **`content-audit.sh` coverage (Ф9)**: audit script checks 5 structural criteria (gates_rationale, Algorithm section, step headings ≥3, step content ≥2 lines, When-to-use section). 7 YELLOW skills (single C3 issue) are simple alias/mode skills without numbered step headings. This is structural noise, not content error — these skills are functionally correct. See `scripts/content-audit.sh` for full output.

## Anti-patterns

- Do not create a skill without a linked WP.
- Do not bypass IntegrationGate with a code flag.
- Do not put wide phrase triggers like «надо сделать скилл».
- Run `generate-skills-catalog.sh` after writing files (Step 7) — not before, not manually.
- Do not make the skill verify itself; use `scripts/verify-skill.sh`.
- Do not skip `verify-skill.sh` after editing an existing skill — always run it after any update.
- Do not re-scaffold for minor updates (triggers, description, version bump, algorithm); use Step 2.5 update mode instead. Exception: platform or layer change (e.g. Claude→Kimi, L1→L3) requires a new path and a fresh scaffold — delete old SKILL.md first.
- Do not forget version bump when changing gates, scope, or algorithm steps (bump minor or major).

## Verification

After creation, run:

```bash
bash .claude/skills/skill-creator/scripts/verify-skill.sh <skill-name> .claude/skills
```

Expected result: PASS with checks for: valid YAML frontmatter, description of at least 10 words, recognized non-empty triggers, `gates_required`/`gates_enforced` fields with valid enum values, bundled resource files exist, scaffold templates valid, L1 skills present in FMT.

<!-- USER-SPACE -->
<!-- /USER-SPACE -->

Files in this skill

  • SKILL.md10.2 KB
  • assets/skill-scaffold-full.md1.6 KB
  • assets/skill-scaffold-minimal.md696 B
  • scripts/batch-fix-skills.py6 KB
  • scripts/content-audit.sh7.4 KB
  • scripts/scaffold-init.sh5.6 KB
  • scripts/verify-skill.sh4.5 KB

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.