A handy reference for using pipe and flow in TypeScript functional programming.

Install

mkdir -p .claude/skills/fp-pipe-ref && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/15010" && unzip -o skill.zip -d .claude/skills/fp-pipe-ref && rm skill.zip

Installs to .claude/skills/fp-pipe-ref

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Quick reference for pipe and flow. Use when user needs to chain functions, compose operations, or build data pipelines in fp-ts.
128 chars✓ has a “when” trigger
Beginner

Key capabilities

  • Transform a specific value using pipe
  • Create reusable transformation functions with flow
  • Chain operations with fp-ts Option types
  • Chain operations with fp-ts Array types
  • Apply data-last functions for partial application

How it works

The skill provides examples for `pipe` to transform a value by applying functions sequentially and `flow` to create a new function by composing functions.

Inputs & outputs

You give it
A value or a series of functions
You get back
A transformed value or a new reusable function

When to use fp-pipe-ref

  • Chaining functional operations
  • Creating reusable pipelines
  • Understanding fp-ts composition
  • Refining data transformations
  • Learning pipe and flow patterns

About this skill

pipe & flow Quick Reference

pipe - Transform a Value

import { pipe } from 'fp-ts/function'

// pipe(startValue, fn1, fn2, fn3)
// = fn3(fn2(fn1(startValue)))

const result = pipe(
  '  hello world  ',
  s => s.trim(),
  s => s.toUpperCase(),
  s => s.split(' ')
)
// ['HELLO', 'WORLD']

flow - Create Reusable Pipeline

import { flow } from 'fp-ts/function'

// flow(fn1, fn2, fn3) returns a new function
const process = flow(
  (s: string) => s.trim(),
  s => s.toUpperCase(),
  s => s.split(' ')
)

process('  hello world  ') // ['HELLO', 'WORLD']
process('  foo bar  ')     // ['FOO', 'BAR']

When to Use

UseWhen
pipeTransform a specific value now
flowCreate reusable transformation

With fp-ts Types

import * as O from 'fp-ts/Option'
import * as A from 'fp-ts/Array'

// Option chain
pipe(
  O.fromNullable(user),
  O.map(u => u.email),
  O.getOrElse(() => 'no email')
)

// Array chain
pipe(
  users,
  A.filter(u => u.active),
  A.map(u => u.name)
)

Common Pattern

// Data last enables partial application
const getActiveNames = flow(
  A.filter((u: User) => u.active),
  A.map(u => u.name)
)

// Reuse anywhere
getActiveNames(users1)
getActiveNames(users2)

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.

When not to use it

  • When the task does not involve chaining functions
  • When the task does not involve composing operations
  • When the task does not involve building data pipelines in fp-ts

Limitations

  • Applicable only for fp-ts library usage

How it compares

This skill offers a functional programming approach to chaining and composing operations using `fp-ts`, which differs from imperative or object-oriented methods.

Compared to similar skills

fp-pipe-ref side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
fp-pipe-ref (this skill)02moNo flagsBeginner
drizzle2382moNo flagsIntermediate
zustand1132moNo flagsIntermediate
motion-canvas586moReviewAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

drizzle

lobehub

Drizzle ORM schema and database guide. Use when working with database schemas (src/database/schemas/*), defining tables, creating migrations, or database model code. Triggers on Drizzle schema definition, database migrations, or ORM usage questions.

238873

zustand

lobehub

Zustand state management guide. Use when working with store code (src/store/**), implementing actions, managing state, or creating slices. Triggers on Zustand store development, state management questions, or action implementation.

113434

motion-canvas

davila7

Complete production-ready guide for Motion Canvas with ESM/CommonJS workarounds, full setup templates, and troubleshooting for programmatic video creation using TypeScript

58202

turborepo

vercel

Turborepo monorepo build system guidance. Triggers on: turbo.json, task pipelines, dependsOn, caching, remote cache, the "turbo" CLI, --filter, --affected, CI optimization, environment variables, internal packages, monorepo structure/best practices, and boundaries. Use when user: configures tasks/workflows/pipelines, creates packages, sets up monorepo, shares code between apps, runs changed/affected packages, debugs cache, or has apps/packages directories.

61191

shadcn-ui-setup

maneeshanif

Install and configure Shadcn/ui component library with Radix UI primitives, Aceternity UI effects, set up components, and manage the component registry. Use when adding Shadcn/ui to a Next.js project or installing specific UI components for Phase 2.

37194

angular

sickn33

Modern Angular (v20+) expert with deep knowledge of Signals, Standalone Components, Zoneless applications, SSR/Hydration, and reactive patterns. Use PROACTIVELY for Angular development, component architecture, state management, performance optimization, and migration to modern patterns.

100129

Search skills

Search the agent skills registry