rust
Skill553 starsChanged 5 months agoApache-2.0View on GitHub
Elodin Rust style and anti-patterns. Use when writing or reviewing Rust in this repo, adding error types, designing APIs, or when the user mentions Rust conventions or DONTs.
38 other projects use a version of this.
Adopted by
Most recently taken up by
- crbnos/carbontheir own version, first seen Nov 7, 2026
- lawless-m/claude-skillstheir own version, first seen Nov 6, 2026
- inference-gateway/skillstheir own version, first seen Nov 5, 2026
- alexjmiller5/agent-config-publictheir own version, first seen Nov 1, 2026
- its-ash/skillstheir own version, first seen Nov 1, 2026
- mattblr/skillstheir own version, first seen Nov 1, 2026
Used with
Projects with it also use java, node and 9 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
testdino-hqSkilljava
Google's official Java style guide. Covers 2-space indentation, 100-char line limit, naming conventions, braces, imports, Javadoc, exception handling, lambdas, and streams. Enforces @Override annotations and specific imports.
Also in 4 projects that use this
mcollinaSkillnode
Provides domain-specific best practices for Node.js development with TypeScript, covering type stripping, async patterns, error handling, streams, modules, testing, performance, caching, logging, and more. Use when setting up Node.js projects with native TypeScript support, configuring type stripping (--experimental-strip-types), writing Node 22+ TypeScript without a build step, or when the user mentions 'native TypeScript in Node', 'strip types', 'Node 22 TypeScript', '.ts files without compilation', 'ts-node alternative', or needs guidance on error handling, graceful shutdown, flaky tests, profiling, or environment configuration in Node.js. Helps configure tsconfig.json for type stripping, set up package.json scripts, handle module resolution and import extensions, and apply robust patterns across the full Node.js stack.
Also in 3 projects that use this
rogue-dev-studioSkillpython
Python 3.13 with uv package manager via mise. Use when the project needs this capability or the user / team manifest asks for it. Use for specialized `python` work when listed in TEAM.yaml or explicitly requested.
Also in 6 projects that use this
rogue-dev-studioSkillgolang
Go development environment. Use when the project needs this capability or the user / team manifest asks for it. Use for specialized `golang` work when listed in TEAM.yaml or explicitly requested.
Also in 3 projects that use this
trotsky1997Skillast-grep
Guide for writing ast-grep rules to perform structural code search and analysis. Use when users need to search codebases using Abstract Syntax Tree (AST) patterns, find specific code structures, or perform complex code queries that go beyond simple text search. This skill should be used when users ask to search for code patterns, find specific language constructs, or locate code with particular structural characteristics.
Also in 3 projects that use this
OpenAISkillnextjs
Next.js App Router expert guidance. Use when building, debugging, or architecting Next.js applications — routing, Server Components, Server Actions, Cache Components, layouts, middleware/proxy, data fetching, rendering strategies, and deployment on Vercel.
Also in 3 projects that use this
Other versions38 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 38
- ccusage/ccusage★ 19ksame name
- ryoppippi/ccusage★ 19ksame name
- microsoft/fast★ 9.7ksame name
- pgdogdev/pgdog★ 5.6ksame name
- crbnos/carbon★ 2.8ksame name
- Mindrally/skills★ 275same name
- Moosync/Moosync★ 264same name
- wado-lang/wado★ 120same name
- databricks-solutions/apx★ 91same name
- youlaitech/youlai-skills★ 63same name
28 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository17 other files it gives its agents.
- AGENTS.mdAGENTS.md
- bevySkill
- branch-regressionSkill
- elodin-alephSkill
- elodin-craneliftSkill
- elodin-dbSkill
- elodin-devSkill
- elodin-editor-devSkill
- elodin-headless-captureSkill
- elodin-monte-carloSkill
- elodin-nixSkill
- elodin-simulationSkill
- elodin-tracySkill
- gltf-asset-optimizationSkill
- kdl-to-python-schematicSkill
- nox-py-devSkill
- qa-test-planSkill
The file
We split this skill into the rules it gives an agent
6 rules. 0 are common, 1 is distinctive, and 5 are very specific to this project.
0
Common
Most of the 31 edited versions we read keep these.
1
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 13
Do not use String as an error type.
- Distinctive: line 16
Do not use accessory functions that do nothing, e.g.,
- Very specific: line 27
Do not allocate strings if you can help it.
- Very specific: line 32
Avoid unwrap() and expect() except for mutex locks, logical invariants (guaranteed success), prototypes, tests, and examples.
- Very specific: line 35
Don't call format! multiple times in succession.
- Very specific: line 40
Consider using Cow<'static, str> for a field instead of String or &'static str if static strings are the rule but exceptional cases require …
“Common” is measured: kept by at least 6 in 10 of the 31 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Rust
DON'Ts
- Do not use
Stringas an error type. Usethiserrorcrate and an enum in general. - Do not use accessory functions that do nothing, e.g.,
pub fn stats(&self) -> &Snapshot {
&self.snapshot
}This is an old object-oriented pattern that we do not need. Expose fields as
pub or pub(crate) and access them directly.
- Do not allocate strings if you can help it. Be suspicious of
format!,to_string(),to_owned(),into(),str::to_lowercase(),str::to_uppercase(),str::replace*(),str::repeat(),Path::to_string_lossy(),PathBuf::to_path_buf(). - Avoid
unwrap()andexpect()except for mutex locks, logical invariants (guaranteed success), prototypes, tests, and examples. - Don't call
format!multiple times in succession; it allocates a string each time. Usewrite!to build upon oneString.
DOs
- Consider using
Cow<'static, str>for a field instead ofStringor&'static strif static strings are the rule but exceptional cases require an ownedStrings, e.g., for error enum variants:Message(Cow<'static, str>).
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.

