[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71M43CFAAN7W8QNT5MY8KRR":3,"skill-same:01M71M43CFAAN7W8QNT5MY8KRR":73},{"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":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":50,"commitSha":51,"skillDirectory":52,"forksCount":53,"repositoryHtmlUrl":54,"repositoryHomepageUrl":6,"ownerHtmlUrl":55,"ownerBlogUrl":56,"ownerDescription":57,"updatedAt":58,"install":59,"resources":72},"01M71M43CFAAN7W8QNT5MY8KRR","rust-best-practices",null,"Guide for writing idiomatic Rust code based on Apollo GraphQL's best practices handbook. Use this skill when: (1) writing new Rust code or functions, (2) reviewing or refactoring existing Rust code, (3) deciding between borrowing vs cloning or ownership patterns, (4) implementing error handling with Result types, (5) optimizing Rust code for performance, (6) writing tests or documentation for Rust projects.","iDorgham\u002FWorkspace-Factory","iDorgham","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F136521493?v=4","01M6CNGBDAHE4ARW3YJEF4X2FD","Dorgham","01M71E8H3CXZ7DJX59MTM9JEB2",1,"MIT","https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory\u002Fblob\u002Fmaster\u002Ffactory\u002Flibrary\u002Fskills\u002Fofficial_apollographql_rust_best_practices\u002Fskill.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"rust best practices","best practices","rust","write","read","refactoring","cloning","result","apollo graphql","documentation","code","Bash","when","writing","new","implementing","performance","types","projects","error","2026-11-10 10:56:23",false,"---\nname: rust-best-practices\ndescription: >\n  Guide for writing idiomatic Rust code based on Apollo GraphQL's best practices handbook. Use this skill when:\n  (1) writing new Rust code or functions,\n  (2) reviewing or refactoring existing Rust code,\n  (3) deciding between borrowing vs cloning or ownership patterns,\n  (4) implementing error handling with Result types,\n  (5) optimizing Rust code for performance,\n  (6) writing tests or documentation for Rust projects.\nlicense: MIT\ncompatibility: Rust 1.70+, Cargo\nmetadata:\n  author: apollographql\n  version: \"1.1.0\"\nallowed-tools: Bash(cargo:*) Bash(rustc:*) Bash(rustfmt:*) Bash(clippy:*) Read Write Edit Glob Grep\n---\n\n# Rust Best Practices\n\nApply these guidelines when writing or reviewing Rust code. Based on Apollo GraphQL's [Rust Best Practices Handbook](https:\u002F\u002Fgithub.com\u002Fapollographql\u002Frust-best-practices).\n\n## Best Practices Reference\n\nBefore reviewing, familiarize yourself with Apollo's Rust best practices. Read ALL relevant chapters in the same turn in parallel. Reference these files when providing feedback:\n\n- Chapter 1 - Coding Styles and Idioms (`references\u002Fchapter_01.md`): Borrowing vs cloning, Copy trait, Option\u002FResult handling, iterators, comments\n- Chapter 2 - Clippy and Linting (`references\u002Fchapter_02.md`): Clippy configuration, important lints, workspace lint setup\n- Chapter 3 - Performance Mindset (`references\u002Fchapter_03.md`): Profiling, avoiding redundant clones, stack vs heap, zero-cost abstractions\n- Chapter 4 - Error Handling (`references\u002Fchapter_04.md`): Result vs panic, thiserror vs anyhow, error hierarchies\n- Chapter 5 - Automated Testing (`references\u002Fchapter_05.md`): Test naming, one assertion per test, snapshot testing\n- Chapter 6 - Generics and Dispatch (`references\u002Fchapter_06.md`): Static vs dynamic dispatch, trait objects\n- Chapter 7 - Type State Pattern (`references\u002Fchapter_07.md`): Compile-time state safety, when to use it\n- Chapter 8 - Comments vs Documentation (`references\u002Fchapter_08.md`): When to comment, doc comments, rustdoc\n- Chapter 9 - Understanding Pointers (`references\u002Fchapter_09.md`): Thread safety, Send\u002FSync, pointer types\n\n## Quick Reference\n\n### Borrowing & Ownership\n- Prefer `&T` over `.clone()` unless ownership transfer is required\n- Use `&str` over `String`, `&[T]` over `Vec\u003CT>` in function parameters\n- Small `Copy` types (≤24 bytes) can be passed by value\n- Use `Cow\u003C'_, T>` when ownership is ambiguous\n\n### Error Handling\n- Return `Result\u003CT, E>` for fallible operations; avoid `panic!` in production\n- Never use `unwrap()`\u002F`expect()` outside tests\n- Use `thiserror` for library errors, `anyhow` for binaries only\n- Prefer `?` operator over match chains for error propagation\n\n### Performance\n- Always benchmark with `--release` flag\n- Run `cargo clippy -- -D clippy::perf` for performance hints\n- Avoid cloning in loops; use `.iter()` instead of `.into_iter()` for Copy types\n- Prefer iterators over manual loops; avoid intermediate `.collect()` calls\n\n### Linting\nRun regularly: `cargo clippy --all-targets --all-features --locked -- -D warnings`\n\nKey lints to watch:\n- `redundant_clone` - unnecessary cloning\n- `large_enum_variant` - oversized variants (consider boxing)\n- `needless_collect` - premature collection\n\nUse `#[expect(clippy::lint)]` over `#[allow(...)]` with justification comment.\n\n### Testing\n- Name tests descriptively: `process_should_return_error_when_input_empty()`\n- One assertion per test when possible\n- Use doc tests (`\u002F\u002F\u002F`) for public API examples\n- Consider `cargo insta` for snapshot testing generated output\n\n### Generics & Dispatch\n- Prefer generics (static dispatch) for performance-critical code\n- Use `dyn Trait` only when heterogeneous collections are needed\n- Box at API boundaries, not internally\n\n### Type State Pattern\nEncode valid states in the type system to catch invalid operations at compile time:\n```rust\nstruct Connection\u003CState> { \u002F* ... *\u002F _state: PhantomData\u003CState> }\nstruct Disconnected;\nstruct Connected;\n\nimpl Connection\u003CConnected> {\n    fn send(&self, data: &[u8]) { \u002F* only connected can send *\u002F }\n}\n```\n\n### Documentation\n- `\u002F\u002F` comments explain *why* (safety, workarounds, design rationale)\n- `\u002F\u002F\u002F` doc comments explain *what* and *how* for public APIs\n- Every `TODO` needs a linked issue: `\u002F\u002F TODO(#42): ...`\n- Enable `#![deny(missing_docs)]` for libraries\n","# Rust Best Practices\n\nApply these guidelines when writing or reviewing Rust code. Based on Apollo GraphQL's [Rust Best Practices Handbook](https:\u002F\u002Fgithub.com\u002Fapollographql\u002Frust-best-practices).\n\n## Best Practices Reference\n\nBefore reviewing, familiarize yourself with Apollo's Rust best practices. Read ALL relevant chapters in the same turn in parallel. Reference these files when providing feedback:\n\n- Chapter 1 - Coding Styles and Idioms (`references\u002Fchapter_01.md`): Borrowing vs cloning, Copy trait, Option\u002FResult handling, iterators, comments\n- Chapter 2 - Clippy and Linting (`references\u002Fchapter_02.md`): Clippy configuration, important lints, workspace lint setup\n- Chapter 3 - Performance Mindset (`references\u002Fchapter_03.md`): Profiling, avoiding redundant clones, stack vs heap, zero-cost abstractions\n- Chapter 4 - Error Handling (`references\u002Fchapter_04.md`): Result vs panic, thiserror vs anyhow, error hierarchies\n- Chapter 5 - Automated Testing (`references\u002Fchapter_05.md`): Test naming, one assertion per test, snapshot testing\n- Chapter 6 - Generics and Dispatch (`references\u002Fchapter_06.md`): Static vs dynamic dispatch, trait objects\n- Chapter 7 - Type State Pattern (`references\u002Fchapter_07.md`): Compile-time state safety, when to use it\n- Chapter 8 - Comments vs Documentation (`references\u002Fchapter_08.md`): When to comment, doc comments, rustdoc\n- Chapter 9 - Understanding Pointers (`references\u002Fchapter_09.md`): Thread safety, Send\u002FSync, pointer types\n\n## Quick Reference\n\n### Borrowing & Ownership\n- Prefer `&T` over `.clone()` unless ownership transfer is required\n- Use `&str` over `String`, `&[T]` over `Vec\u003CT>` in function parameters\n- Small `Copy` types (≤24 bytes) can be passed by value\n- Use `Cow\u003C'_, T>` when ownership is ambiguous\n\n### Error Handling\n- Return `Result\u003CT, E>` for fallible operations; avoid `panic!` in production\n- Never use `unwrap()`\u002F`expect()` outside tests\n- Use `thiserror` for library errors, `anyhow` for binaries only\n- Prefer `?` operator over match chains for error propagation\n\n### Performance\n- Always benchmark with `--release` flag\n- Run `cargo clippy -- -D clippy::perf` for performance hints\n- Avoid cloning in loops; use `.iter()` instead of `.into_iter()` for Copy types\n- Prefer iterators over manual loops; avoid intermediate `.collect()` calls\n\n### Linting\nRun regularly: `cargo clippy --all-targets --all-features --locked -- -D warnings`\n\nKey lints to watch:\n- `redundant_clone` - unnecessary cloning\n- `large_enum_variant` - oversized variants (consider boxing)\n- `needless_collect` - premature collection\n\nUse `#[expect(clippy::lint)]` over `#[allow(...)]` with justification comment.\n\n### Testing\n- Name tests descriptively: `process_should_return_error_when_input_empty()`\n- One assertion per test when possible\n- Use doc tests (`\u002F\u002F\u002F`) for public API examples\n- Consider `cargo insta` for snapshot testing generated output\n\n### Generics & Dispatch\n- Prefer generics (static dispatch) for performance-critical code\n- Use `dyn Trait` only when heterogeneous collections are needed\n- Box at API boundaries, not internally\n\n### Type State Pattern\nEncode valid states in the type system to catch invalid operations at compile time:\n```rust\nstruct Connection\u003CState> { \u002F* ... *\u002F _state: PhantomData\u003CState> }\nstruct Disconnected;\nstruct Connected;\n\nimpl Connection\u003CConnected> {\n    fn send(&self, data: &[u8]) { \u002F* only connected can send *\u002F }\n}\n```\n\n### Documentation\n- `\u002F\u002F` comments explain *why* (safety, workarounds, design rationale)\n- `\u002F\u002F\u002F` doc comments explain *what* and *how* for public APIs\n- Every `TODO` needs a linked issue: `\u002F\u002F TODO(#42): ...`\n- Enable `#![deny(missing_docs)]` for libraries\n",{"name":5,"license":15,"metadata":44,"description":47,"allowed-tools":48,"compatibility":49},{"author":45,"version":46},"apollographql","1.1.0","Guide for writing idiomatic Rust code based on Apollo GraphQL's best practices handbook. Use this skill when: (1) writing new Rust code or functions, (2) reviewing or refactoring existing Rust code, (3) deciding between borrowing vs cloning or ownership patterns, (4) implementing error handling with Result types, (5) optimizing Rust code for performance, (6) writing tests or documentation for Rust projects.\n","Bash(cargo:*) Bash(rustc:*) Bash(rustfmt:*) Bash(clippy:*) Read Write Edit Glob Grep","Rust 1.70+, Cargo","master","c2e410e11df4d80d885e0ecf0583ef3c926df736","factory\u002Flibrary\u002Fskills\u002Fofficial_apollographql_rust_best_practices",0,"https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory","https:\u002F\u002Fgithub.com\u002FiDorgham","Dorgham.me","hey I'm Dorgham \r\nI code, I create, and AI codes back. \r\nMaybe we can give AI the chance!! now we begin. 🚀🤖\r\n... . . . git commit -m \"Hello, Future\" ","2026-05-04 18:39:09",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add iDorgham\u002FWorkspace-Factory --skill rust-best-practices",{"tool":65,"command":66},"bunx","bunx skills add iDorgham\u002FWorkspace-Factory --skill rust-best-practices",{"tool":68,"command":69},"pnpm","pnpm dlx skills add iDorgham\u002FWorkspace-Factory --skill rust-best-practices","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory\u002Fblob\u002Fmaster\u002Ffactory\u002Flibrary\u002Fskills\u002Fofficial_apollographql_rust_best_practices\u002Fskill.md",true,[],[74,104,126,144,164,187],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":85,"publishedAt":103},"01M71P8WVBMB2X3D24R0YT0B0E","vercel-react-view-transitions","Guide for implementing smooth, native-feeling animations using React's View Transition API (`\u003CViewTransition>` component, `addTransitionType`, and CSS view transition pseudo-elements). Use this skill whenever the user wants to add page transitions, animate route changes, create shared element animations, animate enter\u002Fexit of components, animate list reorder, implement directional (forward\u002Fback) navigation animations, or integrate view transitions in Next.js. Also use when the user mentions view transitions, `startViewTransition`, `ViewTransition`, transition types, or asks about animating between UI states in React without third-party animation libraries.","https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory\u002Fblob\u002Fmaster\u002Ffactory\u002Flibrary\u002Fskills\u002Fofficial_vercel_labs_react_view_transitions\u002Fskill.md",[80],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",[86,87,88,89,90,91,92,93,94,95,36,96,97,34,31,98,99,100,101,102],"react","vercel react view transitions","view","react view transitions","vercel","transitions","shared","back","Animation","css","states","element","components","api","route","create","libraries","2026-11-10 13:02:02",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":111,"publishedAt":103},"01M71P8TDGHZ289TSAC5VTG2EW","vercel-react-native-skills","React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.","https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory\u002Fblob\u002Fmaster\u002Ffactory\u002Flibrary\u002Fskills\u002Fofficial_vercel_labs_react_native_skills\u002Fskill.md",[110],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},[86,112,113,90,114,115,116,35,34,117,31,118,98,119,120,121,122,123,124,125],"react native","native","vercel react native skills","react native skills","modules","apps","tasks","mobile","expo","list","mobile performance","platform","animations","for",{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":133,"publishedAt":103},"01M71P8QK4JF5BYRGYDDGPZQG9","vercel-react-best-practices","React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React\u002FNext.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.","https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory\u002Fblob\u002Fmaster\u002Ffactory\u002Flibrary\u002Fskills\u002Fofficial_vercel_labs_react_best_practices\u002Fskill.md",[132],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},[86,134,135,90,20,35,32,31,29,118,98,136,137,138,24,139,140,141,142,143],"react best practices","vercel react best practices","data fetching","react components","next","data","patterns","Optimization","guidelines","triggers",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":151,"publishedAt":103},"01M71P8HVEA70K5N6ZVJCG2ED3","vercel-composition-patterns","React composition patterns that scale. Use when refactoring components with boolean prop proliferation, building flexible component libraries, or designing reusable APIs. Triggers on tasks involving compound components, render props, context providers, or component architecture. Includes React 19 API changes.","https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory\u002Fblob\u002Fmaster\u002Ffactory\u002Flibrary\u002Fskills\u002Fofficial_vercel_labs_composition_patterns\u002Fskill.md",[150],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},[152,90,153,140,154,155,156,157,143,158,159,160,31,161,118,98,162,163,99,86],"Composition","composition patterns","vercel composition patterns","react composition patterns","react 19","render","boolean","component architecture","use","reusable","architecture","react composition",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":168,"categories":169,"keywords":173,"publishedAt":103},"01M71P60XXKKP222ZFJRG7R373","supabase-postgres-best-practices","Postgres performance optimization and best practices from Supabase. Use this skill when writing, reviewing, or optimizing Postgres queries, schema designs, or database configurations.","https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory\u002Fblob\u002Fmaster\u002Ffactory\u002Flibrary\u002Fskills\u002Fofficial_supabase_supabase_postgres_best_practices\u002Fskill.md",[170],{"categoryNo":171,"categoryName":172,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000010","后端与接口",[174,175,176,177,20,178,179,180,125,141,35,181,182,32,183,160,184,185,186,31],"postgres best practices","supabase","postgres","supabase postgres best practices","categories","postgres performance","advanced","correct","schema","impact","Rules","critical","database",{"skillNo":188,"name":189,"nameZh":6,"description":190,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":191,"categories":192,"keywords":194,"publishedAt":39},"01M71P2ZCEJD0PKC458YTP1FJW","portable-text-serialization","Render and serialize Portable Text to React, Svelte, Vue, Astro, HTML, Markdown, and plain text. Use when implementing Portable Text rendering in any frontend framework, building custom serializers for non-standard block types, converting Portable Text to HTML strings server-side, converting Portable Text to Markdown, extracting plain text from Portable Text, or troubleshooting rendering issues with marks, blocks, lists, or custom types.","https:\u002F\u002Fgithub.com\u002FiDorgham\u002FWorkspace-Factory\u002Fblob\u002Fmaster\u002Ffactory\u002Flibrary\u002Fskills\u002Fofficial_sanity_io_portable_text_serialization\u002Fskill.md",[193],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},[195,196,197,198,199,36,200,157,201,34,202,203,31,86,204,205,206,207,208,209],"text","portable text serialization","portable","serialization","extracting","strings","issues","frontend","svelte","sanity","astro","server","markdown","rendering","vue"]