[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6H6B2KN70PDPXR232JSNAM6":3,"skill-same:01M6H6B2KN70PDPXR232JSNAM6":81},{"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":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":6,"ownerHtmlUrl":54,"ownerBlogUrl":55,"ownerDescription":6,"updatedAt":56,"install":57,"resources":70},"01M6H6B2KN70PDPXR232JSNAM6","coding-guidelines",null,"Use when asking about Rust code style or best practices. Keywords: naming, formatting, comment, clippy, rustfmt, lint, code style, best practice, P.NAM, G.FMT, code review, naming convention, variable naming, function naming, type naming, 命名规范, 代码风格, 格式化, 最佳实践, 代码审查, 怎么命名","0xharryriddle\u002Fcodex-field-kit","0xharryriddle","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F100945007?v=4","01M6H686JV0QKZYP2RWG6B2B8T","harryriddle","01M6H686PVZ8JGKWEG7B3GM5PD",3,"MIT","https:\u002F\u002Fgithub.com\u002F0xharryriddle\u002Fcodex-field-kit\u002Fblob\u002Fmain\u002Farchive\u002Fupstream\u002Fchasebuild-agent-skills\u002Frust\u002Fskills\u002Fcoding-guidelines\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,5,34,35,36,37,38,39,40,41,42],"guidelines","coding","coding guidelines","naming","code review","about","style","io","false","type","zh","use","格式化","best practices","code","lint","rust","github","review","2026-11-10 10:12:30",false,"---\nname: coding-guidelines\ndescription: \"Use when asking about Rust code style or best practices. Keywords: naming, formatting, comment, clippy, rustfmt, lint, code style, best practice, P.NAM, G.FMT, code review, naming convention, variable naming, function naming, type naming, 命名规范, 代码风格, 格式化, 最佳实践, 代码审查, 怎么命名\"\nsource: https:\u002F\u002Frust-coding-guidelines.github.io\u002Frust-coding-guidelines-zh\u002F\nuser-invocable: false\n---\n\n# Rust Coding Guidelines (50 Core Rules)\n\n## Naming (Rust-Specific)\n\n| Rule | Guideline |\n|------|-----------|\n| No `get_` prefix | `fn name()` not `fn get_name()` |\n| Iterator convention | `iter()` \u002F `iter_mut()` \u002F `into_iter()` |\n| Conversion naming | `as_` (cheap &), `to_` (expensive), `into_` (ownership) |\n| Static var prefix | `G_CONFIG` for `static`, no prefix for `const` |\n\n## Data Types\n\n| Rule | Guideline |\n|------|-----------|\n| Use newtypes | `struct Email(String)` for domain semantics |\n| Prefer slice patterns | `if let [first, .., last] = slice` |\n| Pre-allocate | `Vec::with_capacity()`, `String::with_capacity()` |\n| Avoid Vec abuse | Use arrays for fixed sizes |\n\n## Strings\n\n| Rule | Guideline |\n|------|-----------|\n| Prefer bytes | `s.bytes()` over `s.chars()` when ASCII |\n| Use `Cow\u003Cstr>` | When might modify borrowed data |\n| Use `format!` | Over string concatenation with `+` |\n| Avoid nested iteration | `contains()` on string is O(n*m) |\n\n## Error Handling\n\n| Rule | Guideline |\n|------|-----------|\n| Use `?` propagation | Not `try!()` macro |\n| `expect()` over `unwrap()` | When value guaranteed |\n| Assertions for invariants | `assert!` at function entry |\n\n## Memory\n\n| Rule | Guideline |\n|------|-----------|\n| Meaningful lifetimes | `'src`, `'ctx` not just `'a` |\n| `try_borrow()` for RefCell | Avoid panic |\n| Shadowing for transformation | `let x = x.parse()?` |\n\n## Concurrency\n\n| Rule | Guideline |\n|------|-----------|\n| Identify lock ordering | Prevent deadlocks |\n| Atomics for primitives | Not Mutex for bool\u002Fusize |\n| Choose memory order carefully | Relaxed\u002FAcquire\u002FRelease\u002FSeqCst |\n\n## Async\n\n| Rule | Guideline |\n|------|-----------|\n| Sync for CPU-bound | Async is for I\u002FO |\n| Don't hold locks across await | Use scoped guards |\n\n## Macros\n\n| Rule | Guideline |\n|------|-----------|\n| Avoid unless necessary | Prefer functions\u002Fgenerics |\n| Follow Rust syntax | Macro input should look like Rust |\n\n## Deprecated → Better\n\n| Deprecated | Better | Since |\n|------------|--------|-------|\n| `lazy_static!` | `std::sync::OnceLock` | 1.70 |\n| `once_cell::Lazy` | `std::sync::LazyLock` | 1.80 |\n| `std::sync::mpsc` | `crossbeam::channel` | - |\n| `std::sync::Mutex` | `parking_lot::Mutex` | - |\n| `failure`\u002F`error-chain` | `thiserror`\u002F`anyhow` | - |\n| `try!()` | `?` operator | 2018 |\n\n## Quick Reference\n\n```\nNaming: snake_case (fn\u002Fvar), CamelCase (type), SCREAMING_CASE (const)\nFormat: rustfmt (just use it)\nDocs: \u002F\u002F\u002F for public items, \u002F\u002F! for module docs\nLint: #![warn(clippy::all)]\n```\n\nClaude knows Rust conventions well. These are the non-obvious Rust-specific rules.\n","# Rust Coding Guidelines (50 Core Rules)\n\n## Naming (Rust-Specific)\n\n| Rule | Guideline |\n|------|-----------|\n| No `get_` prefix | `fn name()` not `fn get_name()` |\n| Iterator convention | `iter()` \u002F `iter_mut()` \u002F `into_iter()` |\n| Conversion naming | `as_` (cheap &), `to_` (expensive), `into_` (ownership) |\n| Static var prefix | `G_CONFIG` for `static`, no prefix for `const` |\n\n## Data Types\n\n| Rule | Guideline |\n|------|-----------|\n| Use newtypes | `struct Email(String)` for domain semantics |\n| Prefer slice patterns | `if let [first, .., last] = slice` |\n| Pre-allocate | `Vec::with_capacity()`, `String::with_capacity()` |\n| Avoid Vec abuse | Use arrays for fixed sizes |\n\n## Strings\n\n| Rule | Guideline |\n|------|-----------|\n| Prefer bytes | `s.bytes()` over `s.chars()` when ASCII |\n| Use `Cow\u003Cstr>` | When might modify borrowed data |\n| Use `format!` | Over string concatenation with `+` |\n| Avoid nested iteration | `contains()` on string is O(n*m) |\n\n## Error Handling\n\n| Rule | Guideline |\n|------|-----------|\n| Use `?` propagation | Not `try!()` macro |\n| `expect()` over `unwrap()` | When value guaranteed |\n| Assertions for invariants | `assert!` at function entry |\n\n## Memory\n\n| Rule | Guideline |\n|------|-----------|\n| Meaningful lifetimes | `'src`, `'ctx` not just `'a` |\n| `try_borrow()` for RefCell | Avoid panic |\n| Shadowing for transformation | `let x = x.parse()?` |\n\n## Concurrency\n\n| Rule | Guideline |\n|------|-----------|\n| Identify lock ordering | Prevent deadlocks |\n| Atomics for primitives | Not Mutex for bool\u002Fusize |\n| Choose memory order carefully | Relaxed\u002FAcquire\u002FRelease\u002FSeqCst |\n\n## Async\n\n| Rule | Guideline |\n|------|-----------|\n| Sync for CPU-bound | Async is for I\u002FO |\n| Don't hold locks across await | Use scoped guards |\n\n## Macros\n\n| Rule | Guideline |\n|------|-----------|\n| Avoid unless necessary | Prefer functions\u002Fgenerics |\n| Follow Rust syntax | Macro input should look like Rust |\n\n## Deprecated → Better\n\n| Deprecated | Better | Since |\n|------------|--------|-------|\n| `lazy_static!` | `std::sync::OnceLock` | 1.70 |\n| `once_cell::Lazy` | `std::sync::LazyLock` | 1.80 |\n| `std::sync::mpsc` | `crossbeam::channel` | - |\n| `std::sync::Mutex` | `parking_lot::Mutex` | - |\n| `failure`\u002F`error-chain` | `thiserror`\u002F`anyhow` | - |\n| `try!()` | `?` operator | 2018 |\n\n## Quick Reference\n\n```\nNaming: snake_case (fn\u002Fvar), CamelCase (type), SCREAMING_CASE (const)\nFormat: rustfmt (just use it)\nDocs: \u002F\u002F\u002F for public items, \u002F\u002F! for module docs\nLint: #![warn(clippy::all)]\n```\n\nClaude knows Rust conventions well. These are the non-obvious Rust-specific rules.\n",{"name":5,"source":48,"description":7,"user-invocable":44},"https:\u002F\u002Frust-coding-guidelines.github.io\u002Frust-coding-guidelines-zh\u002F","main","6c13f6f4ac5a3bc1e6b78cd2bb1704f122c4a73e","archive\u002Fupstream\u002Fchasebuild-agent-skills\u002Frust\u002Fskills\u002Fcoding-guidelines",0,"https:\u002F\u002Fgithub.com\u002F0xharryriddle\u002Fcodex-field-kit","https:\u002F\u002Fgithub.com\u002F0xharryriddle","https:\u002F\u002Fharryriddle.vercel.app","2026-04-11 11:49:51",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add 0xharryriddle\u002Fcodex-field-kit --skill coding-guidelines",{"tool":63,"command":64},"bunx","bunx skills add 0xharryriddle\u002Fcodex-field-kit --skill coding-guidelines",{"tool":66,"command":67},"pnpm","pnpm dlx skills add 0xharryriddle\u002Fcodex-field-kit --skill coding-guidelines","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002F0xharryriddle\u002Fcodex-field-kit\u002Fblob\u002Fmain\u002Farchive\u002Fupstream\u002Fchasebuild-agent-skills\u002Frust\u002Fskills\u002Fcoding-guidelines\u002FSKILL.md",true,[71,77],{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},"clippy-lints\u002F_index.md","REFERENCE","参考文档",681,"https:\u002F\u002Fgithub.com\u002F0xharryriddle\u002Fcodex-field-kit\u002Fblob\u002Fmain\u002Farchive\u002Fupstream\u002Fchasebuild-agent-skills\u002Frust\u002Fskills\u002Fcoding-guidelines\u002Fclippy-lints\u002F_index.md",{"path":78,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":79,"sourceHtmlUrl":80},"index\u002Frules-index.md",170,"https:\u002F\u002Fgithub.com\u002F0xharryriddle\u002Fcodex-field-kit\u002Fblob\u002Fmain\u002Farchive\u002Fupstream\u002Fchasebuild-agent-skills\u002Frust\u002Fskills\u002Fcoding-guidelines\u002Findex\u002Frules-index.md",[82,109,128,138,164,189],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":91,"publishedAt":43},"01M6H7ZKE6MR33HC84QZ1TA6MV","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\u002F0xharryriddle\u002Fcodex-field-kit\u002Fblob\u002Fmain\u002Fskills\u002Fvercel-react-best-practices\u002FSKILL.md",[88],{"categoryNo":89,"categoryName":90,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[92,93,94,37,95,96,97,98,99,100,101,102,103,104,38,24,105,106,107,108],"react best practices","react","vercel react best practices","vercel","tasks","data fetching","triggers","pages","next","performance optimization","refactoring","Next.js","Optimization","react components","components","performance","writing",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":115,"publishedAt":43},"01M6H7ZGC2WK8SEKYHWDNTMDA9","swarm-planner","[EXPLICIT INVOCATION ONLY] Creates dependency-aware implementation plans optimized for parallel multi-agent execution.","https:\u002F\u002Fgithub.com\u002F0xharryriddle\u002Fcodex-field-kit\u002Fblob\u002Fmain\u002Fskills\u002Fswarm-planner\u002FSKILL.md",[],[116,117,118,119,120,121,122,123,124,125,126,127],"swarm","swarm planner","planner","parallel","multi-agent","only","execution","plans","dependency","for","multi","implementation",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":134,"publishedAt":43},"01M6H7ZD93853RZCYQWH1D38TM","super-swarm-spark","Only to be triggered by explicit super-swarm-spark commands.","https:\u002F\u002Fgithub.com\u002F0xharryriddle\u002Fcodex-field-kit\u002Fblob\u002Fmain\u002Fskills\u002Fsuper-swarm-spark\u002FSKILL.md",[],[135,116,136,121,137],"super swarm spark","spark","commands",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":144,"publishedAt":43},"01M6H7Z987QBY49JCCPT953EAZ","role-creator","Create and install Codex custom agent roles in ~\u002F.codex\u002Fconfig.toml, generate role config files, enforce supported keys, and guide users through required role inputs (model, reasoning effort, developer_instructions).","https:\u002F\u002Fgithub.com\u002F0xharryriddle\u002Fcodex-field-kit\u002Fblob\u002Fmain\u002Fskills\u002Frole-creator\u002FSKILL.md",[],[145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163],"role","creator","role creator","keys","users","roles","toml","enforce","install","guide","instructions","model","developer","reasoning","generate","create","config","codex","files",{"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":43},"01M6H7Z5TRPMDQ7YSZQXPN1G60","read-github","Read and search GitHub repository documentation via gitmcp.io MCP service.\n\n**WHEN TO USE:**\n- User provides a GitHub URL\n- User mentions a specific repo in owner\u002Frepo format\n- User asks \"what does this repo do?\", \"read the docs for X repo\", or similar\n- User wants to search code or docs within a repo","https:\u002F\u002Fgithub.com\u002F0xharryriddle\u002Fcodex-field-kit\u002Fblob\u002Fmain\u002Fskills\u002Fread-github\u002FSKILL.md",[170],{"categoryNo":171,"categoryName":172,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[41,174,175,38,176,177,178,179,125,180,181,182,31,183,184,35,185,186,187,188],"read github","read","documentation","docs","MCP","search","when to use","URL","via","service","do","user","repo","format","repository",{"skillNo":190,"name":118,"nameZh":6,"description":191,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":192,"categories":193,"keywords":194,"publishedAt":43},"01M6H7Z215CTKYJ4Y1X6EQWN6M","Create comprehensive, phased implementation plans with sprints and atomic tasks. Use when user says: \"make a plan\", \"create a plan\", \"plan this out\", \"plan the implementation\", \"help me plan\", \"design a plan\", \"draft a plan\", \"write a plan\", \"outline the steps\", \"break this down into tasks\", \"what's the plan for\", or any similar planning request. Also triggers on explicit \"\u002Fplanner\" or \"\u002Fplan\" commands.","https:\u002F\u002Fgithub.com\u002F0xharryriddle\u002Fcodex-field-kit\u002Fblob\u002Fmain\u002Fskills\u002Fplanner\u002FSKILL.md",[],[118,195,125,196,197,198,98,123,137,199,200,35,201,202,203,204,205,160,96,206],"outline","atomic","with","sprints","draft","me","write","phased implementation","plan","help","planning","design"]