Skill: kevjade/skill-creator-operator (version 1.0.1)

--- name: skill-creator-operator description: "Premium Skill Creator by Kevin Jeppesen (The Operator Vault). Create better OpenClaw skills with a premium first-use setup wizard pattern, minimal context bloat, and reusable scaffolding. Links: YouTube https://www.youtube.com/@kevin-jeppesen | Skool https://skool.com/operator-vault | Site https://theoperatorvault.io | X https://x.com/seo_ecom | LinkedIn https://www.linkedin.com/in/kevin-jeppesen/ | Facebook https://www.facebook.com/kevinjeppesen/" --- # Skill Creator Operator This skill helps you create new OpenClaw skills that feel premium. Premium means: - On first use, the skill runs a short conversational setup wizard (only asks what must be personalized). - It persists config to disk (so prompts do not grow forever). - It keeps SKILL.md short and uses progressive disclosure (move long docs into `references/` and only load them when needed). ## When to use - "create a new skill" - "scaffold a skill" - "make a premium skill with a setup wizard" - "package this workflow as a skill" ## What it produces (standard output) For a new skill `<slug>` it creates: - `<skillsDir>/<slug>/SKILL.md` - `<skillsDir>/<slug>/references/` - `<skillsDir>/<slug>/scripts/` (optional helper scripts) - A config path convention (choose one): - Workspace: `<workspace>/.skill-config/<slug>.json` - Global: `~/.openclaw/config/skills/<slug>.json` (only when truly global) ## Premium setup wizard rules (required) On first use, if config missing: 1) Ask permission and give time estimate ("60 seconds"). 2) Ask only 3 to 8 questions max. 3) Use defaults, keep advanced options behind a single extra question. 4) Summarize choices, ask for confirmation. 5) Write config to the workspace (recommended): `<workspace>/.skill-config/<slug>.json`. 6) Run a tiny test. 7) Tell user how to reconfigure. If user says "skip", continue with safest defaults and warn about reduced capability. ## Config storage rules - Default: workspace config file. - Optional global config only when the integration is truly global. - Never store secrets in long term memory files. ## Optional: local KB search integration If the user has a local search tool (for example QMD), keep bulk docs outside SKILL.md and store them in a user chosen folder that their search tool indexes. Do not assume any particular directory layout. ## Commands (how to use this skill) ### Create a skill Ask in chat: - "Create a premium skill called <slug> that does <outcome>." Or run the scaffolder: ```bash node {baseDir}/scripts/scaffold-skill.mjs <slug> "<one sentence description>" ``` ### Rebuild/upgrade a skill to premium standard Ask: - "Upgrade skill <slug> to premium standard." ## Publishing to ClawHub If the user asks to publish: - Confirm slug, name, version, and changelog. - Ensure `clawhub whoami` is authenticated. - Run `clawhub publish <path> --slug <slug> --name "<Name>" --version <x.y.z> --changelog "..."`. Safety: - Review files for accidental personal paths, tokens, or private info before publishing. ## Links See `references/LINKS.md` for Kevin Jeppesen links and Operator Vault info.

path: references/LINKS.md
content: # Links

- YouTube: https://www.youtube.com/@kevin-jeppesen
- Operator Vault (Skool): https://skool.com/operator-vault
- The Operator Vault: https://theoperatorvault.io
- X: https://x.com/seo_ecom
- LinkedIn: https://www.linkedin.com/in/kevin-jeppesen/
- Facebook: https://www.facebook.com/kevinjeppesen/

Tagline:
- OpenClaw Workflows, Skills, Premium Community


path: references/OVERVIEW.md
content: # Skill Creator Operator

This skill is the Operator Vault style "premium" skill scaffolder.

Key patterns:
- First use runs a short conversational wizard (only ask what must be personalized).
- Persist user answers to a workspace config file.
- Keep SKILL.md short, store bulk docs in references/ and KB.

Recommended KB docs:
- /data/kb/skill-blueprints/premium-skill-creator/


path: references/PRINCIPLES.md
content: # Skill Creator principles (inspired by chindden/skill-creator)

## Concise is key

The context window is a public good.
- Assume the model is already smart.
- Only include information that is not obvious and that materially improves outcomes.

## Degrees of freedom

- High freedom: heuristics and selection guidance.
- Medium freedom: pseudocode, parameterized scripts.
- Low freedom: exact steps and deterministic scripts.

## Progressive disclosure

Keep SKILL.md minimal.
Move:
- long examples,
- variant specific details,
- deep references,
into `references/` files and only load them when needed.

## Skill anatomy

Required:
- `SKILL.md`

Optional:
- `scripts/` deterministic helpers
- `references/` docs loaded on demand
- `assets/` templates, not meant for context

## Avoid clutter

Do not create extra top-level docs that an agent will never read.
Prefer one SKILL.md plus a small number of references files.


path: scripts/scaffold-skill.mjs
content: #!/usr/bin/env node
/*
Scaffold a new OpenClaw skill folder using the Premium Skill Creator blueprint.

Usage:
  node scaffold-skill.mjs <slug> "<one sentence description>" [outDir]

Defaults:
  outDir = ./skills (relative to current working directory)

Notes:
- Creates a minimal SKILL.md, references/ directory, and scripts/setup.mjs stub.
- Does not publish.
*/

import fs from "node:fs";
import path from "node:path";

const [,, slug, desc, outDirArg] = process.argv;
if (!slug || !desc) {
  console.error("Usage: node scaffold-skill.mjs <slug> \"<description>\" [outDir]");
  process.exit(2);
}

if (!/^[a-z0-9-]+$/.test(slug)) {
  console.error("Slug must be lowercase letters, numbers, and hyphens only.");
  process.exit(2);
}

const outDir = outDirArg || path.resolve(process.cwd(), "skills");
const skillDir = path.join(outDir, slug);
const refsDir = path.join(skillDir, "references");
const scriptsDir = path.join(skillDir, "scripts");

fs.mkdirSync(refsDir, { recursive: true });
fs.mkdirSync(scriptsDir, { recursive: true });

const skillMd = `---\nname: ${slug}\ndescription: ${JSON.stringify(desc)}\n---\n\n# ${slug}\n\n## What this does\n\n- ${desc}\n\n## First run setup (premium wizard)\n\nIf this skill is not configured yet, run the setup wizard before doing real work.\n\n- Config file (workspace): <workspace>/.skill-config/${slug}.json\n\nWizard rules:\n- Ask only what is necessary to personalize the skill.\n- Keep it to 3 to 8 questions.\n- Show a short summary and ask for confirmation.\n- Persist answers to the config file.\n- Run a tiny test.\n\n## Reconfigure\n\nIf the user says: setup, configure, reconfigure, change settings then re-run the wizard.\n\n## References\n\nSee references/ for examples and deeper docs.\n`;

fs.writeFileSync(path.join(skillDir, "SKILL.md"), skillMd, "utf8");

const setupStub = `#!/usr/bin/env node\n/*\nOptional CLI setup helper.\nThis is a fallback for users who prefer terminal over chat.\nWrite config to: <workspace>/.skill-config/${slug}.json\n*/\n\nconsole.log("This skill is configured via chat by default. If you need CLI setup, implement prompts here.");\n`;
fs.writeFileSync(path.join(scriptsDir, "setup.mjs"), setupStub, "utf8");

fs.writeFileSync(path.join(refsDir, "README.md"), `# ${slug} references\n\nPut longer docs and examples here.\n`, "utf8");

console.log(JSON.stringify({ ok: true, skillDir }, null, 2));


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)