From sna-builder
Create a new SNA skill with proper event emission patterns and typed args. Use when the user wants to add a new skill to their SNA application.
npx claudepluginhub neuradex/sna --plugin sna-builderThis skill uses the workspace's default tool permissions.
Create a new skill following SNA conventions.
Implements Playwright E2E testing patterns: Page Object Model, test organization, configuration, reporters, artifacts, and CI/CD integration for stable suites.
Guides Next.js 16+ Turbopack for faster dev via incremental bundling, FS caching, and HMR; covers webpack comparison, bundle analysis, and production builds.
Discovers and evaluates Laravel packages via LaraPlugins.io MCP. Searches by keyword/feature, filters by health score, Laravel/PHP compatibility; fetches details, metrics, and version history.
Create a new skill following SNA conventions.
Ask the user for the skill name and what it should do (use $ARGUMENTS if provided)
Create the skill directory and SKILL.md:
.claude/skills/<skill-name>/SKILL.md
The SKILL.md MUST include frontmatter with sna.args for typed client generation:
---
description: What this skill does
sna:
args:
paramName:
type: number
required: true
description: What this parameter is
---
Supported types: string, number, boolean, string[], number[]
The SKILL.md body MUST include event emission using sna dispatch (primary) or the SDK script (legacy):
Primary — sna dispatch CLI:
ID=$(sna dispatch open --skill <name>)
sna dispatch $ID start --message "Starting..."
sna dispatch $ID milestone --message "Step done"
sna dispatch $ID close --message "Done."
# On error: sna dispatch $ID close --error "Failed: reason"
Legacy (deprecated) — emit.js:
node node_modules/@sna-sdk/core/dist/scripts/emit.js --skill <name> --type start --message "Starting..."
node node_modules/@sna-sdk/core/dist/scripts/emit.js --skill <name> --type milestone --message "Step done"
node node_modules/@sna-sdk/core/dist/scripts/emit.js --skill <name> --type complete --message "Done."
NEVER use tsx scripts/emit.ts — always use sna dispatch or the SDK emit.js path above
If the skill needs TypeScript scripts, create them in the app's scripts/ directory
After creating the skill, remind the user to regenerate the typed client:
sna gen client --out src/sna-client.ts
Verify the skill follows all SNA conventions by reading ${CLAUDE_PLUGIN_ROOT}/docs/skill-authoring.md