claude/ai-resources-plugin/skills/configure-editor-schema/SKILL.md
Wire an existing JSON Schema into VS Code, Cursor, and/or Zed so it provides validation and IntelliSense for matching JSON or YAML files.
npx skillsauth add amhuppert/my-ai-resources configure-editor-schemaInstall 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.
Associate an existing JSON Schema with a file-match glob in one or more editors (VS Code, Cursor, Zed) for both JSON and YAML files. Authoring the schema itself is out of scope — the schema must already exist on disk or be reachable at an HTTPS URL.
<arguments> $ARGUMENTS </arguments>Extract these inputs from $ARGUMENTS. Anything missing is collected via AskUserQuestion in Step 2.
json or yaml — which file type the schema validates.**/myconfig.json, .foo/*.yaml).user (default) or project.If the schema source is ambiguous (e.g., the user said "the schema for X" without giving a path), treat it as missing.
Use AskUserQuestion to fill gaps. One question per missing input. Suggested prompts:
json, yaml)VS Code, Cursor, Zed, plus combinations — allow multi-select)Confirm the resolved inputs back to the user in one short summary before writing anything.
For each chosen editor and scope, determine the absolute path of the settings file. Consult references/editor-settings.md for the per-OS path table and project-level conventions.
Use uname or known environment context to detect the OS. On Linux, prefer $XDG_CONFIG_HOME when set, falling back to ~/.config.
If a settings file or its parent directory does not exist, create them:
mkdir -p <parent-dir>Write an empty {} if the file is missing.For each target settings file:
Read tool.references/editor-settings.md for the exact shape per editor.json.schemas array): conflict = an existing entry whose fileMatch overlaps with the new glob.yaml.schemas map): conflict = an existing key (schema source) already bound to an overlapping glob, OR a different schema source bound to the same glob.lsp.{json|yaml}-language-server.settings.{json|yaml}.schemas."Overlap" means the new glob equals or is a string-identical match of an existing one. Don't try to compute true set-overlap — when in doubt, surface the candidate to the user.
If conflicts exist, use AskUserQuestion per conflicting entry: "Overwrite the existing mapping <existing> with <new>?" Options: overwrite, skip this editor, abort.
For each settings file:
Edit tool to make the smallest possible surgical change. Never rewrite the whole file with Write when settings already exist.references/editor-settings.md.Two common patterns:
{}): extend {} to include the full required nested structure.After editing, re-read the file once to confirm the change parses as valid JSONC (look for matching braces and the new entry being present).
Return a short summary:
redhat.vscode-yaml) must be installed, otherwise yaml.schemas does nothing. The skill does not probe for it../ resolves to the worktree root, ~/ to the home directory. For user-level Zed config, prefer absolute paths or ~/ over ./ — ./ may resolve unpredictably.references/editor-settings.md — Per-OS settings paths, exact settings shapes for every editor+file-type combination, JSONC notes, and the Red Hat YAML extension prerequisite.tools
Use when picking or vetting a keyboard shortcut on macOS. Triggers include "what hotkey should I use for X", "is `<combo>` available", "does this shortcut conflict", "recommend a keybinding for…", "check `<combo>` against my setup", "pick a hotkey for…", or any mention of choosing/binding/changing a shortcut in WezTerm, tmux, Zed, Chrome, Claude Code, or macOS. Determines whether a proposed combo collides with OS-reserved bindings, app defaults, or the user's customizations, and recommends ergonomic alternatives when needed.
development
Detect and remove dead code with knip. Use when the user asks to "run knip", "find unused files", "find unused exports", "find unused dependencies", "clean up dead code", "remove dead code", "set up knip", "configure knip", "knip.json", "knip false positive", "knip CI", or mentions a `knip` config, dependency bloat, bundle bloat from unused imports, or tree-shaking unused exports. Covers the configuration-first workflow, confidence-gated deletion, framework-specific gotchas (Next.js 15+, Tailwind, Storybook, Jest, Bun's test runner and `bun build --compile`), monorepos, CI integration, and performance tuning.
tools
This skill should be used when the user asks to "set up react-scan", "install react-scan", "diagnose React re-renders", "find unnecessary renders", "find unstable props", "automate React render checks with Playwright", "react-scan + playwright", "measure component renders programmatically", "check why a React component is slow", or mentions React rendering issues, slow React interactions, render counts, or component-level perf attribution. Covers install across Next.js/Vite/Remix/script-tag/browser-extension, the lite headless API for CI, and the canonical render-attribution → fix → validate loop driven through Playwright.
documentation
This skill should be used when integrating source material into a knowledge base, including when the user asks to "integrate this document into the knowledge base", "add this transcript to the memory bank", "ingest this document", "update the knowledge base", "analyze a new source document", or "sync current-state docs with this source".