Skip to content
Back to skills

Language Runtime Selection

ASecurity

`analysis-agent`/`task-agent`/`review-agent`: use when language/runtime choice changes semantics, concurrency, memory, deployment, or FFI; skip when runtime is fixed.

  • 7 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 8, 2026
testingrustperformance

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add machenjie/rd-skills --skill language-runtime-selection --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Language Runtime Selection?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Language Runtime Selection
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/machenjie-language-runtime-selection/badge)](https://www.skillsdirectory.com/skills/machenjie-language-runtime-selection)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: language-runtime-selection
description: "`analysis-agent`/`task-agent`/`review-agent`: use when language/runtime choice changes semantics, concurrency, memory, deployment, or FFI; skip when runtime is fixed."
---

# language-runtime-selection

## Registry Trigger

**Use when**

- Selecting or adding a programming language or runtime can change workload fit, type and error semantics, concurrency, memory behavior, deployment, or interoperability.
- More than one repository-supported runtime remains feasible, or a new runtime is proposed to satisfy a hard constraint.

**Do not use when**

- The language/runtime is fixed and the open question is idiomatic usage, performance tuning, tests, packages, build mechanics, or configuration.
- The task changes a framework or platform without changing the programming language or runtime boundary.

## Skill Role

Select a language and runtime from workload fit, semantic guarantees, concurrency and memory model, ecosystem lifecycle, deployment artifact, cross-language boundaries, operational coverage, and exit risk. Exclude stack-wide platform selection.

## High-Value Rules

- Screen candidates against hard workload, latency, throughput, memory, startup, platform, safety, contract, deployment, and support constraints before comparing familiarity or preference.
- Treat the existing approved runtime as a candidate with known build, deploy, observability, and incident paths; a new runtime names the constraint or boundary advantage that justifies another lane.
- Compare runtime semantics across types, errors, numerics, serialization, and external boundaries without treating compile-time types as input validation.
- Compare threads, coroutines, event loops, scheduling, cancellation, backpressure, synchronization, and blocking behavior against the workload's failure and shutdown paths.
- Compare allocation and ownership, GC or manual memory behavior, resource cleanup, startup and initialization, artifact footprint, and crash or recovery behavior on target platforms.
- Verify package ecosystem, toolchain and platform support, lifecycle policy, supply-chain controls, profiler and debugger coverage, release upgrades, and accountable operational support.
- Define deployment, migration, rollback, and exit behavior plus any ABI/FFI, generated-contract, mixed-runtime-observability, or coexistence obligations the choice actually creates.
- Record versions, environment, sample, date, and unproved limits for benchmark and support claims.

## Anti-Patterns

- Popularity, team familiarity, or language reputation substitutes for workload and failure-mode evidence.
- A type system is treated as validation for untrusted or versioned external data.
- A prototype or public benchmark ignores the built artifact, deployment topology, scheduler, allocator, dependencies, or target concurrency.
- A new runtime hides another build/deploy lane, package ecosystem, incident toolchain, FFI ownership, or retirement obligation.

## Stop Conditions

- Route stack, comparison, package, build, configuration, idiom, runtime-safety, test, and native-boundary decisions to their named owners.
- Return an unresolved selection when candidate feasibility, representative measurements, platform support, operational ownership, coexistence safety, migration or rollback, or exit authority lacks current evidence.

## Output Contract

- language-runtime decision with selected candidate, rejected alternatives, hard-constraint evidence, workload and semantic fit, concurrency, memory, lifecycle, ecosystem, deployment, FFI, migration, rollback, exit, specialist routes, proof limits, residual risk, and unresolved owner

## Targeted References

| Path | Type | Load when | Do not load when | Required by | Required output |
|---|---|---|---|---|---|
| [benchmarks and patterns](references/benchmarks-and-patterns.md) | benchmark-pattern | Competing language-runtime candidates differ in semantics concurrency memory deployment ecosystem FFI lifecycle or exit behavior | The language runtime is fixed and no runtime boundary or migration decision changes | analysis-agent, task-agent, review-agent | option-comparison, selected-approach |

Files in this skill

  • SKILL.md4.1 KB
  • references/benchmarks-and-patterns.md2.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…