{
  "markdown": "# fp-ts Skills for AI Agents\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-blue.svg)](https://www.typescriptlang.org/)\n[![fp-ts](https://img.shields.io/badge/fp--ts-2.x-purple.svg)](https://github.com/gcanti/fp-ts)\n\n> Practical functional programming for TypeScript. No jargon, just patterns that work.\n\n## Quick Install\n\n```bash\n# List available skills\nnpx skills add whatiskadudoing/fp-ts-skills --list\n\n# Install all skills\nnpx skills add whatiskadudoing/fp-ts-skills --all\n\n# Install specific skill\nnpx skills add whatiskadudoing/fp-ts-skills --skill fp-react\n```\n\nWorks with Claude Code, Cursor, GitHub Copilot, Gemini CLI, and any agent supporting the SKILL.md format.\n\n## Skill Tiers\n\n| Tier | Lines | Tokens | When Loaded |\n|------|-------|--------|-------------|\n| **quick-ref** | 50-100 | ~400 | Always cheap - use freely |\n| **core** | 300-600 | ~2,500 | On invocation |\n| **advanced** | 600-1500 | ~6,000 | Opt-in for deep dives |\n\n### Quick References (Always Cheap)\n\n| Skill | Lines | Use For |\n|-------|-------|---------|\n| [fp-types-ref](skills/quick-ref/fp-types-ref/SKILL.md) | 75 | \"Which type should I use?\" |\n| [fp-pipe-ref](skills/quick-ref/fp-pipe-ref/SKILL.md) | 70 | pipe() and flow() patterns |\n| [fp-option-ref](skills/quick-ref/fp-option-ref/SKILL.md) | 70 | Handling nullable values |\n| [fp-either-ref](skills/quick-ref/fp-either-ref/SKILL.md) | 75 | Error handling basics |\n| [fp-taskeither-ref](skills/quick-ref/fp-taskeither-ref/SKILL.md) | 85 | Async error handling |\n\n### Core Patterns\n\n| Skill | Lines | Use For |\n|-------|-------|---------|\n| [fp-pragmatic](skills/fp-pragmatic/SKILL.md) | 598 | 80/20 of FP, when NOT to use it |\n| [fp-errors](skills/fp-errors/SKILL.md) | 857 | Error handling patterns |\n| [fp-async](skills/fp-async/SKILL.md) | 964 | Async operations |\n| [fp-react](skills/fp-react/SKILL.md) | 790 | React state, forms, fetching |\n| [fp-compose](skills/fp-compose/SKILL.md) | 837 | Function composition |\n| [fp-validation](skills/fp-validation/SKILL.md) | 912 | Form/API validation |\n\n### Advanced (Opt-in)\n\n| Skill | Lines | Use For |\n|-------|-------|---------|\n| [fp-data-transforms](skills/fp-data-transforms/SKILL.md) | 1516 | Complex data manipulation |\n| [fp-backend](skills/fp-backend/SKILL.md) | 1335 | Service layer, DI |\n| [fp-refactor](skills/fp-refactor/SKILL.md) | 1781 | Migration from imperative |\n| [fp-algebraic-types](skills/fp-algebraic-types/SKILL.md) | 1445 | Semigroup, Monoid, etc. |\n| [fp-side-effects](skills/fp-side-effects/SKILL.md) | 2042 | Effect management |\n\n## Bundles\n\nInstall multiple related skills at once:\n\n```bash\n# Essentials - quick refs only (375 lines)\nnpx skills add whatiskadudoing/fp-ts-skills --skill fp-types-ref\nnpx skills add whatiskadudoing/fp-ts-skills --skill fp-pipe-ref\nnpx skills add whatiskadudoing/fp-ts-skills --skill fp-option-ref\nnpx skills add whatiskadudoing/fp-ts-skills --skill fp-either-ref\nnpx skills add whatiskadudoing/fp-ts-skills --skill fp-taskeither-ref\n\n# React Developer\nnpx skills add whatiskadudoing/fp-ts-skills --skill fp-react\n\n# Backend Developer\nnpx skills add whatiskadudoing/fp-ts-skills --skill fp-async\nnpx skills add whatiskadudoing/fp-ts-skills --skill fp-backend\n```\n\n## Philosophy\n\n- **Token-efficient**: Small focused skills that compose well\n- **No jargon**: \"chain operations\" not \"monadic bind\"\n- **When NOT to use FP**: We tell you when a for loop is clearer\n- **Pragmatic**: The 80/20 of functional programming\n\n## Writing Good Descriptions\n\nClaude uses **LLM reasoning** (not keywords) to decide when to invoke skills. Write descriptions that cover:\n\n```yaml\n---\nname: fp-validation\ndescription: Form and API validation with error accumulation. Use when validating user input, handling multiple errors, or building type-safe validators.\n---\n```\n\n## Resources & Sources\n\nThese skills were created by studying and synthesizing patterns from:\n\n### Core Libraries\n\n- [fp-ts](https://github.com/gcanti/fp-ts) - The functional programming library for TypeScript\n- [Effect](https://github.com/Effect-TS/effect) - Next-generation FP in TypeScript\n\n### Books & Guides\n\n- [Functional-Light JavaScript](https://github.com/getify/Functional-Light-JS) - Kyle Simpson's pragmatic approach to FP\n- [Mostly Adequate Guide to FP](https://github.com/MostlyAdequate/mostly-adequate-guide) - Professor Frisby's FP fundamentals\n- [Functional Programming Guide](https://github.com/enricopolanski/functional-programming) - Enrico Polanski's comprehensive guide\n\n### Articles\n\n- [Level Up React: Functional Programming in React](https://www.56kode.com/posts/level-up-react-functional-programming-in-react/) - 56kode\n- [Fundamentals of Functional Programming in React](https://blog.logrocket.com/fundamentals-functional-programming-react/) - LogRocket\n- [Hooked on React: React 19's Function Component Superpowers](https://dev.to/philipjohnbasile/hooked-on-react-the-complete-guide-to-react-19s-function-component-superpowers-1hdj) - Dev.to\n- [Functional Programming in React](https://blog.saeloun.com/2024/07/25/functional-programming-in-react/) - Saeloun\n\n## License\n\nMIT\n\n---\n\n**Keywords**: functional programming, typescript, fp-ts, claude code, ai skills, option type, either type, taskeither, react hooks, node.js, error handling, validation, pipe, composition\n",
  "bytes": 5414,
  "sha": "28ac686ebbe47ccada6716cb6ccee1c0de29158ebb08fb694b30cbb858bfa0de",
  "repo_slug": "whatiskadudoing/fp-ts-skills",
  "fonte": "repo",
  "truncated": false,
  "api": "https://api.agentalog.com/api/listings/skl_whatiskadudoing_fp_ts_skills_practical_d_8ea91abc/readme"
}