{"id":"0e575733-fc76-4a9c-95c1-d8601c89b1c9","shortId":"PHV7a7","kind":"skill","title":"fp-option-ref","tagline":"Quick reference for Option type. Use when user needs to handle nullable values, optional data, or wants to avoid null checks.","description":"# Option Quick Reference\n\nOption = value that might not exist. `Some(value)` or `None`.\n\n## When to Use\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/Option'\n\nO.some(5)              // Some(5)\nO.none                 // None\nO.fromNullable(x)      // null/undefined → None, else Some(x)\nO.fromPredicate(x > 0)(x) // false → None, true → Some(x)\n```\n\n## Transform\n\n```typescript\nO.map(fn)              // Transform inner value\nO.flatMap(fn)          // Chain Options (fn returns Option)\nO.filter(predicate)    // None if predicate false\n```\n\n## Extract\n\n```typescript\nO.getOrElse(() => default)  // Get value or default\nO.toNullable(opt)           // Back to T | null\nO.toUndefined(opt)          // Back to T | undefined\nO.match(onNone, onSome)     // Pattern match\n```\n\n## Common Patterns\n\n```typescript\nimport { pipe } from 'fp-ts/function'\nimport * as O from 'fp-ts/Option'\n\n// 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(() => '/default-avatar.png')\n)\n\n// Array first element\nimport * as A from 'fp-ts/Array'\npipe(\n  users,\n  A.head,  // Option<User>\n  O.map(u => u.name),\n  O.getOrElse(() => 'No users')\n)\n```\n\n## vs Nullable\n\n```typescript\n// ❌ Nullable - easy to forget checks\nconst name = user?.profile?.name ?? 'Guest'\n\n// ✅ 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\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["option","ref","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-fp-option-ref","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/fp-option-ref","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34793 github stars · SKILL.md body (2,119 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T00:50:58.121Z","embedding":null,"createdAt":"2026-04-18T21:37:26.761Z","updatedAt":"2026-04-24T00:50:58.121Z","lastSeenAt":"2026-04-24T00:50:58.121Z","tsv":"'/array':201 '/default-avatar.png':190 '/function':167 '/option':90,175 '0':106 '5':92,94 'a.head':204 'access':63,178 'array':191 'ask':285 'avoid':23 'back':143,149 'boundari':293 'card':74 'chain':66,122,247 'check':25,60,219 'clarif':287 'clear':260 'common':158 'compos':228 'const':220 'creat':81 'criteria':296 'data':19 'default':136,140 'describ':264 'easi':216 'element':193 'elimin':58 'els':101 'environ':276 'environment-specif':275 'exist':34 'expert':281 'explicit':227 'extract':133 'fals':108,132 'first':192 'fn':116,121,124 'forget':218 'fp':2,47,88,165,173,199 'fp-option-ref':1 'fp-ts':46,87,164,172,198 'full':78 'get':137 'guest':225,240 'guid':80 'handl':15 'import':83,161,168,194 'inner':118 'input':290 'involv':57 'limit':252 'match':157,261 'might':32 'migrat':79 'miss':298 'name':221,224 'need':13,43,245 'none':38,96,100,109,129 'null':24,59,146 'null/undefined':99 'nullabl':16,51,213,215 'o':85,170 'o.filter':127 'o.flatmap':120,185,232 'o.fromnullable':97,180,187,230,234 'o.frompredicate':104 'o.getorelse':135,189,209,239 'o.map':115,182,206,236 'o.match':153 'o.none':95 'o.some':91 'o.tonullable':141 'o.toundefined':147 'onnon':154 'onsom':155 'oper':248 'opt':142,148 'option':3,8,18,26,29,53,65,68,123,126,205,226,242,250 'output':270 'p':186,237 'p.avatar':188 'p.name':238 'pattern':156,159 'permiss':291 'pipe':162,179,202,229 'predic':128,131 'profil':223 'properti':62,177 'quick':5,27,45 'rather':75 'ref':4 'refer':6,28,49,73 'requir':289 'return':125 'review':282 'safe':61,176 'safeti':292 'scope':263 'short':72 'skill':255 'skill-fp-option-ref' 'source-sickn33' 'specif':277 'stop':283 'substitut':273 'success':295 'task':56,259 'test':279 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'transform':113,117 'treat':268 'true':110 'ts':48,89,166,174,200 'type':9 'typescript':82,114,134,160,214 'u':183,207,233 'u.name':208 'u.profile':184,235 'undefin':152 'use':10,41,241,253 'user':12,181,203,211,222,231 'valid':278 'valu':17,30,36,54,119,138,251 'vs':212 'want':21,70 'x':98,103,105,107,112","prices":[{"id":"8adf408c-83f1-4e4d-840f-98e5a4a71362","listingId":"0e575733-fc76-4a9c-95c1-d8601c89b1c9","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:37:26.761Z"}],"sources":[{"listingId":"0e575733-fc76-4a9c-95c1-d8601c89b1c9","source":"github","sourceId":"sickn33/antigravity-awesome-skills/fp-option-ref","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/fp-option-ref","isPrimary":false,"firstSeenAt":"2026-04-18T21:37:26.761Z","lastSeenAt":"2026-04-24T00:50:58.121Z"}],"details":{"listingId":"0e575733-fc76-4a9c-95c1-d8601c89b1c9","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"fp-option-ref","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34793,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-24T00:28:59Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"ee61d76033eba750ea1a8f3d1ffd55b1de4a6ab2","skill_md_path":"skills/fp-option-ref/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/fp-option-ref"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"fp-option-ref","description":"Quick reference for Option type. Use when user needs to handle nullable values, optional data, or wants to avoid null checks."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/fp-option-ref"},"updatedAt":"2026-04-24T00:50:58.121Z"}}