← ClaudeAtlas

raycastlisted

Raycast extension development standards. Use when writing or modifying Raycast extensions. Run lintro first, then Raycast's toolchain (npm run lint) which takes precedence for extension-specific rules.
lgtm-hq/ai-skills · ★ 0 · AI & Automation · score 66
Install: claude install-skill lgtm-hq/ai-skills
# Raycast Extension Development ## Scope Use when **writing or modifying** a Raycast extension. To **open or prepare a PR** to [raycast/extensions](https://github.com/raycast/extensions), use **`pr-raycast`** instead. Overrides global lint/commit defaults in extension directories. ## Official resources - [Prepare for Store](https://developers.raycast.com/basics/prepare-an-extension-for-store) - [Screenshots](https://developers.raycast.com/basics/prepare-an-extension-for-store#screenshots) - [Icon Maker](https://icon.ray.so/) - [Publish](https://developers.raycast.com/basics/publish-an-extension) - [Extension Guidelines](https://manual.raycast.com/extensions-guidelines) ## Linting & Formatting **Order:** lintro first → Raycast last. Raycast wins on conflicts. ```bash # 1. Repo root (when lintro is configured) uv run lintro fmt && uv run lintro chk # 2. extensions/<name>/ — required before commit npm run lint npm run fix-lint && npm run lint # only if lint failed npm run build # distribution build; CI uses npm bun run dev # local dev only ``` Prettier: `printWidth: 120`, `singleQuote: false`. ESLint: `@raycast/eslint-config`. ## Package Management - Local dev: `bun install`, `bun run <script>` - CI/store validation: `npm run lint`, `npm run build` ## Project Structure ```text src/ ├── <command>.tsx ├── components/ ├── hooks/ ├── lib/ └── types/ ``` One command file per `package.json` commands entry. Extract testable l