Code Review Checklist
shareAI-lab/learn-claude-code
Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.
[ENTRY POINT] Load this skill first when the user asks to migrate a non-Polylith Python project to Polylith (e.g.
$ npx skills add DavidVujic/python-polylith --skill polylith-migrate-orchestrator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install DavidVujic/python-polylith polylith-migrate-orchestrator --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/DavidVujic/python-polylith.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/polylith/migrate-project/polylith-migrate-orchestrator .claude/skills/polylith-migrate-orchestrator && 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 "polylith-migrate-orchestrator" agent skill from https://github.com/DavidVujic/python-polylith/tree/main/.agents/skills/polylith/migrate-project/polylith-migrate-orchestrator into .claude/skills/polylith-migrate-orchestrator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "polylith-migrate-orchestrator", 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/DavidVujic/python-polylith/tree/main/.agents/skills/polylith/migrate-project/polylith-migrate-orchestratorType 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 DavidVujic/python-polylith --skill polylith-migrate-orchestrator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install DavidVujic/python-polylith polylith-migrate-orchestrator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DavidVujic/python-polylith.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/polylith/migrate-project/polylith-migrate-orchestrator .agents/skills/polylith-migrate-orchestrator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "polylith-migrate-orchestrator" agent skill from https://github.com/DavidVujic/python-polylith/tree/main/.agents/skills/polylith/migrate-project/polylith-migrate-orchestrator into .agents/skills/polylith-migrate-orchestrator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "polylith-migrate-orchestrator", 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 DavidVujic/python-polylith --skill polylith-migrate-orchestrator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install DavidVujic/python-polylith polylith-migrate-orchestrator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DavidVujic/python-polylith.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/polylith/migrate-project/polylith-migrate-orchestrator .cursor/skills/polylith-migrate-orchestrator && 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 "polylith-migrate-orchestrator" agent skill from https://github.com/DavidVujic/python-polylith/tree/main/.agents/skills/polylith/migrate-project/polylith-migrate-orchestrator into .cursor/skills/polylith-migrate-orchestrator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "polylith-migrate-orchestrator", 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/DavidVujic/python-polylith.git --path .agents/skills/polylith/migrate-project/polylith-migrate-orchestrator--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 DavidVujic/python-polylith --skill polylith-migrate-orchestrator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install DavidVujic/python-polylith polylith-migrate-orchestrator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DavidVujic/python-polylith.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/polylith/migrate-project/polylith-migrate-orchestrator .gemini/skills/polylith-migrate-orchestrator && 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 "polylith-migrate-orchestrator" agent skill from https://github.com/DavidVujic/python-polylith/tree/main/.agents/skills/polylith/migrate-project/polylith-migrate-orchestrator into .gemini/skills/polylith-migrate-orchestrator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "polylith-migrate-orchestrator", 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 DavidVujic/python-polylith polylith-migrate-orchestratorInstalls 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 DavidVujic/python-polylith --skill polylith-migrate-orchestrator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/DavidVujic/python-polylith.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/polylith/migrate-project/polylith-migrate-orchestrator .github/skills/polylith-migrate-orchestrator && 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 "polylith-migrate-orchestrator" agent skill from https://github.com/DavidVujic/python-polylith/tree/main/.agents/skills/polylith/migrate-project/polylith-migrate-orchestrator into .github/skills/polylith-migrate-orchestrator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "polylith-migrate-orchestrator", 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 DavidVujic/python-polylith --skill polylith-migrate-orchestrator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install DavidVujic/python-polylith polylith-migrate-orchestrator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DavidVujic/python-polylith.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/polylith/migrate-project/polylith-migrate-orchestrator .opencode/skills/polylith-migrate-orchestrator && 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 "polylith-migrate-orchestrator" agent skill from https://github.com/DavidVujic/python-polylith/tree/main/.agents/skills/polylith/migrate-project/polylith-migrate-orchestrator into .opencode/skills/polylith-migrate-orchestrator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "polylith-migrate-orchestrator", 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.
polylith-migrate-orchestrator[ENTRY POINT] Load this skill first when the user asks to migrate a non-Polylith Python project to Polylith (e.g.
Polylith Migrate Orchestrator is an agent skill from DavidVujic/python-polylith. [ENTRY POINT] Load this skill first when the user asks to migrate a non-Polylith Python project to Polylith (e.g. "migrate projects/<name to Polylith"). Drives the full migration workflow plus optional tooling conversions; do not load any other polylith-migrate- skill directly — they are sub-skills this orchestrator invokes.
Its SKILL.md is about 3.5k 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. It works with Python and Git. The repository describes itself as: Tooling support for the Polylith Architecture in Python. The licence is MIT.
2 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit a7a80f2. 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:
gituvpoetryFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and uv, 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.
Polylith Migrate Orchestrator loads about 3.5k tokens when it runs. Until then it costs about 91 tokens; SKILL.md has 1,411 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 noted patterns worth knowing about, such as sudo or a known installer.
can still leave **untracked** secrets (`.env*`, `*.pem`,- Confirm `.gitignore` covers `.venv/`, `.env*`, and common secret material.de anything matching secret patterns** (`.env*`, `*.pem`, `*.key`,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 DavidVujic/python-polylith at commit a7a80f2, republished under its MIT licence (© DavidVujic). 1,411 words, ~3,465 tokens.
.claude/skills/polylith-migrate-orchestrator/SKILL.md (or your agent's skills folder).🧭 You are in the right place. This is the entry point for migrating a non-Polylith Python project into a Polylith workspace. If you arrived here from a fuzzy match on a sub-skill name (e.g.,
polylith-migrate-discover,polylith-migrate-extract-to-base), stay here — those sub-skills depend on state and a git safety net that only this orchestrator sets up. Loading them in isolation is undefined behaviour. Execute the phases below in order.
Define and execute the workflow for migrating a non-Polylith Python project to a Polylith workspace. This skill must be explicitly invoked by a human with the project name/path.
To migrate a project, load the polylith-migrate-orchestrator skill and provide the project name (the subdirectory under projects/):
Load the `polylith-migrate-orchestrator` skill and migrate `projects/<project-name>`.💡 How sub-skills are loaded. Each phase points to another skill named
polylith-migrate-<phase>(e.g.,polylith-migrate-discover,polylith-migrate-extract-to-base). Load each via your skill loader before executing the phase. Do not interleave phases — finish and verify one before starting the next.
Ask the user to confirm the project path and migration intent before doing anything else:
You are about to migrate `projects/<project-name>` to Polylith. This will refactor
the project into bases and components and move files. Proceed? (yes/no)If the user declines, abort:
Migration aborted by user.Migration is destructive — files move, directories are deleted, pyproject.tomls are rewritten. Before loading polylith-migrate-discover, establish rollback points:
git statusGIT_BASE_SHA to roll back to.).venv/ from uv sync/poetry install, regenerated lock files).
A "clean" tracked tree can still leave untracked secrets (.env*, *.pem,
*.key, *_rsa, *service-account*.json, credential files) that a broad stage
would commit. Before proceeding:.gitignore covers .venv/, .env*, and common secret material.git status --porcelain for untracked sensitive files; have the user
remove, relocate, or ignore them. Do not start until no untracked secret
material remains stageable.git checkout -b migrate/<project-name>## Commit section. The commit message follows the pattern migrate(<project-name>): phase <N> — <phase-name> so phases can be located in git log later.git add <path> over git add -A, limiting
the stage to migration-relevant paths (the bricks/components/bases touched, the
project dir, and migration/<project-name>/). Where a phase's ## Commit
section still shows git add -A, first run git status --porcelain and
exclude anything matching secret patterns (.env*, *.pem, *.key,
*_rsa, *service-account*.json, credential files) or build artifacts
(.venv/, caches). Never stage a file you have not accounted for.git add <scoped paths> && git commit -m "migrate(<project-name>): phase <N> — <phase-name>"This gives the user (and the agent) a discrete, named rollback point per phase. If a later phase fails verification, the agent can git reset --hard HEAD~1 to back out exactly one phase without losing earlier progress.
migration/<project-name>/state.md (the polylith-migrate-discover skill defines that file).⚠ Never
git reset --hardpast the start of the migration branch without explicit user approval — the user's pre-migration work lives there. ⚠ Because phases may stage broadly, agit reset --hard HEADbefore a commit also discards untracked work. This is a second reason to stage narrowly (step 4).
The table below is the single source of truth for phase order and numbering.
Execute phases top to bottom. Verify each phase's Verify section before
starting the next, and commit between phases (see Phase 0 step 3). Where a
sub-skill's own ## Commit section or description: hardcodes a different
phase number, ignore that number — use the # from this table in the
commit message.
| # | Phase | Skill | Depends on |
|---|---|---|---|
| 1 | Discover | polylith-migrate-discover | — |
| 2 | Analyze imports + choose rewrite strategy | polylith-migrate-analyze-imports | 1 |
| 3 | Extract to base | polylith-migrate-extract-to-base | 2 |
| 4 | Update imports in the new base | polylith-migrate-automate-import-updates | 3 |
| 5 | Prepare project | polylith-migrate-prepare-project | 4 (+ 4b if taken) |
| 6 | Verify stability | polylith-migrate-verify-stability | 5 |
| 7 | Isolate base and big component | polylith-migrate-isolate-base-and-big-component | 6 |
| 8 | Split big component | polylith-migrate-split-big-component | 7 |
| 9 | Extract standalone modules | polylith-migrate-extract-standalone-modules | 8 |
| 10 | Isolate shared and project logic | polylith-migrate-isolate-shared-and-project-logic | 9 |
| 11 | Distribute wiring | polylith-migrate-distribute-wiring | 10 |
| 12 | Split component internals | polylith-migrate-split-component-internals | 11 |
| 13 | Refactor tests | polylith-migrate-refactor-tests | 12 |
| 14 | Definition of done | polylith-migrate-definition-of-done | 13 |
polylith-migrate-analyze-imports (phase 2) sets a SHIM_STRATEGY in state.md:
shimless (recommended when imports are submodule-qualified — e.g.
from <ns>.<sub> import … — and <ns>/__init__.py exports little or nothing;
a top-level re-export shim would resolve nothing there): phase 4 rewrites all
references — base internals, entrypoints, infra, and tests — directly to the
new namespace. Skip the sub-track below.
shim (a top-level re-export shim is viable): after phase 4, run this
sub-track before phase 5, then continue the main line:
| # | Phase | Skill | Depends on |
|---|---|---|---|
| 4b.i | Generate compatibility shim | polylith-migrate-generate-shim | 3, 4 |
| 4b.ii | Detect circular imports | polylith-migrate-detect-circular-imports | 4b.i |
| 4b.iii | Resolve circular imports | polylith-migrate-resolve-circular-imports | 4b.ii |
| 4b.iv | Update test files | polylith-migrate-update-tests | 4b.iii |
Dependency note (why this is a post-extraction sub-track): the shim re-exports the original namespace from the new base location, so it can only be generated after
polylith-migrate-extract-to-base(phase 3) and after the base's own imports point at the new namespace (polylith-migrate-automate-import-updates, phase 4). A shim generated before extraction would re-export from a location that does not exist yet.
Some phases are no-ops for certain projects. Skip with a one-line rationale
recorded in state.md, and still commit the (possibly empty) phase so the
git log stays complete:
core.py mixing multiple domains).polylith-migrate-prepare-project and polylith-migrate-definition-of-done).These are not part of the linear flow above. They are triggered when the user opts in during polylith-migrate-discover (or, for polylith-migrate-dedupe, when duplication candidates surface). When triggered, insert them at the indicated point in the flow.
| Skill | When to run | Trigger |
|---|---|---|
polylith-migrate-convert-linter | After polylith-migrate-discover, before polylith-migrate-analyze-imports. | User opts in during polylith-migrate-discover. |
polylith-migrate-convert-type-checker | After polylith-migrate-discover, before polylith-migrate-analyze-imports. | User opts in during polylith-migrate-discover. |
polylith-migrate-convert-package-manager | After polylith-migrate-discover, before polylith-migrate-analyze-imports. | User opts in during polylith-migrate-discover AND the workspace itself uses uv. The skill is opinionated about uv — see its header for the gating rule. |
polylith-migrate-dedupe | After polylith-migrate-split-big-component or polylith-migrate-extract-standalone-modules surfaces duplication candidates. | Duplication candidates surfaced and user approves. |
⚠
polylith-migrate-convert-package-manageronly converts to uv. If the workspace uses Poetry, PDM, or Hatch as its standard, skip this skill entirely — the project should be aligned to the workspace's manager via a manual step instead.
When the user opts into more than one of the optional polylith-migrate-convert-* skills during polylith-migrate-discover, run them in this order between polylith-migrate-discover and polylith-migrate-analyze-imports:
polylith-migrate-convert-package-manager — runs first because it rewrites pyproject.toml wholesale; subsequent skills must operate on the final layout.polylith-migrate-convert-linter — runs second so workspace-level lint config consolidation happens against the final pyproject.toml.polylith-migrate-convert-type-checker — runs last; type-checker config is the most localized of the three.polylith-migrate-dedupe is triggered later (after the big component is split and duplication candidates surface) and has no ordering dependency with the converters.
Commit between each optional skill the same way the main phases commit (see each skill's ## Commit section).
For each phase:
state.md against the rules in polylith-migrate-discover (### Validation rules). Abort the phase if validation fails.polylith-migrate-<phase>).Steps in order.Verify section. If verification fails, do not commit and do not proceed. Either fix the issue, or git reset --hard to back out the phase and consult the user.## Commit section, using the # from this orchestrator table (not any number baked into the sub-skill).Depends on entry references an
earlier-numbered phase (or an earlier step of the 4b sub-track), so a strict
top-to-bottom execution always satisfies dependencies. (An earlier version of
this table violated that — it listed generate-shim before extract-to-base;
the shim phases are now a post-extraction sub-track, phase 4b.)polylith-migrate-<name>/SKILL.md under .agents/skills/polylith/migrate-project/.Verify block uses the commands recorded in migration/<project-name>/state.md (RUN_TEST_CMD, optionally RUN_LINT_CMD and RUN_TYPECHECK_CMD, plus POLY_CMD_PREFIX check).© DavidVujic, MIT. 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/polylith/migrate-project/polylith-migrate-orchestrator of DavidVujic/python-polylith.
Open the folder on GitHubat commit a7a80f2
Polylith Migrate Orchestrator 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 |
|---|---|---|---|---|---|---|
| Polylith Migrate Orchestrator this skillDavidVujic/python-polylith | 553 | — | ~3.5k | Automated safety check: Notes | MIT | |
| Code Review ChecklistshareAI-lab/learn-claude-code | 78k | 5 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Skyvern Version BumpSkyvern-AI/skyvern | 23k | — | ~1k | Automated safety check: Notes | AGPL-3.0 | |
| Saleor Commit Workflowsaleor/saleor | 23k | — | ~575 | Automated safety check: Pass | BSD-3-Clause | |
| Commitizencommitizen-tools/commitizen | 3.5k | — | ~839 | Automated safety check: Pass | MIT | |
| pybind11 Release Preparationpybind/pybind11 | 18k | — | ~1.7k | Automated safety check: Pass | Custom licence |
shareAI-lab/learn-claude-code
Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.
Skyvern-AI/skyvern
Walks through a Skyvern open-source release bump: update the version, rebuild the Python and TypeScript SDKs with Fern, commit, and open a pull request.
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.
commitizen-tools/commitizen
A skill your agent uses for tasks involving Conventional Commits, commit message validation, Commitizen configuration, semantic version bumps, changelog generation, or CI/release automation with the…
pybind/pybind11
Opens the pybind11 release-preparation pull request: picking the release base, bumping the version in common.h and integrating the changelog, following docs/release.rst.
obra/superpowers-lab
A skill your agent uses when you need to run interactive CLI tools (vim, git rebase -i, Python REPL, etc.) that require real-time input/output - provides tmux-based approach for controlling…
DavidVujic/python-polylith
Create a Polylith base with poly create base — the entry point of a deployable application (HTTP API, CLI, message-queue consumer, AWS Lambda handler, GCP Cloud Function, scheduled job).
DavidVujic/python-polylith
Validate a Polylith workspace with poly check — the canonical CI gate.
DavidVujic/python-polylith
Create a Polylith component with poly create component — a reusable, isolated brick implementing business logic, a feature, a domain module, or a capability.
DavidVujic/python-polylith
Add or manage third-party dependencies in a Polylith workspace.
DavidVujic/python-polylith
Visualize brick × brick dependencies with poly deps — find circular dependencies, inspect a brick's public interface, and detect interface-bypass violations.
DavidVujic/python-polylith
List Polylith bricks whose implementation changed since a git tag using poly diff.
Categories
[ENTRY POINT] Load this skill first when the user asks to migrate a non-Polylith Python project to Polylith (e.g. Polylith Migrate Orchestrator is an agent skill from DavidVujic/python-polylith.g.
Polylith Migrate Orchestrator fits situations like: asks to migrate a non-Polylith Python project to Polylith (e.g.
Run `npx skills add DavidVujic/python-polylith --skill polylith-migrate-orchestrator -a claude-code`. Or copy the skill folder (.agents/skills/polylith/migrate-project/polylith-migrate-orchestrator in DavidVujic/python-polylith) into .claude/skills/polylith-migrate-orchestrator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add DavidVujic/python-polylith --skill polylith-migrate-orchestrator -a codex`. Or copy the skill folder (.agents/skills/polylith/migrate-project/polylith-migrate-orchestrator in DavidVujic/python-polylith) into .agents/skills/polylith-migrate-orchestrator 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 DavidVujic/python-polylith --skill polylith-migrate-orchestrator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/polylith-migrate-orchestrator, .gemini/skills/polylith-migrate-orchestrator, .github/skills/polylith-migrate-orchestrator and .opencode/skills/polylith-migrate-orchestrator in your project.
Going by SKILL.md and its folder, Polylith Migrate Orchestrator needs the command-line tools its instructions call (git, uv and poetry). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use git and uv, 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 notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Polylith Migrate Orchestrator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k 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 Polylith Migrate Orchestrator: Code Review Checklist (shareAI-lab/learn-claude-code, 78k stars), Skyvern Version Bump (Skyvern-AI/skyvern, 23k stars), Saleor Commit Workflow (saleor/saleor, 23k stars) and Commitizen (commitizen-tools/commitizen, 3.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
DavidVujic (a GitHub user) maintains it in DavidVujic/python-polylith, which has 553 GitHub stars. The repository holds 37 skills in this directory. The repository was last updated on October 4, 2026.
Source: DavidVujic/python-polylith on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.