plugins/src/base/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.development
Use Expo DOM components to run web code in a webview on native and as-is on web. Migrate web code to native incrementally.
development
Guidelines for upgrading Expo SDK versions and fixing dependency issues
development
Use when implementing or debugging ANY network request, API call, or data fetching. Covers fetch API, React Query, SWR, error handling, caching, offline support, and Expo Router data loaders (`useLoaderData`).
tools
`@expo/ui/swift-ui` package lets you use SwiftUI Views and modifiers in your app.