本文へ移動
cccskills
無料GitHub で公開

rseng-open-source-migration

Covers migrating research code from commercial, license-bound platforms to open source alternatives: MATLAB to Octave or Python/NumPy, IDL to Python, SAS/SPSS/Stata to R or pandas, Mathematica to SymPy/Julia, and the platform-specific pitfalls (indexing, copy semantics, toolbox equivalents, numerical parity). Use when the user wants to leave MATLAB, IDL, SAS, SPSS, Stata, Mathematica, LabVIEW or another proprietary platform, asks for an open or free alternative to commercial scientific software, can no longer afford or access a license, or needs collaborators without licenses to run the code. (The characterization-test safety net and general inherited-code discipline are rseng-legacy-code.)

日本語の概要は準備中です。原文の説明を表示しています。

fdiblen/rseng-agent-skillsスター 24(GitHub 24 + cccskills 0)

実行スコア 未検証

インストール方法を見る

含まれるファイル(2)

  • SKILL.md7.4 KB
  • references.md615 B

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Migrating from commercial platforms to open source

Research code locked to a commercial platform has a structural problem: every user, collaborator, student, reviewer and CI runner needs a license, and reproducibility acquires an expiry date tied to a vendor. Migration to open alternatives removes the toll booth and makes the work FAIR in practice (rseng-fair-software) - but a naive "translate the syntax" migration produces subtly wrong science. The discipline: pin behavior first, choose the target honestly, migrate incrementally with numerical parity as the acceptance test. The general safety net (characterization tests, strangler migration) lives in rseng-legacy-code; this skill adds the platform-specific knowledge.

Before migrating: pin the baseline

