sdd

Installation
SKILL.md

Service-Driven Development (SDD)

Design services as pure type-level interfaces. Constrain them with Schema. Test them with properties. Compose them. Iterate until the API is right. THEN implement.

The orchestrator defines the perfect DSL. You write the top-level composition first — as if ideal services already exist. The interfaces emerge from what the orchestrator needs, not from independent design.

"Code the simple version first. Code it before you have implemented the sub-layers. Just imagine they exist. Code as if the perfect API to implement this layer already existed. Then, once your code looks beautiful, go implement those things." — Grant Slatton

Why top-down? Bottom-up locks you into a design before you've written the software. When you implement layer N, you guess what layer N+1 needs. When you get to N+1, you work around a not-quite-right API you're hesitant to change. Top-down avoids this — each layer defines what the layer below should be.

Phase Map

CRITICAL: Before starting any phase, READ its reference doc. Each contains the gate criteria, required patterns, and anti-patterns for that phase.

Phase Name Gate Reference
1 Model tsc clean + property tests pass + ELS clean phase-1-model.md
1.5 Review API review checklist passed phase-2-validate.md §Review
2 Validate orchestration tests pass in @effect/vitest phase-2-validate.md
Related skills
Installs
12
GitHub Stars
5
First Seen
Feb 28, 2026