Outcome
Prove that the replacement runtime has zero Python execution and that no supported behavior disappeared without an explicit decision.
Scope and invariants
- Require every runtime manifest row to be migrated, deliberately retired, separately relicensed/reused in an appropriate non-runtime owner, or linked to a blocking issue with an approved cutover disposition.
- Search source, build metadata, release artifacts, containers, SBOMs, plugins, environment/config, docs, and wrapper profiles for CPython/Python runtime dependencies.
- Delete any temporary compatibility shim before closure; there is no permanent Python plugin ABI in the fresh server.
- Run the whole migrated content corpus and all domain scenarios without Python available on the image/system.
- Produce a behavior parity and licensing closure report.
Acceptance criteria
- Release artifacts and containers contain no
.py, Python interpreter/library, CPython initialization, Python plugin symbols, or runtime package dependency.
- The server starts and completes representative/whole-corpus scenarios on a host with no Python installed.
- Manifest reports zero unowned/unresolved rows accepted for production cutover.
- Offline
content/tools migration/relicensing status is tracked in content-toolkit and cannot reintroduce server runtime Python.
- Security/SBOM/license checks enforce the zero-runtime-Python boundary continuously.
Dependencies and parallelization
Depends on #4 and all domain migration issues, especially #57-#60. Can close before classic archival but gates M6 production cutover.
Licensing and migration rule
Replacement Go code is MIT and independently implemented. Preserve existing gameplay/content design choices and separately licensed data; do not translate GPL runtime source or tests unless an exact contribution has a documented rights-holder MIT grant.
Program equivalence output
Publish the zero-Python behavior-closure report in the versioned capability/result schema from atrinik#279, with exact server/content/tool coordinates and reproducible wrapper scenarios. This issue is a native blocker of atrinik#280; a missing, skipped, unowned, or unexpectedly divergent required behavior keeps the whole-pack gate open.
Outcome
Prove that the replacement runtime has zero Python execution and that no supported behavior disappeared without an explicit decision.
Scope and invariants
Acceptance criteria
.py, Python interpreter/library, CPython initialization, Python plugin symbols, or runtime package dependency.content/toolsmigration/relicensing status is tracked incontent-toolkitand cannot reintroduce server runtime Python.Dependencies and parallelization
Depends on #4 and all domain migration issues, especially #57-#60. Can close before classic archival but gates M6 production cutover.
Licensing and migration rule
Replacement Go code is MIT and independently implemented. Preserve existing gameplay/content design choices and separately licensed data; do not translate GPL runtime source or tests unless an exact contribution has a documented rights-holder MIT grant.
Program equivalence output
Publish the zero-Python behavior-closure report in the versioned capability/result schema from atrinik#279, with exact server/content/tool coordinates and reproducible wrapper scenarios. This issue is a native blocker of atrinik#280; a missing, skipped, unowned, or unexpectedly divergent required behavior keeps the whole-pack gate open.