plugins/lisa/skills/parity-skill-creator/SKILL.md
Author a new Lisa skill end-to-end — scaffold the SKILL.md frontmatter (name/description/allowed-tools), write the pass-through command, follow hyphen naming, place files under plugins/src/base, and rebuild plugins. Lisa-native reimplementation of the upstream skill-creator plugin. NO drift pin: upstream publishes no semver, so it is not drift-trackable.
npx skillsauth add codyswanngt/lisa parity-skill-creatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Author a new, working Lisa skill (and its pass-through command) from a one-line
description. This is the Lisa-native equivalent of the upstream
skill-creator@claude-plugins-official plugin, reimplemented from scratch
against Lisa's conventions so the same capability is available to the Codex,
agy, and Copilot runtimes (Cursor reads .claude-plugin/ natively).
This skill intentionally carries no synced-from pin. The upstream
skill-creator plugin publishes no semver (its cache version resolves to
unknown), so a @unknown pin would be unparseable and meaningless to
scripts/plugin-parity-drift.mjs. Drift is tracked manually — re-review the
upstream plugin by hand whenever the curated plugin set is refreshed. Do not
add a synced-from line to skills generated by this skill unless they
reimplement a semver-versioned upstream plugin.
analyze-plugin / implement-plugin-parity).If the knowledge is narrow or one-off, prefer a rule in .claude/rules/ instead
— skills are for broad, repeatable capabilities. When unsure whether content
warrants a skill, run it past the skill-evaluator agent first.
Lisa skills are build output for downstream projects. The source of truth is
plugins/src/, never the generated plugins/lisa* artifacts:
| Source directory | Builds artifact | Use for |
| --- | --- | --- |
| plugins/src/base/ | plugins/lisa | Skills that ship to every stack |
| plugins/src/<stack>/ | plugins/lisa-<stack> | Stack-specific (typescript, expo, nestjs, cdk, harper-fabric, rails) |
Lisa-repo-only skills (parity tooling, wiki ingestion, lisa-* meta-skills) live
at the root .claude/skills/ and .claude/commands/, NOT under
plugins/src — they are not relevant to downstream projects. Decide placement
first:
plugins/src/base/skills/<name>/SKILL.md.claude/skills/<name>/SKILL.mdgit-commit, tracker-write,
parity-sentry-seer. No spaces, no camelCase, no underscores.name, and the command filename must all
match exactly.commands/git/commit.md → /lisa:git:commit; a flat
commands/plan.md → /lisa:plan.Skills support only these frontmatter keys (they do not support
argument-hint or $ARGUMENTS substitution — those belong on the command):
---
name: my-skill # required — matches the directory name
description: "One or two sentences." # required — when to use + what it does
allowed-tools: ["Read", "Edit", "Write", "Bash"] # optional — least privilege
synced-from: <plugin>@<marketplace>@<version> # ONLY for semver upstream reimplementations
---
name — the hyphen identifier, byte-identical to the directory.description — write it so the model knows when to reach for the skill,
not just what it does. Lead with the trigger. This is the single most
important field for discoverability.allowed-tools — grant the minimum set. A read-only review skill needs no
Write/Edit. Omit the key entirely to inherit the caller's tools.synced-from — add only when the skill reimplements an upstream plugin
that publishes a real semver. Grammar: name@marketplace@version
(e.g. sentry@[email protected]). Omit for upstreams with no
semver (note that in the body instead, as this skill does).Every skill should have a thin command that is the user-facing entry point.
Commands support description, argument-hint, and $ARGUMENTS; they delegate
straight to the skill:
---
description: "Same human-facing summary as the skill, phrased for the picker."
argument-hint: "<what the user should type after the command>"
---
Use the /lisa:my-skill skill to <do the thing>. $ARGUMENTS
The command carries the argument-hint and forwards $ARGUMENTS; the SKILL.md
carries the actual logic. Keep the two descriptions consistent.
plugins/src/base) vs. Lisa-only
(.claude). For base, both a skill and a command directory entry are needed.ls plugins/src/base/skills/ and ls plugins/src/base/commands/.plugins/src/base/skills/<name>/SKILL.md with the frontmatter above and a
body that follows house style — see plugins/src/base/skills/quality-review/SKILL.md
for the canonical shape (title, "When to use", numbered checklist/steps,
explicit "Rules"/"Output" sections). Write real, actionable guidance, not
TODOs.plugins/src/base/commands/<name>.md (or a nested
commands/<namespace>/<name>.md for a colon-namespaced command) using the
pass-through template.bun run build:plugins
Then commit both plugins/src/... and the regenerated plugins/lisa*.
The 🧩 Plugins Sync CI check (and bun run check:plugins locally) fails if
artifacts drift from source — never hand-edit plugins/lisa*./lisa:<name>.# H1 title in Title Case.## When to use section that names the triggers.## Rules (hard constraints) and/or ## Output section.git-commit").plugins/lisa* directly — edit plugins/src/ and rebuild.argument-hint or $ARGUMENTS.name field, and command filename must match exactly.synced-from only for semver-versioned upstream reimplementations./coding-philosophy in task skills metadata — it auto-loads.tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and
tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and
tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and
tools
--- name: harper-realtime description: This skill should be used when adding or troubleshooting Harper (HarperDB/Fabric) real-time behavior: MQTT topics, WebSocket resource subscriptions, resource publish/subscribe handlers, SSE-style streaming routes, and local subscriber verification. Pairs with harper-resources, harper-config-yaml, harper-schema-graphql, and harper-build-and-deploy. --- # Harper Realtime ## Overview Harper exposes live data through the same Resource model used for REST and