Schema Exploration
timescale/pg-aiguide
Explore an existing PostgreSQL database before answering questions about its data or writing SQL.
Backport one or more merged citusdata/citus main commits/PRs onto the active release branches.
$ npx skills add citusdata/citus --skill citus-backport -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install citusdata/citus citus-backport --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/citusdata/citus.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/citus-backport .claude/skills/citus-backport && 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 "citus-backport" agent skill from https://github.com/citusdata/citus/tree/main/.github/skills/citus-backport into .claude/skills/citus-backport/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "citus-backport", 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/citusdata/citus/tree/main/.github/skills/citus-backportType 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 citusdata/citus --skill citus-backport -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install citusdata/citus citus-backport --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/citusdata/citus.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/citus-backport .agents/skills/citus-backport && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "citus-backport" agent skill from https://github.com/citusdata/citus/tree/main/.github/skills/citus-backport into .agents/skills/citus-backport/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "citus-backport", 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 citusdata/citus --skill citus-backport -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install citusdata/citus citus-backport --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/citusdata/citus.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/citus-backport .cursor/skills/citus-backport && 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 "citus-backport" agent skill from https://github.com/citusdata/citus/tree/main/.github/skills/citus-backport into .cursor/skills/citus-backport/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "citus-backport", 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/citusdata/citus.git --path .github/skills/citus-backport--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 citusdata/citus --skill citus-backport -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install citusdata/citus citus-backport --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/citusdata/citus.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/citus-backport .gemini/skills/citus-backport && 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 "citus-backport" agent skill from https://github.com/citusdata/citus/tree/main/.github/skills/citus-backport into .gemini/skills/citus-backport/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "citus-backport", 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 citusdata/citus citus-backportInstalls 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 citusdata/citus --skill citus-backport -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/citusdata/citus.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/citus-backport .github/skills/citus-backport && 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 "citus-backport" agent skill from https://github.com/citusdata/citus/tree/main/.github/skills/citus-backport into .github/skills/citus-backport/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "citus-backport", 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 citusdata/citus --skill citus-backport -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install citusdata/citus citus-backport --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/citusdata/citus.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/citus-backport .opencode/skills/citus-backport && 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 "citus-backport" agent skill from https://github.com/citusdata/citus/tree/main/.github/skills/citus-backport into .opencode/skills/citus-backport/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "citus-backport", 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.
citus-backportBackport one or more merged citusdata/citus main commits/PRs onto the active release branches.
Citus Backport is an agent skill from citusdata/citus. Backport one or more merged citusdata/citus main commits/PRs onto the active release branches. Covers the release model, cherry-picking, remapping SQL schema changes to each branch's defaultversion, the SQL upgrade/downgrade ladder for Major-Version-Upgrade safety, running regression tests, one clean commit per PR per branch, and triaging release-branch CI (pre-existing baseline reds vs reds the backport introduced). USE WHEN asked to backport / port / cherry-pick a change to release-13.2 / release-14.0 (or the…
Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/ci-triage.md`, `references/manual-upgrade-testing.md` and `references/sql-schema-backport.md`).
It sits in Databases, covering SQL, Code migrations and Pull requests. It works with SQL and PostgreSQL. The repository describes itself as: Distributed PostgreSQL as an extension. The licence is AGPL-3.0.
11 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit d41eec3. 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:
makegitpythonghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and gh, 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.
Citus Backport loads about 3.2k tokens when it runs, and up to ~14k if it reads all its reference files. Until then it costs about 259 tokens; SKILL.md has 1,568 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 citusdata/citus at commit d41eec3, republished under its AGPL-3.0 licence (© citusdata). 1,568 words, ~3,193 tokens.
.claude/skills/citus-backport/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.This skill encodes how to backport merged main commit(s) to Citus release branches: the release
model, the SQL-schema remap recipe, the PG-version compatibility traps, and how to triage the
release branches' baseline-red CI. Follow the repository's normal build/test/style conventions
(see CONTRIBUTING.md and src/test/regress/README.md) on top of the guidance here.
All live next to this file under references/:
references/sql-schema-backport.md — the hard case: a commit that changes the SQL schema
(new UDF / column / migration). Exact file-by-file remap recipe, the multi_extension.out and
upgrade_list_citus_objects.out edits, the install-downgrades trap, and the cross-branch
ladder-propagation step (copy the introduction paths UP to every higher major for MVU safety).references/ci-triage.md — reading backport CI: the PG-version compile traps (main drops
old PGs the release branch keeps), the N-1 mixed-version jobs, and the step-by-step proof that a
red job is pre-existing baseline noise vs a real regression you introduced.references/manual-upgrade-testing.md — the manual MVU proof: stand up a multi-node cluster
at an OLD Citus major, then ALTER EXTENSION citus UPDATE across the backport branches (13.x
tail → cross-major → 14.x tail), capturing citus_version() + pg_extension.extversion per node
per hop. The make install-all / single-shared-PG requirement.A C-only backport usually needs only this hub + ci-triage.md. A SQL-schema backport needs all
four (add manual-upgrade-testing.md as the final proof once CI is green).
release-13.2 serves the WHOLE 13.x line; release-14.0 serves ALL of
14.x; main is the next major. Citus no longer cuts a branch per minor (this changed ~2026-05).release-13.2 currently ships 13.4; release-14.0 ships
14.2. NEVER infer the target minor from the branch name — read default_version from
src/backend/distributed/citus.control on each target branch. That value drives every SQL edit.references/ci-triage.md for the jobs.+-prefixed branch in git branch is checked out in a sibling worktree.git checkout -b bp-<pr>-<release-branch> origin/<release-branch>
and git cherry-pick -x <sha> (the -x records (cherry picked from commit <sha>)).references/ci-triage.md §PG-version) — the #1 non-obvious C-backport failure.multi_extension.out conflict → remap by hand per
references/sql-schema-backport.md. Do NOT just accept main's next-major (e.g. 15.0-1) files.make -sj"$(nproc 2>/dev/null || sysctl -n hw.logicalcpu)" install. For any SQL change ALSO install
downgrades (see references/sql-schema-backport.md — plain make install skips them and
multi_extension will fail with cascading "no update path" errors otherwise; use
make install-all).multi_extension
for SQL changes. From src/test/regress: python citus_tests/run_test.py <test> (it manages its
own cluster). Regenerate any expected/*.out with the runner — never hand-edit .out (column
widths / row counts are dynamic).DESCRIPTION:
first line iff the change is user-facing (this feeds the changelog). git checkout -- configure
if a build regenerated it (configure is never part of a backport). Multiple PRs to the SAME
target → ONE branch per target, not per PR (unsquashed: one commit per PR, in main's
chronological merge order; SQL-ladder commits sit right after their PR's cherry-pick). Name it
bp-release-<major> (e.g. bp-release-13.2). Build cleanly from the SQL-heavy PR's branch, then
cherry-pick the C-only PRs on top. Cherry-pick an already-adapted backport commit WITHOUT
-x — its message already carries the single (cherry picked from <orig>) trailer; -x would
double it.bp-* branches don't match CI's push trigger (main/release-* only),
so kick CI with gh workflow run "Build & Test" --repo <your-fork>/citus --ref <branch>. Open
PRs only when the change owner asks.references/ci-triage.md. Separate baseline-red noise (N-1 /
flaky / coverage) from genuinely-new failures you introduced. The two you WILL hit on a
release branch: (a) a version-pinned .out that prints a shared helper's changed signature, and
(b) a PG-version planner divergence on the OLDER PG the branch keeps but main dropped (PREFER a
PG-guarded file like pg16.sql over a <test>_N.out alt file). A third you must NOT chase green
by mangling the test: a new GUC/UDF whose test runs under N-1 shows a NEW red in the (non-blocking)
N-1 mixed-version jobs — the old lib lacks it and falls back, which IS the N-1 contract. The
clean fix is to move that test line into the multi_1_create_citus_schedule placeholder section
(schedule mechanics + N-1 label rule in the hard-rules below and ci-triage.md §"NEW N-1 red").
Fix-commit rule (all fixes): pre-review → amend + git push --force-with-lease; post-review →
add ONE new fix commit, never rewrite reviewed SHAs (replace a bad remote fix commit with
--force-with-lease=<branch>:<badsha>). Report evidence; don't declare done on red.references/sql-schema-backport.md §Step 5.multi_extension.sql ladder-test coverage for every new step. The test only walks the
main upgrade path, so a step OFF that path (a 13.x/14.x maintenance-tail detour) is never
exercised unless you add a detour block matching the on-walk shape (and the file's existing
comment style — no editorial parentheticals): a round-trip no-op + a snapshot at the detour,
then retarget the existing next round-trip to bounce <detour> ↔ <next> rather than adding a
separate "return" block. That shifts exactly one downstream snapshot; everything after stays
byte-identical. A branch's own top/default_version is already covered by its snapshot block.
Never hand-edit .out; prefer append-only on reviewed branches. Full pattern + the diff -w
header gotcha in references/sql-schema-backport.md.ALTER EXTENSION citus UPDATE on EVERY node across
the backport branches (13.x tail → cross-major → 14.x tail → cross-major → main tail), capturing
citus_version() and pg_extension.extversion per node per hop, plus a functional check that the
backported object survived. Build all Citus versions into ONE shared PG with make install-all
(plain install omits the downgrade + bridge scripts the cross-major route needs → "no update path").
Full recipe and the single-PG requirement in references/manual-upgrade-testing.md.make reindent in a build environment whose citus_indent version differs from the
branch's — a version-skewed formatter reformats 100+ unrelated files and errors out. Trust
cherry-picked formatting; CI check-style verifies it. If you ran it by accident:
git reset --hard HEAD.make install does NOT install downgrade scripts. For any SQL change run BOTH
make -C src/backend/distributed install-downgrades and make -C src/backend/columnar install-downgrades (columnar is a separate extension). make install-all does both.Build for PGNN jobs; scan cherry-picked C for
struct fields / APIs newer than the branch's OLDEST PG and add #if PG_VERSION_NUM >= PG_VERSION_NN.citusdata/citus base-branch run. Details + exact commands in references/ci-triage.md.references/sql-schema-backport.md §Step 5.regression.diffs excerpts, the
upstream-baseline comparison), not a bare "CI is green/red".main never saw (release-13.2
still builds PG15; the branch ships version-pinned expected/*.out). Two patterns: (1) a shared
helper whose SIGNATURE you changed prints in a pinned .out (normalize.sed masks the line
NUMBER, not the signature) — do NOT "fix" it by reverting the helper if the backported TEST needs
it (it's required, not over-reach); (2) a PG15-vs-PG16+ EXPLAIN/planner diff → PREFER a PG-guarded
file (pg16.sql \q-skips <PG16 and already lives in the N-1-excluded schedule) over a
<test>_0.out alt. Full recipe: references/ci-triage.md §Genuinely-new failures.multi_1_create_citus_schedule placeholder section (N-1 make_targets
omit check-multi-1-create-citus). N-1 version label = the branch's CURRENT N-1 = the previous
minor (13.3-1 on release-13.2, 14.1-1 on release-14.0), read from the live citus_version: /
citus_libdir: pin in build_and_test.yml — not the (possibly-stale) number in the neighbor comment.
Details: references/ci-triage.md §"NEW N-1 red".© citusdata, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in .github/skills/citus-backport of citusdata/citus.
Open the folder on GitHubat commit d41eec3
Citus Backport 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 |
|---|---|---|---|---|---|---|
| Citus Backport this skillcitusdata/citus | 13k | — | ~3.2k | Automated safety check: Pass | AGPL-3.0 | |
| Schema Explorationtimescale/pg-aiguide | 1.9k | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Mz PR ReviewMaterializeInc/materialize | 6.4k | — | ~1.6k | Automated safety check: Notes | Custom licence | |
| Diesel Guardayarotsky/diesel-guard | 121 | — | ~3.1k | Automated safety check: Pass | MIT | |
| Database Scoutzebbern/claude-code-guide | 4.7k | — | ~1.1k | Automated safety check: Pass | MIT | |
| SQL Code Reviewtotvs/engpro-advpl-tlpp-skills | 143 | — | ~3.5k | Automated safety check: Pass | MIT |
timescale/pg-aiguide
Explore an existing PostgreSQL database before answering questions about its data or writing SQL.
MaterializeInc/materialize
Local code review of current branch vs Materialize standards.
ayarotsky/diesel-guard
Lints Diesel and SQLx Postgres migrations for unsafe schema changes that lock tables or cause downtime, and authors custom Rhai checks.
zebbern/claude-code-guide
Explore SQLite and PostgreSQL databases: list tables, inspect schemas (columns/types/constraints), preview data, generate Mermaid ER diagrams, and run safe read-only queries.
totvs/engpro-advpl-tlpp-skills
Universal SQL code review assistant that performs comprehensive security, maintainability, and code quality analysis across SQL databases (PostgreSQL, SQL Server, Oracle).
github/awesome-copilot
Universal SQL code review assistant that performs comprehensive security, maintainability, and code quality analysis across all SQL databases (MySQL, PostgreSQL, SQL Server, Oracle).
citusdata/citus
Fix a failing citusdata/citus check-style job by running make reindent with the exact uncrustify/citusindent versions the currently checked-out branch pins (read from its own STYLEGUIDE.md and its…
citusdata/citus
Take a list of citusdata/citus PR links or numbers and merge each one independently: sync it with its base branch, fix a red check-style job with make reindent, retry other red checks a bounded…
Works with
Categories
Backport one or more merged citusdata/citus main commits/PRs onto the active release branches. Citus Backport is an agent skill from citusdata/citus. Backport one or more merged citusdata/citus main commits/PRs onto the active release branches.
Citus Backport fits situations like: asked to backport / port / cherry-pick a change to release-13.2 / release-14.0 (or the newest two majors); A backport hits a SQL migration / udf / multiextension conflict; A trivial C-only backport fails to compile on an older PG the release branch still supports (e.g; non-Citus repos.
Run `npx skills add citusdata/citus --skill citus-backport -a claude-code`. Or copy the skill folder (.github/skills/citus-backport in citusdata/citus) into .claude/skills/citus-backport in your project. Claude Code loads it when a task matches its description.
Run `npx skills add citusdata/citus --skill citus-backport -a codex`. Or copy the skill folder (.github/skills/citus-backport in citusdata/citus) into .agents/skills/citus-backport 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 citusdata/citus --skill citus-backport -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/citus-backport, .gemini/skills/citus-backport, .github/skills/citus-backport and .opencode/skills/citus-backport in your project.
Going by SKILL.md and its folder, Citus Backport needs the command-line tools its instructions call (make, git, python and gh). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use git and gh, 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.
Citus Backport is published under the AGPL-3.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. Its references folder adds about 11k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Citus Backport: Schema Exploration (timescale/pg-aiguide, 1.9k stars), Mz PR Review (MaterializeInc/materialize, 6.4k stars), Diesel Guard (ayarotsky/diesel-guard, 121 stars) and Database Scout (zebbern/claude-code-guide, 4.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
citusdata (a GitHub organization) maintains it in citusdata/citus, which has 12,803 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 8, 2026.
Source: citusdata/citus on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.