skill-creator-linter
skill-creator-linter is an internal validation tool that checks candidate meta-skill SKILL.md files against two gate sets before registration. G1 performs structural validation including parsing, catalog reference checks, XML escape filter usage, and template resolution, while G2 executes a scheduler dry-run with stub executors to verify topology and termination. It returns deterministic JSON diagnostics in under a second without invoking an LLM.
git clone --depth 1 https://github.com/opensquilla/opensquilla /tmp/skill-creator-linter && cp -r /tmp/skill-creator-linter/src/opensquilla/skills/bundled/skill-creator-linter ~/.claude/skills/skill-creator-linterSKILL.md
# Skill Creator Linter
Validates a candidate meta-skill SKILL.md before it gets registered.
## G1 rules
| Rule | Check |
|---|---|
| G1.1 | `parse_meta_plan` does not raise |
| G1.2 | Every `step.skill` for kind=agent/skill_exec exists in the main catalog |
| G1.3 | Template variables resolve at render time (covered by G1.1) |
| G1.4 | `on_failure` parser rules (covered by G1.1) |
| G1.5 | step `kind:` consistency (covered by G1.1) |
| G1.6 | Grep: every `{{ inputs.user_message | xml_escape` usage must have `xml_escape` (or `slugify`) as the first filter. Violations are reported as G1 errors (block linter). |
## G2 dry-run
Replace step executors with stubs yielding `_StepDone(text="<stub:id>")`. Run scheduler; pass if no exception and topology terminates.
## Usage
```
uv run python {baseDir}/scripts/lint.py --skill-md path/to/SKILL.md --gates G1,G2
uv run python {baseDir}/scripts/lint.py --skill-md-stdin --gates G1,G2 < SKILL.md
```
## Output
JSON to stdout: `{"G1": {"passed": bool, "diagnostics": [...]}, "G2": {...}}`.
## Fallback
Manually inspect SKILL.md and run `parse_meta_plan` in a Python REPL.Submit audio or video for multilingual dubbing, poll status, and download dubbed audio. Use when the user asks for dubbing, 多语言配音, 视频翻译配音, 译制片, or wants a source clip dubbed into another language.
Generate a structured short-video shooting script from a topic. Emits a strict, machine-parseable shot list (3 shots by default) with image prompt + video prompt + voiceover + on-screen text per shot. Trigger when the user asks for a video script, 分镜, 短视频文案, AI视频, 短剧脚本, or wants visual prompts ready for image/video generation.
Use when the user asks to schedule recurring tasks, one-off reminders, timers, or cron-style jobs through the OpenSquilla cron tool.
Multi-round research with explicit methodology, evidence tracking, and citation-tagged synthesis. Trigger on 'deep dive', 'research report', 'literature review', 'investigate X across sources', 'multi-round investigation'. Distinct from the `summarize` skill, which is a single-pass condensation; this skill maintains a state file across iterations, tracks coverage, and produces a long-form report with per-claim citations. Three execution stages: plan (scope into sub-questions), iterate (record evidence per round), compile (synthesize report). The skill itself does not fetch the web — it tells the host agent which fetches to perform via OpenSquilla's existing web tools, and records what comes back.
Read, edit, or create Microsoft Word `.docx` files. Trigger this skill whenever the user mentions a Word document, .docx file, contract, report, brief, memo, or asks to extract text, modify an existing doc, generate one from a brief, or audit tracked changes. Three execution paths: text-and-structure extraction, in-place edit-by-run (preserves styles), and create-from-scratch with python-docx. Falls back to OOXML unzip-and-patch for layout work python-docx cannot reach.
Capture the current git diff (staged, working-tree, or staged file list) as text. Direct shell call for workflows that need repository diffs without an LLM agent loop.
GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries. Use when: (1) checking PR status or CI, (2) creating/commenting on issues, (3) listing/filtering PRs or issues, (4) viewing run logs. NOT for: complex web UI interactions requiring manual browser flows (use browser tooling when available), bulk operations across many repos (script with gh api), or when gh auth is not configured.
Query the per-turn DecisionEntry log for skill co-occurrence patterns, meta-skill usage stats, and the router fixture corpus. Returns a JSON summary suitable for downstream LLM consumption. Used by meta-skill-creator's harvest step but also useful standalone for 'which skills did I use most this week?'