juxt/allium
The specification language that talks back
What it solves
Allium addresses the problem of "intent drift" in agentic engineering, where LLMs lose track of the original design goals over long sessions or across different sessions. It prevents the confusion between what a system should do (intent) and what it actually does (implementation), ensuring that bugs or expedient coding decisions aren't mistaken for intended behavior.
How it works
Allium introduces a behavioral specification language that allows users to maintain a .allium file alongside their code. This file describes entities and rules (consisting of a trigger, preconditions, and outcomes) without implementation details.
It operates through a loop of specific skills:
/elicit: Builds a spec from a conversation about intent./distill: Extracts a spec from existing code./propagate: Generates tests based on the spec./tend: Edits the spec as requirements change./weed: Reconciles divergences between the spec and the code.
A companion CLI validates the syntax and performs structural checks (like tracing data flow and spotting dead ends) to provide a formal verification signal that LLMs cannot reliably produce on their own.
Who it’s for
It is designed for developers using agentic coding tools (such as Claude Code, Cursor, Windsurf, Aider, or GitHub Copilot) who want a durable, formal way to capture system requirements and verify that their implementation matches their intent.
Highlights
- Behavioral Specification: Focuses on observable behavior rather than implementation details.
- Formal Verification: Uses a CLI to catch design gaps and contradictions that prose-based requirements miss.
- Portable Skills: Works across 40+ AI coding harnesses via plain Markdown skills.
- Bidirectional Workflow: Can move from intent to code (spec-first) or from existing code to a formal spec (code-first).
Related
- Dispatch
- Dispatch
- Project
- Project
- Project