Scala development

Configure sbt or bloop projects for TDD-driven Scala development with Typelevel libraries.

3|1|Updated Jun 23, 2024
One-click install
npx skills add https://github.com/channingwalton/dotfiles --skill scala-development
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: Scala development
Source: https://github.com/channingwalton/dotfiles/tree/main/.claude/skills/scala-developer
Command: npx skills add https://github.com/channingwalton/dotfiles --skill scala-development

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires development, test-driven-development, code-reviewer, commit-helper.

What problem does it solve?

This Skill provides the comprehensive capabilities of a senior Scala developer, enabling you to implement features using functional programming techniques, ensuring robust code, and streamlining the compilation process.

Core Features & Use Cases

  • Functional Programming Guidance: Directs development using Scala's functional paradigms, promoting clean and maintainable code.
  • Optimized Compilation Workflow: Intelligently prioritizes bloop for faster compilation and testing, falling back to sbt when necessary.
  • Integrated Quality & Testing: Leverages development, test-driven-development, code-reviewer, and commit-helper skills to ensure TDD adherence, code quality, and proper commit hygiene.
  • Use Case: When asked to develop a new Scala feature, this skill will guide you through the entire process, from writing tests and implementing the code with functional techniques, to ensuring successful compilation and review.

Quick Start

Implement a Scala function that calculates the factorial of a given number, using functional programming principles.

Frequently Asked Questions about Scala development

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I write Scala code using functional programming and ADTs?

Functional programming in Scala emphasizes immutability, ADTs (algebraic data types), and pure functions. Use sealed traits for ADTs, Either for error handling instead of exceptions, and avoid null and Any. Typelevel libraries like cats and cats-effect provide composable abstractions for functional workflows.

What's the fastest way to compile and test Scala projects?

Bloop accelerates compilation and testing cycles by caching and parallelizing builds. This Skill prioritizes bloop over sbt when available, then falls back to sbt. Both tools integrate with sbt configuration, and mandatory commitCheck runs on commits to enforce quality gates.

How do I structure a Scala project for test-driven development?

TDD in Scala starts with writing tests first, then implementing features to pass them. This Skill integrates test-driven-development, code-reviewer, and commit-helper to guide the full workflow: write tests, implement with functional techniques, review code quality, and commit with validation.

Can I use cats and fs2 for building Scala applications?

Yes. Cats provides functional abstractions like Monad and Applicative; fs2 builds composable streams for data processing. The Typelevel ecosystem is core to this Skill's guidance, enabling robust, type-safe code without throwing exceptions or relying on null.

What prerequisites do I need before starting Scala development with this Skill?

You need sbt or bloop installed, a working Scala environment, and familiarity with functional programming concepts. This Skill depends on development, test-driven-development, code-reviewer, and commit-helper to provide end-to-end guidance from setup through deployment.

Why should I avoid throw, null, and Any in Scala code?

Throw, null, and Any bypass type safety and make code harder to reason about. Either-based error handling, ADTs, and proper typing preserve totality and composability. This Skill enforces these constraints to ensure maintainable, robust Scala applications aligned with functional best practices.