data-oriented-clojure

Design immutable, schema-first Clojure systems with EAV-based modeling and Malli instrumentation.

1|Updated Apr 21, 2026
One-click install
npx skills add https://github.com/seantempesta/seon --skill data-oriented-clojure
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: data-oriented-clojure
Source: https://github.com/seantempesta/seon/tree/main/seon-skills/data-oriented-clojure
Command: npx skills add https://github.com/seantempesta/seon --skill data-oriented-clojure

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill addresses the common pitfalls developers face when applying imperative or object-oriented programming habits to a data-oriented, immutable, and schema-first Clojure environment.

Core Features & Use Cases

  • Mindset Alignment: Provides a framework for replacing mutable state, class-based hierarchies, and imperative loops with pure, data-driven functions and EAV-based modeling.
  • Best Practices: Enforces the use of namespaced keywords, runtime schema instrumentation via Malli, and error-as-value patterns for agent-facing verbs.
  • Use Case: When building a new agent capability, use this skill to ensure your data models are schema-first and your functions are referentially transparent, preventing common bugs like race conditions or hidden state accumulation.

Quick Start

Apply the data-oriented clojure mindset to refactor your current namespace by replacing all bare map keys with namespaced keywords and implementing Malli schema instrumentation on all public functions.

Frequently Asked Questions about data-oriented-clojure

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

FAQPage Schema
How do I design schema-first data models in Clojure?

Schema-first data models in Clojure are designed by replacing mutable state and bare map keys with namespaced keywords and runtime Malli instrumentation. This establishes a data-oriented architecture that ensures consistency and referential transparency.

What is EAV-based querying in a data-oriented Clojure runtime?

EAV-based querying models data as Entity-Attribute-Value tuples rather than object hierarchies. It enables flexible, immutable Datalog queries within the Seon runtime, eliminating imperative side-effects and ensuring system-wide consistency.

How do I eliminate imperative side-effects when building Clojure agent capabilities?

Eliminate imperative side-effects by replacing class-based hierarchies and mutable loops with pure, data-driven functions. Use error-as-value patterns for agent-facing verbs to maintain referential transparency and prevent race conditions.

Can I use Malli instrumentation for runtime schema validation in Clojure?

Yes, Malli provides runtime schema instrumentation for Clojure systems. Applying it to all public functions enforces schema-first data models and catches structural validation errors during execution within the Seon runtime.

What's the best way to manage state in immutable Clojure systems?

The best way to manage state in immutable Clojure systems is through EAV-based modeling and pure, data-driven functions. This approach eliminates mutable state accumulation and ensures system-wide testability.

When should I avoid object-oriented patterns in Clojure?

You should avoid object-oriented patterns when developing within a data-oriented, immutable Clojure environment. Replace class-based hierarchies and mutable state with namespaced keywords and EAV modeling to prevent race conditions.