[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CT5NKVBWP0FA51G52YFSDC":3,"skill-same:01M6CT5NKVBWP0FA51G52YFSDC":61},{"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":31,"linkOnly":32,"markdownContent":33,"markdownBody":34,"frontMatter":35,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":43,"ownerHtmlUrl":44,"ownerBlogUrl":6,"ownerDescription":45,"updatedAt":46,"install":47,"resources":60},"01M6CT5NKVBWP0FA51G52YFSDC","fp-option-ref",null,"Quick reference for Option type. Use when user needs to handle nullable values, optional data, or wants to avoid null checks.","Sam-06060\u002Fjarvis-assistant","Sam-06060","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F208600848?v=4","01M6CRKT7C7FXD21V6HXF293S0","Samson Frank Ganta","01M6CRKTBEKYFD8YX5Z1GT99EE",6,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Ffp-option-ref\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30],"option","fp option ref","quick reference","data","user","use","reference","community","fp-ts","quick-reference","nullable","maybe","2026-11-10 10:12:30",false,"---\nname: fp-option-ref\ndescription: Quick reference for Option type. Use when user needs to handle nullable values, optional data, or wants to avoid null checks.\nrisk: unknown\nsource: community\nversion: 1.0.0\ntags: [fp-ts, option, nullable, maybe, quick-reference]\n---\n\n# Option Quick Reference\n\nOption = value that might not exist. `Some(value)` or `None`.\n\n## When to Use\n\n- You need a quick fp-ts reference for nullable or optional values.\n- The task involves eliminating null checks, safe property access, or optional chaining with `Option`.\n- You want a short reference card rather than a full migration guide.\n\n## Create\n\n```typescript\nimport * as O from 'fp-ts\u002FOption'\n\nO.some(5)              \u002F\u002F Some(5)\nO.none                 \u002F\u002F None\nO.fromNullable(x)      \u002F\u002F null\u002Fundefined → None, else Some(x)\nO.fromPredicate(x > 0)(x) \u002F\u002F false → None, true → Some(x)\n```\n\n## Transform\n\n```typescript\nO.map(fn)              \u002F\u002F Transform inner value\nO.flatMap(fn)          \u002F\u002F Chain Options (fn returns Option)\nO.filter(predicate)    \u002F\u002F None if predicate false\n```\n\n## Extract\n\n```typescript\nO.getOrElse(() => default)  \u002F\u002F Get value or default\nO.toNullable(opt)           \u002F\u002F Back to T | null\nO.toUndefined(opt)          \u002F\u002F Back to T | undefined\nO.match(onNone, onSome)     \u002F\u002F Pattern match\n```\n\n## Common Patterns\n\n```typescript\nimport { pipe } from 'fp-ts\u002Ffunction'\nimport * as O from 'fp-ts\u002FOption'\n\n\u002F\u002F Safe property access\npipe(\n  O.fromNullable(user),\n  O.map(u => u.profile),\n  O.flatMap(p => O.fromNullable(p.avatar)),\n  O.getOrElse(() => '\u002Fdefault-avatar.png')\n)\n\n\u002F\u002F Array first element\nimport * as A from 'fp-ts\u002FArray'\npipe(\n  users,\n  A.head,  \u002F\u002F Option\u003CUser>\n  O.map(u => u.name),\n  O.getOrElse(() => 'No users')\n)\n```\n\n## vs Nullable\n\n```typescript\n\u002F\u002F ❌ Nullable - easy to forget checks\nconst name = user?.profile?.name ?? 'Guest'\n\n\u002F\u002F ✅ Option - explicit, composable\npipe(\n  O.fromNullable(user),\n  O.flatMap(u => O.fromNullable(u.profile)),\n  O.map(p => p.name),\n  O.getOrElse(() => 'Guest')\n)\n```\n\nUse Option when you need to **chain** operations on optional values.\n","# Option Quick Reference\n\nOption = value that might not exist. `Some(value)` or `None`.\n\n## When to Use\n\n- You need a quick fp-ts reference for nullable or optional values.\n- The task involves eliminating null checks, safe property access, or optional chaining with `Option`.\n- You want a short reference card rather than a full migration guide.\n\n## Create\n\n```typescript\nimport * as O from 'fp-ts\u002FOption'\n\nO.some(5)              \u002F\u002F Some(5)\nO.none                 \u002F\u002F None\nO.fromNullable(x)      \u002F\u002F null\u002Fundefined → None, else Some(x)\nO.fromPredicate(x > 0)(x) \u002F\u002F false → None, true → Some(x)\n```\n\n## Transform\n\n```typescript\nO.map(fn)              \u002F\u002F Transform inner value\nO.flatMap(fn)          \u002F\u002F Chain Options (fn returns Option)\nO.filter(predicate)    \u002F\u002F None if predicate false\n```\n\n## Extract\n\n```typescript\nO.getOrElse(() => default)  \u002F\u002F Get value or default\nO.toNullable(opt)           \u002F\u002F Back to T | null\nO.toUndefined(opt)          \u002F\u002F Back to T | undefined\nO.match(onNone, onSome)     \u002F\u002F Pattern match\n```\n\n## Common Patterns\n\n```typescript\nimport { pipe } from 'fp-ts\u002Ffunction'\nimport * as O from 'fp-ts\u002FOption'\n\n\u002F\u002F Safe property access\npipe(\n  O.fromNullable(user),\n  O.map(u => u.profile),\n  O.flatMap(p => O.fromNullable(p.avatar)),\n  O.getOrElse(() => '\u002Fdefault-avatar.png')\n)\n\n\u002F\u002F Array first element\nimport * as A from 'fp-ts\u002FArray'\npipe(\n  users,\n  A.head,  \u002F\u002F Option\u003CUser>\n  O.map(u => u.name),\n  O.getOrElse(() => 'No users')\n)\n```\n\n## vs Nullable\n\n```typescript\n\u002F\u002F ❌ Nullable - easy to forget checks\nconst name = user?.profile?.name ?? 'Guest'\n\n\u002F\u002F ✅ Option - explicit, composable\npipe(\n  O.fromNullable(user),\n  O.flatMap(u => O.fromNullable(u.profile)),\n  O.map(p => p.name),\n  O.getOrElse(() => 'Guest')\n)\n```\n\nUse Option when you need to **chain** operations on optional values.\n",{"name":5,"risk":36,"tags":37,"source":26,"version":38,"description":7},"unknown",[27,19,29,30,28],"1.0.0","main","a50a3aa6b39fb0e1b7db88bef1bfc9c93606e126","modules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Ffp-option-ref",0,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant","https:\u002F\u002Fgithub.com\u002FSam-06060","Mobile Application Developer | Kotlin | Flutter, KMP, Swfit, Android,Swift UI | Building at Saar It Resources | Creator of Jarvis (AI Assistant)","2026-06-23 05:13:38",{"source":8,"skillName":5,"commands":48,"prompt":58,"zipAvailable":59},[49,52,55],{"tool":50,"command":51},"npx","npx skills add Sam-06060\u002Fjarvis-assistant --skill fp-option-ref",{"tool":53,"command":54},"bunx","bunx skills add Sam-06060\u002Fjarvis-assistant --skill fp-option-ref",{"tool":56,"command":57},"pnpm","pnpm dlx skills add Sam-06060\u002Fjarvis-assistant --skill fp-option-ref","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Ffp-option-ref\u002FSKILL.md",true,[],[62,75,91,118,137,164],{"skillNo":63,"name":64,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":72,"publishedAt":31},"01M6GDRVS6FXX3ESH0C9DW01C0","test_skill","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fscratch\u002Ftest_skill\u002FSKILL.md",[67],{"categoryNo":68,"categoryName":69,"taxonomyType":70,"taxonomyTypeDesc":71},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[73,74],"Test Skill","test",{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":31},"01M6GDRQ40HX22MA6XWC31RHHK","zustand-store-ts","Create Zustand stores following established patterns with proper TypeScript types and middleware.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzustand-store-ts\u002FSKILL.md",[],[82,83,84,85,86,87,88,26,89,90],"zustand store ts","zustand","store","with","types","middleware","patterns","create","typescript",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":100,"publishedAt":31},"01M6GDRKEA0WE670SPFWX5GKCN","zoom-automation","Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzoom-automation\u002FSKILL.md",[97],{"categoryNo":98,"categoryName":99,"taxonomyType":70,"taxonomyTypeDesc":71},"01JBSEEDCAT000000000000023","Skill与智能体开发",[101,102,103,104,105,106,107,108,109,110,111,112,113,114,26,115,116,117],"automation","zoom automation","zoom","first","Tools","search","MCP","via","meeting","automate","critical","creation","webinars","composio","recordings","management","tracking",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":125,"publishedAt":31},"01M6GDRFS1452PC71JQ38S24HR","zoho-crm-automation","Automate Zoho CRM tasks via Rube MCP (Composio): create\u002Fupdate records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzoho-crm-automation\u002FSKILL.md",[124],{"categoryNo":98,"categoryName":99,"taxonomyType":70,"taxonomyTypeDesc":71},[126,101,127,128,129,130,131,26,106,132,114,133,111,110,105,134,89,135,107,136],"crm automation","zoho crm","crm","zoho crm automation","zoho","leads","contacts","records","update","tasks","manage",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":146,"publishedAt":31},"01M6GDRCKQBAVTGHX5XBH26KPZ","zod-validation-expert","Expert in Zod — TypeScript-first schema validation. Covers parsing, custom errors, refinements, type inference, and integration with React Hook Form, Next.js, and tRPC.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzod-validation-expert\u002FSKILL.md",[143],{"categoryNo":144,"categoryName":145,"taxonomyType":70,"taxonomyTypeDesc":71},"01JBSEEDCAT000000000000009","前端开发",[147,148,149,150,151,90,152,153,154,155,156,157,85,158,159,160,161,26,162,163],"expert","zod","zod validation expert","validation","react","safe","parsing","errors","schema validation","react hook form","hook","trpc","form","type","next","schema","Next.js",{"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":171,"publishedAt":31},"01M6GDR658B08K4MY0RWD4A6EH","zeroize-audit","Detects missing zeroization of sensitive data in source code and identifies zeroization removed by compiler optimizations, with assembly-level analysis, and control-flow verification. Use for auditing C\u002FC++\u002FRust code handling secrets, keys, passwords, or other sensitive data.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzeroize-audit\u002FSKILL.md",[170],{"categoryNo":98,"categoryName":99,"taxonomyType":70,"taxonomyTypeDesc":71},[172,173,174,175,176,177,178,179,26,180,181,182,183,184,22,185,186,187,188,107],"zeroize audit","audit","write","passwords","get","project","c++","activate","assembly","read","Bash","secrets","analysis","flow","verification","code","rust"]