Replica Architect
Jakeschincariol/replica-skill
Plans the stack, database schema and API for an app clone, from the recon map replica-recon wrote.
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).
$ npx skills add gridaco/grida --skill database -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install gridaco/grida database --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/database .claude/skills/database && 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 "database" agent skill from https://github.com/gridaco/grida/tree/main/.agents/skills/database into .claude/skills/database/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "database", 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/databaseType 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 database -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install gridaco/grida database --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/database .agents/skills/database && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "database" agent skill from https://github.com/gridaco/grida/tree/main/.agents/skills/database into .agents/skills/database/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "database", 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 database -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install gridaco/grida database --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/database .cursor/skills/database && 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 "database" agent skill from https://github.com/gridaco/grida/tree/main/.agents/skills/database into .cursor/skills/database/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "database", 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/database--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 database -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install gridaco/grida database --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/database .gemini/skills/database && 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 "database" agent skill from https://github.com/gridaco/grida/tree/main/.agents/skills/database into .gemini/skills/database/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "database", 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 databaseInstalls 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 database -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/database .github/skills/database && 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 "database" agent skill from https://github.com/gridaco/grida/tree/main/.agents/skills/database into .github/skills/database/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "database", 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 database -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 database --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/database .opencode/skills/database && 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 "database" agent skill from https://github.com/gridaco/grida/tree/main/.agents/skills/database into .opencode/skills/database/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "database", 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.
databaseUse BEFORE editing any file in supabase/migrations/ or supabase/schemas/, OR when the user runs a /database subcommand (compact local migration, rls scenarios, align).
Database is an agent skill from 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). Encodes the three contracts that protect the Grida database layer: applied migrations are immutable, RLS implementation mirrors tests (never the reverse), schemas/.sql is the human-readable end-state. Companion to supabase/AGENTS.md (RLS, grants, security boundaries).
Its SKILL.md is about 3.2k 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 Agent Workflows, covering Agent instruction files and SQL. It works with Supabase and SQL. The licence is Apache-2.0.
3 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:
supabasegitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use supabase and git, 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.
Database loads about 3.2k tokens when it runs. Until then it costs about 116 tokens; SKILL.md has 1,548 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,548 words, ~3,192 tokens.
.claude/skills/database/SKILL.md (or your agent's skills folder).Three contracts this skill protects:
schemas/*.sql is the human-friendly description of the final shape.supabase/AGENTS.md is the harder rule layer (RLS, grants, security boundaries). For function changes, follow its canonical RPC role contract, including effective privileges, caller tests, and coverage of new overloads. This skill covers the recurring workflow tasks. Read both.
For realistic optional Library data without changing schema history or the canonical base seed, use the opt-library skill. Return here when that work changes migrations, schemas, RLS, or grants.
When asked to "merge migrations" or "consolidate", the temptation is to
collapse every supabase/migrations/* into a single canonical file.
This is wrong if any of those files have already been applied to a
deployed environment. Rewriting an applied migration:
supabase_migrations.schema_migrations
records as already-run.db reset produce a different starting state for new
contributors than what the existing environment holds.Before merging anything, classify each migration:
| Class | Signal | Allowed action |
|---|---|---|
| Applied (production) | User confirms it's in production, OR file has been on main long enough to have shipped. | Read-only. Never edit, never delete. |
| Applied (committed peers) | Tracked on the current branch but originated upstream (already on main / canary). | Read-only. Never edit, never delete. |
| Local-only (this PR) | Newly added on the current working tree / branch, not yet merged to a deployed branch. | Free to merge, rename, delete, rewrite. |
None of these signals replace user confirmation. The only ground truth is the deployed
schema_migrationstable on staging/prod, which the agent cannot read.git logandgit statusindicate likelihood, not certainty. Default to asking.
Old timestamps don't mean "applied" — they can be brand-new files added to fix an ordering bug.
/database compact local migrationMerge multiple local-only migration files into one (or a few) before
the PR ships. Local development naturally accumulates many small
migrations for fast iteration without db reset; production prefers
one coherent migration per feature.
ADD COLUMN
then DROP COLUMN — both vanish in the merged file).ADD … then DROP churn, no superseded function defs.
Idempotent forms (CREATE TABLE IF NOT EXISTS, CREATE OR REPLACE FUNCTION, ADD COLUMN IF NOT EXISTS) make local re-runs safe.supabase db reset locally. Run supabase test db if pgTAP
covers the affected tables.Local-only (mergeable):
20260508120000_grida_billing_account_provisioning_uid.sql
20260508130000_grida_billing_metronome.sql
20260509120000_grida_billing_debit_cache.sql
20260509130000_grida_billing_alerts_multi_tier.sqlApplied (untouchable):
20260506132900_grida_billing.sql
20260507000000_grida_billing_backfill_provision.sql
20260507223000_grida_billing_security_invoker.sqlRight move: write one consolidated 20260508130000_grida_billing_metronome.sql
(latest timestamp; v2 projector from alerts_multi_tier replaces v1
from metronome.sql), delete the other three local files, leave the
applied trio untouched. Wrong move: cat all seven into one.
/database rls scenariosWrite or review RLS test scenarios for a tenant-scoped surface. Output is pgTAP coverage proving who can read/write what across personas. Not a description of the current implementation.
/database rls scenarios <surface>.Implementation mirrors the test, not the other way around.
In RLS, the user journey is the spec. If a test says "a member of
org A cannot read org B's project rows", that is a fact about how
the product must behave. The implementation's job is to satisfy that
fact. If the implementation currently leaks org B's rows, that's a
security bug — fix the implementation, do not weaken the test.
Resist any pressure (including from yourself, mid-implementation):
SET LOCAL ROLE service_role to make a test pass.is(count, 0) with ok(count >= 0).A test failing because the policy is wrong is the test doing its job. A test failing because the test is wrong (mis-seeded fixture, typo'd UUID) gets fixed mechanically — never relax the assertion.
You are the database/security expert helping the user lock down the spec:
auth.uid() returns NULL. A policy reading
auth.uid() = owner_id becomes NULL = … (always false-ish);
WITH CHECK must fail closed independently.RETURNING clause leaks — an INSERT … RETURNING * or
UPDATE … RETURNING * may emit columns from rows a peer SELECT
policy hides. Test that the writer doesn't leak fields they
can't read back via SELECT.archived_at-set rows — visibility differs.authenticated when
organization_id ∈ user's owned orgs". Same fact, SQL-shaped.
If the user's words and the SQL diverge, stop and ask.supabase/seed.sql), not ad-hoc UUIDs.One pgTAP file per surface (or per logical persona group when large).
Skeleton + fixture/session conventions live in supabase/AGENTS.md
§ RLS testing — point readers there rather than re-list.
service_role to read tenant rows — bypasses RLS,
proves nothing./database alignBring supabase/schemas/*.sql back in sync with the migrated state.
Schemas are the human-friendly source of truth for the final shape
of each domain schema. Migrations are the executable history; schemas
are the readable end-state.
grida_* schema.schemas/*.sql and migrations/* visibly disagree./database align.schemas/*.sql is for (and isn't)| Concern | schemas/*.sql | migrations/*.sql |
|---|---|---|
| What runs on the DB | No | Yes — supabase applies these. |
| Source of truth for execution | No | Yes. |
| Source of truth for humans | Yes — read first. | No — chronological, hard to reason about. |
| Updated | Manually, periodically. | Via supabase migration new. |
| Drift | Best-effort, may lag. | Never — runs against real DBs. |
align is the periodic reset that keeps the human-readable layer
trustworthy. See supabase/AGENTS.md for the upstream policy.
grida_billing). Don't align
everything in one pass — too easy to miss a divergence.pg_dump would give you the truth too,
but in the wrong shape (alphabetised, comments stripped, catalog
noise) and is harder to diff against a hand-organised schema file
than just reading the migrations.schemas/<name>.sql. Common deltas:CREATE OR REPLACE, not updated.COMMENT ON COLUMN; schemas often
forget to mirror.schemas/<name>.sql to the migrated end-state. Keep
the file's existing organisation (sections by table, header
comments). Group grants and policies under the table they belong
to — not by chronology.compact flow above
for unshipped local-only ones).supabase db reset afterwards as a smoke check.schemas/*.sql instead of a migration to "fix a column" —
the schema file is reference, not executable. The DB won't see it.© 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/database of gridaco/grida.
Open the folder on GitHubat commit 165496f
Database 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 |
|---|---|---|---|---|---|---|
| Database this skillgridaco/grida | 2.7k | — | ~3.2k | Automated safety check: Pass | Apache-2.0 | |
| Replica ArchitectJakeschincariol/replica-skill | 734 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Srtd CLIt1mmen/srtd | 105 | — | ~360 | Automated safety check: Pass | MIT | |
| Expert DatabaseReJeCtAll/ExpertTeam-Codex | 113 | — | ~692 | Automated safety check: Pass | MIT | |
| DB Migratealexeykrol/claude-code-starter | 194 | — | ~405 | Automated safety check: Notes | None | |
| Stash Postgrescipherstash/stack | 157 | — | ~6.3k | Automated safety check: Pass | MIT |
Jakeschincariol/replica-skill
Plans the stack, database schema and API for an app clone, from the recon map replica-recon wrote.
t1mmen/srtd
This skill should be used when the user mentions "srtd", "sql templates", "migrations-templates", "live reload sql", "supabase functions", when working with files in supabase/migrations-templates/…
ReJeCtAll/ExpertTeam-Codex
数据库优化专家入口。用于 Codex CLI 的 $expert-database 调用. An agent skill from ReJeCtAll/ExpertTeam-Codex.
alexeykrol/claude-code-starter
Миграция схемы базы данных: SQLite → PostgreSQL/Supabase. An agent skill from alexeykrol/claude-code-starter.
cipherstash/stack
Query EQL v3 encrypted columns from hand-written Postgres SQL over pg (node-postgres) or postgres (postgres-js) — no ORM.
cwinvestments/memstack
A skill your agent uses when creating or altering database tables in Supabase or PostgreSQL projects.
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…
Categories
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). Database is an agent skill from 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).
Database fits situations like: runs a /database subcommand (compact local migration; tasks that involve Agent instruction files; tasks that involve SQL.
Run `npx skills add gridaco/grida --skill database -a claude-code`. Or copy the skill folder (.agents/skills/database in gridaco/grida) into .claude/skills/database in your project. Claude Code loads it when a task matches its description.
Run `npx skills add gridaco/grida --skill database -a codex`. Or copy the skill folder (.agents/skills/database in gridaco/grida) into .agents/skills/database 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 database -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/database, .gemini/skills/database, .github/skills/database and .opencode/skills/database in your project.
Going by SKILL.md and its folder, Database needs the command-line tools its instructions call (supabase and git).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. 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.
Database 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.2k 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 Database: Replica Architect (Jakeschincariol/replica-skill, 734 stars), Srtd CLI (t1mmen/srtd, 105 stars), Expert Database (ReJeCtAll/ExpertTeam-Codex, 113 stars) and DB Migrate (alexeykrol/claude-code-starter, 194 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.