skill-creator-linter

Validates candidate meta-skill SKILL.md files against structural and scheduler dry-run gates.

6.8k|540|Updated May 6, 2026
One-click install
npx skills add https://github.com/opensquilla/opensquilla --skill skill-creator-linter
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: skill-creator-linter
Source: https://github.com/opensquilla/opensquilla/tree/main/src/opensquilla/skills/bundled/skill-creator-linter
Command: npx skills add https://github.com/opensquilla/opensquilla --skill skill-creator-linter

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires structlog, and includes scripts (resource) components.

What problem does it solve?

It catches broken meta-skill definitions before registration by statically linting a candidate SKILL.md and dry-running its DAG plan, returning machine-readable JSON diagnostics instead of runtime failures.

Core Features & Use Cases

  • G1 Static Gate: Parses the meta plan, verifies every referenced step skill exists in the bundled catalog, rejects nested meta-skill references, and enforces the xml_escape filter rule on user_message templates.
  • G2 Scheduler Dry-Run: Executes the plan's DAG with stub executors to confirm the topology terminates without exceptions.
  • Use Case: When meta-skill-creator generates a new meta-skill, it invokes this linter as a DAG step to confirm the candidate passes G1 and G2 before proposing it for registration.

Quick Start

Ask the meta-skill-creator to lint your candidate SKILL.md, or run the lint script with the skill file piped to stdin and gates set to G1,G2.

Frequently Asked Questions about skill-creator-linter

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I lint a meta-skill SKILL.md before registering it?

Run the lint script with --skill-md pointing at the file or pipe it via --skill-md-stdin, passing --gates G1,G2. The script prints JSON with passed flags and diagnostics for each gate.

What checks does the G1 gate perform on a meta-skill?

G1 parses the plan with parse_meta_plan, verifies every agent or skill_exec step references an existing catalog skill, rejects nested meta-skill references, and greps for user_message templates missing the xml_escape or slugify filter.

What does the G2 scheduler dry-run actually test?

G2 replaces step executors with stubs that yield a done event, then runs the DAG scheduler over the parsed plan. It passes if no exception is raised and the topology terminates, reporting the number of steps visited.

Why does the linter reject references to kind meta skills?

The runtime agent executor refuses nested meta-skills with a 'cannot compose another meta-skill' error. The linter rejects them at G1 so candidates do not pass validation only to crash at runtime.

Can I invoke this linter directly as a user?

No. It is marked user-invocable false and disable-model-invocation true, so it runs only as a DAG step called by meta-skill-creator, though the script can be executed manually from a shell.