preferred-stack
Skill2 starsChanged 7 days agoMITView on GitHub
Choose a programming language or language combo by nearest semantic authority and execution proximity. Use for greenfield trees, independent packages with no owning language, polyglot boundaries, native versus WASM, managed versus AOT native images, TypeScript versus JavaScript host questions, or when house shortcuts conflict with the job's host. Do not use to override an existing tree language or to rewrite UX visual-assessment rules already in the compose fragment.
In this repository21 other files it gives its agents.
- AGENTS.mdAGENTS.md
- agent-artifactSkill
- agent-discoverySkill
- agent-run-supervisionSkill
- api-contract-migrationSkill
- changelog-updateSkill
- change-reviewSkill
- ci-reviewSkill
- claims-auditSkill
- dependency-auditSkill
- derivation-auditSkill
- durable-cacheSkill
- engineering-auditSkill
- infer-conventionsSkill
- operational-signal-intakeSkill
- planned-releaseSkill
- pressure-benchmarkingSkill
- public-surface-reconSkill
- rfc-processSkill
- security-auditSkill
- session-reviewSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 1 is distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 23
Read references/proximity-bands.md when placing a language or combo into a band, or when a transpile layer, WASM target, managed runtime, …
- Very specific: line 38
Place the work in a proximity band from references/proximity-bands.md.
- Distinctive: line 41
Ask the person when two candidates remain in the same band and the choice changes architecture or operability.
- Very specific: line 43
Follow the matching language pack when the project composes one.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Preferred stack selection
The compose fragment defines native-first, tree match, greenfield stop-gates, house shortcuts, and visual-surface rules. This skill owns the selection procedure and proximity bands when the language is not already fixed by the tree.
Quick reference
confirm tree ownership -> name nearest authority -> place proximity band -> shortlist candidates -> apply house shortcut or ask on a tie -> record choice -> follow matching language packRead references/proximity-bands.md when placing a language or combo into a band, or when a transpile layer, WASM target, managed runtime, or engine host is in play.
When to use
- starting a repository, library, or independent package with no owning language yet;
- adding a polyglot boundary (native helper beside a managed app, SQL beside an API, shader beside a host);
- deciding native versus WASM, JVM or CLR versus a native image, browser JS versus a server JS runtime, or engine-hosted guests;
- resolving whether TypeScript, another typed front end, or a JS-like transpile changes proximity (it inherits the execution host).
Skip when the directory already has a language. Match that language and open the matching language pack. Skip ordinary edits inside an owned tree. Skip visual-assessment work already covered by the compose fragment.
Procedure
- Confirm ownership. If the path already belongs to a language tree, stop. Match that language.
- Name the nearest semantic authority the new code must speak: CPU/ISA or freestanding ABI, OS ABI and syscalls, browser document and style engines, a named language VM or runtime, a database engine, a GPU shader pipeline, a build or cluster orchestrator, a game or media engine, or another named host.
- Place the work in a proximity band from
references/proximity-bands.md. The band is a house heuristic about ordinary execution placement. - Shortlist languages whose common execution form lives in that band. Prefer the closest band that still meets the contract. Familiar source syntax does not move a guest into a closer band.
- Apply a house shortcut only when proximity and team practice agree (ruby web/API, elixir concurrent/distributed on the BEAM, rust systems/native performance, javascript/html/css browser surface).
- Ask the person when two candidates remain in the same band and the choice changes architecture or operability. Do not ask when the tree or authority already decides.
- Record in the work product: chosen language or combo, nearest authority, proximity band, and why a closer option was rejected or unavailable.
- Follow the matching language pack when the project composes one. Follow
minimal-implementationanddependency-policybefore adding frameworks or registry packages.
Output shape
Use labeled bullets:
- language or combo: ...
- nearest authority: ...
- proximity band: ...
- house shortcut applied: yes/no and which
- closer options rejected: ...
- language pack in project: ... or none
Traps
- TypeScript (and similar typed fronts) inherits the JavaScript host after type erasure or type stripping. "TypeScript Native" compiler tooling names the toolchain, not the application runtime.
- Rust, Zig, Go, or C targeting WASM inherit the WASM host and its imports, not the OS-native band of the same source language.
- NativeAOT, Graal native image, and Kotlin/Native move closer to OS ABI than their managed defaults, but they still carry a runtime subset. Place them by the shipped execution form, not by the language family name alone.
- Engine-hosted languages (Flutter Dart, Unity C#, Godot scripts) stay engine-proximate even when a release build emits native machine code.
- SQL and infrastructure languages stay proximate to their engine or orchestrator, including embedded engines such as SQLite.
Routing
minimal-implementationfor scope and first-party packaging stop-gates;dependency-policybefore adding a third-party package;- language packs for idioms after the choice;
infer-conventionswhen encoding how this tree writes;engineering-auditwhen reviewing an existing polyglot boundary, not for the initial pick.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

