Ultracite
agustinusnathaniel/nextarter-tailwind
Ultracite is a zero-config linting and formatting preset for JavaScript/TypeScript projects.
Install and configure eslint-plugin-react-render-types in a TypeScript React project.
$ npx skills add HorusGoul/eslint-plugin-react-render-types --skill react-render-types-setup -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install HorusGoul/eslint-plugin-react-render-types react-render-types-setup --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/HorusGoul/eslint-plugin-react-render-types.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/react-render-types-setup .claude/skills/react-render-types-setup && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "react-render-types-setup" agent skill from https://github.com/HorusGoul/eslint-plugin-react-render-types/tree/main/skills/react-render-types-setup into .claude/skills/react-render-types-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-render-types-setup", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/HorusGoul/eslint-plugin-react-render-types/tree/main/skills/react-render-types-setupType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add HorusGoul/eslint-plugin-react-render-types --skill react-render-types-setup -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install HorusGoul/eslint-plugin-react-render-types react-render-types-setup --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HorusGoul/eslint-plugin-react-render-types.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/react-render-types-setup .agents/skills/react-render-types-setup && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "react-render-types-setup" agent skill from https://github.com/HorusGoul/eslint-plugin-react-render-types/tree/main/skills/react-render-types-setup into .agents/skills/react-render-types-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-render-types-setup", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add HorusGoul/eslint-plugin-react-render-types --skill react-render-types-setup -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install HorusGoul/eslint-plugin-react-render-types react-render-types-setup --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HorusGoul/eslint-plugin-react-render-types.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/react-render-types-setup .cursor/skills/react-render-types-setup && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "react-render-types-setup" agent skill from https://github.com/HorusGoul/eslint-plugin-react-render-types/tree/main/skills/react-render-types-setup into .cursor/skills/react-render-types-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-render-types-setup", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/HorusGoul/eslint-plugin-react-render-types.git --path skills/react-render-types-setup--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add HorusGoul/eslint-plugin-react-render-types --skill react-render-types-setup -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install HorusGoul/eslint-plugin-react-render-types react-render-types-setup --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HorusGoul/eslint-plugin-react-render-types.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/react-render-types-setup .gemini/skills/react-render-types-setup && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "react-render-types-setup" agent skill from https://github.com/HorusGoul/eslint-plugin-react-render-types/tree/main/skills/react-render-types-setup into .gemini/skills/react-render-types-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-render-types-setup", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install HorusGoul/eslint-plugin-react-render-types react-render-types-setupInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add HorusGoul/eslint-plugin-react-render-types --skill react-render-types-setup -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/HorusGoul/eslint-plugin-react-render-types.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/react-render-types-setup .github/skills/react-render-types-setup && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "react-render-types-setup" agent skill from https://github.com/HorusGoul/eslint-plugin-react-render-types/tree/main/skills/react-render-types-setup into .github/skills/react-render-types-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-render-types-setup", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add HorusGoul/eslint-plugin-react-render-types --skill react-render-types-setup -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install HorusGoul/eslint-plugin-react-render-types react-render-types-setup --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/HorusGoul/eslint-plugin-react-render-types.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/react-render-types-setup .opencode/skills/react-render-types-setup && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "react-render-types-setup" agent skill from https://github.com/HorusGoul/eslint-plugin-react-render-types/tree/main/skills/react-render-types-setup into .opencode/skills/react-render-types-setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "react-render-types-setup", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
react-render-types-setupInstall and configure eslint-plugin-react-render-types in a TypeScript React project.
React Render Types Setup is an agent skill from HorusGoul/eslint-plugin-react-render-types. Install and configure eslint-plugin-react-render-types in a TypeScript React project. Use when: (1) adding eslint-plugin-react-render-types to a project, (2) configuring ESLint flat config with typed linting for @renders support, (3) troubleshooting typed linting errors or plugin configuration, (4) setting up projectService or tsconfig for the plugin, (5) understanding which rules to enable and what they do, or (6) setting up the IDE language service plugin for @renders features (unused import suppression…
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Linting and formatting and Codebase onboarding. It works with React, TypeScript and ESLint. The repository describes itself as: ESLint plugin that brings Flow's Render Types to TypeScript via JSDoc. Enforce component composition constraints like @renders {MenuItem} at lint time. The licence is MIT.
Read from SKILL.md and the folder at commit eae86d5. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmeslintFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
typescript-eslint.ioFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
React Render Types Setup loads about 1.8k tokens when it runs. Until then it costs about 153 tokens; SKILL.md has 495 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from HorusGoul/eslint-plugin-react-render-types at commit eae86d5, republished under its MIT licence (© HorusGoul). 495 words, ~1,817 tokens.
.claude/skills/react-render-types-setup/SKILL.md (or your agent's skills folder).Install and configure eslint-plugin-react-render-types to enforce component composition constraints at lint time.
@typescript-eslint/parser >= 8tsconfig.jsonnpm install eslint-plugin-react-render-types --save-devTyped linting is required — the plugin uses TypeScript's type checker for cross-file component identity.
// eslint.config.js
import tseslint from "typescript-eslint";
import reactRenderTypes from "eslint-plugin-react-render-types";
export default [
...tseslint.configs.recommended,
reactRenderTypes.configs.recommended,
{
languageOptions: {
parserOptions: {
projectService: true,
tsconfigRootDir: import.meta.dirname,
},
},
},
];// eslint.config.js
import reactRenderTypes from "eslint-plugin-react-render-types";
import tsParser from "@typescript-eslint/parser";
export default [
{
languageOptions: {
parser: tsParser,
parserOptions: {
projectService: true,
ecmaFeatures: { jsx: true },
},
},
plugins: {
"react-render-types": reactRenderTypes,
},
rules: {
"react-render-types/valid-render-return": "error",
"react-render-types/valid-render-prop": "error",
"react-render-types/valid-renders-jsdoc": "warn",
"react-render-types/renders-uses-vars": "error",
},
},
];Two options — pick one:
Option 1: projectService (recommended)
parserOptions: {
projectService: true,
}Automatically infers tsconfig for each file.
Option 2: Explicit project path
parserOptions: {
project: './tsconfig.json',
// Monorepos: project: ['./tsconfig.json', './packages/*/tsconfig.json'],
}| Rule | Default | Purpose |
|---|---|---|
valid-render-return | error | Component return matches its @renders declaration |
valid-render-prop | error | Props/children receive compatible components |
valid-renders-jsdoc | warn | @renders syntax is well-formed (braces, PascalCase) |
renders-uses-vars | error | Prevents no-unused-vars on @renders references |
require-renders-annotation | off | Requires @renders on all components |
require-renders-annotation for specific pathsexport default [
reactRenderTypes.configs.recommended,
{
files: ["src/design-system/**/*.tsx"],
rules: {
"react-render-types/require-renders-annotation": "error",
},
},
];additionalTransparentComponentsSpecify component names to treat as transparent wrappers without @transparent JSDoc. Useful for built-in components like Suspense or third-party components you can't annotate. Note that @transparent annotations are resolved cross-file automatically, so settings are only needed for components without JSDoc.
String entries default to looking through children. Object entries specify which props to look through:
// eslint.config.js
export default [
reactRenderTypes.configs.recommended,
{
languageOptions: {
parserOptions: { projectService: true },
},
settings: {
"react-render-types": {
additionalTransparentComponents: [
"Suspense",
"ErrorBoundary",
{ name: "Flag", props: ["off", "children"] },
],
},
},
},
];For member expressions like <React.Suspense>, use the dotted form: "React.Suspense".
These merge with @transparent JSDoc annotations — both sources are combined. @transparent annotations work cross-file automatically via TypeScript's type checker.
additionalComponentWrappersThe plugin recognizes forwardRef and memo as component wrappers by default. If you use other wrapper functions (e.g., MobX's observer, styled-components' styled), add them so the plugin can detect @renders annotations on wrapped components:
settings: {
"react-render-types": {
additionalComponentWrappers: ["observer", "styled"],
},
},This matches both direct calls (observer(...)) and member expressions (mobx.observer(...)).
The plugin includes a TypeScript Language Service Plugin that enhances the IDE experience for @renders annotations.
Add to tsconfig.json:
{
"compilerOptions": {
"plugins": [
{ "name": "eslint-plugin-react-render-types/lsp" }
]
}
}Then restart the TypeScript server (VS Code: Ctrl+Shift+P → "TypeScript: Restart TS Server").
Features:
@renders annotations are kept visible and won't be auto-removed by "organize imports"Cmd+Click on component names inside @renders annotations navigates to the component definition@renders shows the same type information as hovering the import@renders doesn't resolve to any import or declaration in the file@renders { } braces@renders annotation usages across the project@renders annotations that reference itImportant: This is IDE-only — it runs in the editor's TypeScript language service, not during tsc CLI builds. For CI, use @typescript-eslint/no-unused-vars with the renders-uses-vars rule.
| Error | Fix |
|---|---|
| Plugin throws without type info | Add projectService: true to parserOptions |
| "Cannot read file tsconfig.json" | Check project path is correct relative to ESLint CWD |
| "File is not part of a TypeScript project" | Add file to tsconfig include, or use projectService: { allowDefaultProject: ['*.tsx'] } |
no-unused-vars on @renders imports | Ensure renders-uses-vars rule is enabled (included in recommended) |
IDE shows unused import for @renders reference | Add the language service plugin to tsconfig.json compilerOptions.plugins (see IDE Integration above) |
| Performance issues | Run TIMING=1 eslint . — see typescript-eslint perf docs |
© HorusGoul, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/react-render-types-setup of HorusGoul/eslint-plugin-react-render-types.
Open the folder on GitHubat commit eae86d5
React Render Types Setup next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| React Render Types Setup this skillHorusGoul/eslint-plugin-react-render-types | 111 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Ultraciteagustinusnathaniel/nextarter-tailwind | 125 | 2 repos | ~1.2k | Automated safety check: Pass | MIT | |
| Typescript Tooling MigrationArize-ai/phoenix | 12k | — | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| Ultracitesecondsky/claude-skills | 227 | — | ~6.5k | Automated safety check: Pass | MIT | |
| Eslintmanagedcode/dotnet-skills | 486 | — | ~1.5k | Automated safety check: Pass | MIT | |
| Typescript Rulessoftspark/ai-toolkit | 179 | — | ~2.7k | Automated safety check: Notes | Apache-2.0 |
agustinusnathaniel/nextarter-tailwind
Ultracite is a zero-config linting and formatting preset for JavaScript/TypeScript projects.
Arize-ai/phoenix
Migrate or upgrade TypeScript tooling in the Phoenix monorepo.
secondsky/claude-skills
Ultracite multi-provider linting/formatting (Biome, ESLint, Oxlint).
managedcode/dotnet-skills
Use ESLint in .NET repositories that ship JavaScript, TypeScript, React, or other Node-based frontend assets.
softspark/ai-toolkit
TypeScript/JavaScript coding rules: style, patterns, security, testing.
redis/RedisInsight
Code-quality standards for RedisInsight: TypeScript strictness, naming conventions (camelCase, PascalCase, UPPERSNAKECASE), linting rules, no any without reason, no !important in styles, and…
HorusGoul/eslint-plugin-react-render-types
Composition patterns for building React components with @renders type annotations from eslint-plugin-react-render-types.
Works with
Categories
Install and configure eslint-plugin-react-render-types in a TypeScript React project. React Render Types Setup is an agent skill from HorusGoul/eslint-plugin-react-render-types. Install and configure eslint-plugin-react-render-types in a TypeScript React project.
React Render Types Setup fits situations like: adding eslint-plugin-react-render-types to a project; configuring ESLint flat config with typed linting for @renders support; troubleshooting typed linting errors; plugin configuration.
Run `npx skills add HorusGoul/eslint-plugin-react-render-types --skill react-render-types-setup -a claude-code`. Or copy the skill folder (skills/react-render-types-setup in HorusGoul/eslint-plugin-react-render-types) into .claude/skills/react-render-types-setup in your project. Claude Code loads it when a task matches its description.
Run `npx skills add HorusGoul/eslint-plugin-react-render-types --skill react-render-types-setup -a codex`. Or copy the skill folder (skills/react-render-types-setup in HorusGoul/eslint-plugin-react-render-types) into .agents/skills/react-render-types-setup in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add HorusGoul/eslint-plugin-react-render-types --skill react-render-types-setup -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/react-render-types-setup, .gemini/skills/react-render-types-setup, .github/skills/react-render-types-setup and .opencode/skills/react-render-types-setup in your project.
Going by SKILL.md and its folder, React Render Types Setup needs the command-line tools its instructions call (npm and eslint). Our summary lists: Node.js.
SKILL.md names 1 domain. As links in the text: typescript-eslint.io. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
React Render Types Setup is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with React Render Types Setup: Ultracite (agustinusnathaniel/nextarter-tailwind, 125 stars), Typescript Tooling Migration (Arize-ai/phoenix, 12k stars), Ultracite (secondsky/claude-skills, 227 stars) and Eslint (managedcode/dotnet-skills, 486 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
HorusGoul (a GitHub user) maintains it in HorusGoul/eslint-plugin-react-render-types, which has 111 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on July 18, 2026.
Source: HorusGoul/eslint-plugin-react-render-types on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.