LangBot Core Development
langbot-app/LangBot
Covers developing the LangBot core backend and web UI: dev setup, repo layout, API auth types, adding endpoints, migrations and keeping the MCP server in step.
Forward-ports or backports a single PR or branch onto the currently checked-out Saleor branch, handling GraphQL version markers and migration numbering along the way.
$ npx skills add saleor/saleor --skill port-changes -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install saleor/saleor port-changes --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/saleor/saleor.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/port-changes .claude/skills/port-changes && 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 "port-changes" agent skill from https://github.com/saleor/saleor/tree/main/.claude/skills/port-changes into .claude/skills/port-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "port-changes", 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/saleor/saleor/tree/main/.claude/skills/port-changesType 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 saleor/saleor --skill port-changes -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install saleor/saleor port-changes --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/saleor/saleor.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/port-changes .agents/skills/port-changes && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "port-changes" agent skill from https://github.com/saleor/saleor/tree/main/.claude/skills/port-changes into .agents/skills/port-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "port-changes", 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 saleor/saleor --skill port-changes -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install saleor/saleor port-changes --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/saleor/saleor.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/port-changes .cursor/skills/port-changes && 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 "port-changes" agent skill from https://github.com/saleor/saleor/tree/main/.claude/skills/port-changes into .cursor/skills/port-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "port-changes", 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/saleor/saleor.git --path .claude/skills/port-changes--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 saleor/saleor --skill port-changes -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install saleor/saleor port-changes --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/saleor/saleor.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/port-changes .gemini/skills/port-changes && 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 "port-changes" agent skill from https://github.com/saleor/saleor/tree/main/.claude/skills/port-changes into .gemini/skills/port-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "port-changes", 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 saleor/saleor port-changesInstalls 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 saleor/saleor --skill port-changes -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/saleor/saleor.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/port-changes .github/skills/port-changes && 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 "port-changes" agent skill from https://github.com/saleor/saleor/tree/main/.claude/skills/port-changes into .github/skills/port-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "port-changes", 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 saleor/saleor --skill port-changes -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install saleor/saleor port-changes --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/saleor/saleor.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/port-changes .opencode/skills/port-changes && 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 "port-changes" agent skill from https://github.com/saleor/saleor/tree/main/.claude/skills/port-changes into .opencode/skills/port-changes/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "port-changes", 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.
port-changesForward-ports or backports a single PR or branch onto the currently checked-out Saleor branch, handling GraphQL version markers and migration numbering along the way.
One run ports one change onto the branch already checked out; the skill never switches, creates or renames branches, and a multi-hop port such as 3.22 to 3.23 to main is done as separate runs on separate workspaces. It establishes the source PR or branch and compares it with the destination branch to decide whether the port is UP, moving an older change to a newer branch, or DOWN, moving a newer change to an older one, stating the inferred direction up front so a wrong guess is caught early.
For GraphQL fields it pins the ADDED_IN marker to the version that first shipped the field rather than the branch being edited now, asking the user when the introducing version is ambiguous instead of guessing. For migrations it keeps the file name and number a migration already has on the oldest branch that ships it, resolving a numbering collision on an upward port with a merge migration, and on a downward port it tells the user which name the newer branches need to reuse.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 782a751. 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:
ghgitpythonpytestFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use gh 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.
Saleor Port Changes loads about 969 tokens when it runs. Until then it costs about 65 tokens; SKILL.md has 538 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 saleor/saleor at commit 782a751, republished under its BSD-3-Clause licence (© saleor). 538 words, ~969 tokens.
.claude/skills/port-changes/SKILL.md (or your agent's skills folder).One run = one port, onto the branch already checked out. The current branch is the destination —
never switch, create, or rename branches, and never chain hops. A multi-hop port
(3.22 → 3.23 → main) is separate runs on separate workspaces; if the user asks for more than one
hop, do the one that matches this branch and tell them to ask again on the next branch.
gh pr view <n> --json baseRefName,files, gh pr diff <n>) or a branch.git branch --show-current; main is the next unreleased version — check
# 3.X.0 [Unreleased] at the top of CHANGELOG.md).3.22 → 3.23/main).main → 3.23).The ADDED_IN_* marker names when the field/mutation first became available, not which branch you
are editing. Constants live in saleor/graphql/core/descriptions.py.
ADDED_IN_322 here too, even on main.saleor/graphql/schema.graphql — see saleor-graphql-api-change.Migration numbering diverges per branch, so a straight cherry-pick produces a broken graph.
python manage.py makemigrations --merge) — see existing
*_merge_*.py files for the shape.CREATE INDEX CONCURRENTLY in its own atomic = False
migration, schema and data migrations split. See saleor-migrations.CHANGELOG.md only if this branch is the first release to ship the change.main's [Unreleased] section.main's CHANGELOG is edited only when the change debuts in [Unreleased] and is not backported.pytest --reuse-db <paths>, see pytest-runner).pre-commit clean.Do not push. Commit only if explicitly asked.
© saleor, BSD-3-Clause. 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 .claude/skills/port-changes of saleor/saleor.
Open the folder on GitHubat commit 782a751
Saleor Port Changes 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 |
|---|---|---|---|---|---|---|
| Saleor Port Changes this skillsaleor/saleor | 23k | — | ~969 | Automated safety check: Pass | BSD-3-Clause | |
| LangBot Core Developmentlangbot-app/LangBot | 18k | — | ~1.4k | Automated safety check: Notes | Apache-2.0 | |
| Mastering Python SkillSpillwaveSolutions/agent-brain | 119 | — | ~1.4k | Automated safety check: Notes | MIT | |
| Flowfile Debugging PlaybookEdwardvaneechoud/Flowfile | 385 | — | ~6.3k | Automated safety check: Pass | MIT | |
| Migrate Internal Package into GhostTryGhost/Ghost | 56k | — | ~3.8k | Automated safety check: Pass | MIT | |
| Senior Architect Toolkitmaslennikov-ig/claude-code-orchestrator-kit | 260 | 8 repos | ~1.2k | Automated safety check: Notes | Custom licence |
langbot-app/LangBot
Covers developing the LangBot core backend and web UI: dev setup, repo layout, API auth types, adding endpoints, migrations and keeping the MCP server in step.
SpillwaveSolutions/agent-brain
Modern Python coaching covering language foundations through advanced production patterns.
Edwardvaneechoud/Flowfile
Symptom-to-cause triage playbook for Flowfile (core/worker/kernel/frontend/AI) — covers "no such table" DB cascades (two distinct causes), import-time Alembic migration corruption, silent…
TryGhost/Ghost
Moves a package from another TryGhost repository into Ghost as an internal workspace package while keeping its Git history, with checkpoints for the steps that need an administrator.
maslennikov-ig/claude-code-orchestrator-kit
Comprehensive software architecture skill for designing scalable, maintainable systems using ReactJS, NextJS, NodeJS, Express, React Native, Swift, Kotlin…
kedro-org/kedro
Run Kedro's local lint / format / type-check / tests on changed files (uses the project's pre-commit hooks, ruff, mypy, pytest, lint-imports, detect-secrets, Make targets — in the right venv), or…
saleor/saleor
Benchmarks Django ORM filters in Saleor by generating bulk data, extracting the SQL and running EXPLAIN ANALYZE to check index usage.
saleor/saleor
Commits changes in the Saleor codebase and works through pre-commit hook failures from ruff, mypy, the GraphQL schema check and the migrations check.
saleor/saleor
Generates and splits Django schema migrations for Saleor with manage.py makemigrations, enforcing one new model or one field change per migration file.
saleor/saleor
Rules for writing Django migrations in Saleor that avoid long table locks and stay compatible with zero-downtime rolling deploys.
saleor/saleor
Run pytest tests with automatic virtual environment activation. Use this skill whenever running tests, executing pytest, or when asked to "run tests", "test…
saleor/saleor
Checklist for adding, changing, deprecating or removing Saleor GraphQL fields, mutations, enums and webhook event types so the change passes review first time.
Categories
Forward-ports or backports a single PR or branch onto the currently checked-out Saleor branch, handling GraphQL version markers and migration numbering along the way. 23 to main is done as separate runs on separate workspaces. It establishes the source PR or branch and compares it with the destination branch to decide whether the port is UP, moving an older change to a newer branch, or DOWN, moving a newer change to an older one, stating the inferred direction up front so a wrong guess is caught early.
Saleor Port Changes fits situations like: backporting a merged main-branch change to an earlier release branch; forward-porting a fix from an older Saleor branch onto main; resolving a GraphQL version marker or migration number conflict during a port.
Run `npx skills add saleor/saleor --skill port-changes -a claude-code`. Or copy the skill folder (.claude/skills/port-changes in saleor/saleor) into .claude/skills/port-changes in your project. Claude Code loads it when a task matches its description.
Run `npx skills add saleor/saleor --skill port-changes -a codex`. Or copy the skill folder (.claude/skills/port-changes in saleor/saleor) into .agents/skills/port-changes 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 saleor/saleor --skill port-changes -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/port-changes, .gemini/skills/port-changes, .github/skills/port-changes and .opencode/skills/port-changes in your project.
Going by SKILL.md and its folder, Saleor Port Changes needs the command-line tools its instructions call (gh, git, python and pytest). Our summary lists: git; The gh CLI for reading PR metadata; Django for regenerating migrations.
SKILL.md contains no URLs. Its commands use gh and 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.
Saleor Port Changes is published under the BSD-3-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 969 tokens (SKILL.md is roughly 3.9k 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 Saleor Port Changes: LangBot Core Development (langbot-app/LangBot, 18k stars), Mastering Python Skill (SpillwaveSolutions/agent-brain, 119 stars), Flowfile Debugging Playbook (Edwardvaneechoud/Flowfile, 385 stars) and Migrate Internal Package into Ghost (TryGhost/Ghost, 56k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
saleor (a GitHub organization) maintains it in saleor/saleor, which has 23,428 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 9, 2026.
Source: saleor/saleor on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.