name: polylith-migrate-verify-stability
description: "[Internal sub-skill of polylith-migrate-orchestrator. Do not load directly — load polylith-migrate-orchestrator first, which drives all phases.] Verify that the migration did not break the project by running test discovery, checking for circular imports, and ensuring the compatibility shim covers all necessary symbols."
Skill: polylith-migrate-verify-stability
Goal
Verify that the migration did not break the project by:
- Running test discovery and comparing the test count with the baseline
- Checking for circular imports
- Ensuring the compatibility shim covers all necessary symbols
Inputs
- Project name (from
migration/<project-name>/state.md) - Test command (from
migration/<project-name>/state.md) - Baseline test count (from
migration/<project-name>/state.md)
Steps
1. Run test discovery
- Run the test discovery command from
migration/${PROJECT}/state.md. - Compare the test count with the baseline from
migration/${PROJECT}/state.md. - Record any discrepancies in
migration/${PROJECT}/stability_report.md.
2. Run a subset of tests
- Run a representative subset of tests using the test command from
migration/${PROJECT}/state.md. - Record any test failures in
migration/${PROJECT}/stability_report.md.
3. Check for circular imports
- Verify that no circular imports remain by reviewing
migration/${PROJECT}/circular_imports_resolved.md. - Record any remaining circular imports in
migration/${PROJECT}/stability_report.md.
4. Verify shim coverage
- Ensure the compatibility shim (
projects/${PROJECT}/${ORIG_TOP_NS}/__init__.py) covers all necessary symbols by comparing it with the original namespace's exports. - Record any missing symbols in
migration/${PROJECT}/stability_report.md.
Output
- A report file:
migration/<project-name>/stability_report.mdsummarizing:- Test count before and after migration
- Test failures (if any)
- Circular import status
- Shim coverage status
Verify
- Confirm that
migration/<project-name>/stability_report.mdexists and is not empty. - Verify that:
- The test count matches the baseline
- No test failures are reported
- No circular imports remain
- The shim covers all necessary symbols
Commit
git add migration/${PROJECT}/stability_report.md
git commit -m "migrate(${PROJECT}): phase <N> — verify-stability"
<N>is this phase's number from thepolylith-migrate-orchestratortable (the single source of truth) — do not hardcode it.