React Native Best Practices
vercel-labs/openreview
A prioritized rule set for React Native and Expo apps covering list performance, animation, navigation, UI patterns, state, rendering, monorepos and configuration.
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…
$ npx skills add gridaco/grida --skill agent-system -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install gridaco/grida agent-system --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/agent-system .claude/skills/agent-system && 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 "agent-system" agent skill from https://github.com/gridaco/grida/tree/main/.agents/skills/agent-system into .claude/skills/agent-system/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-system", 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/agent-systemType 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 agent-system -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install gridaco/grida agent-system --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/agent-system .agents/skills/agent-system && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "agent-system" agent skill from https://github.com/gridaco/grida/tree/main/.agents/skills/agent-system into .agents/skills/agent-system/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-system", 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 agent-system -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install gridaco/grida agent-system --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/agent-system .cursor/skills/agent-system && 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 "agent-system" agent skill from https://github.com/gridaco/grida/tree/main/.agents/skills/agent-system into .cursor/skills/agent-system/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-system", 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/agent-system--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 agent-system -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install gridaco/grida agent-system --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/agent-system .gemini/skills/agent-system && 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 "agent-system" agent skill from https://github.com/gridaco/grida/tree/main/.agents/skills/agent-system into .gemini/skills/agent-system/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-system", 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 agent-systemInstalls 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 agent-system -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/agent-system .github/skills/agent-system && 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 "agent-system" agent skill from https://github.com/gridaco/grida/tree/main/.agents/skills/agent-system into .github/skills/agent-system/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-system", 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 agent-system -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 agent-system --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/agent-system .opencode/skills/agent-system && 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 "agent-system" agent skill from https://github.com/gridaco/grida/tree/main/.agents/skills/agent-system into .opencode/skills/agent-system/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "agent-system", 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.
agent-systemGrida 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…
Agent System is an agent skill from 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, runtime/tool execution, skills discovery, prompts, tiers, sandbox hosts). Use for packages/grida-daemon/, packages/grida-ai-agent/, desktop sidecar protocol changes, agent chat transport, and bugs in agent state or streams. For pure Electron window, preload, menu, deep-link, or CDP work, use desktop.
Its SKILL.md is about 3.4k 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 Mobile. The licence is Apache-2.0.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 165496f. 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:
pnpmsqlite3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.
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.
Agent System loads about 3.4k tokens when it runs. Until then it costs about 131 tokens; SKILL.md has 1,306 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 165496f, republished under its Apache-2.0 licence (© gridaco). 1,306 words, ~3,357 tokens.
.claude/skills/agent-system/SKILL.md (or your agent's skills folder).This skill is for the two packages behind Grida Desktop and future hosts
(issue #927): @grida/daemon — the local host layer (DaemonServer lifecycle,
the loopback HTTP perimeter, files/recents/workspaces, the secrets store,
daemon discovery, the tenant seam) — and @grida/agent — the agent TENANT
mounted on it (sessions, providers, tool execution, prompt composition,
skills, the AI-SDK stream contract). Dependency direction is one-way:
@grida/agent imports @grida/daemon; the daemon is AI-free by contract
(pinned by packages/grida-daemon/src/__boundary__.test.ts).
Use desktop for Electron shell work: BrowserWindow,
menus, preload, native dialogs, file associations, deep links, and CDP
verification.
Adjacent:
sdk-designandsdk-seamfor exported contracts and host seams,securitywhen a change touches a GRIDA-SEC boundary.
packages/grida-daemon/** or packages/grida-ai-agent/**.Skip this skill for BrowserWindow, menu, native dialog, file association,
deep-link, packaging, or preload-only bugs. Use desktop for those.
Host adapter (Desktop today, other hosts later)
- supplies auth material, workspace roots, entitlement hooks, sandbox wrapper
- starts the composed daemon (createAgentDaemon) as sidecar or CLI daemon
|
v
DaemonServer (@grida/daemon/server)
- loopback Hono perimeter (CORS -> Referer -> Basic Auth)
- host capability routes: files, recents, workspaces + secrets store
- the DaemonTenant seam (static typed list, not a plugin registry)
|
v
Agent tenant (@grida/agent/server — createAgentTenant)
- AI route groups: /agent, /events, /sessions, /secrets, /providers,
/images, /video
- sessions SQLite, endpoint configs, runtime + run loop, stream registry
|
v
Runtime-agnostic agent core (@grida/agent)
- protocol DTOs, prompts, tiers, skills, toolset, AI-SDK UI-message streamThe host owns process supervision and native capability exposure. The daemon package owns the perimeter and host capabilities; the agent package owns agent-system semantics.
Two packages, each with intentional entrypoints.
@grida/daemon (the host layer — AI-free by contract):
@grida/daemon: handshake vocabulary (DaemonCapabilities,
DAEMON_PROTOCOL), local-resource DTOs.@grida/daemon/server: Node-only DaemonServer, buildServer, the
DaemonTenant/DaemonServices seam, Daemon discovery, and the tenant
toolkit (WorkspaceRegistry, workspaceFs, SecretsStore, shell runner,
request validation).@grida/daemon/transport: Basic Auth signing, fetch/SSE helpers, and
DaemonTransport.Client (daemon route groups).@grida/daemon/sandbox: the sandbox policy frame
(buildDaemonSandboxPolicy).@grida/agent (the agent tenant — depends on @grida/daemon):
@grida/agent: neutral contracts, provider metadata, run/stream DTOs,
createAgent, prompt composition, toolset, tiers, and session row types.@grida/agent/server: Node-only createAgentTenant +
createAgentDaemon (the composed server hosts run).@grida/agent/transport: AgentTransport.Client extends
DaemonTransport.Client with the tenant routes (sessions, run/stream,
events, secrets, providers, images, video).@grida/agent/sandbox: composed policy (buildAgentDaemonSandboxPolicy
— daemon frame + AI upstream hosts).@grida/agent/fs: storage-agnostic virtual filesystem and AI-SDK file
tools.@grida/agent/fs/backends/opfs: browser OPFS backend.@grida/agent/todos: plan store and todo_write.@grida/agent/tiers: model tier constants.Keep browser-safe imports neutral. Node-only code must stay behind server,
sandbox, or host adapter entrypoints. Never add an AI import to
@grida/daemon — the boundary test fails, and the change belongs in the
tenant. A non-AI host capability (a new file route, a viewer backend)
belongs in @grida/daemon, never here.
Do not create a second desktop-specific agent implementation under
desktop/src/**. Desktop supervises and adapts the composed daemon; it does
not own the agent semantics.
Core tests belong in the owning package first. Perimeter, files, workspaces,
secrets-store, and seam bugs get tests under
packages/grida-daemon/src/**/*.test.ts; session, provider, runtime, tool,
and stream-formatting bugs under packages/grida-ai-agent/src/**/*.test.ts.
Desktop tests should prove Electron imports, starts, and wires the core. They should not duplicate daemon or tenant behavior.
Anti-goals to preserve:
Empty list_files in a workspace-bound agent usually means the workspace
filesystem was not hydrated. For design-agent workspace runs, @grida/agent
must create AgentFs(NodeFsBackend(root)) and call await fs.hydrate()
before tool calls.
An agent that sees SOME files but is missing whole subtrees (a .canvas
deck, or most of the repo) is almost always hydrate-scan truncation, not a
bug in those files. The walk stops at SCAN_MAX_FILES (10k) / SCAN_MAX_DEPTH
and warns [agent-fs] … hydrate scan hit a cap … truncated (sidecar stderr).
The usual cause is a large workspace_root containing heavy dirs that are NOT
in IGNORED_SCAN_DIRS — vendored toolchains / git submodules (e.g. emsdk)
or .claude/worktrees (full repo copies). .gitignore is NOT consulted, so a
submodule slips through. Fixes: scope the workspace to the real project subdir,
or add the offender to IGNORED_SCAN_DIRS in @grida/daemon's
workspaces/scan.ts.
A client-resolved tool call that hangs at input-available (the turn just
ends with no result; the assistant never continues) is the server-authoritative
model view dropping it. The runtime rebuilds the model's input from the
PERSISTED messages (buildModelMessages over listVisibleMessages), NOT the
client's array — and it drops any tool call without a terminal result. For a
workspace-less session (the desktop file-window sidebar, which resolves fs
tools in the renderer over the live editor), the result lives only on the
client's next-request assistant message. persistIncomingTail must persist
those terminal tool-result parts (it does, as of the file-window sidebar fix) or
the call stays input-available forever and the model never sees the answer.
Diagnostic tell: workspace sessions show tool_state=output-available parts in
sessions.db; a no-workspace session stuck at input-available for EVERY tool
call is this class, not a tool bug. (Server-resolved tools are unaffected — the
recorder writes their result straight from the stream.)
Broken desktop agent calls can still be package bugs. Check whether the same
operation fails through AgentTransport.Client or package tests before
debugging Electron.
If a method needs secrets, keep secret reads inside the daemon process (the
store is @grida/daemon's SecretsStore; the /secrets routes are
tenant-registered). The renderer may check presence and set/delete BYOK keys,
but it must not receive raw secret values.
If a change adds host-specific behavior, define the strict host capability contract first. Do not let Node, Electron, or renderer-only imports leak into neutral package entrypoints.
You CAN inspect a real running session — the host persists agent state under
~/.grida/agent/, separate from Electron's userData (the desktop
supervisor passes it to the sidecar as --user-data; see home.join("agent")
in desktop/src/main/agent-sidecar-supervisor.ts):
sessions.db — SQLite (WAL): chat_sessions (incl. workspace_root,
mode, parent_id), chat_messages, chat_parts. Schema in
src/session/schema.ts.workspaces.json — the workspace registry (id → root).auth.json, recent.json.Read it read-only (don't perturb the live WAL). The first thing to check for
"why can't the agent see X" is workspace_root — the agent only sees files
under it (and only up to the hydrate cap, above):
sqlite3 "file:$HOME/.grida/agent/sessions.db?mode=ro" \
"SELECT id, workspace_root, mode FROM chat_sessions WHERE id='ses_…';"The daemon's HTTP perimeter (@grida/daemon) is one layer of GRIDA-SEC-004
when hosted by Desktop:
window.grida.auth_token query carriage is exactly the GET SSE routes the agent
tenant declares via sse_query_token_paths — never widened.If a route can mutate local files, start processes, read secrets, or execute tools, review both the transport contract and the host capability that grants it.
For package changes (run the pair for the package(s) you touched):
pnpm --filter @grida/daemon typecheck && pnpm --filter @grida/daemon test
pnpm --filter @grida/daemon build
pnpm --filter @grida/daemon test:browser # perimeter system harness (Chromium)
pnpm --filter @grida/agent typecheck && pnpm --filter @grida/agent test
pnpm --filter @grida/agent buildA change to @grida/daemon requires rebuilding it before @grida/agent
typechecks (the tenant compiles against the daemon's dist).
For session-store smoke checks against a real SQLite file:
pnpm --filter @grida/agent smoke:sessions:liveIf the change crosses into Desktop sidecar wiring, also run the Electron owner
checks from the desktop skill.
Daemon (packages/grida-daemon/):
packages/grida-daemon/README.mdpackages/grida-daemon/src/daemon-server.tspackages/grida-daemon/src/http/
(server.ts holds DaemonServices/DaemonTenant)packages/grida-daemon/src/transport.tspackages/grida-daemon/src/daemon.tspackages/grida-daemon/src/workspaces.ts,
packages/grida-daemon/src/files/packages/grida-daemon/src/workspaces/scan.tspackages/grida-daemon/src/secrets.ts,
packages/grida-daemon/src/shell/packages/grida-daemon/src/__boundary__.test.tsAgent tenant (packages/grida-ai-agent/):
packages/grida-ai-agent/README.mdpackages/grida-ai-agent/src/server.tspackages/grida-ai-agent/src/http/routes/packages/grida-ai-agent/src/transport.tspackages/grida-ai-agent/src/runtime/packages/grida-ai-agent/src/session/packages/grida-ai-agent/src/fs/~/.grida/agent/
(sessions.db, workspaces.json) — see "Live state on disk" abovepackages/grida-ai-agent/src/providers/packages/grida-ai-agent/src/skills/,
packages/grida-ai-agent/src/agent/, packages/grida-ai-agent/src/tools/docs/wg/ai/agent/tool-design.md; in-code checklist is the TOOL-DESIGN
block in src/tools/index.tsdesktop/src/agent-sidecar.tseditor/lib/agent-chat/© 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/agent-system of gridaco/grida.
Open the folder on GitHubat commit 165496f
Agent System 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 |
|---|---|---|---|---|---|---|
| Agent System this skillgridaco/grida | 2.7k | — | ~3.4k | Automated safety check: Pass | Apache-2.0 | |
| React Native Best Practicesvercel-labs/openreview | 1.7k | 17 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Swiftui Protwostraws/SwiftUI-Agent-Skill | 5k | 2 repos | ~1k | Automated safety check: Pass | MIT | |
| Ip As LogoKartikLabhshetwar/better-shot | 2.4k | 1 repos | ~4.3k | Automated safety check: Pass | MIT | |
| Compose Multiplatform Patternsmonta-app/ocpp-emulator | 179 | 5 repos | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Aso Appstore Screenshotsadamlyttleapps/claude-skill-aso-appstore-screenshots | 1.8k | 1 repos | ~9.6k | Automated safety check: Pass | MIT |
vercel-labs/openreview
A prioritized rule set for React Native and Expo apps covering list performance, animation, navigation, UI patterns, state, rendering, monorepos and configuration.
twostraws/SwiftUI-Agent-Skill
Comprehensively reviews SwiftUI code for best practices on modern APIs, maintainability, and performance.
KartikLabhshetwar/better-shot
Generate extremely simple, cute, personified square character images with rounded heavy forms, two purposeful character colors, one solid background color, and a dominant lower-corner composition.
monta-app/ocpp-emulator
Compose Multiplatform and Jetpack Compose patterns for KMP projects — state management, navigation, theming, performance, and platform-specific UI.
adamlyttleapps/claude-skill-aso-appstore-screenshots
Generate high-converting App Store screenshots by analyzing your app's codebase, discovering core benefits, and creating ASO-optimized screenshot images using Nano Banana Pro.
AFK-surf/OpenBridge
Best practices and example-driven guidance for building SwiftUI views and components.
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
Use BEFORE editing any file in supabase/migrations/ or supabase/schemas/, OR when the user runs a /database subcommand (compact local migration, rls scenarios, align).
Categories
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…. Agent System is an agent skill from 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, runtime/tool execution, skills discovery, prompts, tiers, sandbox hosts).
Agent System fits situations like: packages/grida-daemon/; packages/grida-ai-agent/; desktop sidecar protocol changes; agent chat transport.
Run `npx skills add gridaco/grida --skill agent-system -a claude-code`. Or copy the skill folder (.agents/skills/agent-system in gridaco/grida) into .claude/skills/agent-system in your project. Claude Code loads it when a task matches its description.
Run `npx skills add gridaco/grida --skill agent-system -a codex`. Or copy the skill folder (.agents/skills/agent-system in gridaco/grida) into .agents/skills/agent-system 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 agent-system -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/agent-system, .gemini/skills/agent-system, .github/skills/agent-system and .opencode/skills/agent-system in your project.
Going by SKILL.md and its folder, Agent System needs the command-line tools its instructions call (pnpm and sqlite3).
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.
Agent System 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 3.4k tokens (SKILL.md is roughly 13k 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 Agent System: React Native Best Practices (vercel-labs/openreview, 1.7k stars), Swiftui Pro (twostraws/SwiftUI-Agent-Skill, 5k stars), Ip As Logo (KartikLabhshetwar/better-shot, 2.4k stars) and Compose Multiplatform Patterns (monta-app/ocpp-emulator, 179 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,657 GitHub stars. The repository holds 29 skills in this directory. The repository was last updated on October 6, 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.