Nx Generate
nomcopter/react-mosaic
Generate code using nx generators. An agent skill from nomcopter/react-mosaic.
React-specific code shape in the Grida editor. An agent skill from gridaco/grida.
$ npx skills add gridaco/grida --skill code-react -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install gridaco/grida code-react --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/gridaco/grida.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/code-react .claude/skills/code-react && 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 "code-react" agent skill from https://github.com/gridaco/grida/tree/main/.agents/skills/code-react into .claude/skills/code-react/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-react", 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/gridaco/grida/tree/main/.agents/skills/code-reactType 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 gridaco/grida --skill code-react -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install gridaco/grida code-react --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gridaco/grida.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/code-react .agents/skills/code-react && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "code-react" agent skill from https://github.com/gridaco/grida/tree/main/.agents/skills/code-react into .agents/skills/code-react/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-react", 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 gridaco/grida --skill code-react -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install gridaco/grida code-react --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gridaco/grida.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/code-react .cursor/skills/code-react && 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 "code-react" agent skill from https://github.com/gridaco/grida/tree/main/.agents/skills/code-react into .cursor/skills/code-react/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-react", 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/gridaco/grida.git --path .agents/skills/code-react--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 gridaco/grida --skill code-react -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install gridaco/grida code-react --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gridaco/grida.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/code-react .gemini/skills/code-react && 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 "code-react" agent skill from https://github.com/gridaco/grida/tree/main/.agents/skills/code-react into .gemini/skills/code-react/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-react", 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 gridaco/grida code-reactInstalls 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 gridaco/grida --skill code-react -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/gridaco/grida.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/code-react .github/skills/code-react && 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 "code-react" agent skill from https://github.com/gridaco/grida/tree/main/.agents/skills/code-react into .github/skills/code-react/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-react", 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 gridaco/grida --skill code-react -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install gridaco/grida code-react --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gridaco/grida.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/code-react .opencode/skills/code-react && 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 "code-react" agent skill from https://github.com/gridaco/grida/tree/main/.agents/skills/code-react into .opencode/skills/code-react/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "code-react", 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.
code-reactReact-specific code shape in the Grida editor. An agent skill from gridaco/grida.
Code React is an agent skill from gridaco/grida. React-specific code shape in the Grida editor. Hooks cannot be tested or benchmarked and silently break tuned UX under layered composition, so they are barred from the engine and main system — load-bearing logic lives in classes and namespaces, hooks only as thin edge wires. data-testid follows component-root discipline: one per significant component, not scattered. Use when authoring React in editor/grida-canvas-react/, editor/components/, editor/scaffolds/, or editor/app/.
Its SKILL.md is about 1.6k 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 Project scaffolding. It works with React. The licence is Apache-2.0.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit fe26b13. 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.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From 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.
Code React loads about 1.6k tokens when it runs. Until then it costs about 125 tokens; SKILL.md has 866 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 gridaco/grida at commit fe26b13, republished under its Apache-2.0 licence (© gridaco). 866 words, ~1,552 tokens.
.claude/skills/code-react/SKILL.md (or your agent's skills folder).React in this repo is a thin layer over a framework-agnostic engine. These conventions protect that thinness — where logic is allowed to live, and where test landmarks land in the DOM — so the React layer stays replaceable and easy to read.
React hooks must not appear in the main system — the canvas engine,
reducers, document model, font manager, presentation engine, command
handlers, anything that represents domain state or compute logic.
Hooks live only at the React edge: small use-* adapters that
bridge engine state into components, plus component-local UI state.
The reason is that hooks cannot be tested, cannot be benchmarked, and cannot be reasoned about by inspection once their composition crosses more than a couple of layers. In a complex editor — where one render is a chain of conditional effects, memoized derivations, and re-entrant subscriptions — the execution order and re-render layering are the behavior. A subtle ordering change, a missed dep, a state read one tick later, and the user-visible UX shifts. Features you tuned will get silently dropped — no failing test, no benchmark regression, no noisy error to alert you. By the time someone notices, the regression is weeks deep and no bisect helps, because nothing was ever measurable.
The escape is not "test your hooks better," not "be more careful
with deps," not "add a renderHook suite." It is don't use
hooks for anything load-bearing in the first place. The rule is
prevention, not discipline — discipline fails at the third layer
of composition; prevention does not. Logic that matters lives in
a class or namespace where the execution order is explicit, the
contract is testable, and the hot path is benchmarkable. The hook
is reduced to a wire — short enough that you can verify it by
sight, and small enough that not testing it is honest.
A hook is acceptable in exactly two situations:
useSyncExternalStore, useContext, or a useEffect
lifecycle, with no branch and no derivation. The test would
be tautological.If a hook fails both — branching logic, derivations, coordination across effects, anything you would want to benchmark or assert on — extract the logic out, test and benchmark it there, and reduce the hook to a three-line call site.
A pair of examples pins the boundary:
useState and hooks for component-local UI state —
hover, focus, open/closed, the in-flight value of an input
about to be committed. The spec is the code; not testing it
is honest.The split is structural, not lint-enforced. The engine package
must not import React. The React bindings consume the engine
through its public surface — never the reverse — so the engine
stays replaceable and the bindings stay verifiable by sight. A
use-* that wires useSyncExternalStore, useContext, or a
disposal useEffect to the engine is the entire allowed shape;
anything more is engine logic in the wrong package.
data-testid per component rootTest IDs are landmarks, not scattered selectors. A significant
component — a panel, a dialog, a workflow root, a complex isolated
module — gets one data-testid on its outermost element. Internal
children are located via semantic queries (findByRole, text)
rooted at that landmark.
Apply to: panels, dialogs, popovers, major layout regions, complex
modules. Skip for: Button, Input, Icon, primitive layout
wrappers (Box, Flex, Stack), and any element a test can
reach with a role or text query from the landmark above it.
Values are kebab-case, factful, and unique:
sidebar-right-inspect-node-properties,
popover-color-picker-rgba32f, dialog-export-settings. Avoid
tying values to file names, UI copy strings, or styling concerns —
those churn.
Why: a data-testid is a contract between the DOM and the
component that rendered it. If every span has one, the contract
is meaningless and tests start coupling to implementation details.
One per landmark keeps the contract small and stable.
The full reference — with the apply/skip table and worked
examples — lives in docs/contributing/react.md. The rule above
is the load-bearing part.
data-testid goes on the component root, not its children.
Tests find the landmark, then use semantic queries.data-testid values, factful and unique; never
tied to file names, copy, or styling.See also code-ts for the TypeScript code
shape this builds on, and docs/contributing/react.md for the
canonical UI test ID reference.
© gridaco, Apache-2.0. 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 .agents/skills/code-react of gridaco/grida.
Open the folder on GitHubat commit fe26b13
Code React 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 |
|---|---|---|---|---|---|---|
| Code React this skillgridaco/grida | 2.7k | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Nx Generatenomcopter/react-mosaic | 4.8k | 7 repos | ~1.9k | Automated safety check: Pass | Custom licence | |
| Nextjs App Architecturejakubwarkusz/themes | 123 | 1 repos | ~2.5k | Automated safety check: Pass | MIT | |
| Add Integration Eventfullstackhero/dotnet-starter-kit | 6.8k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Better FullstackMarve10s/Better-Fullstack | 754 | — | ~1.5k | Automated safety check: Pass | MIT | |
| Pixijs Createpixijs/pixijs-skills | 348 | — | ~3.1k | Automated safety check: Pass | MIT |
nomcopter/react-mosaic
Generate code using nx generators. An agent skill from nomcopter/react-mosaic.
jakubwarkusz/themes
Build or audit Next.js 16 App Router apps using a next-beats-style React Server Components architecture.
fullstackhero/dotnet-starter-kit
Publish a cross-module integration event via the Outbox and handle it idempotently in another module.
Marve10s/Better-Fullstack
Scaffold, plan, or extend Better Fullstack projects with the generator, CLI, or MCP server.
pixijs/pixijs-skills
A skill your agent uses when scaffolding a new PixiJS v8 project with the create-pixi CLI or adding PixiJS to an existing project.
datopian/portaljs
Wire a scaffolded PortalJS portal to a CKAN backend over its API.
gridaco/grida
Grida Desktop Electron shell and release-impact work: BrowserWindow, preload, window.grida, menus, protocol/deep links, file associations, Forge, path-scoped bridge security, Electron-only UI bugs…
gridaco/grida
Guides work on the Figma I/O package (@grida/io-figma, packages/grida-canvas-io-figma/).
gridaco/grida
Set up, download, verify, and seed the optional Grida Library developer corpus into local Supabase.
gridaco/grida
Query images with a local Ollama vision model without loading the image into the main agent context.
gridaco/grida
Research, compare, and update shared AI model JSON for TypeScript, web, and Rust consumers.
gridaco/grida
Grida AI agent system work: @grida/daemon (DaemonServer, loopback HTTP perimeter, files/workspaces, secrets store, daemon discovery) and @grida/agent (the agent tenant: sessions, providers/BYOK…
Works with
Categories
React-specific code shape in the Grida editor. An agent skill from gridaco/grida. Code React is an agent skill from gridaco/grida. React-specific code shape in the Grida editor.
Code React fits situations like: authoring React in editor/grida-canvas-react/; editor/components/; editor/scaffolds/.
Run `npx skills add gridaco/grida --skill code-react -a claude-code`. Or copy the skill folder (.agents/skills/code-react in gridaco/grida) into .claude/skills/code-react in your project. Claude Code loads it when a task matches its description.
Run `npx skills add gridaco/grida --skill code-react -a codex`. Or copy the skill folder (.agents/skills/code-react in gridaco/grida) into .agents/skills/code-react 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 gridaco/grida --skill code-react -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/code-react, .gemini/skills/code-react, .github/skills/code-react and .opencode/skills/code-react in your project.
SKILL.md names no scripts, command-line tools or credentials: Code React is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Code React is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.6k tokens (SKILL.md is roughly 6.2k 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 Code React: Nx Generate (nomcopter/react-mosaic, 4.8k stars), Nextjs App Architecture (jakubwarkusz/themes, 123 stars), Add Integration Event (fullstackhero/dotnet-starter-kit, 6.8k stars) and Better Fullstack (Marve10s/Better-Fullstack, 754 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
gridaco (a GitHub organization) maintains it in gridaco/grida, which has 2,659 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on October 8, 2026.
Source: gridaco/grida on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.