While the commercial license still works, capture everything the migration must reproduce (this window may not stay open):

  • Run the original on representative inputs and save inputs and outputs as the golden baseline (rseng-legacy-code's characterization tests).
  • Record the platform version, toolbox versions and settings that produced the baseline.
  • Export data OUT of proprietary formats now: .mat to HDF5-based or open formats, SAS/SPSS/Stata files to open tabular formats (rseng-scientific-file-formats) - data freedom precedes code freedom, and readers for proprietary formats are better used while a licensed installation can verify the export.

Choosing the target

  • MATLAB, two honest paths: GNU Octave runs most plain MATLAB with minimal changes - the low-cost exit when the goal is simply license freedom; Python/NumPy/SciPy is the larger move that buys ecosystem, packaging (rseng-project-scaffolding) and hiring, at the cost of a real port. Choose Octave for frozen-but-must-run code, Python for code with a future. (Simulink has no clean open equivalent - flag it as the hard part early.)
  • IDL: Python is the community-standard destination (astronomy's stack - astropy and friends - exists precisely from this migration).
  • SAS/SPSS/Stata: R (statistical depth, native model objects) or pandas/statsmodels; verify statistical defaults match - the same named procedure can use different degrees-of-freedom or contrast conventions, which is a science difference, not a bug.
  • Mathematica: SymPy for symbolic work, Julia for symbolic-numeric blends.
  • LabVIEW and instrument control: Python instrument stacks are the destination, but hardware interfaces make this a re-engineering project, not a translation.
  • Whatever the target, check whether the field already has an open reimplementation of the domain workflow before porting line by line (rseng-software-reuse) - many "migrations" should be adoptions.

Translation pitfalls (where silent wrongness lives)

The famous ones an agent must actively check, not discover:

  • Indexing: MATLAB/Octave/R/Julia are 1-based, column-major; NumPy is 0-based, row-major. Every hand-translated index and every reshape/flatten is a suspect until tested.
  • Copy semantics: MATLAB copies on assignment; NumPy slices are VIEWS - in-place modification after translation corrupts data that MATLAB code safely mutated.
  • Broadcasting and implicit expansion rules differ in edges; element-wise vs matrix operators (.* vs *) invert their defaultness between MATLAB and NumPy.
  • Toolbox calls map to ecosystems, not functions: Signal Processing Toolbox to scipy.signal, Statistics Toolbox to statsmodels/scipy. stats, Image Processing to scikit-image - map the WORKFLOW to the library's idiom instead of reimplementing the MATLAB function signature.
  • Numerical defaults: solvers, tolerances, RNG algorithms and seeds differ across platforms; identical seeds do NOT give identical streams, so statistical results match in distribution, not bitwise (rseng-numerical-accuracy sets the tolerance discipline, rseng-reproducibility the seed bookkeeping).
  • Automatic translators (MATLAB-to-Python converters and similar) produce a starting draft at best: un-idiomatic, license-check the output, and every translated function still needs its parity test. Interop bridges (oct2py running Octave from Python) are better used as migration scaffolding - call the old implementation module by module while the new one grows - than as a destination.

Migration as a project

  1. Inventory and rank: which scripts/functions matter, which are dead; migrate the load-bearing path first.
  2. Module-by-module with parity gates: port a module, run both implementations against the baseline inputs, assert agreement within scientifically justified tolerances, only then delete or bypass the original (strangler pattern - rseng-legacy-code).
  3. Adopt the target's ecosystem hygiene as you go: environments and lockfiles (rseng-reproducible-environments), tests (rseng-testing), CI without license servers - the ability to run tests on every commit is a migration dividend (rseng-ci-cd).
  4. Keep a translation log: mapping decisions, tolerance justifications, known behavior differences - the scientific record of the migration (rseng-documentation), and cite the original code's authors (rseng-citation-metadata).
  5. Announce the migration to users with a compatibility note (rseng-science-communication) and license the freed code properly (rseng-licensing) - opening the platform without opening the license wastes the trip.

Working with this skill

This skill is source-independent: it encodes community migration practice between scientific computing platforms. The generic legacy-code safety net is rseng-legacy-code; this skill is its commercial-platform specialization.

Learn more (verified):

<!-- related-skills:begin -->

Related skills

Check whether any of these applies before moving on:

  • rseng-legacy-code - characterization tests and strangler pattern
  • rseng-licensing - license the freed code
  • rseng-numerical-accuracy - parity tolerances across platforms
  • rseng-reproducible-environments - target-ecosystem pinning as you go
  • rseng-scientific-file-formats - exporting proprietary data formats first
  • rseng-software-reuse - adopt an existing open reimplementation
<!-- related-skills:end -->

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

Covers operating AI coding agents securely: auditing whether the agent runs sandboxed, permission and dangerous-command configuration, containerized environments, secrets kept out of context, network egress and token privileges, prompt-injection risk, and the privacy of agent use itself. Use PROACTIVELY when permission gating is broadly disabled (skip-permissions modes), when secrets are visible to the agent's shell, or when the agent processes untrusted code, issues or web content; when a project holds personal or confidential data while a cloud agent is active (what leaves the machine, retention, training use), or when the user asks how to run coding agents safely or privately. (Supply-chain security: rseng-security; disclosing agent contributions: rseng-ai-declaration.)

日本語の概要は準備中です。原文の説明を表示しています。

fdiblen/rseng-agent-skills242026年9月23日 更新

Covers declaring AI involvement with the AI Declaration Format (https://ai-declaration.org): creating and maintaining an aidecl.yaml that records which AI tools and agents were used, what each contributed, when and how much, plus the README disclosure footnote, JSON/JSON-LD export and CI validation. Machine-readable disclosure is the practice; this format is one implementation. Use PROACTIVELY when an AI assistant or agent creates or modifies a project's content - generate aidecl.yaml if missing, update it after AI-assisted changes. Also use when the user asks about AI transparency, provenance, disclosure or EU AI Act disclosure, wants to state that NO AI was used, or mentions aidecl. For concealment requests see rseng-honesty; for the human review duty see rseng-human-verification.

日本語の概要は準備中です。原文の説明を表示しています。

fdiblen/rseng-agent-skills242026年9月23日 更新

Covers long-term archiving of research software and data: Software Heritage save requests and SWHID persistent identifiers, Zenodo deposits with versioned DOIs and forge integration, choosing domain and institutional repositories, deciding what to archive (code, data, environments, documentation) and when, and archiving at project retirement. Use when the user wants software or data preserved beyond the life of a forge account, grant or lab, mentions Software Heritage, SWHIDs, Zenodo deposits or archiving, retires or hands over a project, prepares artifacts that must stay resolvable for a paper, or when funder policy requires long-term preservation. (Cutting the release itself is rseng-publishing-releasing; day-to-day data storage and repository choice is rseng-data-management.)

日本語の概要は準備中です。原文の説明を表示しています。

fdiblen/rseng-agent-skills242026年9月23日 更新

Covers processing research data that outgrows one machine's memory: out-of-core and chunked computation, Dask for scaling the scientific Python stack, Spark for distributed tabular pipelines, lazy evaluation, partitioning strategies, idempotent and restartable batch jobs, and knowing when NOT to distribute. Use when datasets no longer fit in memory, when the user mentions Dask, Spark, out-of-core or larger-than-memory data, when a pandas/NumPy workflow hits memory limits, or when designing batch pipelines over many files. (Cluster job submission and job arrays are rseng-hpc-computing; pipeline orchestration engines are rseng-workflows; profile first with rseng-performance-profiling.)

日本語の概要は準備中です。原文の説明を表示しています。

fdiblen/rseng-agent-skills242026年9月23日 更新

Covers continuous integration and delivery for research software: CI/CD concepts, automating builds and tests with GitHub Actions and GitLab CI/CD, and wiring an organization's GitLab CI infrastructure to a GitHub-hosted project. Use when the user asks to set up CI, write a pipeline or workflow file (.github/workflows, .gitlab-ci.yml), add automated builds/tests on push or pull request, publish a package or deploy docs when a tag or release is cut, cache dependencies to speed up CI runs, choose between GitHub Actions and GitLab CI, use self-hosted or GPU runners, mirror a repo, or report external CI status back to GitHub. For what to test and shrinking a test matrix see rseng-testing; for linter and pre-commit policy see rseng-code-quality.

日本語の概要は準備中です。原文の説明を表示しています。

fdiblen/rseng-agent-skills242026年9月23日 更新

Covers verifying that every citation is real, correct and current: checking references in manuscripts, READMEs, references files and code metadata against Crossref and OpenAlex, screening cited DOIs against the Retraction Watch database, catching fabricated or mis-attributed citations (a documented AI failure mode), and keeping bibliographies and CITATION.cff files resolvable. Use PROACTIVELY before any bibliography, reference list or citation metadata is finalized or published, whenever the agent itself has produced citations, and when the user asks to check references, mentions broken DOIs, retracted papers or citation verification, or prepares a manuscript, README or software paper with references. (Making your own software citable is rseng-citation-metadata.)

日本語の概要は準備中です。原文の説明を表示しています。

fdiblen/rseng-agent-skills242026年9月23日 更新

fdiblen のスキルをすべて見る

このスキルの問題を報告する