Finding
Per estate language policy (CLAUDE.md, [[feedback_estate_lang_policy_2026_05_25]]):
Python: Fully banned, no exceptions (SaltStack exception removed 2026-01-03)
A 2026-05-30 estate-wide scan finds ~45 estate-authored `.py` files still in the tree (after excluding vendored upstream content: Rust `target/`, OPAM deps, Lean `.lake/`, MCP `servers/`, HOL/lua-filters/file/repos-monorepo/linguist/hyperpolymath-archive, proven-servers/bindings/python/ consumer-binding carve-out).
Estate-authored residual
| Repo / area |
File |
Notes |
| (root) |
organize_mfa_files.py |
Personal one-off script |
| email-octad-experiment |
5 scripts (agda-*-probe.py, storage-ratio-probe.py) |
Migrate to Julia/Idris2 |
| cloud-sync-tuner |
nautilus-extension/cloud_sync_overlay.py |
Nautilus extension — host-required Python; consider carve-out |
| protocol-squisher |
examples/, docs/samples/, crates/.../scripts/ (6 files) |
Examples/docs — consumer demo? carve-out candidate |
| svalinn |
tools/mvp/svalinn_gate.py |
Should migrate to Rust |
| universal-language-server-plugin |
clients/sublime/UniversalConnector.py |
Sublime extension — host-required; carve-out |
| the-nash-equilibrium |
src/core/main.py |
Core source — migrate |
| julia-libraries / julia-ecosystem |
4 pytorch-comparison scripts |
Migrate to Julia |
| social-media-tools/dipstick |
smtp_autoconfig.py, virtuoso_adapter.py |
Migrate to Rust/Julia |
| servers (MCP) |
4 test files |
Likely vendored upstream MCP servers; check |
| infrastructure-automation/ansible |
reflexive_reporter.py |
Ansible plugin — host-required; carve-out |
| isers/julianiser |
examples/data-pipeline/pipeline.py |
Example — consumer demo? |
| idaptik |
idaptik-contracts/tools/codegen.py |
Codegen tool |
| ssg-collection |
2 SSG engines (terrapin-ssg.py, milk-ssg.py) |
Migrate to AffineScript/Rust |
| developer-ecosystem/iser-tools |
julianiser/examples/data-pipeline/pipeline.py |
Example (mirror) |
Recommended carve-outs
Following the V-lang/TS/RS pattern (consumer bindings + host-required extensions exempt), propose:
- Sublime / Nautilus / Ansible extensions — host-loaded Python is contractual. Add
**/sublime/, **/nautilus-extension/, **/ansible/plugins/ to a Python carve-out list in standards CLAUDE.md.
examples/ / docs/samples/ — consumer demos showing how a binding is called from Python. Add **/examples/, **/docs/samples/ to carve-out.
- Everything else (~10-15 files) — real migration work. Top of mind:
email-octad-experiment (5 probes), the-nash-equilibrium/src/core/main.py, svalinn/tools/mvp/, ssg-collection/ssg-fixes/poly-ssg/engines/* (2 SSG engines).
Recommended action
- Phase 1: Update standards CLAUDE.md to add the carve-outs above (single PR, formalises de facto state).
- Phase 2: Per-repo migrate the ~10-15 estate-authored residual files. Mostly small scripts — Julia/Rust/AffineScript rewrites feasible 30 min/file.
Out of scope
- Vendored Python (HOL, lua-filters, file, linguist, repos-monorepo, hyperpolymath-archive, Z3 build artefacts) — never migrate
- proven-servers
bindings/python/ — consumer-language carve-out per estate policy
- standards/a2ml-templates
state-scm-to-v2.py — already noted at standards#307 (.scm→.a2ml convergence)
Refs [[feedback_estate_lang_policy_2026_05_25]] (policy), [[feedback_python_saltstack_absolute_no_questions]] (Python absolute)
Finding
Per estate language policy (CLAUDE.md, [[feedback_estate_lang_policy_2026_05_25]]):
A 2026-05-30 estate-wide scan finds ~45 estate-authored `.py` files still in the tree (after excluding vendored upstream content: Rust `target/`, OPAM deps, Lean `.lake/`, MCP `servers/`, HOL/lua-filters/file/repos-monorepo/linguist/hyperpolymath-archive,
proven-servers/bindings/python/consumer-binding carve-out).Estate-authored residual
organize_mfa_files.pyagda-*-probe.py,storage-ratio-probe.py)nautilus-extension/cloud_sync_overlay.pyexamples/,docs/samples/,crates/.../scripts/(6 files)tools/mvp/svalinn_gate.pyclients/sublime/UniversalConnector.pysrc/core/main.pysmtp_autoconfig.py,virtuoso_adapter.pyreflexive_reporter.pyexamples/data-pipeline/pipeline.pyidaptik-contracts/tools/codegen.pyterrapin-ssg.py,milk-ssg.py)julianiser/examples/data-pipeline/pipeline.pyRecommended carve-outs
Following the V-lang/TS/RS pattern (consumer bindings + host-required extensions exempt), propose:
**/sublime/,**/nautilus-extension/,**/ansible/plugins/to a Python carve-out list in standards CLAUDE.md.examples//docs/samples/— consumer demos showing how a binding is called from Python. Add**/examples/,**/docs/samples/to carve-out.email-octad-experiment(5 probes),the-nash-equilibrium/src/core/main.py,svalinn/tools/mvp/,ssg-collection/ssg-fixes/poly-ssg/engines/*(2 SSG engines).Recommended action
Out of scope
bindings/python/— consumer-language carve-out per estate policystate-scm-to-v2.py— already noted at standards#307 (.scm→.a2ml convergence)Refs
[[feedback_estate_lang_policy_2026_05_25]](policy),[[feedback_python_saltstack_absolute_no_questions]](Python absolute)