Agent skill

Polylith Migrate Update Tests

by DavidVujic in DavidVujic/python-polylith

[Internal sub-skill of polylith-migrate-orchestrator. An agent skill from DavidVujic/python-polylith.

MITAuto-check passedDevelopment

Install Polylith Migrate Update Tests

skills CLI
$ npx skills add DavidVujic/python-polylith --skill polylith-migrate-update-tests -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install DavidVujic/python-polylith polylith-migrate-update-tests --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-update-tests .claude/skills/polylith-migrate-update-tests && rm -rf skills-src

Use ~/.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/

Facts

Skill name
polylith-migrate-update-tests
GitHub stars
553
Token cost
~922 tokens
SKILL.md length
355 words
Files
1
Skills in repo
37
Repo updated
First seen
Licence
MIT

At a glance

[Internal sub-skill of polylith-migrate-orchestrator. An agent skill from DavidVujic/python-polylith.

  • Works in 4 steps: Identify test files importing from the… → Update imports in test files → Verify test discovery → …
  • Development work in your project
  • SKILL.md covers Goal, Inputs, Steps and Output, plus 2 more sections
  • Calls git

What it does

Polylith Migrate Update Tests is an agent skill from DavidVujic/python-polylith. [Internal sub-skill of polylith-migrate-orchestrator. Do not load directly — load polylith-migrate-orchestrator first, which drives all phases.] Update test files to import from the compatibility shim or the new namespace, ensuring test stability after namespace migration.

Its SKILL.md is about 920 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. The repository describes itself as: Tooling support for the Polylith Architecture in Python. The licence is MIT.

When your agent uses it

  • Development work in your project

Example prompts

  • “/polylith-migrate-update-tests”

Requirements

  • Python 3

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Identify test files importing from the original namespace
  2. Update imports in test files
  3. Verify test discovery
  4. Record updated test files

What it can do on your machine

Read from SKILL.md and the folder at commit a7a80f2. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Polylith Migrate Update Tests loads about 922 tokens when it runs. Until then it costs about 77 tokens; SKILL.md has 355 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~77
When it runs · the whole SKILL.md, loaded when a task matches
~922

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from DavidVujic/python-polylith at commit a7a80f2, republished under its MIT licence (© DavidVujic). 355 words, ~922 tokens.

Download SKILL.mdSave it as .claude/skills/polylith-migrate-update-tests/SKILL.md (or your agent's skills folder).
name
polylith-migrate-update-tests
description
[Internal sub-skill of `polylith-migrate-orchestrator`. Do not load directly — load `polylith-migrate-orchestrator` first, which drives all phases.] Update test files to import from the compatibility shim or the new namespace, ensuring test stability after namespace migration.

Skill: polylith-migrate-update-tests

⛓ Conditional phase (4b). Runs only when SHIM_STRATEGY=shim (chosen in polylith-migrate-analyze-imports), to point test imports at the compatibility shim. On the shimless path this phase is skipped — test imports are rewritten to the new namespace as part of polylith-migrate-automate-import-updates (phase 4). (Physical test relocation to the workspace happens later in polylith-migrate-prepare-project / polylith-migrate-refactor-tests, regardless of strategy.) See the polylith-migrate-orchestrator workflow.

Goal

Update test files to import from the compatibility shim or the new namespace, ensuring that tests remain functional after the namespace migration.

Inputs

  • Project name (from migration/<project-name>/state.md)
  • Original namespace (from migration/<project-name>/state.md)
  • Import analysis report (from migration/<project-name>/import_analysis.md)

Steps

1. Identify test files importing from the original namespace
  1. Review the import analysis report to identify test files (typically in projects/${PROJECT}/tests/) that import from the original namespace.
2. Update imports in test files

The compatibility shim re-exports the original namespace's public symbols at the top level of ${ORIG_TOP_NS} (from projects/${PROJECT}/${ORIG_TOP_NS}/__init__.py). So test imports keep the ${ORIG_TOP_NS} prefix — only submodule-qualified imports need collapsing onto that top-level surface:

  1. For each test file importing from the original namespace:
    • Collapse submodule-qualified imports onto the shim: rewrite from ${ORIG_TOP_NS}.<submodule> import <symbol> to from ${ORIG_TOP_NS} import <symbol> (the symbol is re-exported by the shim).
    • Leave top-level imports (from ${ORIG_TOP_NS} import <symbol>, import ${ORIG_TOP_NS}) unchanged — they already resolve through the shim.
    • If a symbol is not re-exported by the shim, either add it to the shim's __all__ (see polylith-migrate-generate-shim) or import it from its new namespace path directly.

Example:

python
# Before
from myproject.core import MyClass

# After (using the compatibility shim)
from myproject import MyClass
Show full SKILL.md (113 more words)Show less
3. Verify test discovery
  1. Run test discovery to ensure the test count matches the baseline from migration/${PROJECT}/state.md.
  2. Record any discrepancies in migration/${PROJECT}/test_updates.md.
4. Record updated test files
  1. Record all updated test files in migration/${PROJECT}/test_updates.md.

Output

  • Updated test files
  • A report file: migration/<project-name>/test_updates.md listing all updated test files

Verify

  1. Confirm that all test files listed in migration/<project-name>/test_updates.md have been updated.
  2. Verify that test discovery produces the expected number of tests (as recorded in migration/<project-name>/state.md).
  3. Ensure that a representative subset of tests passes by running the test command from migration/<project-name>/state.md.

Commit

bash
git add projects/${PROJECT}/tests/
git add migration/${PROJECT}/test_updates.md
git commit -m "migrate(${PROJECT}): phase <N> — update-tests"

<N> is this phase's number from the polylith-migrate-orchestrator table (the single source of truth) — do not hardcode it.

© DavidVujic, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/polylith/migrate-project/polylith-migrate-update-tests of DavidVujic/python-polylith.

Open the folder on GitHubat commit a7a80f2

Compare with similar skills

Polylith Migrate Update Tests 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.

Polylith Migrate Update Tests compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Polylith Migrate Update Tests this skillDavidVujic/python-polylith553—~922Automated safety check: PassMIT
Vercel Composition Patternssupabase/supabase111k59 repos~726Automated safety check: PassMIT
Finishing a Development Branchobra/superpowers296k5 repos~1.9kAutomated safety check: PassMIT
Typescript Advanced Typesrolling-scopes/rsschool-app10k25 repos~4.2kAutomated safety check: PassMPL-2.0
PR Babysitteropeninterpreter/openinterpreter69k3 repos~4.2kAutomated safety check: PassApache-2.0
Code Review ChecklistshareAI-lab/learn-claude-code78k5 repos~1.1kAutomated safety check: PassMIT

Similar skills

  • Official

    React composition patterns that scale. An agent skill from supabase/supabase.

    111k GitHub starsUsed in 59 repos~726 tokens
    DevelopmentAuto-check passed
  • Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.

    296k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • Typescript Advanced Types

    rolling-scopes/rsschool-app

    Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications.

    10k GitHub starsUsed in 25 repos~4.2k tokens
    DevelopmentAuto-check passed
  • PR Babysitter

    openinterpreter/openinterpreter

    Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.

    69k GitHub starsUsed in 3 repos~4.2k tokens
    DevelopmentAuto-check passed
  • 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.

    78k GitHub starsUsed in 5 repos~1.1k tokens
    DevelopmentAuto-check passed
  • Greploop

    onyx-dot-app/onyx

    Iteratively improves a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives it a 5/5 confidence score with zero unresolved comments.

    32k GitHub starsUsed in 4 repos~3.3k tokens
    DevelopmentAuto-check passed

More from DavidVujic/python-polylith

All 37 skills in this repo
  • Polylith Base Creation

    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).

    553 GitHub stars~757 tokensUpdated 4 days ago
    Auto-check passed
  • Polylith Check

    DavidVujic/python-polylith

    Validate a Polylith workspace with poly check — the canonical CI gate.

    553 GitHub stars~972 tokensUpdated 4 days ago
    Auto-check passed
  • Polylith Component Creation

    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.

    553 GitHub stars~800 tokensUpdated 4 days ago
    Auto-check passed
  • Polylith Dependency Management

    DavidVujic/python-polylith

    Add or manage third-party dependencies in a Polylith workspace.

    553 GitHub stars~643 tokensUpdated 4 days ago
    Auto-check passed
  • Polylith Dependency Visualization

    DavidVujic/python-polylith

    Visualize brick × brick dependencies with poly deps — find circular dependencies, inspect a brick's public interface, and detect interface-bypass violations.

    553 GitHub stars~906 tokensUpdated 4 days ago
    Auto-check passed
  • Polylith Diff

    DavidVujic/python-polylith

    List Polylith bricks whose implementation changed since a git tag using poly diff.

    553 GitHub stars~1.1k tokensUpdated 4 days ago
    Auto-check passed

Categories

Questions about Polylith Migrate Update Tests

What does Polylith Migrate Update Tests do?

[Internal sub-skill of polylith-migrate-orchestrator. An agent skill from DavidVujic/python-polylith. Polylith Migrate Update Tests is an agent skill from DavidVujic/python-polylith. [Internal sub-skill of polylith-migrate-orchestrator.

When should I use Polylith Migrate Update Tests?

Polylith Migrate Update Tests fits situations like: development work in your project.

How do I install Polylith Migrate Update Tests in Claude Code?

Run `npx skills add DavidVujic/python-polylith --skill polylith-migrate-update-tests -a claude-code`. Or copy the skill folder (.agents/skills/polylith/migrate-project/polylith-migrate-update-tests in DavidVujic/python-polylith) into .claude/skills/polylith-migrate-update-tests in your project. Claude Code loads it when a task matches its description.

How do I install Polylith Migrate Update Tests in Codex?

Run `npx skills add DavidVujic/python-polylith --skill polylith-migrate-update-tests -a codex`. Or copy the skill folder (.agents/skills/polylith/migrate-project/polylith-migrate-update-tests in DavidVujic/python-polylith) into .agents/skills/polylith-migrate-update-tests in your project. Codex loads it when a task matches its description.

Can I use Polylith Migrate Update Tests in Cursor, Gemini CLI or GitHub Copilot?

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-update-tests -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-update-tests, .gemini/skills/polylith-migrate-update-tests, .github/skills/polylith-migrate-update-tests and .opencode/skills/polylith-migrate-update-tests in your project.

What does Polylith Migrate Update Tests need to run?

Going by SKILL.md and its folder, Polylith Migrate Update Tests needs the command-line tools its instructions call (git). Our summary lists: Python 3.

Does Polylith Migrate Update Tests access the network?

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.

Is Polylith Migrate Update Tests safe to install?

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.

What licence does Polylith Migrate Update Tests use?

Polylith Migrate Update Tests is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Polylith Migrate Update Tests use?

About 922 tokens (SKILL.md is roughly 3.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Polylith Migrate Update Tests?

Skills that share tags, products or a category with Polylith Migrate Update Tests: Vercel Composition Patterns (supabase/supabase, 111k stars), Finishing a Development Branch (obra/superpowers, 296k stars), Typescript Advanced Types (rolling-scopes/rsschool-app, 10k stars) and PR Babysitter (openinterpreter/openinterpreter, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Polylith Migrate Update Tests?

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.