← 返回
未分类

Multiple Language Coder

Polyglot code converter and language architect. Use when input contains mixed, ambiguous, pseudo, or multi-language code fragments (Python+JS syntax blends,...
多语言代码转换器和语言架构师。适用于输入包含混合、模糊、伪代码或多语言代码片段(如Python+JS语法混合等)的情况。
jhauga jhauga 来源
未分类 clawhub v1.0.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 342
下载
💾 0
安装
1
版本
#latest

概述

Multi-Language Code Converter and Language Architect

Convert mixed, pseudo, or multi-language input into idiomatic production code, and select the right language(s) when none is dictated by the project.

When to Use This Skill

  • Input mixes syntax from multiple languages (e.g., def and function in the same block, this. next to self., semicolons mixed with indentation-based blocks)
  • Input is pseudocode or natural language describing behavior plus code fragments
  • User asks to "convert", "port", "translate", or "rewrite" code into another language
  • A new project is starting with no language chosen and the user wants a recommendation
  • A specification mixes config (YAML/TOML), SQL, and procedural logic that must be split into the right files

Operating Phases

Work through these phases in order. Skip a phase only when its premise does not apply (e.g., skip Phase 2 if a target language is already obvious from the project or user).

Phase 1 — Detect Existing Context

Before choosing a language, scan for signals in this priority order:

  1. Explicit user instruction — Always wins. If the user says "in Rust", produce Rust.
  2. Project manifestspackage.json, pyproject.toml / requirements.txt, Cargo.toml, go.mod, *.csproj, pom.xml / build.gradle, Gemfile, composer.json, tsconfig.json. The first one found generally dictates the target.
  3. Source file extensions — Dominant extension in the workspace (.ts, .py, .rs, .go, .java, .cs, .rb, .cpp, .kt, .swift).
  4. Open editor / active file — Match the language of the file the user is editing.
  5. Nothing found — Proceed to Phase 2.

Phase 2 — Select Language (New Projects Only)

Run this only when Phase 1 yields no target. Map the goal to a domain, then pick the best fit:

DomainStrong defaultAlternatives
--------------------------------------
Systems / performance-criticalRustC++, Go, Zig
Web backend / APITypeScript (Node)Go, Python, Java, C#, Ruby
Web frontend / UITypeScriptJavaScript
Data / ML / AIPythonR, Julia
Mobile (native)Swift (iOS) / Kotlin (Android)Dart/Flutter, React Native
Scripting / automationPythonBash (Unix), PowerShell (Windows)
Embedded / IoTC / RustC++, MicroPython
Enterprise / type-heavyJava / C#TypeScript, Kotlin

Decide single vs. polyglot:

  • Frontend + backend → always two languages (TS frontend + backend of choice).
  • Data pipeline + API → Python for data, Go/Node for API is a reasonable split.
  • Otherwise prefer a single language — every additional language costs maintenance.

State the choice briefly (2–3 sentences per language) before writing code. Include one tradeoff the user should know.

Phase 3 — Parse the Mixed Input

For each fragment in the input:

  1. Classify — Which language(s) does the syntax most resemble? Tag fragments (Python-like, JS-like, SQL, shell, config, prose intent).
  2. Extract intent — What is this fragment trying to do? What flows in/out? What are the side effects?
  3. Flag ambiguities — If intent is genuinely unclear, list assumptions explicitly. If an assumption materially changes the output, ask before generating.
  4. Map — For each fragment, identify the idiomatic equivalent in the target language.

Phase 4 — Generate Code

  • Use idiomatic syntax, formatting, and conventions for the target (PEP 8 for Python, rustfmt for Rust, gofmt for Go, Airbnb/standard for JS/TS, etc.).
  • Apply the language's native error-handling pattern (exceptions, Result, error returns, promises). Do not port one language's pattern into another.
  • Add types/type hints where the language supports or requires them.
  • Produce runnable units (correct imports, package declarations, module headers) unless the input is clearly a snippet.
  • If the input implies multiple files/modules, emit each as a separate labeled block.
  • List required dependencies with install commands (pip install …, npm install …, cargo add …).

Phase 5 — Respond in This Format

  1. Language decision (only if Phase 2 ran) — one short paragraph.
  2. Conversion notes — bullets covering: ambiguities, assumptions made, fragments that were restructured and why.
  3. Generated code — one labeled code block per file/module.
  4. Dependencies — install commands.
  5. Next steps (optional) — only if the input was a partial spec.

Gotchas

  • Never silently drop input logic. If a fragment cannot be cleanly converted (e.g., Python's GIL-dependent threading patterns into JS), call it out in conversion notes and propose an equivalent — do not omit it.
  • Never leave mixed syntax in output. If the output still contains def and function together, this and self together, or print and console.log together, the conversion has failed. Re-check before responding.
  • Do not auto-convert config/data files (JSON, YAML, TOML, XML). Treat them as context unless the user explicitly asks for conversion.
  • Error-handling idioms are not portable. Rewriting Python try/except as Go try/catch produces non-compiling code. Translate to the target's native pattern (if err != nil, Result, etc.).
  • Indentation vs. braces. When converting from Python to a brace language (or vice versa), re-derive block structure from intent, not from the original whitespace — Python whitespace inside JS will silently change semantics.
  • Don't invent dependencies. If the input uses requests, the TS equivalent is fetch/axios — pick one and justify it; do not fabricate package names.
  • Honor explicit user language choice above all heuristics. Even if the project is Python, if the user says "give me this in Rust", produce Rust and note the mismatch.
  • Prefer one language over polyglot unless justified. Splitting a small script into "Python for data + Node for API" is overkill — state the tradeoff and recommend the simpler path.
  • Already-valid code in the right language ≠ conversion task. If the input is already clean code in the project's language, say so and offer style/quality improvements instead of rewriting it.

Mini Examples of Mixed Input This Skill Handles

  • Python import and if response.status_code == 200: inside a JS function () { … } wrapper with console.log — convert wholesale to one language.
  • Shell script containing free-form SELECT * FROM users and loop through rows prose — split into a real shell driver plus a real SQL file, or fold into one language with a DB client.
  • Class definition mixing def __init__(self), this.users, new ArrayList(), throw new Exception — pick one OO language and produce idiomatic class.
  • Pure natural-language spec ("POST /users, validate email regex, bcrypt cost=12, INSERT …, return 201") — treat as feature spec, generate full handler in target language.
  • YAML config with embedded if ENV == "production" and Math.max(5, cpu_count * 2) — split static config from runtime logic; emit a clean config file plus loader code.

References

  • Tree-sitter (multi-language parsing reference):
  • GitHub Linguist (language detection heuristics):
  • Benchmarks Game (cross-language performance reference):
  • TIOBE Index (language popularity):

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-05-21 14:02 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

dev-programming

Mcporter

steipete
使用 mcporter CLI 直接列出、配置、认证及调用 MCP 服务器/工具(支持 HTTP 或 stdio),涵盖临时服务器、配置编辑及 CLI/类型生成功能。
★ 195 📥 67,774
dev-programming

Github

steipete
使用 `gh` CLI 与 GitHub 交互,通过 `gh issue`、`gh pr`、`gh run` 和 `gh api` 管理议题、PR、CI 运行及高级查询。
★ 679 📥 328,287
dev-programming

CodeConductor.ai

larsonreever
AI驱动平台,提供快速全栈开发、智能体、工作流自动化及低代码AI集成的可扩展产品创建。
★ 72 📥 182,114