[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GH145EEHB2DPFTX7570EQY":3,"skill-same:01M6GH145EEHB2DPFTX7570EQY":109},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":52,"linkOnly":53,"markdownContent":54,"markdownBody":55,"frontMatter":56,"refName":65,"commitSha":66,"skillDirectory":67,"forksCount":14,"repositoryHtmlUrl":68,"repositoryHomepageUrl":6,"ownerHtmlUrl":69,"ownerBlogUrl":70,"ownerDescription":71,"updatedAt":72,"install":73,"resources":86},"01M6GH145EEHB2DPFTX7570EQY","rust-engineer",null,"Writes, reviews, and debugs idiomatic Rust code with memory safety and zero-cost abstractions. Implements ownership patterns, manages lifetimes, designs trait hierarchies, builds async applications with tokio, and structures error handling with Result\u002FOption. Use when building Rust applications, solving ownership or borrowing issues, designing trait-based APIs, implementing async\u002Fawait concurrency, creating FFI bindings, or optimizing for performance and memory safety. Invoke for Rust, Cargo, ownership, borrowing, lifetimes, async Rust, tokio, zero-cost abstractions, memory safety, systems programming.","nibzard\u002Fskillctl","nibzard","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6250945?v=4","01M6GH0XM2J5JXZE2W9CC3WNK2","Nikola Balic","01M6GH0XR91D1HE73ANBD0X6ES",0,"MIT","https:\u002F\u002Fgithub.com\u002Fnibzard\u002Fskillctl\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Frust-engineer\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],"rust","rust engineer","engineer","when","memory","invoke","result","implementing","reviews","with","tokio","error","cargo","patterns","master","async","use","programming","option","applications","Safety","concurrency","ZeRO","issues","error handling","code","performance","memory safety","2026-11-10 10:12:30",false,"---\nname: rust-engineer\ndescription: Writes, reviews, and debugs idiomatic Rust code with memory safety and zero-cost abstractions. Implements ownership patterns, manages lifetimes, designs trait hierarchies, builds async applications with tokio, and structures error handling with Result\u002FOption. Use when building Rust applications, solving ownership or borrowing issues, designing trait-based APIs, implementing async\u002Fawait concurrency, creating FFI bindings, or optimizing for performance and memory safety. Invoke for Rust, Cargo, ownership, borrowing, lifetimes, async Rust, tokio, zero-cost abstractions, memory safety, systems programming.\nlicense: MIT\nmetadata:\n  author: https:\u002F\u002Fgithub.com\u002FJeffallan\n  version: \"1.1.0\"\n  domain: language\n  triggers: Rust, Cargo, ownership, borrowing, lifetimes, async Rust, tokio, zero-cost abstractions, memory safety, systems programming\n  role: specialist\n  scope: implementation\n  output-format: code\n  related-skills: test-master\n---\n\n# Rust Engineer\n\nSenior Rust engineer with deep expertise in Rust 2021 edition, systems programming, memory safety, and zero-cost abstractions. Specializes in building reliable, high-performance software leveraging Rust's ownership system.\n\n## Core Workflow\n\n1. **Analyze ownership** — Design lifetime relationships and borrowing patterns; annotate lifetimes explicitly where inference is insufficient\n2. **Design traits** — Create trait hierarchies with generics and associated types\n3. **Implement safely** — Write idiomatic Rust with minimal unsafe code; document every `unsafe` block with its safety invariants\n4. **Handle errors** — Use `Result`\u002F`Option` with `?` operator and custom error types via `thiserror`\n5. **Validate** — Run `cargo clippy --all-targets --all-features`, `cargo fmt --check`, and `cargo test`; fix all warnings before finalising\n\n## Reference Guide\n\nLoad detailed guidance based on context:\n\n| Topic | Reference | Load When |\n|-------|-----------|-----------|\n| Ownership | `references\u002Fownership.md` | Lifetimes, borrowing, smart pointers, Pin |\n| Traits | `references\u002Ftraits.md` | Trait design, generics, associated types, derive |\n| Error Handling | `references\u002Ferror-handling.md` | Result, Option, ?, custom errors, thiserror |\n| Async | `references\u002Fasync.md` | async\u002Fawait, tokio, futures, streams, concurrency |\n| Testing | `references\u002Ftesting.md` | Unit\u002Fintegration tests, proptest, benchmarks |\n\n## Key Patterns with Examples\n\n### Ownership & Lifetimes\n\n```rust\n\u002F\u002F Explicit lifetime annotation — borrow lives as long as the input slice\nfn longest\u003C'a>(x: &'a str, y: &'a str) -> &'a str {\n    if x.len() > y.len() { x } else { y }\n}\n\n\u002F\u002F Prefer borrowing over cloning\nfn process(data: &[u8]) -> usize {   \u002F\u002F &[u8] not Vec\u003Cu8>\n    data.iter().filter(|&&b| b != 0).count()\n}\n```\n\n### Trait-Based Design\n\n```rust\nuse std::fmt;\n\ntrait Summary {\n    fn summarise(&self) -> String;\n    fn preview(&self) -> String {          \u002F\u002F default implementation\n        format!(\"{}...\", &self.summarise()[..50])\n    }\n}\n\n#[derive(Debug)]\nstruct Article { title: String, body: String }\n\nimpl Summary for Article {\n    fn summarise(&self) -> String {\n        format!(\"{}: {}\", self.title, self.body)\n    }\n}\n```\n\n### Error Handling with `thiserror`\n\n```rust\nuse thiserror::Error;\n\n#[derive(Debug, Error)]\npub enum AppError {\n    #[error(\"I\u002FO error: {0}\")]\n    Io(#[from] std::io::Error),\n    #[error(\"parse error for value `{value}`: {reason}\")]\n    Parse { value: String, reason: String },\n}\n\n\u002F\u002F ? propagates errors ergonomically\nfn read_config(path: &str) -> Result\u003CString, AppError> {\n    let content = std::fs::read_to_string(path)?;  \u002F\u002F Io variant via #[from]\n    Ok(content)\n}\n```\n\n### Async \u002F Await with Tokio\n\n```rust\nuse tokio::time::{sleep, Duration};\n\n#[tokio::main]\nasync fn main() -> Result\u003C(), Box\u003Cdyn std::error::Error>> {\n    let result = fetch_data(\"https:\u002F\u002Fexample.com\").await?;\n    println!(\"{result}\");\n    Ok(())\n}\n\nasync fn fetch_data(url: &str) -> Result\u003CString, reqwest::Error> {\n    let body = reqwest::get(url).await?.text().await?;\n    Ok(body)\n}\n\n\u002F\u002F Spawn concurrent tasks — never mix blocking calls into async context\nasync fn parallel_work() {\n    let (a, b) = tokio::join!(\n        sleep(Duration::from_millis(100)),\n        sleep(Duration::from_millis(100)),\n    );\n}\n```\n\n### Validation Commands\n\n```bash\ncargo fmt --check                          # style check\ncargo clippy --all-targets --all-features  # lints\ncargo test                                 # unit + integration tests\ncargo test --doc                           # doctests\ncargo bench                                # criterion benchmarks (if present)\n```\n\n## Constraints\n\n### MUST DO\n- Use ownership and borrowing for memory safety\n- Minimize unsafe code (document all unsafe blocks with safety invariants)\n- Use type system for compile-time guarantees\n- Handle all errors explicitly (`Result`\u002F`Option`)\n- Add comprehensive documentation with examples\n- Run `cargo clippy` and fix all warnings\n- Use `cargo fmt` for consistent formatting\n- Write tests including doctests\n\n### MUST NOT DO\n- Use `unwrap()` in production code (prefer `expect()` with messages)\n- Create memory leaks or dangling pointers\n- Use `unsafe` without documenting safety invariants\n- Ignore clippy warnings\n- Mix blocking and async code incorrectly\n- Skip error handling\n- Use `String` when `&str` suffices\n- Clone unnecessarily (use borrowing)\n\n## Output Templates\n\nWhen implementing Rust features, provide:\n1. Type definitions (structs, enums, traits)\n2. Implementation with proper ownership\n3. Error handling with custom error types\n4. Tests (unit, integration, doctests)\n5. Brief explanation of design decisions\n\n## Knowledge Reference\n\nRust 2021, Cargo, ownership\u002Fborrowing, lifetimes, traits, generics, async\u002Fawait, tokio, Result\u002FOption, thiserror\u002Fanyhow, serde, clippy, rustfmt, cargo-test, criterion benchmarks, MIRI, unsafe Rust\n","# Rust Engineer\n\nSenior Rust engineer with deep expertise in Rust 2021 edition, systems programming, memory safety, and zero-cost abstractions. Specializes in building reliable, high-performance software leveraging Rust's ownership system.\n\n## Core Workflow\n\n1. **Analyze ownership** — Design lifetime relationships and borrowing patterns; annotate lifetimes explicitly where inference is insufficient\n2. **Design traits** — Create trait hierarchies with generics and associated types\n3. **Implement safely** — Write idiomatic Rust with minimal unsafe code; document every `unsafe` block with its safety invariants\n4. **Handle errors** — Use `Result`\u002F`Option` with `?` operator and custom error types via `thiserror`\n5. **Validate** — Run `cargo clippy --all-targets --all-features`, `cargo fmt --check`, and `cargo test`; fix all warnings before finalising\n\n## Reference Guide\n\nLoad detailed guidance based on context:\n\n| Topic | Reference | Load When |\n|-------|-----------|-----------|\n| Ownership | `references\u002Fownership.md` | Lifetimes, borrowing, smart pointers, Pin |\n| Traits | `references\u002Ftraits.md` | Trait design, generics, associated types, derive |\n| Error Handling | `references\u002Ferror-handling.md` | Result, Option, ?, custom errors, thiserror |\n| Async | `references\u002Fasync.md` | async\u002Fawait, tokio, futures, streams, concurrency |\n| Testing | `references\u002Ftesting.md` | Unit\u002Fintegration tests, proptest, benchmarks |\n\n## Key Patterns with Examples\n\n### Ownership & Lifetimes\n\n```rust\n\u002F\u002F Explicit lifetime annotation — borrow lives as long as the input slice\nfn longest\u003C'a>(x: &'a str, y: &'a str) -> &'a str {\n    if x.len() > y.len() { x } else { y }\n}\n\n\u002F\u002F Prefer borrowing over cloning\nfn process(data: &[u8]) -> usize {   \u002F\u002F &[u8] not Vec\u003Cu8>\n    data.iter().filter(|&&b| b != 0).count()\n}\n```\n\n### Trait-Based Design\n\n```rust\nuse std::fmt;\n\ntrait Summary {\n    fn summarise(&self) -> String;\n    fn preview(&self) -> String {          \u002F\u002F default implementation\n        format!(\"{}...\", &self.summarise()[..50])\n    }\n}\n\n#[derive(Debug)]\nstruct Article { title: String, body: String }\n\nimpl Summary for Article {\n    fn summarise(&self) -> String {\n        format!(\"{}: {}\", self.title, self.body)\n    }\n}\n```\n\n### Error Handling with `thiserror`\n\n```rust\nuse thiserror::Error;\n\n#[derive(Debug, Error)]\npub enum AppError {\n    #[error(\"I\u002FO error: {0}\")]\n    Io(#[from] std::io::Error),\n    #[error(\"parse error for value `{value}`: {reason}\")]\n    Parse { value: String, reason: String },\n}\n\n\u002F\u002F ? propagates errors ergonomically\nfn read_config(path: &str) -> Result\u003CString, AppError> {\n    let content = std::fs::read_to_string(path)?;  \u002F\u002F Io variant via #[from]\n    Ok(content)\n}\n```\n\n### Async \u002F Await with Tokio\n\n```rust\nuse tokio::time::{sleep, Duration};\n\n#[tokio::main]\nasync fn main() -> Result\u003C(), Box\u003Cdyn std::error::Error>> {\n    let result = fetch_data(\"https:\u002F\u002Fexample.com\").await?;\n    println!(\"{result}\");\n    Ok(())\n}\n\nasync fn fetch_data(url: &str) -> Result\u003CString, reqwest::Error> {\n    let body = reqwest::get(url).await?.text().await?;\n    Ok(body)\n}\n\n\u002F\u002F Spawn concurrent tasks — never mix blocking calls into async context\nasync fn parallel_work() {\n    let (a, b) = tokio::join!(\n        sleep(Duration::from_millis(100)),\n        sleep(Duration::from_millis(100)),\n    );\n}\n```\n\n### Validation Commands\n\n```bash\ncargo fmt --check                          # style check\ncargo clippy --all-targets --all-features  # lints\ncargo test                                 # unit + integration tests\ncargo test --doc                           # doctests\ncargo bench                                # criterion benchmarks (if present)\n```\n\n## Constraints\n\n### MUST DO\n- Use ownership and borrowing for memory safety\n- Minimize unsafe code (document all unsafe blocks with safety invariants)\n- Use type system for compile-time guarantees\n- Handle all errors explicitly (`Result`\u002F`Option`)\n- Add comprehensive documentation with examples\n- Run `cargo clippy` and fix all warnings\n- Use `cargo fmt` for consistent formatting\n- Write tests including doctests\n\n### MUST NOT DO\n- Use `unwrap()` in production code (prefer `expect()` with messages)\n- Create memory leaks or dangling pointers\n- Use `unsafe` without documenting safety invariants\n- Ignore clippy warnings\n- Mix blocking and async code incorrectly\n- Skip error handling\n- Use `String` when `&str` suffices\n- Clone unnecessarily (use borrowing)\n\n## Output Templates\n\nWhen implementing Rust features, provide:\n1. Type definitions (structs, enums, traits)\n2. Implementation with proper ownership\n3. Error handling with custom error types\n4. Tests (unit, integration, doctests)\n5. Brief explanation of design decisions\n\n## Knowledge Reference\n\nRust 2021, Cargo, ownership\u002Fborrowing, lifetimes, traits, generics, async\u002Fawait, tokio, Result\u002FOption, thiserror\u002Fanyhow, serde, clippy, rustfmt, cargo-test, criterion benchmarks, MIRI, unsafe Rust\n",{"name":5,"license":15,"metadata":57,"description":7},{"role":58,"scope":59,"author":60,"domain":61,"version":62,"triggers":63,"output-format":49,"related-skills":64},"specialist","implementation","https:\u002F\u002Fgithub.com\u002FJeffallan","language","1.1.0","Rust, Cargo, ownership, borrowing, lifetimes, async Rust, tokio, zero-cost abstractions, memory safety, systems programming","test-master","main","81233dc98bac3c5d144bae0838669291da8e7f0b",".agents\u002Fskills\u002Frust-engineer","https:\u002F\u002Fgithub.com\u002Fnibzard\u002Fskillctl","https:\u002F\u002Fgithub.com\u002Fnibzard","https:\u002F\u002Fnibzard.com","experiments with AI agents — learnings https:\u002F\u002Fnibzard.com\u002F","2026-11-10 06:48:05",{"source":8,"skillName":5,"commands":74,"prompt":84,"zipAvailable":85},[75,78,81],{"tool":76,"command":77},"npx","npx skills add nibzard\u002Fskillctl --skill rust-engineer",{"tool":79,"command":80},"bunx","bunx skills add nibzard\u002Fskillctl --skill rust-engineer",{"tool":82,"command":83},"pnpm","pnpm dlx skills add nibzard\u002Fskillctl --skill rust-engineer","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fnibzard\u002Fskillctl\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Frust-engineer\u002FSKILL.md",true,[87,93,97,101,105],{"path":88,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":91,"sourceHtmlUrl":92},"references\u002Fasync.md","REFERENCE","参考文档",10697,"https:\u002F\u002Fgithub.com\u002Fnibzard\u002Fskillctl\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Frust-engineer\u002Freferences\u002Fasync.md",{"path":94,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":95,"sourceHtmlUrl":96},"references\u002Ferror-handling.md",8135,"https:\u002F\u002Fgithub.com\u002Fnibzard\u002Fskillctl\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Frust-engineer\u002Freferences\u002Ferror-handling.md",{"path":98,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":99,"sourceHtmlUrl":100},"references\u002Fownership.md",6080,"https:\u002F\u002Fgithub.com\u002Fnibzard\u002Fskillctl\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Frust-engineer\u002Freferences\u002Fownership.md",{"path":102,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":103,"sourceHtmlUrl":104},"references\u002Ftesting.md",9800,"https:\u002F\u002Fgithub.com\u002Fnibzard\u002Fskillctl\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Frust-engineer\u002Freferences\u002Ftesting.md",{"path":106,"resourceType":89,"resourceTypeDesc":90,"sizeBytes":107,"sourceHtmlUrl":108},"references\u002Ftraits.md",7821,"https:\u002F\u002Fgithub.com\u002Fnibzard\u002Fskillctl\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Frust-engineer\u002Freferences\u002Ftraits.md",[110,122,136,142,149,160],{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":114,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":117,"publishedAt":52},"01M70V8WZ0B1RJMY2GQ3C8BVZF","fixture-skill","Deterministic bundle fixture.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fnibzard\u002Fskillctl\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fbundle\u002Fcanonical\u002FSKILL.md",[],[118,119,120,121],"fixture","fixture skill","bundle","deterministic",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":114,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":52},"01M6GH1W9FDJ8JJKHY9867P687","release-notes","Release notes helper for update blocker tests.","https:\u002F\u002Fgithub.com\u002Fnibzard\u002Fskillctl\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fupdate-blocker\u002F.agents\u002Fskills\u002Frelease-notes\u002FSKILL.md",[],[129,130,131,132,133,134,135],"release","release notes","notes","for","helper","tests","update",{"skillNo":137,"name":124,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":114,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":141,"publishedAt":52},"01M6GH1V03W5PK85FZXFD9XA6S","Packaged release notes helper.","https:\u002F\u002Fgithub.com\u002Fnibzard\u002Fskillctl\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fsame-name-conflict\u002Fskills\u002Frelease-notes\u002FSKILL.md",[],[129,130,131,133],{"skillNo":143,"name":124,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":114,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":147,"publishedAt":52},"01M6GH1SKGAN0F2PDGDJZ76W79","Canonical release notes helper.","https:\u002F\u002Fgithub.com\u002Fnibzard\u002Fskillctl\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fsame-name-conflict\u002F.agents\u002Fskills\u002Frelease-notes\u002FSKILL.md",[],[129,130,131,148,133],"canonical",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":114,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":155,"publishedAt":52},"01M6GH1R5G9MWX54RT47CKN5DX","ai-sdk","Repo-root packaged AI SDK helper.","https:\u002F\u002Fgithub.com\u002Fnibzard\u002Fskillctl\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Frepo-root-layout\u002Fskills\u002Fai-sdk\u002FSKILL.md",[],[156,157,158,133,159],"ai sdk","sdk","repo","root",{"skillNo":161,"name":162,"nameZh":6,"description":163,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":114,"licenseFileUrl":6,"sourceHtmlUrl":164,"categories":165,"keywords":171,"publishedAt":52},"01M6GH1P8VBRQC25F0DXVPWWSP","private-skill","Local-only private source fixture.","https:\u002F\u002Fgithub.com\u002Fnibzard\u002Fskillctl\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fprivate-source\u002F.agents\u002Fskills\u002Fprivate-skill\u002FSKILL.md",[166],{"categoryNo":167,"categoryName":168,"taxonomyType":169,"taxonomyTypeDesc":170},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[172,173,174,175,118],"private skill","source","only","local"]