fp-option-ref – Data & Science skill for AI agents
Quick reference for Option type. Use when user needs to handle nullable values, optional data, or wants to avoid null checks.
Install the fp-option-ref skill with one command
Pick the tool you use, copy the command and paste it in your terminal. The skill lands in that tool's skills folder and is ready in your next session.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/fp-option-ref-196bb.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /fp-option-ref – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/fp-option-ref-196bb.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $fp-option-ref – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/fp-option-ref-196bb.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /fp-option-ref – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/fp-option-ref-196bb.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /fp-option-ref – then describe the task you want done.
SKILL.md content
Option Quick Reference
Option = value that might not exist. Some(value) or None.
When to Use
- You need a quick fp-ts reference for nullable or optional values.
- The task involves eliminating null checks, safe property access, or optional chaining with
Option. - You want a short reference card rather than a full migration guide.
Create
import * as O from 'fp-ts/Option'
O.some(5) // Some(5)
O.none // None
O.fromNullable(x) // null/undefined → None, else Some(x)
O.fromPredicate((n: number) => n > 0)(x) // false → None, true → Some(x)Transform
O.map(fn) // Transform inner value
O.flatMap(fn) // Chain Options (fn returns Option)
O.filter(predicate) // None if predicate falseExtract
O.getOrElse(() => fallbackValue) // Get value or default
O.toNullable(opt) // Back to T | null
O.toUndefined(opt) // Back to T | undefined
O.match(onNone, onSome) // Pattern matchCommon Patterns
import { pipe } from 'fp-ts/function'
import * as O from 'fp-ts/Option'
// Safe property access
pipe(
O.fromNullable(user),
O.flatMap(u => O.fromNullable(u.profile)),
O.flatMap(p => O.fromNullable(p.avatar)),
O.getOrElse(() => '/default-avatar.png')
)
// Array first element
import * as A from 'fp-ts/Array'
pipe(
users,
A.head, // Option<User>
O.map(u => u.name),
O.getOrElse(() => 'No users')
)vs Nullable
// Nullable: concise and safe for a short access chain
const name = user?.profile?.name ?? 'Guest'
// Option: explicit and composable across multiple operations
pipe(
O.fromNullable(user),
O.flatMap(u => O.fromNullable(u.profile)),
O.flatMap(p => O.fromNullable(p.name)),
O.getOrElse(() => 'Guest')
)Use Option when you need to chain operations on optional values.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
Reference scope
These are fp-ts 2.x fragments. Supply application variables, types, validators and imports, and check the installed version. map does not catch thrown exceptions. Task has no typed error channel; an improperly wrapped promise can still reject. Use tryCatch at fallible boundaries.
Official API: [fp-ts modules](https://gcanti.github.io/fp-ts/modules/).
Related skills
- fp-pipe-ref – Quick reference for pipe and flow. Use when user needs to chain functions, compose…
- senior-data-engineer – Data engineering skill for building scalable data pipelines, ETL/ELT systems, and data…
- gdpr-compliance – Implement GDPR data protection requirements. Configure consent management, data subject…
- senior-data-scientist – World-class senior data scientist skill specialising in statistical modeling, experiment…
- gdpr-data-handling – Practical implementation guide for GDPR-oriented data-processing design, consent…
- gemini-deep-research – Run autonomous multi-step research with Google's Gemini Deep Research Agent: kick off a…
- geo-crawlers – AI crawler access analysis.
- senior-ml-engineer – ML engineering skill for productionizing models, building MLOps pipelines, and…