cross-language-porting

Ports metaobjects features across TypeScript, Java, Python, and C# using conformance fixtures.

1|Updated May 14, 2026
One-click install
npx skills add https://github.com/metaobjectsdev/metaobjects --skill cross-language-porting-metaobjectsdev
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: cross-language-porting
Source: https://github.com/metaobjectsdev/metaobjects/tree/main/.claude/skills/cross-language-porting
Command: npx skills add https://github.com/metaobjectsdev/metaobjects --skill cross-language-porting-metaobjectsdev

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Porting a feature from one language implementation to another risks silent behavioral drift, un-idiomatic code, or accidentally changing shared semantics. This Skill provides a disciplined workflow for porting metaobjects features between TypeScript, Java, Python, and C# while keeping every port aligned to the shared conformance corpus. ## Core Features & Use Cases - Tier-based change taxonomy: Classifies every aspect of a port as Tier 1 (invariant semantics, wire format, error codes), Tier 2 (idiomatic naming, null handling, async style), or Tier 3 (internal implementation), so you know exactly what may and may not change. - Conformance-first workflow: Requires fixtures to exist and pass on the reference implementation before porting, then uses the conformance runner as the oracle for the new port. - Honest progress tracking: Maintains an expected-failures ledger and forbids silently regenerating golden files to force a green check. - Use Case: You implemented a new metadata validation feature in TypeScript and need it in Python. Follow the workflow to write the Python ConformanceAdapter, run the shared corpus against it, and record any genuinely incomplete cases in the ledger. ## Quick Start Port the metadata validation feature from the TypeScript implementation to Python, keeping it aligned with the conformance corpus.

Frequently Asked Questions about cross-language-porting

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I port a feature from TypeScript to Python without breaking compatibility?

Start by confirming the TypeScript reference behavior has passing conformance fixtures, then write the port's ConformanceAdapter with binding, navigator, and error-code map. Run the shared conformance corpus against the port and record any gaps in the expected-failures ledger.

What can I change when porting code to another language?

The tier taxonomy defines what may change: Tier 2 items like API naming, null representation, collections, and async style should be idiomatic to the target language, while Tier 1 items like metamodel vocabulary, wire format, and error codes must never change.

What should I do when a conformance fixture fails after porting?

Ask whether the fixture should match before trying to make it match, since a red fixture may indicate a stale or wrong golden rather than a port bug. Escalate suspected wrong fixtures instead of editing them to fit the port.

Can I regenerate golden files to make conformance tests pass?

No, silently regenerating a golden to turn a check green is explicitly forbidden. Record incomplete behavior honestly in the expected-failures ledger, because pass/fail decisions belong to the conformance corpus, not the porter.

When is a metamodel feature considered done?

A metamodel feature is not done until its conformance fixtures exist and the reference implementation runs green against them. Fixtures come first, before any porting work to other languages begins.